ETH Price: $3,280.82 (-1.51%)

Token

ETHEREUM X (ETHX)
 

Overview

Max Total Supply

1,000,000,000 ETHX

Holders

75

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.457398167 ETHX

Value
$0.00
0x85161dC4227E330A061cb329a1B3010Ab16700E7
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:
ETHX

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-12-10
*/

/*

ETHEREUM X

WELCOME TO THE WORLD OF ETHEREUM X .

Ethereum X is a community-owned token that operates without taxes. 

Its goal is to bring the community together and demonstrate its unity and strength.

Max Wallet  : 1%
Tax : N/A
Telegram : Watch Out! (Community owned)


*/

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

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

    using SafeMath for uint256;

    string private constant _name = "ETHEREUM X";
    string private constant _symbol = "ETHX";
    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 = 30;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 30;

    //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(0xC49fC884c4c6133Eaf6657175f76af66CDB3A857);
    address payable private _marketingAddress = payable(0xC49fC884c4c6133Eaf6657175f76af66CDB3A857);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

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

    uint256 public _maxTxAmount = 20000000 * 10**9;
    uint256 public _maxWalletSize = 20000000 * 10**9;
    uint256 public _swapTokensAtAmount = 10000 * 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 removeLimits() public onlyOwner
    {
    _maxTxAmount = 1000000000 * 10**9 ;
    _maxWalletSize = 1000000000 * 10**9 ;
    }

    function doubleUpLimits() public onlyOwner
    {
    _maxTxAmount = _maxTxAmount * 2;
    _maxWalletSize = _maxWalletSize * 2;
    }

    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":[],"name":"doubleUpLimits","outputs":[],"stateMutability":"nonpayable","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":"removeLimits","outputs":[],"stateMutability":"nonpayable","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":"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"}]

6080604052670de0b6b3a76400006000196200001c919062000729565b6000196200002b919062000790565b6006556000600855601e6009556000600a55601e600b55600a54600c55600b54600d55600c54600e55600d54600f5573c49fc884c4c6133eaf6657175f76af66cdb3a857601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c49fc884c4c6133eaf6657175f76af66cdb3a857601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601560146101000a81548160ff02191690831515021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff02191690831515021790555066470de4df82000060165566470de4df8200006017556509184e72a0006018553480156200018157600080fd5b50600062000194620006bf60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506006546002600062000249620006bf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200032d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000353919062000835565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e1919062000835565b6040518363ffffffff1660e01b81526004016200040092919062000878565b6020604051808303816000875af115801562000420573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000446919062000835565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560006200049c620006c760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000649620006bf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620006b09190620008b6565b60405180910390a350620008d3565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200073682620006f0565b91506200074383620006f0565b925082620007565762000755620006fa565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200079d82620006f0565b9150620007aa83620006f0565b9250828203905081811115620007c557620007c462000761565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007fd82620007d0565b9050919050565b6200080f81620007f0565b81146200081b57600080fd5b50565b6000815190506200082f8162000804565b92915050565b6000602082840312156200084e576200084d620007cb565b5b60006200085e848285016200081e565b91505092915050565b6200087281620007f0565b82525050565b60006040820190506200088f600083018562000867565b6200089e602083018462000867565b9392505050565b620008b081620006f0565b82525050565b6000602082019050620008cd6000830184620008a5565b92915050565b613d9580620008e36000396000f3fe6080604052600436106101d05760003560e01c80637d1db4a5116100f7578063a2a957bb11610095578063c492f04611610064578063c492f0461461064a578063d0dc8a9d14610673578063dd62ed3e1461068a578063f2fde38b146106c7576101d7565b8063a2a957bb14610590578063a9059cbb146105b9578063bfd79284146105f6578063c3c8cd8014610633576101d7565b80638f70ccf7116100d15780638f70ccf7146104e85780638f9a55c01461051157806395d89b411461053c57806398a5c31514610567576101d7565b80637d1db4a5146104555780637f2feddc146104805780638da5cb5b146104bd576101d7565b8063313ce5671161016f5780636fc3eaec1161013e5780636fc3eaec146103d357806370a08231146103ea578063715018a614610427578063751039fc1461043e576101d7565b8063313ce5671461032b57806349bd5a5e146103565780636b999053146103815780636d8aa8f8146103aa576101d7565b80631694505e116101ab5780631694505e1461026d57806318160ddd1461029857806323b872dd146102c35780632fd689e314610300576101d7565b8062b8cf2a146101dc57806306fdde0314610205578063095ea7b314610230576101d7565b366101d757005b600080fd5b3480156101e857600080fd5b5061020360048036038101906101fe9190612d65565b6106f0565b005b34801561021157600080fd5b5061021a61081a565b6040516102279190612e2d565b60405180910390f35b34801561023c57600080fd5b5061025760048036038101906102529190612e85565b610857565b6040516102649190612ee0565b60405180910390f35b34801561027957600080fd5b50610282610875565b60405161028f9190612f5a565b60405180910390f35b3480156102a457600080fd5b506102ad61089b565b6040516102ba9190612f84565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e59190612f9f565b6108ab565b6040516102f79190612ee0565b60405180910390f35b34801561030c57600080fd5b50610315610984565b6040516103229190612f84565b60405180910390f35b34801561033757600080fd5b5061034061098a565b60405161034d919061300e565b60405180910390f35b34801561036257600080fd5b5061036b610993565b6040516103789190613038565b60405180910390f35b34801561038d57600080fd5b506103a860048036038101906103a39190613053565b6109b9565b005b3480156103b657600080fd5b506103d160048036038101906103cc91906130ac565b610aa9565b005b3480156103df57600080fd5b506103e8610b5b565b005b3480156103f657600080fd5b50610411600480360381019061040c9190613053565b610c2c565b60405161041e9190612f84565b60405180910390f35b34801561043357600080fd5b5061043c610c7d565b005b34801561044a57600080fd5b50610453610dd0565b005b34801561046157600080fd5b5061046a610e85565b6040516104779190612f84565b60405180910390f35b34801561048c57600080fd5b506104a760048036038101906104a29190613053565b610e8b565b6040516104b49190612f84565b60405180910390f35b3480156104c957600080fd5b506104d2610ea3565b6040516104df9190613038565b60405180910390f35b3480156104f457600080fd5b5061050f600480360381019061050a91906130ac565b610ecc565b005b34801561051d57600080fd5b50610526610f7e565b6040516105339190612f84565b60405180910390f35b34801561054857600080fd5b50610551610f84565b60405161055e9190612e2d565b60405180910390f35b34801561057357600080fd5b5061058e600480360381019061058991906130d9565b610fc1565b005b34801561059c57600080fd5b506105b760048036038101906105b29190613106565b611060565b005b3480156105c557600080fd5b506105e060048036038101906105db9190612e85565b611117565b6040516105ed9190612ee0565b60405180910390f35b34801561060257600080fd5b5061061d60048036038101906106189190613053565b611135565b60405161062a9190612ee0565b60405180910390f35b34801561063f57600080fd5b50610648611155565b005b34801561065657600080fd5b50610671600480360381019061066c91906131c8565b61122e565b005b34801561067f57600080fd5b50610688611368565b005b34801561069657600080fd5b506106b160048036038101906106ac9190613228565b611429565b6040516106be9190612f84565b60405180910390f35b3480156106d357600080fd5b506106ee60048036038101906106e99190613053565b6114b0565b005b6106f8611671565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077c906132b4565b60405180910390fd5b60005b8151811015610816576001601060008484815181106107aa576107a96132d4565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061080e90613332565b915050610788565b5050565b60606040518060400160405280600a81526020017f455448455245554d205800000000000000000000000000000000000000000000815250905090565b600061086b610864611671565b8484611679565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b60006108b8848484611842565b610979846108c4611671565b61097485604051806060016040528060288152602001613d3860289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061092a611671565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120c59092919063ffffffff16565b611679565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109c1611671565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a45906132b4565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610ab1611671565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b35906132b4565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b9c611671565b73ffffffffffffffffffffffffffffffffffffffff161480610c125750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bfa611671565b73ffffffffffffffffffffffffffffffffffffffff16145b610c1b57600080fd5b6000479050610c2981612129565b50565b6000610c76600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612195565b9050919050565b610c85611671565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d09906132b4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610dd8611671565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5c906132b4565b60405180910390fd5b670de0b6b3a7640000601681905550670de0b6b3a7640000601781905550565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ed4611671565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f58906132b4565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600481526020017f4554485800000000000000000000000000000000000000000000000000000000815250905090565b610fc9611671565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611056576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104d906132b4565b60405180910390fd5b8060188190555050565b611068611671565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ec906132b4565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b600061112b611124611671565b8484611842565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611196611671565b73ffffffffffffffffffffffffffffffffffffffff16148061120c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111f4611671565b73ffffffffffffffffffffffffffffffffffffffff16145b61121557600080fd5b600061122030610c2c565b905061122b81612203565b50565b611236611671565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ba906132b4565b60405180910390fd5b60005b838390508110156113625781600560008686858181106112e9576112e86132d4565b5b90506020020160208101906112fe9190613053565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061135a90613332565b9150506112c6565b50505050565b611370611671565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f4906132b4565b60405180910390fd5b600260165461140c919061337a565b6016819055506002601754611421919061337a565b601781905550565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114b8611671565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611545576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153c906132b4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ab9061342e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116df906134c0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174e90613552565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118359190612f84565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a8906135e4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611920576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191790613676565b60405180910390fd5b60008111611963576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195a90613708565b60405180910390fd5b61196b610ea3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119d957506119a9610ea3565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611dc457601560149054906101000a900460ff16611a68576119fa610ea3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611a67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5e9061379a565b60405180910390fd5b5b601654811115611aad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa490613806565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611b515750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611b90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8790613898565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c3d5760175481611bf284610c2c565b611bfc91906138b8565b10611c3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c339061395e565b60405180910390fd5b5b6000611c4830610c2c565b9050600060185482101590506016548210611c635760165491505b808015611c7b575060158054906101000a900460ff16155b8015611cd55750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611ced5750601560169054906101000a900460ff165b8015611d435750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d995750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611dc157611da782612203565b60004790506000811115611dbf57611dbe47612129565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e6b5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611f1e5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f1d5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611f2c57600090506120b3565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611fd75750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611fef57600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561209a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156120b257600a54600c81905550600b54600d819055505b5b6120bf8484848461247a565b50505050565b600083831115829061210d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121049190612e2d565b60405180910390fd5b506000838561211c919061397e565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612191573d6000803e3d6000fd5b5050565b60006006548211156121dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d390613a24565b60405180910390fd5b60006121e66124a7565b90506121fb81846124d290919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561223a57612239612bc4565b5b6040519080825280602002602001820160405280156122685781602001602082028036833780820191505090505b50905030816000815181106122805761227f6132d4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612327573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061234b9190613a59565b8160018151811061235f5761235e6132d4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123c630601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611679565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161242a959493929190613b7f565b600060405180830381600087803b15801561244457600080fd5b505af1158015612458573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806124885761248761251c565b5b612493848484612559565b806124a1576124a0612724565b5b50505050565b60008060006124b4612738565b915091506124cb81836124d290919063ffffffff16565b9250505090565b600061251483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612797565b905092915050565b6000600c5414801561253057506000600d54145b61255757600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061256b876127fa565b9550955095509550955095506125c986600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061265e85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128ac90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126aa8161290a565b6126b484836129c7565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516127119190612f84565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a7640000905061276c670de0b6b3a76400006006546124d290919063ffffffff16565b82101561278a57600654670de0b6b3a7640000935093505050612793565b81819350935050505b9091565b600080831182906127de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d59190612e2d565b60405180910390fd5b50600083856127ed9190613c08565b9050809150509392505050565b60008060008060008060008060006128178a600c54600d54612a01565b92509250925060006128276124a7565b9050600080600061283a8e878787612a97565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006128a483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120c5565b905092915050565b60008082846128bb91906138b8565b905083811015612900576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128f790613c85565b60405180910390fd5b8091505092915050565b60006129146124a7565b9050600061292b8284612b2090919063ffffffff16565b905061297f81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128ac90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6129dc8260065461286290919063ffffffff16565b6006819055506129f7816007546128ac90919063ffffffff16565b6007819055505050565b600080600080612a2d6064612a1f888a612b2090919063ffffffff16565b6124d290919063ffffffff16565b90506000612a576064612a49888b612b2090919063ffffffff16565b6124d290919063ffffffff16565b90506000612a8082612a72858c61286290919063ffffffff16565b61286290919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612ab08589612b2090919063ffffffff16565b90506000612ac78689612b2090919063ffffffff16565b90506000612ade8789612b2090919063ffffffff16565b90506000612b0782612af9858761286290919063ffffffff16565b61286290919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612b325760009050612b94565b60008284612b40919061337a565b9050828482612b4f9190613c08565b14612b8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b8690613d17565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612bfc82612bb3565b810181811067ffffffffffffffff82111715612c1b57612c1a612bc4565b5b80604052505050565b6000612c2e612b9a565b9050612c3a8282612bf3565b919050565b600067ffffffffffffffff821115612c5a57612c59612bc4565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c9b82612c70565b9050919050565b612cab81612c90565b8114612cb657600080fd5b50565b600081359050612cc881612ca2565b92915050565b6000612ce1612cdc84612c3f565b612c24565b90508083825260208201905060208402830185811115612d0457612d03612c6b565b5b835b81811015612d2d5780612d198882612cb9565b845260208401935050602081019050612d06565b5050509392505050565b600082601f830112612d4c57612d4b612bae565b5b8135612d5c848260208601612cce565b91505092915050565b600060208284031215612d7b57612d7a612ba4565b5b600082013567ffffffffffffffff811115612d9957612d98612ba9565b5b612da584828501612d37565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612de8578082015181840152602081019050612dcd565b60008484015250505050565b6000612dff82612dae565b612e098185612db9565b9350612e19818560208601612dca565b612e2281612bb3565b840191505092915050565b60006020820190508181036000830152612e478184612df4565b905092915050565b6000819050919050565b612e6281612e4f565b8114612e6d57600080fd5b50565b600081359050612e7f81612e59565b92915050565b60008060408385031215612e9c57612e9b612ba4565b5b6000612eaa85828601612cb9565b9250506020612ebb85828601612e70565b9150509250929050565b60008115159050919050565b612eda81612ec5565b82525050565b6000602082019050612ef56000830184612ed1565b92915050565b6000819050919050565b6000612f20612f1b612f1684612c70565b612efb565b612c70565b9050919050565b6000612f3282612f05565b9050919050565b6000612f4482612f27565b9050919050565b612f5481612f39565b82525050565b6000602082019050612f6f6000830184612f4b565b92915050565b612f7e81612e4f565b82525050565b6000602082019050612f996000830184612f75565b92915050565b600080600060608486031215612fb857612fb7612ba4565b5b6000612fc686828701612cb9565b9350506020612fd786828701612cb9565b9250506040612fe886828701612e70565b9150509250925092565b600060ff82169050919050565b61300881612ff2565b82525050565b60006020820190506130236000830184612fff565b92915050565b61303281612c90565b82525050565b600060208201905061304d6000830184613029565b92915050565b60006020828403121561306957613068612ba4565b5b600061307784828501612cb9565b91505092915050565b61308981612ec5565b811461309457600080fd5b50565b6000813590506130a681613080565b92915050565b6000602082840312156130c2576130c1612ba4565b5b60006130d084828501613097565b91505092915050565b6000602082840312156130ef576130ee612ba4565b5b60006130fd84828501612e70565b91505092915050565b600080600080608085870312156131205761311f612ba4565b5b600061312e87828801612e70565b945050602061313f87828801612e70565b935050604061315087828801612e70565b925050606061316187828801612e70565b91505092959194509250565b600080fd5b60008083601f84011261318857613187612bae565b5b8235905067ffffffffffffffff8111156131a5576131a461316d565b5b6020830191508360208202830111156131c1576131c0612c6b565b5b9250929050565b6000806000604084860312156131e1576131e0612ba4565b5b600084013567ffffffffffffffff8111156131ff576131fe612ba9565b5b61320b86828701613172565b9350935050602061321e86828701613097565b9150509250925092565b6000806040838503121561323f5761323e612ba4565b5b600061324d85828601612cb9565b925050602061325e85828601612cb9565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061329e602083612db9565b91506132a982613268565b602082019050919050565b600060208201905081810360008301526132cd81613291565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061333d82612e4f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361336f5761336e613303565b5b600182019050919050565b600061338582612e4f565b915061339083612e4f565b925082820261339e81612e4f565b915082820484148315176133b5576133b4613303565b5b5092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613418602683612db9565b9150613423826133bc565b604082019050919050565b600060208201905081810360008301526134478161340b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006134aa602483612db9565b91506134b58261344e565b604082019050919050565b600060208201905081810360008301526134d98161349d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061353c602283612db9565b9150613547826134e0565b604082019050919050565b6000602082019050818103600083015261356b8161352f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006135ce602583612db9565b91506135d982613572565b604082019050919050565b600060208201905081810360008301526135fd816135c1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613660602383612db9565b915061366b82613604565b604082019050919050565b6000602082019050818103600083015261368f81613653565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006136f2602983612db9565b91506136fd82613696565b604082019050919050565b60006020820190508181036000830152613721816136e5565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613784603f83612db9565b915061378f82613728565b604082019050919050565b600060208201905081810360008301526137b381613777565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b60006137f0601c83612db9565b91506137fb826137ba565b602082019050919050565b6000602082019050818103600083015261381f816137e3565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613882602383612db9565b915061388d82613826565b604082019050919050565b600060208201905081810360008301526138b181613875565b9050919050565b60006138c382612e4f565b91506138ce83612e4f565b92508282019050808211156138e6576138e5613303565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613948602383612db9565b9150613953826138ec565b604082019050919050565b600060208201905081810360008301526139778161393b565b9050919050565b600061398982612e4f565b915061399483612e4f565b92508282039050818111156139ac576139ab613303565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613a0e602a83612db9565b9150613a19826139b2565b604082019050919050565b60006020820190508181036000830152613a3d81613a01565b9050919050565b600081519050613a5381612ca2565b92915050565b600060208284031215613a6f57613a6e612ba4565b5b6000613a7d84828501613a44565b91505092915050565b6000819050919050565b6000613aab613aa6613aa184613a86565b612efb565b612e4f565b9050919050565b613abb81613a90565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613af681612c90565b82525050565b6000613b088383613aed565b60208301905092915050565b6000602082019050919050565b6000613b2c82613ac1565b613b368185613acc565b9350613b4183613add565b8060005b83811015613b72578151613b598882613afc565b9750613b6483613b14565b925050600181019050613b45565b5085935050505092915050565b600060a082019050613b946000830188612f75565b613ba16020830187613ab2565b8181036040830152613bb38186613b21565b9050613bc26060830185613029565b613bcf6080830184612f75565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613c1382612e4f565b9150613c1e83612e4f565b925082613c2e57613c2d613bd9565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613c6f601b83612db9565b9150613c7a82613c39565b602082019050919050565b60006020820190508181036000830152613c9e81613c62565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d01602183612db9565b9150613d0c82613ca5565b604082019050919050565b60006020820190508181036000830152613d3081613cf4565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220dfad3c192f2a2fa9bec025303f6768b80181e7041953069db6862ae329d1a5d764736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101d05760003560e01c80637d1db4a5116100f7578063a2a957bb11610095578063c492f04611610064578063c492f0461461064a578063d0dc8a9d14610673578063dd62ed3e1461068a578063f2fde38b146106c7576101d7565b8063a2a957bb14610590578063a9059cbb146105b9578063bfd79284146105f6578063c3c8cd8014610633576101d7565b80638f70ccf7116100d15780638f70ccf7146104e85780638f9a55c01461051157806395d89b411461053c57806398a5c31514610567576101d7565b80637d1db4a5146104555780637f2feddc146104805780638da5cb5b146104bd576101d7565b8063313ce5671161016f5780636fc3eaec1161013e5780636fc3eaec146103d357806370a08231146103ea578063715018a614610427578063751039fc1461043e576101d7565b8063313ce5671461032b57806349bd5a5e146103565780636b999053146103815780636d8aa8f8146103aa576101d7565b80631694505e116101ab5780631694505e1461026d57806318160ddd1461029857806323b872dd146102c35780632fd689e314610300576101d7565b8062b8cf2a146101dc57806306fdde0314610205578063095ea7b314610230576101d7565b366101d757005b600080fd5b3480156101e857600080fd5b5061020360048036038101906101fe9190612d65565b6106f0565b005b34801561021157600080fd5b5061021a61081a565b6040516102279190612e2d565b60405180910390f35b34801561023c57600080fd5b5061025760048036038101906102529190612e85565b610857565b6040516102649190612ee0565b60405180910390f35b34801561027957600080fd5b50610282610875565b60405161028f9190612f5a565b60405180910390f35b3480156102a457600080fd5b506102ad61089b565b6040516102ba9190612f84565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e59190612f9f565b6108ab565b6040516102f79190612ee0565b60405180910390f35b34801561030c57600080fd5b50610315610984565b6040516103229190612f84565b60405180910390f35b34801561033757600080fd5b5061034061098a565b60405161034d919061300e565b60405180910390f35b34801561036257600080fd5b5061036b610993565b6040516103789190613038565b60405180910390f35b34801561038d57600080fd5b506103a860048036038101906103a39190613053565b6109b9565b005b3480156103b657600080fd5b506103d160048036038101906103cc91906130ac565b610aa9565b005b3480156103df57600080fd5b506103e8610b5b565b005b3480156103f657600080fd5b50610411600480360381019061040c9190613053565b610c2c565b60405161041e9190612f84565b60405180910390f35b34801561043357600080fd5b5061043c610c7d565b005b34801561044a57600080fd5b50610453610dd0565b005b34801561046157600080fd5b5061046a610e85565b6040516104779190612f84565b60405180910390f35b34801561048c57600080fd5b506104a760048036038101906104a29190613053565b610e8b565b6040516104b49190612f84565b60405180910390f35b3480156104c957600080fd5b506104d2610ea3565b6040516104df9190613038565b60405180910390f35b3480156104f457600080fd5b5061050f600480360381019061050a91906130ac565b610ecc565b005b34801561051d57600080fd5b50610526610f7e565b6040516105339190612f84565b60405180910390f35b34801561054857600080fd5b50610551610f84565b60405161055e9190612e2d565b60405180910390f35b34801561057357600080fd5b5061058e600480360381019061058991906130d9565b610fc1565b005b34801561059c57600080fd5b506105b760048036038101906105b29190613106565b611060565b005b3480156105c557600080fd5b506105e060048036038101906105db9190612e85565b611117565b6040516105ed9190612ee0565b60405180910390f35b34801561060257600080fd5b5061061d60048036038101906106189190613053565b611135565b60405161062a9190612ee0565b60405180910390f35b34801561063f57600080fd5b50610648611155565b005b34801561065657600080fd5b50610671600480360381019061066c91906131c8565b61122e565b005b34801561067f57600080fd5b50610688611368565b005b34801561069657600080fd5b506106b160048036038101906106ac9190613228565b611429565b6040516106be9190612f84565b60405180910390f35b3480156106d357600080fd5b506106ee60048036038101906106e99190613053565b6114b0565b005b6106f8611671565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077c906132b4565b60405180910390fd5b60005b8151811015610816576001601060008484815181106107aa576107a96132d4565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061080e90613332565b915050610788565b5050565b60606040518060400160405280600a81526020017f455448455245554d205800000000000000000000000000000000000000000000815250905090565b600061086b610864611671565b8484611679565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b60006108b8848484611842565b610979846108c4611671565b61097485604051806060016040528060288152602001613d3860289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061092a611671565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120c59092919063ffffffff16565b611679565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109c1611671565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a45906132b4565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610ab1611671565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b35906132b4565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b9c611671565b73ffffffffffffffffffffffffffffffffffffffff161480610c125750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bfa611671565b73ffffffffffffffffffffffffffffffffffffffff16145b610c1b57600080fd5b6000479050610c2981612129565b50565b6000610c76600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612195565b9050919050565b610c85611671565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d09906132b4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610dd8611671565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5c906132b4565b60405180910390fd5b670de0b6b3a7640000601681905550670de0b6b3a7640000601781905550565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ed4611671565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f58906132b4565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600481526020017f4554485800000000000000000000000000000000000000000000000000000000815250905090565b610fc9611671565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611056576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104d906132b4565b60405180910390fd5b8060188190555050565b611068611671565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ec906132b4565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b600061112b611124611671565b8484611842565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611196611671565b73ffffffffffffffffffffffffffffffffffffffff16148061120c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111f4611671565b73ffffffffffffffffffffffffffffffffffffffff16145b61121557600080fd5b600061122030610c2c565b905061122b81612203565b50565b611236611671565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ba906132b4565b60405180910390fd5b60005b838390508110156113625781600560008686858181106112e9576112e86132d4565b5b90506020020160208101906112fe9190613053565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061135a90613332565b9150506112c6565b50505050565b611370611671565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f4906132b4565b60405180910390fd5b600260165461140c919061337a565b6016819055506002601754611421919061337a565b601781905550565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114b8611671565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611545576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153c906132b4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ab9061342e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116df906134c0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174e90613552565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118359190612f84565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a8906135e4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611920576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191790613676565b60405180910390fd5b60008111611963576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195a90613708565b60405180910390fd5b61196b610ea3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119d957506119a9610ea3565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611dc457601560149054906101000a900460ff16611a68576119fa610ea3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611a67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5e9061379a565b60405180910390fd5b5b601654811115611aad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa490613806565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611b515750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611b90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8790613898565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c3d5760175481611bf284610c2c565b611bfc91906138b8565b10611c3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c339061395e565b60405180910390fd5b5b6000611c4830610c2c565b9050600060185482101590506016548210611c635760165491505b808015611c7b575060158054906101000a900460ff16155b8015611cd55750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611ced5750601560169054906101000a900460ff165b8015611d435750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d995750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611dc157611da782612203565b60004790506000811115611dbf57611dbe47612129565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e6b5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611f1e5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f1d5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611f2c57600090506120b3565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611fd75750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611fef57600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561209a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156120b257600a54600c81905550600b54600d819055505b5b6120bf8484848461247a565b50505050565b600083831115829061210d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121049190612e2d565b60405180910390fd5b506000838561211c919061397e565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612191573d6000803e3d6000fd5b5050565b60006006548211156121dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d390613a24565b60405180910390fd5b60006121e66124a7565b90506121fb81846124d290919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561223a57612239612bc4565b5b6040519080825280602002602001820160405280156122685781602001602082028036833780820191505090505b50905030816000815181106122805761227f6132d4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612327573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061234b9190613a59565b8160018151811061235f5761235e6132d4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123c630601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611679565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161242a959493929190613b7f565b600060405180830381600087803b15801561244457600080fd5b505af1158015612458573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806124885761248761251c565b5b612493848484612559565b806124a1576124a0612724565b5b50505050565b60008060006124b4612738565b915091506124cb81836124d290919063ffffffff16565b9250505090565b600061251483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612797565b905092915050565b6000600c5414801561253057506000600d54145b61255757600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061256b876127fa565b9550955095509550955095506125c986600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061265e85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128ac90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126aa8161290a565b6126b484836129c7565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516127119190612f84565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a7640000905061276c670de0b6b3a76400006006546124d290919063ffffffff16565b82101561278a57600654670de0b6b3a7640000935093505050612793565b81819350935050505b9091565b600080831182906127de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d59190612e2d565b60405180910390fd5b50600083856127ed9190613c08565b9050809150509392505050565b60008060008060008060008060006128178a600c54600d54612a01565b92509250925060006128276124a7565b9050600080600061283a8e878787612a97565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006128a483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120c5565b905092915050565b60008082846128bb91906138b8565b905083811015612900576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128f790613c85565b60405180910390fd5b8091505092915050565b60006129146124a7565b9050600061292b8284612b2090919063ffffffff16565b905061297f81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128ac90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6129dc8260065461286290919063ffffffff16565b6006819055506129f7816007546128ac90919063ffffffff16565b6007819055505050565b600080600080612a2d6064612a1f888a612b2090919063ffffffff16565b6124d290919063ffffffff16565b90506000612a576064612a49888b612b2090919063ffffffff16565b6124d290919063ffffffff16565b90506000612a8082612a72858c61286290919063ffffffff16565b61286290919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612ab08589612b2090919063ffffffff16565b90506000612ac78689612b2090919063ffffffff16565b90506000612ade8789612b2090919063ffffffff16565b90506000612b0782612af9858761286290919063ffffffff16565b61286290919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612b325760009050612b94565b60008284612b40919061337a565b9050828482612b4f9190613c08565b14612b8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b8690613d17565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612bfc82612bb3565b810181811067ffffffffffffffff82111715612c1b57612c1a612bc4565b5b80604052505050565b6000612c2e612b9a565b9050612c3a8282612bf3565b919050565b600067ffffffffffffffff821115612c5a57612c59612bc4565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c9b82612c70565b9050919050565b612cab81612c90565b8114612cb657600080fd5b50565b600081359050612cc881612ca2565b92915050565b6000612ce1612cdc84612c3f565b612c24565b90508083825260208201905060208402830185811115612d0457612d03612c6b565b5b835b81811015612d2d5780612d198882612cb9565b845260208401935050602081019050612d06565b5050509392505050565b600082601f830112612d4c57612d4b612bae565b5b8135612d5c848260208601612cce565b91505092915050565b600060208284031215612d7b57612d7a612ba4565b5b600082013567ffffffffffffffff811115612d9957612d98612ba9565b5b612da584828501612d37565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612de8578082015181840152602081019050612dcd565b60008484015250505050565b6000612dff82612dae565b612e098185612db9565b9350612e19818560208601612dca565b612e2281612bb3565b840191505092915050565b60006020820190508181036000830152612e478184612df4565b905092915050565b6000819050919050565b612e6281612e4f565b8114612e6d57600080fd5b50565b600081359050612e7f81612e59565b92915050565b60008060408385031215612e9c57612e9b612ba4565b5b6000612eaa85828601612cb9565b9250506020612ebb85828601612e70565b9150509250929050565b60008115159050919050565b612eda81612ec5565b82525050565b6000602082019050612ef56000830184612ed1565b92915050565b6000819050919050565b6000612f20612f1b612f1684612c70565b612efb565b612c70565b9050919050565b6000612f3282612f05565b9050919050565b6000612f4482612f27565b9050919050565b612f5481612f39565b82525050565b6000602082019050612f6f6000830184612f4b565b92915050565b612f7e81612e4f565b82525050565b6000602082019050612f996000830184612f75565b92915050565b600080600060608486031215612fb857612fb7612ba4565b5b6000612fc686828701612cb9565b9350506020612fd786828701612cb9565b9250506040612fe886828701612e70565b9150509250925092565b600060ff82169050919050565b61300881612ff2565b82525050565b60006020820190506130236000830184612fff565b92915050565b61303281612c90565b82525050565b600060208201905061304d6000830184613029565b92915050565b60006020828403121561306957613068612ba4565b5b600061307784828501612cb9565b91505092915050565b61308981612ec5565b811461309457600080fd5b50565b6000813590506130a681613080565b92915050565b6000602082840312156130c2576130c1612ba4565b5b60006130d084828501613097565b91505092915050565b6000602082840312156130ef576130ee612ba4565b5b60006130fd84828501612e70565b91505092915050565b600080600080608085870312156131205761311f612ba4565b5b600061312e87828801612e70565b945050602061313f87828801612e70565b935050604061315087828801612e70565b925050606061316187828801612e70565b91505092959194509250565b600080fd5b60008083601f84011261318857613187612bae565b5b8235905067ffffffffffffffff8111156131a5576131a461316d565b5b6020830191508360208202830111156131c1576131c0612c6b565b5b9250929050565b6000806000604084860312156131e1576131e0612ba4565b5b600084013567ffffffffffffffff8111156131ff576131fe612ba9565b5b61320b86828701613172565b9350935050602061321e86828701613097565b9150509250925092565b6000806040838503121561323f5761323e612ba4565b5b600061324d85828601612cb9565b925050602061325e85828601612cb9565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061329e602083612db9565b91506132a982613268565b602082019050919050565b600060208201905081810360008301526132cd81613291565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061333d82612e4f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361336f5761336e613303565b5b600182019050919050565b600061338582612e4f565b915061339083612e4f565b925082820261339e81612e4f565b915082820484148315176133b5576133b4613303565b5b5092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613418602683612db9565b9150613423826133bc565b604082019050919050565b600060208201905081810360008301526134478161340b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006134aa602483612db9565b91506134b58261344e565b604082019050919050565b600060208201905081810360008301526134d98161349d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061353c602283612db9565b9150613547826134e0565b604082019050919050565b6000602082019050818103600083015261356b8161352f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006135ce602583612db9565b91506135d982613572565b604082019050919050565b600060208201905081810360008301526135fd816135c1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613660602383612db9565b915061366b82613604565b604082019050919050565b6000602082019050818103600083015261368f81613653565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006136f2602983612db9565b91506136fd82613696565b604082019050919050565b60006020820190508181036000830152613721816136e5565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613784603f83612db9565b915061378f82613728565b604082019050919050565b600060208201905081810360008301526137b381613777565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b60006137f0601c83612db9565b91506137fb826137ba565b602082019050919050565b6000602082019050818103600083015261381f816137e3565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613882602383612db9565b915061388d82613826565b604082019050919050565b600060208201905081810360008301526138b181613875565b9050919050565b60006138c382612e4f565b91506138ce83612e4f565b92508282019050808211156138e6576138e5613303565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613948602383612db9565b9150613953826138ec565b604082019050919050565b600060208201905081810360008301526139778161393b565b9050919050565b600061398982612e4f565b915061399483612e4f565b92508282039050818111156139ac576139ab613303565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613a0e602a83612db9565b9150613a19826139b2565b604082019050919050565b60006020820190508181036000830152613a3d81613a01565b9050919050565b600081519050613a5381612ca2565b92915050565b600060208284031215613a6f57613a6e612ba4565b5b6000613a7d84828501613a44565b91505092915050565b6000819050919050565b6000613aab613aa6613aa184613a86565b612efb565b612e4f565b9050919050565b613abb81613a90565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613af681612c90565b82525050565b6000613b088383613aed565b60208301905092915050565b6000602082019050919050565b6000613b2c82613ac1565b613b368185613acc565b9350613b4183613add565b8060005b83811015613b72578151613b598882613afc565b9750613b6483613b14565b925050600181019050613b45565b5085935050505092915050565b600060a082019050613b946000830188612f75565b613ba16020830187613ab2565b8181036040830152613bb38186613b21565b9050613bc26060830185613029565b613bcf6080830184612f75565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613c1382612e4f565b9150613c1e83612e4f565b925082613c2e57613c2d613bd9565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613c6f601b83612db9565b9150613c7a82613c39565b602082019050919050565b60006020820190508181036000830152613c9e81613c62565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d01602183612db9565b9150613d0c82613ca5565b604082019050919050565b60006020820190508181036000830152613d3081613cf4565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220dfad3c192f2a2fa9bec025303f6768b80181e7041953069db6862ae329d1a5d764736f6c63430008110033

Deployed Bytecode Sourcemap

4367:13548:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13037:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6865:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7790:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5708:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7142:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7991:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6013:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7051:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5756:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13214:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17246:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12794:235;;;;;;;;;;;;;:::i;:::-;;7245:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1854:148;;;;;;;;;;;;;:::i;:::-;;17386:138;;;;;;;;;;;;;:::i;:::-;;5905:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5450:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1640:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12441:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5958:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6956:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17055:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16712:291;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7391:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5412:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12550:236;;;;;;;;;;;;;:::i;:::-;;17676:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17532:136;;;;;;;;;;;;;:::i;:::-;;7598:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2010:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13037:169;1777:12;:10;:12::i;:::-;1767:22;;:6;;;;;;;;;;:22;;;1759:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13113:9:::1;13108:91;13132:5;:12;13128:1;:16;13108:91;;;13183:4;13166;:14;13171:5;13177:1;13171:8;;;;;;;;:::i;:::-;;;;;;;;13166:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13146:3;;;;;:::i;:::-;;;;13108:91;;;;13037:169:::0;:::o;6865:83::-;6902:13;6935:5;;;;;;;;;;;;;;;;;6928:12;;6865:83;:::o;7790:193::-;7892:4;7914:39;7923:12;:10;:12::i;:::-;7937:7;7946:6;7914:8;:39::i;:::-;7971:4;7964:11;;7790:193;;;;:::o;5708:41::-;;;;;;;;;;;;;:::o;7142:95::-;7195:7;4912:18;7215:14;;7142:95;:::o;7991:446::-;8123:4;8140:36;8150:6;8158:9;8169:6;8140:9;:36::i;:::-;8187:220;8210:6;8231:12;:10;:12::i;:::-;8258:138;8314:6;8258:138;;;;;;;;;;;;;;;;;:11;:19;8270:6;8258:19;;;;;;;;;;;;;;;:33;8278:12;:10;:12::i;:::-;8258:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8187:8;:220::i;:::-;8425:4;8418:11;;7991:446;;;;;:::o;6013:50::-;;;;:::o;7051:83::-;7092:5;4586:1;7110:16;;7051:83;:::o;5756:28::-;;;;;;;;;;;;;:::o;13214:92::-;1777:12;:10;:12::i;:::-;1767:22;;:6;;;;;;;;;;:22;;;1759:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13293:5:::1;13278:4;:12;13283:6;13278:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13214:92:::0;:::o;17246:101::-;1777:12;:10;:12::i;:::-;1767:22;;:6;;;;;;;;;;:22;;;1759:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17327:12:::1;17313:11;;:26;;;;;;;;;;;;;;;;;;17246:101:::0;:::o;12794:235::-;12860:19;;;;;;;;;;;12844:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12899:17;;;;;;;;;;;12883:33;;:12;:10;:12::i;:::-;:33;;;12844:72;12836:81;;;;;;12928:26;12957:21;12928:50;;12989:32;13002:18;12989:12;:32::i;:::-;12825:204;12794:235::o;7245:138::-;7311:7;7338:37;7358:7;:16;7366:7;7358:16;;;;;;;;;;;;;;;;7338:19;:37::i;:::-;7331:44;;7245:138;;;:::o;1854:148::-;1777:12;:10;:12::i;:::-;1767:22;;:6;;;;;;;;;;:22;;;1759:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1961:1:::1;1924:40;;1945:6;::::0;::::1;;;;;;;;1924:40;;;;;;;;;;;;1992:1;1975:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1854:148::o:0;17386:138::-;1777:12;:10;:12::i;:::-;1767:22;;:6;;;;;;;;;;:22;;;1759:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17454:18:::1;17439:12;:33;;;;17497:18;17480:14;:35;;;;17386:138::o:0;5905:46::-;;;;:::o;5450:43::-;;;;;;;;;;;;;;;;;:::o;1640:79::-;1678:7;1705:6;;;;;;;;;;;1698:13;;1640:79;:::o;12441:101::-;1777:12;:10;:12::i;:::-;1767:22;;:6;;;;;;;;;;:22;;;1759:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12522:12:::1;12508:11;;:26;;;;;;;;;;;;;;;;;;12441:101:::0;:::o;5958:48::-;;;;:::o;6956:87::-;6995:13;7028:7;;;;;;;;;;;;;;;;;7021:14;;6956:87;:::o;17055:139::-;1777:12;:10;:12::i;:::-;1767:22;;:6;;;;;;;;;;:22;;;1759:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17168:18:::1;17146:19;:40;;;;17055:139:::0;:::o;16712:291::-;1777:12;:10;:12::i;:::-;1767:22;;:6;;;;;;;;;;:22;;;1759:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16863:13:::1;16846:14;:30;;;;16905:14;16887:15;:32;;;;16945:11;16930:12;:26;;;;16983:12;16967:13;:28;;;;16712:291:::0;;;;:::o;7391:199::-;7496:4;7518:42;7528:12;:10;:12::i;:::-;7542:9;7553:6;7518:9;:42::i;:::-;7578:4;7571:11;;7391:199;;;;:::o;5412:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12550:236::-;12616:19;;;;;;;;;;;12600:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12655:17;;;;;;;;;;;12639:33;;:12;:10;:12::i;:::-;:33;;;12600:72;12592:81;;;;;;12684:23;12710:24;12728:4;12710:9;:24::i;:::-;12684:50;;12745:33;12762:15;12745:16;:33::i;:::-;12581:205;12550:236::o;17676:234::-;1777:12;:10;:12::i;:::-;1767:22;;:6;;;;;;;;;;:22;;;1759:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17793:9:::1;17789:114;17812:8;;:15;;17808:1;:19;17789:114;;;17883:8;17849:18;:31;17868:8;;17877:1;17868:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17849:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17829:3;;;;;:::i;:::-;;;;17789:114;;;;17676:234:::0;;;:::o;17532:136::-;1777:12;:10;:12::i;:::-;1767:22;;:6;;;;;;;;;;:22;;;1759:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17617:1:::1;17602:12;;:16;;;;:::i;:::-;17587:12;:31;;;;17659:1;17642:14;;:18;;;;:::i;:::-;17625:14;:35;;;;17532:136::o:0;7598:184::-;7715:7;7747:11;:18;7759:5;7747:18;;;;;;;;;;;;;;;:27;7766:7;7747:27;;;;;;;;;;;;;;;;7740:34;;7598:184;;;;:::o;2010:244::-;1777:12;:10;:12::i;:::-;1767:22;;:6;;;;;;;;;;:22;;;1759:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2119:1:::1;2099:22;;:8;:22;;::::0;2091:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2209:8;2180:38;;2201:6;::::0;::::1;;;;;;;;2180:38;;;;;;;;;;;;2238:8;2229:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2010:244:::0;:::o;399:98::-;452:7;479:10;472:17;;399:98;:::o;9128:369::-;9272:1;9255:19;;:5;:19;;;9247:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9353:1;9334:21;;:7;:21;;;9326:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9435:6;9405:11;:18;9417:5;9405:18;;;;;;;;;;;;;;;:27;9424:7;9405:27;;;;;;;;;;;;;;;:36;;;;9473:7;9457:32;;9466:5;9457:32;;;9482:6;9457:32;;;;;;:::i;:::-;;;;;;;;9128:369;;;:::o;9505:2330::-;9643:1;9627:18;;:4;:18;;;9619:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9720:1;9706:16;;:2;:16;;;9698:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9790:1;9781:6;:10;9773:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9862:7;:5;:7::i;:::-;9854:15;;:4;:15;;;;:32;;;;;9879:7;:5;:7::i;:::-;9873:13;;:2;:13;;;;9854:32;9850:1259;;;9943:11;;;;;;;;;;;9938:144;;9991:7;:5;:7::i;:::-;9983:15;;:4;:15;;;9975:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9938:144;10116:12;;10106:6;:22;;10098:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10185:4;:10;10190:4;10185:10;;;;;;;;;;;;;;;;;;;;;;;;;10184:11;:24;;;;;10200:4;:8;10205:2;10200:8;;;;;;;;;;;;;;;;;;;;;;;;;10199:9;10184:24;10176:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10274:13;;;;;;;;;;;10268:19;;:2;:19;;;10265:146;;10341:14;;10332:6;10316:13;10326:2;10316:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10308:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10265:146;10427:28;10458:24;10476:4;10458:9;:24::i;:::-;10427:55;;10497:12;10536:19;;10512:20;:43;;10497:58;;10599:12;;10575:20;:36;10572:124;;10668:12;;10645:35;;10572:124;10716:7;:18;;;;;10728:6;;;;;;;;;;10727:7;10716:18;:43;;;;;10746:13;;;;;;;;;;;10738:21;;:4;:21;;;;10716:43;:58;;;;;10763:11;;;;;;;;;;;10716:58;:87;;;;;10779:18;:24;10798:4;10779:24;;;;;;;;;;;;;;;;;;;;;;;;;10778:25;10716:87;:114;;;;;10808:18;:22;10827:2;10808:22;;;;;;;;;;;;;;;;;;;;;;;;;10807:23;10716:114;10712:386;;;10851:38;10868:20;10851:16;:38::i;:::-;10908:26;10937:21;10908:50;;11002:1;10981:18;:22;10977:106;;;11028:35;11041:21;11028:12;:35::i;:::-;10977:106;10832:266;10712:386;9888:1221;;9850:1259;11121:12;11136:4;11121:19;;11185:18;:24;11204:4;11185:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11213:18;:22;11232:2;11213:22;;;;;;;;;;;;;;;;;;;;;;;;;11185:50;11184:102;;;;11249:13;;;;;;;;;;;11241:21;;:4;:21;;;;:44;;;;;11272:13;;;;;;;;;;;11266:19;;:2;:19;;;;11241:44;11184:102;11180:594;;;11313:5;11303:15;;11180:594;;;11396:13;;;;;;;;;;;11388:21;;:4;:21;;;:55;;;;;11427:15;;;;;;;;;;;11413:30;;:2;:30;;;;11388:55;11385:162;;;11476:14;;11464:9;:26;;;;11519:12;;11509:7;:22;;;;11385:162;11606:13;;;;;;;;;;;11600:19;;:2;:19;;;:55;;;;;11639:15;;;;;;;;;;;11623:32;;:4;:32;;;;11600:55;11596:165;;;11688:15;;11676:9;:27;;;;11732:13;;11722:7;:23;;;;11596:165;11180:594;11786:41;11801:4;11807:2;11811:6;11819:7;11786:14;:41::i;:::-;9608:2227;9505:2330;;;:::o;2618:224::-;2738:7;2771:1;2766;:6;;2774:12;2758:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2798:9;2814:1;2810;:5;;;;:::i;:::-;2798:17;;2833:1;2826:8;;;2618:224;;;;;:::o;12334:99::-;12391:17;;;;;;;;;;;:26;;:34;12418:6;12391:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12334:99;:::o;8445:323::-;8540:7;8598;;8587;:18;;8565:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8686:19;8708:10;:8;:10::i;:::-;8686:32;;8736:24;8748:11;8736:7;:11;;:24;;;;:::i;:::-;8729:31;;;8445:323;;;:::o;11843:483::-;6166:4;6157:6;;:13;;;;;;;;;;;;;;;;;;11921:21:::1;11959:1;11945:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11921:40;;11990:4;11972;11977:1;11972:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12016:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12006:4;12011:1;12006:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12049:62;12066:4;12081:15;;;;;;;;;;;12099:11;12049:8;:62::i;:::-;12122:15;;;;;;;;;;;:66;;;12203:11;12229:1;12245:4;12272;12292:15;12122:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11910:416;6202:5:::0;6193:6;;:14;;;;;;;;;;;;;;;;;;11843:483;:::o;13314:282::-;13470:7;13465:28;;13479:14;:12;:14::i;:::-;13465:28;13504:44;13522:6;13530:9;13541:6;13504:17;:44::i;:::-;13564:7;13559:29;;13573:15;:13;:15::i;:::-;13559:29;13314:282;;;;:::o;16275:164::-;16317:7;16338:15;16355;16374:19;:17;:19::i;:::-;16337:56;;;;16411:20;16423:7;16411;:11;;:20;;;;:::i;:::-;16404:27;;;;16275:164;:::o;3104:132::-;3162:7;3189:39;3193:1;3196;3189:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3182:46;;3104:132;;;;:::o;8776:219::-;8836:1;8823:9;;:14;:30;;;;;8852:1;8841:7;;:12;8823:30;8855:7;8819:43;8894:9;;8874:17;:29;;;;8932:7;;8914:15;:25;;;;8964:1;8952:9;:13;;;;8986:1;8976:7;:11;;;;8776:219;:::o;13604:610::-;13751:15;13781:23;13819:12;13846:23;13884:12;13911:13;13938:19;13949:7;13938:10;:19::i;:::-;13736:221;;;;;;;;;;;;13986:28;14006:7;13986;:15;13994:6;13986:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13968:7;:15;13976:6;13968:15;;;;;;;;;;;;;;;:46;;;;14046:39;14069:15;14046:7;:18;14054:9;14046:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14025:7;:18;14033:9;14025:18;;;;;;;;;;;;;;;:60;;;;14096:16;14106:5;14096:9;:16::i;:::-;14123:23;14135:4;14141;14123:11;:23::i;:::-;14179:9;14162:44;;14171:6;14162:44;;;14190:15;14162:44;;;;;;:::i;:::-;;;;;;;;13725:489;;;;;;13604:610;;;:::o;9003:117::-;9059:17;;9047:9;:29;;;;9097:15;;9087:7;:25;;;;9003:117::o;16447:257::-;16498:7;16507;16527:15;16545:7;;16527:25;;16563:15;4912:18;16563:25;;16613:20;4912:18;16613:7;;:11;;:20;;;;:::i;:::-;16603:7;:30;16599:61;;;16643:7;;4912:18;16635:25;;;;;;;;16599:61;16679:7;16688;16671:25;;;;;;16447:257;;;:::o;3244:223::-;3364:7;3396:1;3392;:5;3399:12;3384:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3423:9;3439:1;3435;:5;;;;:::i;:::-;3423:17;;3458:1;3451:8;;;3244:223;;;;;:::o;14633:615::-;14733:7;14755;14777;14799;14821;14843;14879:23;14904:12;14918:13;14948:40;14960:7;14969:9;;14980:7;;14948:11;:40::i;:::-;14878:110;;;;;;14999:19;15021:10;:8;:10::i;:::-;14999:32;;15043:15;15060:23;15085:12;15114:46;15126:7;15135:4;15141:5;15148:11;15114;:46::i;:::-;15042:118;;;;;;15179:7;15188:15;15205:4;15211:15;15228:4;15234:5;15171:69;;;;;;;;;;;;;;;;;;;14633:615;;;;;;;:::o;2474:136::-;2532:7;2559:43;2563:1;2566;2559:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2552:50;;2474:136;;;;:::o;2287:179::-;2345:7;2365:9;2381:1;2377;:5;;;;:::i;:::-;2365:17;;2406:1;2401;:6;;2393:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2457:1;2450:8;;;2287:179;;;;:::o;14222:211::-;14275:19;14297:10;:8;:10::i;:::-;14275:32;;14318:13;14334:22;14344:11;14334:5;:9;;:22;;;;:::i;:::-;14318:38;;14392:33;14419:5;14392:7;:22;14408:4;14392:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14367:7;:22;14383:4;14367:22;;;;;;;;;;;;;;;:58;;;;14264:169;;14222:211;:::o;14441:147::-;14519:17;14531:4;14519:7;;:11;;:17;;;;:::i;:::-;14509:7;:27;;;;14560:20;14575:4;14560:10;;:14;;:20;;;;:::i;:::-;14547:10;:33;;;;14441:147;;:::o;15256:469::-;15425:7;15447;15469;15504:12;15519:30;15545:3;15519:21;15531:8;15519:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15504:45;;15560:13;15576:28;15600:3;15576:19;15588:6;15576:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15560:44;;15615:23;15641:28;15663:5;15641:17;15653:4;15641:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15615:54;;15688:15;15705:4;15711:5;15680:37;;;;;;;;;15256:469;;;;;;;:::o;15733:534::-;15927:7;15949;15971;16006:15;16024:24;16036:11;16024:7;:11;;:24;;;;:::i;:::-;16006:42;;16059:12;16074:21;16083:11;16074:4;:8;;:21;;;;:::i;:::-;16059:36;;16106:13;16122:22;16132:11;16122:5;:9;;:22;;;;:::i;:::-;16106:38;;16155:23;16181:28;16203:5;16181:17;16193:4;16181:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16155:54;;16228:7;16237:15;16254:4;16220:39;;;;;;;;;;15733:534;;;;;;;;:::o;2850:246::-;2908:7;2937:1;2932;:6;2928:47;;2962:1;2955:8;;;;2928:47;2985:9;3001:1;2997;:5;;;;:::i;:::-;2985:17;;3030:1;3025;3021;:5;;;;:::i;:::-;:10;3013:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3087:1;3080:8;;;2850: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:246::-;4152:1;4162:113;4176:6;4173:1;4170:13;4162:113;;;4261:1;4256:3;4252:11;4246:18;4242:1;4237:3;4233:11;4226:39;4198:2;4195:1;4191:10;4186:15;;4162:113;;;4309:1;4300:6;4295:3;4291:16;4284:27;4133:184;4071:246;;;:::o;4323:377::-;4411:3;4439:39;4472:5;4439:39;:::i;:::-;4494:71;4558:6;4553:3;4494:71;:::i;:::-;4487:78;;4574:65;4632:6;4627:3;4620:4;4613:5;4609:16;4574:65;:::i;:::-;4664:29;4686:6;4664:29;:::i;:::-;4659:3;4655:39;4648:46;;4415:285;4323:377;;;;:::o;4706:313::-;4819:4;4857:2;4846:9;4842:18;4834:26;;4906:9;4900:4;4896:20;4892:1;4881:9;4877:17;4870:47;4934:78;5007:4;4998:6;4934:78;:::i;:::-;4926:86;;4706:313;;;;:::o;5025:77::-;5062:7;5091:5;5080:16;;5025:77;;;:::o;5108:122::-;5181:24;5199:5;5181:24;:::i;:::-;5174:5;5171:35;5161:63;;5220:1;5217;5210:12;5161:63;5108:122;:::o;5236:139::-;5282:5;5320:6;5307:20;5298:29;;5336:33;5363:5;5336:33;:::i;:::-;5236:139;;;;:::o;5381:474::-;5449:6;5457;5506:2;5494:9;5485:7;5481:23;5477:32;5474:119;;;5512:79;;:::i;:::-;5474:119;5632:1;5657:53;5702:7;5693:6;5682:9;5678:22;5657:53;:::i;:::-;5647:63;;5603:117;5759:2;5785:53;5830:7;5821:6;5810:9;5806:22;5785:53;:::i;:::-;5775:63;;5730:118;5381:474;;;;;:::o;5861:90::-;5895:7;5938:5;5931:13;5924:21;5913:32;;5861:90;;;:::o;5957:109::-;6038:21;6053:5;6038:21;:::i;:::-;6033:3;6026:34;5957:109;;:::o;6072:210::-;6159:4;6197:2;6186:9;6182:18;6174:26;;6210:65;6272:1;6261:9;6257:17;6248:6;6210:65;:::i;:::-;6072:210;;;;:::o;6288:60::-;6316:3;6337:5;6330:12;;6288:60;;;:::o;6354:142::-;6404:9;6437:53;6455:34;6464:24;6482:5;6464:24;:::i;:::-;6455:34;:::i;:::-;6437:53;:::i;:::-;6424:66;;6354:142;;;:::o;6502:126::-;6552:9;6585:37;6616:5;6585:37;:::i;:::-;6572:50;;6502:126;;;:::o;6634:152::-;6710:9;6743:37;6774:5;6743:37;:::i;:::-;6730:50;;6634:152;;;:::o;6792:183::-;6905:63;6962:5;6905:63;:::i;:::-;6900:3;6893:76;6792:183;;:::o;6981:274::-;7100:4;7138:2;7127:9;7123:18;7115:26;;7151:97;7245:1;7234:9;7230:17;7221:6;7151:97;:::i;:::-;6981:274;;;;:::o;7261:118::-;7348:24;7366:5;7348:24;:::i;:::-;7343:3;7336:37;7261:118;;:::o;7385:222::-;7478:4;7516:2;7505:9;7501:18;7493:26;;7529:71;7597:1;7586:9;7582:17;7573:6;7529:71;:::i;:::-;7385:222;;;;:::o;7613:619::-;7690:6;7698;7706;7755:2;7743:9;7734:7;7730:23;7726:32;7723:119;;;7761:79;;:::i;:::-;7723:119;7881:1;7906:53;7951:7;7942:6;7931:9;7927:22;7906:53;:::i;:::-;7896:63;;7852:117;8008:2;8034:53;8079:7;8070:6;8059:9;8055:22;8034:53;:::i;:::-;8024:63;;7979:118;8136:2;8162:53;8207:7;8198:6;8187:9;8183:22;8162:53;:::i;:::-;8152:63;;8107:118;7613:619;;;;;:::o;8238:86::-;8273:7;8313:4;8306:5;8302:16;8291:27;;8238:86;;;:::o;8330:112::-;8413:22;8429:5;8413:22;:::i;:::-;8408:3;8401:35;8330:112;;:::o;8448:214::-;8537:4;8575:2;8564:9;8560:18;8552:26;;8588:67;8652:1;8641:9;8637:17;8628:6;8588:67;:::i;:::-;8448:214;;;;:::o;8668:118::-;8755:24;8773:5;8755:24;:::i;:::-;8750:3;8743:37;8668:118;;:::o;8792:222::-;8885:4;8923:2;8912:9;8908:18;8900:26;;8936:71;9004:1;8993:9;8989:17;8980:6;8936:71;:::i;:::-;8792:222;;;;:::o;9020:329::-;9079:6;9128:2;9116:9;9107:7;9103:23;9099:32;9096:119;;;9134:79;;:::i;:::-;9096:119;9254:1;9279:53;9324:7;9315:6;9304:9;9300:22;9279:53;:::i;:::-;9269:63;;9225:117;9020:329;;;;:::o;9355:116::-;9425:21;9440:5;9425:21;:::i;:::-;9418:5;9415:32;9405:60;;9461:1;9458;9451:12;9405:60;9355:116;:::o;9477:133::-;9520:5;9558:6;9545:20;9536:29;;9574:30;9598:5;9574:30;:::i;:::-;9477:133;;;;:::o;9616:323::-;9672:6;9721:2;9709:9;9700:7;9696:23;9692:32;9689:119;;;9727:79;;:::i;:::-;9689:119;9847:1;9872:50;9914:7;9905:6;9894:9;9890:22;9872:50;:::i;:::-;9862:60;;9818:114;9616:323;;;;:::o;9945:329::-;10004:6;10053:2;10041:9;10032:7;10028:23;10024:32;10021:119;;;10059:79;;:::i;:::-;10021:119;10179:1;10204:53;10249:7;10240:6;10229:9;10225:22;10204:53;:::i;:::-;10194:63;;10150:117;9945:329;;;;:::o;10280:765::-;10366:6;10374;10382;10390;10439:3;10427:9;10418:7;10414:23;10410:33;10407:120;;;10446:79;;:::i;:::-;10407:120;10566:1;10591:53;10636:7;10627:6;10616:9;10612:22;10591:53;:::i;:::-;10581:63;;10537:117;10693:2;10719:53;10764:7;10755:6;10744:9;10740:22;10719:53;:::i;:::-;10709:63;;10664:118;10821:2;10847:53;10892:7;10883:6;10872:9;10868:22;10847:53;:::i;:::-;10837:63;;10792:118;10949:2;10975:53;11020:7;11011:6;11000:9;10996:22;10975:53;:::i;:::-;10965:63;;10920:118;10280:765;;;;;;;:::o;11051:117::-;11160:1;11157;11150:12;11191:568;11264:8;11274:6;11324:3;11317:4;11309:6;11305:17;11301:27;11291:122;;11332:79;;:::i;:::-;11291:122;11445:6;11432:20;11422:30;;11475:18;11467:6;11464:30;11461:117;;;11497:79;;:::i;:::-;11461:117;11611:4;11603:6;11599:17;11587:29;;11665:3;11657:4;11649:6;11645:17;11635:8;11631:32;11628:41;11625:128;;;11672:79;;:::i;:::-;11625:128;11191:568;;;;;:::o;11765:698::-;11857:6;11865;11873;11922:2;11910:9;11901:7;11897:23;11893:32;11890:119;;;11928:79;;:::i;:::-;11890:119;12076:1;12065:9;12061:17;12048:31;12106:18;12098:6;12095:30;12092:117;;;12128:79;;:::i;:::-;12092:117;12241:80;12313:7;12304:6;12293:9;12289:22;12241:80;:::i;:::-;12223:98;;;;12019:312;12370:2;12396:50;12438:7;12429:6;12418:9;12414:22;12396:50;:::i;:::-;12386:60;;12341:115;11765:698;;;;;:::o;12469:474::-;12537:6;12545;12594:2;12582:9;12573:7;12569:23;12565:32;12562:119;;;12600:79;;:::i;:::-;12562:119;12720:1;12745:53;12790:7;12781:6;12770:9;12766:22;12745:53;:::i;:::-;12735:63;;12691:117;12847:2;12873:53;12918:7;12909:6;12898:9;12894:22;12873:53;:::i;:::-;12863:63;;12818:118;12469:474;;;;;:::o;12949:182::-;13089:34;13085:1;13077:6;13073:14;13066:58;12949:182;:::o;13137:366::-;13279:3;13300:67;13364:2;13359:3;13300:67;:::i;:::-;13293:74;;13376:93;13465:3;13376:93;:::i;:::-;13494:2;13489:3;13485:12;13478:19;;13137:366;;;:::o;13509:419::-;13675:4;13713:2;13702:9;13698:18;13690:26;;13762:9;13756:4;13752:20;13748:1;13737:9;13733:17;13726:47;13790:131;13916:4;13790:131;:::i;:::-;13782:139;;13509:419;;;:::o;13934:180::-;13982:77;13979:1;13972:88;14079:4;14076:1;14069:15;14103:4;14100:1;14093:15;14120:180;14168:77;14165:1;14158:88;14265:4;14262:1;14255:15;14289:4;14286:1;14279:15;14306:233;14345:3;14368:24;14386:5;14368:24;:::i;:::-;14359:33;;14414:66;14407:5;14404:77;14401:103;;14484:18;;:::i;:::-;14401:103;14531:1;14524:5;14520:13;14513:20;;14306:233;;;:::o;14545:410::-;14585:7;14608:20;14626:1;14608:20;:::i;:::-;14603:25;;14642:20;14660:1;14642:20;:::i;:::-;14637:25;;14697:1;14694;14690:9;14719:30;14737:11;14719:30;:::i;:::-;14708:41;;14898:1;14889:7;14885:15;14882:1;14879:22;14859:1;14852:9;14832:83;14809:139;;14928:18;;:::i;:::-;14809:139;14593:362;14545:410;;;;:::o;14961:225::-;15101:34;15097:1;15089:6;15085:14;15078:58;15170:8;15165:2;15157:6;15153:15;15146:33;14961:225;:::o;15192:366::-;15334:3;15355:67;15419:2;15414:3;15355:67;:::i;:::-;15348:74;;15431:93;15520:3;15431:93;:::i;:::-;15549:2;15544:3;15540:12;15533:19;;15192:366;;;:::o;15564:419::-;15730:4;15768:2;15757:9;15753:18;15745:26;;15817:9;15811:4;15807:20;15803:1;15792:9;15788:17;15781:47;15845:131;15971:4;15845:131;:::i;:::-;15837:139;;15564:419;;;:::o;15989:223::-;16129:34;16125:1;16117:6;16113:14;16106:58;16198:6;16193:2;16185:6;16181:15;16174:31;15989:223;:::o;16218:366::-;16360:3;16381:67;16445:2;16440:3;16381:67;:::i;:::-;16374:74;;16457:93;16546:3;16457:93;:::i;:::-;16575:2;16570:3;16566:12;16559:19;;16218:366;;;:::o;16590:419::-;16756:4;16794:2;16783:9;16779:18;16771:26;;16843:9;16837:4;16833:20;16829:1;16818:9;16814:17;16807:47;16871:131;16997:4;16871:131;:::i;:::-;16863:139;;16590:419;;;:::o;17015:221::-;17155:34;17151:1;17143:6;17139:14;17132:58;17224:4;17219:2;17211:6;17207:15;17200:29;17015:221;:::o;17242:366::-;17384:3;17405:67;17469:2;17464:3;17405:67;:::i;:::-;17398:74;;17481:93;17570:3;17481:93;:::i;:::-;17599:2;17594:3;17590:12;17583:19;;17242:366;;;:::o;17614:419::-;17780:4;17818:2;17807:9;17803:18;17795:26;;17867:9;17861:4;17857:20;17853:1;17842:9;17838:17;17831:47;17895:131;18021:4;17895:131;:::i;:::-;17887:139;;17614:419;;;:::o;18039:224::-;18179:34;18175:1;18167:6;18163:14;18156:58;18248:7;18243:2;18235:6;18231:15;18224:32;18039:224;:::o;18269:366::-;18411:3;18432:67;18496:2;18491:3;18432:67;:::i;:::-;18425:74;;18508:93;18597:3;18508:93;:::i;:::-;18626:2;18621:3;18617:12;18610:19;;18269:366;;;:::o;18641:419::-;18807:4;18845:2;18834:9;18830:18;18822:26;;18894:9;18888:4;18884:20;18880:1;18869:9;18865:17;18858:47;18922:131;19048:4;18922:131;:::i;:::-;18914:139;;18641:419;;;:::o;19066:222::-;19206:34;19202:1;19194:6;19190:14;19183:58;19275:5;19270:2;19262:6;19258:15;19251:30;19066:222;:::o;19294:366::-;19436:3;19457:67;19521:2;19516:3;19457:67;:::i;:::-;19450:74;;19533:93;19622:3;19533:93;:::i;:::-;19651:2;19646:3;19642:12;19635:19;;19294:366;;;:::o;19666:419::-;19832:4;19870:2;19859:9;19855:18;19847:26;;19919:9;19913:4;19909:20;19905:1;19894:9;19890:17;19883:47;19947:131;20073:4;19947:131;:::i;:::-;19939:139;;19666:419;;;:::o;20091:228::-;20231:34;20227:1;20219:6;20215:14;20208:58;20300:11;20295:2;20287:6;20283:15;20276:36;20091:228;:::o;20325:366::-;20467:3;20488:67;20552:2;20547:3;20488:67;:::i;:::-;20481:74;;20564:93;20653:3;20564:93;:::i;:::-;20682:2;20677:3;20673:12;20666:19;;20325:366;;;:::o;20697:419::-;20863:4;20901:2;20890:9;20886:18;20878:26;;20950:9;20944:4;20940:20;20936:1;20925:9;20921:17;20914:47;20978:131;21104:4;20978:131;:::i;:::-;20970:139;;20697:419;;;:::o;21122:250::-;21262:34;21258:1;21250:6;21246:14;21239:58;21331:33;21326:2;21318:6;21314:15;21307:58;21122:250;:::o;21378:366::-;21520:3;21541:67;21605:2;21600:3;21541:67;:::i;:::-;21534:74;;21617:93;21706:3;21617:93;:::i;:::-;21735:2;21730:3;21726:12;21719:19;;21378:366;;;:::o;21750:419::-;21916:4;21954:2;21943:9;21939:18;21931:26;;22003:9;21997:4;21993:20;21989:1;21978:9;21974:17;21967:47;22031:131;22157:4;22031:131;:::i;:::-;22023:139;;21750:419;;;:::o;22175:178::-;22315:30;22311:1;22303:6;22299:14;22292:54;22175:178;:::o;22359:366::-;22501:3;22522:67;22586:2;22581:3;22522:67;:::i;:::-;22515:74;;22598:93;22687:3;22598:93;:::i;:::-;22716:2;22711:3;22707:12;22700:19;;22359:366;;;:::o;22731:419::-;22897:4;22935:2;22924:9;22920:18;22912:26;;22984:9;22978:4;22974:20;22970:1;22959:9;22955:17;22948:47;23012:131;23138:4;23012:131;:::i;:::-;23004:139;;22731:419;;;:::o;23156:222::-;23296:34;23292:1;23284:6;23280:14;23273:58;23365:5;23360:2;23352:6;23348:15;23341:30;23156:222;:::o;23384:366::-;23526:3;23547:67;23611:2;23606:3;23547:67;:::i;:::-;23540:74;;23623:93;23712:3;23623:93;:::i;:::-;23741:2;23736:3;23732:12;23725:19;;23384:366;;;:::o;23756:419::-;23922:4;23960:2;23949:9;23945:18;23937:26;;24009:9;24003:4;23999:20;23995:1;23984:9;23980:17;23973:47;24037:131;24163:4;24037:131;:::i;:::-;24029:139;;23756:419;;;:::o;24181:191::-;24221:3;24240:20;24258:1;24240:20;:::i;:::-;24235:25;;24274:20;24292:1;24274:20;:::i;:::-;24269:25;;24317:1;24314;24310:9;24303:16;;24338:3;24335:1;24332:10;24329:36;;;24345:18;;:::i;:::-;24329:36;24181:191;;;;:::o;24378:222::-;24518:34;24514:1;24506:6;24502:14;24495:58;24587:5;24582:2;24574:6;24570:15;24563:30;24378:222;:::o;24606:366::-;24748:3;24769:67;24833:2;24828:3;24769:67;:::i;:::-;24762:74;;24845:93;24934:3;24845:93;:::i;:::-;24963:2;24958:3;24954:12;24947:19;;24606:366;;;:::o;24978:419::-;25144:4;25182:2;25171:9;25167:18;25159:26;;25231:9;25225:4;25221:20;25217:1;25206:9;25202:17;25195:47;25259:131;25385:4;25259:131;:::i;:::-;25251:139;;24978:419;;;:::o;25403:194::-;25443:4;25463:20;25481:1;25463:20;:::i;:::-;25458:25;;25497:20;25515:1;25497:20;:::i;:::-;25492:25;;25541:1;25538;25534:9;25526:17;;25565:1;25559:4;25556:11;25553:37;;;25570:18;;:::i;:::-;25553:37;25403:194;;;;:::o;25603:229::-;25743:34;25739:1;25731:6;25727:14;25720:58;25812:12;25807:2;25799:6;25795:15;25788:37;25603:229;:::o;25838:366::-;25980:3;26001:67;26065:2;26060:3;26001:67;:::i;:::-;25994:74;;26077:93;26166:3;26077:93;:::i;:::-;26195:2;26190:3;26186:12;26179:19;;25838:366;;;:::o;26210:419::-;26376:4;26414:2;26403:9;26399:18;26391:26;;26463:9;26457:4;26453:20;26449:1;26438:9;26434:17;26427:47;26491:131;26617:4;26491:131;:::i;:::-;26483:139;;26210:419;;;:::o;26635:143::-;26692:5;26723:6;26717:13;26708:22;;26739:33;26766:5;26739:33;:::i;:::-;26635:143;;;;:::o;26784:351::-;26854:6;26903:2;26891:9;26882:7;26878:23;26874:32;26871:119;;;26909:79;;:::i;:::-;26871:119;27029:1;27054:64;27110:7;27101:6;27090:9;27086:22;27054:64;:::i;:::-;27044:74;;27000:128;26784:351;;;;:::o;27141:85::-;27186:7;27215:5;27204:16;;27141:85;;;:::o;27232:158::-;27290:9;27323:61;27341:42;27350:32;27376:5;27350:32;:::i;:::-;27341:42;:::i;:::-;27323:61;:::i;:::-;27310:74;;27232:158;;;:::o;27396:147::-;27491:45;27530:5;27491:45;:::i;:::-;27486:3;27479:58;27396:147;;:::o;27549:114::-;27616:6;27650:5;27644:12;27634:22;;27549:114;;;:::o;27669:184::-;27768:11;27802:6;27797:3;27790:19;27842:4;27837:3;27833:14;27818:29;;27669:184;;;;:::o;27859:132::-;27926:4;27949:3;27941:11;;27979:4;27974:3;27970:14;27962:22;;27859:132;;;:::o;27997:108::-;28074:24;28092:5;28074:24;:::i;:::-;28069:3;28062:37;27997:108;;:::o;28111:179::-;28180:10;28201:46;28243:3;28235:6;28201:46;:::i;:::-;28279:4;28274:3;28270:14;28256:28;;28111:179;;;;:::o;28296:113::-;28366:4;28398;28393:3;28389:14;28381:22;;28296:113;;;:::o;28445:732::-;28564:3;28593:54;28641:5;28593:54;:::i;:::-;28663:86;28742:6;28737:3;28663:86;:::i;:::-;28656:93;;28773:56;28823:5;28773:56;:::i;:::-;28852:7;28883:1;28868:284;28893:6;28890:1;28887:13;28868:284;;;28969:6;28963:13;28996:63;29055:3;29040:13;28996:63;:::i;:::-;28989:70;;29082:60;29135:6;29082:60;:::i;:::-;29072:70;;28928:224;28915:1;28912;28908:9;28903:14;;28868:284;;;28872:14;29168:3;29161:10;;28569:608;;;28445:732;;;;:::o;29183:831::-;29446:4;29484:3;29473:9;29469:19;29461:27;;29498:71;29566:1;29555:9;29551:17;29542:6;29498:71;:::i;:::-;29579:80;29655:2;29644:9;29640:18;29631:6;29579:80;:::i;:::-;29706:9;29700:4;29696:20;29691:2;29680:9;29676:18;29669:48;29734:108;29837:4;29828:6;29734:108;:::i;:::-;29726:116;;29852:72;29920:2;29909:9;29905:18;29896:6;29852:72;:::i;:::-;29934:73;30002:3;29991:9;29987:19;29978:6;29934:73;:::i;:::-;29183:831;;;;;;;;:::o;30020:180::-;30068:77;30065:1;30058:88;30165:4;30162:1;30155:15;30189:4;30186:1;30179:15;30206:185;30246:1;30263:20;30281:1;30263:20;:::i;:::-;30258:25;;30297:20;30315:1;30297:20;:::i;:::-;30292:25;;30336:1;30326:35;;30341:18;;:::i;:::-;30326:35;30383:1;30380;30376:9;30371:14;;30206:185;;;;:::o;30397:177::-;30537:29;30533:1;30525:6;30521:14;30514:53;30397:177;:::o;30580:366::-;30722:3;30743:67;30807:2;30802:3;30743:67;:::i;:::-;30736:74;;30819:93;30908:3;30819:93;:::i;:::-;30937:2;30932:3;30928:12;30921:19;;30580:366;;;:::o;30952:419::-;31118:4;31156:2;31145:9;31141:18;31133:26;;31205:9;31199:4;31195:20;31191:1;31180:9;31176:17;31169:47;31233:131;31359:4;31233:131;:::i;:::-;31225:139;;30952:419;;;:::o;31377:220::-;31517:34;31513:1;31505:6;31501:14;31494:58;31586:3;31581:2;31573:6;31569:15;31562:28;31377:220;:::o;31603:366::-;31745:3;31766:67;31830:2;31825:3;31766:67;:::i;:::-;31759:74;;31842:93;31931:3;31842:93;:::i;:::-;31960:2;31955:3;31951:12;31944:19;;31603:366;;;:::o;31975:419::-;32141:4;32179:2;32168:9;32164:18;32156:26;;32228:9;32222:4;32218:20;32214:1;32203:9;32199:17;32192:47;32256:131;32382:4;32256:131;:::i;:::-;32248:139;;31975:419;;;:::o

Swarm Source

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