ETH Price: $3,163.40 (-4.55%)
 

Overview

Max Total Supply

1,000,000,000 APED

Holders

31

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000002 APED

Value
$0.00
0x2155279e4bA48014B7Ca4CbBBc179FAd86424b57
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:
APED

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-06-05
*/

/**
 *
*/

/**

 $APED: Embrace the Degen Spirit

a meme token built for the fearless and bold traders like you who live for the thrill of the next big move

Tax : 0/0

Website : https://aped.cash/

Telegram : https://t.me/Apedoneth



*/

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.9;

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 APED is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "Aped";
    string private constant _symbol = "APED";
    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 = 1000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 25;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 35;

    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    mapping(address => bool) public bots; mapping (address => uint256) public _buyMap;
    address payable private _developmentAddress = payable(0xF1A07f53D3c42F8fBFaB3f3D62fEb0846b97c893);
    address payable private _marketingAddress = payable(0xF1A07f53D3c42F8fBFaB3f3D62fEb0846b97c893);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen = true;
    bool private inSwap = true;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount = 1000000000 * 10**9;
    uint256 public _maxWalletSize = 20000000 * 10**9;
    uint256 public _swapTokensAtAmount = 1000000 * 10**9;

    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[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = 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 && _taxFee == 0) return;

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _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");
            }

            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");

            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }

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

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }

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

        bool takeFee = true;

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

            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }

        }

        _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 setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }

    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function blockBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

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

    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, _taxFee);
        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 setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }

    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

}

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":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_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":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","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":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","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"}]

6080604052670de0b6b3a76400005f1961001991906106e5565b5f196100259190610742565b6006555f60085560196009555f600a556023600b55600a54600c55600b54600d55600c54600e55600d54600f5573f1a07f53d3c42f8fbfab3f3d62feb0846b97c89360125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f1a07f53d3c42f8fbfab3f3d62feb0846b97c89360135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601560146101000a81548160ff02191690831515021790555060016015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff021916908315150217905550670de0b6b3a764000060165566470de4df82000060175566038d7ea4c68000601855348015610177575f80fd5b505f61018761068160201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460025f61023761068160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610315573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061033991906107d3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561039e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103c291906107d3565b6040518363ffffffff1660e01b81526004016103df92919061080d565b6020604051808303815f875af11580156103fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061041f91906107d3565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160055f61047161068860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061060f61068160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a76400006040516106739190610843565b60405180910390a35061085c565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6106ef826106af565b91506106fa836106af565b92508261070a576107096106b8565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61074c826106af565b9150610757836106af565b925082820390508181111561076f5761076e610715565b5b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6107a282610779565b9050919050565b6107b281610798565b81146107bc575f80fd5b50565b5f815190506107cd816107a9565b92915050565b5f602082840312156107e8576107e7610775565b5b5f6107f5848285016107bf565b91505092915050565b61080781610798565b82525050565b5f6040820190506108205f8301856107fe565b61082d60208301846107fe565b9392505050565b61083d816106af565b82525050565b5f6020820190506108565f830184610834565b92915050565b613bac806108695f395ff3fe6080604052600436106101cf575f3560e01c80637d1db4a5116100f6578063a2a957bb11610094578063c492f04611610063578063c492f04614610640578063dd62ed3e14610668578063ea1644d5146106a4578063f2fde38b146106cc576101d6565b8063a2a957bb1461058a578063a9059cbb146105b2578063bfd79284146105ee578063c3c8cd801461062a576101d6565b80638f70ccf7116100d05780638f70ccf7146104e65780638f9a55c01461050e57806395d89b411461053857806398a5c31514610562576101d6565b80637d1db4a5146104565780637f2feddc146104805780638da5cb5b146104bc576101d6565b8063313ce5671161016e5780636fc3eaec1161013d5780636fc3eaec146103c657806370a08231146103dc578063715018a61461041857806374010ece1461042e576101d6565b8063313ce5671461032257806349bd5a5e1461034c5780636b999053146103765780636d8aa8f81461039e576101d6565b80631694505e116101aa5780631694505e1461026857806318160ddd1461029257806323b872dd146102bc5780632fd689e3146102f8576101d6565b8062b8cf2a146101da57806306fdde0314610202578063095ea7b31461022c576101d6565b366101d657005b5f80fd5b3480156101e5575f80fd5b5061020060048036038101906101fb9190612c61565b6106f4565b005b34801561020d575f80fd5b50610216610813565b6040516102239190612d08565b60405180910390f35b348015610237575f80fd5b50610252600480360381019061024d9190612d5b565b610850565b60405161025f9190612db3565b60405180910390f35b348015610273575f80fd5b5061027c61086d565b6040516102899190612e27565b60405180910390f35b34801561029d575f80fd5b506102a6610892565b6040516102b39190612e4f565b60405180910390f35b3480156102c7575f80fd5b506102e260048036038101906102dd9190612e68565b6108a1565b6040516102ef9190612db3565b60405180910390f35b348015610303575f80fd5b5061030c610975565b6040516103199190612e4f565b60405180910390f35b34801561032d575f80fd5b5061033661097b565b6040516103439190612ed3565b60405180910390f35b348015610357575f80fd5b50610360610983565b60405161036d9190612efb565b60405180910390f35b348015610381575f80fd5b5061039c60048036038101906103979190612f14565b6109a8565b005b3480156103a9575f80fd5b506103c460048036038101906103bf9190612f69565b610a93565b005b3480156103d1575f80fd5b506103da610b44565b005b3480156103e7575f80fd5b5061040260048036038101906103fd9190612f14565b610c11565b60405161040f9190612e4f565b60405180910390f35b348015610423575f80fd5b5061042c610c5f565b005b348015610439575f80fd5b50610454600480360381019061044f9190612f94565b610dad565b005b348015610461575f80fd5b5061046a610e4b565b6040516104779190612e4f565b60405180910390f35b34801561048b575f80fd5b506104a660048036038101906104a19190612f14565b610e51565b6040516104b39190612e4f565b60405180910390f35b3480156104c7575f80fd5b506104d0610e66565b6040516104dd9190612efb565b60405180910390f35b3480156104f1575f80fd5b5061050c60048036038101906105079190612f69565b610e8d565b005b348015610519575f80fd5b50610522610f3e565b60405161052f9190612e4f565b60405180910390f35b348015610543575f80fd5b5061054c610f44565b6040516105599190612d08565b60405180910390f35b34801561056d575f80fd5b5061058860048036038101906105839190612f94565b610f81565b005b348015610595575f80fd5b506105b060048036038101906105ab9190612fbf565b61101f565b005b3480156105bd575f80fd5b506105d860048036038101906105d39190612d5b565b6110d5565b6040516105e59190612db3565b60405180910390f35b3480156105f9575f80fd5b50610614600480360381019061060f9190612f14565b6110f2565b6040516106219190612db3565b60405180910390f35b348015610635575f80fd5b5061063e61110f565b005b34801561064b575f80fd5b506106666004803603810190610661919061307c565b6111e4565b005b348015610673575f80fd5b5061068e600480360381019061068991906130d9565b611313565b60405161069b9190612e4f565b60405180910390f35b3480156106af575f80fd5b506106ca60048036038101906106c59190612f94565b611395565b005b3480156106d7575f80fd5b506106f260048036038101906106ed9190612f14565b611433565b005b6106fc6115f0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610788576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077f90613161565b60405180910390fd5b5f5b815181101561080f57600160105f8484815181106107ab576107aa61317f565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061078a565b5050565b60606040518060400160405280600481526020017f4170656400000000000000000000000000000000000000000000000000000000815250905090565b5f61086361085c6115f0565b84846115f7565b6001905092915050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f670de0b6b3a7640000905090565b5f6108ad8484846117ba565b61096a846108b96115f0565b61096585604051806060016040528060288152602001613b4f6028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61091c6115f0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461201a9092919063ffffffff16565b6115f7565b600190509392505050565b60185481565b5f6009905090565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109b06115f0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3390613161565b60405180910390fd5b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610a9b6115f0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1e90613161565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b846115f0565b73ffffffffffffffffffffffffffffffffffffffff161480610bf9575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610be16115f0565b73ffffffffffffffffffffffffffffffffffffffff16145b610c01575f80fd5b5f479050610c0e8161207c565b50565b5f610c5860025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120e4565b9050919050565b610c676115f0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cea90613161565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610db56115f0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3890613161565b60405180910390fd5b8060168190555050565b60165481565b6011602052805f5260405f205f915090505481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610e956115f0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1890613161565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600481526020017f4150454400000000000000000000000000000000000000000000000000000000815250905090565b610f896115f0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100c90613161565b60405180910390fd5b8060188190555050565b6110276115f0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110aa90613161565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b5f6110e86110e16115f0565b84846117ba565b6001905092915050565b6010602052805f5260405f205f915054906101000a900460ff1681565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661114f6115f0565b73ffffffffffffffffffffffffffffffffffffffff1614806111c4575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111ac6115f0565b73ffffffffffffffffffffffffffffffffffffffff16145b6111cc575f80fd5b5f6111d630610c11565b90506111e181612150565b50565b6111ec6115f0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611278576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126f90613161565b60405180910390fd5b5f5b8383905081101561130d578160055f86868581811061129c5761129b61317f565b5b90506020020160208101906112b19190612f14565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061127a565b50505050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61139d6115f0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611429576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142090613161565b60405180910390fd5b8060178190555050565b61143b6115f0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114be90613161565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152c9061321c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611665576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165c906132aa565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ca90613338565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117ad9190612e4f565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611828576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181f906133c6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611896576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188d90613454565b60405180910390fd5b5f81116118d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cf906134e2565b60405180910390fd5b6118e0610e66565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561194e575061191e610e66565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d2757601560149054906101000a900460ff166119dd5761196f610e66565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146119dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d390613570565b60405180910390fd5b5b601654811115611a22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a19906135d8565b60405180910390fd5b60105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611ac0575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611aff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af690613666565b60405180910390fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611bab5760175481611b6084610c11565b611b6a91906136b1565b10611baa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba190613754565b60405180910390fd5b5b5f611bb530610c11565b90505f60185482101590506016548210611bcf5760165491505b808015611be7575060158054906101000a900460ff16155b8015611c40575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611c585750601560169054906101000a900460ff165b8015611cab575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611cfe575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611d2457611d0c82612150565b5f4790505f811115611d2257611d214761207c565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611dc7575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611e78575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611e77575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611e85575f9050612008565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611f2e575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f4657600854600c81905550600954600d819055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611fef575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561200757600a54600c81905550600b54600d819055505b5b612014848484846123b9565b50505050565b5f838311158290612061576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120589190612d08565b60405180910390fd5b505f838561206f9190613772565b9050809150509392505050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156120e0573d5f803e3d5ffd5b5050565b5f60065482111561212a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212190613815565b60405180910390fd5b5f6121336123e6565b9050612148818461240f90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561218657612185612acb565b5b6040519080825280602002602001820160405280156121b45781602001602082028036833780820191505090505b50905030815f815181106121cb576121ca61317f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561226f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122939190613847565b816001815181106122a7576122a661317f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061230d3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115f7565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161236f959493929190613962565b5f604051808303815f87803b158015612386575f80fd5b505af1158015612398573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b806123c7576123c6612458565b5b6123d2848484612491565b806123e0576123df612651565b5b50505050565b5f805f6123f1612665565b91509150612408818361240f90919063ffffffff16565b9250505090565b5f61245083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126c1565b905092915050565b5f600c5414801561246a57505f600d54145b61248f57600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f805f805f806124a087612722565b9550955095509550955095506124fc8660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461278290919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061258d8560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127cb90919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506125d781612828565b6125e184836128df565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161263e9190612e4f565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b5f805f60065490505f670de0b6b3a76400009050612696670de0b6b3a764000060065461240f90919063ffffffff16565b8210156126b457600654670de0b6b3a76400009350935050506126bd565b81819350935050505b9091565b5f8083118290612707576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126fe9190612d08565b60405180910390fd5b505f838561271591906139e7565b9050809150509392505050565b5f805f805f805f805f61273a8a600c54600d54612919565b9250925092505f6127496123e6565b90505f805f61275a8e8787876129ab565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f6127c383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061201a565b905092915050565b5f8082846127d991906136b1565b90508381101561281e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161281590613a61565b60405180910390fd5b8091505092915050565b5f6128316123e6565b90505f6128478284612a2f90919063ffffffff16565b90506128998160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127cb90919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b6128f48260065461278290919063ffffffff16565b60068190555061290f816007546127cb90919063ffffffff16565b6007819055505050565b5f805f806129436064612935888a612a2f90919063ffffffff16565b61240f90919063ffffffff16565b90505f61296c606461295e888b612a2f90919063ffffffff16565b61240f90919063ffffffff16565b90505f61299482612986858c61278290919063ffffffff16565b61278290919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f806129c28589612a2f90919063ffffffff16565b90505f6129d88689612a2f90919063ffffffff16565b90505f6129ee8789612a2f90919063ffffffff16565b90505f612a1682612a08858761278290919063ffffffff16565b61278290919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612a3f575f9050612aa0565b5f8284612a4c9190613a7f565b9050828482612a5b91906139e7565b14612a9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a9290613b30565b60405180910390fd5b809150505b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612b0182612abb565b810181811067ffffffffffffffff82111715612b2057612b1f612acb565b5b80604052505050565b5f612b32612aa6565b9050612b3e8282612af8565b919050565b5f67ffffffffffffffff821115612b5d57612b5c612acb565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612b9b82612b72565b9050919050565b612bab81612b91565b8114612bb5575f80fd5b50565b5f81359050612bc681612ba2565b92915050565b5f612bde612bd984612b43565b612b29565b90508083825260208201905060208402830185811115612c0157612c00612b6e565b5b835b81811015612c2a5780612c168882612bb8565b845260208401935050602081019050612c03565b5050509392505050565b5f82601f830112612c4857612c47612ab7565b5b8135612c58848260208601612bcc565b91505092915050565b5f60208284031215612c7657612c75612aaf565b5b5f82013567ffffffffffffffff811115612c9357612c92612ab3565b5b612c9f84828501612c34565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f612cda82612ca8565b612ce48185612cb2565b9350612cf4818560208601612cc2565b612cfd81612abb565b840191505092915050565b5f6020820190508181035f830152612d208184612cd0565b905092915050565b5f819050919050565b612d3a81612d28565b8114612d44575f80fd5b50565b5f81359050612d5581612d31565b92915050565b5f8060408385031215612d7157612d70612aaf565b5b5f612d7e85828601612bb8565b9250506020612d8f85828601612d47565b9150509250929050565b5f8115159050919050565b612dad81612d99565b82525050565b5f602082019050612dc65f830184612da4565b92915050565b5f819050919050565b5f612def612dea612de584612b72565b612dcc565b612b72565b9050919050565b5f612e0082612dd5565b9050919050565b5f612e1182612df6565b9050919050565b612e2181612e07565b82525050565b5f602082019050612e3a5f830184612e18565b92915050565b612e4981612d28565b82525050565b5f602082019050612e625f830184612e40565b92915050565b5f805f60608486031215612e7f57612e7e612aaf565b5b5f612e8c86828701612bb8565b9350506020612e9d86828701612bb8565b9250506040612eae86828701612d47565b9150509250925092565b5f60ff82169050919050565b612ecd81612eb8565b82525050565b5f602082019050612ee65f830184612ec4565b92915050565b612ef581612b91565b82525050565b5f602082019050612f0e5f830184612eec565b92915050565b5f60208284031215612f2957612f28612aaf565b5b5f612f3684828501612bb8565b91505092915050565b612f4881612d99565b8114612f52575f80fd5b50565b5f81359050612f6381612f3f565b92915050565b5f60208284031215612f7e57612f7d612aaf565b5b5f612f8b84828501612f55565b91505092915050565b5f60208284031215612fa957612fa8612aaf565b5b5f612fb684828501612d47565b91505092915050565b5f805f8060808587031215612fd757612fd6612aaf565b5b5f612fe487828801612d47565b9450506020612ff587828801612d47565b935050604061300687828801612d47565b925050606061301787828801612d47565b91505092959194509250565b5f80fd5b5f8083601f84011261303c5761303b612ab7565b5b8235905067ffffffffffffffff81111561305957613058613023565b5b60208301915083602082028301111561307557613074612b6e565b5b9250929050565b5f805f6040848603121561309357613092612aaf565b5b5f84013567ffffffffffffffff8111156130b0576130af612ab3565b5b6130bc86828701613027565b935093505060206130cf86828701612f55565b9150509250925092565b5f80604083850312156130ef576130ee612aaf565b5b5f6130fc85828601612bb8565b925050602061310d85828601612bb8565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61314b602083612cb2565b915061315682613117565b602082019050919050565b5f6020820190508181035f8301526131788161313f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613206602683612cb2565b9150613211826131ac565b604082019050919050565b5f6020820190508181035f830152613233816131fa565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613294602483612cb2565b915061329f8261323a565b604082019050919050565b5f6020820190508181035f8301526132c181613288565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613322602283612cb2565b915061332d826132c8565b604082019050919050565b5f6020820190508181035f83015261334f81613316565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6133b0602583612cb2565b91506133bb82613356565b604082019050919050565b5f6020820190508181035f8301526133dd816133a4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61343e602383612cb2565b9150613449826133e4565b604082019050919050565b5f6020820190508181035f83015261346b81613432565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6134cc602983612cb2565b91506134d782613472565b604082019050919050565b5f6020820190508181035f8301526134f9816134c0565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f61355a603f83612cb2565b915061356582613500565b604082019050919050565b5f6020820190508181035f8301526135878161354e565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f6135c2601c83612cb2565b91506135cd8261358e565b602082019050919050565b5f6020820190508181035f8301526135ef816135b6565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c6973745f8201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b5f613650602383612cb2565b915061365b826135f6565b604082019050919050565b5f6020820190508181035f83015261367d81613644565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6136bb82612d28565b91506136c683612d28565b92508282019050808211156136de576136dd613684565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f61373e602383612cb2565b9150613749826136e4565b604082019050919050565b5f6020820190508181035f83015261376b81613732565b9050919050565b5f61377c82612d28565b915061378783612d28565b925082820390508181111561379f5761379e613684565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f6137ff602a83612cb2565b915061380a826137a5565b604082019050919050565b5f6020820190508181035f83015261382c816137f3565b9050919050565b5f8151905061384181612ba2565b92915050565b5f6020828403121561385c5761385b612aaf565b5b5f61386984828501613833565b91505092915050565b5f819050919050565b5f61389561389061388b84613872565b612dcc565b612d28565b9050919050565b6138a58161387b565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6138dd81612b91565b82525050565b5f6138ee83836138d4565b60208301905092915050565b5f602082019050919050565b5f613910826138ab565b61391a81856138b5565b9350613925836138c5565b805f5b8381101561395557815161393c88826138e3565b9750613947836138fa565b925050600181019050613928565b5085935050505092915050565b5f60a0820190506139755f830188612e40565b613982602083018761389c565b81810360408301526139948186613906565b90506139a36060830185612eec565b6139b06080830184612e40565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6139f182612d28565b91506139fc83612d28565b925082613a0c57613a0b6139ba565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613a4b601b83612cb2565b9150613a5682613a17565b602082019050919050565b5f6020820190508181035f830152613a7881613a3f565b9050919050565b5f613a8982612d28565b9150613a9483612d28565b9250828202613aa281612d28565b91508282048414831517613ab957613ab8613684565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613b1a602183612cb2565b9150613b2582613ac0565b604082019050919050565b5f6020820190508181035f830152613b4781613b0e565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220cf5d6912169a47627fa355e623d4a1ed8fe8a11885c853ab3d53b0de803073db64736f6c63430008190033

Deployed Bytecode

0x6080604052600436106101cf575f3560e01c80637d1db4a5116100f6578063a2a957bb11610094578063c492f04611610063578063c492f04614610640578063dd62ed3e14610668578063ea1644d5146106a4578063f2fde38b146106cc576101d6565b8063a2a957bb1461058a578063a9059cbb146105b2578063bfd79284146105ee578063c3c8cd801461062a576101d6565b80638f70ccf7116100d05780638f70ccf7146104e65780638f9a55c01461050e57806395d89b411461053857806398a5c31514610562576101d6565b80637d1db4a5146104565780637f2feddc146104805780638da5cb5b146104bc576101d6565b8063313ce5671161016e5780636fc3eaec1161013d5780636fc3eaec146103c657806370a08231146103dc578063715018a61461041857806374010ece1461042e576101d6565b8063313ce5671461032257806349bd5a5e1461034c5780636b999053146103765780636d8aa8f81461039e576101d6565b80631694505e116101aa5780631694505e1461026857806318160ddd1461029257806323b872dd146102bc5780632fd689e3146102f8576101d6565b8062b8cf2a146101da57806306fdde0314610202578063095ea7b31461022c576101d6565b366101d657005b5f80fd5b3480156101e5575f80fd5b5061020060048036038101906101fb9190612c61565b6106f4565b005b34801561020d575f80fd5b50610216610813565b6040516102239190612d08565b60405180910390f35b348015610237575f80fd5b50610252600480360381019061024d9190612d5b565b610850565b60405161025f9190612db3565b60405180910390f35b348015610273575f80fd5b5061027c61086d565b6040516102899190612e27565b60405180910390f35b34801561029d575f80fd5b506102a6610892565b6040516102b39190612e4f565b60405180910390f35b3480156102c7575f80fd5b506102e260048036038101906102dd9190612e68565b6108a1565b6040516102ef9190612db3565b60405180910390f35b348015610303575f80fd5b5061030c610975565b6040516103199190612e4f565b60405180910390f35b34801561032d575f80fd5b5061033661097b565b6040516103439190612ed3565b60405180910390f35b348015610357575f80fd5b50610360610983565b60405161036d9190612efb565b60405180910390f35b348015610381575f80fd5b5061039c60048036038101906103979190612f14565b6109a8565b005b3480156103a9575f80fd5b506103c460048036038101906103bf9190612f69565b610a93565b005b3480156103d1575f80fd5b506103da610b44565b005b3480156103e7575f80fd5b5061040260048036038101906103fd9190612f14565b610c11565b60405161040f9190612e4f565b60405180910390f35b348015610423575f80fd5b5061042c610c5f565b005b348015610439575f80fd5b50610454600480360381019061044f9190612f94565b610dad565b005b348015610461575f80fd5b5061046a610e4b565b6040516104779190612e4f565b60405180910390f35b34801561048b575f80fd5b506104a660048036038101906104a19190612f14565b610e51565b6040516104b39190612e4f565b60405180910390f35b3480156104c7575f80fd5b506104d0610e66565b6040516104dd9190612efb565b60405180910390f35b3480156104f1575f80fd5b5061050c60048036038101906105079190612f69565b610e8d565b005b348015610519575f80fd5b50610522610f3e565b60405161052f9190612e4f565b60405180910390f35b348015610543575f80fd5b5061054c610f44565b6040516105599190612d08565b60405180910390f35b34801561056d575f80fd5b5061058860048036038101906105839190612f94565b610f81565b005b348015610595575f80fd5b506105b060048036038101906105ab9190612fbf565b61101f565b005b3480156105bd575f80fd5b506105d860048036038101906105d39190612d5b565b6110d5565b6040516105e59190612db3565b60405180910390f35b3480156105f9575f80fd5b50610614600480360381019061060f9190612f14565b6110f2565b6040516106219190612db3565b60405180910390f35b348015610635575f80fd5b5061063e61110f565b005b34801561064b575f80fd5b506106666004803603810190610661919061307c565b6111e4565b005b348015610673575f80fd5b5061068e600480360381019061068991906130d9565b611313565b60405161069b9190612e4f565b60405180910390f35b3480156106af575f80fd5b506106ca60048036038101906106c59190612f94565b611395565b005b3480156106d7575f80fd5b506106f260048036038101906106ed9190612f14565b611433565b005b6106fc6115f0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610788576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077f90613161565b60405180910390fd5b5f5b815181101561080f57600160105f8484815181106107ab576107aa61317f565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061078a565b5050565b60606040518060400160405280600481526020017f4170656400000000000000000000000000000000000000000000000000000000815250905090565b5f61086361085c6115f0565b84846115f7565b6001905092915050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f670de0b6b3a7640000905090565b5f6108ad8484846117ba565b61096a846108b96115f0565b61096585604051806060016040528060288152602001613b4f6028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61091c6115f0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461201a9092919063ffffffff16565b6115f7565b600190509392505050565b60185481565b5f6009905090565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109b06115f0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3390613161565b60405180910390fd5b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610a9b6115f0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1e90613161565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b846115f0565b73ffffffffffffffffffffffffffffffffffffffff161480610bf9575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610be16115f0565b73ffffffffffffffffffffffffffffffffffffffff16145b610c01575f80fd5b5f479050610c0e8161207c565b50565b5f610c5860025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120e4565b9050919050565b610c676115f0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cea90613161565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610db56115f0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3890613161565b60405180910390fd5b8060168190555050565b60165481565b6011602052805f5260405f205f915090505481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610e956115f0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1890613161565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600481526020017f4150454400000000000000000000000000000000000000000000000000000000815250905090565b610f896115f0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100c90613161565b60405180910390fd5b8060188190555050565b6110276115f0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110aa90613161565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b5f6110e86110e16115f0565b84846117ba565b6001905092915050565b6010602052805f5260405f205f915054906101000a900460ff1681565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661114f6115f0565b73ffffffffffffffffffffffffffffffffffffffff1614806111c4575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111ac6115f0565b73ffffffffffffffffffffffffffffffffffffffff16145b6111cc575f80fd5b5f6111d630610c11565b90506111e181612150565b50565b6111ec6115f0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611278576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126f90613161565b60405180910390fd5b5f5b8383905081101561130d578160055f86868581811061129c5761129b61317f565b5b90506020020160208101906112b19190612f14565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061127a565b50505050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61139d6115f0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611429576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142090613161565b60405180910390fd5b8060178190555050565b61143b6115f0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114be90613161565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152c9061321c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611665576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165c906132aa565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ca90613338565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117ad9190612e4f565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611828576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181f906133c6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611896576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188d90613454565b60405180910390fd5b5f81116118d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cf906134e2565b60405180910390fd5b6118e0610e66565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561194e575061191e610e66565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d2757601560149054906101000a900460ff166119dd5761196f610e66565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146119dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d390613570565b60405180910390fd5b5b601654811115611a22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a19906135d8565b60405180910390fd5b60105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611ac0575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611aff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af690613666565b60405180910390fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611bab5760175481611b6084610c11565b611b6a91906136b1565b10611baa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba190613754565b60405180910390fd5b5b5f611bb530610c11565b90505f60185482101590506016548210611bcf5760165491505b808015611be7575060158054906101000a900460ff16155b8015611c40575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611c585750601560169054906101000a900460ff165b8015611cab575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611cfe575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611d2457611d0c82612150565b5f4790505f811115611d2257611d214761207c565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611dc7575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611e78575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611e77575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611e85575f9050612008565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611f2e575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f4657600854600c81905550600954600d819055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611fef575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561200757600a54600c81905550600b54600d819055505b5b612014848484846123b9565b50505050565b5f838311158290612061576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120589190612d08565b60405180910390fd5b505f838561206f9190613772565b9050809150509392505050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156120e0573d5f803e3d5ffd5b5050565b5f60065482111561212a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212190613815565b60405180910390fd5b5f6121336123e6565b9050612148818461240f90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561218657612185612acb565b5b6040519080825280602002602001820160405280156121b45781602001602082028036833780820191505090505b50905030815f815181106121cb576121ca61317f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561226f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122939190613847565b816001815181106122a7576122a661317f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061230d3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115f7565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161236f959493929190613962565b5f604051808303815f87803b158015612386575f80fd5b505af1158015612398573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b806123c7576123c6612458565b5b6123d2848484612491565b806123e0576123df612651565b5b50505050565b5f805f6123f1612665565b91509150612408818361240f90919063ffffffff16565b9250505090565b5f61245083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126c1565b905092915050565b5f600c5414801561246a57505f600d54145b61248f57600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f805f805f806124a087612722565b9550955095509550955095506124fc8660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461278290919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061258d8560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127cb90919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506125d781612828565b6125e184836128df565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161263e9190612e4f565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b5f805f60065490505f670de0b6b3a76400009050612696670de0b6b3a764000060065461240f90919063ffffffff16565b8210156126b457600654670de0b6b3a76400009350935050506126bd565b81819350935050505b9091565b5f8083118290612707576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126fe9190612d08565b60405180910390fd5b505f838561271591906139e7565b9050809150509392505050565b5f805f805f805f805f61273a8a600c54600d54612919565b9250925092505f6127496123e6565b90505f805f61275a8e8787876129ab565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f6127c383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061201a565b905092915050565b5f8082846127d991906136b1565b90508381101561281e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161281590613a61565b60405180910390fd5b8091505092915050565b5f6128316123e6565b90505f6128478284612a2f90919063ffffffff16565b90506128998160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127cb90919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b6128f48260065461278290919063ffffffff16565b60068190555061290f816007546127cb90919063ffffffff16565b6007819055505050565b5f805f806129436064612935888a612a2f90919063ffffffff16565b61240f90919063ffffffff16565b90505f61296c606461295e888b612a2f90919063ffffffff16565b61240f90919063ffffffff16565b90505f61299482612986858c61278290919063ffffffff16565b61278290919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f806129c28589612a2f90919063ffffffff16565b90505f6129d88689612a2f90919063ffffffff16565b90505f6129ee8789612a2f90919063ffffffff16565b90505f612a1682612a08858761278290919063ffffffff16565b61278290919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612a3f575f9050612aa0565b5f8284612a4c9190613a7f565b9050828482612a5b91906139e7565b14612a9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a9290613b30565b60405180910390fd5b809150505b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612b0182612abb565b810181811067ffffffffffffffff82111715612b2057612b1f612acb565b5b80604052505050565b5f612b32612aa6565b9050612b3e8282612af8565b919050565b5f67ffffffffffffffff821115612b5d57612b5c612acb565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612b9b82612b72565b9050919050565b612bab81612b91565b8114612bb5575f80fd5b50565b5f81359050612bc681612ba2565b92915050565b5f612bde612bd984612b43565b612b29565b90508083825260208201905060208402830185811115612c0157612c00612b6e565b5b835b81811015612c2a5780612c168882612bb8565b845260208401935050602081019050612c03565b5050509392505050565b5f82601f830112612c4857612c47612ab7565b5b8135612c58848260208601612bcc565b91505092915050565b5f60208284031215612c7657612c75612aaf565b5b5f82013567ffffffffffffffff811115612c9357612c92612ab3565b5b612c9f84828501612c34565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f612cda82612ca8565b612ce48185612cb2565b9350612cf4818560208601612cc2565b612cfd81612abb565b840191505092915050565b5f6020820190508181035f830152612d208184612cd0565b905092915050565b5f819050919050565b612d3a81612d28565b8114612d44575f80fd5b50565b5f81359050612d5581612d31565b92915050565b5f8060408385031215612d7157612d70612aaf565b5b5f612d7e85828601612bb8565b9250506020612d8f85828601612d47565b9150509250929050565b5f8115159050919050565b612dad81612d99565b82525050565b5f602082019050612dc65f830184612da4565b92915050565b5f819050919050565b5f612def612dea612de584612b72565b612dcc565b612b72565b9050919050565b5f612e0082612dd5565b9050919050565b5f612e1182612df6565b9050919050565b612e2181612e07565b82525050565b5f602082019050612e3a5f830184612e18565b92915050565b612e4981612d28565b82525050565b5f602082019050612e625f830184612e40565b92915050565b5f805f60608486031215612e7f57612e7e612aaf565b5b5f612e8c86828701612bb8565b9350506020612e9d86828701612bb8565b9250506040612eae86828701612d47565b9150509250925092565b5f60ff82169050919050565b612ecd81612eb8565b82525050565b5f602082019050612ee65f830184612ec4565b92915050565b612ef581612b91565b82525050565b5f602082019050612f0e5f830184612eec565b92915050565b5f60208284031215612f2957612f28612aaf565b5b5f612f3684828501612bb8565b91505092915050565b612f4881612d99565b8114612f52575f80fd5b50565b5f81359050612f6381612f3f565b92915050565b5f60208284031215612f7e57612f7d612aaf565b5b5f612f8b84828501612f55565b91505092915050565b5f60208284031215612fa957612fa8612aaf565b5b5f612fb684828501612d47565b91505092915050565b5f805f8060808587031215612fd757612fd6612aaf565b5b5f612fe487828801612d47565b9450506020612ff587828801612d47565b935050604061300687828801612d47565b925050606061301787828801612d47565b91505092959194509250565b5f80fd5b5f8083601f84011261303c5761303b612ab7565b5b8235905067ffffffffffffffff81111561305957613058613023565b5b60208301915083602082028301111561307557613074612b6e565b5b9250929050565b5f805f6040848603121561309357613092612aaf565b5b5f84013567ffffffffffffffff8111156130b0576130af612ab3565b5b6130bc86828701613027565b935093505060206130cf86828701612f55565b9150509250925092565b5f80604083850312156130ef576130ee612aaf565b5b5f6130fc85828601612bb8565b925050602061310d85828601612bb8565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61314b602083612cb2565b915061315682613117565b602082019050919050565b5f6020820190508181035f8301526131788161313f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613206602683612cb2565b9150613211826131ac565b604082019050919050565b5f6020820190508181035f830152613233816131fa565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613294602483612cb2565b915061329f8261323a565b604082019050919050565b5f6020820190508181035f8301526132c181613288565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613322602283612cb2565b915061332d826132c8565b604082019050919050565b5f6020820190508181035f83015261334f81613316565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6133b0602583612cb2565b91506133bb82613356565b604082019050919050565b5f6020820190508181035f8301526133dd816133a4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61343e602383612cb2565b9150613449826133e4565b604082019050919050565b5f6020820190508181035f83015261346b81613432565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6134cc602983612cb2565b91506134d782613472565b604082019050919050565b5f6020820190508181035f8301526134f9816134c0565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f61355a603f83612cb2565b915061356582613500565b604082019050919050565b5f6020820190508181035f8301526135878161354e565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f6135c2601c83612cb2565b91506135cd8261358e565b602082019050919050565b5f6020820190508181035f8301526135ef816135b6565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c6973745f8201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b5f613650602383612cb2565b915061365b826135f6565b604082019050919050565b5f6020820190508181035f83015261367d81613644565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6136bb82612d28565b91506136c683612d28565b92508282019050808211156136de576136dd613684565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f61373e602383612cb2565b9150613749826136e4565b604082019050919050565b5f6020820190508181035f83015261376b81613732565b9050919050565b5f61377c82612d28565b915061378783612d28565b925082820390508181111561379f5761379e613684565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f6137ff602a83612cb2565b915061380a826137a5565b604082019050919050565b5f6020820190508181035f83015261382c816137f3565b9050919050565b5f8151905061384181612ba2565b92915050565b5f6020828403121561385c5761385b612aaf565b5b5f61386984828501613833565b91505092915050565b5f819050919050565b5f61389561389061388b84613872565b612dcc565b612d28565b9050919050565b6138a58161387b565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6138dd81612b91565b82525050565b5f6138ee83836138d4565b60208301905092915050565b5f602082019050919050565b5f613910826138ab565b61391a81856138b5565b9350613925836138c5565b805f5b8381101561395557815161393c88826138e3565b9750613947836138fa565b925050600181019050613928565b5085935050505092915050565b5f60a0820190506139755f830188612e40565b613982602083018761389c565b81810360408301526139948186613906565b90506139a36060830185612eec565b6139b06080830184612e40565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6139f182612d28565b91506139fc83612d28565b925082613a0c57613a0b6139ba565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613a4b601b83612cb2565b9150613a5682613a17565b602082019050919050565b5f6020820190508181035f830152613a7881613a3f565b9050919050565b5f613a8982612d28565b9150613a9483612d28565b9250828202613aa281612d28565b91508282048414831517613ab957613ab8613684565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613b1a602183612cb2565b9150613b2582613ac0565b604082019050919050565b5f6020820190508181035f830152613b4781613b0e565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220cf5d6912169a47627fa355e623d4a1ed8fe8a11885c853ab3d53b0de803073db64736f6c63430008190033

Deployed Bytecode Sourcemap

4328:13494:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12995:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6823:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7748:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5663:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7100:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7949:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5969:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7009:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5711:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13172:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17204:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12752:235;;;;;;;;;;;;;:::i;:::-;;7203:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1815:148;;;;;;;;;;;;;:::i;:::-;;17344:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5859:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5405:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1601:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12399:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5914:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6914:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17013:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16670:291;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7349:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5367:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12508:236;;;;;;;;;;;;;:::i;:::-;;17583:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7556:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17460:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1971:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12995:169;1738:12;:10;:12::i;:::-;1728:22;;:6;;;;;;;;;;:22;;;1720:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13071:9:::1;13066:91;13090:5;:12;13086:1;:16;13066:91;;;13141:4;13124;:14;13129:5;13135:1;13129:8;;;;;;;;:::i;:::-;;;;;;;;13124:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13104:3;;;;;;;13066:91;;;;12995:169:::0;:::o;6823:83::-;6860:13;6893:5;;;;;;;;;;;;;;;;;6886:12;;6823:83;:::o;7748:193::-;7850:4;7872:39;7881:12;:10;:12::i;:::-;7895:7;7904:6;7872:8;:39::i;:::-;7929:4;7922:11;;7748:193;;;;:::o;5663:41::-;;;;;;;;;;;;;:::o;7100:95::-;7153:7;4867:18;7173:14;;7100:95;:::o;7949:446::-;8081:4;8098:36;8108:6;8116:9;8127:6;8098:9;:36::i;:::-;8145:220;8168:6;8189:12;:10;:12::i;:::-;8216:138;8272:6;8216:138;;;;;;;;;;;;;;;;;:11;:19;8228:6;8216:19;;;;;;;;;;;;;;;:33;8236:12;:10;:12::i;:::-;8216:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8145:8;:220::i;:::-;8383:4;8376:11;;7949:446;;;;;:::o;5969:52::-;;;;:::o;7009:83::-;7050:5;4541:1;7068:16;;7009:83;:::o;5711:28::-;;;;;;;;;;;;;:::o;13172:92::-;1738:12;:10;:12::i;:::-;1728:22;;:6;;;;;;;;;;:22;;;1720:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13251:5:::1;13236:4;:12;13241:6;13236:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13172:92:::0;:::o;17204:101::-;1738:12;:10;:12::i;:::-;1728:22;;:6;;;;;;;;;;:22;;;1720:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17285:12:::1;17271:11;;:26;;;;;;;;;;;;;;;;;;17204:101:::0;:::o;12752:235::-;12818:19;;;;;;;;;;;12802:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12857:17;;;;;;;;;;;12841:33;;:12;:10;:12::i;:::-;:33;;;12802:72;12794:81;;;;;;12886:26;12915:21;12886:50;;12947:32;12960:18;12947:12;:32::i;:::-;12783:204;12752:235::o;7203:138::-;7269:7;7296:37;7316:7;:16;7324:7;7316:16;;;;;;;;;;;;;;;;7296:19;:37::i;:::-;7289:44;;7203:138;;;:::o;1815:148::-;1738:12;:10;:12::i;:::-;1728:22;;:6;;;;;;;;;;:22;;;1720:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1922:1:::1;1885:40;;1906:6;::::0;::::1;;;;;;;;1885:40;;;;;;;;;;;;1953:1;1936:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1815:148::o:0;17344:108::-;1738:12;:10;:12::i;:::-;1728:22;;:6;;;;;;;;;;:22;;;1720:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17433:11:::1;17418:12;:26;;;;17344:108:::0;:::o;5859:48::-;;;;:::o;5405:43::-;;;;;;;;;;;;;;;;;:::o;1601:79::-;1639:7;1666:6;;;;;;;;;;;1659:13;;1601:79;:::o;12399:101::-;1738:12;:10;:12::i;:::-;1728:22;;:6;;;;;;;;;;:22;;;1720:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12480:12:::1;12466:11;;:26;;;;;;;;;;;;;;;;;;12399:101:::0;:::o;5914:48::-;;;;:::o;6914:87::-;6953:13;6986:7;;;;;;;;;;;;;;;;;6979:14;;6914:87;:::o;17013:139::-;1738:12;:10;:12::i;:::-;1728:22;;:6;;;;;;;;;;:22;;;1720:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17126:18:::1;17104:19;:40;;;;17013:139:::0;:::o;16670:291::-;1738:12;:10;:12::i;:::-;1728:22;;:6;;;;;;;;;;:22;;;1720:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16821:13:::1;16804:14;:30;;;;16863:14;16845:15;:32;;;;16903:11;16888:12;:26;;;;16941:12;16925:13;:28;;;;16670:291:::0;;;;:::o;7349:199::-;7454:4;7476:42;7486:12;:10;:12::i;:::-;7500:9;7511:6;7476:9;:42::i;:::-;7536:4;7529:11;;7349:199;;;;:::o;5367:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12508:236::-;12574:19;;;;;;;;;;;12558:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12613:17;;;;;;;;;;;12597:33;;:12;:10;:12::i;:::-;:33;;;12558:72;12550:81;;;;;;12642:23;12668:24;12686:4;12668:9;:24::i;:::-;12642:50;;12703:33;12720:15;12703:16;:33::i;:::-;12539:205;12508:236::o;17583:234::-;1738:12;:10;:12::i;:::-;1728:22;;:6;;;;;;;;;;:22;;;1720:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17700:9:::1;17696:114;17719:8;;:15;;17715:1;:19;17696:114;;;17790:8;17756:18;:31;17775:8;;17784:1;17775:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17756:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17736:3;;;;;;;17696:114;;;;17583:234:::0;;;:::o;7556:184::-;7673:7;7705:11;:18;7717:5;7705:18;;;;;;;;;;;;;;;:27;7724:7;7705:27;;;;;;;;;;;;;;;;7698:34;;7556:184;;;;:::o;17460:115::-;1738:12;:10;:12::i;:::-;1728:22;;:6;;;;;;;;;;:22;;;1720:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17554:13:::1;17537:14;:30;;;;17460:115:::0;:::o;1971:244::-;1738:12;:10;:12::i;:::-;1728:22;;:6;;;;;;;;;;:22;;;1720:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2080:1:::1;2060:22;;:8;:22;;::::0;2052:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2170:8;2141:38;;2162:6;::::0;::::1;;;;;;;;2141:38;;;;;;;;;;;;2199:8;2190:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1971:244:::0;:::o;360:98::-;413:7;440:10;433:17;;360:98;:::o;9086:369::-;9230:1;9213:19;;:5;:19;;;9205:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9311:1;9292:21;;:7;:21;;;9284:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9393:6;9363:11;:18;9375:5;9363:18;;;;;;;;;;;;;;;:27;9382:7;9363:27;;;;;;;;;;;;;;;:36;;;;9431:7;9415:32;;9424:5;9415:32;;;9440:6;9415:32;;;;;;:::i;:::-;;;;;;;;9086:369;;;:::o;9463:2330::-;9601:1;9585:18;;:4;:18;;;9577:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9678:1;9664:16;;:2;:16;;;9656:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9748:1;9739:6;:10;9731:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9820:7;:5;:7::i;:::-;9812:15;;:4;:15;;;;:32;;;;;9837:7;:5;:7::i;:::-;9831:13;;:2;:13;;;;9812:32;9808:1259;;;9901:11;;;;;;;;;;;9896:144;;9949:7;:5;:7::i;:::-;9941:15;;:4;:15;;;9933:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9896:144;10074:12;;10064:6;:22;;10056:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10143:4;:10;10148:4;10143:10;;;;;;;;;;;;;;;;;;;;;;;;;10142:11;:24;;;;;10158:4;:8;10163:2;10158:8;;;;;;;;;;;;;;;;;;;;;;;;;10157:9;10142:24;10134:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10232:13;;;;;;;;;;;10226:19;;:2;:19;;;10223:146;;10299:14;;10290:6;10274:13;10284:2;10274:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10266:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10223:146;10385:28;10416:24;10434:4;10416:9;:24::i;:::-;10385:55;;10455:12;10494:19;;10470:20;:43;;10455:58;;10557:12;;10533:20;:36;10530:124;;10626:12;;10603:35;;10530:124;10674:7;:18;;;;;10686:6;;;;;;;;;;10685:7;10674:18;:43;;;;;10704:13;;;;;;;;;;;10696:21;;:4;:21;;;;10674:43;:58;;;;;10721:11;;;;;;;;;;;10674:58;:87;;;;;10737:18;:24;10756:4;10737:24;;;;;;;;;;;;;;;;;;;;;;;;;10736:25;10674:87;:114;;;;;10766:18;:22;10785:2;10766:22;;;;;;;;;;;;;;;;;;;;;;;;;10765:23;10674:114;10670:386;;;10809:38;10826:20;10809:16;:38::i;:::-;10866:26;10895:21;10866:50;;10960:1;10939:18;:22;10935:106;;;10986:35;10999:21;10986:12;:35::i;:::-;10935:106;10790:266;10670:386;9846:1221;;9808:1259;11079:12;11094:4;11079:19;;11143:18;:24;11162:4;11143:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11171:18;:22;11190:2;11171:22;;;;;;;;;;;;;;;;;;;;;;;;;11143:50;11142:102;;;;11207:13;;;;;;;;;;;11199:21;;:4;:21;;;;:44;;;;;11230:13;;;;;;;;;;;11224:19;;:2;:19;;;;11199:44;11142:102;11138:594;;;11271:5;11261:15;;11138:594;;;11354:13;;;;;;;;;;;11346:21;;:4;:21;;;:55;;;;;11385:15;;;;;;;;;;;11371:30;;:2;:30;;;;11346:55;11343:162;;;11434:14;;11422:9;:26;;;;11477:12;;11467:7;:22;;;;11343:162;11564:13;;;;;;;;;;;11558:19;;:2;:19;;;:55;;;;;11597:15;;;;;;;;;;;11581:32;;:4;:32;;;;11558:55;11554:165;;;11646:15;;11634:9;:27;;;;11690:13;;11680:7;:23;;;;11554:165;11138:594;11744:41;11759:4;11765:2;11769:6;11777:7;11744:14;:41::i;:::-;9566:2227;9463:2330;;;:::o;2579:224::-;2699:7;2732:1;2727;:6;;2735:12;2719:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2759:9;2775:1;2771;:5;;;;:::i;:::-;2759:17;;2794:1;2787:8;;;2579:224;;;;;:::o;12292:99::-;12349:17;;;;;;;;;;;:26;;:34;12376:6;12349:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12292:99;:::o;8403:323::-;8498:7;8556;;8545;:18;;8523:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8644:19;8666:10;:8;:10::i;:::-;8644:32;;8694:24;8706:11;8694:7;:11;;:24;;;;:::i;:::-;8687:31;;;8403:323;;;:::o;11801:483::-;6124:4;6115:6;;:13;;;;;;;;;;;;;;;;;;11879:21:::1;11917:1;11903:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11879:40;;11948:4;11930;11935:1;11930:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11974:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11964:4;11969:1;11964:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12007:62;12024:4;12039:15;;;;;;;;;;;12057:11;12007:8;:62::i;:::-;12080:15;;;;;;;;;;;:66;;;12161:11;12187:1;12203:4;12230;12250:15;12080:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11868:416;6160:5:::0;6151:6;;:14;;;;;;;;;;;;;;;;;;11801:483;:::o;13272:282::-;13428:7;13423:28;;13437:14;:12;:14::i;:::-;13423:28;13462:44;13480:6;13488:9;13499:6;13462:17;:44::i;:::-;13522:7;13517:29;;13531:15;:13;:15::i;:::-;13517:29;13272:282;;;;:::o;16233:164::-;16275:7;16296:15;16313;16332:19;:17;:19::i;:::-;16295:56;;;;16369:20;16381:7;16369;:11;;:20;;;;:::i;:::-;16362:27;;;;16233:164;:::o;3065:132::-;3123:7;3150:39;3154:1;3157;3150:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3143:46;;3065:132;;;;:::o;8734:219::-;8794:1;8781:9;;:14;:30;;;;;8810:1;8799:7;;:12;8781:30;8813:7;8777:43;8852:9;;8832:17;:29;;;;8890:7;;8872:15;:25;;;;8922:1;8910:9;:13;;;;8944:1;8934:7;:11;;;;8734:219;:::o;13562:610::-;13709:15;13739:23;13777:12;13804:23;13842:12;13869:13;13896:19;13907:7;13896:10;:19::i;:::-;13694:221;;;;;;;;;;;;13944:28;13964:7;13944;:15;13952:6;13944:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13926:7;:15;13934:6;13926:15;;;;;;;;;;;;;;;:46;;;;14004:39;14027:15;14004:7;:18;14012:9;14004:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13983:7;:18;13991:9;13983:18;;;;;;;;;;;;;;;:60;;;;14054:16;14064:5;14054:9;:16::i;:::-;14081:23;14093:4;14099;14081:11;:23::i;:::-;14137:9;14120:44;;14129:6;14120:44;;;14148:15;14120:44;;;;;;:::i;:::-;;;;;;;;13683:489;;;;;;13562:610;;;:::o;8961:117::-;9017:17;;9005:9;:29;;;;9055:15;;9045:7;:25;;;;8961:117::o;16405:257::-;16456:7;16465;16485:15;16503:7;;16485:25;;16521:15;4867:18;16521:25;;16571:20;4867:18;16571:7;;:11;;:20;;;;:::i;:::-;16561:7;:30;16557:61;;;16601:7;;4867:18;16593:25;;;;;;;;16557:61;16637:7;16646;16629:25;;;;;;16405:257;;;:::o;3205:223::-;3325:7;3357:1;3353;:5;3360:12;3345:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3384:9;3400:1;3396;:5;;;;:::i;:::-;3384:17;;3419:1;3412:8;;;3205:223;;;;;:::o;14591:615::-;14691:7;14713;14735;14757;14779;14801;14837:23;14862:12;14876:13;14906:40;14918:7;14927:9;;14938:7;;14906:11;:40::i;:::-;14836:110;;;;;;14957:19;14979:10;:8;:10::i;:::-;14957:32;;15001:15;15018:23;15043:12;15072:46;15084:7;15093:4;15099:5;15106:11;15072;:46::i;:::-;15000:118;;;;;;15137:7;15146:15;15163:4;15169:15;15186:4;15192:5;15129:69;;;;;;;;;;;;;;;;;;;14591:615;;;;;;;:::o;2435:136::-;2493:7;2520:43;2524:1;2527;2520:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2513:50;;2435:136;;;;:::o;2248:179::-;2306:7;2326:9;2342:1;2338;:5;;;;:::i;:::-;2326:17;;2367:1;2362;:6;;2354:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2418:1;2411:8;;;2248:179;;;;:::o;14180:211::-;14233:19;14255:10;:8;:10::i;:::-;14233:32;;14276:13;14292:22;14302:11;14292:5;:9;;:22;;;;:::i;:::-;14276:38;;14350:33;14377:5;14350:7;:22;14366:4;14350:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14325:7;:22;14341:4;14325:22;;;;;;;;;;;;;;;:58;;;;14222:169;;14180:211;:::o;14399:147::-;14477:17;14489:4;14477:7;;:11;;:17;;;;:::i;:::-;14467:7;:27;;;;14518:20;14533:4;14518:10;;:14;;:20;;;;:::i;:::-;14505:10;:33;;;;14399:147;;:::o;15214:469::-;15383:7;15405;15427;15462:12;15477:30;15503:3;15477:21;15489:8;15477:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15462:45;;15518:13;15534:28;15558:3;15534:19;15546:6;15534:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15518:44;;15573:23;15599:28;15621:5;15599:17;15611:4;15599:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15573:54;;15646:15;15663:4;15669:5;15638:37;;;;;;;;;15214:469;;;;;;;:::o;15691:534::-;15885:7;15907;15929;15964:15;15982:24;15994:11;15982:7;:11;;:24;;;;:::i;:::-;15964:42;;16017:12;16032:21;16041:11;16032:4;:8;;:21;;;;:::i;:::-;16017:36;;16064:13;16080:22;16090:11;16080:5;:9;;:22;;;;:::i;:::-;16064:38;;16113:23;16139:28;16161:5;16139:17;16151:4;16139:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16113:54;;16186:7;16195:15;16212:4;16178:39;;;;;;;;;;15691:534;;;;;;;;:::o;2811:246::-;2869:7;2898:1;2893;:6;2889:47;;2923:1;2916:8;;;;2889:47;2946:9;2962:1;2958;:5;;;;:::i;:::-;2946:17;;2991:1;2986;2982;:5;;;;:::i;:::-;:10;2974:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3048:1;3041:8;;;2811:246;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:139::-;4160:6;4155:3;4150;4144:23;4201:1;4192:6;4187:3;4183:16;4176:27;4071:139;;;:::o;4216:377::-;4304:3;4332:39;4365:5;4332:39;:::i;:::-;4387:71;4451:6;4446:3;4387:71;:::i;:::-;4380:78;;4467:65;4525:6;4520:3;4513:4;4506:5;4502:16;4467:65;:::i;:::-;4557:29;4579:6;4557:29;:::i;:::-;4552:3;4548:39;4541:46;;4308:285;4216:377;;;;:::o;4599:313::-;4712:4;4750:2;4739:9;4735:18;4727:26;;4799:9;4793:4;4789:20;4785:1;4774:9;4770:17;4763:47;4827:78;4900:4;4891:6;4827:78;:::i;:::-;4819:86;;4599:313;;;;:::o;4918:77::-;4955:7;4984:5;4973:16;;4918:77;;;:::o;5001:122::-;5074:24;5092:5;5074:24;:::i;:::-;5067:5;5064:35;5054:63;;5113:1;5110;5103:12;5054:63;5001:122;:::o;5129:139::-;5175:5;5213:6;5200:20;5191:29;;5229:33;5256:5;5229:33;:::i;:::-;5129:139;;;;:::o;5274:474::-;5342:6;5350;5399:2;5387:9;5378:7;5374:23;5370:32;5367:119;;;5405:79;;:::i;:::-;5367:119;5525:1;5550:53;5595:7;5586:6;5575:9;5571:22;5550:53;:::i;:::-;5540:63;;5496:117;5652:2;5678:53;5723:7;5714:6;5703:9;5699:22;5678:53;:::i;:::-;5668:63;;5623:118;5274:474;;;;;:::o;5754:90::-;5788:7;5831:5;5824:13;5817:21;5806:32;;5754:90;;;:::o;5850:109::-;5931:21;5946:5;5931:21;:::i;:::-;5926:3;5919:34;5850:109;;:::o;5965:210::-;6052:4;6090:2;6079:9;6075:18;6067:26;;6103:65;6165:1;6154:9;6150:17;6141:6;6103:65;:::i;:::-;5965:210;;;;:::o;6181:60::-;6209:3;6230:5;6223:12;;6181:60;;;:::o;6247:142::-;6297:9;6330:53;6348:34;6357:24;6375:5;6357:24;:::i;:::-;6348:34;:::i;:::-;6330:53;:::i;:::-;6317:66;;6247:142;;;:::o;6395:126::-;6445:9;6478:37;6509:5;6478:37;:::i;:::-;6465:50;;6395:126;;;:::o;6527:152::-;6603:9;6636:37;6667:5;6636:37;:::i;:::-;6623:50;;6527:152;;;:::o;6685:183::-;6798:63;6855:5;6798:63;:::i;:::-;6793:3;6786:76;6685:183;;:::o;6874:274::-;6993:4;7031:2;7020:9;7016:18;7008:26;;7044:97;7138:1;7127:9;7123:17;7114:6;7044:97;:::i;:::-;6874:274;;;;:::o;7154:118::-;7241:24;7259:5;7241:24;:::i;:::-;7236:3;7229:37;7154:118;;:::o;7278:222::-;7371:4;7409:2;7398:9;7394:18;7386:26;;7422:71;7490:1;7479:9;7475:17;7466:6;7422:71;:::i;:::-;7278:222;;;;:::o;7506:619::-;7583:6;7591;7599;7648:2;7636:9;7627:7;7623:23;7619:32;7616:119;;;7654:79;;:::i;:::-;7616:119;7774:1;7799:53;7844:7;7835:6;7824:9;7820:22;7799:53;:::i;:::-;7789:63;;7745:117;7901:2;7927:53;7972:7;7963:6;7952:9;7948:22;7927:53;:::i;:::-;7917:63;;7872:118;8029:2;8055:53;8100:7;8091:6;8080:9;8076:22;8055:53;:::i;:::-;8045:63;;8000:118;7506:619;;;;;:::o;8131:86::-;8166:7;8206:4;8199:5;8195:16;8184:27;;8131:86;;;:::o;8223:112::-;8306:22;8322:5;8306:22;:::i;:::-;8301:3;8294:35;8223:112;;:::o;8341:214::-;8430:4;8468:2;8457:9;8453:18;8445:26;;8481:67;8545:1;8534:9;8530:17;8521:6;8481:67;:::i;:::-;8341:214;;;;:::o;8561:118::-;8648:24;8666:5;8648:24;:::i;:::-;8643:3;8636:37;8561:118;;:::o;8685:222::-;8778:4;8816:2;8805:9;8801:18;8793:26;;8829:71;8897:1;8886:9;8882:17;8873:6;8829:71;:::i;:::-;8685:222;;;;:::o;8913:329::-;8972:6;9021:2;9009:9;9000:7;8996:23;8992:32;8989:119;;;9027:79;;:::i;:::-;8989:119;9147:1;9172:53;9217:7;9208:6;9197:9;9193:22;9172:53;:::i;:::-;9162:63;;9118:117;8913:329;;;;:::o;9248:116::-;9318:21;9333:5;9318:21;:::i;:::-;9311:5;9308:32;9298:60;;9354:1;9351;9344:12;9298:60;9248:116;:::o;9370:133::-;9413:5;9451:6;9438:20;9429:29;;9467:30;9491:5;9467:30;:::i;:::-;9370:133;;;;:::o;9509:323::-;9565:6;9614:2;9602:9;9593:7;9589:23;9585:32;9582:119;;;9620:79;;:::i;:::-;9582:119;9740:1;9765:50;9807:7;9798:6;9787:9;9783:22;9765:50;:::i;:::-;9755:60;;9711:114;9509:323;;;;:::o;9838:329::-;9897:6;9946:2;9934:9;9925:7;9921:23;9917:32;9914:119;;;9952:79;;:::i;:::-;9914:119;10072:1;10097:53;10142:7;10133:6;10122:9;10118:22;10097:53;:::i;:::-;10087:63;;10043:117;9838:329;;;;:::o;10173:765::-;10259:6;10267;10275;10283;10332:3;10320:9;10311:7;10307:23;10303:33;10300:120;;;10339:79;;:::i;:::-;10300:120;10459:1;10484:53;10529:7;10520:6;10509:9;10505:22;10484:53;:::i;:::-;10474:63;;10430:117;10586:2;10612:53;10657:7;10648:6;10637:9;10633:22;10612:53;:::i;:::-;10602:63;;10557:118;10714:2;10740:53;10785:7;10776:6;10765:9;10761:22;10740:53;:::i;:::-;10730:63;;10685:118;10842:2;10868:53;10913:7;10904:6;10893:9;10889:22;10868:53;:::i;:::-;10858:63;;10813:118;10173:765;;;;;;;:::o;10944:117::-;11053:1;11050;11043:12;11084:568;11157:8;11167:6;11217:3;11210:4;11202:6;11198:17;11194:27;11184:122;;11225:79;;:::i;:::-;11184:122;11338:6;11325:20;11315:30;;11368:18;11360:6;11357:30;11354:117;;;11390:79;;:::i;:::-;11354:117;11504:4;11496:6;11492:17;11480:29;;11558:3;11550:4;11542:6;11538:17;11528:8;11524:32;11521:41;11518:128;;;11565:79;;:::i;:::-;11518:128;11084:568;;;;;:::o;11658:698::-;11750:6;11758;11766;11815:2;11803:9;11794:7;11790:23;11786:32;11783:119;;;11821:79;;:::i;:::-;11783:119;11969:1;11958:9;11954:17;11941:31;11999:18;11991:6;11988:30;11985:117;;;12021:79;;:::i;:::-;11985:117;12134:80;12206:7;12197:6;12186:9;12182:22;12134:80;:::i;:::-;12116:98;;;;11912:312;12263:2;12289:50;12331:7;12322:6;12311:9;12307:22;12289:50;:::i;:::-;12279:60;;12234:115;11658:698;;;;;:::o;12362:474::-;12430:6;12438;12487:2;12475:9;12466:7;12462:23;12458:32;12455:119;;;12493:79;;:::i;:::-;12455:119;12613:1;12638:53;12683:7;12674:6;12663:9;12659:22;12638:53;:::i;:::-;12628:63;;12584:117;12740:2;12766:53;12811:7;12802:6;12791:9;12787:22;12766:53;:::i;:::-;12756:63;;12711:118;12362:474;;;;;:::o;12842:182::-;12982:34;12978:1;12970:6;12966:14;12959:58;12842:182;:::o;13030:366::-;13172:3;13193:67;13257:2;13252:3;13193:67;:::i;:::-;13186:74;;13269:93;13358:3;13269:93;:::i;:::-;13387:2;13382:3;13378:12;13371:19;;13030:366;;;:::o;13402:419::-;13568:4;13606:2;13595:9;13591:18;13583:26;;13655:9;13649:4;13645:20;13641:1;13630:9;13626:17;13619:47;13683:131;13809:4;13683:131;:::i;:::-;13675:139;;13402:419;;;:::o;13827:180::-;13875:77;13872:1;13865:88;13972:4;13969:1;13962:15;13996:4;13993:1;13986:15;14013:225;14153:34;14149:1;14141:6;14137:14;14130:58;14222:8;14217:2;14209:6;14205:15;14198:33;14013:225;:::o;14244:366::-;14386:3;14407:67;14471:2;14466:3;14407:67;:::i;:::-;14400:74;;14483:93;14572:3;14483:93;:::i;:::-;14601:2;14596:3;14592:12;14585:19;;14244:366;;;:::o;14616:419::-;14782:4;14820:2;14809:9;14805:18;14797:26;;14869:9;14863:4;14859:20;14855:1;14844:9;14840:17;14833:47;14897:131;15023:4;14897:131;:::i;:::-;14889:139;;14616:419;;;:::o;15041:223::-;15181:34;15177:1;15169:6;15165:14;15158:58;15250:6;15245:2;15237:6;15233:15;15226:31;15041:223;:::o;15270:366::-;15412:3;15433:67;15497:2;15492:3;15433:67;:::i;:::-;15426:74;;15509:93;15598:3;15509:93;:::i;:::-;15627:2;15622:3;15618:12;15611:19;;15270:366;;;:::o;15642:419::-;15808:4;15846:2;15835:9;15831:18;15823:26;;15895:9;15889:4;15885:20;15881:1;15870:9;15866:17;15859:47;15923:131;16049:4;15923:131;:::i;:::-;15915:139;;15642:419;;;:::o;16067:221::-;16207:34;16203:1;16195:6;16191:14;16184:58;16276:4;16271:2;16263:6;16259:15;16252:29;16067:221;:::o;16294:366::-;16436:3;16457:67;16521:2;16516:3;16457:67;:::i;:::-;16450:74;;16533:93;16622:3;16533:93;:::i;:::-;16651:2;16646:3;16642:12;16635:19;;16294:366;;;:::o;16666:419::-;16832:4;16870:2;16859:9;16855:18;16847:26;;16919:9;16913:4;16909:20;16905:1;16894:9;16890:17;16883:47;16947:131;17073:4;16947:131;:::i;:::-;16939:139;;16666:419;;;:::o;17091:224::-;17231:34;17227:1;17219:6;17215:14;17208:58;17300:7;17295:2;17287:6;17283:15;17276:32;17091:224;:::o;17321:366::-;17463:3;17484:67;17548:2;17543:3;17484:67;:::i;:::-;17477:74;;17560:93;17649:3;17560:93;:::i;:::-;17678:2;17673:3;17669:12;17662:19;;17321:366;;;:::o;17693:419::-;17859:4;17897:2;17886:9;17882:18;17874:26;;17946:9;17940:4;17936:20;17932:1;17921:9;17917:17;17910:47;17974:131;18100:4;17974:131;:::i;:::-;17966:139;;17693:419;;;:::o;18118:222::-;18258:34;18254:1;18246:6;18242:14;18235:58;18327:5;18322:2;18314:6;18310:15;18303:30;18118:222;:::o;18346:366::-;18488:3;18509:67;18573:2;18568:3;18509:67;:::i;:::-;18502:74;;18585:93;18674:3;18585:93;:::i;:::-;18703:2;18698:3;18694:12;18687:19;;18346:366;;;:::o;18718:419::-;18884:4;18922:2;18911:9;18907:18;18899:26;;18971:9;18965:4;18961:20;18957:1;18946:9;18942:17;18935:47;18999:131;19125:4;18999:131;:::i;:::-;18991:139;;18718:419;;;:::o;19143:228::-;19283:34;19279:1;19271:6;19267:14;19260:58;19352:11;19347:2;19339:6;19335:15;19328:36;19143:228;:::o;19377:366::-;19519:3;19540:67;19604:2;19599:3;19540:67;:::i;:::-;19533:74;;19616:93;19705:3;19616:93;:::i;:::-;19734:2;19729:3;19725:12;19718:19;;19377:366;;;:::o;19749:419::-;19915:4;19953:2;19942:9;19938:18;19930:26;;20002:9;19996:4;19992:20;19988:1;19977:9;19973:17;19966:47;20030:131;20156:4;20030:131;:::i;:::-;20022:139;;19749:419;;;:::o;20174:250::-;20314:34;20310:1;20302:6;20298:14;20291:58;20383:33;20378:2;20370:6;20366:15;20359:58;20174:250;:::o;20430:366::-;20572:3;20593:67;20657:2;20652:3;20593:67;:::i;:::-;20586:74;;20669:93;20758:3;20669:93;:::i;:::-;20787:2;20782:3;20778:12;20771:19;;20430:366;;;:::o;20802:419::-;20968:4;21006:2;20995:9;20991:18;20983:26;;21055:9;21049:4;21045:20;21041:1;21030:9;21026:17;21019:47;21083:131;21209:4;21083:131;:::i;:::-;21075:139;;20802:419;;;:::o;21227:178::-;21367:30;21363:1;21355:6;21351:14;21344:54;21227:178;:::o;21411:366::-;21553:3;21574:67;21638:2;21633:3;21574:67;:::i;:::-;21567:74;;21650:93;21739:3;21650:93;:::i;:::-;21768:2;21763:3;21759:12;21752:19;;21411:366;;;:::o;21783:419::-;21949:4;21987:2;21976:9;21972:18;21964:26;;22036:9;22030:4;22026:20;22022:1;22011:9;22007:17;22000:47;22064:131;22190:4;22064:131;:::i;:::-;22056:139;;21783:419;;;:::o;22208:222::-;22348:34;22344:1;22336:6;22332:14;22325:58;22417:5;22412:2;22404:6;22400:15;22393:30;22208:222;:::o;22436:366::-;22578:3;22599:67;22663:2;22658:3;22599:67;:::i;:::-;22592:74;;22675:93;22764:3;22675:93;:::i;:::-;22793:2;22788:3;22784:12;22777:19;;22436:366;;;:::o;22808:419::-;22974:4;23012:2;23001:9;22997:18;22989:26;;23061:9;23055:4;23051:20;23047:1;23036:9;23032:17;23025:47;23089:131;23215:4;23089:131;:::i;:::-;23081:139;;22808:419;;;:::o;23233:180::-;23281:77;23278:1;23271:88;23378:4;23375:1;23368:15;23402:4;23399:1;23392:15;23419:191;23459:3;23478:20;23496:1;23478:20;:::i;:::-;23473:25;;23512:20;23530:1;23512:20;:::i;:::-;23507:25;;23555:1;23552;23548:9;23541:16;;23576:3;23573:1;23570:10;23567:36;;;23583:18;;:::i;:::-;23567:36;23419:191;;;;:::o;23616:222::-;23756:34;23752:1;23744:6;23740:14;23733:58;23825:5;23820:2;23812:6;23808:15;23801:30;23616:222;:::o;23844:366::-;23986:3;24007:67;24071:2;24066:3;24007:67;:::i;:::-;24000:74;;24083:93;24172:3;24083:93;:::i;:::-;24201:2;24196:3;24192:12;24185:19;;23844:366;;;:::o;24216:419::-;24382:4;24420:2;24409:9;24405:18;24397:26;;24469:9;24463:4;24459:20;24455:1;24444:9;24440:17;24433:47;24497:131;24623:4;24497:131;:::i;:::-;24489:139;;24216:419;;;:::o;24641:194::-;24681:4;24701:20;24719:1;24701:20;:::i;:::-;24696:25;;24735:20;24753:1;24735:20;:::i;:::-;24730:25;;24779:1;24776;24772:9;24764:17;;24803:1;24797:4;24794:11;24791:37;;;24808:18;;:::i;:::-;24791:37;24641:194;;;;:::o;24841:229::-;24981:34;24977:1;24969:6;24965:14;24958:58;25050:12;25045:2;25037:6;25033:15;25026:37;24841:229;:::o;25076:366::-;25218:3;25239:67;25303:2;25298:3;25239:67;:::i;:::-;25232:74;;25315:93;25404:3;25315:93;:::i;:::-;25433:2;25428:3;25424:12;25417:19;;25076:366;;;:::o;25448:419::-;25614:4;25652:2;25641:9;25637:18;25629:26;;25701:9;25695:4;25691:20;25687:1;25676:9;25672:17;25665:47;25729:131;25855:4;25729:131;:::i;:::-;25721:139;;25448:419;;;:::o;25873:143::-;25930:5;25961:6;25955:13;25946:22;;25977:33;26004:5;25977:33;:::i;:::-;25873:143;;;;:::o;26022:351::-;26092:6;26141:2;26129:9;26120:7;26116:23;26112:32;26109:119;;;26147:79;;:::i;:::-;26109:119;26267:1;26292:64;26348:7;26339:6;26328:9;26324:22;26292:64;:::i;:::-;26282:74;;26238:128;26022:351;;;;:::o;26379:85::-;26424:7;26453:5;26442:16;;26379:85;;;:::o;26470:158::-;26528:9;26561:61;26579:42;26588:32;26614:5;26588:32;:::i;:::-;26579:42;:::i;:::-;26561:61;:::i;:::-;26548:74;;26470:158;;;:::o;26634:147::-;26729:45;26768:5;26729:45;:::i;:::-;26724:3;26717:58;26634:147;;:::o;26787:114::-;26854:6;26888:5;26882:12;26872:22;;26787:114;;;:::o;26907:184::-;27006:11;27040:6;27035:3;27028:19;27080:4;27075:3;27071:14;27056:29;;26907:184;;;;:::o;27097:132::-;27164:4;27187:3;27179:11;;27217:4;27212:3;27208:14;27200:22;;27097:132;;;:::o;27235:108::-;27312:24;27330:5;27312:24;:::i;:::-;27307:3;27300:37;27235:108;;:::o;27349:179::-;27418:10;27439:46;27481:3;27473:6;27439:46;:::i;:::-;27517:4;27512:3;27508:14;27494:28;;27349:179;;;;:::o;27534:113::-;27604:4;27636;27631:3;27627:14;27619:22;;27534:113;;;:::o;27683:732::-;27802:3;27831:54;27879:5;27831:54;:::i;:::-;27901:86;27980:6;27975:3;27901:86;:::i;:::-;27894:93;;28011:56;28061:5;28011:56;:::i;:::-;28090:7;28121:1;28106:284;28131:6;28128:1;28125:13;28106:284;;;28207:6;28201:13;28234:63;28293:3;28278:13;28234:63;:::i;:::-;28227:70;;28320:60;28373:6;28320:60;:::i;:::-;28310:70;;28166:224;28153:1;28150;28146:9;28141:14;;28106:284;;;28110:14;28406:3;28399:10;;27807:608;;;27683:732;;;;:::o;28421:831::-;28684:4;28722:3;28711:9;28707:19;28699:27;;28736:71;28804:1;28793:9;28789:17;28780:6;28736:71;:::i;:::-;28817:80;28893:2;28882:9;28878:18;28869:6;28817:80;:::i;:::-;28944:9;28938:4;28934:20;28929:2;28918:9;28914:18;28907:48;28972:108;29075:4;29066:6;28972:108;:::i;:::-;28964:116;;29090:72;29158:2;29147:9;29143:18;29134:6;29090:72;:::i;:::-;29172:73;29240:3;29229:9;29225:19;29216:6;29172:73;:::i;:::-;28421:831;;;;;;;;:::o;29258:180::-;29306:77;29303:1;29296:88;29403:4;29400:1;29393:15;29427:4;29424:1;29417:15;29444:185;29484:1;29501:20;29519:1;29501:20;:::i;:::-;29496:25;;29535:20;29553:1;29535:20;:::i;:::-;29530:25;;29574:1;29564:35;;29579:18;;:::i;:::-;29564:35;29621:1;29618;29614:9;29609:14;;29444:185;;;;:::o;29635:177::-;29775:29;29771:1;29763:6;29759:14;29752:53;29635:177;:::o;29818:366::-;29960:3;29981:67;30045:2;30040:3;29981:67;:::i;:::-;29974:74;;30057:93;30146:3;30057:93;:::i;:::-;30175:2;30170:3;30166:12;30159:19;;29818:366;;;:::o;30190:419::-;30356:4;30394:2;30383:9;30379:18;30371:26;;30443:9;30437:4;30433:20;30429:1;30418:9;30414:17;30407:47;30471:131;30597:4;30471:131;:::i;:::-;30463:139;;30190:419;;;:::o;30615:410::-;30655:7;30678:20;30696:1;30678:20;:::i;:::-;30673:25;;30712:20;30730:1;30712:20;:::i;:::-;30707:25;;30767:1;30764;30760:9;30789:30;30807:11;30789:30;:::i;:::-;30778:41;;30968:1;30959:7;30955:15;30952:1;30949:22;30929:1;30922:9;30902:83;30879:139;;30998:18;;:::i;:::-;30879:139;30663:362;30615:410;;;;:::o;31031:220::-;31171:34;31167:1;31159:6;31155:14;31148:58;31240:3;31235:2;31227:6;31223:15;31216:28;31031:220;:::o;31257:366::-;31399:3;31420:67;31484:2;31479:3;31420:67;:::i;:::-;31413:74;;31496:93;31585:3;31496:93;:::i;:::-;31614:2;31609:3;31605:12;31598:19;;31257:366;;;:::o;31629:419::-;31795:4;31833:2;31822:9;31818:18;31810:26;;31882:9;31876:4;31872:20;31868:1;31857:9;31853:17;31846:47;31910:131;32036:4;31910:131;:::i;:::-;31902:139;;31629:419;;;:::o

Swarm Source

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