ETH Price: $3,414.36 (+3.08%)

Token

Shiba Chulo (SHIBCHU)
 

Overview

Max Total Supply

925,402,296,103.042986916 SHIBCHU

Holders

405

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
208,615.604042921 SHIBCHU

Value
$0.00
0x372cf1e34236cb2944fd8ed90a14c0ecbd4d8aaf
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:
SHIBCHU

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-05-22
*/

// SPDX-License-Identifier: MIT
 
pragma solidity ^0.8.4;

abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return payable(msg.sender);
    }
    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}

interface IBEP20 {
    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;
    }
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}
 
library Address {
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly { size := extcodesize(account) }
        return size > 0;
    }
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");
        (bool success, bytes memory returndata) = target.call{ value: value }(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }
    function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");
        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }
    function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }
    function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

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);
    }
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}
 
contract SHIBCHU is Context, IBEP20, Ownable {
    using SafeMath for uint256;
    using Address for address;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcluded;
    mapping (address => bool) private _isDev;
     mapping (address => bool) private _isBurn;
    address[] private _excluded;
    address[] private _dev;
    address[] private _burn;
    string  private constant _NAME = 'Shiba Chulo';
    string  private constant _SYMBOL = 'SHIBCHU';
    uint8   private constant _DECIMALS = 9;
    uint256 private constant _MAX = ~uint256(0);
    uint256 private constant _DECIMALFACTOR = 10 ** uint256(_DECIMALS);
    uint256 private constant _GRANULARITY = 100;
    uint256 private _tTotal = 1000000000000 * _DECIMALFACTOR;
    uint256 private _rTotal = (_MAX - (_MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _tBurnTotal;
    uint256 private _tDevTotal;
    uint256 private _TAX_FEE = 150; // 1.5% BACK TO HOLDERS
    uint256 private _BURN_FEE = 200; // 2% BURNED
    uint256 private _DEV_FEE = 150; // 1.5% TO DEV/MARKETING WALLET
    uint256 private constant _MAX_TX_SIZE = 10000000000 * _DECIMALFACTOR;
    uint256 private ORIG_TAX_FEE = _TAX_FEE;
    uint256 private ORIG_BURN_FEE = _BURN_FEE;
    uint256 private ORIG_DEV_FEE = _DEV_FEE;
 
    constructor () {
        _rOwned[_msgSender()] = _rTotal;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }
 
    function name() public pure returns (string memory) {
        return _NAME;
    }
    function symbol() public pure returns (string memory) {
        return _SYMBOL;
    }
    function decimals() public pure returns (uint8) {
        return _DECIMALS;
    }
    function totalSupply() public view override returns (uint256) {
        return _tTotal;
    }
    function balanceOf(address account) public view override returns (uint256) {
        if (_isExcluded[account]) return _tOwned[account];
        return tokenFromReflection(_rOwned[account]);
    }
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }
    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "BEP20: transfer amount exceeds allowance"));
        return true;
    }
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "BEP20: decreased allowance below zero"));
        return true;
    }
    function isExcluded(address account) public view returns (bool) {
        return _isExcluded[account];
    }
    function isDev(address account) public view returns (bool) {
        return _isDev[account];
    }
    function totalFees() public view returns (uint256) {
        return _tFeeTotal;
    }
    function totalBurn() public view returns (uint256) {
        return _tBurnTotal;
    }
    function totalDev() public view returns (uint256) {
        return _tDevTotal;
    }
    function deliver(uint256 tAmount) public {
        address sender = _msgSender();
        require(!_isExcluded[sender], "Excluded addresses cannot call this function");
        (uint256 rAmount,,,,,,) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rTotal = _rTotal.sub(rAmount);
        _tFeeTotal = _tFeeTotal.add(tAmount);
    }
    function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns(uint256) {
        require(tAmount <= _tTotal, "Amount must be less than supply");
        if (!deductTransferFee) {
            (uint256 rAmount,,,,,,) = _getValues(tAmount);
            return rAmount;
        } else {
            (,uint256 rTransferAmount,,,,,) = _getValues(tAmount);
            return rTransferAmount;
        }
    }
    function tokenFromReflection(uint256 rAmount) public view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }
    function excludeAccount(address account) external onlyOwner() {
        require(account != 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D, 'We can not exclude DEX router.');
        require(!_isExcluded[account], "Account is already excluded");
        if(_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcluded[account] = true;
        _excluded.push(account);
    }
    function includeAccount(address account) external onlyOwner() {
        require(_isExcluded[account], "Account is already excluded");
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_excluded[i] == account) {
                _excluded[i] = _excluded[_excluded.length - 1];
                _tOwned[account] = 0;
                _isExcluded[account] = false;
                _excluded.pop();
                break;
            }
        }
    }
    function setAsDevAccount(address account) external onlyOwner() {
        require(!_isDev[account], "Account is already dev account");
        _isDev[account] = true;
        _dev.push(account);
    }
    function setAsBurnAccount(address account) external onlyOwner() {
        require(!_isBurn[account], "Account is already burning account");
        _isBurn[account] = true;
        _burn.push(account);
    }
    function _setTaxFee(uint256 taxFee) external onlyOwner() {
        _TAX_FEE = taxFee* 100;
    }
    function _setBurnFee(uint256 burnFee) external onlyOwner() {
        _BURN_FEE = burnFee* 100;
    }
    function _setDevFee(uint256 devFee) external onlyOwner() {
        _DEV_FEE = devFee* 100;
    }
    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "BEP20: approve from the zero address");
        require(spender != address(0), "BEP20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    function _transfer(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "BEP20: transfer from the zero address");
        require(recipient != address(0), "BEP20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        bool takeFee = true;
        if (_isDev[sender] || _isDev[recipient] || _isExcluded[recipient]) {
            takeFee = false;
        }
        if (!takeFee) removeAllFee();
        if (sender != owner() && recipient != owner())
            require(amount <= _MAX_TX_SIZE, "Transfer amount exceeds the maxTxAmount.");
        if (_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferFromExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && _isExcluded[recipient]) {
            _transferToExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferStandard(sender, recipient, amount);
        } else if (_isExcluded[sender] && _isExcluded[recipient]) {
            _transferBothExcluded(sender, recipient, amount);
        } else {
            _transferStandard(sender, recipient, amount);
        }
        if (!takeFee) restoreAllFee();
    }
    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn, uint256 tDev) = _getValues(tAmount);
        uint256 rBurn =  tBurn.mul(currentRate);
        uint256 rDev = tDev.mul(currentRate);
        _standardTransferContent(sender, recipient, rAmount, rTransferAmount);
        _sendToDev(tDev, sender);
        _sendToBurn(tBurn, sender);
        _reflectFee(rFee, rBurn, rDev, tFee, tBurn, tDev);
        emit Transfer(sender, recipient, tTransferAmount);
    }
    function _standardTransferContent(address sender, address recipient, uint256 rAmount, uint256 rTransferAmount) private {
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
    }
    function _transferToExcluded(address sender, address recipient, uint256 tAmount) private {
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn, uint256 tDev) = _getValues(tAmount);
        uint256 rBurn =  tBurn.mul(currentRate);
        uint256 rDev = tDev.mul(currentRate);
        _excludedFromTransferContent(sender, recipient, tTransferAmount, rAmount, rTransferAmount);
        _sendToDev(tDev, sender);
        _sendToBurn(tBurn, sender);
        _reflectFee(rFee, rBurn, rDev, tFee, tBurn, tDev);
        emit Transfer(sender, recipient, tTransferAmount);
    }
    function _excludedFromTransferContent(address sender, address recipient, uint256 tTransferAmount, uint256 rAmount, uint256 rTransferAmount) private {
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
    }
    function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private {
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn, uint256 tDev) = _getValues(tAmount);
        uint256 rBurn =  tBurn.mul(currentRate);
        uint256 rDev = tDev.mul(currentRate);
        _excludedToTransferContent(sender, recipient, tAmount, rAmount, rTransferAmount);
        _sendToDev(tDev, sender);
        _sendToBurn(tBurn, sender);
        _reflectFee(rFee, rBurn, rDev, tFee, tBurn, tDev);
        emit Transfer(sender, recipient, tTransferAmount);
    }
    function _excludedToTransferContent(address sender, address recipient, uint256 tAmount, uint256 rAmount, uint256 rTransferAmount) private {
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
    }
    function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private {
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn, uint256 tDev) = _getValues(tAmount);
        uint256 rBurn =  tBurn.mul(currentRate);
        uint256 rDev = tDev.mul(currentRate);
        _bothTransferContent(sender, recipient, tAmount, rAmount, tTransferAmount, rTransferAmount);
        _sendToDev(tDev, sender);
        _sendToBurn(tBurn, sender);
        _reflectFee(rFee, rBurn, rDev, tFee, tBurn, tDev);
        emit Transfer(sender, recipient, tTransferAmount);
    }
    function _bothTransferContent(address sender, address recipient, uint256 tAmount, uint256 rAmount, uint256 tTransferAmount, uint256 rTransferAmount) private {
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
    }
    function _reflectFee(uint256 rFee, uint256 rBurn, uint256 rDev, uint256 tFee, uint256 tBurn, uint256 tDev) private {
        _rTotal = _rTotal.sub(rFee).sub(rBurn).sub(rDev);
        _tFeeTotal = _tFeeTotal.add(tFee);
        _tBurnTotal = _tBurnTotal.add(tBurn);
        _tDevTotal = _tDevTotal.add(tDev);
        _tTotal = _tTotal.sub(tBurn);
    }
    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tFee, uint256 tBurn, uint256 tDev) = _getTBasics(tAmount, _TAX_FEE, _BURN_FEE, _DEV_FEE);
        uint256 tTransferAmount = getTTransferAmount(tAmount, tFee, tBurn, tDev);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rFee) = _getRBasics(tAmount, tFee, currentRate);
        uint256 rTransferAmount = _getRTransferAmount(rAmount, rFee, tBurn, tDev, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tBurn, tDev);
    }
    function _getTBasics(uint256 tAmount, uint256 taxFee, uint256 burnFee, uint256 devFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = ((tAmount.mul(taxFee)).div(_GRANULARITY)).div(100);
        uint256 tBurn = ((tAmount.mul(burnFee)).div(_GRANULARITY)).div(100);
        uint256 tDev = ((tAmount.mul(devFee)).div(_GRANULARITY)).div(100);
        return (tFee, tBurn, tDev);
    }
    function getTTransferAmount(uint256 tAmount, uint256 tFee, uint256 tBurn, uint256 tDev) private pure returns (uint256) {
        return tAmount.sub(tFee).sub(tBurn).sub(tDev);
    }
    function _getRBasics(uint256 tAmount, uint256 tFee, uint256 currentRate) private pure returns (uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        return (rAmount, rFee);
    }
    function _getRTransferAmount(uint256 rAmount, uint256 rFee, uint256 tBurn, uint256 tDev, uint256 currentRate) private pure returns (uint256) {
        uint256 rBurn = tBurn.mul(currentRate);
        uint256 rDev = tDev.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rBurn).sub(rDev);
        return rTransferAmount;
    }
    function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }
    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
            rSupply = rSupply.sub(_rOwned[_excluded[i]]);
            tSupply = tSupply.sub(_tOwned[_excluded[i]]);
        }
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
    function _sendToDev(uint256 tDev, address sender) private {
        uint256 currentRate = _getRate();
        uint256 rDev = tDev.mul(currentRate);
        address currentDev = _dev[0];
        _rOwned[currentDev] = _rOwned[currentDev].add(rDev);
        _tOwned[currentDev] = _tOwned[currentDev].add(tDev);
        emit Transfer(sender, currentDev, tDev);
    }
    function _sendToBurn(uint256 tBurn, address sender) private {
        uint256 currentRate = _getRate();
        uint256 rBurn = tBurn.mul(currentRate);
        address currentBurn = _burn[0];
        _rOwned[currentBurn] = _rOwned[currentBurn].add(rBurn);
        _tOwned[currentBurn] = _tOwned[currentBurn].add(tBurn);
        emit Transfer(sender, currentBurn, tBurn);
    }
    function removeAllFee() private {
        if(_TAX_FEE == 0 && _BURN_FEE == 0 && _DEV_FEE == 0) return;
        ORIG_TAX_FEE = _TAX_FEE;
        ORIG_BURN_FEE = _BURN_FEE;
        ORIG_DEV_FEE = _DEV_FEE;
        _TAX_FEE = 0;
        _BURN_FEE = 0;
        _DEV_FEE = 0;
    }
    function restoreAllFee() private {
        _TAX_FEE = ORIG_TAX_FEE;
        _BURN_FEE = ORIG_BURN_FEE;
        _DEV_FEE = ORIG_DEV_FEE;
    }
    function _getTaxFee() private view returns(uint256) {
        return _TAX_FEE;
    }
    function _getMaxTxAmount() private pure returns(uint256) {
        return _MAX_TX_SIZE;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"burnFee","type":"uint256"}],"name":"_setBurnFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"devFee","type":"uint256"}],"name":"_setDevFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFee","type":"uint256"}],"name":"_setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"deliver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isDev","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcluded","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"setAsBurnAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"setAsDevAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052620000126009600a62000156565b620000239064e8d4a5100062000221565b600a81905562000036906000196200025d565b620000449060001962000243565b600b556096600f5560c86010556096601155600f546012556010546013556011546014553480156200007557600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600b5433600081815260016020908152604080832094909455600a549351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000294565b600181815b808511156200014e5781600019048211156200013257620001326200027e565b808516156200014057918102915b93841c939080029062000112565b509250929050565b60006200016483836200016b565b9392505050565b6000826200017c575060016200021b565b816200018b575060006200021b565b8160018114620001a45760028114620001af57620001cf565b60019150506200021b565b60ff841115620001c357620001c36200027e565b50506001821b6200021b565b5060208310610133831016604e8410600b8410161715620001f4575081810a6200021b565b6200020083836200010d565b80600019048211156200021757620002176200027e565b0290505b92915050565b60008160001904831182151516156200023e576200023e6200027e565b500290565b6000828210156200025857620002586200027e565b500390565b6000826200027957634e487b7160e01b81526012600452602481fd5b500690565b634e487b7160e01b600052601160045260246000fd5b6123a180620002a46000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c80634549b0391161010457806395d89b41116100a2578063dd62ed3e11610071578063dd62ed3e14610400578063f2cc0c1814610439578063f2fde38b1461044c578063f84354f11461045f57600080fd5b806395d89b411461038b578063a457c2d7146103ae578063a9059cbb146103c1578063cba0e996146103d457600080fd5b8063683f1927116100de578063683f19271461034257806370a0823114610355578063715018a6146103685780638da5cb5b1461037057600080fd5b80634549b039146103095780635880b8731461031c57806359f1707d1461032f57600080fd5b80632525140611610171578063395093511161014b57806339509351146102c85780633b6b1961146102db5780633bd5d173146102ee5780633c9f861d1461030157600080fd5b806325251406146102915780632d838119146102a6578063313ce567146102b957600080fd5b806313114a9d116101ad57806313114a9d1461025c57806318160ddd1461026e5780631c02164d1461027657806323b872dd1461027e57600080fd5b806306fdde03146101d4578063095ea7b31461020d5780630c3f64bf14610230575b600080fd5b60408051808201909152600b81526a5368696261204368756c6f60a81b60208201525b604051610204919061210c565b60405180910390f35b61022061021b366004612098565b610472565b6040519015158152602001610204565b61022061023e366004612011565b6001600160a01b031660009081526005602052604090205460ff1690565b600c545b604051908152602001610204565b600a54610260565b600e54610260565b61022061028c36600461205d565b610489565b6102a461029f366004612011565b6104f2565b005b6102606102b43660046120c1565b6105ff565b60405160098152602001610204565b6102206102d6366004612098565b610683565b6102a46102e93660046120c1565b6106b9565b6102a46102fc3660046120c1565b6106f4565b600d54610260565b6102606103173660046120d9565b6107e0565b6102a461032a3660046120c1565b61086f565b6102a461033d3660046120c1565b6108aa565b6102a4610350366004612011565b6108e5565b610260610363366004612011565b6109de565b6102a4610a3d565b6000546040516001600160a01b039091168152602001610204565b6040805180820190915260078152665348494243485560c81b60208201526101f7565b6102206103bc366004612098565b610ab1565b6102206103cf366004612098565b610b00565b6102206103e2366004612011565b6001600160a01b031660009081526004602052604090205460ff1690565b61026061040e36600461202b565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6102a4610447366004612011565b610b0d565b6102a461045a366004612011565b610ccd565b6102a461046d366004612011565b610db7565b600061047f338484610fa6565b5060015b92915050565b60006104968484846110ca565b6104e884336104e38560405180606001604052806028815260200161231f602891396001600160a01b038a166000908152600360209081526040808320338452909152902054919061148f565b610fa6565b5060019392505050565b6000546001600160a01b031633146105255760405162461bcd60e51b815260040161051c9061215f565b60405180910390fd5b6001600160a01b03811660009081526006602052604090205460ff16156105995760405162461bcd60e51b815260206004820152602260248201527f4163636f756e7420697320616c7265616479206275726e696e67206163636f756044820152611b9d60f21b606482015260840161051c565b6001600160a01b03166000818152600660205260408120805460ff191660019081179091556009805491820181559091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319169091179055565b6000600b548211156106665760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161051c565b60006106706114c9565b905061067c83826114ec565b9392505050565b3360008181526003602090815260408083206001600160a01b0387168452909152812054909161047f9185906104e3908661152e565b6000546001600160a01b031633146106e35760405162461bcd60e51b815260040161051c9061215f565b6106ee8160646122b7565b60105550565b3360008181526004602052604090205460ff16156107695760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b606482015260840161051c565b60006107748361158d565b5050506001600160a01b0386166000908152600160205260409020549394506107a293925084915050611611565b6001600160a01b038316600090815260016020526040902055600b546107c89082611611565b600b55600c546107d8908461152e565b600c55505050565b6000600a548311156108345760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604482015260640161051c565b816108545760006108448461158d565b5094965061048395505050505050565b600061085f8461158d565b5093965061048395505050505050565b6000546001600160a01b031633146108995760405162461bcd60e51b815260040161051c9061215f565b6108a48160646122b7565b600f5550565b6000546001600160a01b031633146108d45760405162461bcd60e51b815260040161051c9061215f565b6108df8160646122b7565b60115550565b6000546001600160a01b0316331461090f5760405162461bcd60e51b815260040161051c9061215f565b6001600160a01b03811660009081526005602052604090205460ff16156109785760405162461bcd60e51b815260206004820152601e60248201527f4163636f756e7420697320616c726561647920646576206163636f756e740000604482015260640161051c565b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6001600160a01b03811660009081526004602052604081205460ff1615610a1b57506001600160a01b031660009081526002602052604090205490565b6001600160a01b038216600090815260016020526040902054610483906105ff565b6000546001600160a01b03163314610a675760405162461bcd60e51b815260040161051c9061215f565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600061047f33846104e385604051806060016040528060258152602001612347602591393360009081526003602090815260408083206001600160a01b038d168452909152902054919061148f565b600061047f3384846110ca565b6000546001600160a01b03163314610b375760405162461bcd60e51b815260040161051c9061215f565b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0382161415610ba45760405162461bcd60e51b815260206004820152601e60248201527f57652063616e206e6f74206578636c7564652044455820726f757465722e0000604482015260640161051c565b6001600160a01b03811660009081526004602052604090205460ff1615610c0d5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015260640161051c565b6001600160a01b03811660009081526001602052604090205415610c67576001600160a01b038116600090815260016020526040902054610c4d906105ff565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600460205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319169091179055565b6000546001600160a01b03163314610cf75760405162461bcd60e51b815260040161051c9061215f565b6001600160a01b038116610d5c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161051c565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610de15760405162461bcd60e51b815260040161051c9061215f565b6001600160a01b03811660009081526004602052604090205460ff16610e495760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015260640161051c565b60005b600754811015610fa257816001600160a01b031660078281548110610e8157634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03161415610f905760078054610eac906001906122d6565b81548110610eca57634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600780546001600160a01b039092169183908110610f0457634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600490925220805460ff191690556007805480610f6a57634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610f9a816122ed565b915050610e4c565b5050565b6001600160a01b0383166110085760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161051c565b6001600160a01b0382166110695760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161051c565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661112e5760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161051c565b6001600160a01b0382166111905760405162461bcd60e51b815260206004820152602360248201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161051c565b600081116111f25760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161051c565b6001600160a01b03831660009081526005602052604090205460019060ff168061123457506001600160a01b03831660009081526005602052604090205460ff165b8061125757506001600160a01b03831660009081526004602052604090205460ff165b15611260575060005b8061126d5761126d611653565b6000546001600160a01b0385811691161480159061129957506000546001600160a01b03848116911614155b15611319576112aa6009600a61220f565b6112b9906402540be4006122b7565b8211156113195760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b606482015260840161051c565b6001600160a01b03841660009081526004602052604090205460ff16801561135a57506001600160a01b03831660009081526004602052604090205460ff16155b1561136f5761136a848484611698565b61146d565b6001600160a01b03841660009081526004602052604090205460ff161580156113b057506001600160a01b03831660009081526004602052604090205460ff165b156113c05761136a848484611776565b6001600160a01b03841660009081526004602052604090205460ff1615801561140257506001600160a01b03831660009081526004602052604090205460ff16155b156114125761136a8484846117d6565b6001600160a01b03841660009081526004602052604090205460ff16801561145257506001600160a01b03831660009081526004602052604090205460ff165b156114625761136a848484611835565b61146d8484846117d6565b8061148957611489601254600f55601354601055601454601155565b50505050565b600081848411156114b35760405162461bcd60e51b815260040161051c919061210c565b5060006114c084866122d6565b95945050505050565b60008060006114d6611896565b90925090506114e582826114ec565b9250505090565b600061067c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a50565b60008061153b8385612194565b90508381101561067c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161051c565b6000806000806000806000806000806115ae8b600f54601054601154611a7e565b92509250925060006115c28c858585611ad5565b905060006115ce6114c9565b90506000806115de8f8885611aed565b9150915060006115f18383898988611b17565b929e50919c509a5091985093965091945092505050919395979092949650565b600061067c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061148f565b600f541580156116635750601054155b801561166f5750601154155b1561167657565b600f805460125560108054601355601180546014556000928390559082905555565b60006116a26114c9565b905060008060008060008060006116b88961158d565b965096509650965096509650965060006116db8984611b5390919063ffffffff16565b905060006116e9838b611b53565b90506116f88d8d8d8c8c611bd2565b611702838e611c76565b61170c848e611d78565b61171a878383888888611db6565b8b6001600160a01b03168d6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8860405161175f91815260200190565b60405180910390a350505050505050505050505050565b60006117806114c9565b905060008060008060008060006117968961158d565b965096509650965096509650965060006117b98984611b5390919063ffffffff16565b905060006117c7838b611b53565b90506116f88d8d888c8c611e1e565b60006117e06114c9565b905060008060008060008060006117f68961158d565b965096509650965096509650965060006118198984611b5390919063ffffffff16565b90506000611827838b611b53565b90506116f88d8d8b8b611ea6565b600061183f6114c9565b905060008060008060008060006118558961158d565b965096509650965096509650965060006118788984611b5390919063ffffffff16565b90506000611886838b611b53565b90506116f88d8d8d8c8a8d611f1a565b600b54600a546000918291825b600754811015611a20578260016000600784815481106118d357634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061194c575081600260006007848154811061192557634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561196257600b54600a54945094505050509091565b6119b6600160006007848154811061198a57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020548490611611565b9250611a0c60026000600784815481106119e057634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020548390611611565b915080611a18816122ed565b9150506118a3565b50600a54600b54611a30916114ec565b821015611a4757600b54600a549350935050509091565b90939092509050565b60008183611a715760405162461bcd60e51b815260040161051c919061210c565b5060006114c084866121ac565b6000808080611a9a6064611a9481818c8c611b53565b906114ec565b90506000611aaf6064611a9481818d8c611b53565b90506000611ac46064611a9481818e8c611b53565b929a91995091975095505050505050565b60006114c082611ae785818989611611565b90611611565b60008080611afb8685611b53565b90506000611b098686611b53565b919791965090945050505050565b600080611b248584611b53565b90506000611b328585611b53565b90506000611b4682611ae785818d8d611611565b9998505050505050505050565b600082611b6257506000610483565b6000611b6e83856122b7565b905082611b7b85836121ac565b1461067c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161051c565b6001600160a01b038516600090815260026020526040902054611bf59084611611565b6001600160a01b038616600090815260026020908152604080832093909355600190522054611c249083611611565b6001600160a01b038087166000908152600160205260408082209390935590861681522054611c53908261152e565b6001600160a01b0390941660009081526001602052604090209390935550505050565b6000611c806114c9565b90506000611c8e8483611b53565b905060006008600081548110611cb457634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168083526001909152604090912054909150611ce6908361152e565b6001600160a01b038216600090815260016020908152604080832093909355600290522054611d15908661152e565b6001600160a01b0380831660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d699089815260200190565b60405180910390a35050505050565b6000611d826114c9565b90506000611d908483611b53565b905060006009600081548110611cb457634e487b7160e01b600052603260045260246000fd5b611dd384611ae787611ae78a600b5461161190919063ffffffff16565b600b55600c54611de3908461152e565b600c55600d54611df3908361152e565b600d55600e54611e03908261152e565b600e55600a54611e139083611611565b600a55505050505050565b6001600160a01b038516600090815260016020526040902054611e419083611611565b6001600160a01b03808716600090815260016020908152604080832094909455918716815260029091522054611e77908461152e565b6001600160a01b038516600090815260026020908152604080832093909355600190522054611c53908261152e565b6001600160a01b038416600090815260016020526040902054611ec99083611611565b6001600160a01b038086166000908152600160205260408082209390935590851681522054611ef8908261152e565b6001600160a01b03909316600090815260016020526040902092909255505050565b6001600160a01b038616600090815260026020526040902054611f3d9085611611565b6001600160a01b038716600090815260026020908152604080832093909355600190522054611f6c9084611611565b6001600160a01b03808816600090815260016020908152604080832094909455918816815260029091522054611fa2908361152e565b6001600160a01b038616600090815260026020908152604080832093909355600190522054611fd1908261152e565b6001600160a01b039095166000908152600160205260409020949094555050505050565b80356001600160a01b038116811461200c57600080fd5b919050565b600060208284031215612022578081fd5b61067c82611ff5565b6000806040838503121561203d578081fd5b61204683611ff5565b915061205460208401611ff5565b90509250929050565b600080600060608486031215612071578081fd5b61207a84611ff5565b925061208860208501611ff5565b9150604084013590509250925092565b600080604083850312156120aa578182fd5b6120b383611ff5565b946020939093013593505050565b6000602082840312156120d2578081fd5b5035919050565b600080604083850312156120eb578182fd5b8235915060208301358015158114612101578182fd5b809150509250929050565b6000602080835283518082850152825b818110156121385785810183015185820160400152820161211c565b818111156121495783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082198211156121a7576121a7612308565b500190565b6000826121c757634e487b7160e01b81526012600452602481fd5b500490565b600181815b808511156122075781600019048211156121ed576121ed612308565b808516156121fa57918102915b93841c93908002906121d1565b509250929050565b600061067c838360008261222557506001610483565b8161223257506000610483565b816001811461224857600281146122525761226e565b6001915050610483565b60ff84111561226357612263612308565b50506001821b610483565b5060208310610133831016604e8410600b8410161715612291575081810a610483565b61229b83836121cc565b80600019048211156122af576122af612308565b029392505050565b60008160001904831182151516156122d1576122d1612308565b500290565b6000828210156122e8576122e8612308565b500390565b600060001982141561230157612301612308565b5060010190565b634e487b7160e01b600052601160045260246000fdfe42455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122004014a333e6e2074ec259b66d4d22b15e70bea71dbbb773c24e98302a4c4da7264736f6c63430008040033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101cf5760003560e01c80634549b0391161010457806395d89b41116100a2578063dd62ed3e11610071578063dd62ed3e14610400578063f2cc0c1814610439578063f2fde38b1461044c578063f84354f11461045f57600080fd5b806395d89b411461038b578063a457c2d7146103ae578063a9059cbb146103c1578063cba0e996146103d457600080fd5b8063683f1927116100de578063683f19271461034257806370a0823114610355578063715018a6146103685780638da5cb5b1461037057600080fd5b80634549b039146103095780635880b8731461031c57806359f1707d1461032f57600080fd5b80632525140611610171578063395093511161014b57806339509351146102c85780633b6b1961146102db5780633bd5d173146102ee5780633c9f861d1461030157600080fd5b806325251406146102915780632d838119146102a6578063313ce567146102b957600080fd5b806313114a9d116101ad57806313114a9d1461025c57806318160ddd1461026e5780631c02164d1461027657806323b872dd1461027e57600080fd5b806306fdde03146101d4578063095ea7b31461020d5780630c3f64bf14610230575b600080fd5b60408051808201909152600b81526a5368696261204368756c6f60a81b60208201525b604051610204919061210c565b60405180910390f35b61022061021b366004612098565b610472565b6040519015158152602001610204565b61022061023e366004612011565b6001600160a01b031660009081526005602052604090205460ff1690565b600c545b604051908152602001610204565b600a54610260565b600e54610260565b61022061028c36600461205d565b610489565b6102a461029f366004612011565b6104f2565b005b6102606102b43660046120c1565b6105ff565b60405160098152602001610204565b6102206102d6366004612098565b610683565b6102a46102e93660046120c1565b6106b9565b6102a46102fc3660046120c1565b6106f4565b600d54610260565b6102606103173660046120d9565b6107e0565b6102a461032a3660046120c1565b61086f565b6102a461033d3660046120c1565b6108aa565b6102a4610350366004612011565b6108e5565b610260610363366004612011565b6109de565b6102a4610a3d565b6000546040516001600160a01b039091168152602001610204565b6040805180820190915260078152665348494243485560c81b60208201526101f7565b6102206103bc366004612098565b610ab1565b6102206103cf366004612098565b610b00565b6102206103e2366004612011565b6001600160a01b031660009081526004602052604090205460ff1690565b61026061040e36600461202b565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6102a4610447366004612011565b610b0d565b6102a461045a366004612011565b610ccd565b6102a461046d366004612011565b610db7565b600061047f338484610fa6565b5060015b92915050565b60006104968484846110ca565b6104e884336104e38560405180606001604052806028815260200161231f602891396001600160a01b038a166000908152600360209081526040808320338452909152902054919061148f565b610fa6565b5060019392505050565b6000546001600160a01b031633146105255760405162461bcd60e51b815260040161051c9061215f565b60405180910390fd5b6001600160a01b03811660009081526006602052604090205460ff16156105995760405162461bcd60e51b815260206004820152602260248201527f4163636f756e7420697320616c7265616479206275726e696e67206163636f756044820152611b9d60f21b606482015260840161051c565b6001600160a01b03166000818152600660205260408120805460ff191660019081179091556009805491820181559091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319169091179055565b6000600b548211156106665760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161051c565b60006106706114c9565b905061067c83826114ec565b9392505050565b3360008181526003602090815260408083206001600160a01b0387168452909152812054909161047f9185906104e3908661152e565b6000546001600160a01b031633146106e35760405162461bcd60e51b815260040161051c9061215f565b6106ee8160646122b7565b60105550565b3360008181526004602052604090205460ff16156107695760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b606482015260840161051c565b60006107748361158d565b5050506001600160a01b0386166000908152600160205260409020549394506107a293925084915050611611565b6001600160a01b038316600090815260016020526040902055600b546107c89082611611565b600b55600c546107d8908461152e565b600c55505050565b6000600a548311156108345760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604482015260640161051c565b816108545760006108448461158d565b5094965061048395505050505050565b600061085f8461158d565b5093965061048395505050505050565b6000546001600160a01b031633146108995760405162461bcd60e51b815260040161051c9061215f565b6108a48160646122b7565b600f5550565b6000546001600160a01b031633146108d45760405162461bcd60e51b815260040161051c9061215f565b6108df8160646122b7565b60115550565b6000546001600160a01b0316331461090f5760405162461bcd60e51b815260040161051c9061215f565b6001600160a01b03811660009081526005602052604090205460ff16156109785760405162461bcd60e51b815260206004820152601e60248201527f4163636f756e7420697320616c726561647920646576206163636f756e740000604482015260640161051c565b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6001600160a01b03811660009081526004602052604081205460ff1615610a1b57506001600160a01b031660009081526002602052604090205490565b6001600160a01b038216600090815260016020526040902054610483906105ff565b6000546001600160a01b03163314610a675760405162461bcd60e51b815260040161051c9061215f565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600061047f33846104e385604051806060016040528060258152602001612347602591393360009081526003602090815260408083206001600160a01b038d168452909152902054919061148f565b600061047f3384846110ca565b6000546001600160a01b03163314610b375760405162461bcd60e51b815260040161051c9061215f565b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0382161415610ba45760405162461bcd60e51b815260206004820152601e60248201527f57652063616e206e6f74206578636c7564652044455820726f757465722e0000604482015260640161051c565b6001600160a01b03811660009081526004602052604090205460ff1615610c0d5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015260640161051c565b6001600160a01b03811660009081526001602052604090205415610c67576001600160a01b038116600090815260016020526040902054610c4d906105ff565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600460205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319169091179055565b6000546001600160a01b03163314610cf75760405162461bcd60e51b815260040161051c9061215f565b6001600160a01b038116610d5c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161051c565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610de15760405162461bcd60e51b815260040161051c9061215f565b6001600160a01b03811660009081526004602052604090205460ff16610e495760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015260640161051c565b60005b600754811015610fa257816001600160a01b031660078281548110610e8157634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03161415610f905760078054610eac906001906122d6565b81548110610eca57634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600780546001600160a01b039092169183908110610f0457634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600490925220805460ff191690556007805480610f6a57634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610f9a816122ed565b915050610e4c565b5050565b6001600160a01b0383166110085760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161051c565b6001600160a01b0382166110695760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161051c565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661112e5760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161051c565b6001600160a01b0382166111905760405162461bcd60e51b815260206004820152602360248201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161051c565b600081116111f25760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161051c565b6001600160a01b03831660009081526005602052604090205460019060ff168061123457506001600160a01b03831660009081526005602052604090205460ff165b8061125757506001600160a01b03831660009081526004602052604090205460ff165b15611260575060005b8061126d5761126d611653565b6000546001600160a01b0385811691161480159061129957506000546001600160a01b03848116911614155b15611319576112aa6009600a61220f565b6112b9906402540be4006122b7565b8211156113195760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b606482015260840161051c565b6001600160a01b03841660009081526004602052604090205460ff16801561135a57506001600160a01b03831660009081526004602052604090205460ff16155b1561136f5761136a848484611698565b61146d565b6001600160a01b03841660009081526004602052604090205460ff161580156113b057506001600160a01b03831660009081526004602052604090205460ff165b156113c05761136a848484611776565b6001600160a01b03841660009081526004602052604090205460ff1615801561140257506001600160a01b03831660009081526004602052604090205460ff16155b156114125761136a8484846117d6565b6001600160a01b03841660009081526004602052604090205460ff16801561145257506001600160a01b03831660009081526004602052604090205460ff165b156114625761136a848484611835565b61146d8484846117d6565b8061148957611489601254600f55601354601055601454601155565b50505050565b600081848411156114b35760405162461bcd60e51b815260040161051c919061210c565b5060006114c084866122d6565b95945050505050565b60008060006114d6611896565b90925090506114e582826114ec565b9250505090565b600061067c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a50565b60008061153b8385612194565b90508381101561067c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161051c565b6000806000806000806000806000806115ae8b600f54601054601154611a7e565b92509250925060006115c28c858585611ad5565b905060006115ce6114c9565b90506000806115de8f8885611aed565b9150915060006115f18383898988611b17565b929e50919c509a5091985093965091945092505050919395979092949650565b600061067c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061148f565b600f541580156116635750601054155b801561166f5750601154155b1561167657565b600f805460125560108054601355601180546014556000928390559082905555565b60006116a26114c9565b905060008060008060008060006116b88961158d565b965096509650965096509650965060006116db8984611b5390919063ffffffff16565b905060006116e9838b611b53565b90506116f88d8d8d8c8c611bd2565b611702838e611c76565b61170c848e611d78565b61171a878383888888611db6565b8b6001600160a01b03168d6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8860405161175f91815260200190565b60405180910390a350505050505050505050505050565b60006117806114c9565b905060008060008060008060006117968961158d565b965096509650965096509650965060006117b98984611b5390919063ffffffff16565b905060006117c7838b611b53565b90506116f88d8d888c8c611e1e565b60006117e06114c9565b905060008060008060008060006117f68961158d565b965096509650965096509650965060006118198984611b5390919063ffffffff16565b90506000611827838b611b53565b90506116f88d8d8b8b611ea6565b600061183f6114c9565b905060008060008060008060006118558961158d565b965096509650965096509650965060006118788984611b5390919063ffffffff16565b90506000611886838b611b53565b90506116f88d8d8d8c8a8d611f1a565b600b54600a546000918291825b600754811015611a20578260016000600784815481106118d357634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061194c575081600260006007848154811061192557634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561196257600b54600a54945094505050509091565b6119b6600160006007848154811061198a57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020548490611611565b9250611a0c60026000600784815481106119e057634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020548390611611565b915080611a18816122ed565b9150506118a3565b50600a54600b54611a30916114ec565b821015611a4757600b54600a549350935050509091565b90939092509050565b60008183611a715760405162461bcd60e51b815260040161051c919061210c565b5060006114c084866121ac565b6000808080611a9a6064611a9481818c8c611b53565b906114ec565b90506000611aaf6064611a9481818d8c611b53565b90506000611ac46064611a9481818e8c611b53565b929a91995091975095505050505050565b60006114c082611ae785818989611611565b90611611565b60008080611afb8685611b53565b90506000611b098686611b53565b919791965090945050505050565b600080611b248584611b53565b90506000611b328585611b53565b90506000611b4682611ae785818d8d611611565b9998505050505050505050565b600082611b6257506000610483565b6000611b6e83856122b7565b905082611b7b85836121ac565b1461067c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161051c565b6001600160a01b038516600090815260026020526040902054611bf59084611611565b6001600160a01b038616600090815260026020908152604080832093909355600190522054611c249083611611565b6001600160a01b038087166000908152600160205260408082209390935590861681522054611c53908261152e565b6001600160a01b0390941660009081526001602052604090209390935550505050565b6000611c806114c9565b90506000611c8e8483611b53565b905060006008600081548110611cb457634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168083526001909152604090912054909150611ce6908361152e565b6001600160a01b038216600090815260016020908152604080832093909355600290522054611d15908661152e565b6001600160a01b0380831660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d699089815260200190565b60405180910390a35050505050565b6000611d826114c9565b90506000611d908483611b53565b905060006009600081548110611cb457634e487b7160e01b600052603260045260246000fd5b611dd384611ae787611ae78a600b5461161190919063ffffffff16565b600b55600c54611de3908461152e565b600c55600d54611df3908361152e565b600d55600e54611e03908261152e565b600e55600a54611e139083611611565b600a55505050505050565b6001600160a01b038516600090815260016020526040902054611e419083611611565b6001600160a01b03808716600090815260016020908152604080832094909455918716815260029091522054611e77908461152e565b6001600160a01b038516600090815260026020908152604080832093909355600190522054611c53908261152e565b6001600160a01b038416600090815260016020526040902054611ec99083611611565b6001600160a01b038086166000908152600160205260408082209390935590851681522054611ef8908261152e565b6001600160a01b03909316600090815260016020526040902092909255505050565b6001600160a01b038616600090815260026020526040902054611f3d9085611611565b6001600160a01b038716600090815260026020908152604080832093909355600190522054611f6c9084611611565b6001600160a01b03808816600090815260016020908152604080832094909455918816815260029091522054611fa2908361152e565b6001600160a01b038616600090815260026020908152604080832093909355600190522054611fd1908261152e565b6001600160a01b039095166000908152600160205260409020949094555050505050565b80356001600160a01b038116811461200c57600080fd5b919050565b600060208284031215612022578081fd5b61067c82611ff5565b6000806040838503121561203d578081fd5b61204683611ff5565b915061205460208401611ff5565b90509250929050565b600080600060608486031215612071578081fd5b61207a84611ff5565b925061208860208501611ff5565b9150604084013590509250925092565b600080604083850312156120aa578182fd5b6120b383611ff5565b946020939093013593505050565b6000602082840312156120d2578081fd5b5035919050565b600080604083850312156120eb578182fd5b8235915060208301358015158114612101578182fd5b809150509250929050565b6000602080835283518082850152825b818110156121385785810183015185820160400152820161211c565b818111156121495783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082198211156121a7576121a7612308565b500190565b6000826121c757634e487b7160e01b81526012600452602481fd5b500490565b600181815b808511156122075781600019048211156121ed576121ed612308565b808516156121fa57918102915b93841c93908002906121d1565b509250929050565b600061067c838360008261222557506001610483565b8161223257506000610483565b816001811461224857600281146122525761226e565b6001915050610483565b60ff84111561226357612263612308565b50506001821b610483565b5060208310610133831016604e8410600b8410161715612291575081810a610483565b61229b83836121cc565b80600019048211156122af576122af612308565b029392505050565b60008160001904831182151516156122d1576122d1612308565b500290565b6000828210156122e8576122e8612308565b500390565b600060001982141561230157612301612308565b5060010190565b634e487b7160e01b600052601160045260246000fdfe42455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122004014a333e6e2074ec259b66d4d22b15e70bea71dbbb773c24e98302a4c4da7264736f6c63430008040033

Deployed Bytecode Sourcemap

6665:16889:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8276:83;8346:5;;;;;;;;;;;;-1:-1:-1;;;8346:5:0;;;;8276:83;;;;;;;:::i;:::-;;;;;;;;9174:161;;;;;;:::i;:::-;;:::i;:::-;;;2214:14:1;;2207:22;2189:41;;2177:2;2162:18;9174:161:0;2144:92:1;10275:100:0;;;;;;:::i;:::-;-1:-1:-1;;;;;10352:15:0;10328:4;10352:15;;;:6;:15;;;;;;;;;10275:100;10381:87;10450:10;;10381:87;;;9619:25:1;;;9607:2;9592:18;10381:87:0;9574:76:1;8547:95:0;8627:7;;8547:95;;10568:86;10636:10;;10568:86;;9341:313;;;;;;:::i;:::-;;:::i;12885:211::-;;;;;;:::i;:::-;;:::i;:::-;;11488:253;;;;;;:::i;:::-;;:::i;8458:83::-;;;7342:1;9797:36:1;;9785:2;9770:18;8458:83:0;9752:87:1;9660:218:0;;;;;;:::i;:::-;;:::i;13206:102::-;;;;;;:::i;:::-;;:::i;10660:378::-;;;;;;:::i;:::-;;:::i;10474:88::-;10543:11;;10474:88;;11044:438;;;;;;:::i;:::-;;:::i;13102:98::-;;;;;;:::i;:::-;;:::i;13314:::-;;;;;;:::i;:::-;;:::i;12676:203::-;;;;;;:::i;:::-;;:::i;8648:198::-;;;;;;:::i;:::-;;:::i;6259:148::-;;;:::i;6049:79::-;6087:7;6114:6;6049:79;;-1:-1:-1;;;;;6114:6:0;;;1987:51:1;;1975:2;1960:18;6049:79:0;1942:102:1;8365:87:0;8437:7;;;;;;;;;;;;-1:-1:-1;;;8437:7:0;;;;8365:87;;9884:269;;;;;;:::i;:::-;;:::i;8852:167::-;;;;;;:::i;:::-;;:::i;10159:110::-;;;;;;:::i;:::-;-1:-1:-1;;;;;10241:20:0;10217:4;10241:20;;;:11;:20;;;;;;;;;10159:110;9025:143;;;;;;:::i;:::-;-1:-1:-1;;;;;9133:18:0;;;9106:7;9133:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9025:143;11747:439;;;;;;:::i;:::-;;:::i;6413:244::-;;;;;;:::i;:::-;;:::i;12192:478::-;;;;;;:::i;:::-;;:::i;9174:161::-;9249:4;9266:39;192:10;9289:7;9298:6;9266:8;:39::i;:::-;-1:-1:-1;9323:4:0;9174:161;;;;;:::o;9341:313::-;9439:4;9456:36;9466:6;9474:9;9485:6;9456:9;:36::i;:::-;9503:121;9512:6;192:10;9534:89;9572:6;9534:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9534:19:0;;;;;;:11;:19;;;;;;;;192:10;9534:33;;;;;;;;;;:37;:89::i;:::-;9503:8;:121::i;:::-;-1:-1:-1;9642:4:0;9341:313;;;;;:::o;12885:211::-;6174:6;;-1:-1:-1;;;;;6174:6:0;192:10;6174:22;6166:67;;;;-1:-1:-1;;;6166:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;12969:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;::::1;;12968:17;12960:64;;;::::0;-1:-1:-1;;;12960:64:0;;3457:2:1;12960:64:0::1;::::0;::::1;3439:21:1::0;3496:2;3476:18;;;3469:30;3535:34;3515:18;;;3508:62;-1:-1:-1;;;3586:18:1;;;3579:32;3628:19;;12960:64:0::1;3429:224:1::0;12960:64:0::1;-1:-1:-1::0;;;;;13035:16:0::1;;::::0;;;:7:::1;:16;::::0;;;;:23;;-1:-1:-1;;13035:23:0::1;13054:4;13035:23:::0;;::::1;::::0;;;13069:5:::1;:19:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;13069:19:0::1;::::0;;::::1;::::0;;12885:211::o;11488:253::-;11554:7;11593;;11582;:18;;11574:73;;;;-1:-1:-1;;;11574:73:0;;4983:2:1;11574:73:0;;;4965:21:1;5022:2;5002:18;;;4995:30;5061:34;5041:18;;;5034:62;-1:-1:-1;;;5112:18:1;;;5105:40;5162:19;;11574:73:0;4955:232:1;11574:73:0;11658:19;11681:10;:8;:10::i;:::-;11658:33;-1:-1:-1;11709:24:0;:7;11658:33;11709:11;:24::i;:::-;11702:31;11488:253;-1:-1:-1;;;11488:253:0:o;9660:218::-;192:10;9748:4;9797:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;9797:34:0;;;;;;;;;;9748:4;;9765:83;;9788:7;;9797:50;;9836:10;9797:38;:50::i;13206:102::-;6174:6;;-1:-1:-1;;;;;6174:6:0;192:10;6174:22;6166:67;;;;-1:-1:-1;;;6166:67:0;;;;;;;:::i;:::-;13288:12:::1;:7:::0;13297:3:::1;13288:12;:::i;:::-;13276:9;:24:::0;-1:-1:-1;13206:102:0:o;10660:378::-;192:10;10712:14;10761:19;;;:11;:19;;;;;;;;10760:20;10752:77;;;;-1:-1:-1;;;10752:77:0;;8859:2:1;10752:77:0;;;8841:21:1;8898:2;8878:18;;;8871:30;8937:34;8917:18;;;8910:62;-1:-1:-1;;;8988:18:1;;;8981:42;9040:19;;10752:77:0;8831:234:1;10752:77:0;10841:15;10866:19;10877:7;10866:10;:19::i;:::-;-1:-1:-1;;;;;;;;10914:15:0;;;;;;:7;:15;;;;;;10840:45;;-1:-1:-1;10914:28:0;;:15;-1:-1:-1;10840:45:0;;-1:-1:-1;;10914:19:0;:28::i;:::-;-1:-1:-1;;;;;10896:15:0;;;;;;:7;:15;;;;;:46;10963:7;;:20;;10975:7;10963:11;:20::i;:::-;10953:7;:30;11007:10;;:23;;11022:7;11007:14;:23::i;:::-;10994:10;:36;-1:-1:-1;;;10660:378:0:o;11044:438::-;11134:7;11173;;11162;:18;;11154:62;;;;-1:-1:-1;;;11154:62:0;;6513:2:1;11154:62:0;;;6495:21:1;6552:2;6532:18;;;6525:30;6591:33;6571:18;;;6564:61;6642:18;;11154:62:0;6485:181:1;11154:62:0;11232:17;11227:248;;11267:15;11292:19;11303:7;11292:10;:19::i;:::-;-1:-1:-1;11266:45:0;;-1:-1:-1;11326:14:0;;-1:-1:-1;;;;;;11326:14:0;11227:248;11375:23;11407:19;11418:7;11407:10;:19::i;:::-;-1:-1:-1;11373:53:0;;-1:-1:-1;11441:22:0;;-1:-1:-1;;;;;;11441:22:0;13102:98;6174:6;;-1:-1:-1;;;;;6174:6:0;192:10;6174:22;6166:67;;;;-1:-1:-1;;;6166:67:0;;;;;;;:::i;:::-;13181:11:::1;:6:::0;13189:3:::1;13181:11;:::i;:::-;13170:8;:22:::0;-1:-1:-1;13102:98:0:o;13314:::-;6174:6;;-1:-1:-1;;;;;6174:6:0;192:10;6174:22;6166:67;;;;-1:-1:-1;;;6166:67:0;;;;;;;:::i;:::-;13393:11:::1;:6:::0;13401:3:::1;13393:11;:::i;:::-;13382:8;:22:::0;-1:-1:-1;13314:98:0:o;12676:203::-;6174:6;;-1:-1:-1;;;;;6174:6:0;192:10;6174:22;6166:67;;;;-1:-1:-1;;;6166:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12759:15:0;::::1;;::::0;;;:6:::1;:15;::::0;;;;;::::1;;12758:16;12750:59;;;::::0;-1:-1:-1;;;12750:59:0;;3860:2:1;12750:59:0::1;::::0;::::1;3842:21:1::0;3899:2;3879:18;;;3872:30;3938:32;3918:18;;;3911:60;3988:18;;12750:59:0::1;3832:180:1::0;12750:59:0::1;-1:-1:-1::0;;;;;12820:15:0::1;;::::0;;;:6:::1;:15;::::0;;;;:22;;-1:-1:-1;;12820:22:0::1;12838:4;12820:22:::0;;::::1;::::0;;;12853:4:::1;:18:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;12853:18:0::1;::::0;;::::1;::::0;;12676:203::o;8648:198::-;-1:-1:-1;;;;;8738:20:0;;8714:7;8738:20;;;:11;:20;;;;;;;;8734:49;;;-1:-1:-1;;;;;;8767:16:0;;;;;:7;:16;;;;;;;8648:198::o;8734:49::-;-1:-1:-1;;;;;8821:16:0;;;;;;:7;:16;;;;;;8801:37;;:19;:37::i;6259:148::-;6174:6;;-1:-1:-1;;;;;6174:6:0;192:10;6174:22;6166:67;;;;-1:-1:-1;;;6166:67:0;;;;;;;:::i;:::-;6366:1:::1;6350:6:::0;;6329:40:::1;::::0;-1:-1:-1;;;;;6350:6:0;;::::1;::::0;6329:40:::1;::::0;6366:1;;6329:40:::1;6397:1;6380:19:::0;;-1:-1:-1;;;;;;6380:19:0::1;::::0;;6259:148::o;9884:269::-;9977:4;9994:129;192:10;10017:7;10026:96;10065:15;10026:96;;;;;;;;;;;;;;;;;192:10;10026:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;10026:34:0;;;;;;;;;;;;:38;:96::i;8852:167::-;8930:4;8947:42;192:10;8971:9;8982:6;8947:9;:42::i;11747:439::-;6174:6;;-1:-1:-1;;;;;6174:6:0;192:10;6174:22;6166:67;;;;-1:-1:-1;;;6166:67:0;;;;;;;:::i;:::-;11839:42:::1;-1:-1:-1::0;;;;;11828:53:0;::::1;;;11820:96;;;::::0;-1:-1:-1;;;11820:96:0;;4624:2:1;11820:96:0::1;::::0;::::1;4606:21:1::0;4663:2;4643:18;;;4636:30;4702:32;4682:18;;;4675:60;4752:18;;11820:96:0::1;4596:180:1::0;11820:96:0::1;-1:-1:-1::0;;;;;11936:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;11935:21;11927:61;;;::::0;-1:-1:-1;;;11927:61:0;;6157:2:1;11927:61:0::1;::::0;::::1;6139:21:1::0;6196:2;6176:18;;;6169:30;6235:29;6215:18;;;6208:57;6282:18;;11927:61:0::1;6129:177:1::0;11927:61:0::1;-1:-1:-1::0;;;;;12002:16:0;::::1;12021:1;12002:16:::0;;;:7:::1;:16;::::0;;;;;:20;11999:108:::1;;-1:-1:-1::0;;;;;12078:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;12058:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;12039:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;11999:108:::1;-1:-1:-1::0;;;;;12117:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;12117:27:0::1;12140:4;12117:27:::0;;::::1;::::0;;;12155:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;12155:23:0::1;::::0;;::::1;::::0;;11747:439::o;6413:244::-;6174:6;;-1:-1:-1;;;;;6174:6:0;192:10;6174:22;6166:67;;;;-1:-1:-1;;;6166:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6502:22:0;::::1;6494:73;;;::::0;-1:-1:-1;;;6494:73:0;;5394:2:1;6494:73:0::1;::::0;::::1;5376:21:1::0;5433:2;5413:18;;;5406:30;5472:34;5452:18;;;5445:62;-1:-1:-1;;;5523:18:1;;;5516:36;5569:19;;6494:73:0::1;5366:228:1::0;6494:73:0::1;6604:6;::::0;;6583:38:::1;::::0;-1:-1:-1;;;;;6583:38:0;;::::1;::::0;6604:6;::::1;::::0;6583:38:::1;::::0;::::1;6632:6;:17:::0;;-1:-1:-1;;;;;;6632:17:0::1;-1:-1:-1::0;;;;;6632:17:0;;;::::1;::::0;;;::::1;::::0;;6413:244::o;12192:478::-;6174:6;;-1:-1:-1;;;;;6174:6:0;192:10;6174:22;6166:67;;;;-1:-1:-1;;;6166:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12273:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;12265:60;;;::::0;-1:-1:-1;;;12265:60:0;;6157:2:1;12265:60:0::1;::::0;::::1;6139:21:1::0;6196:2;6176:18;;;6169:30;6235:29;6215:18;;;6208:57;6282:18;;12265:60:0::1;6129:177:1::0;12265:60:0::1;12341:9;12336:327;12360:9;:16:::0;12356:20;::::1;12336:327;;;12418:7;-1:-1:-1::0;;;;;12402:23:0::1;:9;12412:1;12402:12;;;;;;-1:-1:-1::0;;;12402:12:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;12402:12:0::1;:23;12398:254;;;12461:9;12471:16:::0;;:20:::1;::::0;12490:1:::1;::::0;12471:20:::1;:::i;:::-;12461:31;;;;;;-1:-1:-1::0;;;12461:31:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;12446:9:::1;:12:::0;;-1:-1:-1;;;;;12461:31:0;;::::1;::::0;12456:1;;12446:12;::::1;;;-1:-1:-1::0;;;12446:12:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;12446:46:0::1;-1:-1:-1::0;;;;;12446:46:0;;::::1;;::::0;;12511:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;12550:11:::1;:20:::0;;;;:28;;-1:-1:-1;;12550:28:0::1;::::0;;12597:9:::1;:15:::0;;;::::1;;-1:-1:-1::0;;;12597:15:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;;-1:-1:-1;;12597:15:0;;;;;-1:-1:-1;;;;;;12597:15:0::1;::::0;;;;;12336:327:::1;12192:478:::0;:::o;12398:254::-:1;12378:3:::0;::::1;::::0;::::1;:::i;:::-;;;;12336:327;;;;12192:478:::0;:::o;13418:335::-;-1:-1:-1;;;;;13511:19:0;;13503:68;;;;-1:-1:-1;;;13503:68:0;;4219:2:1;13503:68:0;;;4201:21:1;4258:2;4238:18;;;4231:30;4297:34;4277:18;;;4270:62;-1:-1:-1;;;4348:18:1;;;4341:34;4392:19;;13503:68:0;4191:226:1;13503:68:0;-1:-1:-1;;;;;13590:21:0;;13582:68;;;;-1:-1:-1;;;13582:68:0;;9272:2:1;13582:68:0;;;9254:21:1;9311:2;9291:18;;;9284:30;9350:34;9330:18;;;9323:62;-1:-1:-1;;;9401:18:1;;;9394:32;9443:19;;13582:68:0;9244:224:1;13582:68:0;-1:-1:-1;;;;;13661:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13713:32;;9619:25:1;;;13713:32:0;;9592:18:1;13713:32:0;;;;;;;13418:335;;;:::o;13759:1305::-;-1:-1:-1;;;;;13856:20:0;;13848:70;;;;-1:-1:-1;;;13848:70:0;;3051:2:1;13848:70:0;;;3033:21:1;3090:2;3070:18;;;3063:30;3129:34;3109:18;;;3102:62;-1:-1:-1;;;3180:18:1;;;3173:35;3225:19;;13848:70:0;3023:227:1;13848:70:0;-1:-1:-1;;;;;13937:23:0;;13929:71;;;;-1:-1:-1;;;13929:71:0;;8455:2:1;13929:71:0;;;8437:21:1;8494:2;8474:18;;;8467:30;8533:34;8513:18;;;8506:62;-1:-1:-1;;;8584:18:1;;;8577:33;8627:19;;13929:71:0;8427:225:1;13929:71:0;14028:1;14019:6;:10;14011:64;;;;-1:-1:-1;;;14011:64:0;;8045:2:1;14011:64:0;;;8027:21:1;8084:2;8064:18;;;8057:30;8123:34;8103:18;;;8096:62;-1:-1:-1;;;8174:18:1;;;8167:39;8223:19;;14011:64:0;8017:231:1;14011:64:0;-1:-1:-1;;;;;14120:14:0;;14086:12;14120:14;;;:6;:14;;;;;;14101:4;;14120:14;;;:35;;-1:-1:-1;;;;;;14138:17:0;;;;;;:6;:17;;;;;;;;14120:35;:61;;;-1:-1:-1;;;;;;14159:22:0;;;;;;:11;:22;;;;;;;;14120:61;14116:109;;;-1:-1:-1;14208:5:0;14116:109;14240:7;14235:28;;14249:14;:12;:14::i;:::-;6087:7;6114:6;-1:-1:-1;;;;;14278:17:0;;;6114:6;;14278:17;;;;:41;;-1:-1:-1;6087:7:0;6114:6;-1:-1:-1;;;;;14299:20:0;;;6114:6;;14299:20;;14278:41;14274:135;;;7442:24;7342:1;7442:2;:24;:::i;:::-;7965:28;;:11;:28;:::i;:::-;14342:6;:22;;14334:75;;;;-1:-1:-1;;;14334:75:0;;6873:2:1;14334:75:0;;;6855:21:1;6912:2;6892:18;;;6885:30;6951:34;6931:18;;;6924:62;-1:-1:-1;;;7002:18:1;;;6995:38;7050:19;;14334:75:0;6845:230:1;14334:75:0;-1:-1:-1;;;;;14424:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;14448:22:0;;;;;;:11;:22;;;;;;;;14447:23;14424:46;14420:597;;;14487:48;14509:6;14517:9;14528:6;14487:21;:48::i;:::-;14420:597;;;-1:-1:-1;;;;;14558:19:0;;;;;;:11;:19;;;;;;;;14557:20;:46;;;;-1:-1:-1;;;;;;14581:22:0;;;;;;:11;:22;;;;;;;;14557:46;14553:464;;;14620:46;14640:6;14648:9;14659:6;14620:19;:46::i;14553:464::-;-1:-1:-1;;;;;14689:19:0;;;;;;:11;:19;;;;;;;;14688:20;:47;;;;-1:-1:-1;;;;;;14713:22:0;;;;;;:11;:22;;;;;;;;14712:23;14688:47;14684:333;;;14752:44;14770:6;14778:9;14789:6;14752:17;:44::i;14684:333::-;-1:-1:-1;;;;;14818:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;14841:22:0;;;;;;:11;:22;;;;;;;;14818:45;14814:203;;;14880:48;14902:6;14910:9;14921:6;14880:21;:48::i;14814:203::-;14961:44;14979:6;14987:9;14998:6;14961:17;:44::i;:::-;15032:7;15027:29;;15041:15;23268:12;;23257:8;:23;23303:13;;23291:9;:25;23338:12;;23327:8;:23;23213:145;15041:15;13759:1305;;;;:::o;1366:190::-;1452:7;1488:12;1480:6;;;;1472:29;;;;-1:-1:-1;;;1472:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1512:9:0;1524:5;1528:1;1524;:5;:::i;:::-;1512:17;1366:190;-1:-1:-1;;;;;1366:190:0:o;21429:163::-;21470:7;21491:15;21508;21527:19;:17;:19::i;:::-;21490:56;;-1:-1:-1;21490:56:0;-1:-1:-1;21564:20:0;21490:56;;21564:11;:20::i;:::-;21557:27;;;;21429:163;:::o;1814:132::-;1872:7;1899:39;1903:1;1906;1899:39;;;;;;;;;;;;;;;;;:3;:39::i;1039:179::-;1097:7;;1129:5;1133:1;1129;:5;:::i;:::-;1117:17;;1158:1;1153;:6;;1145:46;;;;-1:-1:-1;;;1145:46:0;;5801:2:1;1145:46:0;;;5783:21:1;5840:2;5820:18;;;5813:30;5879:29;5859:18;;;5852:57;5926:18;;1145:46:0;5773:177:1;19566:632:0;19625:7;19634;19643;19652;19661;19670;19679;19700:12;19714:13;19729:12;19745:51;19757:7;19766:8;;19776:9;;19787:8;;19745:11;:51::i;:::-;19699:97;;;;;;19807:23;19833:46;19852:7;19861:4;19867:5;19874:4;19833:18;:46::i;:::-;19807:72;;19890:19;19913:10;:8;:10::i;:::-;19890:33;;19935:15;19952:12;19968:39;19980:7;19989:4;19995:11;19968;:39::i;:::-;19934:73;;;;20018:23;20044:60;20064:7;20073:4;20079:5;20086:4;20092:11;20044:19;:60::i;:::-;20123:7;;-1:-1:-1;20018:86:0;;-1:-1:-1;20149:4:0;-1:-1:-1;20155:15:0;;-1:-1:-1;20172:4:0;;-1:-1:-1;20178:5:0;;-1:-1:-1;20185:4:0;-1:-1:-1;;;19566:632:0;;;;;;;;;:::o;1224:136::-;1282:7;1309:43;1313:1;1316;1309:43;;;;;;;;;;;;;;;;;:3;:43::i;22923:284::-;22969:8;;:13;:31;;;;-1:-1:-1;22986:9:0;;:14;22969:31;:48;;;;-1:-1:-1;23004:8:0;;:13;22969:48;22966:60;;;22923:284::o;22966:60::-;23051:8;;;23036:12;:23;23086:9;;;23070:13;:25;23121:8;;;23106:12;:23;-1:-1:-1;23140:12:0;;;;23163:13;;;;23187:12;22923:284::o;17057:680::-;17159:19;17182:10;:8;:10::i;:::-;17159:33;;17204:15;17221:23;17246:12;17260:23;17285:12;17299:13;17314:12;17330:19;17341:7;17330:10;:19::i;:::-;17203:146;;;;;;;;;;;;;;17360:13;17377:22;17387:11;17377:5;:9;;:22;;;;:::i;:::-;17360:39;-1:-1:-1;17410:12:0;17425:21;:4;17434:11;17425:8;:21::i;:::-;17410:36;;17457:80;17484:6;17492:9;17503:7;17512;17521:15;17457:26;:80::i;:::-;17548:24;17559:4;17565:6;17548:10;:24::i;:::-;17583:26;17595:5;17602:6;17583:11;:26::i;:::-;17620:49;17632:4;17638:5;17645:4;17651;17657:5;17664:4;17620:11;:49::i;:::-;17702:9;-1:-1:-1;;;;;17685:44:0;17694:6;-1:-1:-1;;;;;17685:44:0;;17713:15;17685:44;;;;9619:25:1;;9607:2;9592:18;;9574:76;17685:44:0;;;;;;;;17057:680;;;;;;;;;;;;;:::o;16002:688::-;16102:19;16125:10;:8;:10::i;:::-;16102:33;;16147:15;16164:23;16189:12;16203:23;16228:12;16242:13;16257:12;16273:19;16284:7;16273:10;:19::i;:::-;16146:146;;;;;;;;;;;;;;16303:13;16320:22;16330:11;16320:5;:9;;:22;;;;:::i;:::-;16303:39;-1:-1:-1;16353:12:0;16368:21;:4;16377:11;16368:8;:21::i;:::-;16353:36;;16400:90;16429:6;16437:9;16448:15;16465:7;16474:15;16400:28;:90::i;15070:665::-;15168:19;15191:10;:8;:10::i;:::-;15168:33;;15213:15;15230:23;15255:12;15269:23;15294:12;15308:13;15323:12;15339:19;15350:7;15339:10;:19::i;:::-;15212:146;;;;;;;;;;;;;;15369:13;15386:22;15396:11;15386:5;:9;;:22;;;;:::i;:::-;15369:39;-1:-1:-1;15419:12:0;15434:21;:4;15443:11;15434:8;:21::i;:::-;15419:36;;15466:69;15491:6;15499:9;15510:7;15519:15;15466:24;:69::i;18080:691::-;18182:19;18205:10;:8;:10::i;:::-;18182:33;;18227:15;18244:23;18269:12;18283:23;18308:12;18322:13;18337:12;18353:19;18364:7;18353:10;:19::i;:::-;18226:146;;;;;;;;;;;;;;18383:13;18400:22;18410:11;18400:5;:9;;:22;;;;:::i;:::-;18383:39;-1:-1:-1;18433:12:0;18448:21;:4;18457:11;18448:8;:21::i;:::-;18433:36;;18480:91;18501:6;18509:9;18520:7;18529;18538:15;18555;18480:20;:91::i;21598:555::-;21695:7;;21731;;21648;;;;;21749:289;21773:9;:16;21769:20;;21749:289;;;21839:7;21815;:21;21823:9;21833:1;21823:12;;;;;;-1:-1:-1;;;21823:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21823:12:0;21815:21;;;;;;;;;;;;;:31;;:66;;;21874:7;21850;:21;21858:9;21868:1;21858:12;;;;;;-1:-1:-1;;;21858:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21858:12:0;21850:21;;;;;;;;;;;;;:31;21815:66;21811:97;;;21891:7;;21900;;21883:25;;;;;;;21598:555;;:::o;21811:97::-;21933:34;21945:7;:21;21953:9;21963:1;21953:12;;;;;;-1:-1:-1;;;21953:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21953:12:0;21945:21;;;;;;;;;;;;;21933:7;;:11;:34::i;:::-;21923:44;;21992:34;22004:7;:21;22012:9;22022:1;22012:12;;;;;;-1:-1:-1;;;22012:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22012:12:0;22004:21;;;;;;;;;;;;;21992:7;;:11;:34::i;:::-;21982:44;-1:-1:-1;21791:3:0;;;;:::i;:::-;;;;21749:289;;;-1:-1:-1;22074:7:0;;22062;;:20;;:11;:20::i;:::-;22052:7;:30;22048:61;;;22092:7;;22101;;22084:25;;;;;;21598:555;;:::o;22048:61::-;22128:7;;22137;;-1:-1:-1;21598:555:0;-1:-1:-1;21598:555:0:o;1952:189::-;2038:7;2073:12;2066:5;2058:28;;;;-1:-1:-1;;;2058:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2097:9:0;2109:5;2113:1;2109;:5;:::i;20204:411::-;20313:7;;;;20366:50;20412:3;20367:39;20412:3;20367:39;20368:7;20380:6;20368:11;:19::i;:::-;20367:25;;:39::i;20366:50::-;20351:65;-1:-1:-1;20427:13:0;20443:51;20490:3;20444:40;20490:3;20444:40;20445:7;20457;20445:11;:20::i;20443:51::-;20427:67;-1:-1:-1;20505:12:0;20520:50;20566:3;20521:39;20566:3;20521:39;20522:7;20534:6;20522:11;:19::i;20520:50::-;20589:4;;20595:5;;-1:-1:-1;20589:4:0;;-1:-1:-1;20204:411:0;-1:-1:-1;;;;;;20204:411:0:o;20621:183::-;20731:7;20758:38;20791:4;20758:28;20780:5;20758:28;:7;20770:4;20758:11;:17::i;:::-;:21;;:28::i;20810:254::-;20905:7;;;20952:24;:7;20964:11;20952;:24::i;:::-;20934:42;-1:-1:-1;20987:12:0;21002:21;:4;21011:11;21002:8;:21::i;:::-;21042:7;;;;-1:-1:-1;20810:254:0;;-1:-1:-1;;;;;20810:254:0:o;21070:353::-;21202:7;;21238:22;:5;21248:11;21238:9;:22::i;:::-;21222:38;-1:-1:-1;21271:12:0;21286:21;:4;21295:11;21286:8;:21::i;:::-;21271:36;-1:-1:-1;21318:23:0;21344:38;21271:36;21344:28;21366:5;21344:28;:7;21356:4;21344:11;:17::i;:38::-;21318:64;21070:353;-1:-1:-1;;;;;;;;;21070:353:0:o;1562:246::-;1620:7;1644:6;1640:47;;-1:-1:-1;1674:1:0;1667:8;;1640:47;1697:9;1709:5;1713:1;1709;:5;:::i;:::-;1697:17;-1:-1:-1;1742:1:0;1733:5;1737:1;1697:17;1733:5;:::i;:::-;:10;1725:56;;;;-1:-1:-1;;;1725:56:0;;7282:2:1;1725:56:0;;;7264:21:1;7321:2;7301:18;;;7294:30;7360:34;7340:18;;;7333:62;-1:-1:-1;;;7411:18:1;;;7404:31;7452:19;;1725:56:0;7254:223:1;17743:331:0;-1:-1:-1;;;;;17910:15:0;;;;;;:7;:15;;;;;;:28;;17930:7;17910:19;:28::i;:::-;-1:-1:-1;;;;;17892:15:0;;;;;;:7;:15;;;;;;;;:46;;;;17967:7;:15;;;;:28;;17987:7;17967:19;:28::i;:::-;-1:-1:-1;;;;;17949:15:0;;;;;;;:7;:15;;;;;;:46;;;;18027:18;;;;;;;:39;;18050:15;18027:22;:39::i;:::-;-1:-1:-1;;;;;18006:18:0;;;;;;;:7;:18;;;;;:60;;;;-1:-1:-1;;;;17743:331:0:o;22159:369::-;22228:19;22250:10;:8;:10::i;:::-;22228:32;-1:-1:-1;22271:12:0;22286:21;:4;22228:32;22286:8;:21::i;:::-;22271:36;;22318:18;22339:4;22344:1;22339:7;;;;;;-1:-1:-1;;;22339:7:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22339:7:0;22379:19;;;22339:7;22379:19;;;;;;;;22339:7;;-1:-1:-1;22379:29:0;;22403:4;22379:23;:29::i;:::-;-1:-1:-1;;;;;22357:19:0;;;;;;:7;:19;;;;;;;;:51;;;;22441:7;:19;;;;:29;;22465:4;22441:23;:29::i;:::-;-1:-1:-1;;;;;22419:19:0;;;;;;;:7;:19;;;;;;;:51;;;;22486:34;;;;;;;;;;22515:4;9619:25:1;;9607:2;9592:18;;9574:76;22486:34:0;;;;;;;;22159:369;;;;;:::o;22534:383::-;22605:19;22627:10;:8;:10::i;:::-;22605:32;-1:-1:-1;22648:13:0;22664:22;:5;22605:32;22664:9;:22::i;:::-;22648:38;;22697:19;22719:5;22725:1;22719:8;;;;;;-1:-1:-1;;;22719:8:0;;;;;;;;19204:356;19340:38;19373:4;19340:28;19362:5;19340:17;19352:4;19340:7;;:11;;:17;;;;:::i;:38::-;19330:7;:48;19402:10;;:20;;19417:4;19402:14;:20::i;:::-;19389:10;:33;19447:11;;:22;;19463:5;19447:15;:22::i;:::-;19433:11;:36;19493:10;;:20;;19508:4;19493:14;:20::i;:::-;19480:10;:33;19534:7;;:18;;19546:5;19534:11;:18::i;:::-;19524:7;:28;-1:-1:-1;;;;;;19204:356:0:o;16696:355::-;-1:-1:-1;;;;;16873:15:0;;;;;;:7;:15;;;;;;:28;;16893:7;16873:19;:28::i;:::-;-1:-1:-1;;;;;16855:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;16933:18;;;;;:7;:18;;;;;:39;;16956:15;16933:22;:39::i;:::-;-1:-1:-1;;;;;16912:18:0;;;;;;:7;:18;;;;;;;;:60;;;;17004:7;:18;;;;:39;;17027:15;17004:22;:39::i;15741:255::-;-1:-1:-1;;;;;15889:15:0;;;;;;:7;:15;;;;;;:28;;15909:7;15889:19;:28::i;:::-;-1:-1:-1;;;;;15871:15:0;;;;;;;:7;:15;;;;;;:46;;;;15949:18;;;;;;;:39;;15972:15;15949:22;:39::i;:::-;-1:-1:-1;;;;;15928:18:0;;;;;;;:7;:18;;;;;:60;;;;-1:-1:-1;;;15741:255:0:o;18777:421::-;-1:-1:-1;;;;;18963:15:0;;;;;;:7;:15;;;;;;:28;;18983:7;18963:19;:28::i;:::-;-1:-1:-1;;;;;18945:15:0;;;;;;:7;:15;;;;;;;;:46;;;;19020:7;:15;;;;:28;;19040:7;19020:19;:28::i;:::-;-1:-1:-1;;;;;19002:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;19080:18;;;;;:7;:18;;;;;:39;;19103:15;19080:22;:39::i;:::-;-1:-1:-1;;;;;19059:18:0;;;;;;:7;:18;;;;;;;;:60;;;;19151:7;:18;;;;:39;;19174:15;19151:22;:39::i;:::-;-1:-1:-1;;;;;19130:18:0;;;;;;;:7;:18;;;;;:60;;;;-1:-1:-1;;;;;18777:421:0:o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:2;;177:1;174;167:12;111:2;63:124;;;:::o;192:196::-;251:6;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;393:270::-;461:6;469;522:2;510:9;501:7;497:23;493:32;490:2;;;543:6;535;528:22;490:2;571:29;590:9;571:29;:::i;:::-;561:39;;619:38;653:2;642:9;638:18;619:38;:::i;:::-;609:48;;480:183;;;;;:::o;668:338::-;745:6;753;761;814:2;802:9;793:7;789:23;785:32;782:2;;;835:6;827;820:22;782:2;863:29;882:9;863:29;:::i;:::-;853:39;;911:38;945:2;934:9;930:18;911:38;:::i;:::-;901:48;;996:2;985:9;981:18;968:32;958:42;;772:234;;;;;:::o;1011:264::-;1079:6;1087;1140:2;1128:9;1119:7;1115:23;1111:32;1108:2;;;1161:6;1153;1146:22;1108:2;1189:29;1208:9;1189:29;:::i;:::-;1179:39;1265:2;1250:18;;;;1237:32;;-1:-1:-1;;;1098:177:1:o;1280:190::-;1339:6;1392:2;1380:9;1371:7;1367:23;1363:32;1360:2;;;1413:6;1405;1398:22;1360:2;-1:-1:-1;1441:23:1;;1350:120;-1:-1:-1;1350:120:1:o;1475:361::-;1540:6;1548;1601:2;1589:9;1580:7;1576:23;1572:32;1569:2;;;1622:6;1614;1607:22;1569:2;1663:9;1650:23;1640:33;;1723:2;1712:9;1708:18;1695:32;1770:5;1763:13;1756:21;1749:5;1746:32;1736:2;;1797:6;1789;1782:22;1736:2;1825:5;1815:15;;;1559:277;;;;;:::o;2241:603::-;2353:4;2382:2;2411;2400:9;2393:21;2443:6;2437:13;2486:6;2481:2;2470:9;2466:18;2459:34;2511:4;2524:140;2538:6;2535:1;2532:13;2524:140;;;2633:14;;;2629:23;;2623:30;2599:17;;;2618:2;2595:26;2588:66;2553:10;;2524:140;;;2682:6;2679:1;2676:13;2673:2;;;2752:4;2747:2;2738:6;2727:9;2723:22;2719:31;2712:45;2673:2;-1:-1:-1;2828:2:1;2807:15;-1:-1:-1;;2803:29:1;2788:45;;;;2835:2;2784:54;;2362:482;-1:-1:-1;;;2362:482:1:o;7482:356::-;7684:2;7666:21;;;7703:18;;;7696:30;7762:34;7757:2;7742:18;;7735:62;7829:2;7814:18;;7656:182::o;9844:128::-;9884:3;9915:1;9911:6;9908:1;9905:13;9902:2;;;9921:18;;:::i;:::-;-1:-1:-1;9957:9:1;;9892:80::o;9977:217::-;10017:1;10043;10033:2;;-1:-1:-1;;;10068:31:1;;10122:4;10119:1;10112:15;10150:4;10075:1;10140:15;10033:2;-1:-1:-1;10179:9:1;;10023:171::o;10199:422::-;10288:1;10331:5;10288:1;10345:270;10366:7;10356:8;10353:21;10345:270;;;10425:4;10421:1;10417:6;10413:17;10407:4;10404:27;10401:2;;;10434:18;;:::i;:::-;10484:7;10474:8;10470:22;10467:2;;;10504:16;;;;10467:2;10583:22;;;;10543:15;;;;10345:270;;;10349:3;10263:358;;;;;:::o;10626:131::-;10686:5;10715:36;10742:8;10736:4;10811:5;10841:8;10831:2;;-1:-1:-1;10882:1:1;10896:5;;10831:2;10930:4;10920:2;;-1:-1:-1;10967:1:1;10981:5;;10920:2;11012:4;11030:1;11025:59;;;;11098:1;11093:130;;;;11005:218;;11025:59;11055:1;11046:10;;11069:5;;;11093:130;11130:3;11120:8;11117:17;11114:2;;;11137:18;;:::i;:::-;-1:-1:-1;;11193:1:1;11179:16;;11208:5;;11005:218;;11307:2;11297:8;11294:16;11288:3;11282:4;11279:13;11275:36;11269:2;11259:8;11256:16;11251:2;11245:4;11242:12;11238:35;11235:77;11232:2;;;-1:-1:-1;11344:19:1;;;11376:5;;11232:2;11423:34;11448:8;11442:4;11423:34;:::i;:::-;11493:6;11489:1;11485:6;11481:19;11472:7;11469:32;11466:2;;;11504:18;;:::i;:::-;11542:20;;10821:747;-1:-1:-1;;;10821:747:1:o;11573:168::-;11613:7;11679:1;11675;11671:6;11667:14;11664:1;11661:21;11656:1;11649:9;11642:17;11638:45;11635:2;;;11686:18;;:::i;:::-;-1:-1:-1;11726:9:1;;11625:116::o;11746:125::-;11786:4;11814:1;11811;11808:8;11805:2;;;11819:18;;:::i;:::-;-1:-1:-1;11856:9:1;;11795:76::o;11876:135::-;11915:3;-1:-1:-1;;11936:17:1;;11933:2;;;11956:18;;:::i;:::-;-1:-1:-1;12003:1:1;11992:13;;11923:88::o;12016:127::-;12077:10;12072:3;12068:20;12065:1;12058:31;12108:4;12105:1;12098:15;12132:4;12129:1;12122:15

Swarm Source

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