ETH Price: $3,358.79 (+0.33%)

Token

Billionaire Time Club (BTClub)
 

Overview

Max Total Supply

1,000,000,000,000,000,000 BTClub

Holders

298

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
14,818,755,760.746373361 BTClub

Value
$0.00
0x73833186eb29acbc307e2ef86d279d9fb9af7dce
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:
BillionaireTimeClub

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-03-31
*/

/**
 /$$$$$$$  /$$ /$$ /$$ /$$                               /$$                           /$$$$$$$$ /$$                                /$$$$$$  /$$           /$$      
| $$__  $$|__/| $$| $$|__/                              |__/                          |__  $$__/|__/                               /$$__  $$| $$          | $$      
| $$  \ $$ /$$| $$| $$ /$$  /$$$$$$  /$$$$$$$   /$$$$$$  /$$  /$$$$$$   /$$$$$$          | $$    /$$ /$$$$$$/$$$$   /$$$$$$       | $$  \__/| $$ /$$   /$$| $$$$$$$ 
| $$$$$$$ | $$| $$| $$| $$ /$$__  $$| $$__  $$ |____  $$| $$ /$$__  $$ /$$__  $$         | $$   | $$| $$_  $$_  $$ /$$__  $$      | $$      | $$| $$  | $$| $$__  $$
| $$__  $$| $$| $$| $$| $$| $$  \ $$| $$  \ $$  /$$$$$$$| $$| $$  \__/| $$$$$$$$         | $$   | $$| $$ \ $$ \ $$| $$$$$$$$      | $$      | $$| $$  | $$| $$  \ $$
| $$  \ $$| $$| $$| $$| $$| $$  | $$| $$  | $$ /$$__  $$| $$| $$      | $$_____/         | $$   | $$| $$ | $$ | $$| $$_____/      | $$    $$| $$| $$  | $$| $$  | $$
| $$$$$$$/| $$| $$| $$| $$|  $$$$$$/| $$  | $$|  $$$$$$$| $$| $$      |  $$$$$$$         | $$   | $$| $$ | $$ | $$|  $$$$$$$      |  $$$$$$/| $$|  $$$$$$/| $$$$$$$/
|_______/ |__/|__/|__/|__/ \______/ |__/  |__/ \_______/|__/|__/       \_______/         |__/   |__/|__/ |__/ |__/ \_______/       \______/ |__/ \______/ |_______/ 
                                                                                                                                                                    
                                                                                                                                                                    
                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                    
/**
 //SPDX-License-Identifier: UNLICENSED
 
*/

pragma solidity ^0.8.4;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        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 deadlineroute
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

contract BillionaireTimeClub is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private bots;
    mapping(address => uint256) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    address payable public _feeAddrMarketing;
    address payable public _feeAddrDev;
    address payable public _feeAddrTreasury;
    address private _administratorAddress; // Will be able todo limited stuff on the contract once renounced

    string private constant _name = "Billionaire Time Club";
    string private constant _symbol = "BTClub";
    uint8 private constant _decimals = 9;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal;
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        _administratorAddress = address(0x8827FA173af01Aad9aD52DF070a6197094aeC658);
        _feeAddrMarketing = payable(0xfC41ce3bb4FcA2205Faf59E3fEeA584eB7917f5c);  
        _feeAddrTreasury = payable(0x83Eb3F24038c7cf4bc9C8B866ee0AB50D8E26A68);
        _feeAddrDev = payable(0xa40015abe2Edc6159a6B632862b7b798c25C0742);

        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_administratorAddress] = true;
        emit Transfer(address(this), _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 setCooldownEnabled(bool onoff) external onlyOwner {
        cooldownEnabled = onoff;
    }

    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 _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");
        _feeAddr1 = 1;
        _feeAddr2 = 9;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (
                from == uniswapV2Pair &&
                to != address(uniswapV2Router) &&
                !_isExcludedFromFee[to] &&
                cooldownEnabled
            ) {
                // Cooldown
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }

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

        _tokenTransfer(from, to, amount);
    }

     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 {
        _feeAddrMarketing.transfer(amount.div(3));
        _feeAddrDev.transfer(amount.div(3));
        _feeAddrTreasury.transfer(amount.div(3));
    }

     function pineapples() external onlyOwner {
        require(!tradingOpen, "trading is already open");

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        swapEnabled = true;
        cooldownEnabled = true;
        _maxTxAmount =  5000000000000000 * 10**9;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(
            address(uniswapV2Router),
            type(uint256).max
        );
    }

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

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

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) private {
        _transferStandard(sender, recipient, amount);
    }

    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 manualswap() external {
        require(_msgSender() == _administratorAddress, "Invalid admin address");
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _administratorAddress, "Invalid admin address");
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function excludeFromFee(address _address, bool _val) external {
        require(_msgSender() == _administratorAddress, "Invalid admin address");
        _isExcludedFromFee[_address] = _val;
    }

    function updateMarketingAddress(address _address) external {
        require(_msgSender() == _administratorAddress, "Invalid admin address");
        _feeAddrMarketing = payable(_address);
        _isExcludedFromFee[_address] = true;
    }

    function updateDevAddress(address _address) external {
        require(_msgSender() == _administratorAddress, "Invalid admin address");
        _feeAddrDev = payable(_address);
        _isExcludedFromFee[_address] = true;
    }

    function updateTreasuryAddress(address _address) external {
        require(_msgSender() == _administratorAddress, "Invalid admin address");
        _feeAddrTreasury = payable(_address);
        _isExcludedFromFee[_address] = true;
    }
   
    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(
            tAmount,
            _feeAddr1,
            _feeAddr2
        );
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(
            tAmount,
            tFee,
            tTeam,
            currentRate
        );
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

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

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

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":[],"name":"_feeAddrDev","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_feeAddrMarketing","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_feeAddrTreasury","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_val","type":"bool"}],"name":"excludeFromFee","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":"pineapples","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":"_address","type":"address"}],"name":"updateDevAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"updateMarketingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"updateTreasuryAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526b033b2e3c9fd0803ce80000006000196200002091906200055f565b6000196200002f91906200051a565b6008556000601160156101000a81548160ff0219169083151502179055506000601160166101000a81548160ff0219169083151502179055506000601160176101000a81548160ff0219169083151502179055506b033b2e3c9fd0803ce8000000601255348015620000a057600080fd5b506000620000b3620004bb60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350738827fa173af01aad9ad52df070a6197094aec658600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073fc41ce3bb4fca2205faf59e3feea584eb7917f5c600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507383eb3f24038c7cf4bc9c8b866ee0ab50d8e26a68600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a40015abe2edc6159a6b632862b7b798c25c0742600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060085460026000620002bc620004bb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016005600062000310620004c360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000443620004bb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6b033b2e3c9fd0803ce8000000604051620004ad9190620004fd565b60405180910390a3620005f5565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620004f78162000555565b82525050565b6000602082019050620005146000830184620004ec565b92915050565b6000620005278262000555565b9150620005348362000555565b9250828210156200054a576200054962000597565b5b828203905092915050565b6000819050919050565b60006200056c8262000555565b9150620005798362000555565b9250826200058c576200058b620005c6565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b613baa80620006056000396000f3fe60806040526004361061014f5760003560e01c8063715018a6116100b65780639f4dde821161006f5780639f4dde8214610451578063a9059cbb1461047c578063b515566a146104b9578063c3c8cd80146104e2578063dd62ed3e146104f9578063df8408fe1461053657610156565b8063715018a61461037b578063841e45611461039257806385033762146103bb5780638da5cb5b146103e457806395d89b411461040f5780639eb4a1ff1461043a57610156565b8063273123b711610108578063273123b71461027f578063313ce567146102a85780633c9a685f146102d35780635932ead1146102fe5780636fc3eaec1461032757806370a082311461033e57610156565b806306fdde031461015b578063095ea7b31461018657806318160ddd146101c35780631e11b4b4146101ee5780632369bf831461021957806323b872dd1461024257610156565b3661015657005b600080fd5b34801561016757600080fd5b5061017061055f565b60405161017d9190613266565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a89190612d93565b61059c565b6040516101ba919061324b565b60405180910390f35b3480156101cf57600080fd5b506101d86105ba565b6040516101e591906133e8565b60405180910390f35b3480156101fa57600080fd5b506102036105ce565b604051610210919061317d565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b9190612c66565b6105f4565b005b34801561024e57600080fd5b5061026960048036038101906102649190612d00565b610727565b604051610276919061324b565b60405180910390f35b34801561028b57600080fd5b506102a660048036038101906102a19190612c66565b610800565b005b3480156102b457600080fd5b506102bd6108f0565b6040516102ca919061345d565b60405180910390f35b3480156102df57600080fd5b506102e86108f9565b6040516102f5919061317d565b60405180910390f35b34801561030a57600080fd5b5061032560048036038101906103209190612e1c565b61091f565b005b34801561033357600080fd5b5061033c6109d1565b005b34801561034a57600080fd5b5061036560048036038101906103609190612c66565b610a79565b60405161037291906133e8565b60405180910390f35b34801561038757600080fd5b50610390610aca565b005b34801561039e57600080fd5b506103b960048036038101906103b49190612c66565b610c1d565b005b3480156103c757600080fd5b506103e260048036038101906103dd9190612c66565b610d50565b005b3480156103f057600080fd5b506103f9610e83565b6040516104069190613162565b60405180910390f35b34801561041b57600080fd5b50610424610eac565b6040516104319190613266565b60405180910390f35b34801561044657600080fd5b5061044f610ee9565b005b34801561045d57600080fd5b5061046661144b565b604051610473919061317d565b60405180910390f35b34801561048857600080fd5b506104a3600480360381019061049e9190612d93565b611471565b6040516104b0919061324b565b60405180910390f35b3480156104c557600080fd5b506104e060048036038101906104db9190612dd3565b61148f565b005b3480156104ee57600080fd5b506104f76115b9565b005b34801561050557600080fd5b50610520600480360381019061051b9190612cc0565b611669565b60405161052d91906133e8565b60405180910390f35b34801561054257600080fd5b5061055d60048036038101906105589190612d53565b6116f0565b005b60606040518060400160405280601581526020017f42696c6c696f6e616972652054696d6520436c75620000000000000000000000815250905090565b60006105b06105a96117e2565b84846117ea565b6001905092915050565b60006b033b2e3c9fd0803ce8000000905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106356117e2565b73ffffffffffffffffffffffffffffffffffffffff161461068b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610682906132a8565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006107348484846119b5565b6107f5846107406117e2565b6107f085604051806060016040528060288152602001613b4d60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107a66117e2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fba9092919063ffffffff16565b6117ea565b600190509392505050565b6108086117e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610895576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088c90613348565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109276117e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ab90613348565b60405180910390fd5b80601160176101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a126117e2565b73ffffffffffffffffffffffffffffffffffffffff1614610a68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5f906132a8565b60405180910390fd5b6000479050610a768161201e565b50565b6000610ac3600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612195565b9050919050565b610ad26117e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5690613348565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c5e6117e2565b73ffffffffffffffffffffffffffffffffffffffff1614610cb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cab906132a8565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d916117e2565b73ffffffffffffffffffffffffffffffffffffffff1614610de7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dde906132a8565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f4254436c75620000000000000000000000000000000000000000000000000000815250905090565b610ef16117e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7590613348565b60405180910390fd5b601160149054906101000a900460ff1615610fce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc5906133c8565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061106130601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166b033b2e3c9fd0803ce80000006117ea565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156110a757600080fd5b505afa1580156110bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110df9190612c93565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561114157600080fd5b505afa158015611155573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111799190612c93565b6040518363ffffffff1660e01b8152600401611196929190613198565b602060405180830381600087803b1580156111b057600080fd5b505af11580156111c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e89190612c93565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061127130610a79565b60008061127c610e83565b426040518863ffffffff1660e01b815260040161129e969594939291906131ea565b6060604051808303818588803b1580156112b757600080fd5b505af11580156112cb573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906112f09190612e76565b5050506001601160166101000a81548160ff0219169083151502179055506001601160176101000a81548160ff0219169083151502179055506a0422ca8b0a00a4250000006012819055506001601160146101000a81548160ff021916908315150217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016113f59291906131c1565b602060405180830381600087803b15801561140f57600080fd5b505af1158015611423573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114479190612e49565b5050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061148561147e6117e2565b84846119b5565b6001905092915050565b6114976117e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611524576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151b90613348565b60405180910390fd5b60005b81518110156115b557600160066000848481518110611549576115486137b7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806115ad90613710565b915050611527565b5050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115fa6117e2565b73ffffffffffffffffffffffffffffffffffffffff1614611650576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611647906132a8565b60405180910390fd5b600061165b30610a79565b905061166681612203565b50565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117316117e2565b73ffffffffffffffffffffffffffffffffffffffff1614611787576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177e906132a8565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561185a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611851906133a8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c1906132e8565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119a891906133e8565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1c90613388565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8c90613288565b60405180910390fd5b60008111611ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acf90613368565b60405180910390fd5b6001600a819055506009600b81905550611af0610e83565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b5e5750611b2e610e83565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611faa57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611c075750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611c1057600080fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611cbb5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d115750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d295750601160179054906101000a900460ff165b15611dd957601254811115611d3d57600080fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611d8857600080fd5b601e42611d95919061351e565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611e845750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611eda5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ef0576001600a819055506009600b819055505b6000611efb30610a79565b9050601160159054906101000a900460ff16158015611f685750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611f805750601160169054906101000a900460ff165b15611fa857611f8e81612203565b60004790506000811115611fa657611fa54761201e565b5b505b505b611fb583838361248b565b505050565b6000838311158290612002576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff99190613266565b60405180910390fd5b506000838561201191906135ff565b9050809150509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61206e60038461249b90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612099573d6000803e3d6000fd5b50600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6120ea60038461249b90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612115573d6000803e3d6000fd5b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61216660038461249b90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612191573d6000803e3d6000fd5b5050565b60006008548211156121dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d3906132c8565b60405180910390fd5b60006121e66124e5565b90506121fb818461249b90919063ffffffff16565b915050919050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561223b5761223a6137e6565b5b6040519080825280602002602001820160405280156122695781602001602082028036833780820191505090505b5090503081600081518110612281576122806137b7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561232357600080fd5b505afa158015612337573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061235b9190612c93565b8160018151811061236f5761236e6137b7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123d630601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846117ea565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161243a959493929190613403565b600060405180830381600087803b15801561245457600080fd5b505af1158015612468573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b612496838383612510565b505050565b60006124dd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126db565b905092915050565b60008060006124f261273e565b91509150612509818361249b90919063ffffffff16565b9250505090565b600080600080600080612522876127a9565b95509550955095509550955061258086600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281190919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061261585600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461285b90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612661816128b9565b61266b8483612976565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516126c891906133e8565b60405180910390a3505050505050505050565b60008083118290612722576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127199190613266565b60405180910390fd5b50600083856127319190613574565b9050809150509392505050565b6000806000600854905060006b033b2e3c9fd0803ce8000000905061277a6b033b2e3c9fd0803ce800000060085461249b90919063ffffffff16565b82101561279c576008546b033b2e3c9fd0803ce80000009350935050506127a5565b81819350935050505b9091565b60008060008060008060008060006127c68a600a54600b546129b0565b92509250925060006127d66124e5565b905060008060006127e98e878787612a46565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061285383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fba565b905092915050565b600080828461286a919061351e565b9050838110156128af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a690613308565b60405180910390fd5b8091505092915050565b60006128c36124e5565b905060006128da8284612acf90919063ffffffff16565b905061292e81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461285b90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61298b8260085461281190919063ffffffff16565b6008819055506129a68160095461285b90919063ffffffff16565b6009819055505050565b6000806000806129dc60646129ce888a612acf90919063ffffffff16565b61249b90919063ffffffff16565b90506000612a0660646129f8888b612acf90919063ffffffff16565b61249b90919063ffffffff16565b90506000612a2f82612a21858c61281190919063ffffffff16565b61281190919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612a5f8589612acf90919063ffffffff16565b90506000612a768689612acf90919063ffffffff16565b90506000612a8d8789612acf90919063ffffffff16565b90506000612ab682612aa8858761281190919063ffffffff16565b61281190919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612ae25760009050612b44565b60008284612af091906135a5565b9050828482612aff9190613574565b14612b3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3690613328565b60405180910390fd5b809150505b92915050565b6000612b5d612b588461349d565b613478565b90508083825260208201905082856020860282011115612b8057612b7f61381a565b5b60005b85811015612bb05781612b968882612bba565b845260208401935060208301925050600181019050612b83565b5050509392505050565b600081359050612bc981613b07565b92915050565b600081519050612bde81613b07565b92915050565b600082601f830112612bf957612bf8613815565b5b8135612c09848260208601612b4a565b91505092915050565b600081359050612c2181613b1e565b92915050565b600081519050612c3681613b1e565b92915050565b600081359050612c4b81613b35565b92915050565b600081519050612c6081613b35565b92915050565b600060208284031215612c7c57612c7b613824565b5b6000612c8a84828501612bba565b91505092915050565b600060208284031215612ca957612ca8613824565b5b6000612cb784828501612bcf565b91505092915050565b60008060408385031215612cd757612cd6613824565b5b6000612ce585828601612bba565b9250506020612cf685828601612bba565b9150509250929050565b600080600060608486031215612d1957612d18613824565b5b6000612d2786828701612bba565b9350506020612d3886828701612bba565b9250506040612d4986828701612c3c565b9150509250925092565b60008060408385031215612d6a57612d69613824565b5b6000612d7885828601612bba565b9250506020612d8985828601612c12565b9150509250929050565b60008060408385031215612daa57612da9613824565b5b6000612db885828601612bba565b9250506020612dc985828601612c3c565b9150509250929050565b600060208284031215612de957612de8613824565b5b600082013567ffffffffffffffff811115612e0757612e0661381f565b5b612e1384828501612be4565b91505092915050565b600060208284031215612e3257612e31613824565b5b6000612e4084828501612c12565b91505092915050565b600060208284031215612e5f57612e5e613824565b5b6000612e6d84828501612c27565b91505092915050565b600080600060608486031215612e8f57612e8e613824565b5b6000612e9d86828701612c51565b9350506020612eae86828701612c51565b9250506040612ebf86828701612c51565b9150509250925092565b6000612ed58383612ef0565b60208301905092915050565b612eea81613645565b82525050565b612ef981613633565b82525050565b612f0881613633565b82525050565b6000612f19826134d9565b612f2381856134fc565b9350612f2e836134c9565b8060005b83811015612f5f578151612f468882612ec9565b9750612f51836134ef565b925050600181019050612f32565b5085935050505092915050565b612f7581613657565b82525050565b612f848161369a565b82525050565b6000612f95826134e4565b612f9f818561350d565b9350612faf8185602086016136ac565b612fb881613829565b840191505092915050565b6000612fd060238361350d565b9150612fdb8261383a565b604082019050919050565b6000612ff360158361350d565b9150612ffe82613889565b602082019050919050565b6000613016602a8361350d565b9150613021826138b2565b604082019050919050565b600061303960228361350d565b915061304482613901565b604082019050919050565b600061305c601b8361350d565b915061306782613950565b602082019050919050565b600061307f60218361350d565b915061308a82613979565b604082019050919050565b60006130a260208361350d565b91506130ad826139c8565b602082019050919050565b60006130c560298361350d565b91506130d0826139f1565b604082019050919050565b60006130e860258361350d565b91506130f382613a40565b604082019050919050565b600061310b60248361350d565b915061311682613a8f565b604082019050919050565b600061312e60178361350d565b915061313982613ade565b602082019050919050565b61314d81613683565b82525050565b61315c8161368d565b82525050565b60006020820190506131776000830184612eff565b92915050565b60006020820190506131926000830184612ee1565b92915050565b60006040820190506131ad6000830185612eff565b6131ba6020830184612eff565b9392505050565b60006040820190506131d66000830185612eff565b6131e36020830184613144565b9392505050565b600060c0820190506131ff6000830189612eff565b61320c6020830188613144565b6132196040830187612f7b565b6132266060830186612f7b565b6132336080830185612eff565b61324060a0830184613144565b979650505050505050565b60006020820190506132606000830184612f6c565b92915050565b600060208201905081810360008301526132808184612f8a565b905092915050565b600060208201905081810360008301526132a181612fc3565b9050919050565b600060208201905081810360008301526132c181612fe6565b9050919050565b600060208201905081810360008301526132e181613009565b9050919050565b600060208201905081810360008301526133018161302c565b9050919050565b600060208201905081810360008301526133218161304f565b9050919050565b6000602082019050818103600083015261334181613072565b9050919050565b6000602082019050818103600083015261336181613095565b9050919050565b60006020820190508181036000830152613381816130b8565b9050919050565b600060208201905081810360008301526133a1816130db565b9050919050565b600060208201905081810360008301526133c1816130fe565b9050919050565b600060208201905081810360008301526133e181613121565b9050919050565b60006020820190506133fd6000830184613144565b92915050565b600060a0820190506134186000830188613144565b6134256020830187612f7b565b81810360408301526134378186612f0e565b90506134466060830185612eff565b6134536080830184613144565b9695505050505050565b60006020820190506134726000830184613153565b92915050565b6000613482613493565b905061348e82826136df565b919050565b6000604051905090565b600067ffffffffffffffff8211156134b8576134b76137e6565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061352982613683565b915061353483613683565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561356957613568613759565b5b828201905092915050565b600061357f82613683565b915061358a83613683565b92508261359a57613599613788565b5b828204905092915050565b60006135b082613683565b91506135bb83613683565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156135f4576135f3613759565b5b828202905092915050565b600061360a82613683565b915061361583613683565b92508282101561362857613627613759565b5b828203905092915050565b600061363e82613663565b9050919050565b600061365082613663565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006136a582613683565b9050919050565b60005b838110156136ca5780820151818401526020810190506136af565b838111156136d9576000848401525b50505050565b6136e882613829565b810181811067ffffffffffffffff82111715613707576137066137e6565b5b80604052505050565b600061371b82613683565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561374e5761374d613759565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f496e76616c69642061646d696e20616464726573730000000000000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b613b1081613633565b8114613b1b57600080fd5b50565b613b2781613657565b8114613b3257600080fd5b50565b613b3e81613683565b8114613b4957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122032c278596985eb249cd7d61870111b016aa01c32b8d389ff6c447fbbcd973cd164736f6c63430008070033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c8063715018a6116100b65780639f4dde821161006f5780639f4dde8214610451578063a9059cbb1461047c578063b515566a146104b9578063c3c8cd80146104e2578063dd62ed3e146104f9578063df8408fe1461053657610156565b8063715018a61461037b578063841e45611461039257806385033762146103bb5780638da5cb5b146103e457806395d89b411461040f5780639eb4a1ff1461043a57610156565b8063273123b711610108578063273123b71461027f578063313ce567146102a85780633c9a685f146102d35780635932ead1146102fe5780636fc3eaec1461032757806370a082311461033e57610156565b806306fdde031461015b578063095ea7b31461018657806318160ddd146101c35780631e11b4b4146101ee5780632369bf831461021957806323b872dd1461024257610156565b3661015657005b600080fd5b34801561016757600080fd5b5061017061055f565b60405161017d9190613266565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a89190612d93565b61059c565b6040516101ba919061324b565b60405180910390f35b3480156101cf57600080fd5b506101d86105ba565b6040516101e591906133e8565b60405180910390f35b3480156101fa57600080fd5b506102036105ce565b604051610210919061317d565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b9190612c66565b6105f4565b005b34801561024e57600080fd5b5061026960048036038101906102649190612d00565b610727565b604051610276919061324b565b60405180910390f35b34801561028b57600080fd5b506102a660048036038101906102a19190612c66565b610800565b005b3480156102b457600080fd5b506102bd6108f0565b6040516102ca919061345d565b60405180910390f35b3480156102df57600080fd5b506102e86108f9565b6040516102f5919061317d565b60405180910390f35b34801561030a57600080fd5b5061032560048036038101906103209190612e1c565b61091f565b005b34801561033357600080fd5b5061033c6109d1565b005b34801561034a57600080fd5b5061036560048036038101906103609190612c66565b610a79565b60405161037291906133e8565b60405180910390f35b34801561038757600080fd5b50610390610aca565b005b34801561039e57600080fd5b506103b960048036038101906103b49190612c66565b610c1d565b005b3480156103c757600080fd5b506103e260048036038101906103dd9190612c66565b610d50565b005b3480156103f057600080fd5b506103f9610e83565b6040516104069190613162565b60405180910390f35b34801561041b57600080fd5b50610424610eac565b6040516104319190613266565b60405180910390f35b34801561044657600080fd5b5061044f610ee9565b005b34801561045d57600080fd5b5061046661144b565b604051610473919061317d565b60405180910390f35b34801561048857600080fd5b506104a3600480360381019061049e9190612d93565b611471565b6040516104b0919061324b565b60405180910390f35b3480156104c557600080fd5b506104e060048036038101906104db9190612dd3565b61148f565b005b3480156104ee57600080fd5b506104f76115b9565b005b34801561050557600080fd5b50610520600480360381019061051b9190612cc0565b611669565b60405161052d91906133e8565b60405180910390f35b34801561054257600080fd5b5061055d60048036038101906105589190612d53565b6116f0565b005b60606040518060400160405280601581526020017f42696c6c696f6e616972652054696d6520436c75620000000000000000000000815250905090565b60006105b06105a96117e2565b84846117ea565b6001905092915050565b60006b033b2e3c9fd0803ce8000000905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106356117e2565b73ffffffffffffffffffffffffffffffffffffffff161461068b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610682906132a8565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006107348484846119b5565b6107f5846107406117e2565b6107f085604051806060016040528060288152602001613b4d60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107a66117e2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fba9092919063ffffffff16565b6117ea565b600190509392505050565b6108086117e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610895576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088c90613348565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109276117e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ab90613348565b60405180910390fd5b80601160176101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a126117e2565b73ffffffffffffffffffffffffffffffffffffffff1614610a68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5f906132a8565b60405180910390fd5b6000479050610a768161201e565b50565b6000610ac3600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612195565b9050919050565b610ad26117e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5690613348565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c5e6117e2565b73ffffffffffffffffffffffffffffffffffffffff1614610cb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cab906132a8565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d916117e2565b73ffffffffffffffffffffffffffffffffffffffff1614610de7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dde906132a8565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f4254436c75620000000000000000000000000000000000000000000000000000815250905090565b610ef16117e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7590613348565b60405180910390fd5b601160149054906101000a900460ff1615610fce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc5906133c8565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061106130601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166b033b2e3c9fd0803ce80000006117ea565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156110a757600080fd5b505afa1580156110bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110df9190612c93565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561114157600080fd5b505afa158015611155573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111799190612c93565b6040518363ffffffff1660e01b8152600401611196929190613198565b602060405180830381600087803b1580156111b057600080fd5b505af11580156111c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e89190612c93565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061127130610a79565b60008061127c610e83565b426040518863ffffffff1660e01b815260040161129e969594939291906131ea565b6060604051808303818588803b1580156112b757600080fd5b505af11580156112cb573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906112f09190612e76565b5050506001601160166101000a81548160ff0219169083151502179055506001601160176101000a81548160ff0219169083151502179055506a0422ca8b0a00a4250000006012819055506001601160146101000a81548160ff021916908315150217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016113f59291906131c1565b602060405180830381600087803b15801561140f57600080fd5b505af1158015611423573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114479190612e49565b5050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061148561147e6117e2565b84846119b5565b6001905092915050565b6114976117e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611524576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151b90613348565b60405180910390fd5b60005b81518110156115b557600160066000848481518110611549576115486137b7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806115ad90613710565b915050611527565b5050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115fa6117e2565b73ffffffffffffffffffffffffffffffffffffffff1614611650576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611647906132a8565b60405180910390fd5b600061165b30610a79565b905061166681612203565b50565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117316117e2565b73ffffffffffffffffffffffffffffffffffffffff1614611787576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177e906132a8565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561185a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611851906133a8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c1906132e8565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119a891906133e8565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1c90613388565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8c90613288565b60405180910390fd5b60008111611ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acf90613368565b60405180910390fd5b6001600a819055506009600b81905550611af0610e83565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b5e5750611b2e610e83565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611faa57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611c075750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611c1057600080fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611cbb5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d115750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d295750601160179054906101000a900460ff165b15611dd957601254811115611d3d57600080fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611d8857600080fd5b601e42611d95919061351e565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611e845750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611eda5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ef0576001600a819055506009600b819055505b6000611efb30610a79565b9050601160159054906101000a900460ff16158015611f685750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611f805750601160169054906101000a900460ff165b15611fa857611f8e81612203565b60004790506000811115611fa657611fa54761201e565b5b505b505b611fb583838361248b565b505050565b6000838311158290612002576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff99190613266565b60405180910390fd5b506000838561201191906135ff565b9050809150509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61206e60038461249b90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612099573d6000803e3d6000fd5b50600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6120ea60038461249b90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612115573d6000803e3d6000fd5b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61216660038461249b90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612191573d6000803e3d6000fd5b5050565b60006008548211156121dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d3906132c8565b60405180910390fd5b60006121e66124e5565b90506121fb818461249b90919063ffffffff16565b915050919050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561223b5761223a6137e6565b5b6040519080825280602002602001820160405280156122695781602001602082028036833780820191505090505b5090503081600081518110612281576122806137b7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561232357600080fd5b505afa158015612337573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061235b9190612c93565b8160018151811061236f5761236e6137b7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123d630601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846117ea565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161243a959493929190613403565b600060405180830381600087803b15801561245457600080fd5b505af1158015612468573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b612496838383612510565b505050565b60006124dd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126db565b905092915050565b60008060006124f261273e565b91509150612509818361249b90919063ffffffff16565b9250505090565b600080600080600080612522876127a9565b95509550955095509550955061258086600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281190919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061261585600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461285b90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612661816128b9565b61266b8483612976565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516126c891906133e8565b60405180910390a3505050505050505050565b60008083118290612722576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127199190613266565b60405180910390fd5b50600083856127319190613574565b9050809150509392505050565b6000806000600854905060006b033b2e3c9fd0803ce8000000905061277a6b033b2e3c9fd0803ce800000060085461249b90919063ffffffff16565b82101561279c576008546b033b2e3c9fd0803ce80000009350935050506127a5565b81819350935050505b9091565b60008060008060008060008060006127c68a600a54600b546129b0565b92509250925060006127d66124e5565b905060008060006127e98e878787612a46565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061285383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fba565b905092915050565b600080828461286a919061351e565b9050838110156128af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a690613308565b60405180910390fd5b8091505092915050565b60006128c36124e5565b905060006128da8284612acf90919063ffffffff16565b905061292e81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461285b90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61298b8260085461281190919063ffffffff16565b6008819055506129a68160095461285b90919063ffffffff16565b6009819055505050565b6000806000806129dc60646129ce888a612acf90919063ffffffff16565b61249b90919063ffffffff16565b90506000612a0660646129f8888b612acf90919063ffffffff16565b61249b90919063ffffffff16565b90506000612a2f82612a21858c61281190919063ffffffff16565b61281190919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612a5f8589612acf90919063ffffffff16565b90506000612a768689612acf90919063ffffffff16565b90506000612a8d8789612acf90919063ffffffff16565b90506000612ab682612aa8858761281190919063ffffffff16565b61281190919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612ae25760009050612b44565b60008284612af091906135a5565b9050828482612aff9190613574565b14612b3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3690613328565b60405180910390fd5b809150505b92915050565b6000612b5d612b588461349d565b613478565b90508083825260208201905082856020860282011115612b8057612b7f61381a565b5b60005b85811015612bb05781612b968882612bba565b845260208401935060208301925050600181019050612b83565b5050509392505050565b600081359050612bc981613b07565b92915050565b600081519050612bde81613b07565b92915050565b600082601f830112612bf957612bf8613815565b5b8135612c09848260208601612b4a565b91505092915050565b600081359050612c2181613b1e565b92915050565b600081519050612c3681613b1e565b92915050565b600081359050612c4b81613b35565b92915050565b600081519050612c6081613b35565b92915050565b600060208284031215612c7c57612c7b613824565b5b6000612c8a84828501612bba565b91505092915050565b600060208284031215612ca957612ca8613824565b5b6000612cb784828501612bcf565b91505092915050565b60008060408385031215612cd757612cd6613824565b5b6000612ce585828601612bba565b9250506020612cf685828601612bba565b9150509250929050565b600080600060608486031215612d1957612d18613824565b5b6000612d2786828701612bba565b9350506020612d3886828701612bba565b9250506040612d4986828701612c3c565b9150509250925092565b60008060408385031215612d6a57612d69613824565b5b6000612d7885828601612bba565b9250506020612d8985828601612c12565b9150509250929050565b60008060408385031215612daa57612da9613824565b5b6000612db885828601612bba565b9250506020612dc985828601612c3c565b9150509250929050565b600060208284031215612de957612de8613824565b5b600082013567ffffffffffffffff811115612e0757612e0661381f565b5b612e1384828501612be4565b91505092915050565b600060208284031215612e3257612e31613824565b5b6000612e4084828501612c12565b91505092915050565b600060208284031215612e5f57612e5e613824565b5b6000612e6d84828501612c27565b91505092915050565b600080600060608486031215612e8f57612e8e613824565b5b6000612e9d86828701612c51565b9350506020612eae86828701612c51565b9250506040612ebf86828701612c51565b9150509250925092565b6000612ed58383612ef0565b60208301905092915050565b612eea81613645565b82525050565b612ef981613633565b82525050565b612f0881613633565b82525050565b6000612f19826134d9565b612f2381856134fc565b9350612f2e836134c9565b8060005b83811015612f5f578151612f468882612ec9565b9750612f51836134ef565b925050600181019050612f32565b5085935050505092915050565b612f7581613657565b82525050565b612f848161369a565b82525050565b6000612f95826134e4565b612f9f818561350d565b9350612faf8185602086016136ac565b612fb881613829565b840191505092915050565b6000612fd060238361350d565b9150612fdb8261383a565b604082019050919050565b6000612ff360158361350d565b9150612ffe82613889565b602082019050919050565b6000613016602a8361350d565b9150613021826138b2565b604082019050919050565b600061303960228361350d565b915061304482613901565b604082019050919050565b600061305c601b8361350d565b915061306782613950565b602082019050919050565b600061307f60218361350d565b915061308a82613979565b604082019050919050565b60006130a260208361350d565b91506130ad826139c8565b602082019050919050565b60006130c560298361350d565b91506130d0826139f1565b604082019050919050565b60006130e860258361350d565b91506130f382613a40565b604082019050919050565b600061310b60248361350d565b915061311682613a8f565b604082019050919050565b600061312e60178361350d565b915061313982613ade565b602082019050919050565b61314d81613683565b82525050565b61315c8161368d565b82525050565b60006020820190506131776000830184612eff565b92915050565b60006020820190506131926000830184612ee1565b92915050565b60006040820190506131ad6000830185612eff565b6131ba6020830184612eff565b9392505050565b60006040820190506131d66000830185612eff565b6131e36020830184613144565b9392505050565b600060c0820190506131ff6000830189612eff565b61320c6020830188613144565b6132196040830187612f7b565b6132266060830186612f7b565b6132336080830185612eff565b61324060a0830184613144565b979650505050505050565b60006020820190506132606000830184612f6c565b92915050565b600060208201905081810360008301526132808184612f8a565b905092915050565b600060208201905081810360008301526132a181612fc3565b9050919050565b600060208201905081810360008301526132c181612fe6565b9050919050565b600060208201905081810360008301526132e181613009565b9050919050565b600060208201905081810360008301526133018161302c565b9050919050565b600060208201905081810360008301526133218161304f565b9050919050565b6000602082019050818103600083015261334181613072565b9050919050565b6000602082019050818103600083015261336181613095565b9050919050565b60006020820190508181036000830152613381816130b8565b9050919050565b600060208201905081810360008301526133a1816130db565b9050919050565b600060208201905081810360008301526133c1816130fe565b9050919050565b600060208201905081810360008301526133e181613121565b9050919050565b60006020820190506133fd6000830184613144565b92915050565b600060a0820190506134186000830188613144565b6134256020830187612f7b565b81810360408301526134378186612f0e565b90506134466060830185612eff565b6134536080830184613144565b9695505050505050565b60006020820190506134726000830184613153565b92915050565b6000613482613493565b905061348e82826136df565b919050565b6000604051905090565b600067ffffffffffffffff8211156134b8576134b76137e6565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061352982613683565b915061353483613683565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561356957613568613759565b5b828201905092915050565b600061357f82613683565b915061358a83613683565b92508261359a57613599613788565b5b828204905092915050565b60006135b082613683565b91506135bb83613683565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156135f4576135f3613759565b5b828202905092915050565b600061360a82613683565b915061361583613683565b92508282101561362857613627613759565b5b828203905092915050565b600061363e82613663565b9050919050565b600061365082613663565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006136a582613683565b9050919050565b60005b838110156136ca5780820151818401526020810190506136af565b838111156136d9576000848401525b50505050565b6136e882613829565b810181811067ffffffffffffffff82111715613707576137066137e6565b5b80604052505050565b600061371b82613683565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561374e5761374d613759565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f496e76616c69642061646d696e20616464726573730000000000000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b613b1081613633565b8114613b1b57600080fd5b50565b613b2781613657565b8114613b3257600080fd5b50565b613b3e81613683565b8114613b4957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122032c278596985eb249cd7d61870111b016aa01c32b8d389ff6c447fbbcd973cd164736f6c63430008070033

Deployed Bytecode Sourcemap

6251:12943:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8398:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9323:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8675:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6948:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16291:243;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9524:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14305:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8584:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6995:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9978:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15852:225;;;;;;;;;;;;;:::i;:::-;;8778:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5198:148;;;;;;;;;;;;;:::i;:::-;;16781:241;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16542:231;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4984:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8489:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13128:994;;;;;;;;;;;;;:::i;:::-;;7036:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8924:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14130:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15618:226;;;;;;;;;;;;;:::i;:::-;;9131:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16085:198;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8398:83;8435:13;8468:5;;;;;;;;;;;;;;;;;8461:12;;8398:83;:::o;9323:193::-;9425:4;9447:39;9456:12;:10;:12::i;:::-;9470:7;9479:6;9447:8;:39::i;:::-;9504:4;9497:11;;9323:193;;;;:::o;8675:95::-;8728:7;6759:27;8748:14;;8675:95;:::o;6948:40::-;;;;;;;;;;;;;:::o;16291:243::-;16385:21;;;;;;;;;;;16369:37;;:12;:10;:12::i;:::-;:37;;;16361:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16471:8;16443:17;;:37;;;;;;;;;;;;;;;;;;16522:4;16491:18;:28;16510:8;16491:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;16291:243;:::o;9524:446::-;9656:4;9673:36;9683:6;9691:9;9702:6;9673:9;:36::i;:::-;9720:220;9743:6;9764:12;:10;:12::i;:::-;9791:138;9847:6;9791:138;;;;;;;;;;;;;;;;;:11;:19;9803:6;9791:19;;;;;;;;;;;;;;;:33;9811:12;:10;:12::i;:::-;9791:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;9720:8;:220::i;:::-;9958:4;9951:11;;9524:446;;;;;:::o;14305:88::-;5121:12;:10;:12::i;:::-;5111:22;;:6;;;;;;;;;;:22;;;5103:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14380:5:::1;14365:4;:12;14370:6;14365:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;14305:88:::0;:::o;8584:83::-;8625:5;7340:1;8643:16;;8584:83;:::o;6995:34::-;;;;;;;;;;;;;:::o;9978:101::-;5121:12;:10;:12::i;:::-;5111:22;;:6;;;;;;;;;;:22;;;5103:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10066:5:::1;10048:15;;:23;;;;;;;;;;;;;;;;;;9978:101:::0;:::o;15852:225::-;15918:21;;;;;;;;;;;15902:37;;:12;:10;:12::i;:::-;:37;;;15894:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15976:26;16005:21;15976:50;;16037:32;16050:18;16037:12;:32::i;:::-;15883:194;15852:225::o;8778:138::-;8844:7;8871:37;8891:7;:16;8899:7;8891:16;;;;;;;;;;;;;;;;8871:19;:37::i;:::-;8864:44;;8778:138;;;:::o;5198:148::-;5121:12;:10;:12::i;:::-;5111:22;;:6;;;;;;;;;;:22;;;5103:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5305:1:::1;5268:40;;5289:6;::::0;::::1;;;;;;;;5268:40;;;;;;;;;;;;5336:1;5319:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5198:148::o:0;16781:241::-;16874:21;;;;;;;;;;;16858:37;;:12;:10;:12::i;:::-;:37;;;16850:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16959:8;16932:16;;:36;;;;;;;;;;;;;;;;;;17010:4;16979:18;:28;16998:8;16979:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;16781:241;:::o;16542:231::-;16630:21;;;;;;;;;;;16614:37;;:12;:10;:12::i;:::-;:37;;;16606:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16710:8;16688:11;;:31;;;;;;;;;;;;;;;;;;16761:4;16730:18;:28;16749:8;16730:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;16542:231;:::o;4984:79::-;5022:7;5049:6;;;;;;;;;;;5042:13;;4984:79;:::o;8489:87::-;8528:13;8561:7;;;;;;;;;;;;;;;;;8554:14;;8489:87;:::o;13128:994::-;5121:12;:10;:12::i;:::-;5111:22;;:6;;;;;;;;;;:22;;;5103:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13189:11:::1;;;;;;;;;;;13188:12;13180:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;13241:35;13312:42;13241:124;;13394:16;13376:15;;:34;;;;;;;;;;;;;;;;;;13421:58;13438:4;13453:15;;;;;;;;;;;6759:27;13421:8;:58::i;:::-;13524:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13506:70;;;13585:4;13592:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13506:110;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13490:13;;:126;;;;;;;;;;;;;;;;;;13627:15;;;;;;;;;;;:31;;;13666:21;13711:4;13731:24;13749:4;13731:9;:24::i;:::-;13770:1;13786::::0;13802:7:::1;:5;:7::i;:::-;13824:15;13627:223;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13875:4;13861:11;;:18;;;;;;;;;;;;;;;;;;13908:4;13890:15;;:22;;;;;;;;;;;;;;;;;;13939:24;13923:12;:40;;;;13988:4;13974:11;;:18;;;;;;;;;;;;;;;;;;14010:13;;;;;;;;;;;14003:29;;;14055:15;;;;;;;;;;;14086:17;14003:111;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13169:953;13128:994::o:0;7036:39::-;;;;;;;;;;;;;:::o;8924:199::-;9029:4;9051:42;9061:12;:10;:12::i;:::-;9075:9;9086:6;9051:9;:42::i;:::-;9111:4;9104:11;;8924:199;;;;:::o;14130:167::-;5121:12;:10;:12::i;:::-;5111:22;;:6;;;;;;;;;;:22;;;5103:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14204:9:::1;14199:91;14223:5;:12;14219:1;:16;14199:91;;;14274:4;14257;:14;14262:5;14268:1;14262:8;;;;;;;;:::i;:::-;;;;;;;;14257:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14237:3;;;;;:::i;:::-;;;;14199:91;;;;14130:167:::0;:::o;15618:226::-;15684:21;;;;;;;;;;;15668:37;;:12;:10;:12::i;:::-;:37;;;15660:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15742:23;15768:24;15786:4;15768:9;:24::i;:::-;15742:50;;15803:33;15820:15;15803:16;:33::i;:::-;15649:195;15618:226::o;9131:184::-;9248:7;9280:11;:18;9292:5;9280:18;;;;;;;;;;;;;;;:27;9299:7;9280:27;;;;;;;;;;;;;;;;9273:34;;9131:184;;;;:::o;16085:198::-;16182:21;;;;;;;;;;;16166:37;;:12;:10;:12::i;:::-;:37;;;16158:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16271:4;16240:18;:28;16259:8;16240:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;16085:198;;:::o;2487:98::-;2540:7;2567:10;2560:17;;2487:98;:::o;10418:369::-;10562:1;10545:19;;:5;:19;;;;10537:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10643:1;10624:21;;:7;:21;;;;10616:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10725:6;10695:11;:18;10707:5;10695:18;;;;;;;;;;;;;;;:27;10714:7;10695:27;;;;;;;;;;;;;;;:36;;;;10763:7;10747:32;;10756:5;10747:32;;;10772:6;10747:32;;;;;;:::i;:::-;;;;;;;;10418:369;;;:::o;10799:1617::-;10937:1;10921:18;;:4;:18;;;;10913:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11014:1;11000:16;;:2;:16;;;;10992:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11084:1;11075:6;:10;11067:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11154:1;11142:9;:13;;;;11178:1;11166:9;:13;;;;11202:7;:5;:7::i;:::-;11194:15;;:4;:15;;;;:32;;;;;11219:7;:5;:7::i;:::-;11213:13;;:2;:13;;;;11194:32;11190:1174;;;11252:4;:10;11257:4;11252:10;;;;;;;;;;;;;;;;;;;;;;;;;11251:11;:24;;;;;11267:4;:8;11272:2;11267:8;;;;;;;;;;;;;;;;;;;;;;;;;11266:9;11251:24;11243:33;;;;;;11321:13;;;;;;;;;;;11313:21;;:4;:21;;;:72;;;;;11369:15;;;;;;;;;;;11355:30;;:2;:30;;;;11313:72;:116;;;;;11407:18;:22;11426:2;11407:22;;;;;;;;;;;;;;;;;;;;;;;;;11406:23;11313:116;:152;;;;;11450:15;;;;;;;;;;;11313:152;11291:407;;;11547:12;;11537:6;:22;;11529:31;;;;;;11602:15;11587:8;:12;11596:2;11587:12;;;;;;;;;;;;;;;;:30;11579:39;;;;;;11671:10;11652:15;:30;;;;:::i;:::-;11637:8;:12;11646:2;11637:12;;;;;;;;;;;;;;;:45;;;;11291:407;11742:13;;;;;;;;;;;11736:19;;:2;:19;;;:72;;;;;11792:15;;;;;;;;;;;11776:32;;:4;:32;;;;11736:72;:118;;;;;11830:18;:24;11849:4;11830:24;;;;;;;;;;;;;;;;;;;;;;;;;11829:25;11736:118;11714:236;;;11901:1;11889:9;:13;;;;11933:1;11921:9;:13;;;;11714:236;11964:28;11995:24;12013:4;11995:9;:24::i;:::-;11964:55;;12039:6;;;;;;;;;;;12038:7;:32;;;;;12057:13;;;;;;;;;;;12049:21;;:4;:21;;;;12038:32;:47;;;;;12074:11;;;;;;;;;;;12038:47;12034:319;;;12106:38;12123:20;12106:16;:38::i;:::-;12163:26;12192:21;12163:50;;12257:1;12236:18;:22;12232:106;;;12283:35;12296:21;12283:12;:35::i;:::-;12232:106;12087:266;12034:319;11228:1136;11190:1174;12376:32;12391:4;12397:2;12401:6;12376:14;:32::i;:::-;10799:1617;;;:::o;3749:224::-;3869:7;3902:1;3897;:6;;3905:12;3889:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3929:9;3945:1;3941;:5;;;;:::i;:::-;3929:17;;3964:1;3957:8;;;3749:224;;;;;:::o;12916:203::-;12973:17;;;;;;;;;;;:26;;:41;13000:13;13011:1;13000:6;:10;;:13;;;;:::i;:::-;12973:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13025:11;;;;;;;;;;;:20;;:35;13046:13;13057:1;13046:6;:10;;:13;;;;:::i;:::-;13025:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13071:16;;;;;;;;;;;:25;;:40;13097:13;13108:1;13097:6;:10;;:13;;;;:::i;:::-;13071:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12916:203;:::o;10087:323::-;10182:7;10240;;10229;:18;;10207:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;10328:19;10350:10;:8;:10::i;:::-;10328:32;;10378:24;10390:11;10378:7;:11;;:24;;;;:::i;:::-;10371:31;;;10087:323;;;:::o;12425:483::-;7723:4;7714:6;;:13;;;;;;;;;;;;;;;;;;12503:21:::1;12541:1;12527:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12503:40;;12572:4;12554;12559:1;12554:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12598:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12588:4;12593:1;12588:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12631:62;12648:4;12663:15;;;;;;;;;;;12681:11;12631:8;:62::i;:::-;12704:15;;;;;;;;;;;:66;;;12785:11;12811:1;12827:4;12854;12874:15;12704:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12492:416;7759:5:::0;7750:6;;:14;;;;;;;;;;;;;;;;;;12425:483;:::o;14401:180::-;14529:44;14547:6;14555:9;14566:6;14529:17;:44::i;:::-;14401:180;;;:::o;4235:132::-;4293:7;4320:39;4324:1;4327;4320:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;4313:46;;4235:132;;;;:::o;18762:164::-;18804:7;18825:15;18842;18861:19;:17;:19::i;:::-;18824:56;;;;18898:20;18910:7;18898;:11;;:20;;;;:::i;:::-;18891:27;;;;18762:164;:::o;14589:610::-;14736:15;14766:23;14804:12;14831:23;14869:12;14896:13;14923:19;14934:7;14923:10;:19::i;:::-;14721:221;;;;;;;;;;;;14971:28;14991:7;14971;:15;14979:6;14971:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14953:7;:15;14961:6;14953:15;;;;;;;;;;;;;;;:46;;;;15031:39;15054:15;15031:7;:18;15039:9;15031:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;15010:7;:18;15018:9;15010:18;;;;;;;;;;;;;;;:60;;;;15081:16;15091:5;15081:9;:16::i;:::-;15108:23;15120:4;15126;15108:11;:23::i;:::-;15164:9;15147:44;;15156:6;15147:44;;;15175:15;15147:44;;;;;;:::i;:::-;;;;;;;;14710:489;;;;;;14589:610;;;:::o;4375:223::-;4495:7;4527:1;4523;:5;4530:12;4515:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4554:9;4570:1;4566;:5;;;;:::i;:::-;4554:17;;4589:1;4582:8;;;4375:223;;;;;:::o;18934:257::-;18985:7;18994;19014:15;19032:7;;19014:25;;19050:15;6759:27;19050:25;;19100:20;6759:27;19100:7;;:11;;:20;;;;:::i;:::-;19090:7;:30;19086:61;;;19130:7;;6759:27;19122:25;;;;;;;;19086:61;19166:7;19175;19158:25;;;;;;18934:257;;;:::o;17033:704::-;17133:7;17155;17177;17199;17221;17243;17279:23;17304:12;17318:13;17335:92;17361:7;17383:9;;17407;;17335:11;:92::i;:::-;17278:149;;;;;;17438:19;17460:10;:8;:10::i;:::-;17438:32;;17482:15;17499:23;17524:12;17540:109;17566:7;17588:4;17607:5;17627:11;17540;:109::i;:::-;17481:168;;;;;;17668:7;17677:15;17694:4;17700:15;17717:4;17723:5;17660:69;;;;;;;;;;;;;;;;;;;17033:704;;;;;;;:::o;3605:136::-;3663:7;3690:43;3694:1;3697;3690:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3683:50;;3605:136;;;;:::o;3418:179::-;3476:7;3496:9;3512:1;3508;:5;;;;:::i;:::-;3496:17;;3537:1;3532;:6;;3524:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3588:1;3581:8;;;3418:179;;;;:::o;15207:211::-;15260:19;15282:10;:8;:10::i;:::-;15260:32;;15303:13;15319:22;15329:11;15319:5;:9;;:22;;;;:::i;:::-;15303:38;;15377:33;15404:5;15377:7;:22;15393:4;15377:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15352:7;:22;15368:4;15352:22;;;;;;;;;;;;;;;:58;;;;15249:169;;15207:211;:::o;15426:147::-;15504:17;15516:4;15504:7;;:11;;:17;;;;:::i;:::-;15494:7;:27;;;;15545:20;15560:4;15545:10;;:14;;:20;;;;:::i;:::-;15532:10;:33;;;;15426:147;;:::o;17745:467::-;17913:7;17935;17957;17992:12;18007:28;18031:3;18007:19;18019:6;18007:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;17992:43;;18046:13;18062:29;18087:3;18062:20;18074:7;18062;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;18046:45;;18102:23;18128:28;18150:5;18128:17;18140:4;18128:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;18102:54;;18175:15;18192:4;18198:5;18167:37;;;;;;;;;17745:467;;;;;;;:::o;18220:534::-;18414:7;18436;18458;18493:15;18511:24;18523:11;18511:7;:11;;:24;;;;:::i;:::-;18493:42;;18546:12;18561:21;18570:11;18561:4;:8;;:21;;;;:::i;:::-;18546:36;;18593:13;18609:22;18619:11;18609:5;:9;;:22;;;;:::i;:::-;18593:38;;18642:23;18668:28;18690:5;18668:17;18680:4;18668:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;18642:54;;18715:7;18724:15;18741:4;18707:39;;;;;;;;;;18220:534;;;;;;;;:::o;3981:246::-;4039:7;4068:1;4063;:6;4059:47;;;4093:1;4086:8;;;;4059:47;4116:9;4132:1;4128;:5;;;;:::i;:::-;4116:17;;4161:1;4156;4152;:5;;;;:::i;:::-;:10;4144:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4218:1;4211:8;;;3981:246;;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;752:139::-;798:5;836:6;823:20;814:29;;852:33;879:5;852:33;:::i;:::-;752:139;;;;:::o;897:143::-;954:5;985:6;979:13;970:22;;1001:33;1028:5;1001:33;:::i;:::-;897:143;;;;:::o;1063:370::-;1134:5;1183:3;1176:4;1168:6;1164:17;1160:27;1150:122;;1191:79;;:::i;:::-;1150:122;1308:6;1295:20;1333:94;1423:3;1415:6;1408:4;1400:6;1396:17;1333:94;:::i;:::-;1324:103;;1140:293;1063:370;;;;:::o;1439:133::-;1482:5;1520:6;1507:20;1498:29;;1536:30;1560:5;1536:30;:::i;:::-;1439:133;;;;:::o;1578:137::-;1632:5;1663:6;1657:13;1648:22;;1679:30;1703:5;1679:30;:::i;:::-;1578:137;;;;:::o;1721:139::-;1767:5;1805:6;1792:20;1783:29;;1821:33;1848:5;1821:33;:::i;:::-;1721:139;;;;:::o;1866:143::-;1923:5;1954:6;1948:13;1939:22;;1970:33;1997:5;1970:33;:::i;:::-;1866:143;;;;:::o;2015:329::-;2074:6;2123:2;2111:9;2102:7;2098:23;2094:32;2091:119;;;2129:79;;:::i;:::-;2091:119;2249:1;2274:53;2319:7;2310:6;2299:9;2295:22;2274:53;:::i;:::-;2264:63;;2220:117;2015:329;;;;:::o;2350:351::-;2420:6;2469:2;2457:9;2448:7;2444:23;2440:32;2437:119;;;2475:79;;:::i;:::-;2437:119;2595:1;2620:64;2676:7;2667:6;2656:9;2652:22;2620:64;:::i;:::-;2610:74;;2566:128;2350:351;;;;:::o;2707:474::-;2775:6;2783;2832:2;2820:9;2811:7;2807:23;2803:32;2800:119;;;2838:79;;:::i;:::-;2800:119;2958:1;2983:53;3028:7;3019:6;3008:9;3004:22;2983:53;:::i;:::-;2973:63;;2929:117;3085:2;3111:53;3156:7;3147:6;3136:9;3132:22;3111:53;:::i;:::-;3101:63;;3056:118;2707:474;;;;;:::o;3187:619::-;3264:6;3272;3280;3329:2;3317:9;3308:7;3304:23;3300:32;3297:119;;;3335:79;;:::i;:::-;3297:119;3455:1;3480:53;3525:7;3516:6;3505:9;3501:22;3480:53;:::i;:::-;3470:63;;3426:117;3582:2;3608:53;3653:7;3644:6;3633:9;3629:22;3608:53;:::i;:::-;3598:63;;3553:118;3710:2;3736:53;3781:7;3772:6;3761:9;3757:22;3736:53;:::i;:::-;3726:63;;3681:118;3187:619;;;;;:::o;3812:468::-;3877:6;3885;3934:2;3922:9;3913:7;3909:23;3905:32;3902:119;;;3940:79;;:::i;:::-;3902:119;4060:1;4085:53;4130:7;4121:6;4110:9;4106:22;4085:53;:::i;:::-;4075:63;;4031:117;4187:2;4213:50;4255:7;4246:6;4235:9;4231:22;4213:50;:::i;:::-;4203:60;;4158:115;3812:468;;;;;:::o;4286:474::-;4354:6;4362;4411:2;4399:9;4390:7;4386:23;4382:32;4379:119;;;4417:79;;:::i;:::-;4379:119;4537:1;4562:53;4607:7;4598:6;4587:9;4583:22;4562:53;:::i;:::-;4552:63;;4508:117;4664:2;4690:53;4735:7;4726:6;4715:9;4711:22;4690:53;:::i;:::-;4680:63;;4635:118;4286:474;;;;;:::o;4766:539::-;4850:6;4899:2;4887:9;4878:7;4874:23;4870:32;4867:119;;;4905:79;;:::i;:::-;4867:119;5053:1;5042:9;5038:17;5025:31;5083:18;5075:6;5072:30;5069:117;;;5105:79;;:::i;:::-;5069:117;5210:78;5280:7;5271:6;5260:9;5256:22;5210:78;:::i;:::-;5200:88;;4996:302;4766:539;;;;:::o;5311:323::-;5367:6;5416:2;5404:9;5395:7;5391:23;5387:32;5384:119;;;5422:79;;:::i;:::-;5384:119;5542:1;5567:50;5609:7;5600:6;5589:9;5585:22;5567:50;:::i;:::-;5557:60;;5513:114;5311:323;;;;:::o;5640:345::-;5707:6;5756:2;5744:9;5735:7;5731:23;5727:32;5724:119;;;5762:79;;:::i;:::-;5724:119;5882:1;5907:61;5960:7;5951:6;5940:9;5936:22;5907:61;:::i;:::-;5897:71;;5853:125;5640:345;;;;:::o;5991:663::-;6079:6;6087;6095;6144:2;6132:9;6123:7;6119:23;6115:32;6112:119;;;6150:79;;:::i;:::-;6112:119;6270:1;6295:64;6351:7;6342:6;6331:9;6327:22;6295:64;:::i;:::-;6285:74;;6241:128;6408:2;6434:64;6490:7;6481:6;6470:9;6466:22;6434:64;:::i;:::-;6424:74;;6379:129;6547:2;6573:64;6629:7;6620:6;6609:9;6605:22;6573:64;:::i;:::-;6563:74;;6518:129;5991:663;;;;;:::o;6660:179::-;6729:10;6750:46;6792:3;6784:6;6750:46;:::i;:::-;6828:4;6823:3;6819:14;6805:28;;6660:179;;;;:::o;6845:142::-;6948:32;6974:5;6948:32;:::i;:::-;6943:3;6936:45;6845:142;;:::o;6993:108::-;7070:24;7088:5;7070:24;:::i;:::-;7065:3;7058:37;6993:108;;:::o;7107:118::-;7194:24;7212:5;7194:24;:::i;:::-;7189:3;7182:37;7107:118;;:::o;7261:732::-;7380:3;7409:54;7457:5;7409:54;:::i;:::-;7479:86;7558:6;7553:3;7479:86;:::i;:::-;7472:93;;7589:56;7639:5;7589:56;:::i;:::-;7668:7;7699:1;7684:284;7709:6;7706:1;7703:13;7684:284;;;7785:6;7779:13;7812:63;7871:3;7856:13;7812:63;:::i;:::-;7805:70;;7898:60;7951:6;7898:60;:::i;:::-;7888:70;;7744:224;7731:1;7728;7724:9;7719:14;;7684:284;;;7688:14;7984:3;7977:10;;7385:608;;;7261:732;;;;:::o;7999:109::-;8080:21;8095:5;8080:21;:::i;:::-;8075:3;8068:34;7999:109;;:::o;8114:147::-;8209:45;8248:5;8209:45;:::i;:::-;8204:3;8197:58;8114:147;;:::o;8267:364::-;8355:3;8383:39;8416:5;8383:39;:::i;:::-;8438:71;8502:6;8497:3;8438:71;:::i;:::-;8431:78;;8518:52;8563:6;8558:3;8551:4;8544:5;8540:16;8518:52;:::i;:::-;8595:29;8617:6;8595:29;:::i;:::-;8590:3;8586:39;8579:46;;8359:272;8267:364;;;;:::o;8637:366::-;8779:3;8800:67;8864:2;8859:3;8800:67;:::i;:::-;8793:74;;8876:93;8965:3;8876:93;:::i;:::-;8994:2;8989:3;8985:12;8978:19;;8637:366;;;:::o;9009:::-;9151:3;9172:67;9236:2;9231:3;9172:67;:::i;:::-;9165:74;;9248:93;9337:3;9248:93;:::i;:::-;9366:2;9361:3;9357:12;9350:19;;9009:366;;;:::o;9381:::-;9523:3;9544:67;9608:2;9603:3;9544:67;:::i;:::-;9537:74;;9620:93;9709:3;9620:93;:::i;:::-;9738:2;9733:3;9729:12;9722:19;;9381:366;;;:::o;9753:::-;9895:3;9916:67;9980:2;9975:3;9916:67;:::i;:::-;9909:74;;9992:93;10081:3;9992:93;:::i;:::-;10110:2;10105:3;10101:12;10094:19;;9753:366;;;:::o;10125:::-;10267:3;10288:67;10352:2;10347:3;10288:67;:::i;:::-;10281:74;;10364:93;10453:3;10364:93;:::i;:::-;10482:2;10477:3;10473:12;10466:19;;10125:366;;;:::o;10497:::-;10639:3;10660:67;10724:2;10719:3;10660:67;:::i;:::-;10653:74;;10736:93;10825:3;10736:93;:::i;:::-;10854:2;10849:3;10845:12;10838:19;;10497:366;;;:::o;10869:::-;11011:3;11032:67;11096:2;11091:3;11032:67;:::i;:::-;11025:74;;11108:93;11197:3;11108:93;:::i;:::-;11226:2;11221:3;11217:12;11210:19;;10869:366;;;:::o;11241:::-;11383:3;11404:67;11468:2;11463:3;11404:67;:::i;:::-;11397:74;;11480:93;11569:3;11480:93;:::i;:::-;11598:2;11593:3;11589:12;11582:19;;11241:366;;;:::o;11613:::-;11755:3;11776:67;11840:2;11835:3;11776:67;:::i;:::-;11769:74;;11852:93;11941:3;11852:93;:::i;:::-;11970:2;11965:3;11961:12;11954:19;;11613:366;;;:::o;11985:::-;12127:3;12148:67;12212:2;12207:3;12148:67;:::i;:::-;12141:74;;12224:93;12313:3;12224:93;:::i;:::-;12342:2;12337:3;12333:12;12326:19;;11985:366;;;:::o;12357:::-;12499:3;12520:67;12584:2;12579:3;12520:67;:::i;:::-;12513:74;;12596:93;12685:3;12596:93;:::i;:::-;12714:2;12709:3;12705:12;12698:19;;12357:366;;;:::o;12729:118::-;12816:24;12834:5;12816:24;:::i;:::-;12811:3;12804:37;12729:118;;:::o;12853:112::-;12936:22;12952:5;12936:22;:::i;:::-;12931:3;12924:35;12853:112;;:::o;12971:222::-;13064:4;13102:2;13091:9;13087:18;13079:26;;13115:71;13183:1;13172:9;13168:17;13159:6;13115:71;:::i;:::-;12971:222;;;;:::o;13199:254::-;13308:4;13346:2;13335:9;13331:18;13323:26;;13359:87;13443:1;13432:9;13428:17;13419:6;13359:87;:::i;:::-;13199:254;;;;:::o;13459:332::-;13580:4;13618:2;13607:9;13603:18;13595:26;;13631:71;13699:1;13688:9;13684:17;13675:6;13631:71;:::i;:::-;13712:72;13780:2;13769:9;13765:18;13756:6;13712:72;:::i;:::-;13459:332;;;;;:::o;13797:::-;13918:4;13956:2;13945:9;13941:18;13933:26;;13969:71;14037:1;14026:9;14022:17;14013:6;13969:71;:::i;:::-;14050:72;14118:2;14107:9;14103:18;14094:6;14050:72;:::i;:::-;13797:332;;;;;:::o;14135:807::-;14384:4;14422:3;14411:9;14407:19;14399:27;;14436:71;14504:1;14493:9;14489:17;14480:6;14436:71;:::i;:::-;14517:72;14585:2;14574:9;14570:18;14561:6;14517:72;:::i;:::-;14599:80;14675:2;14664:9;14660:18;14651:6;14599:80;:::i;:::-;14689;14765:2;14754:9;14750:18;14741:6;14689:80;:::i;:::-;14779:73;14847:3;14836:9;14832:19;14823:6;14779:73;:::i;:::-;14862;14930:3;14919:9;14915:19;14906:6;14862:73;:::i;:::-;14135:807;;;;;;;;;:::o;14948:210::-;15035:4;15073:2;15062:9;15058:18;15050:26;;15086:65;15148:1;15137:9;15133:17;15124:6;15086:65;:::i;:::-;14948:210;;;;:::o;15164:313::-;15277:4;15315:2;15304:9;15300:18;15292:26;;15364:9;15358:4;15354:20;15350:1;15339:9;15335:17;15328:47;15392:78;15465:4;15456:6;15392:78;:::i;:::-;15384:86;;15164:313;;;;:::o;15483:419::-;15649:4;15687:2;15676:9;15672:18;15664:26;;15736:9;15730:4;15726:20;15722:1;15711:9;15707:17;15700:47;15764:131;15890:4;15764:131;:::i;:::-;15756:139;;15483:419;;;:::o;15908:::-;16074:4;16112:2;16101:9;16097:18;16089:26;;16161:9;16155:4;16151:20;16147:1;16136:9;16132:17;16125:47;16189:131;16315:4;16189:131;:::i;:::-;16181:139;;15908:419;;;:::o;16333:::-;16499:4;16537:2;16526:9;16522:18;16514:26;;16586:9;16580:4;16576:20;16572:1;16561:9;16557:17;16550:47;16614:131;16740:4;16614:131;:::i;:::-;16606:139;;16333:419;;;:::o;16758:::-;16924:4;16962:2;16951:9;16947:18;16939:26;;17011:9;17005:4;17001:20;16997:1;16986:9;16982:17;16975:47;17039:131;17165:4;17039:131;:::i;:::-;17031:139;;16758:419;;;:::o;17183:::-;17349:4;17387:2;17376:9;17372:18;17364:26;;17436:9;17430:4;17426:20;17422:1;17411:9;17407:17;17400:47;17464:131;17590:4;17464:131;:::i;:::-;17456:139;;17183:419;;;:::o;17608:::-;17774:4;17812:2;17801:9;17797:18;17789:26;;17861:9;17855:4;17851:20;17847:1;17836:9;17832:17;17825:47;17889:131;18015:4;17889:131;:::i;:::-;17881:139;;17608:419;;;:::o;18033:::-;18199:4;18237:2;18226:9;18222:18;18214:26;;18286:9;18280:4;18276:20;18272:1;18261:9;18257:17;18250:47;18314:131;18440:4;18314:131;:::i;:::-;18306:139;;18033:419;;;:::o;18458:::-;18624:4;18662:2;18651:9;18647:18;18639:26;;18711:9;18705:4;18701:20;18697:1;18686:9;18682:17;18675:47;18739:131;18865:4;18739:131;:::i;:::-;18731:139;;18458:419;;;:::o;18883:::-;19049:4;19087:2;19076:9;19072:18;19064:26;;19136:9;19130:4;19126:20;19122:1;19111:9;19107:17;19100:47;19164:131;19290:4;19164:131;:::i;:::-;19156:139;;18883:419;;;:::o;19308:::-;19474:4;19512:2;19501:9;19497:18;19489:26;;19561:9;19555:4;19551:20;19547:1;19536:9;19532:17;19525:47;19589:131;19715:4;19589:131;:::i;:::-;19581:139;;19308:419;;;:::o;19733:::-;19899:4;19937:2;19926:9;19922:18;19914:26;;19986:9;19980:4;19976:20;19972:1;19961:9;19957:17;19950:47;20014:131;20140:4;20014:131;:::i;:::-;20006:139;;19733:419;;;:::o;20158:222::-;20251:4;20289:2;20278:9;20274:18;20266:26;;20302:71;20370:1;20359:9;20355:17;20346:6;20302:71;:::i;:::-;20158:222;;;;:::o;20386:831::-;20649:4;20687:3;20676:9;20672:19;20664:27;;20701:71;20769:1;20758:9;20754:17;20745:6;20701:71;:::i;:::-;20782:80;20858:2;20847:9;20843:18;20834:6;20782:80;:::i;:::-;20909:9;20903:4;20899:20;20894:2;20883:9;20879:18;20872:48;20937:108;21040:4;21031:6;20937:108;:::i;:::-;20929:116;;21055:72;21123:2;21112:9;21108:18;21099:6;21055:72;:::i;:::-;21137:73;21205:3;21194:9;21190:19;21181:6;21137:73;:::i;:::-;20386:831;;;;;;;;:::o;21223:214::-;21312:4;21350:2;21339:9;21335:18;21327:26;;21363:67;21427:1;21416:9;21412:17;21403:6;21363:67;:::i;:::-;21223:214;;;;:::o;21443:129::-;21477:6;21504:20;;:::i;:::-;21494:30;;21533:33;21561:4;21553:6;21533:33;:::i;:::-;21443:129;;;:::o;21578:75::-;21611:6;21644:2;21638:9;21628:19;;21578:75;:::o;21659:311::-;21736:4;21826:18;21818:6;21815:30;21812:56;;;21848:18;;:::i;:::-;21812:56;21898:4;21890:6;21886:17;21878:25;;21958:4;21952;21948:15;21940:23;;21659:311;;;:::o;21976:132::-;22043:4;22066:3;22058:11;;22096:4;22091:3;22087:14;22079:22;;21976:132;;;:::o;22114:114::-;22181:6;22215:5;22209:12;22199:22;;22114:114;;;:::o;22234:99::-;22286:6;22320:5;22314:12;22304:22;;22234:99;;;:::o;22339:113::-;22409:4;22441;22436:3;22432:14;22424:22;;22339:113;;;:::o;22458:184::-;22557:11;22591:6;22586:3;22579:19;22631:4;22626:3;22622:14;22607:29;;22458:184;;;;:::o;22648:169::-;22732:11;22766:6;22761:3;22754:19;22806:4;22801:3;22797:14;22782:29;;22648:169;;;;:::o;22823:305::-;22863:3;22882:20;22900:1;22882:20;:::i;:::-;22877:25;;22916:20;22934:1;22916:20;:::i;:::-;22911:25;;23070:1;23002:66;22998:74;22995:1;22992:81;22989:107;;;23076:18;;:::i;:::-;22989:107;23120:1;23117;23113:9;23106:16;;22823:305;;;;:::o;23134:185::-;23174:1;23191:20;23209:1;23191:20;:::i;:::-;23186:25;;23225:20;23243:1;23225:20;:::i;:::-;23220:25;;23264:1;23254:35;;23269:18;;:::i;:::-;23254:35;23311:1;23308;23304:9;23299:14;;23134:185;;;;:::o;23325:348::-;23365:7;23388:20;23406:1;23388:20;:::i;:::-;23383:25;;23422:20;23440:1;23422:20;:::i;:::-;23417:25;;23610:1;23542:66;23538:74;23535:1;23532:81;23527:1;23520:9;23513:17;23509:105;23506:131;;;23617:18;;:::i;:::-;23506:131;23665:1;23662;23658:9;23647:20;;23325:348;;;;:::o;23679:191::-;23719:4;23739:20;23757:1;23739:20;:::i;:::-;23734:25;;23773:20;23791:1;23773:20;:::i;:::-;23768:25;;23812:1;23809;23806:8;23803:34;;;23817:18;;:::i;:::-;23803:34;23862:1;23859;23855:9;23847:17;;23679:191;;;;:::o;23876:96::-;23913:7;23942:24;23960:5;23942:24;:::i;:::-;23931:35;;23876:96;;;:::o;23978:104::-;24023:7;24052:24;24070:5;24052:24;:::i;:::-;24041:35;;23978:104;;;:::o;24088:90::-;24122:7;24165:5;24158:13;24151:21;24140:32;;24088:90;;;:::o;24184:126::-;24221:7;24261:42;24254:5;24250:54;24239:65;;24184:126;;;:::o;24316:77::-;24353:7;24382:5;24371:16;;24316:77;;;:::o;24399:86::-;24434:7;24474:4;24467:5;24463:16;24452:27;;24399:86;;;:::o;24491:121::-;24549:9;24582:24;24600:5;24582:24;:::i;:::-;24569:37;;24491:121;;;:::o;24618:307::-;24686:1;24696:113;24710:6;24707:1;24704:13;24696:113;;;24795:1;24790:3;24786:11;24780:18;24776:1;24771:3;24767:11;24760:39;24732:2;24729:1;24725:10;24720:15;;24696:113;;;24827:6;24824:1;24821:13;24818:101;;;24907:1;24898:6;24893:3;24889:16;24882:27;24818:101;24667:258;24618:307;;;:::o;24931:281::-;25014:27;25036:4;25014:27;:::i;:::-;25006:6;25002:40;25144:6;25132:10;25129:22;25108:18;25096:10;25093:34;25090:62;25087:88;;;25155:18;;:::i;:::-;25087:88;25195:10;25191:2;25184:22;24974:238;24931:281;;:::o;25218:233::-;25257:3;25280:24;25298:5;25280:24;:::i;:::-;25271:33;;25326:66;25319:5;25316:77;25313:103;;;25396:18;;:::i;:::-;25313:103;25443:1;25436:5;25432:13;25425:20;;25218:233;;;:::o;25457:180::-;25505:77;25502:1;25495:88;25602:4;25599:1;25592:15;25626:4;25623:1;25616:15;25643:180;25691:77;25688:1;25681:88;25788:4;25785:1;25778:15;25812:4;25809:1;25802:15;25829:180;25877:77;25874:1;25867:88;25974:4;25971:1;25964:15;25998:4;25995:1;25988:15;26015:180;26063:77;26060:1;26053:88;26160:4;26157:1;26150:15;26184:4;26181:1;26174:15;26201:117;26310:1;26307;26300:12;26324:117;26433:1;26430;26423:12;26447:117;26556:1;26553;26546:12;26570:117;26679:1;26676;26669:12;26693:102;26734:6;26785:2;26781:7;26776:2;26769:5;26765:14;26761:28;26751:38;;26693:102;;;:::o;26801:222::-;26941:34;26937:1;26929:6;26925:14;26918:58;27010:5;27005:2;26997:6;26993:15;26986:30;26801:222;:::o;27029:171::-;27169:23;27165:1;27157:6;27153:14;27146:47;27029:171;:::o;27206:229::-;27346:34;27342:1;27334:6;27330:14;27323:58;27415:12;27410:2;27402:6;27398:15;27391:37;27206:229;:::o;27441:221::-;27581:34;27577:1;27569:6;27565:14;27558:58;27650:4;27645:2;27637:6;27633:15;27626:29;27441:221;:::o;27668:177::-;27808:29;27804:1;27796:6;27792:14;27785:53;27668:177;:::o;27851:220::-;27991:34;27987:1;27979:6;27975:14;27968:58;28060:3;28055:2;28047:6;28043:15;28036:28;27851:220;:::o;28077:182::-;28217:34;28213:1;28205:6;28201:14;28194:58;28077:182;:::o;28265:228::-;28405:34;28401:1;28393:6;28389:14;28382:58;28474:11;28469:2;28461:6;28457:15;28450:36;28265:228;:::o;28499:224::-;28639:34;28635:1;28627:6;28623:14;28616:58;28708:7;28703:2;28695:6;28691:15;28684:32;28499:224;:::o;28729:223::-;28869:34;28865:1;28857:6;28853:14;28846:58;28938:6;28933:2;28925:6;28921:15;28914:31;28729:223;:::o;28958:173::-;29098:25;29094:1;29086:6;29082:14;29075:49;28958:173;:::o;29137:122::-;29210:24;29228:5;29210:24;:::i;:::-;29203:5;29200:35;29190:63;;29249:1;29246;29239:12;29190:63;29137:122;:::o;29265:116::-;29335:21;29350:5;29335:21;:::i;:::-;29328:5;29325:32;29315:60;;29371:1;29368;29361:12;29315:60;29265:116;:::o;29387:122::-;29460:24;29478:5;29460:24;:::i;:::-;29453:5;29450:35;29440:63;;29499:1;29496;29489:12;29440:63;29387:122;:::o

Swarm Source

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