ETH Price: $3,324.39 (+2.30%)
Gas: 3 Gwei

Token

Unimate (MATE)
 

Overview

Max Total Supply

100,000,000 MATE

Holders

326

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
2,924.451574106 MATE

Value
$0.00
0x25e265c59b466f4897891d7aad402695e3233e57
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:
UNIMATE

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-07
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.9; 

// $UNIMATE


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

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

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

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

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

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

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

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

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

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

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

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

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

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

}

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

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

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

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

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

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract UNIMATE is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "Unimate";
    string private constant _symbol = "MATE";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 10;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 40;

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

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

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

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

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

    uint256 public _maxTxAmount = 2000000 * 10**9;
    uint256 public _maxWalletSize = 2000000 * 10**9;
    uint256 public _swapTokensAtAmount = 289000 * 10**9;
bool public initialized;
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    modifier initializer() {
        require(!initialized, "uniswapV2Pair is already initialized");
        _;

    }

    constructor() {

        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        uniswapV2Router = _uniswapV2Router;

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }
    function changeUniSwapPairAddress(address newPair) public initializer onlyOwner
    {
        uniswapV2Pair = newPair;
        initialized=true;
    }

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

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

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

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

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (from != owner() && to != owner()) {

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

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

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

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

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

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

        bool takeFee = true;

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

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

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

        }

        _tokenTransfer(from, to, amount, takeFee);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }

    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }

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

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

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

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

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

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

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

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

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

    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

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

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

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

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

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

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newPair","type":"address"}],"name":"changeUniSwapPairAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405267016345785d8a00006000196200001c919062000585565b6000196200002b9190620005ec565b6006556000600855600a6009556000600a556028600b55600a54600c55600b54600d55600c54600e55600d54600f557316f7fde3b3b34a59550e2054fc5df9da821129b3601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507316f7fde3b3b34a59550e2054fc5df9da821129b3601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601560146101000a81548160ff02191690831515021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff02191690831515021790555066071afd498d000060165566071afd498d0000601755660106d80e5710006018553480156200018257600080fd5b506000620001956200051b60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200024a6200051b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620002f86200052360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004a56200051b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a00006040516200050c919062000638565b60405180910390a35062000655565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000592826200054c565b91506200059f836200054c565b925082620005b257620005b162000556565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620005f9826200054c565b915062000606836200054c565b9250828210156200061c576200061b620005bd565b5b828203905092915050565b62000632816200054c565b82525050565b60006020820190506200064f600083018462000627565b92915050565b61403380620006656000396000f3fe6080604052600436106101e65760003560e01c806374010ece11610102578063a2a957bb11610095578063c492f04611610064578063c492f046146106c6578063dd62ed3e146106ef578063ea1644d51461072c578063f2fde38b14610755576101ed565b8063a2a957bb1461060c578063a9059cbb14610635578063bfd7928414610672578063c3c8cd80146106af576101ed565b80638f70ccf7116100d15780638f70ccf7146105645780638f9a55c01461058d57806395d89b41146105b857806398a5c315146105e3576101ed565b806374010ece146104a85780637d1db4a5146104d15780637f2feddc146104fc5780638da5cb5b14610539576101ed565b80632fd689e31161017a5780636d8aa8f8116101495780636d8aa8f8146104145780636fc3eaec1461043d57806370a0823114610454578063715018a614610491576101ed565b80632fd689e31461036a578063313ce5671461039557806349bd5a5e146103c05780636b999053146103eb576101ed565b8063158ef93e116101b6578063158ef93e146102ac5780631694505e146102d757806318160ddd1461030257806323b872dd1461032d576101ed565b8062b8cf2a146101f257806306fdde031461021b5780630807e2e914610246578063095ea7b31461026f576101ed565b366101ed57005b600080fd5b3480156101fe57600080fd5b5061021960048036038101906102149190612f2d565b61077e565b005b34801561022757600080fd5b506102306108a8565b60405161023d9190612ffe565b60405180910390f35b34801561025257600080fd5b5061026d60048036038101906102689190613020565b6108e5565b005b34801561027b57600080fd5b5061029660048036038101906102919190613083565b610a29565b6040516102a391906130de565b60405180910390f35b3480156102b857600080fd5b506102c1610a47565b6040516102ce91906130de565b60405180910390f35b3480156102e357600080fd5b506102ec610a5a565b6040516102f99190613158565b60405180910390f35b34801561030e57600080fd5b50610317610a80565b6040516103249190613182565b60405180910390f35b34801561033957600080fd5b50610354600480360381019061034f919061319d565b610a90565b60405161036191906130de565b60405180910390f35b34801561037657600080fd5b5061037f610b69565b60405161038c9190613182565b60405180910390f35b3480156103a157600080fd5b506103aa610b6f565b6040516103b7919061320c565b60405180910390f35b3480156103cc57600080fd5b506103d5610b78565b6040516103e29190613236565b60405180910390f35b3480156103f757600080fd5b50610412600480360381019061040d9190613020565b610b9e565b005b34801561042057600080fd5b5061043b6004803603810190610436919061327d565b610c8e565b005b34801561044957600080fd5b50610452610d40565b005b34801561046057600080fd5b5061047b60048036038101906104769190613020565b610e11565b6040516104889190613182565b60405180910390f35b34801561049d57600080fd5b506104a6610e62565b005b3480156104b457600080fd5b506104cf60048036038101906104ca91906132aa565b610fb5565b005b3480156104dd57600080fd5b506104e6611054565b6040516104f39190613182565b60405180910390f35b34801561050857600080fd5b50610523600480360381019061051e9190613020565b61105a565b6040516105309190613182565b60405180910390f35b34801561054557600080fd5b5061054e611072565b60405161055b9190613236565b60405180910390f35b34801561057057600080fd5b5061058b6004803603810190610586919061327d565b61109b565b005b34801561059957600080fd5b506105a261114d565b6040516105af9190613182565b60405180910390f35b3480156105c457600080fd5b506105cd611153565b6040516105da9190612ffe565b60405180910390f35b3480156105ef57600080fd5b5061060a600480360381019061060591906132aa565b611190565b005b34801561061857600080fd5b50610633600480360381019061062e91906132d7565b61122f565b005b34801561064157600080fd5b5061065c60048036038101906106579190613083565b6112e6565b60405161066991906130de565b60405180910390f35b34801561067e57600080fd5b5061069960048036038101906106949190613020565b611304565b6040516106a691906130de565b60405180910390f35b3480156106bb57600080fd5b506106c4611324565b005b3480156106d257600080fd5b506106ed60048036038101906106e89190613399565b6113fd565b005b3480156106fb57600080fd5b50610716600480360381019061071191906133f9565b611537565b6040516107239190613182565b60405180910390f35b34801561073857600080fd5b50610753600480360381019061074e91906132aa565b6115be565b005b34801561076157600080fd5b5061077c60048036038101906107779190613020565b61165d565b005b61078661181f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610813576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080a90613485565b60405180910390fd5b60005b81518110156108a457600160106000848481518110610838576108376134a5565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061089c90613503565b915050610816565b5050565b60606040518060400160405280600781526020017f556e696d61746500000000000000000000000000000000000000000000000000815250905090565b601960009054906101000a900460ff1615610935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092c906135be565b60405180910390fd5b61093d61181f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c190613485565b60405180910390fd5b80601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601960006101000a81548160ff02191690831515021790555050565b6000610a3d610a3661181f565b8484611827565b6001905092915050565b601960009054906101000a900460ff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600067016345785d8a0000905090565b6000610a9d8484846119f2565b610b5e84610aa961181f565b610b5985604051806060016040528060288152602001613fd660289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b0f61181f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122779092919063ffffffff16565b611827565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ba661181f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2a90613485565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610c9661181f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1a90613485565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d8161181f565b73ffffffffffffffffffffffffffffffffffffffff161480610df75750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ddf61181f565b73ffffffffffffffffffffffffffffffffffffffff16145b610e0057600080fd5b6000479050610e0e816122db565b50565b6000610e5b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612347565b9050919050565b610e6a61181f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ef7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eee90613485565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610fbd61181f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461104a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104190613485565b60405180910390fd5b8060168190555050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6110a361181f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112790613485565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600481526020017f4d41544500000000000000000000000000000000000000000000000000000000815250905090565b61119861181f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611225576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121c90613485565b60405180910390fd5b8060188190555050565b61123761181f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bb90613485565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b60006112fa6112f361181f565b84846119f2565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661136561181f565b73ffffffffffffffffffffffffffffffffffffffff1614806113db5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113c361181f565b73ffffffffffffffffffffffffffffffffffffffff16145b6113e457600080fd5b60006113ef30610e11565b90506113fa816123b5565b50565b61140561181f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611492576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148990613485565b60405180910390fd5b60005b838390508110156115315781600560008686858181106114b8576114b76134a5565b5b90506020020160208101906114cd9190613020565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061152990613503565b915050611495565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115c661181f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611653576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164a90613485565b60405180910390fd5b8060178190555050565b61166561181f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e990613485565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611762576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175990613650565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611897576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188e906136e2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fe90613774565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119e59190613182565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5990613806565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ad2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac990613898565b60405180910390fd5b60008111611b15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0c9061392a565b60405180910390fd5b611b1d611072565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b8b5750611b5b611072565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611f7657601560149054906101000a900460ff16611c1a57611bac611072565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c10906139bc565b60405180910390fd5b5b601654811115611c5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5690613a28565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d035750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611d42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3990613aba565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611def5760175481611da484610e11565b611dae9190613ada565b10611dee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de590613ba2565b60405180910390fd5b5b6000611dfa30610e11565b9050600060185482101590506016548210611e155760165491505b808015611e2d575060158054906101000a900460ff16155b8015611e875750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611e9f5750601560169054906101000a900460ff165b8015611ef55750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f4b5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f7357611f59826123b5565b60004790506000811115611f7157611f70476122db565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061201d5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806120d05750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156120cf5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156120de5760009050612265565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121895750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156121a157600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561224c5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561226457600a54600c81905550600b54600d819055505b5b6122718484848461263b565b50505050565b60008383111582906122bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b69190612ffe565b60405180910390fd5b50600083856122ce9190613bc2565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612343573d6000803e3d6000fd5b5050565b600060065482111561238e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238590613c68565b60405180910390fd5b6000612398612668565b90506123ad818461269390919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156123ec576123eb612d8c565b5b60405190808252806020026020018201604052801561241a5781602001602082028036833780820191505090505b5090503081600081518110612432576124316134a5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156124d457600080fd5b505afa1580156124e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061250c9190613c9d565b816001815181106125205761251f6134a5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061258730601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611827565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016125eb959493929190613dc3565b600060405180830381600087803b15801561260557600080fd5b505af1158015612619573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b80612649576126486126dd565b5b612654848484612720565b80612662576126616128eb565b5b50505050565b60008060006126756128ff565b9150915061268c818361269390919063ffffffff16565b9250505090565b60006126d583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061295e565b905092915050565b6000600c541480156126f157506000600d54145b156126fb5761271e565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612732876129c1565b95509550955095509550955061279086600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a2990919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061282585600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a7390919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061287181612ad1565b61287b8483612b8e565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516128d89190613182565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600067016345785d8a0000905061293367016345785d8a000060065461269390919063ffffffff16565b8210156129515760065467016345785d8a000093509350505061295a565b81819350935050505b9091565b600080831182906129a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299c9190612ffe565b60405180910390fd5b50600083856129b49190613e4c565b9050809150509392505050565b60008060008060008060008060006129de8a600c54600d54612bc8565b92509250925060006129ee612668565b90506000806000612a018e878787612c5e565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612a6b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612277565b905092915050565b6000808284612a829190613ada565b905083811015612ac7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612abe90613ec9565b60405180910390fd5b8091505092915050565b6000612adb612668565b90506000612af28284612ce790919063ffffffff16565b9050612b4681600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a7390919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612ba382600654612a2990919063ffffffff16565b600681905550612bbe81600754612a7390919063ffffffff16565b6007819055505050565b600080600080612bf46064612be6888a612ce790919063ffffffff16565b61269390919063ffffffff16565b90506000612c1e6064612c10888b612ce790919063ffffffff16565b61269390919063ffffffff16565b90506000612c4782612c39858c612a2990919063ffffffff16565b612a2990919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612c778589612ce790919063ffffffff16565b90506000612c8e8689612ce790919063ffffffff16565b90506000612ca58789612ce790919063ffffffff16565b90506000612cce82612cc08587612a2990919063ffffffff16565b612a2990919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612cfa5760009050612d5c565b60008284612d089190613ee9565b9050828482612d179190613e4c565b14612d57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d4e90613fb5565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612dc482612d7b565b810181811067ffffffffffffffff82111715612de357612de2612d8c565b5b80604052505050565b6000612df6612d62565b9050612e028282612dbb565b919050565b600067ffffffffffffffff821115612e2257612e21612d8c565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612e6382612e38565b9050919050565b612e7381612e58565b8114612e7e57600080fd5b50565b600081359050612e9081612e6a565b92915050565b6000612ea9612ea484612e07565b612dec565b90508083825260208201905060208402830185811115612ecc57612ecb612e33565b5b835b81811015612ef55780612ee18882612e81565b845260208401935050602081019050612ece565b5050509392505050565b600082601f830112612f1457612f13612d76565b5b8135612f24848260208601612e96565b91505092915050565b600060208284031215612f4357612f42612d6c565b5b600082013567ffffffffffffffff811115612f6157612f60612d71565b5b612f6d84828501612eff565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612fb0578082015181840152602081019050612f95565b83811115612fbf576000848401525b50505050565b6000612fd082612f76565b612fda8185612f81565b9350612fea818560208601612f92565b612ff381612d7b565b840191505092915050565b600060208201905081810360008301526130188184612fc5565b905092915050565b60006020828403121561303657613035612d6c565b5b600061304484828501612e81565b91505092915050565b6000819050919050565b6130608161304d565b811461306b57600080fd5b50565b60008135905061307d81613057565b92915050565b6000806040838503121561309a57613099612d6c565b5b60006130a885828601612e81565b92505060206130b98582860161306e565b9150509250929050565b60008115159050919050565b6130d8816130c3565b82525050565b60006020820190506130f360008301846130cf565b92915050565b6000819050919050565b600061311e61311961311484612e38565b6130f9565b612e38565b9050919050565b600061313082613103565b9050919050565b600061314282613125565b9050919050565b61315281613137565b82525050565b600060208201905061316d6000830184613149565b92915050565b61317c8161304d565b82525050565b60006020820190506131976000830184613173565b92915050565b6000806000606084860312156131b6576131b5612d6c565b5b60006131c486828701612e81565b93505060206131d586828701612e81565b92505060406131e68682870161306e565b9150509250925092565b600060ff82169050919050565b613206816131f0565b82525050565b600060208201905061322160008301846131fd565b92915050565b61323081612e58565b82525050565b600060208201905061324b6000830184613227565b92915050565b61325a816130c3565b811461326557600080fd5b50565b60008135905061327781613251565b92915050565b60006020828403121561329357613292612d6c565b5b60006132a184828501613268565b91505092915050565b6000602082840312156132c0576132bf612d6c565b5b60006132ce8482850161306e565b91505092915050565b600080600080608085870312156132f1576132f0612d6c565b5b60006132ff8782880161306e565b94505060206133108782880161306e565b93505060406133218782880161306e565b92505060606133328782880161306e565b91505092959194509250565b600080fd5b60008083601f84011261335957613358612d76565b5b8235905067ffffffffffffffff8111156133765761337561333e565b5b60208301915083602082028301111561339257613391612e33565b5b9250929050565b6000806000604084860312156133b2576133b1612d6c565b5b600084013567ffffffffffffffff8111156133d0576133cf612d71565b5b6133dc86828701613343565b935093505060206133ef86828701613268565b9150509250925092565b600080604083850312156134105761340f612d6c565b5b600061341e85828601612e81565b925050602061342f85828601612e81565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061346f602083612f81565b915061347a82613439565b602082019050919050565b6000602082019050818103600083015261349e81613462565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061350e8261304d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613541576135406134d4565b5b600182019050919050565b7f756e697377617056325061697220697320616c726561647920696e697469616c60008201527f697a656400000000000000000000000000000000000000000000000000000000602082015250565b60006135a8602483612f81565b91506135b38261354c565b604082019050919050565b600060208201905081810360008301526135d78161359b565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061363a602683612f81565b9150613645826135de565b604082019050919050565b600060208201905081810360008301526136698161362d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006136cc602483612f81565b91506136d782613670565b604082019050919050565b600060208201905081810360008301526136fb816136bf565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061375e602283612f81565b915061376982613702565b604082019050919050565b6000602082019050818103600083015261378d81613751565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006137f0602583612f81565b91506137fb82613794565b604082019050919050565b6000602082019050818103600083015261381f816137e3565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613882602383612f81565b915061388d82613826565b604082019050919050565b600060208201905081810360008301526138b181613875565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613914602983612f81565b915061391f826138b8565b604082019050919050565b6000602082019050818103600083015261394381613907565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b60006139a6603f83612f81565b91506139b18261394a565b604082019050919050565b600060208201905081810360008301526139d581613999565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613a12601c83612f81565b9150613a1d826139dc565b602082019050919050565b60006020820190508181036000830152613a4181613a05565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613aa4602383612f81565b9150613aaf82613a48565b604082019050919050565b60006020820190508181036000830152613ad381613a97565b9050919050565b6000613ae58261304d565b9150613af08361304d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613b2557613b246134d4565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613b8c602383612f81565b9150613b9782613b30565b604082019050919050565b60006020820190508181036000830152613bbb81613b7f565b9050919050565b6000613bcd8261304d565b9150613bd88361304d565b925082821015613beb57613bea6134d4565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613c52602a83612f81565b9150613c5d82613bf6565b604082019050919050565b60006020820190508181036000830152613c8181613c45565b9050919050565b600081519050613c9781612e6a565b92915050565b600060208284031215613cb357613cb2612d6c565b5b6000613cc184828501613c88565b91505092915050565b6000819050919050565b6000613cef613cea613ce584613cca565b6130f9565b61304d565b9050919050565b613cff81613cd4565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613d3a81612e58565b82525050565b6000613d4c8383613d31565b60208301905092915050565b6000602082019050919050565b6000613d7082613d05565b613d7a8185613d10565b9350613d8583613d21565b8060005b83811015613db6578151613d9d8882613d40565b9750613da883613d58565b925050600181019050613d89565b5085935050505092915050565b600060a082019050613dd86000830188613173565b613de56020830187613cf6565b8181036040830152613df78186613d65565b9050613e066060830185613227565b613e136080830184613173565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613e578261304d565b9150613e628361304d565b925082613e7257613e71613e1d565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613eb3601b83612f81565b9150613ebe82613e7d565b602082019050919050565b60006020820190508181036000830152613ee281613ea6565b9050919050565b6000613ef48261304d565b9150613eff8361304d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613f3857613f376134d4565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f9f602183612f81565b9150613faa82613f43565b604082019050919050565b60006020820190508181036000830152613fce81613f92565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220abf52cf8caac6bf131d40fd851e28f3514d1f4827cbeeb8ee34f77583d8a5ba164736f6c63430008090033

Deployed Bytecode

0x6080604052600436106101e65760003560e01c806374010ece11610102578063a2a957bb11610095578063c492f04611610064578063c492f046146106c6578063dd62ed3e146106ef578063ea1644d51461072c578063f2fde38b14610755576101ed565b8063a2a957bb1461060c578063a9059cbb14610635578063bfd7928414610672578063c3c8cd80146106af576101ed565b80638f70ccf7116100d15780638f70ccf7146105645780638f9a55c01461058d57806395d89b41146105b857806398a5c315146105e3576101ed565b806374010ece146104a85780637d1db4a5146104d15780637f2feddc146104fc5780638da5cb5b14610539576101ed565b80632fd689e31161017a5780636d8aa8f8116101495780636d8aa8f8146104145780636fc3eaec1461043d57806370a0823114610454578063715018a614610491576101ed565b80632fd689e31461036a578063313ce5671461039557806349bd5a5e146103c05780636b999053146103eb576101ed565b8063158ef93e116101b6578063158ef93e146102ac5780631694505e146102d757806318160ddd1461030257806323b872dd1461032d576101ed565b8062b8cf2a146101f257806306fdde031461021b5780630807e2e914610246578063095ea7b31461026f576101ed565b366101ed57005b600080fd5b3480156101fe57600080fd5b5061021960048036038101906102149190612f2d565b61077e565b005b34801561022757600080fd5b506102306108a8565b60405161023d9190612ffe565b60405180910390f35b34801561025257600080fd5b5061026d60048036038101906102689190613020565b6108e5565b005b34801561027b57600080fd5b5061029660048036038101906102919190613083565b610a29565b6040516102a391906130de565b60405180910390f35b3480156102b857600080fd5b506102c1610a47565b6040516102ce91906130de565b60405180910390f35b3480156102e357600080fd5b506102ec610a5a565b6040516102f99190613158565b60405180910390f35b34801561030e57600080fd5b50610317610a80565b6040516103249190613182565b60405180910390f35b34801561033957600080fd5b50610354600480360381019061034f919061319d565b610a90565b60405161036191906130de565b60405180910390f35b34801561037657600080fd5b5061037f610b69565b60405161038c9190613182565b60405180910390f35b3480156103a157600080fd5b506103aa610b6f565b6040516103b7919061320c565b60405180910390f35b3480156103cc57600080fd5b506103d5610b78565b6040516103e29190613236565b60405180910390f35b3480156103f757600080fd5b50610412600480360381019061040d9190613020565b610b9e565b005b34801561042057600080fd5b5061043b6004803603810190610436919061327d565b610c8e565b005b34801561044957600080fd5b50610452610d40565b005b34801561046057600080fd5b5061047b60048036038101906104769190613020565b610e11565b6040516104889190613182565b60405180910390f35b34801561049d57600080fd5b506104a6610e62565b005b3480156104b457600080fd5b506104cf60048036038101906104ca91906132aa565b610fb5565b005b3480156104dd57600080fd5b506104e6611054565b6040516104f39190613182565b60405180910390f35b34801561050857600080fd5b50610523600480360381019061051e9190613020565b61105a565b6040516105309190613182565b60405180910390f35b34801561054557600080fd5b5061054e611072565b60405161055b9190613236565b60405180910390f35b34801561057057600080fd5b5061058b6004803603810190610586919061327d565b61109b565b005b34801561059957600080fd5b506105a261114d565b6040516105af9190613182565b60405180910390f35b3480156105c457600080fd5b506105cd611153565b6040516105da9190612ffe565b60405180910390f35b3480156105ef57600080fd5b5061060a600480360381019061060591906132aa565b611190565b005b34801561061857600080fd5b50610633600480360381019061062e91906132d7565b61122f565b005b34801561064157600080fd5b5061065c60048036038101906106579190613083565b6112e6565b60405161066991906130de565b60405180910390f35b34801561067e57600080fd5b5061069960048036038101906106949190613020565b611304565b6040516106a691906130de565b60405180910390f35b3480156106bb57600080fd5b506106c4611324565b005b3480156106d257600080fd5b506106ed60048036038101906106e89190613399565b6113fd565b005b3480156106fb57600080fd5b50610716600480360381019061071191906133f9565b611537565b6040516107239190613182565b60405180910390f35b34801561073857600080fd5b50610753600480360381019061074e91906132aa565b6115be565b005b34801561076157600080fd5b5061077c60048036038101906107779190613020565b61165d565b005b61078661181f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610813576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080a90613485565b60405180910390fd5b60005b81518110156108a457600160106000848481518110610838576108376134a5565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061089c90613503565b915050610816565b5050565b60606040518060400160405280600781526020017f556e696d61746500000000000000000000000000000000000000000000000000815250905090565b601960009054906101000a900460ff1615610935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092c906135be565b60405180910390fd5b61093d61181f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c190613485565b60405180910390fd5b80601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601960006101000a81548160ff02191690831515021790555050565b6000610a3d610a3661181f565b8484611827565b6001905092915050565b601960009054906101000a900460ff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600067016345785d8a0000905090565b6000610a9d8484846119f2565b610b5e84610aa961181f565b610b5985604051806060016040528060288152602001613fd660289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b0f61181f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122779092919063ffffffff16565b611827565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ba661181f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2a90613485565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610c9661181f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1a90613485565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d8161181f565b73ffffffffffffffffffffffffffffffffffffffff161480610df75750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ddf61181f565b73ffffffffffffffffffffffffffffffffffffffff16145b610e0057600080fd5b6000479050610e0e816122db565b50565b6000610e5b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612347565b9050919050565b610e6a61181f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ef7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eee90613485565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610fbd61181f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461104a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104190613485565b60405180910390fd5b8060168190555050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6110a361181f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112790613485565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600481526020017f4d41544500000000000000000000000000000000000000000000000000000000815250905090565b61119861181f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611225576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121c90613485565b60405180910390fd5b8060188190555050565b61123761181f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bb90613485565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b60006112fa6112f361181f565b84846119f2565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661136561181f565b73ffffffffffffffffffffffffffffffffffffffff1614806113db5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113c361181f565b73ffffffffffffffffffffffffffffffffffffffff16145b6113e457600080fd5b60006113ef30610e11565b90506113fa816123b5565b50565b61140561181f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611492576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148990613485565b60405180910390fd5b60005b838390508110156115315781600560008686858181106114b8576114b76134a5565b5b90506020020160208101906114cd9190613020565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061152990613503565b915050611495565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115c661181f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611653576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164a90613485565b60405180910390fd5b8060178190555050565b61166561181f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e990613485565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611762576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175990613650565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611897576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188e906136e2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fe90613774565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119e59190613182565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5990613806565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ad2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac990613898565b60405180910390fd5b60008111611b15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0c9061392a565b60405180910390fd5b611b1d611072565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b8b5750611b5b611072565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611f7657601560149054906101000a900460ff16611c1a57611bac611072565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c10906139bc565b60405180910390fd5b5b601654811115611c5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5690613a28565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d035750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611d42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3990613aba565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611def5760175481611da484610e11565b611dae9190613ada565b10611dee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de590613ba2565b60405180910390fd5b5b6000611dfa30610e11565b9050600060185482101590506016548210611e155760165491505b808015611e2d575060158054906101000a900460ff16155b8015611e875750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611e9f5750601560169054906101000a900460ff165b8015611ef55750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f4b5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f7357611f59826123b5565b60004790506000811115611f7157611f70476122db565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061201d5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806120d05750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156120cf5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156120de5760009050612265565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121895750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156121a157600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561224c5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561226457600a54600c81905550600b54600d819055505b5b6122718484848461263b565b50505050565b60008383111582906122bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b69190612ffe565b60405180910390fd5b50600083856122ce9190613bc2565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612343573d6000803e3d6000fd5b5050565b600060065482111561238e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238590613c68565b60405180910390fd5b6000612398612668565b90506123ad818461269390919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156123ec576123eb612d8c565b5b60405190808252806020026020018201604052801561241a5781602001602082028036833780820191505090505b5090503081600081518110612432576124316134a5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156124d457600080fd5b505afa1580156124e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061250c9190613c9d565b816001815181106125205761251f6134a5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061258730601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611827565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016125eb959493929190613dc3565b600060405180830381600087803b15801561260557600080fd5b505af1158015612619573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b80612649576126486126dd565b5b612654848484612720565b80612662576126616128eb565b5b50505050565b60008060006126756128ff565b9150915061268c818361269390919063ffffffff16565b9250505090565b60006126d583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061295e565b905092915050565b6000600c541480156126f157506000600d54145b156126fb5761271e565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612732876129c1565b95509550955095509550955061279086600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a2990919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061282585600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a7390919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061287181612ad1565b61287b8483612b8e565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516128d89190613182565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600067016345785d8a0000905061293367016345785d8a000060065461269390919063ffffffff16565b8210156129515760065467016345785d8a000093509350505061295a565b81819350935050505b9091565b600080831182906129a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299c9190612ffe565b60405180910390fd5b50600083856129b49190613e4c565b9050809150509392505050565b60008060008060008060008060006129de8a600c54600d54612bc8565b92509250925060006129ee612668565b90506000806000612a018e878787612c5e565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612a6b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612277565b905092915050565b6000808284612a829190613ada565b905083811015612ac7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612abe90613ec9565b60405180910390fd5b8091505092915050565b6000612adb612668565b90506000612af28284612ce790919063ffffffff16565b9050612b4681600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a7390919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612ba382600654612a2990919063ffffffff16565b600681905550612bbe81600754612a7390919063ffffffff16565b6007819055505050565b600080600080612bf46064612be6888a612ce790919063ffffffff16565b61269390919063ffffffff16565b90506000612c1e6064612c10888b612ce790919063ffffffff16565b61269390919063ffffffff16565b90506000612c4782612c39858c612a2990919063ffffffff16565b612a2990919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612c778589612ce790919063ffffffff16565b90506000612c8e8689612ce790919063ffffffff16565b90506000612ca58789612ce790919063ffffffff16565b90506000612cce82612cc08587612a2990919063ffffffff16565b612a2990919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612cfa5760009050612d5c565b60008284612d089190613ee9565b9050828482612d179190613e4c565b14612d57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d4e90613fb5565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612dc482612d7b565b810181811067ffffffffffffffff82111715612de357612de2612d8c565b5b80604052505050565b6000612df6612d62565b9050612e028282612dbb565b919050565b600067ffffffffffffffff821115612e2257612e21612d8c565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612e6382612e38565b9050919050565b612e7381612e58565b8114612e7e57600080fd5b50565b600081359050612e9081612e6a565b92915050565b6000612ea9612ea484612e07565b612dec565b90508083825260208201905060208402830185811115612ecc57612ecb612e33565b5b835b81811015612ef55780612ee18882612e81565b845260208401935050602081019050612ece565b5050509392505050565b600082601f830112612f1457612f13612d76565b5b8135612f24848260208601612e96565b91505092915050565b600060208284031215612f4357612f42612d6c565b5b600082013567ffffffffffffffff811115612f6157612f60612d71565b5b612f6d84828501612eff565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612fb0578082015181840152602081019050612f95565b83811115612fbf576000848401525b50505050565b6000612fd082612f76565b612fda8185612f81565b9350612fea818560208601612f92565b612ff381612d7b565b840191505092915050565b600060208201905081810360008301526130188184612fc5565b905092915050565b60006020828403121561303657613035612d6c565b5b600061304484828501612e81565b91505092915050565b6000819050919050565b6130608161304d565b811461306b57600080fd5b50565b60008135905061307d81613057565b92915050565b6000806040838503121561309a57613099612d6c565b5b60006130a885828601612e81565b92505060206130b98582860161306e565b9150509250929050565b60008115159050919050565b6130d8816130c3565b82525050565b60006020820190506130f360008301846130cf565b92915050565b6000819050919050565b600061311e61311961311484612e38565b6130f9565b612e38565b9050919050565b600061313082613103565b9050919050565b600061314282613125565b9050919050565b61315281613137565b82525050565b600060208201905061316d6000830184613149565b92915050565b61317c8161304d565b82525050565b60006020820190506131976000830184613173565b92915050565b6000806000606084860312156131b6576131b5612d6c565b5b60006131c486828701612e81565b93505060206131d586828701612e81565b92505060406131e68682870161306e565b9150509250925092565b600060ff82169050919050565b613206816131f0565b82525050565b600060208201905061322160008301846131fd565b92915050565b61323081612e58565b82525050565b600060208201905061324b6000830184613227565b92915050565b61325a816130c3565b811461326557600080fd5b50565b60008135905061327781613251565b92915050565b60006020828403121561329357613292612d6c565b5b60006132a184828501613268565b91505092915050565b6000602082840312156132c0576132bf612d6c565b5b60006132ce8482850161306e565b91505092915050565b600080600080608085870312156132f1576132f0612d6c565b5b60006132ff8782880161306e565b94505060206133108782880161306e565b93505060406133218782880161306e565b92505060606133328782880161306e565b91505092959194509250565b600080fd5b60008083601f84011261335957613358612d76565b5b8235905067ffffffffffffffff8111156133765761337561333e565b5b60208301915083602082028301111561339257613391612e33565b5b9250929050565b6000806000604084860312156133b2576133b1612d6c565b5b600084013567ffffffffffffffff8111156133d0576133cf612d71565b5b6133dc86828701613343565b935093505060206133ef86828701613268565b9150509250925092565b600080604083850312156134105761340f612d6c565b5b600061341e85828601612e81565b925050602061342f85828601612e81565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061346f602083612f81565b915061347a82613439565b602082019050919050565b6000602082019050818103600083015261349e81613462565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061350e8261304d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613541576135406134d4565b5b600182019050919050565b7f756e697377617056325061697220697320616c726561647920696e697469616c60008201527f697a656400000000000000000000000000000000000000000000000000000000602082015250565b60006135a8602483612f81565b91506135b38261354c565b604082019050919050565b600060208201905081810360008301526135d78161359b565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061363a602683612f81565b9150613645826135de565b604082019050919050565b600060208201905081810360008301526136698161362d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006136cc602483612f81565b91506136d782613670565b604082019050919050565b600060208201905081810360008301526136fb816136bf565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061375e602283612f81565b915061376982613702565b604082019050919050565b6000602082019050818103600083015261378d81613751565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006137f0602583612f81565b91506137fb82613794565b604082019050919050565b6000602082019050818103600083015261381f816137e3565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613882602383612f81565b915061388d82613826565b604082019050919050565b600060208201905081810360008301526138b181613875565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613914602983612f81565b915061391f826138b8565b604082019050919050565b6000602082019050818103600083015261394381613907565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b60006139a6603f83612f81565b91506139b18261394a565b604082019050919050565b600060208201905081810360008301526139d581613999565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613a12601c83612f81565b9150613a1d826139dc565b602082019050919050565b60006020820190508181036000830152613a4181613a05565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613aa4602383612f81565b9150613aaf82613a48565b604082019050919050565b60006020820190508181036000830152613ad381613a97565b9050919050565b6000613ae58261304d565b9150613af08361304d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613b2557613b246134d4565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613b8c602383612f81565b9150613b9782613b30565b604082019050919050565b60006020820190508181036000830152613bbb81613b7f565b9050919050565b6000613bcd8261304d565b9150613bd88361304d565b925082821015613beb57613bea6134d4565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613c52602a83612f81565b9150613c5d82613bf6565b604082019050919050565b60006020820190508181036000830152613c8181613c45565b9050919050565b600081519050613c9781612e6a565b92915050565b600060208284031215613cb357613cb2612d6c565b5b6000613cc184828501613c88565b91505092915050565b6000819050919050565b6000613cef613cea613ce584613cca565b6130f9565b61304d565b9050919050565b613cff81613cd4565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613d3a81612e58565b82525050565b6000613d4c8383613d31565b60208301905092915050565b6000602082019050919050565b6000613d7082613d05565b613d7a8185613d10565b9350613d8583613d21565b8060005b83811015613db6578151613d9d8882613d40565b9750613da883613d58565b925050600181019050613d89565b5085935050505092915050565b600060a082019050613dd86000830188613173565b613de56020830187613cf6565b8181036040830152613df78186613d65565b9050613e066060830185613227565b613e136080830184613173565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613e578261304d565b9150613e628361304d565b925082613e7257613e71613e1d565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613eb3601b83612f81565b9150613ebe82613e7d565b602082019050919050565b60006020820190508181036000830152613ee281613ea6565b9050919050565b6000613ef48261304d565b9150613eff8361304d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613f3857613f376134d4565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f9f602183612f81565b9150613faa82613f43565b604082019050919050565b60006020820190508181036000830152613fce81613f92565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220abf52cf8caac6bf131d40fd851e28f3514d1f4827cbeeb8ee34f77583d8a5ba164736f6c63430008090033

Deployed Bytecode Sourcemap

4088:13665:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12926:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6594:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6683:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7679:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5785:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5428:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7031:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7880:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5731:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6940:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5476:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13103:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17135:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12683:235;;;;;;;;;;;;;:::i;:::-;;7134:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1575:148;;;;;;;;;;;;;:::i;:::-;;17275:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5625:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5170:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1361:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12330:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5677:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6845:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16944:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16601:291;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7280:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5132:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12439:236;;;;;;;;;;;;;:::i;:::-;;17514:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7487:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17391:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1731:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12926:169;1498:12;:10;:12::i;:::-;1488:22;;:6;;;;;;;;;;:22;;;1480:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13002:9:::1;12997:91;13021:5;:12;13017:1;:16;12997:91;;;13072:4;13055;:14;13060:5;13066:1;13060:8;;;;;;;;:::i;:::-;;;;;;;;13055:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13035:3;;;;;:::i;:::-;;;;12997:91;;;;12926:169:::0;:::o;6594:83::-;6631:13;6664:5;;;;;;;;;;;;;;;;;6657:12;;6594:83;:::o;6683:154::-;6007:11;;;;;;;;;;;6006:12;5998:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;1498:12:::1;:10;:12::i;:::-;1488:22;;:6;::::0;::::1;;;;;;;;:22;;;1480:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6795:7:::2;6779:13;;:23;;;;;;;;;;;;;;;;;;6825:4;6813:11;;:16;;;;;;;;;;;;;;;;;;6683:154:::0;:::o;7679:193::-;7781:4;7803:39;7812:12;:10;:12::i;:::-;7826:7;7835:6;7803:8;:39::i;:::-;7860:4;7853:11;;7679:193;;;;:::o;5785:23::-;;;;;;;;;;;;;:::o;5428:41::-;;;;;;;;;;;;;:::o;7031:95::-;7084:7;4633:17;7104:14;;7031:95;:::o;7880:446::-;8012:4;8029:36;8039:6;8047:9;8058:6;8029:9;:36::i;:::-;8076:220;8099:6;8120:12;:10;:12::i;:::-;8147:138;8203:6;8147:138;;;;;;;;;;;;;;;;;:11;:19;8159:6;8147:19;;;;;;;;;;;;;;;:33;8167:12;:10;:12::i;:::-;8147:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8076:8;:220::i;:::-;8314:4;8307:11;;7880:446;;;;;:::o;5731:51::-;;;;:::o;6940:83::-;6981:5;4307:1;6999:16;;6940:83;:::o;5476:28::-;;;;;;;;;;;;;:::o;13103:92::-;1498:12;:10;:12::i;:::-;1488:22;;:6;;;;;;;;;;:22;;;1480:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13182:5:::1;13167:4;:12;13172:6;13167:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13103:92:::0;:::o;17135:101::-;1498:12;:10;:12::i;:::-;1488:22;;:6;;;;;;;;;;:22;;;1480:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17216:12:::1;17202:11;;:26;;;;;;;;;;;;;;;;;;17135:101:::0;:::o;12683:235::-;12749:19;;;;;;;;;;;12733:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12788:17;;;;;;;;;;;12772:33;;:12;:10;:12::i;:::-;:33;;;12733:72;12725:81;;;;;;12817:26;12846:21;12817:50;;12878:32;12891:18;12878:12;:32::i;:::-;12714:204;12683:235::o;7134:138::-;7200:7;7227:37;7247:7;:16;7255:7;7247:16;;;;;;;;;;;;;;;;7227:19;:37::i;:::-;7220:44;;7134:138;;;:::o;1575:148::-;1498:12;:10;:12::i;:::-;1488:22;;:6;;;;;;;;;;:22;;;1480:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1682:1:::1;1645:40;;1666:6;::::0;::::1;;;;;;;;1645:40;;;;;;;;;;;;1713:1;1696:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1575:148::o:0;17275:108::-;1498:12;:10;:12::i;:::-;1488:22;;:6;;;;;;;;;;:22;;;1480:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17364:11:::1;17349:12;:26;;;;17275:108:::0;:::o;5625:45::-;;;;:::o;5170:43::-;;;;;;;;;;;;;;;;;:::o;1361:79::-;1399:7;1426:6;;;;;;;;;;;1419:13;;1361:79;:::o;12330:101::-;1498:12;:10;:12::i;:::-;1488:22;;:6;;;;;;;;;;:22;;;1480:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12411:12:::1;12397:11;;:26;;;;;;;;;;;;;;;;;;12330:101:::0;:::o;5677:47::-;;;;:::o;6845:87::-;6884:13;6917:7;;;;;;;;;;;;;;;;;6910:14;;6845:87;:::o;16944:139::-;1498:12;:10;:12::i;:::-;1488:22;;:6;;;;;;;;;;:22;;;1480:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17057:18:::1;17035:19;:40;;;;16944:139:::0;:::o;16601:291::-;1498:12;:10;:12::i;:::-;1488:22;;:6;;;;;;;;;;:22;;;1480:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16752:13:::1;16735:14;:30;;;;16794:14;16776:15;:32;;;;16834:11;16819:12;:26;;;;16872:12;16856:13;:28;;;;16601:291:::0;;;;:::o;7280:199::-;7385:4;7407:42;7417:12;:10;:12::i;:::-;7431:9;7442:6;7407:9;:42::i;:::-;7467:4;7460:11;;7280:199;;;;:::o;5132:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12439:236::-;12505:19;;;;;;;;;;;12489:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12544:17;;;;;;;;;;;12528:33;;:12;:10;:12::i;:::-;:33;;;12489:72;12481:81;;;;;;12573:23;12599:24;12617:4;12599:9;:24::i;:::-;12573:50;;12634:33;12651:15;12634:16;:33::i;:::-;12470:205;12439:236::o;17514:234::-;1498:12;:10;:12::i;:::-;1488:22;;:6;;;;;;;;;;:22;;;1480:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17631:9:::1;17627:114;17650:8;;:15;;17646:1;:19;17627:114;;;17721:8;17687:18;:31;17706:8;;17715:1;17706:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17687:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17667:3;;;;;:::i;:::-;;;;17627:114;;;;17514:234:::0;;;:::o;7487:184::-;7604:7;7636:11;:18;7648:5;7636:18;;;;;;;;;;;;;;;:27;7655:7;7636:27;;;;;;;;;;;;;;;;7629:34;;7487:184;;;;:::o;17391:115::-;1498:12;:10;:12::i;:::-;1488:22;;:6;;;;;;;;;;:22;;;1480:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17485:13:::1;17468:14;:30;;;;17391:115:::0;:::o;1731:244::-;1498:12;:10;:12::i;:::-;1488:22;;:6;;;;;;;;;;:22;;;1480:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1840:1:::1;1820:22;;:8;:22;;;;1812:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1930:8;1901:38;;1922:6;::::0;::::1;;;;;;;;1901:38;;;;;;;;;;;;1959:8;1950:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1731:244:::0;:::o;120:98::-;173:7;200:10;193:17;;120:98;:::o;9017:369::-;9161:1;9144:19;;:5;:19;;;;9136:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9242:1;9223:21;;:7;:21;;;;9215:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9324:6;9294:11;:18;9306:5;9294:18;;;;;;;;;;;;;;;:27;9313:7;9294:27;;;;;;;;;;;;;;;:36;;;;9362:7;9346:32;;9355:5;9346:32;;;9371:6;9346:32;;;;;;:::i;:::-;;;;;;;;9017:369;;;:::o;9394:2330::-;9532:1;9516:18;;:4;:18;;;;9508:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9609:1;9595:16;;:2;:16;;;;9587:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9679:1;9670:6;:10;9662:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9751:7;:5;:7::i;:::-;9743:15;;:4;:15;;;;:32;;;;;9768:7;:5;:7::i;:::-;9762:13;;:2;:13;;;;9743:32;9739:1259;;;9832:11;;;;;;;;;;;9827:144;;9880:7;:5;:7::i;:::-;9872:15;;:4;:15;;;9864:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9827:144;10005:12;;9995:6;:22;;9987:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10074:4;:10;10079:4;10074:10;;;;;;;;;;;;;;;;;;;;;;;;;10073:11;:24;;;;;10089:4;:8;10094:2;10089:8;;;;;;;;;;;;;;;;;;;;;;;;;10088:9;10073:24;10065:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10163:13;;;;;;;;;;;10157:19;;:2;:19;;;10154:146;;10230:14;;10221:6;10205:13;10215:2;10205:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10197:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10154:146;10316:28;10347:24;10365:4;10347:9;:24::i;:::-;10316:55;;10386:12;10425:19;;10401:20;:43;;10386:58;;10488:12;;10464:20;:36;10461:124;;10557:12;;10534:35;;10461:124;10605:7;:18;;;;;10617:6;;;;;;;;;;10616:7;10605:18;:43;;;;;10635:13;;;;;;;;;;;10627:21;;:4;:21;;;;10605:43;:58;;;;;10652:11;;;;;;;;;;;10605:58;:87;;;;;10668:18;:24;10687:4;10668:24;;;;;;;;;;;;;;;;;;;;;;;;;10667:25;10605:87;:114;;;;;10697:18;:22;10716:2;10697:22;;;;;;;;;;;;;;;;;;;;;;;;;10696:23;10605:114;10601:386;;;10740:38;10757:20;10740:16;:38::i;:::-;10797:26;10826:21;10797:50;;10891:1;10870:18;:22;10866:106;;;10917:35;10930:21;10917:12;:35::i;:::-;10866:106;10721:266;10601:386;9777:1221;;9739:1259;11010:12;11025:4;11010:19;;11074:18;:24;11093:4;11074:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11102:18;:22;11121:2;11102:22;;;;;;;;;;;;;;;;;;;;;;;;;11074:50;11073:102;;;;11138:13;;;;;;;;;;;11130:21;;:4;:21;;;;:44;;;;;11161:13;;;;;;;;;;;11155:19;;:2;:19;;;;11130:44;11073:102;11069:594;;;11202:5;11192:15;;11069:594;;;11285:13;;;;;;;;;;;11277:21;;:4;:21;;;:55;;;;;11316:15;;;;;;;;;;;11302:30;;:2;:30;;;;11277:55;11274:162;;;11365:14;;11353:9;:26;;;;11408:12;;11398:7;:22;;;;11274:162;11495:13;;;;;;;;;;;11489:19;;:2;:19;;;:55;;;;;11528:15;;;;;;;;;;;11512:32;;:4;:32;;;;11489:55;11485:165;;;11577:15;;11565:9;:27;;;;11621:13;;11611:7;:23;;;;11485:165;11069:594;11675:41;11690:4;11696:2;11700:6;11708:7;11675:14;:41::i;:::-;9497:2227;9394:2330;;;:::o;2339:224::-;2459:7;2492:1;2487;:6;;2495:12;2479:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2519:9;2535:1;2531;:5;;;;:::i;:::-;2519:17;;2554:1;2547:8;;;2339:224;;;;;:::o;12223:99::-;12280:17;;;;;;;;;;;:26;;:34;12307:6;12280:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12223:99;:::o;8334:323::-;8429:7;8487;;8476;:18;;8454:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8575:19;8597:10;:8;:10::i;:::-;8575:32;;8625:24;8637:11;8625:7;:11;;:24;;;;:::i;:::-;8618:31;;;8334:323;;;:::o;11732:483::-;5909:4;5900:6;;:13;;;;;;;;;;;;;;;;;;11810:21:::1;11848:1;11834:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11810:40;;11879:4;11861;11866:1;11861:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11905:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11895:4;11900:1;11895:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11938:62;11955:4;11970:15;;;;;;;;;;;11988:11;11938:8;:62::i;:::-;12011:15;;;;;;;;;;;:66;;;12092:11;12118:1;12134:4;12161;12181:15;12011:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11799:416;5945:5:::0;5936:6;;:14;;;;;;;;;;;;;;;;;;11732:483;:::o;13203:282::-;13359:7;13354:28;;13368:14;:12;:14::i;:::-;13354:28;13393:44;13411:6;13419:9;13430:6;13393:17;:44::i;:::-;13453:7;13448:29;;13462:15;:13;:15::i;:::-;13448:29;13203:282;;;;:::o;16164:164::-;16206:7;16227:15;16244;16263:19;:17;:19::i;:::-;16226:56;;;;16300:20;16312:7;16300;:11;;:20;;;;:::i;:::-;16293:27;;;;16164:164;:::o;2825:132::-;2883:7;2910:39;2914:1;2917;2910:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2903:46;;2825:132;;;;:::o;8665:219::-;8725:1;8712:9;;:14;:30;;;;;8741:1;8730:7;;:12;8712:30;8708:43;;;8744:7;;8708:43;8783:9;;8763:17;:29;;;;8821:7;;8803:15;:25;;;;8853:1;8841:9;:13;;;;8875:1;8865:7;:11;;;;8665:219;:::o;13493:610::-;13640:15;13670:23;13708:12;13735:23;13773:12;13800:13;13827:19;13838:7;13827:10;:19::i;:::-;13625:221;;;;;;;;;;;;13875:28;13895:7;13875;:15;13883:6;13875:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13857:7;:15;13865:6;13857:15;;;;;;;;;;;;;;;:46;;;;13935:39;13958:15;13935:7;:18;13943:9;13935:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13914:7;:18;13922:9;13914:18;;;;;;;;;;;;;;;:60;;;;13985:16;13995:5;13985:9;:16::i;:::-;14012:23;14024:4;14030;14012:11;:23::i;:::-;14068:9;14051:44;;14060:6;14051:44;;;14079:15;14051:44;;;;;;:::i;:::-;;;;;;;;13614:489;;;;;;13493:610;;;:::o;8892:117::-;8948:17;;8936:9;:29;;;;8986:15;;8976:7;:25;;;;8892:117::o;16336:257::-;16387:7;16396;16416:15;16434:7;;16416:25;;16452:15;4633:17;16452:25;;16502:20;4633:17;16502:7;;:11;;:20;;;;:::i;:::-;16492:7;:30;16488:61;;;16532:7;;4633:17;16524:25;;;;;;;;16488:61;16568:7;16577;16560:25;;;;;;16336:257;;;:::o;2965:223::-;3085:7;3117:1;3113;:5;3120:12;3105:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3144:9;3160:1;3156;:5;;;;:::i;:::-;3144:17;;3179:1;3172:8;;;2965:223;;;;;:::o;14522:615::-;14622:7;14644;14666;14688;14710;14732;14768:23;14793:12;14807:13;14837:40;14849:7;14858:9;;14869:7;;14837:11;:40::i;:::-;14767:110;;;;;;14888:19;14910:10;:8;:10::i;:::-;14888:32;;14932:15;14949:23;14974:12;15003:46;15015:7;15024:4;15030:5;15037:11;15003;:46::i;:::-;14931:118;;;;;;15068:7;15077:15;15094:4;15100:15;15117:4;15123:5;15060:69;;;;;;;;;;;;;;;;;;;14522:615;;;;;;;:::o;2195:136::-;2253:7;2280:43;2284:1;2287;2280:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2273:50;;2195:136;;;;:::o;2008:179::-;2066:7;2086:9;2102:1;2098;:5;;;;:::i;:::-;2086:17;;2127:1;2122;:6;;2114:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2178:1;2171:8;;;2008:179;;;;:::o;14111:211::-;14164:19;14186:10;:8;:10::i;:::-;14164:32;;14207:13;14223:22;14233:11;14223:5;:9;;:22;;;;:::i;:::-;14207:38;;14281:33;14308:5;14281:7;:22;14297:4;14281:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14256:7;:22;14272:4;14256:22;;;;;;;;;;;;;;;:58;;;;14153:169;;14111:211;:::o;14330:147::-;14408:17;14420:4;14408:7;;:11;;:17;;;;:::i;:::-;14398:7;:27;;;;14449:20;14464:4;14449:10;;:14;;:20;;;;:::i;:::-;14436:10;:33;;;;14330:147;;:::o;15145:469::-;15314:7;15336;15358;15393:12;15408:30;15434:3;15408:21;15420:8;15408:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15393:45;;15449:13;15465:28;15489:3;15465:19;15477:6;15465:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15449:44;;15504:23;15530:28;15552:5;15530:17;15542:4;15530:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15504:54;;15577:15;15594:4;15600:5;15569:37;;;;;;;;;15145:469;;;;;;;:::o;15622:534::-;15816:7;15838;15860;15895:15;15913:24;15925:11;15913:7;:11;;:24;;;;:::i;:::-;15895:42;;15948:12;15963:21;15972:11;15963:4;:8;;:21;;;;:::i;:::-;15948:36;;15995:13;16011:22;16021:11;16011:5;:9;;:22;;;;:::i;:::-;15995:38;;16044:23;16070:28;16092:5;16070:17;16082:4;16070:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16044:54;;16117:7;16126:15;16143:4;16109:39;;;;;;;;;;15622:534;;;;;;;;:::o;2571:246::-;2629:7;2658:1;2653;:6;2649:47;;;2683:1;2676:8;;;;2649:47;2706:9;2722:1;2718;:5;;;;:::i;:::-;2706:17;;2751:1;2746;2742;:5;;;;:::i;:::-;:10;2734:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2808:1;2801:8;;;2571:246;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:307::-;4139:1;4149:113;4163:6;4160:1;4157:13;4149:113;;;4248:1;4243:3;4239:11;4233:18;4229:1;4224:3;4220:11;4213:39;4185:2;4182:1;4178:10;4173:15;;4149:113;;;4280:6;4277:1;4274:13;4271:101;;;4360:1;4351:6;4346:3;4342:16;4335:27;4271:101;4120:258;4071:307;;;:::o;4384:364::-;4472:3;4500:39;4533:5;4500:39;:::i;:::-;4555:71;4619:6;4614:3;4555:71;:::i;:::-;4548:78;;4635:52;4680:6;4675:3;4668:4;4661:5;4657:16;4635:52;:::i;:::-;4712:29;4734:6;4712:29;:::i;:::-;4707:3;4703:39;4696:46;;4476:272;4384:364;;;;:::o;4754:313::-;4867:4;4905:2;4894:9;4890:18;4882:26;;4954:9;4948:4;4944:20;4940:1;4929:9;4925:17;4918:47;4982:78;5055:4;5046:6;4982:78;:::i;:::-;4974:86;;4754:313;;;;:::o;5073:329::-;5132:6;5181:2;5169:9;5160:7;5156:23;5152:32;5149:119;;;5187:79;;:::i;:::-;5149:119;5307:1;5332:53;5377:7;5368:6;5357:9;5353:22;5332:53;:::i;:::-;5322:63;;5278:117;5073:329;;;;:::o;5408:77::-;5445:7;5474:5;5463:16;;5408:77;;;:::o;5491:122::-;5564:24;5582:5;5564:24;:::i;:::-;5557:5;5554:35;5544:63;;5603:1;5600;5593:12;5544:63;5491:122;:::o;5619:139::-;5665:5;5703:6;5690:20;5681:29;;5719:33;5746:5;5719:33;:::i;:::-;5619:139;;;;:::o;5764:474::-;5832:6;5840;5889:2;5877:9;5868:7;5864:23;5860:32;5857:119;;;5895:79;;:::i;:::-;5857:119;6015:1;6040:53;6085:7;6076:6;6065:9;6061:22;6040:53;:::i;:::-;6030:63;;5986:117;6142:2;6168:53;6213:7;6204:6;6193:9;6189:22;6168:53;:::i;:::-;6158:63;;6113:118;5764:474;;;;;:::o;6244:90::-;6278:7;6321:5;6314:13;6307:21;6296:32;;6244:90;;;:::o;6340:109::-;6421:21;6436:5;6421:21;:::i;:::-;6416:3;6409:34;6340:109;;:::o;6455:210::-;6542:4;6580:2;6569:9;6565:18;6557:26;;6593:65;6655:1;6644:9;6640:17;6631:6;6593:65;:::i;:::-;6455:210;;;;:::o;6671:60::-;6699:3;6720:5;6713:12;;6671:60;;;:::o;6737:142::-;6787:9;6820:53;6838:34;6847:24;6865:5;6847:24;:::i;:::-;6838:34;:::i;:::-;6820:53;:::i;:::-;6807:66;;6737:142;;;:::o;6885:126::-;6935:9;6968:37;6999:5;6968:37;:::i;:::-;6955:50;;6885:126;;;:::o;7017:152::-;7093:9;7126:37;7157:5;7126:37;:::i;:::-;7113:50;;7017:152;;;:::o;7175:183::-;7288:63;7345:5;7288:63;:::i;:::-;7283:3;7276:76;7175:183;;:::o;7364:274::-;7483:4;7521:2;7510:9;7506:18;7498:26;;7534:97;7628:1;7617:9;7613:17;7604:6;7534:97;:::i;:::-;7364:274;;;;:::o;7644:118::-;7731:24;7749:5;7731:24;:::i;:::-;7726:3;7719:37;7644:118;;:::o;7768:222::-;7861:4;7899:2;7888:9;7884:18;7876:26;;7912:71;7980:1;7969:9;7965:17;7956:6;7912:71;:::i;:::-;7768:222;;;;:::o;7996:619::-;8073:6;8081;8089;8138:2;8126:9;8117:7;8113:23;8109:32;8106:119;;;8144:79;;:::i;:::-;8106:119;8264:1;8289:53;8334:7;8325:6;8314:9;8310:22;8289:53;:::i;:::-;8279:63;;8235:117;8391:2;8417:53;8462:7;8453:6;8442:9;8438:22;8417:53;:::i;:::-;8407:63;;8362:118;8519:2;8545:53;8590:7;8581:6;8570:9;8566:22;8545:53;:::i;:::-;8535:63;;8490:118;7996:619;;;;;:::o;8621:86::-;8656:7;8696:4;8689:5;8685:16;8674:27;;8621:86;;;:::o;8713:112::-;8796:22;8812:5;8796:22;:::i;:::-;8791:3;8784:35;8713:112;;:::o;8831:214::-;8920:4;8958:2;8947:9;8943:18;8935:26;;8971:67;9035:1;9024:9;9020:17;9011:6;8971:67;:::i;:::-;8831:214;;;;:::o;9051:118::-;9138:24;9156:5;9138:24;:::i;:::-;9133:3;9126:37;9051:118;;:::o;9175:222::-;9268:4;9306:2;9295:9;9291:18;9283:26;;9319:71;9387:1;9376:9;9372:17;9363:6;9319:71;:::i;:::-;9175:222;;;;:::o;9403:116::-;9473:21;9488:5;9473:21;:::i;:::-;9466:5;9463:32;9453:60;;9509:1;9506;9499:12;9453:60;9403:116;:::o;9525:133::-;9568:5;9606:6;9593:20;9584:29;;9622:30;9646:5;9622:30;:::i;:::-;9525:133;;;;:::o;9664:323::-;9720:6;9769:2;9757:9;9748:7;9744:23;9740:32;9737:119;;;9775:79;;:::i;:::-;9737:119;9895:1;9920:50;9962:7;9953:6;9942:9;9938:22;9920:50;:::i;:::-;9910:60;;9866:114;9664:323;;;;:::o;9993:329::-;10052:6;10101:2;10089:9;10080:7;10076:23;10072:32;10069:119;;;10107:79;;:::i;:::-;10069:119;10227:1;10252:53;10297:7;10288:6;10277:9;10273:22;10252:53;:::i;:::-;10242:63;;10198:117;9993:329;;;;:::o;10328:765::-;10414:6;10422;10430;10438;10487:3;10475:9;10466:7;10462:23;10458:33;10455:120;;;10494:79;;:::i;:::-;10455:120;10614:1;10639:53;10684:7;10675:6;10664:9;10660:22;10639:53;:::i;:::-;10629:63;;10585:117;10741:2;10767:53;10812:7;10803:6;10792:9;10788:22;10767:53;:::i;:::-;10757:63;;10712:118;10869:2;10895:53;10940:7;10931:6;10920:9;10916:22;10895:53;:::i;:::-;10885:63;;10840:118;10997:2;11023:53;11068:7;11059:6;11048:9;11044:22;11023:53;:::i;:::-;11013:63;;10968:118;10328:765;;;;;;;:::o;11099:117::-;11208:1;11205;11198:12;11239:568;11312:8;11322:6;11372:3;11365:4;11357:6;11353:17;11349:27;11339:122;;11380:79;;:::i;:::-;11339:122;11493:6;11480:20;11470:30;;11523:18;11515:6;11512:30;11509:117;;;11545:79;;:::i;:::-;11509:117;11659:4;11651:6;11647:17;11635:29;;11713:3;11705:4;11697:6;11693:17;11683:8;11679:32;11676:41;11673:128;;;11720:79;;:::i;:::-;11673:128;11239:568;;;;;:::o;11813:698::-;11905:6;11913;11921;11970:2;11958:9;11949:7;11945:23;11941:32;11938:119;;;11976:79;;:::i;:::-;11938:119;12124:1;12113:9;12109:17;12096:31;12154:18;12146:6;12143:30;12140:117;;;12176:79;;:::i;:::-;12140:117;12289:80;12361:7;12352:6;12341:9;12337:22;12289:80;:::i;:::-;12271:98;;;;12067:312;12418:2;12444:50;12486:7;12477:6;12466:9;12462:22;12444:50;:::i;:::-;12434:60;;12389:115;11813:698;;;;;:::o;12517:474::-;12585:6;12593;12642:2;12630:9;12621:7;12617:23;12613:32;12610:119;;;12648:79;;:::i;:::-;12610:119;12768:1;12793:53;12838:7;12829:6;12818:9;12814:22;12793:53;:::i;:::-;12783:63;;12739:117;12895:2;12921:53;12966:7;12957:6;12946:9;12942:22;12921:53;:::i;:::-;12911:63;;12866:118;12517:474;;;;;:::o;12997:182::-;13137:34;13133:1;13125:6;13121:14;13114:58;12997:182;:::o;13185:366::-;13327:3;13348:67;13412:2;13407:3;13348:67;:::i;:::-;13341:74;;13424:93;13513:3;13424:93;:::i;:::-;13542:2;13537:3;13533:12;13526:19;;13185:366;;;:::o;13557:419::-;13723:4;13761:2;13750:9;13746:18;13738:26;;13810:9;13804:4;13800:20;13796:1;13785:9;13781:17;13774:47;13838:131;13964:4;13838:131;:::i;:::-;13830:139;;13557:419;;;:::o;13982:180::-;14030:77;14027:1;14020:88;14127:4;14124:1;14117:15;14151:4;14148:1;14141:15;14168:180;14216:77;14213:1;14206:88;14313:4;14310:1;14303:15;14337:4;14334:1;14327:15;14354:233;14393:3;14416:24;14434:5;14416:24;:::i;:::-;14407:33;;14462:66;14455:5;14452:77;14449:103;;;14532:18;;:::i;:::-;14449:103;14579:1;14572:5;14568:13;14561:20;;14354:233;;;:::o;14593:223::-;14733:34;14729:1;14721:6;14717:14;14710:58;14802:6;14797:2;14789:6;14785:15;14778:31;14593:223;:::o;14822:366::-;14964:3;14985:67;15049:2;15044:3;14985:67;:::i;:::-;14978:74;;15061:93;15150:3;15061:93;:::i;:::-;15179:2;15174:3;15170:12;15163:19;;14822:366;;;:::o;15194:419::-;15360:4;15398:2;15387:9;15383:18;15375:26;;15447:9;15441:4;15437:20;15433:1;15422:9;15418:17;15411:47;15475:131;15601:4;15475:131;:::i;:::-;15467:139;;15194:419;;;:::o;15619:225::-;15759:34;15755:1;15747:6;15743:14;15736:58;15828:8;15823:2;15815:6;15811:15;15804:33;15619:225;:::o;15850:366::-;15992:3;16013:67;16077:2;16072:3;16013:67;:::i;:::-;16006:74;;16089:93;16178:3;16089:93;:::i;:::-;16207:2;16202:3;16198:12;16191:19;;15850:366;;;:::o;16222:419::-;16388:4;16426:2;16415:9;16411:18;16403:26;;16475:9;16469:4;16465:20;16461:1;16450:9;16446:17;16439:47;16503:131;16629:4;16503:131;:::i;:::-;16495:139;;16222:419;;;:::o;16647:223::-;16787:34;16783:1;16775:6;16771:14;16764:58;16856:6;16851:2;16843:6;16839:15;16832:31;16647:223;:::o;16876:366::-;17018:3;17039:67;17103:2;17098:3;17039:67;:::i;:::-;17032:74;;17115:93;17204:3;17115:93;:::i;:::-;17233:2;17228:3;17224:12;17217:19;;16876:366;;;:::o;17248:419::-;17414:4;17452:2;17441:9;17437:18;17429:26;;17501:9;17495:4;17491:20;17487:1;17476:9;17472:17;17465:47;17529:131;17655:4;17529:131;:::i;:::-;17521:139;;17248:419;;;:::o;17673:221::-;17813:34;17809:1;17801:6;17797:14;17790:58;17882:4;17877:2;17869:6;17865:15;17858:29;17673:221;:::o;17900:366::-;18042:3;18063:67;18127:2;18122:3;18063:67;:::i;:::-;18056:74;;18139:93;18228:3;18139:93;:::i;:::-;18257:2;18252:3;18248:12;18241:19;;17900:366;;;:::o;18272:419::-;18438:4;18476:2;18465:9;18461:18;18453:26;;18525:9;18519:4;18515:20;18511:1;18500:9;18496:17;18489:47;18553:131;18679:4;18553:131;:::i;:::-;18545:139;;18272:419;;;:::o;18697:224::-;18837:34;18833:1;18825:6;18821:14;18814:58;18906:7;18901:2;18893:6;18889:15;18882:32;18697:224;:::o;18927:366::-;19069:3;19090:67;19154:2;19149:3;19090:67;:::i;:::-;19083:74;;19166:93;19255:3;19166:93;:::i;:::-;19284:2;19279:3;19275:12;19268:19;;18927:366;;;:::o;19299:419::-;19465:4;19503:2;19492:9;19488:18;19480:26;;19552:9;19546:4;19542:20;19538:1;19527:9;19523:17;19516:47;19580:131;19706:4;19580:131;:::i;:::-;19572:139;;19299:419;;;:::o;19724:222::-;19864:34;19860:1;19852:6;19848:14;19841:58;19933:5;19928:2;19920:6;19916:15;19909:30;19724:222;:::o;19952:366::-;20094:3;20115:67;20179:2;20174:3;20115:67;:::i;:::-;20108:74;;20191:93;20280:3;20191:93;:::i;:::-;20309:2;20304:3;20300:12;20293:19;;19952:366;;;:::o;20324:419::-;20490:4;20528:2;20517:9;20513:18;20505:26;;20577:9;20571:4;20567:20;20563:1;20552:9;20548:17;20541:47;20605:131;20731:4;20605:131;:::i;:::-;20597:139;;20324:419;;;:::o;20749:228::-;20889:34;20885:1;20877:6;20873:14;20866:58;20958:11;20953:2;20945:6;20941:15;20934:36;20749:228;:::o;20983:366::-;21125:3;21146:67;21210:2;21205:3;21146:67;:::i;:::-;21139:74;;21222:93;21311:3;21222:93;:::i;:::-;21340:2;21335:3;21331:12;21324:19;;20983:366;;;:::o;21355:419::-;21521:4;21559:2;21548:9;21544:18;21536:26;;21608:9;21602:4;21598:20;21594:1;21583:9;21579:17;21572:47;21636:131;21762:4;21636:131;:::i;:::-;21628:139;;21355:419;;;:::o;21780:250::-;21920:34;21916:1;21908:6;21904:14;21897:58;21989:33;21984:2;21976:6;21972:15;21965:58;21780:250;:::o;22036:366::-;22178:3;22199:67;22263:2;22258:3;22199:67;:::i;:::-;22192:74;;22275:93;22364:3;22275:93;:::i;:::-;22393:2;22388:3;22384:12;22377:19;;22036:366;;;:::o;22408:419::-;22574:4;22612:2;22601:9;22597:18;22589:26;;22661:9;22655:4;22651:20;22647:1;22636:9;22632:17;22625:47;22689:131;22815:4;22689:131;:::i;:::-;22681:139;;22408:419;;;:::o;22833:178::-;22973:30;22969:1;22961:6;22957:14;22950:54;22833:178;:::o;23017:366::-;23159:3;23180:67;23244:2;23239:3;23180:67;:::i;:::-;23173:74;;23256:93;23345:3;23256:93;:::i;:::-;23374:2;23369:3;23365:12;23358:19;;23017:366;;;:::o;23389:419::-;23555:4;23593:2;23582:9;23578:18;23570:26;;23642:9;23636:4;23632:20;23628:1;23617:9;23613:17;23606:47;23670:131;23796:4;23670:131;:::i;:::-;23662:139;;23389:419;;;:::o;23814:222::-;23954:34;23950:1;23942:6;23938:14;23931:58;24023:5;24018:2;24010:6;24006:15;23999:30;23814:222;:::o;24042:366::-;24184:3;24205:67;24269:2;24264:3;24205:67;:::i;:::-;24198:74;;24281:93;24370:3;24281:93;:::i;:::-;24399:2;24394:3;24390:12;24383:19;;24042:366;;;:::o;24414:419::-;24580:4;24618:2;24607:9;24603:18;24595:26;;24667:9;24661:4;24657:20;24653:1;24642:9;24638:17;24631:47;24695:131;24821:4;24695:131;:::i;:::-;24687:139;;24414:419;;;:::o;24839:305::-;24879:3;24898:20;24916:1;24898:20;:::i;:::-;24893:25;;24932:20;24950:1;24932:20;:::i;:::-;24927:25;;25086:1;25018:66;25014:74;25011:1;25008:81;25005:107;;;25092:18;;:::i;:::-;25005:107;25136:1;25133;25129:9;25122:16;;24839:305;;;;:::o;25150:222::-;25290:34;25286:1;25278:6;25274:14;25267:58;25359:5;25354:2;25346:6;25342:15;25335:30;25150:222;:::o;25378:366::-;25520:3;25541:67;25605:2;25600:3;25541:67;:::i;:::-;25534:74;;25617:93;25706:3;25617:93;:::i;:::-;25735:2;25730:3;25726:12;25719:19;;25378:366;;;:::o;25750:419::-;25916:4;25954:2;25943:9;25939:18;25931:26;;26003:9;25997:4;25993:20;25989:1;25978:9;25974:17;25967:47;26031:131;26157:4;26031:131;:::i;:::-;26023:139;;25750:419;;;:::o;26175:191::-;26215:4;26235:20;26253:1;26235:20;:::i;:::-;26230:25;;26269:20;26287:1;26269:20;:::i;:::-;26264:25;;26308:1;26305;26302:8;26299:34;;;26313:18;;:::i;:::-;26299:34;26358:1;26355;26351:9;26343:17;;26175:191;;;;:::o;26372:229::-;26512:34;26508:1;26500:6;26496:14;26489:58;26581:12;26576:2;26568:6;26564:15;26557:37;26372:229;:::o;26607:366::-;26749:3;26770:67;26834:2;26829:3;26770:67;:::i;:::-;26763:74;;26846:93;26935:3;26846:93;:::i;:::-;26964:2;26959:3;26955:12;26948:19;;26607:366;;;:::o;26979:419::-;27145:4;27183:2;27172:9;27168:18;27160:26;;27232:9;27226:4;27222:20;27218:1;27207:9;27203:17;27196:47;27260:131;27386:4;27260:131;:::i;:::-;27252:139;;26979:419;;;:::o;27404:143::-;27461:5;27492:6;27486:13;27477:22;;27508:33;27535:5;27508:33;:::i;:::-;27404:143;;;;:::o;27553:351::-;27623:6;27672:2;27660:9;27651:7;27647:23;27643:32;27640:119;;;27678:79;;:::i;:::-;27640:119;27798:1;27823:64;27879:7;27870:6;27859:9;27855:22;27823:64;:::i;:::-;27813:74;;27769:128;27553:351;;;;:::o;27910:85::-;27955:7;27984:5;27973:16;;27910:85;;;:::o;28001:158::-;28059:9;28092:61;28110:42;28119:32;28145:5;28119:32;:::i;:::-;28110:42;:::i;:::-;28092:61;:::i;:::-;28079:74;;28001:158;;;:::o;28165:147::-;28260:45;28299:5;28260:45;:::i;:::-;28255:3;28248:58;28165:147;;:::o;28318:114::-;28385:6;28419:5;28413:12;28403:22;;28318:114;;;:::o;28438:184::-;28537:11;28571:6;28566:3;28559:19;28611:4;28606:3;28602:14;28587:29;;28438:184;;;;:::o;28628:132::-;28695:4;28718:3;28710:11;;28748:4;28743:3;28739:14;28731:22;;28628:132;;;:::o;28766:108::-;28843:24;28861:5;28843:24;:::i;:::-;28838:3;28831:37;28766:108;;:::o;28880:179::-;28949:10;28970:46;29012:3;29004:6;28970:46;:::i;:::-;29048:4;29043:3;29039:14;29025:28;;28880:179;;;;:::o;29065:113::-;29135:4;29167;29162:3;29158:14;29150:22;;29065:113;;;:::o;29214:732::-;29333:3;29362:54;29410:5;29362:54;:::i;:::-;29432:86;29511:6;29506:3;29432:86;:::i;:::-;29425:93;;29542:56;29592:5;29542:56;:::i;:::-;29621:7;29652:1;29637:284;29662:6;29659:1;29656:13;29637:284;;;29738:6;29732:13;29765:63;29824:3;29809:13;29765:63;:::i;:::-;29758:70;;29851:60;29904:6;29851:60;:::i;:::-;29841:70;;29697:224;29684:1;29681;29677:9;29672:14;;29637:284;;;29641:14;29937:3;29930:10;;29338:608;;;29214:732;;;;:::o;29952:831::-;30215:4;30253:3;30242:9;30238:19;30230:27;;30267:71;30335:1;30324:9;30320:17;30311:6;30267:71;:::i;:::-;30348:80;30424:2;30413:9;30409:18;30400:6;30348:80;:::i;:::-;30475:9;30469:4;30465:20;30460:2;30449:9;30445:18;30438:48;30503:108;30606:4;30597:6;30503:108;:::i;:::-;30495:116;;30621:72;30689:2;30678:9;30674:18;30665:6;30621:72;:::i;:::-;30703:73;30771:3;30760:9;30756:19;30747:6;30703:73;:::i;:::-;29952:831;;;;;;;;:::o;30789:180::-;30837:77;30834:1;30827:88;30934:4;30931:1;30924:15;30958:4;30955:1;30948:15;30975:185;31015:1;31032:20;31050:1;31032:20;:::i;:::-;31027:25;;31066:20;31084:1;31066:20;:::i;:::-;31061:25;;31105:1;31095:35;;31110:18;;:::i;:::-;31095:35;31152:1;31149;31145:9;31140:14;;30975:185;;;;:::o;31166:177::-;31306:29;31302:1;31294:6;31290:14;31283:53;31166:177;:::o;31349:366::-;31491:3;31512:67;31576:2;31571:3;31512:67;:::i;:::-;31505:74;;31588:93;31677:3;31588:93;:::i;:::-;31706:2;31701:3;31697:12;31690:19;;31349:366;;;:::o;31721:419::-;31887:4;31925:2;31914:9;31910:18;31902:26;;31974:9;31968:4;31964:20;31960:1;31949:9;31945:17;31938:47;32002:131;32128:4;32002:131;:::i;:::-;31994:139;;31721:419;;;:::o;32146:348::-;32186:7;32209:20;32227:1;32209:20;:::i;:::-;32204:25;;32243:20;32261:1;32243:20;:::i;:::-;32238:25;;32431:1;32363:66;32359:74;32356:1;32353:81;32348:1;32341:9;32334:17;32330:105;32327:131;;;32438:18;;:::i;:::-;32327:131;32486:1;32483;32479:9;32468:20;;32146:348;;;;:::o;32500:220::-;32640:34;32636:1;32628:6;32624:14;32617:58;32709:3;32704:2;32696:6;32692:15;32685:28;32500:220;:::o;32726:366::-;32868:3;32889:67;32953:2;32948:3;32889:67;:::i;:::-;32882:74;;32965:93;33054:3;32965:93;:::i;:::-;33083:2;33078:3;33074:12;33067:19;;32726:366;;;:::o;33098:419::-;33264:4;33302:2;33291:9;33287:18;33279:26;;33351:9;33345:4;33341:20;33337:1;33326:9;33322:17;33315:47;33379:131;33505:4;33379:131;:::i;:::-;33371:139;;33098:419;;;:::o

Swarm Source

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