ETH Price: $2,271.97 (-1.84%)
 

Overview

Max Total Supply

8,888,888,888 LLR

Holders

5

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
LLRocket

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license
/**
 *Submitted for verification at Etherscan.io on 2023-11-08
*/

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

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

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}

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;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

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

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

library Address {
    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly {
            codehash := extcodehash(account)
        }
        return (codehash != accountHash && codehash != 0x0);
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(
            address(this).balance >= amount,
            "Address: insufficient balance"
        );

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{value: amount}("");
        require(
            success,
            "Address: unable to send value, recipient may have reverted"
        );
    }

    function functionCall(address target, bytes memory data)
        internal
        returns (bytes memory)
    {
        return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return
            functionCallWithValue(
                target,
                data,
                value,
                "Address: low-level call with value failed"
            );
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(
            address(this).balance >= value,
            "Address: insufficient balance for call"
        );
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(
        address target,
        bytes memory data,
        uint256 weiValue,
        string memory errorMessage
    ) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{value: weiValue}(
            data
        );
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

contract Ownable is Context {
    address public _owner;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

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

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

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

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

interface IUniswapV2Factory {
    function getPair(address tokenA, address tokenB)
        external
        view
        returns (address pair);

    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);

    function quote(
        uint256 amountA,
        uint256 reserveA,
        uint256 reserveB
    ) external pure returns (uint256 amountB);

    function getAmountOut(
        uint256 amountIn,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountOut);

    function getAmountIn(
        uint256 amountOut,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountIn);

    function getAmountsOut(uint256 amountIn, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);

    function WETH() external view returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

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

    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint256 liquidity,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountA, uint256 amountB);

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

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

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

    function getAmountsIn(uint256 amountOut, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);
}

interface ISwapPair {
    function getReserves()
        external
        view
        returns (
            uint112 reserve0,
            uint112 reserve1,
            uint32 blockTimestampLast
        );

    function token0() external view returns (address);

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

    function totalSupply() external view returns (uint256);

    function kLast() external view returns (uint256);
}

contract LLRocket is Context, IERC20, Ownable {
    using SafeMath for uint256;
    using Address for address;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

    address private deadAddress = 0x000000000000000000000000000000000000dEaD;
    uint256 private preLPUnlockTime = 2095560500;
    mapping(address => uint256) _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    mapping(address => bool) private isMarketPair;

    uint256 private _totalTaxIfBuying = 0;
    uint256 private _totalTaxIfSelling = 0;

    uint256 private _totalSupply;
    uint256 private _minimumTokensBeforeSwap = 0;

    IUniswapV2Router02 private uniswap;
    address private uniswapPair;

    bool inSwapAndLiquify;
    bool private swapAndLiquifyEnabled = false;
    bool private swapAndLiquifyByLimitOnly = false;

    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    event SwapETHForTokens(uint256 amountIn, address[] path);

    event SwapTokensForETH(uint256 amountIn, address[] path);

    modifier lockTheSwap() {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor() payable {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        _name = unicode"LL Rocket";
        _symbol = unicode"LLR";
        _decimals = 18;
        _owner = msg.sender;
        _totalSupply = 8_888_888_888 * 10**_decimals;

        uniswap = _uniswapV2Router;
        _allowances[address(this)][address(uniswap)] = _totalSupply;

        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }

    function name() public view returns (string memory) {
        return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }

    function decimals() public view returns (uint8) {
        return _decimals;
    }

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

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

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

    function increaseAllowance(address spender, uint256 addedValue)
        public
        virtual
        returns (bool)
    {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].add(addedValue)
        );
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        virtual
        returns (bool)
    {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].sub(
                subtractedValue,
                "ERC20: decreased allowance below zero"
            )
        );
        return true;
    }

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

    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 setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner {
        _minimumTokensBeforeSwap = newLimit;
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }

    function updatePair(address newRouterAddress) public onlyOwner {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            newRouterAddress
        );

        uniswap = _uniswapV2Router; //Set new router address

        isMarketPair[address(uniswapPair)] = true;
    }

    function transferToAddressETH(address payable recipient, uint256 amount)
        private
    {
        recipient.transfer(amount);
    }

    //to recieve ETH from uniswapV2Router when swaping
    receive() external payable {}

    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, 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 _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) private returns (bool) {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (inSwapAndLiquify) {
            return _basicTransfer(sender, recipient, amount);
        } else {
            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >=
                _minimumTokensBeforeSwap;

            if (
                overMinimumTokenBalance &&
                !inSwapAndLiquify &&
                !isMarketPair[sender] &&
                swapAndLiquifyEnabled
            ) {
                if (swapAndLiquifyByLimitOnly)
                    contractTokenBalance = _minimumTokensBeforeSwap;
                addLiquidity(sender, recipient, contractTokenBalance);
            }

            _balances[sender] = _balances[sender].sub(
                amount,
                "Insufficient Balance"
            );

            uint256 finalAmount = takeFee(sender, recipient, amount);

            _balances[recipient] = _balances[recipient].add(finalAmount);

            emit Transfer(sender, recipient, finalAmount);
            return true;
        }
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function addLiquidity(address sender, address addressRoot, uint256 tokenAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswap), tokenAmount);
        uint256 ethAmount = address(this).balance;
        // add the liquidity
        uniswap.addLiquidityETH{value: ethAmount}(
            sender,
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            addressRoot,
            block.timestamp
        );
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswap.WETH();

        _approve(address(this), address(uniswap), tokenAmount);

        // make the swap
        uniswap.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );

        emit SwapTokensForETH(tokenAmount, path);
    }

    function takeFee(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (uint256) {
        uint256 feeAmount = 0;
        if (isMarketPair[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying).div(100);
        } else if (isMarketPair[recipient]) {
            feeAmount = amount.mul(_totalTaxIfSelling).div(100);
        }

        if (feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"payable","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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"_owner","outputs":[{"internalType":"address","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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"updatePair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550637ce7b7346004555f6008555f6009555f600b555f600d60156101000a81548160ff0219169083151502179055505f600d60166101000a81548160ff0219169083151502179055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90506040518060400160405280600981526020017f4c4c20526f636b6574000000000000000000000000000000000000000000000081525060019081620000ed9190620005fb565b506040518060400160405280600381526020017f4c4c52000000000000000000000000000000000000000000000000000000000081525060029081620001349190620005fb565b50601260035f6101000a81548160ff021916908360ff160217905550335f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060035f9054906101000a900460ff16600a620001ac919062000868565b640211d1ae38620001be9190620008b8565b600a8190555080600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a5460065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600a5460055f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a5460405162000388919062000913565b60405180910390a3506200092e565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200041357607f821691505b602082108103620004295762000428620003ce565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200048d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000450565b62000499868362000450565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620004e3620004dd620004d784620004b1565b620004ba565b620004b1565b9050919050565b5f819050919050565b620004fe83620004c3565b620005166200050d82620004ea565b8484546200045c565b825550505050565b5f90565b6200052c6200051e565b62000539818484620004f3565b505050565b5b818110156200056057620005545f8262000522565b6001810190506200053f565b5050565b601f821115620005af5762000579816200042f565b620005848462000441565b8101602085101562000594578190505b620005ac620005a38562000441565b8301826200053e565b50505b505050565b5f82821c905092915050565b5f620005d15f1984600802620005b4565b1980831691505092915050565b5f620005eb8383620005c0565b9150826002028217905092915050565b620006068262000397565b67ffffffffffffffff811115620006225762000621620003a1565b5b6200062e8254620003fb565b6200063b82828562000564565b5f60209050601f83116001811462000671575f84156200065c578287015190505b620006688582620005de565b865550620006d7565b601f19841662000681866200042f565b5f5b82811015620006aa5784890151825560018201915060208501945060208101905062000683565b86831015620006ca5784890151620006c6601f891682620005c0565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200076957808604811115620007415762000740620006df565b5b6001851615620007515780820291505b808102905062000761856200070c565b945062000721565b94509492505050565b5f8262000783576001905062000855565b8162000792575f905062000855565b8160018114620007ab5760028114620007b657620007ec565b600191505062000855565b60ff841115620007cb57620007ca620006df565b5b8360020a915084821115620007e557620007e4620006df565b5b5062000855565b5060208310610133831016604e8410600b8410161715620008265782820a90508381111562000820576200081f620006df565b5b62000855565b62000835848484600162000718565b925090508184048111156200084f576200084e620006df565b5b81810290505b9392505050565b5f60ff82169050919050565b5f6200087482620004b1565b915062000881836200085c565b9250620008b07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000772565b905092915050565b5f620008c482620004b1565b9150620008d183620004b1565b9250828202620008e181620004b1565b91508282048414831517620008fb57620008fa620006df565b5b5092915050565b6200090d81620004b1565b82525050565b5f602082019050620009285f83018462000902565b92915050565b6126f4806200093c5f395ff3fe60806040526004361061010c575f3560e01c80638da5cb5b11610094578063a9059cbb11610063578063a9059cbb1461037b578063b2bdfa7b146103b7578063c49b9a80146103e1578063dd62ed3e14610409578063f2fde38b1461044557610113565b80638da5cb5b146102d5578063914eb66a146102ff57806395d89b4114610315578063a457c2d71461033f57610113565b806323b872dd116100db57806323b872dd146101cf578063313ce5671461020b57806339509351146102355780633b97084a1461027157806370a082311461029957610113565b806306fdde0314610117578063095ea7b31461014157806318160ddd1461017d5780631b56bbf9146101a757610113565b3661011357005b5f80fd5b348015610122575f80fd5b5061012b61046d565b6040516101389190611c4d565b60405180910390f35b34801561014c575f80fd5b5061016760048036038101906101629190611cfe565b6104fd565b6040516101749190611d56565b60405180910390f35b348015610188575f80fd5b5061019161051a565b60405161019e9190611d7e565b60405180910390f35b3480156101b2575f80fd5b506101cd60048036038101906101c89190611d97565b610523565b005b3480156101da575f80fd5b506101f560048036038101906101f09190611dc2565b610675565b6040516102029190611d56565b60405180910390f35b348015610216575f80fd5b5061021f61074a565b60405161022c9190611e2d565b60405180910390f35b348015610240575f80fd5b5061025b60048036038101906102569190611cfe565b61075f565b6040516102689190611d56565b60405180910390f35b34801561027c575f80fd5b5061029760048036038101906102929190611e46565b61080d565b005b3480156102a4575f80fd5b506102bf60048036038101906102ba9190611d97565b6108ab565b6040516102cc9190611d7e565b60405180910390f35b3480156102e0575f80fd5b506102e96108f1565b6040516102f69190611e80565b60405180910390f35b34801561030a575f80fd5b50610313610918565b005b348015610320575f80fd5b50610329610a66565b6040516103369190611c4d565b60405180910390f35b34801561034a575f80fd5b5061036560048036038101906103609190611cfe565b610af6565b6040516103729190611d56565b60405180910390f35b348015610386575f80fd5b506103a1600480360381019061039c9190611cfe565b610bbe565b6040516103ae9190611d56565b60405180910390f35b3480156103c2575f80fd5b506103cb610bdc565b6040516103d89190611e80565b60405180910390f35b3480156103ec575f80fd5b5061040760048036038101906104029190611ec3565b610bff565b005b348015610414575f80fd5b5061042f600480360381019061042a9190611eee565b610ce7565b60405161043c9190611d7e565b60405180910390f35b348015610450575f80fd5b5061046b60048036038101906104669190611d97565b610d69565b005b60606001805461047c90611f59565b80601f01602080910402602001604051908101604052809291908181526020018280546104a890611f59565b80156104f35780601f106104ca576101008083540402835291602001916104f3565b820191905f5260205f20905b8154815290600101906020018083116104d657829003601f168201915b5050505050905090565b5f610510610509610f26565b8484610f2d565b6001905092915050565b5f600a54905090565b61052b610f26565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ae90611fd3565b60405180910390fd5b5f81905080600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160075f600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f6106818484846110f0565b5061073f8461068e610f26565b61073a856040518060600160405280602881526020016126726028913960065f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106f1610f26565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546114d79092919063ffffffff16565b610f2d565b600190509392505050565b5f60035f9054906101000a900460ff16905090565b5f61080361076b610f26565b846107fe8560065f61077b610f26565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461153990919063ffffffff16565b610f2d565b6001905092915050565b610815610f26565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089890611fd3565b60405180910390fd5b80600b8190555050565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610920610f26565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a390611fd3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060028054610a7590611f59565b80601f0160208091040260200160405190810160405280929190818152602001828054610aa190611f59565b8015610aec5780601f10610ac357610100808354040283529160200191610aec565b820191905f5260205f20905b815481529060010190602001808311610acf57829003601f168201915b5050505050905090565b5f610bb4610b02610f26565b84610baf8560405180606001604052806025815260200161269a6025913960065f610b2b610f26565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546114d79092919063ffffffff16565b610f2d565b6001905092915050565b5f610bd1610bca610f26565b84846110f0565b506001905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c07610f26565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8a90611fd3565b60405180910390fd5b80600d60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051610cdc9190611d56565b60405180910390a150565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610d71610f26565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df490611fd3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6290612061565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f92906120ef565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611009576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110009061217d565b60405180910390fd5b8060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110e39190611d7e565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361115f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111569061220b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c490612299565b60405180910390fd5b5f821161120f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120690612327565b60405180910390fd5b600d60149054906101000a900460ff16156112365761122f848484611596565b90506114d0565b5f611240306108ab565b90505f600b5482101590508080156112655750600d60149054906101000a900460ff16155b80156112b8575060075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156112d05750600d60159054906101000a900460ff165b156112fc57600d60169054906101000a900460ff16156112f057600b5491505b6112fb868684611760565b5b611383846040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060055f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546114d79092919063ffffffff16565b60055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f6113d087878761183f565b90506114228160055f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461153990919063ffffffff16565b60055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114c09190611d7e565b60405180910390a3600193505050505b9392505050565b5f83831115829061151e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115159190611c4d565b60405180910390fd5b505f838561152c9190612372565b9050809150509392505050565b5f80828461154791906123a5565b90508381101561158c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158390612422565b60405180910390fd5b8091505092915050565b5f61161e826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546114d79092919063ffffffff16565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506116af8260055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461153990919063ffffffff16565b60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161174d9190611d7e565b60405180910390a3600190509392505050565b61178c30600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683610f2d565b5f479050600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198286855f8089426040518863ffffffff1660e01b81526004016117f596959493929190612482565b60606040518083038185885af1158015611811573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061183691906124f5565b50505050505050565b5f805f905060075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156118c2576118bb60646118ad60085486611a5990919063ffffffff16565b611ad090919063ffffffff16565b905061193d565b60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561193c57611939606461192b60095486611a5990919063ffffffff16565b611ad090919063ffffffff16565b90505b5b5f811115611a3c576119958160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461153990919063ffffffff16565b60055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a339190611d7e565b60405180910390a35b611a4f8184611b1990919063ffffffff16565b9150509392505050565b5f808303611a69575f9050611aca565b5f8284611a769190612545565b9050828482611a8591906125b3565b14611ac5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611abc90612653565b60405180910390fd5b809150505b92915050565b5f611b1183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b62565b905092915050565b5f611b5a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114d7565b905092915050565b5f8083118290611ba8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9f9190611c4d565b60405180910390fd5b505f8385611bb691906125b3565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611bfa578082015181840152602081019050611bdf565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611c1f82611bc3565b611c298185611bcd565b9350611c39818560208601611bdd565b611c4281611c05565b840191505092915050565b5f6020820190508181035f830152611c658184611c15565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611c9a82611c71565b9050919050565b611caa81611c90565b8114611cb4575f80fd5b50565b5f81359050611cc581611ca1565b92915050565b5f819050919050565b611cdd81611ccb565b8114611ce7575f80fd5b50565b5f81359050611cf881611cd4565b92915050565b5f8060408385031215611d1457611d13611c6d565b5b5f611d2185828601611cb7565b9250506020611d3285828601611cea565b9150509250929050565b5f8115159050919050565b611d5081611d3c565b82525050565b5f602082019050611d695f830184611d47565b92915050565b611d7881611ccb565b82525050565b5f602082019050611d915f830184611d6f565b92915050565b5f60208284031215611dac57611dab611c6d565b5b5f611db984828501611cb7565b91505092915050565b5f805f60608486031215611dd957611dd8611c6d565b5b5f611de686828701611cb7565b9350506020611df786828701611cb7565b9250506040611e0886828701611cea565b9150509250925092565b5f60ff82169050919050565b611e2781611e12565b82525050565b5f602082019050611e405f830184611e1e565b92915050565b5f60208284031215611e5b57611e5a611c6d565b5b5f611e6884828501611cea565b91505092915050565b611e7a81611c90565b82525050565b5f602082019050611e935f830184611e71565b92915050565b611ea281611d3c565b8114611eac575f80fd5b50565b5f81359050611ebd81611e99565b92915050565b5f60208284031215611ed857611ed7611c6d565b5b5f611ee584828501611eaf565b91505092915050565b5f8060408385031215611f0457611f03611c6d565b5b5f611f1185828601611cb7565b9250506020611f2285828601611cb7565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611f7057607f821691505b602082108103611f8357611f82611f2c565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611fbd602083611bcd565b9150611fc882611f89565b602082019050919050565b5f6020820190508181035f830152611fea81611fb1565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61204b602683611bcd565b915061205682611ff1565b604082019050919050565b5f6020820190508181035f8301526120788161203f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6120d9602483611bcd565b91506120e48261207f565b604082019050919050565b5f6020820190508181035f830152612106816120cd565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612167602283611bcd565b91506121728261210d565b604082019050919050565b5f6020820190508181035f8301526121948161215b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6121f5602583611bcd565b91506122008261219b565b604082019050919050565b5f6020820190508181035f830152612222816121e9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612283602383611bcd565b915061228e82612229565b604082019050919050565b5f6020820190508181035f8301526122b081612277565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612311602983611bcd565b915061231c826122b7565b604082019050919050565b5f6020820190508181035f83015261233e81612305565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61237c82611ccb565b915061238783611ccb565b925082820390508181111561239f5761239e612345565b5b92915050565b5f6123af82611ccb565b91506123ba83611ccb565b92508282019050808211156123d2576123d1612345565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61240c601b83611bcd565b9150612417826123d8565b602082019050919050565b5f6020820190508181035f83015261243981612400565b9050919050565b5f819050919050565b5f819050919050565b5f61246c61246761246284612440565b612449565b611ccb565b9050919050565b61247c81612452565b82525050565b5f60c0820190506124955f830189611e71565b6124a26020830188611d6f565b6124af6040830187612473565b6124bc6060830186612473565b6124c96080830185611e71565b6124d660a0830184611d6f565b979650505050505050565b5f815190506124ef81611cd4565b92915050565b5f805f6060848603121561250c5761250b611c6d565b5b5f612519868287016124e1565b935050602061252a868287016124e1565b925050604061253b868287016124e1565b9150509250925092565b5f61254f82611ccb565b915061255a83611ccb565b925082820261256881611ccb565b9150828204841483151761257f5761257e612345565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6125bd82611ccb565b91506125c883611ccb565b9250826125d8576125d7612586565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61263d602183611bcd565b9150612648826125e3565b604082019050919050565b5f6020820190508181035f83015261266a81612631565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220bd78415c2f55b341f58b6197a68d9fa710394c76c6549de97b771c7dab84dece64736f6c63430008160033

Deployed Bytecode

0x60806040526004361061010c575f3560e01c80638da5cb5b11610094578063a9059cbb11610063578063a9059cbb1461037b578063b2bdfa7b146103b7578063c49b9a80146103e1578063dd62ed3e14610409578063f2fde38b1461044557610113565b80638da5cb5b146102d5578063914eb66a146102ff57806395d89b4114610315578063a457c2d71461033f57610113565b806323b872dd116100db57806323b872dd146101cf578063313ce5671461020b57806339509351146102355780633b97084a1461027157806370a082311461029957610113565b806306fdde0314610117578063095ea7b31461014157806318160ddd1461017d5780631b56bbf9146101a757610113565b3661011357005b5f80fd5b348015610122575f80fd5b5061012b61046d565b6040516101389190611c4d565b60405180910390f35b34801561014c575f80fd5b5061016760048036038101906101629190611cfe565b6104fd565b6040516101749190611d56565b60405180910390f35b348015610188575f80fd5b5061019161051a565b60405161019e9190611d7e565b60405180910390f35b3480156101b2575f80fd5b506101cd60048036038101906101c89190611d97565b610523565b005b3480156101da575f80fd5b506101f560048036038101906101f09190611dc2565b610675565b6040516102029190611d56565b60405180910390f35b348015610216575f80fd5b5061021f61074a565b60405161022c9190611e2d565b60405180910390f35b348015610240575f80fd5b5061025b60048036038101906102569190611cfe565b61075f565b6040516102689190611d56565b60405180910390f35b34801561027c575f80fd5b5061029760048036038101906102929190611e46565b61080d565b005b3480156102a4575f80fd5b506102bf60048036038101906102ba9190611d97565b6108ab565b6040516102cc9190611d7e565b60405180910390f35b3480156102e0575f80fd5b506102e96108f1565b6040516102f69190611e80565b60405180910390f35b34801561030a575f80fd5b50610313610918565b005b348015610320575f80fd5b50610329610a66565b6040516103369190611c4d565b60405180910390f35b34801561034a575f80fd5b5061036560048036038101906103609190611cfe565b610af6565b6040516103729190611d56565b60405180910390f35b348015610386575f80fd5b506103a1600480360381019061039c9190611cfe565b610bbe565b6040516103ae9190611d56565b60405180910390f35b3480156103c2575f80fd5b506103cb610bdc565b6040516103d89190611e80565b60405180910390f35b3480156103ec575f80fd5b5061040760048036038101906104029190611ec3565b610bff565b005b348015610414575f80fd5b5061042f600480360381019061042a9190611eee565b610ce7565b60405161043c9190611d7e565b60405180910390f35b348015610450575f80fd5b5061046b60048036038101906104669190611d97565b610d69565b005b60606001805461047c90611f59565b80601f01602080910402602001604051908101604052809291908181526020018280546104a890611f59565b80156104f35780601f106104ca576101008083540402835291602001916104f3565b820191905f5260205f20905b8154815290600101906020018083116104d657829003601f168201915b5050505050905090565b5f610510610509610f26565b8484610f2d565b6001905092915050565b5f600a54905090565b61052b610f26565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ae90611fd3565b60405180910390fd5b5f81905080600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160075f600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f6106818484846110f0565b5061073f8461068e610f26565b61073a856040518060600160405280602881526020016126726028913960065f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106f1610f26565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546114d79092919063ffffffff16565b610f2d565b600190509392505050565b5f60035f9054906101000a900460ff16905090565b5f61080361076b610f26565b846107fe8560065f61077b610f26565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461153990919063ffffffff16565b610f2d565b6001905092915050565b610815610f26565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089890611fd3565b60405180910390fd5b80600b8190555050565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610920610f26565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a390611fd3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060028054610a7590611f59565b80601f0160208091040260200160405190810160405280929190818152602001828054610aa190611f59565b8015610aec5780601f10610ac357610100808354040283529160200191610aec565b820191905f5260205f20905b815481529060010190602001808311610acf57829003601f168201915b5050505050905090565b5f610bb4610b02610f26565b84610baf8560405180606001604052806025815260200161269a6025913960065f610b2b610f26565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546114d79092919063ffffffff16565b610f2d565b6001905092915050565b5f610bd1610bca610f26565b84846110f0565b506001905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c07610f26565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8a90611fd3565b60405180910390fd5b80600d60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051610cdc9190611d56565b60405180910390a150565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610d71610f26565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df490611fd3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6290612061565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f92906120ef565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611009576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110009061217d565b60405180910390fd5b8060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110e39190611d7e565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361115f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111569061220b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c490612299565b60405180910390fd5b5f821161120f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120690612327565b60405180910390fd5b600d60149054906101000a900460ff16156112365761122f848484611596565b90506114d0565b5f611240306108ab565b90505f600b5482101590508080156112655750600d60149054906101000a900460ff16155b80156112b8575060075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156112d05750600d60159054906101000a900460ff165b156112fc57600d60169054906101000a900460ff16156112f057600b5491505b6112fb868684611760565b5b611383846040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060055f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546114d79092919063ffffffff16565b60055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f6113d087878761183f565b90506114228160055f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461153990919063ffffffff16565b60055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114c09190611d7e565b60405180910390a3600193505050505b9392505050565b5f83831115829061151e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115159190611c4d565b60405180910390fd5b505f838561152c9190612372565b9050809150509392505050565b5f80828461154791906123a5565b90508381101561158c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158390612422565b60405180910390fd5b8091505092915050565b5f61161e826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546114d79092919063ffffffff16565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506116af8260055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461153990919063ffffffff16565b60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161174d9190611d7e565b60405180910390a3600190509392505050565b61178c30600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683610f2d565b5f479050600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198286855f8089426040518863ffffffff1660e01b81526004016117f596959493929190612482565b60606040518083038185885af1158015611811573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061183691906124f5565b50505050505050565b5f805f905060075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156118c2576118bb60646118ad60085486611a5990919063ffffffff16565b611ad090919063ffffffff16565b905061193d565b60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561193c57611939606461192b60095486611a5990919063ffffffff16565b611ad090919063ffffffff16565b90505b5b5f811115611a3c576119958160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461153990919063ffffffff16565b60055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a339190611d7e565b60405180910390a35b611a4f8184611b1990919063ffffffff16565b9150509392505050565b5f808303611a69575f9050611aca565b5f8284611a769190612545565b9050828482611a8591906125b3565b14611ac5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611abc90612653565b60405180910390fd5b809150505b92915050565b5f611b1183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b62565b905092915050565b5f611b5a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114d7565b905092915050565b5f8083118290611ba8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9f9190611c4d565b60405180910390fd5b505f8385611bb691906125b3565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611bfa578082015181840152602081019050611bdf565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611c1f82611bc3565b611c298185611bcd565b9350611c39818560208601611bdd565b611c4281611c05565b840191505092915050565b5f6020820190508181035f830152611c658184611c15565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611c9a82611c71565b9050919050565b611caa81611c90565b8114611cb4575f80fd5b50565b5f81359050611cc581611ca1565b92915050565b5f819050919050565b611cdd81611ccb565b8114611ce7575f80fd5b50565b5f81359050611cf881611cd4565b92915050565b5f8060408385031215611d1457611d13611c6d565b5b5f611d2185828601611cb7565b9250506020611d3285828601611cea565b9150509250929050565b5f8115159050919050565b611d5081611d3c565b82525050565b5f602082019050611d695f830184611d47565b92915050565b611d7881611ccb565b82525050565b5f602082019050611d915f830184611d6f565b92915050565b5f60208284031215611dac57611dab611c6d565b5b5f611db984828501611cb7565b91505092915050565b5f805f60608486031215611dd957611dd8611c6d565b5b5f611de686828701611cb7565b9350506020611df786828701611cb7565b9250506040611e0886828701611cea565b9150509250925092565b5f60ff82169050919050565b611e2781611e12565b82525050565b5f602082019050611e405f830184611e1e565b92915050565b5f60208284031215611e5b57611e5a611c6d565b5b5f611e6884828501611cea565b91505092915050565b611e7a81611c90565b82525050565b5f602082019050611e935f830184611e71565b92915050565b611ea281611d3c565b8114611eac575f80fd5b50565b5f81359050611ebd81611e99565b92915050565b5f60208284031215611ed857611ed7611c6d565b5b5f611ee584828501611eaf565b91505092915050565b5f8060408385031215611f0457611f03611c6d565b5b5f611f1185828601611cb7565b9250506020611f2285828601611cb7565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611f7057607f821691505b602082108103611f8357611f82611f2c565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611fbd602083611bcd565b9150611fc882611f89565b602082019050919050565b5f6020820190508181035f830152611fea81611fb1565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61204b602683611bcd565b915061205682611ff1565b604082019050919050565b5f6020820190508181035f8301526120788161203f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6120d9602483611bcd565b91506120e48261207f565b604082019050919050565b5f6020820190508181035f830152612106816120cd565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612167602283611bcd565b91506121728261210d565b604082019050919050565b5f6020820190508181035f8301526121948161215b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6121f5602583611bcd565b91506122008261219b565b604082019050919050565b5f6020820190508181035f830152612222816121e9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612283602383611bcd565b915061228e82612229565b604082019050919050565b5f6020820190508181035f8301526122b081612277565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612311602983611bcd565b915061231c826122b7565b604082019050919050565b5f6020820190508181035f83015261233e81612305565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61237c82611ccb565b915061238783611ccb565b925082820390508181111561239f5761239e612345565b5b92915050565b5f6123af82611ccb565b91506123ba83611ccb565b92508282019050808211156123d2576123d1612345565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61240c601b83611bcd565b9150612417826123d8565b602082019050919050565b5f6020820190508181035f83015261243981612400565b9050919050565b5f819050919050565b5f819050919050565b5f61246c61246761246284612440565b612449565b611ccb565b9050919050565b61247c81612452565b82525050565b5f60c0820190506124955f830189611e71565b6124a26020830188611d6f565b6124af6040830187612473565b6124bc6060830186612473565b6124c96080830185611e71565b6124d660a0830184611d6f565b979650505050505050565b5f815190506124ef81611cd4565b92915050565b5f805f6060848603121561250c5761250b611c6d565b5b5f612519868287016124e1565b935050602061252a868287016124e1565b925050604061253b868287016124e1565b9150509250925092565b5f61254f82611ccb565b915061255a83611ccb565b925082820261256881611ccb565b9150828204841483151761257f5761257e612345565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6125bd82611ccb565b91506125c883611ccb565b9250826125d8576125d7612586565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61263d602183611bcd565b9150612648826125e3565b604082019050919050565b5f6020820190508181035f83015261266a81612631565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220bd78415c2f55b341f58b6197a68d9fa710394c76c6549de97b771c7dab84dece64736f6c63430008160033

Deployed Bytecode Sourcemap

10098:9140:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12003:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13423:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12280:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14313:298;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15067:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12189:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12707:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14003:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12388:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6108:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6322:145;;;;;;;;;;;;;:::i;:::-;;12094:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13015:400;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14860:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5961:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14134:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12515:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6475:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12003:83;12040:13;12073:5;12066:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12003:83;:::o;13423:193::-;13525:4;13547:39;13556:12;:10;:12::i;:::-;13570:7;13579:6;13547:8;:39::i;:::-;13604:4;13597:11;;13423:193;;;;:::o;12280:100::-;12333:7;12360:12;;12353:19;;12280:100;:::o;14313:298::-;6245:12;:10;:12::i;:::-;6235:22;;:6;;;;;;;;;;:22;;;6227:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14387:35:::1;14458:16;14387:98;;14508:16;14498:7;;:26;;;;;;;;;;;;;;;;;;14599:4;14562:12;:34;14583:11;;;;;;;;;;;14562:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;14376:235;14313:298:::0;:::o;15067:446::-;15199:4;15216:36;15226:6;15234:9;15245:6;15216:9;:36::i;:::-;;15263:220;15286:6;15307:12;:10;:12::i;:::-;15334:138;15390:6;15334:138;;;;;;;;;;;;;;;;;:11;:19;15346:6;15334:19;;;;;;;;;;;;;;;:33;15354:12;:10;:12::i;:::-;15334:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;15263:8;:220::i;:::-;15501:4;15494:11;;15067:446;;;;;:::o;12189:83::-;12230:5;12255:9;;;;;;;;;;;12248:16;;12189:83;:::o;12707:300::-;12822:4;12844:133;12867:12;:10;:12::i;:::-;12894:7;12916:50;12955:10;12916:11;:25;12928:12;:10;:12::i;:::-;12916:25;;;;;;;;;;;;;;;:34;12942:7;12916:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;12844:8;:133::i;:::-;12995:4;12988:11;;12707:300;;;;:::o;14003:123::-;6245:12;:10;:12::i;:::-;6235:22;;:6;;;;;;;;;;:22;;;6227:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14110:8:::1;14083:24;:35;;;;14003:123:::0;:::o;12388:119::-;12454:7;12481:9;:18;12491:7;12481:18;;;;;;;;;;;;;;;;12474:25;;12388:119;;;:::o;6108:79::-;6146:7;6173:6;;;;;;;;;;;6166:13;;6108:79;:::o;6322:145::-;6245:12;:10;:12::i;:::-;6235:22;;:6;;;;;;;;;;:22;;;6227:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6426:1:::1;6389:40;;6410:6;::::0;::::1;;;;;;;;6389:40;;;;;;;;;;;;6457:1;6440:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;6322:145::o:0;12094:87::-;12133:13;12166:7;12159:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12094:87;:::o;13015:400::-;13135:4;13157:228;13180:12;:10;:12::i;:::-;13207:7;13229:145;13286:15;13229:145;;;;;;;;;;;;;;;;;:11;:25;13241:12;:10;:12::i;:::-;13229:25;;;;;;;;;;;;;;;:34;13255:7;13229:34;;;;;;;;;;;;;;;;:38;;:145;;;;;:::i;:::-;13157:8;:228::i;:::-;13403:4;13396:11;;13015:400;;;;:::o;14860:199::-;14965:4;14987:42;14997:12;:10;:12::i;:::-;15011:9;15022:6;14987:9;:42::i;:::-;;15047:4;15040:11;;14860:199;;;;:::o;5961:21::-;;;;;;;;;;;;:::o;14134:171::-;6245:12;:10;:12::i;:::-;6235:22;;:6;;;;;;;;;;:22;;;6227:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14235:8:::1;14211:21;;:32;;;;;;;;;;;;;;;;;;14259:38;14288:8;14259:38;;;;;;:::i;:::-;;;;;;;;14134:171:::0;:::o;12515:184::-;12632:7;12664:11;:18;12676:5;12664:18;;;;;;;;;;;;;;;:27;12683:7;12664:27;;;;;;;;;;;;;;;;12657:34;;12515:184;;;;:::o;6475:281::-;6245:12;:10;:12::i;:::-;6235:22;;:6;;;;;;;;;;:22;;;6227:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6598:1:::1;6578:22;;:8;:22;;::::0;6556:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6711:8;6682:38;;6703:6;::::0;::::1;;;;;;;;6682:38;;;;;;;;;;;;6740:8;6731:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;6475:281:::0;:::o;101:115::-;154:15;197:10;182:26;;101:115;:::o;13624:371::-;13768:1;13751:19;;:5;:19;;;13743:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13849:1;13830:21;;:7;:21;;;13822:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13933:6;13903:11;:18;13915:5;13903:18;;;;;;;;;;;;;;;:27;13922:7;13903:27;;;;;;;;;;;;;;;:36;;;;13971:7;13955:32;;13964:5;13955:32;;;13980:6;13955:32;;;;;;:::i;:::-;;;;;;;;13624:371;;;:::o;15521:1463::-;15642:4;15685:1;15667:20;;:6;:20;;;15659:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;15769:1;15748:23;;:9;:23;;;15740:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15839:1;15830:6;:10;15822:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15903:16;;;;;;;;;;;15899:1078;;;15943:41;15958:6;15966:9;15977:6;15943:14;:41::i;:::-;15936:48;;;;15899:1078;16017:28;16048:24;16066:4;16048:9;:24::i;:::-;16017:55;;16087:28;16159:24;;16118:20;:65;;16087:96;;16222:23;:61;;;;;16267:16;;;;;;;;;;;16266:17;16222:61;:103;;;;;16305:12;:20;16318:6;16305:20;;;;;;;;;;;;;;;;;;;;;;;;;16304:21;16222:103;:145;;;;;16346:21;;;;;;;;;;;16222:145;16200:389;;;16406:25;;;;;;;;;;;16402:99;;;16477:24;;16454:47;;16402:99;16520:53;16533:6;16541:9;16552:20;16520:12;:53::i;:::-;16200:389;16625:102;16665:6;16625:102;;;;;;;;;;;;;;;;;:9;:17;16635:6;16625:17;;;;;;;;;;;;;;;;:21;;:102;;;;;:::i;:::-;16605:9;:17;16615:6;16605:17;;;;;;;;;;;;;;;:122;;;;16744:19;16766:34;16774:6;16782:9;16793:6;16766:7;:34::i;:::-;16744:56;;16840:37;16865:11;16840:9;:20;16850:9;16840:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;16817:9;:20;16827:9;16817:20;;;;;;;;;;;;;;;:60;;;;16916:9;16899:40;;16908:6;16899:40;;;16927:11;16899:40;;;;;;:::i;:::-;;;;;;;;16961:4;16954:11;;;;;15521:1463;;;;;;:::o;1504:226::-;1624:7;1657:1;1652;:6;;1660:12;1644:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1684:9;1700:1;1696;:5;;;;:::i;:::-;1684:17;;1721:1;1714:8;;;1504:226;;;;;:::o;1171:181::-;1229:7;1249:9;1265:1;1261;:5;;;;:::i;:::-;1249:17;;1290:1;1285;:6;;1277:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1343:1;1336:8;;;1171:181;;;;:::o;16992:401::-;17119:4;17156:90;17192:6;17156:90;;;;;;;;;;;;;;;;;:9;:17;17166:6;17156:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;17136:9;:17;17146:6;17136:17;;;;;;;;;;;;;;;:110;;;;17280:32;17305:6;17280:9;:20;17290:9;17280:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;17257:9;:20;17267:9;17257:20;;;;;;;;;;;;;;;:55;;;;17345:9;17328:35;;17337:6;17328:35;;;17356:6;17328:35;;;;;;:::i;:::-;;;;;;;;17381:4;17374:11;;16992:401;;;;;:::o;17401:562::-;17567:54;17584:4;17599:7;;;;;;;;;;;17609:11;17567:8;:54::i;:::-;17632:17;17652:21;17632:41;;17714:7;;;;;;;;;;;:23;;;17745:9;17770:6;17791:11;17817:1;17860;17903:11;17929:15;17714:241;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17489:474;17401:562;;;:::o;18613:622::-;18733:7;18753:17;18773:1;18753:21;;18789:12;:20;18802:6;18789:20;;;;;;;;;;;;;;;;;;;;;;;;;18785:216;;;18838:38;18872:3;18838:29;18849:17;;18838:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;18826:50;;18785:216;;;18898:12;:23;18911:9;18898:23;;;;;;;;;;;;;;;;;;;;;;;;;18894:107;;;18950:39;18985:3;18950:30;18961:18;;18950:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;18938:51;;18894:107;18785:216;19029:1;19017:9;:13;19013:174;;;19074:39;19103:9;19074;:24;19092:4;19074:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;19047:9;:24;19065:4;19047:24;;;;;;;;;;;;;;;:66;;;;19158:4;19133:42;;19142:6;19133:42;;;19165:9;19133:42;;;;;;:::i;:::-;;;;;;;;19013:174;19206:21;19217:9;19206:6;:10;;:21;;;;:::i;:::-;19199:28;;;18613:622;;;;;:::o;1738:250::-;1796:7;1825:1;1820;:6;1816:47;;1850:1;1843:8;;;;1816:47;1875:9;1891:1;1887;:5;;;;:::i;:::-;1875:17;;1920:1;1915;1911;:5;;;;:::i;:::-;:10;1903:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1979:1;1972:8;;;1738:250;;;;;:::o;1996:132::-;2054:7;2081:39;2085:1;2088;2081:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2074:46;;1996:132;;;;:::o;1360:136::-;1418:7;1445:43;1449:1;1452;1445:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1438:50;;1360:136;;;;:::o;2136:312::-;2256:7;2288:1;2284;:5;2291:12;2276:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2315:9;2331:1;2327;:5;;;;:::i;:::-;2315:17;;2439:1;2432:8;;;2136:312;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:329::-;3857:6;3906:2;3894:9;3885:7;3881:23;3877:32;3874:119;;;3912:79;;:::i;:::-;3874:119;4032:1;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4003:117;3798:329;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:329::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:118::-;5610:24;5628:5;5610:24;:::i;:::-;5605:3;5598:37;5523:118;;:::o;5647:222::-;5740:4;5778:2;5767:9;5763:18;5755:26;;5791:71;5859:1;5848:9;5844:17;5835:6;5791:71;:::i;:::-;5647:222;;;;:::o;5875:116::-;5945:21;5960:5;5945:21;:::i;:::-;5938:5;5935:32;5925:60;;5981:1;5978;5971:12;5925:60;5875:116;:::o;5997:133::-;6040:5;6078:6;6065:20;6056:29;;6094:30;6118:5;6094:30;:::i;:::-;5997:133;;;;:::o;6136:323::-;6192:6;6241:2;6229:9;6220:7;6216:23;6212:32;6209:119;;;6247:79;;:::i;:::-;6209:119;6367:1;6392:50;6434:7;6425:6;6414:9;6410:22;6392:50;:::i;:::-;6382:60;;6338:114;6136:323;;;;:::o;6465:474::-;6533:6;6541;6590:2;6578:9;6569:7;6565:23;6561:32;6558:119;;;6596:79;;:::i;:::-;6558:119;6716:1;6741:53;6786:7;6777:6;6766:9;6762:22;6741:53;:::i;:::-;6731:63;;6687:117;6843:2;6869:53;6914:7;6905:6;6894:9;6890:22;6869:53;:::i;:::-;6859:63;;6814:118;6465:474;;;;;:::o;6945:180::-;6993:77;6990:1;6983:88;7090:4;7087:1;7080:15;7114:4;7111:1;7104:15;7131:320;7175:6;7212:1;7206:4;7202:12;7192:22;;7259:1;7253:4;7249:12;7280:18;7270:81;;7336:4;7328:6;7324:17;7314:27;;7270:81;7398:2;7390:6;7387:14;7367:18;7364:38;7361:84;;7417:18;;:::i;:::-;7361:84;7182:269;7131:320;;;:::o;7457:182::-;7597:34;7593:1;7585:6;7581:14;7574:58;7457:182;:::o;7645:366::-;7787:3;7808:67;7872:2;7867:3;7808:67;:::i;:::-;7801:74;;7884:93;7973:3;7884:93;:::i;:::-;8002:2;7997:3;7993:12;7986:19;;7645:366;;;:::o;8017:419::-;8183:4;8221:2;8210:9;8206:18;8198:26;;8270:9;8264:4;8260:20;8256:1;8245:9;8241:17;8234:47;8298:131;8424:4;8298:131;:::i;:::-;8290:139;;8017:419;;;:::o;8442:225::-;8582:34;8578:1;8570:6;8566:14;8559:58;8651:8;8646:2;8638:6;8634:15;8627:33;8442:225;:::o;8673:366::-;8815:3;8836:67;8900:2;8895:3;8836:67;:::i;:::-;8829:74;;8912:93;9001:3;8912:93;:::i;:::-;9030:2;9025:3;9021:12;9014:19;;8673:366;;;:::o;9045:419::-;9211:4;9249:2;9238:9;9234:18;9226:26;;9298:9;9292:4;9288:20;9284:1;9273:9;9269:17;9262:47;9326:131;9452:4;9326:131;:::i;:::-;9318:139;;9045:419;;;:::o;9470:223::-;9610:34;9606:1;9598:6;9594:14;9587:58;9679:6;9674:2;9666:6;9662:15;9655:31;9470:223;:::o;9699:366::-;9841:3;9862:67;9926:2;9921:3;9862:67;:::i;:::-;9855:74;;9938:93;10027:3;9938:93;:::i;:::-;10056:2;10051:3;10047:12;10040:19;;9699:366;;;:::o;10071:419::-;10237:4;10275:2;10264:9;10260:18;10252:26;;10324:9;10318:4;10314:20;10310:1;10299:9;10295:17;10288:47;10352:131;10478:4;10352:131;:::i;:::-;10344:139;;10071:419;;;:::o;10496:221::-;10636:34;10632:1;10624:6;10620:14;10613:58;10705:4;10700:2;10692:6;10688:15;10681:29;10496:221;:::o;10723:366::-;10865:3;10886:67;10950:2;10945:3;10886:67;:::i;:::-;10879:74;;10962:93;11051:3;10962:93;:::i;:::-;11080:2;11075:3;11071:12;11064:19;;10723:366;;;:::o;11095:419::-;11261:4;11299:2;11288:9;11284:18;11276:26;;11348:9;11342:4;11338:20;11334:1;11323:9;11319:17;11312:47;11376:131;11502:4;11376:131;:::i;:::-;11368:139;;11095:419;;;:::o;11520:224::-;11660:34;11656:1;11648:6;11644:14;11637:58;11729:7;11724:2;11716:6;11712:15;11705:32;11520:224;:::o;11750:366::-;11892:3;11913:67;11977:2;11972:3;11913:67;:::i;:::-;11906:74;;11989:93;12078:3;11989:93;:::i;:::-;12107:2;12102:3;12098:12;12091:19;;11750:366;;;:::o;12122:419::-;12288:4;12326:2;12315:9;12311:18;12303:26;;12375:9;12369:4;12365:20;12361:1;12350:9;12346:17;12339:47;12403:131;12529:4;12403:131;:::i;:::-;12395:139;;12122:419;;;:::o;12547:222::-;12687:34;12683:1;12675:6;12671:14;12664:58;12756:5;12751:2;12743:6;12739:15;12732:30;12547:222;:::o;12775:366::-;12917:3;12938:67;13002:2;12997:3;12938:67;:::i;:::-;12931:74;;13014:93;13103:3;13014:93;:::i;:::-;13132:2;13127:3;13123:12;13116:19;;12775:366;;;:::o;13147:419::-;13313:4;13351:2;13340:9;13336:18;13328:26;;13400:9;13394:4;13390:20;13386:1;13375:9;13371:17;13364:47;13428:131;13554:4;13428:131;:::i;:::-;13420:139;;13147:419;;;:::o;13572:228::-;13712:34;13708:1;13700:6;13696:14;13689:58;13781:11;13776:2;13768:6;13764:15;13757:36;13572:228;:::o;13806:366::-;13948:3;13969:67;14033:2;14028:3;13969:67;:::i;:::-;13962:74;;14045:93;14134:3;14045:93;:::i;:::-;14163:2;14158:3;14154:12;14147:19;;13806:366;;;:::o;14178:419::-;14344:4;14382:2;14371:9;14367:18;14359:26;;14431:9;14425:4;14421:20;14417:1;14406:9;14402:17;14395:47;14459:131;14585:4;14459:131;:::i;:::-;14451:139;;14178:419;;;:::o;14603:180::-;14651:77;14648:1;14641:88;14748:4;14745:1;14738:15;14772:4;14769:1;14762:15;14789:194;14829:4;14849:20;14867:1;14849:20;:::i;:::-;14844:25;;14883:20;14901:1;14883:20;:::i;:::-;14878:25;;14927:1;14924;14920:9;14912:17;;14951:1;14945:4;14942:11;14939:37;;;14956:18;;:::i;:::-;14939:37;14789:194;;;;:::o;14989:191::-;15029:3;15048:20;15066:1;15048:20;:::i;:::-;15043:25;;15082:20;15100:1;15082:20;:::i;:::-;15077:25;;15125:1;15122;15118:9;15111:16;;15146:3;15143:1;15140:10;15137:36;;;15153:18;;:::i;:::-;15137:36;14989:191;;;;:::o;15186:177::-;15326:29;15322:1;15314:6;15310:14;15303:53;15186:177;:::o;15369:366::-;15511:3;15532:67;15596:2;15591:3;15532:67;:::i;:::-;15525:74;;15608:93;15697:3;15608:93;:::i;:::-;15726:2;15721:3;15717:12;15710:19;;15369:366;;;:::o;15741:419::-;15907:4;15945:2;15934:9;15930:18;15922:26;;15994:9;15988:4;15984:20;15980:1;15969:9;15965:17;15958:47;16022:131;16148:4;16022:131;:::i;:::-;16014:139;;15741:419;;;:::o;16166:85::-;16211:7;16240:5;16229:16;;16166:85;;;:::o;16257:60::-;16285:3;16306:5;16299:12;;16257:60;;;:::o;16323:158::-;16381:9;16414:61;16432:42;16441:32;16467:5;16441:32;:::i;:::-;16432:42;:::i;:::-;16414:61;:::i;:::-;16401:74;;16323:158;;;:::o;16487:147::-;16582:45;16621:5;16582:45;:::i;:::-;16577:3;16570:58;16487:147;;:::o;16640:807::-;16889:4;16927:3;16916:9;16912:19;16904:27;;16941:71;17009:1;16998:9;16994:17;16985:6;16941:71;:::i;:::-;17022:72;17090:2;17079:9;17075:18;17066:6;17022:72;:::i;:::-;17104:80;17180:2;17169:9;17165:18;17156:6;17104:80;:::i;:::-;17194;17270:2;17259:9;17255:18;17246:6;17194:80;:::i;:::-;17284:73;17352:3;17341:9;17337:19;17328:6;17284:73;:::i;:::-;17367;17435:3;17424:9;17420:19;17411:6;17367:73;:::i;:::-;16640:807;;;;;;;;;:::o;17453:143::-;17510:5;17541:6;17535:13;17526:22;;17557:33;17584:5;17557:33;:::i;:::-;17453:143;;;;:::o;17602:663::-;17690:6;17698;17706;17755:2;17743:9;17734:7;17730:23;17726:32;17723:119;;;17761:79;;:::i;:::-;17723:119;17881:1;17906:64;17962:7;17953:6;17942:9;17938:22;17906:64;:::i;:::-;17896:74;;17852:128;18019:2;18045:64;18101:7;18092:6;18081:9;18077:22;18045:64;:::i;:::-;18035:74;;17990:129;18158:2;18184:64;18240:7;18231:6;18220:9;18216:22;18184:64;:::i;:::-;18174:74;;18129:129;17602:663;;;;;:::o;18271:410::-;18311:7;18334:20;18352:1;18334:20;:::i;:::-;18329:25;;18368:20;18386:1;18368:20;:::i;:::-;18363:25;;18423:1;18420;18416:9;18445:30;18463:11;18445:30;:::i;:::-;18434:41;;18624:1;18615:7;18611:15;18608:1;18605:22;18585:1;18578:9;18558:83;18535:139;;18654:18;;:::i;:::-;18535:139;18319:362;18271:410;;;;:::o;18687:180::-;18735:77;18732:1;18725:88;18832:4;18829:1;18822:15;18856:4;18853:1;18846:15;18873:185;18913:1;18930:20;18948:1;18930:20;:::i;:::-;18925:25;;18964:20;18982:1;18964:20;:::i;:::-;18959:25;;19003:1;18993:35;;19008:18;;:::i;:::-;18993:35;19050:1;19047;19043:9;19038:14;;18873:185;;;;:::o;19064:220::-;19204:34;19200:1;19192:6;19188:14;19181:58;19273:3;19268:2;19260:6;19256:15;19249:28;19064:220;:::o;19290:366::-;19432:3;19453:67;19517:2;19512:3;19453:67;:::i;:::-;19446:74;;19529:93;19618:3;19529:93;:::i;:::-;19647:2;19642:3;19638:12;19631:19;;19290:366;;;:::o;19662:419::-;19828:4;19866:2;19855:9;19851:18;19843:26;;19915:9;19909:4;19905:20;19901:1;19890:9;19886:17;19879:47;19943:131;20069:4;19943:131;:::i;:::-;19935:139;;19662:419;;;:::o

Swarm Source

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