ETH Price: $3,278.48 (-0.25%)

Token

Avatar Inu (AVATAR)
 

Overview

Max Total Supply

1,000,000,000,000 AVATAR

Holders

97

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,844,344,897.59833685 AVATAR

Value
$0.00
0xf8f3257eb61a71ab9c6b31a8c21ca3d2a88d59ec
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:
AvatarInu

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-10-28
*/

/*
https://t.me/avatarinu
*/

/* 
SPDX-License-Identifier: UNLICENSED 
*/

pragma solidity ^0.8.4;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if(a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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

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

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}  

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract AvatarInu is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => User) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1e12 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    string private constant _name = unicode"Avatar Inu" ;
    string private constant _symbol = unicode"AVATAR";
    uint8 private constant _decimals = 9;
    uint256 private _taxFee = 6;
    uint256 private _teamFee = 4;
    
    uint256 private _defaultTaxFee = 5;
    uint256 private _defaultTeamFee = 5;
    
    uint256 private _feeRate = 5;
    uint256 private _feeMultiplier = 1000;
    uint256 private _launchTime;
    uint256 private _previousTaxFee = _taxFee;
    uint256 private _previousteamFee = _teamFee;
    uint256 private _maxBuyAmount;
    address payable private _FeeAddress;
    address payable private _marketingWalletAddress;
    address private _deployer = 0x12634B59C64341aa222e8F1D71B4160C8873F2C8;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private swapEnabled;
    bool private _cooldownEnabled = true;
    bool private inSwap = false;
    bool private _useImpactFeeSetter = true;
    uint256 private buyLimitEnd;
    struct User {
        uint256 buy;
        uint256 sell;
        bool exists;
    }

    event MaxBuyAmountUpdated(uint _maxBuyAmount);
    event CooldownEnabledUpdated(bool _cooldown);
    event FeeMultiplierUpdated(uint _multiplier);
    event FeeRateUpdated(uint _rate);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor (address payable FeeAddress, address payable marketingWalletAddress) {
        _FeeAddress = FeeAddress;
        _marketingWalletAddress = marketingWalletAddress;
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[FeeAddress] = true;
        _isExcludedFromFee[marketingWalletAddress] = true;
        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 pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if(_taxFee == 0 && _teamFee == 0) return;
        _previousTaxFee = _taxFee;
        _previousteamFee = _teamFee;
        _taxFee = 0;
        _teamFee = 0;
    }
    
    function restoreAllFee() private {
        _taxFee = _previousTaxFee;
        _teamFee = _previousteamFee;
    }

    function setFee(uint256 impactFee) private {
        uint256 _impactFee = 10;
        if(impactFee < 10) {
            _impactFee = 10;
        } else if(impactFee > 40) {
            _impactFee = 40;
        } else {
            _impactFee = impactFee;
        }
        if(_impactFee.mod(2) != 0) {
            _impactFee++;
        }
        _taxFee = (_impactFee.mul(1)).div(10);
        _teamFee = (_impactFee.mul(9)).div(10);
    }

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if(from != owner() && to != owner()) {
            if(_cooldownEnabled) {
                if(!cooldown[msg.sender].exists) {
                    cooldown[msg.sender] = User(0,0,true);
                }
            }

            // buy
            if(from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                require(tradingOpen, "Trading not yet enabled.");
                _taxFee = 1;
                _teamFee = 9;
                if(_cooldownEnabled) {
                    if(buyLimitEnd > block.timestamp) {
                        require(amount <= _maxBuyAmount);
                        require(cooldown[to].buy < block.timestamp, "Your buy cooldown has not expired.");
                        cooldown[to].buy = block.timestamp + (30 seconds);
                    }
                }
                if(_cooldownEnabled) {
                    cooldown[to].sell = block.timestamp + (15 seconds);
                }
            }
            uint256 contractTokenBalance = balanceOf(address(this));

            // sell
            if(!inSwap && from != uniswapV2Pair && tradingOpen && swapEnabled) {

                if(_cooldownEnabled) {
                    require(cooldown[from].sell < block.timestamp, "Your sell cooldown has not expired.");
                }

                if(_useImpactFeeSetter) {
                    uint256 feeBasis = amount.mul(_feeMultiplier);
                    feeBasis = feeBasis.div(balanceOf(uniswapV2Pair).add(amount));
                    setFee(feeBasis);
                } else {
                    _taxFee = _defaultTaxFee;
                    _teamFee = _defaultTeamFee;
                }

                if(contractTokenBalance > 0) {
                    if(contractTokenBalance > balanceOf(uniswapV2Pair).mul(_feeRate).div(100)) {
                        contractTokenBalance = balanceOf(uniswapV2Pair).mul(_feeRate).div(100);
                    }
                    swapTokensForEth(contractTokenBalance);
                }
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        bool takeFee = true;

        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
            takeFee = false;
        }
        
        _tokenTransfer(from,to,amount,takeFee);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
        
    function sendETHToFee(uint256 amount) private {
        _FeeAddress.transfer(amount.div(2));
        _marketingWalletAddress.transfer(amount.div(2));
    }
    
    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        if(!takeFee)
            removeAllFee();
        _transferStandard(sender, recipient, amount);
        if(!takeFee)
            restoreAllFee();
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 

        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _taxFee, _teamFee);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if(rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);

        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}
    
    function addLiquidity() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        _maxBuyAmount = 30000000000 * 10**9;
        _launchTime = block.timestamp;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function openTrading() public onlyOwner {
        tradingOpen = true;
        swapEnabled = true;
        buyLimitEnd = block.timestamp + (240 seconds);
    }

    function manualswap() external {
        require(_msgSender() == _deployer);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _deployer);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    // fallback in case contract is not releasing tokens fast enough
    function setFeeRate(uint256 rate) external {
        require(_msgSender() == _deployer);
        require(rate < 51, "Rate can't exceed 50%");
        _feeRate = rate;
        emit FeeRateUpdated(_feeRate);
    }
    
    function setUseImpactFeeSetter(bool useImpact) external {
        require(_msgSender() == _deployer);
        _useImpactFeeSetter = useImpact;
    }
    
     function setSwapEnabled(bool enabled) external {
        require(_msgSender() == _deployer);
        swapEnabled = enabled;
    }
    
    function setDefaultTaxAndTeam(uint256 tax, uint256 team) external {
        require(_msgSender() == _deployer);
        require(tax<10);
        require(team<10);
        _defaultTeamFee = team;
        _defaultTaxFee = tax;
        
    }

    function setCooldownEnabled(bool onoff) external {
        require(_msgSender() == _deployer);
        _cooldownEnabled = onoff;
        emit CooldownEnabledUpdated(_cooldownEnabled);
    }

    function thisBalance() public view returns (uint) {
        return balanceOf(address(this));
    }

    function cooldownEnabled() public view returns (bool) {
        return _cooldownEnabled;
    }

    function timeToBuy(address buyer) public view returns (uint) {
        return block.timestamp - cooldown[buyer].buy;
    }

    function timeToSell(address buyer) public view returns (uint) {
        return block.timestamp - cooldown[buyer].sell;
    }

    function amountInPool() public view returns (uint) {
        return balanceOf(uniswapV2Pair);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"FeeAddress","type":"address"},{"internalType":"address payable","name":"marketingWalletAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_cooldown","type":"bool"}],"name":"CooldownEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_multiplier","type":"uint256"}],"name":"FeeMultiplierUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_rate","type":"uint256"}],"name":"FeeRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxBuyAmount","type":"uint256"}],"name":"MaxBuyAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"addLiquidity","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":[],"name":"amountInPool","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":"cooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tax","type":"uint256"},{"internalType":"uint256","name":"team","type":"uint256"}],"name":"setDefaultTaxAndTeam","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setFeeRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"useImpact","type":"bool"}],"name":"setUseImpactFeeSetter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"thisBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"buyer","type":"address"}],"name":"timeToBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"buyer","type":"address"}],"name":"timeToSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052683635c9adc5dea000006000196200001d9190620005e0565b6000196200002c919062000567565b60075560066009556004600a556005600b556005600c556005600d556103e8600e55600954601055600a546011557312634b59c64341aa222e8f1d71b4160c8873f2c8601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601760166101000a81548160ff02191690831515021790555060006017806101000a81548160ff0219169083151502179055506001601760186101000a81548160ff0219169083151502179055503480156200010c57600080fd5b506040516200439b3803806200439b8339818101604052810190620001329190620004f8565b600062000144620004b060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600754600260006200027b620004b060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620002cf620004b860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000438620004b060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620004a091906200054a565b60405180910390a3505062000690565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050620004f28162000676565b92915050565b600080604083850312156200050c57600080fd5b60006200051c85828601620004e1565b92505060206200052f85828601620004e1565b9150509250929050565b6200054481620005d6565b82525050565b600060208201905062000561600083018462000539565b92915050565b60006200057482620005d6565b91506200058183620005d6565b92508282101562000597576200059662000618565b5b828203905092915050565b6000620005af82620005b6565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000620005ed82620005d6565b9150620005fa83620005d6565b9250826200060d576200060c62000647565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6200068181620005a2565b81146200068d57600080fd5b50565b613cfb80620006a06000396000f3fe60806040526004361061016a5760003560e01c8063715018a6116100d1578063a9fc35a91161008a578063db92dbb611610064578063db92dbb614610511578063dd62ed3e1461053c578063e01af92c14610579578063e8078d94146105a257610171565b8063a9fc35a9146104a6578063c3c8cd80146104e3578063c9567bf9146104fa57610171565b8063715018a6146103a85780638da5cb5b146103bf578063903d5362146103ea57806395d89b4114610413578063a9059cbb1461043e578063a985ceef1461047b57610171565b806345596e2e1161012357806345596e2e1461029c5780635932ead1146102c55780635b38832d146102ee57806368a3a6a5146103175780636fc3eaec1461035457806370a082311461036b57610171565b806306fdde0314610176578063095ea7b3146101a157806318160ddd146101de57806323b872dd1461020957806327f3a72a14610246578063313ce5671461027157610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105b9565b6040516101989190613365565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612e47565b6105f6565b6040516101d5919061334a565b60405180910390f35b3480156101ea57600080fd5b506101f3610614565b6040516102009190613547565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b9190612df8565b610625565b60405161023d919061334a565b60405180910390f35b34801561025257600080fd5b5061025b6106fe565b6040516102689190613547565b60405180910390f35b34801561027d57600080fd5b5061028661070e565b60405161029391906135bc565b60405180910390f35b3480156102a857600080fd5b506102c360048036038101906102be9190612ed5565b610717565b005b3480156102d157600080fd5b506102ec60048036038101906102e79190612e83565b6107fe565b005b3480156102fa57600080fd5b5061031560048036038101906103109190612e83565b6108c2565b005b34801561032357600080fd5b5061033e60048036038101906103399190612d6a565b610940565b60405161034b9190613547565b60405180910390f35b34801561036057600080fd5b50610369610997565b005b34801561037757600080fd5b50610392600480360381019061038d9190612d6a565b610a09565b60405161039f9190613547565b60405180910390f35b3480156103b457600080fd5b506103bd610a5a565b005b3480156103cb57600080fd5b506103d4610bad565b6040516103e1919061327c565b60405180910390f35b3480156103f657600080fd5b50610411600480360381019061040c9190612efe565b610bd6565b005b34801561041f57600080fd5b50610428610c63565b6040516104359190613365565b60405180910390f35b34801561044a57600080fd5b5061046560048036038101906104609190612e47565b610ca0565b604051610472919061334a565b60405180910390f35b34801561048757600080fd5b50610490610cbe565b60405161049d919061334a565b60405180910390f35b3480156104b257600080fd5b506104cd60048036038101906104c89190612d6a565b610cd5565b6040516104da9190613547565b60405180910390f35b3480156104ef57600080fd5b506104f8610d2c565b005b34801561050657600080fd5b5061050f610da6565b005b34801561051d57600080fd5b50610526610e86565b6040516105339190613547565b60405180910390f35b34801561054857600080fd5b50610563600480360381019061055e9190612dbc565b610eb8565b6040516105709190613547565b60405180910390f35b34801561058557600080fd5b506105a0600480360381019061059b9190612e83565b610f3f565b005b3480156105ae57600080fd5b506105b7610fbd565b005b60606040518060400160405280600a81526020017f41766174617220496e7500000000000000000000000000000000000000000000815250905090565b600061060a6106036114d0565b84846114d8565b6001905092915050565b6000683635c9adc5dea00000905090565b60006106328484846116a3565b6106f38461063e6114d0565b6106ee85604051806060016040528060288152602001613c9e60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106a46114d0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f9e9092919063ffffffff16565b6114d8565b600190509392505050565b600061070930610a09565b905090565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107586114d0565b73ffffffffffffffffffffffffffffffffffffffff161461077857600080fd5b603381106107bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b290613427565b60405180910390fd5b80600d819055507f208f1b468d3d61f0f085e975bd9d04367c930d599642faad06695229f3eadcd8600d546040516107f39190613547565b60405180910390a150565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661083f6114d0565b73ffffffffffffffffffffffffffffffffffffffff161461085f57600080fd5b80601760166101000a81548160ff0219169083151502179055507f0d63187a8abb5b4d1bb562e1163897386b0a88ee72e0799dd105bd0fd6f28706601760169054906101000a900460ff166040516108b7919061334a565b60405180910390a150565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109036114d0565b73ffffffffffffffffffffffffffffffffffffffff161461092357600080fd5b80601760186101000a81548160ff02191690831515021790555050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015442610990919061370d565b9050919050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109d86114d0565b73ffffffffffffffffffffffffffffffffffffffff16146109f857600080fd5b6000479050610a0681612002565b50565b6000610a53600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120fd565b9050919050565b610a626114d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae690613487565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c176114d0565b73ffffffffffffffffffffffffffffffffffffffff1614610c3757600080fd5b600a8210610c4457600080fd5b600a8110610c5157600080fd5b80600c8190555081600b819055505050565b60606040518060400160405280600681526020017f4156415441520000000000000000000000000000000000000000000000000000815250905090565b6000610cb4610cad6114d0565b84846116a3565b6001905092915050565b6000601760169054906101000a900460ff16905090565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015442610d25919061370d565b9050919050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d6d6114d0565b73ffffffffffffffffffffffffffffffffffffffff1614610d8d57600080fd5b6000610d9830610a09565b9050610da38161216b565b50565b610dae6114d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3290613487565b60405180910390fd5b6001601760146101000a81548160ff0219169083151502179055506001601760156101000a81548160ff02191690831515021790555060f042610e7e919061362c565b601881905550565b6000610eb3601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a09565b905090565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f806114d0565b73ffffffffffffffffffffffffffffffffffffffff1614610fa057600080fd5b80601760156101000a81548160ff02191690831515021790555050565b610fc56114d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611052576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104990613487565b60405180910390fd5b601760149054906101000a900460ff16156110a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109990613507565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061113230601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea000006114d8565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561117857600080fd5b505afa15801561118c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b09190612d93565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561121257600080fd5b505afa158015611226573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124a9190612d93565b6040518363ffffffff1660e01b8152600401611267929190613297565b602060405180830381600087803b15801561128157600080fd5b505af1158015611295573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b99190612d93565b601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061134230610a09565b60008061134d610bad565b426040518863ffffffff1660e01b815260040161136f969594939291906132e9565b6060604051808303818588803b15801561138857600080fd5b505af115801561139c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906113c19190612f3a565b5050506801a055690d9db8000060128190555042600f81905550601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161147a9291906132c0565b602060405180830381600087803b15801561149457600080fd5b505af11580156114a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114cc9190612eac565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611548576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153f906134e7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115af906133c7565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116969190613547565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611713576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170a906134c7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177a90613387565b60405180910390fd5b600081116117c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bd906134a7565b60405180910390fd5b6117ce610bad565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561183c575061180c610bad565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611edb57601760169054906101000a900460ff161561194257600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff16611941576040518060600160405280600081526020016000815260200160011515815250600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff0219169083151502179055509050505b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119ed5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611a435750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c1857601760149054906101000a900460ff16611a97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8e90613527565b60405180910390fd5b60016009819055506009600a81905550601760169054906101000a900460ff1615611bae57426018541115611bad57601254811115611ad557600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410611b59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b50906133e7565b60405180910390fd5b601e42611b66919061362c565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b5b601760169054906101000a900460ff1615611c1757600f42611bd0919061362c565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b5b6000611c2330610a09565b905060178054906101000a900460ff16158015611c8e5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611ca65750601760149054906101000a900460ff165b8015611cbe5750601760159054906101000a900460ff165b15611ed957601760169054906101000a900460ff1615611d5d5742600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015410611d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5390613447565b60405180910390fd5b5b601760189054906101000a900460ff1615611deb576000611d89600e548461246390919063ffffffff16565b9050611dda611dcb84611dbd601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a09565b6124de90919063ffffffff16565b8261253c90919063ffffffff16565b9050611de581612586565b50611dfe565b600b54600981905550600c54600a819055505b6000811115611ebf57611e596064611e4b600d54611e3d601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a09565b61246390919063ffffffff16565b61253c90919063ffffffff16565b811115611eb557611eb26064611ea4600d54611e96601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a09565b61246390919063ffffffff16565b61253c90919063ffffffff16565b90505b611ebe8161216b565b5b60004790506000811115611ed757611ed647612002565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f825750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611f8c57600090505b611f988484848461263d565b50505050565b6000838311158290611fe6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdd9190613365565b60405180910390fd5b5060008385611ff5919061370d565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61205260028461253c90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561207d573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6120ce60028461253c90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156120f9573d6000803e3d6000fd5b5050565b6000600754821115612144576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213b906133a7565b60405180910390fd5b600061214e61266a565b9050612163818461253c90919063ffffffff16565b915050919050565b60016017806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156121c8577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156121f65781602001602082028036833780820191505090505b5090503081600081518110612234577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156122d657600080fd5b505afa1580156122ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061230e9190612d93565b81600181518110612348577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123af30601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114d8565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612413959493929190613562565b600060405180830381600087803b15801561242d57600080fd5b505af1158015612441573d6000803e3d6000fd5b505050505060006017806101000a81548160ff02191690831515021790555050565b60008083141561247657600090506124d8565b6000828461248491906136b3565b90508284826124939190613682565b146124d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ca90613467565b60405180910390fd5b809150505b92915050565b60008082846124ed919061362c565b905083811015612532576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252990613407565b60405180910390fd5b8091505092915050565b600061257e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612695565b905092915050565b6000600a9050600a82101561259e57600a90506125b5565b60288211156125b057602890506125b4565b8190505b5b60006125cb6002836126f890919063ffffffff16565b146125df5780806125db906137db565b9150505b612606600a6125f860018461246390919063ffffffff16565b61253c90919063ffffffff16565b600981905550612633600a61262560098461246390919063ffffffff16565b61253c90919063ffffffff16565b600a819055505050565b8061264b5761264a612742565b5b612656848484612785565b8061266457612663612950565b5b50505050565b6000806000612677612964565b9150915061268e818361253c90919063ffffffff16565b9250505090565b600080831182906126dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d39190613365565b60405180910390fd5b50600083856126eb9190613682565b9050809150509392505050565b600061273a83836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f00000000000000008152506129c6565b905092915050565b600060095414801561275657506000600a54145b1561276057612783565b600954601081905550600a5460118190555060006009819055506000600a819055505b565b60008060008060008061279787612a24565b9550955095509550955095506127f586600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a8c90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061288a85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124de90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128d681612ad6565b6128e08483612b93565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161293d9190613547565b60405180910390a3505050505050505050565b601054600981905550601154600a81905550565b600080600060075490506000683635c9adc5dea00000905061299a683635c9adc5dea0000060075461253c90919063ffffffff16565b8210156129b957600754683635c9adc5dea000009350935050506129c2565b81819350935050505b9091565b6000808314158290612a0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a059190613365565b60405180910390fd5b508284612a1b9190613824565b90509392505050565b6000806000806000806000806000612a418a600954600a54612bcd565b9250925092506000612a5161266a565b90506000806000612a648e878787612c63565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612ace83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f9e565b905092915050565b6000612ae061266a565b90506000612af7828461246390919063ffffffff16565b9050612b4b81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124de90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612ba882600754612a8c90919063ffffffff16565b600781905550612bc3816008546124de90919063ffffffff16565b6008819055505050565b600080600080612bf96064612beb888a61246390919063ffffffff16565b61253c90919063ffffffff16565b90506000612c236064612c15888b61246390919063ffffffff16565b61253c90919063ffffffff16565b90506000612c4c82612c3e858c612a8c90919063ffffffff16565b612a8c90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612c7c858961246390919063ffffffff16565b90506000612c93868961246390919063ffffffff16565b90506000612caa878961246390919063ffffffff16565b90506000612cd382612cc58587612a8c90919063ffffffff16565b612a8c90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081359050612cfb81613c58565b92915050565b600081519050612d1081613c58565b92915050565b600081359050612d2581613c6f565b92915050565b600081519050612d3a81613c6f565b92915050565b600081359050612d4f81613c86565b92915050565b600081519050612d6481613c86565b92915050565b600060208284031215612d7c57600080fd5b6000612d8a84828501612cec565b91505092915050565b600060208284031215612da557600080fd5b6000612db384828501612d01565b91505092915050565b60008060408385031215612dcf57600080fd5b6000612ddd85828601612cec565b9250506020612dee85828601612cec565b9150509250929050565b600080600060608486031215612e0d57600080fd5b6000612e1b86828701612cec565b9350506020612e2c86828701612cec565b9250506040612e3d86828701612d40565b9150509250925092565b60008060408385031215612e5a57600080fd5b6000612e6885828601612cec565b9250506020612e7985828601612d40565b9150509250929050565b600060208284031215612e9557600080fd5b6000612ea384828501612d16565b91505092915050565b600060208284031215612ebe57600080fd5b6000612ecc84828501612d2b565b91505092915050565b600060208284031215612ee757600080fd5b6000612ef584828501612d40565b91505092915050565b60008060408385031215612f1157600080fd5b6000612f1f85828601612d40565b9250506020612f3085828601612d40565b9150509250929050565b600080600060608486031215612f4f57600080fd5b6000612f5d86828701612d55565b9350506020612f6e86828701612d55565b9250506040612f7f86828701612d55565b9150509250925092565b6000612f958383612fa1565b60208301905092915050565b612faa81613741565b82525050565b612fb981613741565b82525050565b6000612fca826135e7565b612fd4818561360a565b9350612fdf836135d7565b8060005b83811015613010578151612ff78882612f89565b9750613002836135fd565b925050600181019050612fe3565b5085935050505092915050565b61302681613753565b82525050565b61303581613796565b82525050565b6000613046826135f2565b613050818561361b565b93506130608185602086016137a8565b613069816138b3565b840191505092915050565b600061308160238361361b565b915061308c826138c4565b604082019050919050565b60006130a4602a8361361b565b91506130af82613913565b604082019050919050565b60006130c760228361361b565b91506130d282613962565b604082019050919050565b60006130ea60228361361b565b91506130f5826139b1565b604082019050919050565b600061310d601b8361361b565b915061311882613a00565b602082019050919050565b600061313060158361361b565b915061313b82613a29565b602082019050919050565b600061315360238361361b565b915061315e82613a52565b604082019050919050565b600061317660218361361b565b915061318182613aa1565b604082019050919050565b600061319960208361361b565b91506131a482613af0565b602082019050919050565b60006131bc60298361361b565b91506131c782613b19565b604082019050919050565b60006131df60258361361b565b91506131ea82613b68565b604082019050919050565b600061320260248361361b565b915061320d82613bb7565b604082019050919050565b600061322560178361361b565b915061323082613c06565b602082019050919050565b600061324860188361361b565b915061325382613c2f565b602082019050919050565b6132678161377f565b82525050565b61327681613789565b82525050565b60006020820190506132916000830184612fb0565b92915050565b60006040820190506132ac6000830185612fb0565b6132b96020830184612fb0565b9392505050565b60006040820190506132d56000830185612fb0565b6132e2602083018461325e565b9392505050565b600060c0820190506132fe6000830189612fb0565b61330b602083018861325e565b613318604083018761302c565b613325606083018661302c565b6133326080830185612fb0565b61333f60a083018461325e565b979650505050505050565b600060208201905061335f600083018461301d565b92915050565b6000602082019050818103600083015261337f818461303b565b905092915050565b600060208201905081810360008301526133a081613074565b9050919050565b600060208201905081810360008301526133c081613097565b9050919050565b600060208201905081810360008301526133e0816130ba565b9050919050565b60006020820190508181036000830152613400816130dd565b9050919050565b6000602082019050818103600083015261342081613100565b9050919050565b6000602082019050818103600083015261344081613123565b9050919050565b6000602082019050818103600083015261346081613146565b9050919050565b6000602082019050818103600083015261348081613169565b9050919050565b600060208201905081810360008301526134a08161318c565b9050919050565b600060208201905081810360008301526134c0816131af565b9050919050565b600060208201905081810360008301526134e0816131d2565b9050919050565b60006020820190508181036000830152613500816131f5565b9050919050565b6000602082019050818103600083015261352081613218565b9050919050565b600060208201905081810360008301526135408161323b565b9050919050565b600060208201905061355c600083018461325e565b92915050565b600060a082019050613577600083018861325e565b613584602083018761302c565b81810360408301526135968186612fbf565b90506135a56060830185612fb0565b6135b2608083018461325e565b9695505050505050565b60006020820190506135d1600083018461326d565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006136378261377f565b91506136428361377f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561367757613676613855565b5b828201905092915050565b600061368d8261377f565b91506136988361377f565b9250826136a8576136a7613884565b5b828204905092915050565b60006136be8261377f565b91506136c98361377f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561370257613701613855565b5b828202905092915050565b60006137188261377f565b91506137238361377f565b92508282101561373657613735613855565b5b828203905092915050565b600061374c8261375f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006137a18261377f565b9050919050565b60005b838110156137c65780820151818401526020810190506137ab565b838111156137d5576000848401525b50505050565b60006137e68261377f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561381957613818613855565b5b600182019050919050565b600061382f8261377f565b915061383a8361377f565b92508261384a57613849613884565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f596f75722062757920636f6f6c646f776e20686173206e6f742065787069726560008201527f642e000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f526174652063616e277420657863656564203530250000000000000000000000600082015250565b7f596f75722073656c6c20636f6f6c646f776e20686173206e6f7420657870697260008201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b613c6181613741565b8114613c6c57600080fd5b50565b613c7881613753565b8114613c8357600080fd5b50565b613c8f8161377f565b8114613c9a57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220412c26e12e3397a2dcbcd1c2fea20958920b865c386a746fb55441c4c8ef1f4064736f6c634300080400330000000000000000000000002378fe090cf558e150720fe85d7b0ddf33a91c430000000000000000000000002378fe090cf558e150720fe85d7b0ddf33a91c43

Deployed Bytecode

0x60806040526004361061016a5760003560e01c8063715018a6116100d1578063a9fc35a91161008a578063db92dbb611610064578063db92dbb614610511578063dd62ed3e1461053c578063e01af92c14610579578063e8078d94146105a257610171565b8063a9fc35a9146104a6578063c3c8cd80146104e3578063c9567bf9146104fa57610171565b8063715018a6146103a85780638da5cb5b146103bf578063903d5362146103ea57806395d89b4114610413578063a9059cbb1461043e578063a985ceef1461047b57610171565b806345596e2e1161012357806345596e2e1461029c5780635932ead1146102c55780635b38832d146102ee57806368a3a6a5146103175780636fc3eaec1461035457806370a082311461036b57610171565b806306fdde0314610176578063095ea7b3146101a157806318160ddd146101de57806323b872dd1461020957806327f3a72a14610246578063313ce5671461027157610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105b9565b6040516101989190613365565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612e47565b6105f6565b6040516101d5919061334a565b60405180910390f35b3480156101ea57600080fd5b506101f3610614565b6040516102009190613547565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b9190612df8565b610625565b60405161023d919061334a565b60405180910390f35b34801561025257600080fd5b5061025b6106fe565b6040516102689190613547565b60405180910390f35b34801561027d57600080fd5b5061028661070e565b60405161029391906135bc565b60405180910390f35b3480156102a857600080fd5b506102c360048036038101906102be9190612ed5565b610717565b005b3480156102d157600080fd5b506102ec60048036038101906102e79190612e83565b6107fe565b005b3480156102fa57600080fd5b5061031560048036038101906103109190612e83565b6108c2565b005b34801561032357600080fd5b5061033e60048036038101906103399190612d6a565b610940565b60405161034b9190613547565b60405180910390f35b34801561036057600080fd5b50610369610997565b005b34801561037757600080fd5b50610392600480360381019061038d9190612d6a565b610a09565b60405161039f9190613547565b60405180910390f35b3480156103b457600080fd5b506103bd610a5a565b005b3480156103cb57600080fd5b506103d4610bad565b6040516103e1919061327c565b60405180910390f35b3480156103f657600080fd5b50610411600480360381019061040c9190612efe565b610bd6565b005b34801561041f57600080fd5b50610428610c63565b6040516104359190613365565b60405180910390f35b34801561044a57600080fd5b5061046560048036038101906104609190612e47565b610ca0565b604051610472919061334a565b60405180910390f35b34801561048757600080fd5b50610490610cbe565b60405161049d919061334a565b60405180910390f35b3480156104b257600080fd5b506104cd60048036038101906104c89190612d6a565b610cd5565b6040516104da9190613547565b60405180910390f35b3480156104ef57600080fd5b506104f8610d2c565b005b34801561050657600080fd5b5061050f610da6565b005b34801561051d57600080fd5b50610526610e86565b6040516105339190613547565b60405180910390f35b34801561054857600080fd5b50610563600480360381019061055e9190612dbc565b610eb8565b6040516105709190613547565b60405180910390f35b34801561058557600080fd5b506105a0600480360381019061059b9190612e83565b610f3f565b005b3480156105ae57600080fd5b506105b7610fbd565b005b60606040518060400160405280600a81526020017f41766174617220496e7500000000000000000000000000000000000000000000815250905090565b600061060a6106036114d0565b84846114d8565b6001905092915050565b6000683635c9adc5dea00000905090565b60006106328484846116a3565b6106f38461063e6114d0565b6106ee85604051806060016040528060288152602001613c9e60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106a46114d0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f9e9092919063ffffffff16565b6114d8565b600190509392505050565b600061070930610a09565b905090565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107586114d0565b73ffffffffffffffffffffffffffffffffffffffff161461077857600080fd5b603381106107bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b290613427565b60405180910390fd5b80600d819055507f208f1b468d3d61f0f085e975bd9d04367c930d599642faad06695229f3eadcd8600d546040516107f39190613547565b60405180910390a150565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661083f6114d0565b73ffffffffffffffffffffffffffffffffffffffff161461085f57600080fd5b80601760166101000a81548160ff0219169083151502179055507f0d63187a8abb5b4d1bb562e1163897386b0a88ee72e0799dd105bd0fd6f28706601760169054906101000a900460ff166040516108b7919061334a565b60405180910390a150565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109036114d0565b73ffffffffffffffffffffffffffffffffffffffff161461092357600080fd5b80601760186101000a81548160ff02191690831515021790555050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015442610990919061370d565b9050919050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109d86114d0565b73ffffffffffffffffffffffffffffffffffffffff16146109f857600080fd5b6000479050610a0681612002565b50565b6000610a53600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120fd565b9050919050565b610a626114d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae690613487565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c176114d0565b73ffffffffffffffffffffffffffffffffffffffff1614610c3757600080fd5b600a8210610c4457600080fd5b600a8110610c5157600080fd5b80600c8190555081600b819055505050565b60606040518060400160405280600681526020017f4156415441520000000000000000000000000000000000000000000000000000815250905090565b6000610cb4610cad6114d0565b84846116a3565b6001905092915050565b6000601760169054906101000a900460ff16905090565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015442610d25919061370d565b9050919050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d6d6114d0565b73ffffffffffffffffffffffffffffffffffffffff1614610d8d57600080fd5b6000610d9830610a09565b9050610da38161216b565b50565b610dae6114d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3290613487565b60405180910390fd5b6001601760146101000a81548160ff0219169083151502179055506001601760156101000a81548160ff02191690831515021790555060f042610e7e919061362c565b601881905550565b6000610eb3601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a09565b905090565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f806114d0565b73ffffffffffffffffffffffffffffffffffffffff1614610fa057600080fd5b80601760156101000a81548160ff02191690831515021790555050565b610fc56114d0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611052576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104990613487565b60405180910390fd5b601760149054906101000a900460ff16156110a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109990613507565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061113230601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea000006114d8565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561117857600080fd5b505afa15801561118c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b09190612d93565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561121257600080fd5b505afa158015611226573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124a9190612d93565b6040518363ffffffff1660e01b8152600401611267929190613297565b602060405180830381600087803b15801561128157600080fd5b505af1158015611295573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b99190612d93565b601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061134230610a09565b60008061134d610bad565b426040518863ffffffff1660e01b815260040161136f969594939291906132e9565b6060604051808303818588803b15801561138857600080fd5b505af115801561139c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906113c19190612f3a565b5050506801a055690d9db8000060128190555042600f81905550601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161147a9291906132c0565b602060405180830381600087803b15801561149457600080fd5b505af11580156114a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114cc9190612eac565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611548576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153f906134e7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115af906133c7565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116969190613547565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611713576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170a906134c7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177a90613387565b60405180910390fd5b600081116117c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bd906134a7565b60405180910390fd5b6117ce610bad565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561183c575061180c610bad565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611edb57601760169054906101000a900460ff161561194257600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff16611941576040518060600160405280600081526020016000815260200160011515815250600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff0219169083151502179055509050505b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119ed5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611a435750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c1857601760149054906101000a900460ff16611a97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8e90613527565b60405180910390fd5b60016009819055506009600a81905550601760169054906101000a900460ff1615611bae57426018541115611bad57601254811115611ad557600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410611b59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b50906133e7565b60405180910390fd5b601e42611b66919061362c565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b5b601760169054906101000a900460ff1615611c1757600f42611bd0919061362c565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b5b6000611c2330610a09565b905060178054906101000a900460ff16158015611c8e5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611ca65750601760149054906101000a900460ff165b8015611cbe5750601760159054906101000a900460ff165b15611ed957601760169054906101000a900460ff1615611d5d5742600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015410611d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5390613447565b60405180910390fd5b5b601760189054906101000a900460ff1615611deb576000611d89600e548461246390919063ffffffff16565b9050611dda611dcb84611dbd601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a09565b6124de90919063ffffffff16565b8261253c90919063ffffffff16565b9050611de581612586565b50611dfe565b600b54600981905550600c54600a819055505b6000811115611ebf57611e596064611e4b600d54611e3d601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a09565b61246390919063ffffffff16565b61253c90919063ffffffff16565b811115611eb557611eb26064611ea4600d54611e96601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a09565b61246390919063ffffffff16565b61253c90919063ffffffff16565b90505b611ebe8161216b565b5b60004790506000811115611ed757611ed647612002565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f825750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611f8c57600090505b611f988484848461263d565b50505050565b6000838311158290611fe6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdd9190613365565b60405180910390fd5b5060008385611ff5919061370d565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61205260028461253c90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561207d573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6120ce60028461253c90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156120f9573d6000803e3d6000fd5b5050565b6000600754821115612144576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213b906133a7565b60405180910390fd5b600061214e61266a565b9050612163818461253c90919063ffffffff16565b915050919050565b60016017806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156121c8577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156121f65781602001602082028036833780820191505090505b5090503081600081518110612234577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156122d657600080fd5b505afa1580156122ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061230e9190612d93565b81600181518110612348577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123af30601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114d8565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612413959493929190613562565b600060405180830381600087803b15801561242d57600080fd5b505af1158015612441573d6000803e3d6000fd5b505050505060006017806101000a81548160ff02191690831515021790555050565b60008083141561247657600090506124d8565b6000828461248491906136b3565b90508284826124939190613682565b146124d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ca90613467565b60405180910390fd5b809150505b92915050565b60008082846124ed919061362c565b905083811015612532576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252990613407565b60405180910390fd5b8091505092915050565b600061257e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612695565b905092915050565b6000600a9050600a82101561259e57600a90506125b5565b60288211156125b057602890506125b4565b8190505b5b60006125cb6002836126f890919063ffffffff16565b146125df5780806125db906137db565b9150505b612606600a6125f860018461246390919063ffffffff16565b61253c90919063ffffffff16565b600981905550612633600a61262560098461246390919063ffffffff16565b61253c90919063ffffffff16565b600a819055505050565b8061264b5761264a612742565b5b612656848484612785565b8061266457612663612950565b5b50505050565b6000806000612677612964565b9150915061268e818361253c90919063ffffffff16565b9250505090565b600080831182906126dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d39190613365565b60405180910390fd5b50600083856126eb9190613682565b9050809150509392505050565b600061273a83836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f00000000000000008152506129c6565b905092915050565b600060095414801561275657506000600a54145b1561276057612783565b600954601081905550600a5460118190555060006009819055506000600a819055505b565b60008060008060008061279787612a24565b9550955095509550955095506127f586600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a8c90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061288a85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124de90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128d681612ad6565b6128e08483612b93565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161293d9190613547565b60405180910390a3505050505050505050565b601054600981905550601154600a81905550565b600080600060075490506000683635c9adc5dea00000905061299a683635c9adc5dea0000060075461253c90919063ffffffff16565b8210156129b957600754683635c9adc5dea000009350935050506129c2565b81819350935050505b9091565b6000808314158290612a0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a059190613365565b60405180910390fd5b508284612a1b9190613824565b90509392505050565b6000806000806000806000806000612a418a600954600a54612bcd565b9250925092506000612a5161266a565b90506000806000612a648e878787612c63565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612ace83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f9e565b905092915050565b6000612ae061266a565b90506000612af7828461246390919063ffffffff16565b9050612b4b81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124de90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612ba882600754612a8c90919063ffffffff16565b600781905550612bc3816008546124de90919063ffffffff16565b6008819055505050565b600080600080612bf96064612beb888a61246390919063ffffffff16565b61253c90919063ffffffff16565b90506000612c236064612c15888b61246390919063ffffffff16565b61253c90919063ffffffff16565b90506000612c4c82612c3e858c612a8c90919063ffffffff16565b612a8c90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612c7c858961246390919063ffffffff16565b90506000612c93868961246390919063ffffffff16565b90506000612caa878961246390919063ffffffff16565b90506000612cd382612cc58587612a8c90919063ffffffff16565b612a8c90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081359050612cfb81613c58565b92915050565b600081519050612d1081613c58565b92915050565b600081359050612d2581613c6f565b92915050565b600081519050612d3a81613c6f565b92915050565b600081359050612d4f81613c86565b92915050565b600081519050612d6481613c86565b92915050565b600060208284031215612d7c57600080fd5b6000612d8a84828501612cec565b91505092915050565b600060208284031215612da557600080fd5b6000612db384828501612d01565b91505092915050565b60008060408385031215612dcf57600080fd5b6000612ddd85828601612cec565b9250506020612dee85828601612cec565b9150509250929050565b600080600060608486031215612e0d57600080fd5b6000612e1b86828701612cec565b9350506020612e2c86828701612cec565b9250506040612e3d86828701612d40565b9150509250925092565b60008060408385031215612e5a57600080fd5b6000612e6885828601612cec565b9250506020612e7985828601612d40565b9150509250929050565b600060208284031215612e9557600080fd5b6000612ea384828501612d16565b91505092915050565b600060208284031215612ebe57600080fd5b6000612ecc84828501612d2b565b91505092915050565b600060208284031215612ee757600080fd5b6000612ef584828501612d40565b91505092915050565b60008060408385031215612f1157600080fd5b6000612f1f85828601612d40565b9250506020612f3085828601612d40565b9150509250929050565b600080600060608486031215612f4f57600080fd5b6000612f5d86828701612d55565b9350506020612f6e86828701612d55565b9250506040612f7f86828701612d55565b9150509250925092565b6000612f958383612fa1565b60208301905092915050565b612faa81613741565b82525050565b612fb981613741565b82525050565b6000612fca826135e7565b612fd4818561360a565b9350612fdf836135d7565b8060005b83811015613010578151612ff78882612f89565b9750613002836135fd565b925050600181019050612fe3565b5085935050505092915050565b61302681613753565b82525050565b61303581613796565b82525050565b6000613046826135f2565b613050818561361b565b93506130608185602086016137a8565b613069816138b3565b840191505092915050565b600061308160238361361b565b915061308c826138c4565b604082019050919050565b60006130a4602a8361361b565b91506130af82613913565b604082019050919050565b60006130c760228361361b565b91506130d282613962565b604082019050919050565b60006130ea60228361361b565b91506130f5826139b1565b604082019050919050565b600061310d601b8361361b565b915061311882613a00565b602082019050919050565b600061313060158361361b565b915061313b82613a29565b602082019050919050565b600061315360238361361b565b915061315e82613a52565b604082019050919050565b600061317660218361361b565b915061318182613aa1565b604082019050919050565b600061319960208361361b565b91506131a482613af0565b602082019050919050565b60006131bc60298361361b565b91506131c782613b19565b604082019050919050565b60006131df60258361361b565b91506131ea82613b68565b604082019050919050565b600061320260248361361b565b915061320d82613bb7565b604082019050919050565b600061322560178361361b565b915061323082613c06565b602082019050919050565b600061324860188361361b565b915061325382613c2f565b602082019050919050565b6132678161377f565b82525050565b61327681613789565b82525050565b60006020820190506132916000830184612fb0565b92915050565b60006040820190506132ac6000830185612fb0565b6132b96020830184612fb0565b9392505050565b60006040820190506132d56000830185612fb0565b6132e2602083018461325e565b9392505050565b600060c0820190506132fe6000830189612fb0565b61330b602083018861325e565b613318604083018761302c565b613325606083018661302c565b6133326080830185612fb0565b61333f60a083018461325e565b979650505050505050565b600060208201905061335f600083018461301d565b92915050565b6000602082019050818103600083015261337f818461303b565b905092915050565b600060208201905081810360008301526133a081613074565b9050919050565b600060208201905081810360008301526133c081613097565b9050919050565b600060208201905081810360008301526133e0816130ba565b9050919050565b60006020820190508181036000830152613400816130dd565b9050919050565b6000602082019050818103600083015261342081613100565b9050919050565b6000602082019050818103600083015261344081613123565b9050919050565b6000602082019050818103600083015261346081613146565b9050919050565b6000602082019050818103600083015261348081613169565b9050919050565b600060208201905081810360008301526134a08161318c565b9050919050565b600060208201905081810360008301526134c0816131af565b9050919050565b600060208201905081810360008301526134e0816131d2565b9050919050565b60006020820190508181036000830152613500816131f5565b9050919050565b6000602082019050818103600083015261352081613218565b9050919050565b600060208201905081810360008301526135408161323b565b9050919050565b600060208201905061355c600083018461325e565b92915050565b600060a082019050613577600083018861325e565b613584602083018761302c565b81810360408301526135968186612fbf565b90506135a56060830185612fb0565b6135b2608083018461325e565b9695505050505050565b60006020820190506135d1600083018461326d565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006136378261377f565b91506136428361377f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561367757613676613855565b5b828201905092915050565b600061368d8261377f565b91506136988361377f565b9250826136a8576136a7613884565b5b828204905092915050565b60006136be8261377f565b91506136c98361377f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561370257613701613855565b5b828202905092915050565b60006137188261377f565b91506137238361377f565b92508282101561373657613735613855565b5b828203905092915050565b600061374c8261375f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006137a18261377f565b9050919050565b60005b838110156137c65780820151818401526020810190506137ab565b838111156137d5576000848401525b50505050565b60006137e68261377f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561381957613818613855565b5b600182019050919050565b600061382f8261377f565b915061383a8361377f565b92508261384a57613849613884565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f596f75722062757920636f6f6c646f776e20686173206e6f742065787069726560008201527f642e000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f526174652063616e277420657863656564203530250000000000000000000000600082015250565b7f596f75722073656c6c20636f6f6c646f776e20686173206e6f7420657870697260008201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b613c6181613741565b8114613c6c57600080fd5b50565b613c7881613753565b8114613c8357600080fd5b50565b613c8f8161377f565b8114613c9a57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220412c26e12e3397a2dcbcd1c2fea20958920b865c386a746fb55441c4c8ef1f4064736f6c63430008040033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000002378fe090cf558e150720fe85d7b0ddf33a91c430000000000000000000000002378fe090cf558e150720fe85d7b0ddf33a91c43

-----Decoded View---------------
Arg [0] : FeeAddress (address): 0x2378FE090CF558e150720Fe85D7B0dDF33A91c43
Arg [1] : marketingWalletAddress (address): 0x2378FE090CF558e150720Fe85D7B0dDF33A91c43

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000002378fe090cf558e150720fe85d7b0ddf33a91c43
Arg [1] : 0000000000000000000000002378fe090cf558e150720fe85d7b0ddf33a91c43


Deployed Bytecode Sourcemap

3869:14582:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6362:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7214:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6639:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7383:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17869:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6548:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16878:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17668:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17106:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18081:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16612:188;;;;;;;;;;;;;:::i;:::-;;6742:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2948:148;;;;;;;;;;;;;:::i;:::-;;2734:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17414:246;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6453:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6888:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17977:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18213:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16411:189;;;;;;;;;;;;;:::i;:::-;;16241:162;;;;;;;;;;;;;:::i;:::-;;18347:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7063:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17270:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15466:767;;;;;;;;;;;;;:::i;:::-;;6362:83;6399:13;6432:5;;;;;;;;;;;;;;;;;6425:12;;6362:83;:::o;7214:161::-;7289:4;7306:39;7315:12;:10;:12::i;:::-;7329:7;7338:6;7306:8;:39::i;:::-;7363:4;7356:11;;7214:161;;;;:::o;6639:95::-;6692:7;4326:12;6712:14;;6639:95;:::o;7383:313::-;7481:4;7498:36;7508:6;7516:9;7527:6;7498:9;:36::i;:::-;7545:121;7554:6;7562:12;:10;:12::i;:::-;7576:89;7614:6;7576:89;;;;;;;;;;;;;;;;;:11;:19;7588:6;7576:19;;;;;;;;;;;;;;;:33;7596:12;:10;:12::i;:::-;7576:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7545:8;:121::i;:::-;7684:4;7677:11;;7383:313;;;;;:::o;17869:100::-;17913:4;17937:24;17955:4;17937:9;:24::i;:::-;17930:31;;17869:100;:::o;6548:83::-;6589:5;4584:1;6607:16;;6548:83;:::o;16878:216::-;16956:9;;;;;;;;;;;16940:25;;:12;:10;:12::i;:::-;:25;;;16932:34;;;;;;16992:2;16985:4;:9;16977:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;17042:4;17031:8;:15;;;;17062:24;17077:8;;17062:24;;;;;;:::i;:::-;;;;;;;;16878:216;:::o;17668:193::-;17752:9;;;;;;;;;;;17736:25;;:12;:10;:12::i;:::-;:25;;;17728:34;;;;;;17792:5;17773:16;;:24;;;;;;;;;;;;;;;;;;17813:40;17836:16;;;;;;;;;;;17813:40;;;;;;:::i;:::-;;;;;;;;17668:193;:::o;17106:151::-;17197:9;;;;;;;;;;;17181:25;;:12;:10;:12::i;:::-;:25;;;17173:34;;;;;;17240:9;17218:19;;:31;;;;;;;;;;;;;;;;;;17106:151;:::o;18081:124::-;18136:4;18178:8;:15;18187:5;18178:15;;;;;;;;;;;;;;;:19;;;18160:15;:37;;;;:::i;:::-;18153:44;;18081:124;;;:::o;16612:188::-;16678:9;;;;;;;;;;;16662:25;;:12;:10;:12::i;:::-;:25;;;16654:34;;;;;;16699:26;16728:21;16699:50;;16760:32;16773:18;16760:12;:32::i;:::-;16612:188;:::o;6742:138::-;6808:7;6835:37;6855:7;:16;6863:7;6855:16;;;;;;;;;;;;;;;;6835:19;:37::i;:::-;6828:44;;6742:138;;;:::o;2948:148::-;2871:12;:10;:12::i;:::-;2861:22;;:6;;;;;;;;;;:22;;;2853:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3055:1:::1;3018:40;;3039:6;::::0;::::1;;;;;;;;3018:40;;;;;;;;;;;;3086:1;3069:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2948:148::o:0;2734:79::-;2772:7;2799:6;;;;;;;;;;;2792:13;;2734:79;:::o;17414:246::-;17515:9;;;;;;;;;;;17499:25;;:12;:10;:12::i;:::-;:25;;;17491:34;;;;;;17548:2;17544:3;:6;17536:15;;;;;;17575:2;17570:4;:7;17562:16;;;;;;17607:4;17589:15;:22;;;;17639:3;17622:14;:20;;;;17414:246;;:::o;6453:87::-;6492:13;6525:7;;;;;;;;;;;;;;;;;6518:14;;6453:87;:::o;6888:167::-;6966:4;6983:42;6993:12;:10;:12::i;:::-;7007:9;7018:6;6983:9;:42::i;:::-;7043:4;7036:11;;6888:167;;;;:::o;17977:96::-;18025:4;18049:16;;;;;;;;;;;18042:23;;17977:96;:::o;18213:126::-;18269:4;18311:8;:15;18320:5;18311:15;;;;;;;;;;;;;;;:20;;;18293:15;:38;;;;:::i;:::-;18286:45;;18213:126;;;:::o;16411:189::-;16477:9;;;;;;;;;;;16461:25;;:12;:10;:12::i;:::-;:25;;;16453:34;;;;;;16498:23;16524:24;16542:4;16524:9;:24::i;:::-;16498:50;;16559:33;16576:15;16559:16;:33::i;:::-;16411:189;:::o;16241:162::-;2871:12;:10;:12::i;:::-;2861:22;;:6;;;;;;;;;;:22;;;2853:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16306:4:::1;16292:11;;:18;;;;;;;;;;;;;;;;;;16335:4;16321:11;;:18;;;;;;;;;;;;;;;;;;16383:11;16364:15;:31;;;;:::i;:::-;16350:11;:45;;;;16241:162::o:0;18347:101::-;18392:4;18416:24;18426:13;;;;;;;;;;;18416:9;:24::i;:::-;18409:31;;18347:101;:::o;7063:143::-;7144:7;7171:11;:18;7183:5;7171:18;;;;;;;;;;;;;;;:27;7190:7;7171:27;;;;;;;;;;;;;;;;7164:34;;7063:143;;;;:::o;17270:132::-;17352:9;;;;;;;;;;;17336:25;;:12;:10;:12::i;:::-;:25;;;17328:34;;;;;;17387:7;17373:11;;:21;;;;;;;;;;;;;;;;;;17270:132;:::o;15466:767::-;2871:12;:10;:12::i;:::-;2861:22;;:6;;;;;;;;;;:22;;;2853:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15531:11:::1;;;;;;;;;;;15530:12;15522:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;15580:35;15637:42;15580:100;;15709:16;15691:15;;:34;;;;;;;;;;;;;;;;;;15736:58;15753:4;15768:15;;;;;;;;;;;4326:12;15736:8;:58::i;:::-;15839:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15821:56;;;15886:4;15893:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15821:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15805:13;;:112;;;;;;;;;;;;;;;;;;15928:15;;;;;;;;;;;:31;;;15967:21;15998:4;16004:24;16022:4;16004:9;:24::i;:::-;16029:1;16031::::0;16033:7:::1;:5;:7::i;:::-;16041:15;15928:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16084:19;16068:13;:35;;;;16128:15;16114:11;:29;;;;16161:13;;;;;;;;;;;16154:29;;;16192:15;;;;;;;;;;;16210:14;16154:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2931:1;15466:767::o:0;143:98::-;196:7;223:10;216:17;;143:98;:::o;8770:335::-;8880:1;8863:19;;:5;:19;;;;8855:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8961:1;8942:21;;:7;:21;;;;8934:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9043:6;9013:11;:18;9025:5;9013:18;;;;;;;;;;;;;;;:27;9032:7;9013:27;;;;;;;;;;;;;;;:36;;;;9081:7;9065:32;;9074:5;9065:32;;;9090:6;9065:32;;;;;;:::i;:::-;;;;;;;;8770:335;;;:::o;9113:2803::-;9217:1;9201:18;;:4;:18;;;;9193:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9294:1;9280:16;;:2;:16;;;;9272:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9364:1;9355:6;:10;9347:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9435:7;:5;:7::i;:::-;9427:15;;:4;:15;;;;:32;;;;;9452:7;:5;:7::i;:::-;9446:13;;:2;:13;;;;9427:32;9424:2288;;;9479:16;;;;;;;;;;;9476:168;;;9520:8;:20;9529:10;9520:20;;;;;;;;;;;;;;;:27;;;;;;;;;;;;9516:113;;9595:14;;;;;;;;9600:1;9595:14;;;;9602:1;9595:14;;;;9604:4;9595:14;;;;;9572:8;:20;9581:10;9572:20;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9516:113;9476:168;9691:13;;;;;;;;;;;9683:21;;:4;:21;;;:55;;;;;9722:15;;;;;;;;;;;9708:30;;:2;:30;;;;9683:55;:82;;;;;9743:18;:22;9762:2;9743:22;;;;;;;;;;;;;;;;;;;;;;;;;9742:23;9683:82;9680:745;;;9794:11;;;;;;;;;;;9786:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;9863:1;9853:7;:11;;;;9894:1;9883:8;:12;;;;9917:16;;;;;;;;;;;9914:364;;;9975:15;9961:11;;:29;9958:301;;;10037:13;;10027:6;:23;;10019:32;;;;;;10105:15;10086:8;:12;10095:2;10086:12;;;;;;;;;;;;;;;:16;;;:34;10078:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;10224:10;10205:15;:30;;;;:::i;:::-;10186:8;:12;10195:2;10186:12;;;;;;;;;;;;;;;:16;;:49;;;;9958:301;9914:364;10299:16;;;;;;;;;;;10296:114;;;10379:10;10360:15;:30;;;;:::i;:::-;10340:8;:12;10349:2;10340:12;;;;;;;;;;;;;;;:17;;:50;;;;10296:114;9680:745;10439:28;10470:24;10488:4;10470:9;:24::i;:::-;10439:55;;10536:6;;;;;;;;;;10535:7;:32;;;;;10554:13;;;;;;;;;;;10546:21;;:4;:21;;;;10535:32;:47;;;;;10571:11;;;;;;;;;;;10535:47;:62;;;;;10586:11;;;;;;;;;;;10535:62;10532:1169;;;10623:16;;;;;;;;;;;10620:149;;;10694:15;10672:8;:14;10681:4;10672:14;;;;;;;;;;;;;;;:19;;;:37;10664:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;10620:149;10792:19;;;;;;;;;;;10789:357;;;10836:16;10855:26;10866:14;;10855:6;:10;;:26;;;;:::i;:::-;10836:45;;10915:50;10928:36;10957:6;10928:24;10938:13;;;;;;;;;;;10928:9;:24::i;:::-;:28;;:36;;;;:::i;:::-;10915:8;:12;;:50;;;;:::i;:::-;10904:61;;10988:16;10995:8;10988:6;:16::i;:::-;10789:357;;;;11063:14;;11053:7;:24;;;;11111:15;;11100:8;:26;;;;10789:357;11192:1;11169:20;:24;11166:328;;;11244:47;11287:3;11244:38;11273:8;;11244:24;11254:13;;;;;;;;;;;11244:9;:24::i;:::-;:28;;:38;;;;:::i;:::-;:42;;:47;;;;:::i;:::-;11221:20;:70;11218:196;;;11343:47;11386:3;11343:38;11372:8;;11343:24;11353:13;;;;;;;;;;;11343:9;:24::i;:::-;:28;;:38;;;;:::i;:::-;:42;;:47;;;;:::i;:::-;11320:70;;11218:196;11436:38;11453:20;11436:16;:38::i;:::-;11166:328;11512:26;11541:21;11512:50;;11605:1;11584:18;:22;11581:105;;;11631:35;11644:21;11631:12;:35::i;:::-;11581:105;10532:1169;;9424:2288;;11722:12;11737:4;11722:19;;11757:18;:24;11776:4;11757:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11785:18;:22;11804:2;11785:22;;;;;;;;;;;;;;;;;;;;;;;;;11757:50;11754:96;;;11833:5;11823:15;;11754:96;11870:38;11885:4;11890:2;11893:6;11900:7;11870:14;:38::i;:::-;9113:2803;;;;:::o;1280:190::-;1366:7;1399:1;1394;:6;;1402:12;1386:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1426:9;1442:1;1438;:5;;;;:::i;:::-;1426:17;;1461:1;1454:8;;;1280:190;;;;;:::o;12423:158::-;12480:11;;;;;;;;;;;:20;;:35;12501:13;12512:1;12501:6;:10;;:13;;;;:::i;:::-;12480:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12526:23;;;;;;;;;;;:32;;:47;12559:13;12570:1;12559:6;:10;;:13;;;;:::i;:::-;12526:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12423:158;:::o;7704:254::-;7771:7;7810;;7799;:18;;7791:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7875:19;7898:10;:8;:10::i;:::-;7875:33;;7926:24;7938:11;7926:7;:11;;:24;;;;:::i;:::-;7919:31;;;7704:254;;;:::o;11924:483::-;5811:4;5802:6;;:13;;;;;;;;;;;;;;;;;;12002:21:::1;12040:1;12026:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12002:40;;12071:4;12053;12058:1;12053:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;12097:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12087:4;12092:1;12087:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;12130:62;12147:4;12162:15;;;;;;;;;;;12180:11;12130:8;:62::i;:::-;12203:15;;;;;;;;;;;:66;;;12284:11;12310:1;12326:4;12353;12373:15;12203:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5826:1;5847:5:::0;5838:6;;:14;;;;;;;;;;;;;;;;;;11924:483;:::o;1478:245::-;1536:7;1564:1;1559;:6;1556:46;;;1589:1;1582:8;;;;1556:46;1612:9;1628:1;1624;:5;;;;:::i;:::-;1612:17;;1657:1;1652;1648;:5;;;;:::i;:::-;:10;1640:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1714:1;1707:8;;;1478:245;;;;;:::o;949:179::-;1007:7;1027:9;1043:1;1039;:5;;;;:::i;:::-;1027:17;;1068:1;1063;:6;;1055:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1119:1;1112:8;;;949:179;;;;:::o;1731:132::-;1789:7;1816:39;1820:1;1823;1816:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1809:46;;1731:132;;;;:::o;8311:451::-;8365:18;8386:2;8365:23;;8414:2;8402:9;:14;8399:183;;;8446:2;8433:15;;8399:183;;;8481:2;8469:9;:14;8466:116;;;8513:2;8500:15;;8466:116;;;8561:9;8548:22;;8466:116;8399:183;8616:1;8595:17;8610:1;8595:10;:14;;:17;;;;:::i;:::-;:22;8592:66;;8634:12;;;;;:::i;:::-;;;;8592:66;8678:27;8702:2;8679:17;8694:1;8679:10;:14;;:17;;;;:::i;:::-;8678:23;;:27;;;;:::i;:::-;8668:7;:37;;;;8727:27;8751:2;8728:17;8743:1;8728:10;:14;;:17;;;;:::i;:::-;8727:23;;:27;;;;:::i;:::-;8716:8;:38;;;;8311:451;;:::o;12593:263::-;12705:7;12701:40;;12727:14;:12;:14::i;:::-;12701:40;12752:44;12770:6;12778:9;12789:6;12752:17;:44::i;:::-;12811:7;12807:41;;12833:15;:13;:15::i;:::-;12807:41;12593:263;;;;:::o;14197:163::-;14238:7;14259:15;14276;14295:19;:17;:19::i;:::-;14258:56;;;;14332:20;14344:7;14332;:11;;:20;;;;:::i;:::-;14325:27;;;;14197:163;:::o;1871:189::-;1957:7;1989:1;1985;:5;1992:12;1977:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2016:9;2032:1;2028;:5;;;;:::i;:::-;2016:17;;2051:1;2044:8;;;1871:189;;;;;:::o;2068:130::-;2126:7;2153:37;2157:1;2160;2153:37;;;;;;;;;;;;;;;;;:3;:37::i;:::-;2146:44;;2068:130;;;;:::o;7966:210::-;8023:1;8012:7;;:12;:29;;;;;8040:1;8028:8;;:13;8012:29;8009:41;;;8043:7;;8009:41;8078:7;;8060:15;:25;;;;8115:8;;8096:16;:27;;;;8144:1;8134:7;:11;;;;8167:1;8156:8;:12;;;;7966:210;:::o;12864:490::-;12963:15;12980:23;13005:12;13019:23;13044:12;13058:13;13075:19;13086:7;13075:10;:19::i;:::-;12962:132;;;;;;;;;;;;13123:28;13143:7;13123;:15;13131:6;13123:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13105:7;:15;13113:6;13105:15;;;;;;;;;;;;;;;:46;;;;13183:39;13206:15;13183:7;:18;13191:9;13183:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13162:7;:18;13170:9;13162:18;;;;;;;;;;;;;;;:60;;;;13236:16;13246:5;13236:9;:16::i;:::-;13263:23;13275:4;13281;13263:11;:23::i;:::-;13319:9;13302:44;;13311:6;13302:44;;;13330:15;13302:44;;;;;;:::i;:::-;;;;;;;;12864:490;;;;;;;;;:::o;8188:115::-;8242:15;;8232:7;:25;;;;8279:16;;8268:8;:27;;;;8188:115::o;14368:255::-;14418:7;14427;14447:15;14465:7;;14447:25;;14483:15;4326:12;14483:25;;14532:20;4326:12;14532:7;;:11;;:20;;;;:::i;:::-;14522:7;:30;14519:60;;;14562:7;;4326:12;14554:25;;;;;;;;14519:60;14598:7;14607;14590:25;;;;;;14368:255;;;:::o;2206:166::-;2292:7;2325:1;2320;:6;;2328:12;2312:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2363:1;2359;:5;;;;:::i;:::-;2352:12;;2206:166;;;;;:::o;13362:468::-;13421:7;13430;13439;13448;13457;13466;13487:23;13512:12;13526:13;13543:39;13555:7;13564;;13573:8;;13543:11;:39::i;:::-;13486:96;;;;;;13593:19;13616:10;:8;:10::i;:::-;13593:33;;13638:15;13655:23;13680:12;13696:46;13708:7;13717:4;13723:5;13730:11;13696;:46::i;:::-;13637:105;;;;;;13761:7;13770:15;13787:4;13793:15;13810:4;13816:5;13753:69;;;;;;;;;;;;;;;;;;;13362:468;;;;;;;:::o;1136:136::-;1194:7;1221:43;1225:1;1228;1221:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1214:50;;1136:136;;;;:::o;15048:214::-;15101:19;15124:10;:8;:10::i;:::-;15101:33;;15145:13;15161:22;15171:11;15161:5;:9;;:22;;;;:::i;:::-;15145:38;;15221:33;15248:5;15221:7;:22;15237:4;15221:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15196:7;:22;15212:4;15196:22;;;;;;;;;;;;;;;:58;;;;15048:214;;;:::o;15270:147::-;15348:17;15360:4;15348:7;;:11;;:17;;;;:::i;:::-;15338:7;:27;;;;15389:20;15404:4;15389:10;;:14;;:20;;;;:::i;:::-;15376:10;:33;;;;15270:147;;:::o;13838:351::-;13931:7;13940;13949;13969:12;13984:28;14008:3;13984:19;13996:6;13984:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;13969:43;;14023:13;14039:29;14064:3;14039:20;14051:7;14039;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;14023:45;;14079:23;14105:28;14127:5;14105:17;14117:4;14105:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14079:54;;14152:15;14169:4;14175:5;14144:37;;;;;;;;;13838:351;;;;;;;:::o;14631:409::-;14741:7;14750;14759;14779:15;14797:24;14809:11;14797:7;:11;;:24;;;;:::i;:::-;14779:42;;14832:12;14847:21;14856:11;14847:4;:8;;:21;;;;:::i;:::-;14832:36;;14879:13;14895:22;14905:11;14895:5;:9;;:22;;;;:::i;:::-;14879:38;;14928:23;14954:28;14976:5;14954:17;14966:4;14954:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14928:54;;15001:7;15010:15;15027:4;14993:39;;;;;;;;;;14631:409;;;;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;350:84;;;;:::o;440:137::-;494:5;525:6;519:13;510:22;;541:30;565:5;541:30;:::i;:::-;500:77;;;;:::o;583:139::-;629:5;667:6;654:20;645:29;;683:33;710:5;683:33;:::i;:::-;635:87;;;;:::o;728:143::-;785:5;816:6;810:13;801:22;;832:33;859:5;832:33;:::i;:::-;791:80;;;;:::o;877:262::-;936:6;985:2;973:9;964:7;960:23;956:32;953:2;;;1001:1;998;991:12;953:2;1044:1;1069:53;1114:7;1105:6;1094:9;1090:22;1069:53;:::i;:::-;1059:63;;1015:117;943:196;;;;:::o;1145:284::-;1215:6;1264:2;1252:9;1243:7;1239:23;1235:32;1232:2;;;1280:1;1277;1270:12;1232:2;1323:1;1348:64;1404:7;1395:6;1384:9;1380:22;1348:64;:::i;:::-;1338:74;;1294:128;1222:207;;;;:::o;1435:407::-;1503:6;1511;1560:2;1548:9;1539:7;1535:23;1531:32;1528:2;;;1576:1;1573;1566:12;1528:2;1619:1;1644:53;1689:7;1680:6;1669:9;1665:22;1644:53;:::i;:::-;1634:63;;1590:117;1746:2;1772:53;1817:7;1808:6;1797:9;1793:22;1772:53;:::i;:::-;1762:63;;1717:118;1518:324;;;;;:::o;1848:552::-;1925:6;1933;1941;1990:2;1978:9;1969:7;1965:23;1961:32;1958:2;;;2006:1;2003;1996:12;1958:2;2049:1;2074:53;2119:7;2110:6;2099:9;2095:22;2074:53;:::i;:::-;2064:63;;2020:117;2176:2;2202:53;2247:7;2238:6;2227:9;2223:22;2202:53;:::i;:::-;2192:63;;2147:118;2304:2;2330:53;2375:7;2366:6;2355:9;2351:22;2330:53;:::i;:::-;2320:63;;2275:118;1948:452;;;;;:::o;2406:407::-;2474:6;2482;2531:2;2519:9;2510:7;2506:23;2502:32;2499:2;;;2547:1;2544;2537:12;2499:2;2590:1;2615:53;2660:7;2651:6;2640:9;2636:22;2615:53;:::i;:::-;2605:63;;2561:117;2717:2;2743:53;2788:7;2779:6;2768:9;2764:22;2743:53;:::i;:::-;2733:63;;2688:118;2489:324;;;;;:::o;2819:256::-;2875:6;2924:2;2912:9;2903:7;2899:23;2895:32;2892:2;;;2940:1;2937;2930:12;2892:2;2983:1;3008:50;3050:7;3041:6;3030:9;3026:22;3008:50;:::i;:::-;2998:60;;2954:114;2882:193;;;;:::o;3081:278::-;3148:6;3197:2;3185:9;3176:7;3172:23;3168:32;3165:2;;;3213:1;3210;3203:12;3165:2;3256:1;3281:61;3334:7;3325:6;3314:9;3310:22;3281:61;:::i;:::-;3271:71;;3227:125;3155:204;;;;:::o;3365:262::-;3424:6;3473:2;3461:9;3452:7;3448:23;3444:32;3441:2;;;3489:1;3486;3479:12;3441:2;3532:1;3557:53;3602:7;3593:6;3582:9;3578:22;3557:53;:::i;:::-;3547:63;;3503:117;3431:196;;;;:::o;3633:407::-;3701:6;3709;3758:2;3746:9;3737:7;3733:23;3729:32;3726:2;;;3774:1;3771;3764:12;3726:2;3817:1;3842:53;3887:7;3878:6;3867:9;3863:22;3842:53;:::i;:::-;3832:63;;3788:117;3944:2;3970:53;4015:7;4006:6;3995:9;3991:22;3970:53;:::i;:::-;3960:63;;3915:118;3716:324;;;;;:::o;4046:596::-;4134:6;4142;4150;4199:2;4187:9;4178:7;4174:23;4170:32;4167:2;;;4215:1;4212;4205:12;4167:2;4258:1;4283:64;4339:7;4330:6;4319:9;4315:22;4283:64;:::i;:::-;4273:74;;4229:128;4396:2;4422:64;4478:7;4469:6;4458:9;4454:22;4422:64;:::i;:::-;4412:74;;4367:129;4535:2;4561:64;4617:7;4608:6;4597:9;4593:22;4561:64;:::i;:::-;4551:74;;4506:129;4157:485;;;;;:::o;4648:179::-;4717:10;4738:46;4780:3;4772:6;4738:46;:::i;:::-;4816:4;4811:3;4807:14;4793:28;;4728:99;;;;:::o;4833:108::-;4910:24;4928:5;4910:24;:::i;:::-;4905:3;4898:37;4888:53;;:::o;4947:118::-;5034:24;5052:5;5034:24;:::i;:::-;5029:3;5022:37;5012:53;;:::o;5101:732::-;5220:3;5249:54;5297:5;5249:54;:::i;:::-;5319:86;5398:6;5393:3;5319:86;:::i;:::-;5312:93;;5429:56;5479:5;5429:56;:::i;:::-;5508:7;5539:1;5524:284;5549:6;5546:1;5543:13;5524:284;;;5625:6;5619:13;5652:63;5711:3;5696:13;5652:63;:::i;:::-;5645:70;;5738:60;5791:6;5738:60;:::i;:::-;5728:70;;5584:224;5571:1;5568;5564:9;5559:14;;5524:284;;;5528:14;5824:3;5817:10;;5225:608;;;;;;;:::o;5839:109::-;5920:21;5935:5;5920:21;:::i;:::-;5915:3;5908:34;5898:50;;:::o;5954:147::-;6049:45;6088:5;6049:45;:::i;:::-;6044:3;6037:58;6027:74;;:::o;6107:364::-;6195:3;6223:39;6256:5;6223:39;:::i;:::-;6278:71;6342:6;6337:3;6278:71;:::i;:::-;6271:78;;6358:52;6403:6;6398:3;6391:4;6384:5;6380:16;6358:52;:::i;:::-;6435:29;6457:6;6435:29;:::i;:::-;6430:3;6426:39;6419:46;;6199:272;;;;;:::o;6477:366::-;6619:3;6640:67;6704:2;6699:3;6640:67;:::i;:::-;6633:74;;6716:93;6805:3;6716:93;:::i;:::-;6834:2;6829:3;6825:12;6818:19;;6623:220;;;:::o;6849:366::-;6991:3;7012:67;7076:2;7071:3;7012:67;:::i;:::-;7005:74;;7088:93;7177:3;7088:93;:::i;:::-;7206:2;7201:3;7197:12;7190:19;;6995:220;;;:::o;7221:366::-;7363:3;7384:67;7448:2;7443:3;7384:67;:::i;:::-;7377:74;;7460:93;7549:3;7460:93;:::i;:::-;7578:2;7573:3;7569:12;7562:19;;7367:220;;;:::o;7593:366::-;7735:3;7756:67;7820:2;7815:3;7756:67;:::i;:::-;7749:74;;7832:93;7921:3;7832:93;:::i;:::-;7950:2;7945:3;7941:12;7934:19;;7739:220;;;:::o;7965:366::-;8107:3;8128:67;8192:2;8187:3;8128:67;:::i;:::-;8121:74;;8204:93;8293:3;8204:93;:::i;:::-;8322:2;8317:3;8313:12;8306:19;;8111:220;;;:::o;8337:366::-;8479:3;8500:67;8564:2;8559:3;8500:67;:::i;:::-;8493:74;;8576:93;8665:3;8576:93;:::i;:::-;8694:2;8689:3;8685:12;8678:19;;8483:220;;;:::o;8709:366::-;8851:3;8872:67;8936:2;8931:3;8872:67;:::i;:::-;8865:74;;8948:93;9037:3;8948:93;:::i;:::-;9066:2;9061:3;9057:12;9050:19;;8855:220;;;:::o;9081:366::-;9223:3;9244:67;9308:2;9303:3;9244:67;:::i;:::-;9237:74;;9320:93;9409:3;9320:93;:::i;:::-;9438:2;9433:3;9429:12;9422:19;;9227:220;;;:::o;9453:366::-;9595:3;9616:67;9680:2;9675:3;9616:67;:::i;:::-;9609:74;;9692:93;9781:3;9692:93;:::i;:::-;9810:2;9805:3;9801:12;9794:19;;9599:220;;;:::o;9825:366::-;9967:3;9988:67;10052:2;10047:3;9988:67;:::i;:::-;9981:74;;10064:93;10153:3;10064:93;:::i;:::-;10182:2;10177:3;10173:12;10166:19;;9971:220;;;:::o;10197:366::-;10339:3;10360:67;10424:2;10419:3;10360:67;:::i;:::-;10353:74;;10436:93;10525:3;10436:93;:::i;:::-;10554:2;10549:3;10545:12;10538:19;;10343:220;;;:::o;10569:366::-;10711:3;10732:67;10796:2;10791:3;10732:67;:::i;:::-;10725:74;;10808:93;10897:3;10808:93;:::i;:::-;10926:2;10921:3;10917:12;10910:19;;10715:220;;;:::o;10941:366::-;11083:3;11104:67;11168:2;11163:3;11104:67;:::i;:::-;11097:74;;11180:93;11269:3;11180:93;:::i;:::-;11298:2;11293:3;11289:12;11282:19;;11087:220;;;:::o;11313:366::-;11455:3;11476:67;11540:2;11535:3;11476:67;:::i;:::-;11469:74;;11552:93;11641:3;11552:93;:::i;:::-;11670:2;11665:3;11661:12;11654:19;;11459:220;;;:::o;11685:118::-;11772:24;11790:5;11772:24;:::i;:::-;11767:3;11760:37;11750:53;;:::o;11809:112::-;11892:22;11908:5;11892:22;:::i;:::-;11887:3;11880:35;11870:51;;:::o;11927:222::-;12020:4;12058:2;12047:9;12043:18;12035:26;;12071:71;12139:1;12128:9;12124:17;12115:6;12071:71;:::i;:::-;12025:124;;;;:::o;12155:332::-;12276:4;12314:2;12303:9;12299:18;12291:26;;12327:71;12395:1;12384:9;12380:17;12371:6;12327:71;:::i;:::-;12408:72;12476:2;12465:9;12461:18;12452:6;12408:72;:::i;:::-;12281:206;;;;;:::o;12493:332::-;12614:4;12652:2;12641:9;12637:18;12629:26;;12665:71;12733:1;12722:9;12718:17;12709:6;12665:71;:::i;:::-;12746:72;12814:2;12803:9;12799:18;12790:6;12746:72;:::i;:::-;12619:206;;;;;:::o;12831:807::-;13080:4;13118:3;13107:9;13103:19;13095:27;;13132:71;13200:1;13189:9;13185:17;13176:6;13132:71;:::i;:::-;13213:72;13281:2;13270:9;13266:18;13257:6;13213:72;:::i;:::-;13295:80;13371:2;13360:9;13356:18;13347:6;13295:80;:::i;:::-;13385;13461:2;13450:9;13446:18;13437:6;13385:80;:::i;:::-;13475:73;13543:3;13532:9;13528:19;13519:6;13475:73;:::i;:::-;13558;13626:3;13615:9;13611:19;13602:6;13558:73;:::i;:::-;13085:553;;;;;;;;;:::o;13644:210::-;13731:4;13769:2;13758:9;13754:18;13746:26;;13782:65;13844:1;13833:9;13829:17;13820:6;13782:65;:::i;:::-;13736:118;;;;:::o;13860:313::-;13973:4;14011:2;14000:9;13996:18;13988:26;;14060:9;14054:4;14050:20;14046:1;14035:9;14031:17;14024:47;14088:78;14161:4;14152:6;14088:78;:::i;:::-;14080:86;;13978:195;;;;:::o;14179:419::-;14345:4;14383:2;14372:9;14368:18;14360:26;;14432:9;14426:4;14422:20;14418:1;14407:9;14403:17;14396:47;14460:131;14586:4;14460:131;:::i;:::-;14452:139;;14350:248;;;:::o;14604:419::-;14770:4;14808:2;14797:9;14793:18;14785:26;;14857:9;14851:4;14847:20;14843:1;14832:9;14828:17;14821:47;14885:131;15011:4;14885:131;:::i;:::-;14877:139;;14775:248;;;:::o;15029:419::-;15195:4;15233:2;15222:9;15218:18;15210:26;;15282:9;15276:4;15272:20;15268:1;15257:9;15253:17;15246:47;15310:131;15436:4;15310:131;:::i;:::-;15302:139;;15200:248;;;:::o;15454:419::-;15620:4;15658:2;15647:9;15643:18;15635:26;;15707:9;15701:4;15697:20;15693:1;15682:9;15678:17;15671:47;15735:131;15861:4;15735:131;:::i;:::-;15727:139;;15625:248;;;:::o;15879:419::-;16045:4;16083:2;16072:9;16068:18;16060:26;;16132:9;16126:4;16122:20;16118:1;16107:9;16103:17;16096:47;16160:131;16286:4;16160:131;:::i;:::-;16152:139;;16050:248;;;:::o;16304:419::-;16470:4;16508:2;16497:9;16493:18;16485:26;;16557:9;16551:4;16547:20;16543:1;16532:9;16528:17;16521:47;16585:131;16711:4;16585:131;:::i;:::-;16577:139;;16475:248;;;:::o;16729:419::-;16895:4;16933:2;16922:9;16918:18;16910:26;;16982:9;16976:4;16972:20;16968:1;16957:9;16953:17;16946:47;17010:131;17136:4;17010:131;:::i;:::-;17002:139;;16900:248;;;:::o;17154:419::-;17320:4;17358:2;17347:9;17343:18;17335:26;;17407:9;17401:4;17397:20;17393:1;17382:9;17378:17;17371:47;17435:131;17561:4;17435:131;:::i;:::-;17427:139;;17325:248;;;:::o;17579:419::-;17745:4;17783:2;17772:9;17768:18;17760:26;;17832:9;17826:4;17822:20;17818:1;17807:9;17803:17;17796:47;17860:131;17986:4;17860:131;:::i;:::-;17852:139;;17750:248;;;:::o;18004:419::-;18170:4;18208:2;18197:9;18193:18;18185:26;;18257:9;18251:4;18247:20;18243:1;18232:9;18228:17;18221:47;18285:131;18411:4;18285:131;:::i;:::-;18277:139;;18175:248;;;:::o;18429:419::-;18595:4;18633:2;18622:9;18618:18;18610:26;;18682:9;18676:4;18672:20;18668:1;18657:9;18653:17;18646:47;18710:131;18836:4;18710:131;:::i;:::-;18702:139;;18600:248;;;:::o;18854:419::-;19020:4;19058:2;19047:9;19043:18;19035:26;;19107:9;19101:4;19097:20;19093:1;19082:9;19078:17;19071:47;19135:131;19261:4;19135:131;:::i;:::-;19127:139;;19025:248;;;:::o;19279:419::-;19445:4;19483:2;19472:9;19468:18;19460:26;;19532:9;19526:4;19522:20;19518:1;19507:9;19503:17;19496:47;19560:131;19686:4;19560:131;:::i;:::-;19552:139;;19450:248;;;:::o;19704:419::-;19870:4;19908:2;19897:9;19893:18;19885:26;;19957:9;19951:4;19947:20;19943:1;19932:9;19928:17;19921:47;19985:131;20111:4;19985:131;:::i;:::-;19977:139;;19875:248;;;:::o;20129:222::-;20222:4;20260:2;20249:9;20245:18;20237:26;;20273:71;20341:1;20330:9;20326:17;20317:6;20273:71;:::i;:::-;20227:124;;;;:::o;20357:831::-;20620:4;20658:3;20647:9;20643:19;20635:27;;20672:71;20740:1;20729:9;20725:17;20716:6;20672:71;:::i;:::-;20753:80;20829:2;20818:9;20814:18;20805:6;20753:80;:::i;:::-;20880:9;20874:4;20870:20;20865:2;20854:9;20850:18;20843:48;20908:108;21011:4;21002:6;20908:108;:::i;:::-;20900:116;;21026:72;21094:2;21083:9;21079:18;21070:6;21026:72;:::i;:::-;21108:73;21176:3;21165:9;21161:19;21152:6;21108:73;:::i;:::-;20625:563;;;;;;;;:::o;21194:214::-;21283:4;21321:2;21310:9;21306:18;21298:26;;21334:67;21398:1;21387:9;21383:17;21374:6;21334:67;:::i;:::-;21288:120;;;;:::o;21414:132::-;21481:4;21504:3;21496:11;;21534:4;21529:3;21525:14;21517:22;;21486:60;;;:::o;21552:114::-;21619:6;21653:5;21647:12;21637:22;;21626:40;;;:::o;21672:99::-;21724:6;21758:5;21752:12;21742:22;;21731:40;;;:::o;21777:113::-;21847:4;21879;21874:3;21870:14;21862:22;;21852:38;;;:::o;21896:184::-;21995:11;22029:6;22024:3;22017:19;22069:4;22064:3;22060:14;22045:29;;22007:73;;;;:::o;22086:169::-;22170:11;22204:6;22199:3;22192:19;22244:4;22239:3;22235:14;22220:29;;22182:73;;;;:::o;22261:305::-;22301:3;22320:20;22338:1;22320:20;:::i;:::-;22315:25;;22354:20;22372:1;22354:20;:::i;:::-;22349:25;;22508:1;22440:66;22436:74;22433:1;22430:81;22427:2;;;22514:18;;:::i;:::-;22427:2;22558:1;22555;22551:9;22544:16;;22305:261;;;;:::o;22572:185::-;22612:1;22629:20;22647:1;22629:20;:::i;:::-;22624:25;;22663:20;22681:1;22663:20;:::i;:::-;22658:25;;22702:1;22692:2;;22707:18;;:::i;:::-;22692:2;22749:1;22746;22742:9;22737:14;;22614:143;;;;:::o;22763:348::-;22803:7;22826:20;22844:1;22826:20;:::i;:::-;22821:25;;22860:20;22878:1;22860:20;:::i;:::-;22855:25;;23048:1;22980:66;22976:74;22973:1;22970:81;22965:1;22958:9;22951:17;22947:105;22944:2;;;23055:18;;:::i;:::-;22944:2;23103:1;23100;23096:9;23085:20;;22811:300;;;;:::o;23117:191::-;23157:4;23177:20;23195:1;23177:20;:::i;:::-;23172:25;;23211:20;23229:1;23211:20;:::i;:::-;23206:25;;23250:1;23247;23244:8;23241:2;;;23255:18;;:::i;:::-;23241:2;23300:1;23297;23293:9;23285:17;;23162:146;;;;:::o;23314:96::-;23351:7;23380:24;23398:5;23380:24;:::i;:::-;23369:35;;23359:51;;;:::o;23416:90::-;23450:7;23493:5;23486:13;23479:21;23468:32;;23458:48;;;:::o;23512:126::-;23549:7;23589:42;23582:5;23578:54;23567:65;;23557:81;;;:::o;23644:77::-;23681:7;23710:5;23699:16;;23689:32;;;:::o;23727:86::-;23762:7;23802:4;23795:5;23791:16;23780:27;;23770:43;;;:::o;23819:121::-;23877:9;23910:24;23928:5;23910:24;:::i;:::-;23897:37;;23887:53;;;:::o;23946:307::-;24014:1;24024:113;24038:6;24035:1;24032:13;24024:113;;;24123:1;24118:3;24114:11;24108:18;24104:1;24099:3;24095:11;24088:39;24060:2;24057:1;24053:10;24048:15;;24024:113;;;24155:6;24152:1;24149:13;24146:2;;;24235:1;24226:6;24221:3;24217:16;24210:27;24146:2;23995:258;;;;:::o;24259:233::-;24298:3;24321:24;24339:5;24321:24;:::i;:::-;24312:33;;24367:66;24360:5;24357:77;24354:2;;;24437:18;;:::i;:::-;24354:2;24484:1;24477:5;24473:13;24466:20;;24302:190;;;:::o;24498:176::-;24530:1;24547:20;24565:1;24547:20;:::i;:::-;24542:25;;24581:20;24599:1;24581:20;:::i;:::-;24576:25;;24620:1;24610:2;;24625:18;;:::i;:::-;24610:2;24666:1;24663;24659:9;24654:14;;24532:142;;;;:::o;24680:180::-;24728:77;24725:1;24718:88;24825:4;24822:1;24815:15;24849:4;24846:1;24839:15;24866:180;24914:77;24911:1;24904:88;25011:4;25008:1;25001:15;25035:4;25032:1;25025:15;25052:102;25093:6;25144:2;25140:7;25135:2;25128:5;25124:14;25120:28;25110:38;;25100:54;;;:::o;25160:222::-;25300:34;25296:1;25288:6;25284:14;25277:58;25369:5;25364:2;25356:6;25352:15;25345:30;25266:116;:::o;25388:229::-;25528:34;25524:1;25516:6;25512:14;25505:58;25597:12;25592:2;25584:6;25580:15;25573:37;25494:123;:::o;25623:221::-;25763:34;25759:1;25751:6;25747:14;25740:58;25832:4;25827:2;25819:6;25815:15;25808:29;25729:115;:::o;25850:221::-;25990:34;25986:1;25978:6;25974:14;25967:58;26059:4;26054:2;26046:6;26042:15;26035:29;25956:115;:::o;26077:177::-;26217:29;26213:1;26205:6;26201:14;26194:53;26183:71;:::o;26260:171::-;26400:23;26396:1;26388:6;26384:14;26377:47;26366:65;:::o;26437:222::-;26577:34;26573:1;26565:6;26561:14;26554:58;26646:5;26641:2;26633:6;26629:15;26622:30;26543:116;:::o;26665:220::-;26805:34;26801:1;26793:6;26789:14;26782:58;26874:3;26869:2;26861:6;26857:15;26850:28;26771:114;:::o;26891:182::-;27031:34;27027:1;27019:6;27015:14;27008:58;26997:76;:::o;27079:228::-;27219:34;27215:1;27207:6;27203:14;27196:58;27288:11;27283:2;27275:6;27271:15;27264:36;27185:122;:::o;27313:224::-;27453:34;27449:1;27441:6;27437:14;27430:58;27522:7;27517:2;27509:6;27505:15;27498:32;27419:118;:::o;27543:223::-;27683:34;27679:1;27671:6;27667:14;27660:58;27752:6;27747:2;27739:6;27735:15;27728:31;27649:117;:::o;27772:173::-;27912:25;27908:1;27900:6;27896:14;27889:49;27878:67;:::o;27951:174::-;28091:26;28087:1;28079:6;28075:14;28068:50;28057:68;:::o;28131:122::-;28204:24;28222:5;28204:24;:::i;:::-;28197:5;28194:35;28184:2;;28243:1;28240;28233:12;28184:2;28174:79;:::o;28259:116::-;28329:21;28344:5;28329:21;:::i;:::-;28322:5;28319:32;28309:2;;28365:1;28362;28355:12;28309:2;28299:76;:::o;28381:122::-;28454:24;28472:5;28454:24;:::i;:::-;28447:5;28444:35;28434:2;;28493:1;28490;28483:12;28434:2;28424:79;:::o

Swarm Source

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