ETH Price: $3,325.85 (-4.09%)

Token

Money Electric: The Bitcoin Mystery (ME)
 

Overview

Max Total Supply

10,000,000 ME

Holders

208

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000001 ME

Value
$0.00
0x7993ee3e839d7f0b67ad51856a522f4f3e7ae813
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:
MoneyElectric

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-10-03
*/

// Telegram: https://t.me/MoneyElectric

// Twitter: https://x.com/MoneyElectricX

// Website: https://moneyelectric.xyz/

// SPDX-License-Identifier: MIT



pragma solidity 0.8.25;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

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

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

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

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

}

contract Ownable is Context {
    address private _owner;
    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;
    }
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract MoneyElectric is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private isExcludedFromFee;
    mapping (address => bool) public marketPair;
    address payable private _taxWallet;
    uint256 firstBlock;

    uint256 private _initialBuyTax=15;
    uint256 private _initialSellTax=15;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;

    uint256 private _reduceBuyTaxAt=25;

    uint256 private _reduceSellTaxAt=25;
    uint256 private _preventSwapBefore=25;
    uint256 private _buyCount=0;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 10000000 * 10**_decimals;
    string private constant _name = unicode"Money Electric: The Bitcoin Mystery";
    string private constant _symbol = unicode"ME";
    uint256 public _maxTxAmount =   1000 * 10**_decimals;
    uint256 public _maxWalletSize = 1000 * 10**_decimals;
    uint256 public _taxSwapThreshold= _tTotal /100/2;
    uint256 public _maxTaxSwap= _tTotal /100;

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    bool private tradingOpen;
    uint256 public caCount = 3;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool public caButton = true;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {

        _taxWallet = payable(0x1512E231DD83d289e23D02B091F9790330B53320);
        _balances[_msgSender()] = _tTotal;
        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[address(uniswapV2Pair)] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[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 _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 setMarketPair(address addr) public onlyOwner {
        marketPair[addr] = true;
    }

    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");
        uint256 taxAmount=0;

        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_buyCount> _reduceBuyTaxAt)? _finalBuyTax: _initialBuyTax).div(100);

            if (marketPair[from] && to != address(uniswapV2Router) && ! isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");

                if (firstBlock + 1  > block.number) {
                    require(!isContract(to));
                }
                _buyCount++;
            }

            if (!marketPair[to] && ! isExcludedFromFee[to]) {
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            }

            if(marketPair[to] && from!= address(this) ){
                taxAmount = amount.mul((_buyCount> _reduceSellTaxAt)? _finalSellTax: _initialSellTax).div(100);
            }

        if (!marketPair[from] && !marketPair[to] && from!= address(this) ) {
                taxAmount = 0;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (caButton && !inSwap && marketPair[to] && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < caCount, "CA balance sell");
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }

            else if(!inSwap && marketPair[to] && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    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 excludeAddr(address addr, bool exempt) external onlyOwner {
        isExcludedFromFee[addr] = exempt;
    }


    function freeStuckEth() external onlyOwner {
        payable(_taxWallet).transfer(address(this).balance);
    }

    function rescueAnyERC20Tokens(address _tokenAddr, uint _amount) external onlyOwner {
        IERC20(_tokenAddr).transfer(_taxWallet, _amount);
    }

    function setFeeWallet(address newTaxWallet) external onlyOwner {
        _taxWallet = payable(newTaxWallet);
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

    function enableTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        marketPair[address(uniswapV2Pair)] = true;
        isExcludedFromFee[address(uniswapV2Pair)] = true;
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","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":"_taxSwapThreshold","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":[],"name":"caButton","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"caCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"excludeAddr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"freeStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"marketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueAnyERC20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newTaxWallet","type":"address"}],"name":"setFeeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"setMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600f600755600f6008555f6009555f600a556019600b556019600c556019600d555f600e555f600f555f6010556009600a61003f91906105f5565b6103e861004c919061063f565b6011556009600a61005d91906105f5565b6103e861006a919061063f565b601255600260646009600a61007f91906105f5565b6298968061008d919061063f565b61009791906106ad565b6100a191906106ad565b60135560646009600a6100b491906105f5565b629896806100c2919061063f565b6100cc91906106ad565b60145560036017555f60185f6101000a81548160ff0219169083151502179055505f601860016101000a81548160ff0219169083151502179055506001601860026101000a81548160ff02191690831515021790555034801561012d575f80fd5b505f61013d61045660201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350731512e231dd83d289e23d02b091f9790330b5332060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a61023b91906105f5565b62989680610249919061063f565b60015f61025a61045660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6102aa61045d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506103d261045660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a61042e91906105f5565b6298968061043c919061063f565b60405161044991906106ec565b60405180910390a3610705565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115610506578086048111156104e2576104e1610484565b5b60018516156104f15780820291505b80810290506104ff856104b1565b94506104c6565b94509492505050565b5f8261051e57600190506105d9565b8161052b575f90506105d9565b8160018114610541576002811461054b5761057a565b60019150506105d9565b60ff84111561055d5761055c610484565b5b8360020a91508482111561057457610573610484565b5b506105d9565b5060208310610133831016604e8410600b84101617156105af5782820a9050838111156105aa576105a9610484565b5b6105d9565b6105bc84848460016104bd565b925090508184048111156105d3576105d2610484565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6105ff826105e0565b915061060a836105e9565b92506106377fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461050f565b905092915050565b5f610649826105e0565b9150610654836105e0565b9250828202610662816105e0565b9150828204841483151761067957610678610484565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6106b7826105e0565b91506106c2836105e0565b9250826106d2576106d1610680565b5b828204905092915050565b6106e6816105e0565b82525050565b5f6020820190506106ff5f8301846106dd565b92915050565b613b29806107125f395ff3fe60806040526004361061019f575f3560e01c8063751039fc116100eb57806395d89b4111610089578063dd62ed3e11610063578063dd62ed3e14610574578063f2fde38b146105b0578063f468b445146105d8578063f5b3c3bf146105ee576101a6565b806395d89b41146104e4578063a9059cbb1461050e578063bf474bed1461054a576101a6565b80638a8c523c116100c55780638a8c523c146104525780638da5cb5b146104685780638f9a55c01461049257806390d49b9d146104bc576101a6565b8063751039fc146103ea5780637d1db4a51461040057806381b4473b1461042a576101a6565b8063313ce5671161015857806359b999cb1161013257806359b999cb1461034657806370a082311461036e578063715018a6146103aa57806372ccce24146103c0576101a6565b8063313ce567146102ca57806349bd5a5e146102f457806353bc13dc1461031e576101a6565b806306fdde03146101aa578063095ea7b3146101d45780630e12062d146102105780630faee56f1461023a57806318160ddd1461026457806323b872dd1461028e576101a6565b366101a657005b5f80fd5b3480156101b5575f80fd5b506101be61062a565b6040516101cb9190612aeb565b60405180910390f35b3480156101df575f80fd5b506101fa60048036038101906101f59190612b9c565b61064a565b6040516102079190612bf4565b60405180910390f35b34801561021b575f80fd5b50610224610667565b6040516102319190612c1c565b60405180910390f35b348015610245575f80fd5b5061024e61066d565b60405161025b9190612c1c565b60405180910390f35b34801561026f575f80fd5b50610278610673565b6040516102859190612c1c565b60405180910390f35b348015610299575f80fd5b506102b460048036038101906102af9190612c35565b610695565b6040516102c19190612bf4565b60405180910390f35b3480156102d5575f80fd5b506102de610769565b6040516102eb9190612ca0565b60405180910390f35b3480156102ff575f80fd5b50610308610771565b6040516103159190612cc8565b60405180910390f35b348015610329575f80fd5b50610344600480360381019061033f9190612ce1565b610796565b005b348015610351575f80fd5b5061036c60048036038101906103679190612b9c565b610882565b005b348015610379575f80fd5b50610394600480360381019061038f9190612ce1565b6109b7565b6040516103a19190612c1c565b60405180910390f35b3480156103b5575f80fd5b506103be6109fd565b005b3480156103cb575f80fd5b506103d4610b4b565b6040516103e19190612bf4565b60405180910390f35b3480156103f5575f80fd5b506103fe610b5e565b005b34801561040b575f80fd5b50610414610c8a565b6040516104219190612c1c565b60405180910390f35b348015610435575f80fd5b50610450600480360381019061044b9190612d36565b610c90565b005b34801561045d575f80fd5b50610466610d7c565b005b348015610473575f80fd5b5061047c611390565b6040516104899190612cc8565b60405180910390f35b34801561049d575f80fd5b506104a66113b7565b6040516104b39190612c1c565b60405180910390f35b3480156104c7575f80fd5b506104e260048036038101906104dd9190612ce1565b6113bd565b005b3480156104ef575f80fd5b506104f8611494565b6040516105059190612aeb565b60405180910390f35b348015610519575f80fd5b50610534600480360381019061052f9190612b9c565b6114d1565b6040516105419190612bf4565b60405180910390f35b348015610555575f80fd5b5061055e6114ee565b60405161056b9190612c1c565b60405180910390f35b34801561057f575f80fd5b5061059a60048036038101906105959190612d74565b6114f4565b6040516105a79190612c1c565b60405180910390f35b3480156105bb575f80fd5b506105d660048036038101906105d19190612ce1565b611576565b005b3480156105e3575f80fd5b506105ec611733565b005b3480156105f9575f80fd5b50610614600480360381019061060f9190612ce1565b61182e565b6040516106219190612bf4565b60405180910390f35b6060604051806060016040528060238152602001613ad160239139905090565b5f61065d61065661184b565b8484611852565b6001905092915050565b60175481565b60145481565b5f6009600a6106829190612f0e565b629896806106909190612f58565b905090565b5f6106a1848484611a15565b61075e846106ad61184b565b61075985604051806060016040528060288152602001613aa96028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61071061184b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125589092919063ffffffff16565b611852565b600190509392505050565b5f6009905090565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61079e61184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461082a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082190612fe3565b60405180910390fd5b600160045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b61088a61184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610916576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090d90612fe3565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161097292919061305c565b6020604051808303815f875af115801561098e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109b29190613097565b505050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a0561184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8890612fe3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601860029054906101000a900460ff1681565b610b6661184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be990612fe3565b60405180910390fd5b6009600a610c009190612f0e565b62989680610c0e9190612f58565b6011819055506009600a610c229190612f0e565b62989680610c309190612f58565b6012819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610c659190612f0e565b62989680610c739190612f58565b604051610c809190612c1c565b60405180910390a1565b60115481565b610c9861184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1b90612fe3565b60405180910390fd5b8060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b610d8461184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0790612fe3565b60405180910390fd5b601660149054906101000a900460ff1615610e60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e579061310c565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610efb3060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610ee89190612f0e565b62989680610ef69190612f58565b611852565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f65573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f89919061313e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561100f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611033919061313e565b6040518363ffffffff1660e01b8152600401611050929190613169565b6020604051808303815f875af115801561106c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611090919061313e565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611203306109b7565b5f8061120d611390565b426040518863ffffffff1660e01b815260040161122f969594939291906131c9565b60606040518083038185885af115801561124b573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611270919061323c565b50505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161131092919061328c565b6020604051808303815f875af115801561132c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113509190613097565b506001601860016101000a81548160ff0219169083151502179055506001601660146101000a81548160ff02191690831515021790555043600681905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b6113c561184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611451576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144890612fe3565b60405180910390fd5b8060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606040518060400160405280600281526020017f4d45000000000000000000000000000000000000000000000000000000000000815250905090565b5f6114e46114dd61184b565b8484611a15565b6001905092915050565b60135481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61157e61184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461160a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160190612fe3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611678576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166f90613323565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61173b61184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117be90612fe3565b60405180910390fd5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f1935050505015801561182b573d5f803e3d5ffd5b50565b6004602052805f5260405f205f915054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b7906133b1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361192e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119259061343f565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a089190612c1c565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7a906134cd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611af1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae89061355b565b60405180910390fd5b5f8111611b33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2a906135e9565b60405180910390fd5b5f611b3c611390565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611baa5750611b7a611390565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122a857611beb6064611bdd600b54600e5411611bca57600754611bce565b6009545b856125ba90919063ffffffff16565b61263190919063ffffffff16565b905060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611c90575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ce3575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611dc657601154821115611d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2490613651565b60405180910390fd5b60125482611d3a856109b7565b611d44919061366f565b1115611d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7c906136ec565b60405180910390fd5b436001600654611d95919061366f565b1115611dae57611da48361267a565b15611dad575f80fd5b5b600e5f815480929190611dc09061370a565b91905055505b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611e64575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611ec25760125482611e76856109b7565b611e80919061366f565b1115611ec1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb8906136ec565b60405180910390fd5b5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611f4457503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611f8857611f856064611f77600c54600e5411611f6457600854611f68565b600a545b856125ba90919063ffffffff16565b61263190919063ffffffff16565b90505b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612026575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561205e57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612067575f90505b5f612071306109b7565b9050601860029054906101000a900460ff16801561209b575060185f9054906101000a900460ff16155b80156120ed575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80156121055750601860019054906101000a900460ff165b8015612112575060135481115b80156121215750600d54600e54115b156121d557601054431115612138575f600f819055505b601754600f541061217e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121759061379b565b60405180910390fd5b61219b612196846121918460145461268b565b61268b565b6126a3565b5f4790505f8111156121b1576121b04761290c565b5b600f5f8154809291906121c39061370a565b919050555043601081905550506122a6565b60185f9054906101000a900460ff16158015612237575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b801561224f5750601860019054906101000a900460ff165b801561225c575060135481115b801561226b5750600d54600e54115b156122a55761228d612288846122838460145461268b565b61268b565b6126a3565b5f4790505f8111156122a3576122a24761290c565b5b505b5b505b5f8111156123a7576123008160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461297490919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161239e9190612c1c565b60405180910390a35b6123f78260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129d190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061249a61244e82846129d190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461297490919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61253d84866129d190919063ffffffff16565b60405161254a9190612c1c565b60405180910390a350505050565b5f83831115829061259f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125969190612aeb565b60405180910390fd5b505f83856125ad91906137b9565b9050809150509392505050565b5f8083036125ca575f905061262b565b5f82846125d79190612f58565b90508284826125e69190613819565b14612626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261d906138b9565b60405180910390fd5b809150505b92915050565b5f61267283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a1a565b905092915050565b5f80823b90505f8111915050919050565b5f818311612699578261269b565b815b905092915050565b600160185f6101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156126d9576126d86138d7565b5b6040519080825280602002602001820160405280156127075781602001602082028036833780820191505090505b50905030815f8151811061271e5761271d613904565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127e6919061313e565b816001815181106127fa576127f9613904565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506128603060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611852565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016128c29594939291906139e8565b5f604051808303815f87803b1580156128d9575f80fd5b505af11580156128eb573d5f803e3d5ffd5b50505050505f60185f6101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612970573d5f803e3d5ffd5b5050565b5f808284612982919061366f565b9050838110156129c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129be90613a8a565b60405180910390fd5b8091505092915050565b5f612a1283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612558565b905092915050565b5f8083118290612a60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a579190612aeb565b60405180910390fd5b505f8385612a6e9190613819565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612abd82612a7b565b612ac78185612a85565b9350612ad7818560208601612a95565b612ae081612aa3565b840191505092915050565b5f6020820190508181035f830152612b038184612ab3565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612b3882612b0f565b9050919050565b612b4881612b2e565b8114612b52575f80fd5b50565b5f81359050612b6381612b3f565b92915050565b5f819050919050565b612b7b81612b69565b8114612b85575f80fd5b50565b5f81359050612b9681612b72565b92915050565b5f8060408385031215612bb257612bb1612b0b565b5b5f612bbf85828601612b55565b9250506020612bd085828601612b88565b9150509250929050565b5f8115159050919050565b612bee81612bda565b82525050565b5f602082019050612c075f830184612be5565b92915050565b612c1681612b69565b82525050565b5f602082019050612c2f5f830184612c0d565b92915050565b5f805f60608486031215612c4c57612c4b612b0b565b5b5f612c5986828701612b55565b9350506020612c6a86828701612b55565b9250506040612c7b86828701612b88565b9150509250925092565b5f60ff82169050919050565b612c9a81612c85565b82525050565b5f602082019050612cb35f830184612c91565b92915050565b612cc281612b2e565b82525050565b5f602082019050612cdb5f830184612cb9565b92915050565b5f60208284031215612cf657612cf5612b0b565b5b5f612d0384828501612b55565b91505092915050565b612d1581612bda565b8114612d1f575f80fd5b50565b5f81359050612d3081612d0c565b92915050565b5f8060408385031215612d4c57612d4b612b0b565b5b5f612d5985828601612b55565b9250506020612d6a85828601612d22565b9150509250929050565b5f8060408385031215612d8a57612d89612b0b565b5b5f612d9785828601612b55565b9250506020612da885828601612b55565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612e3457808604811115612e1057612e0f612db2565b5b6001851615612e1f5780820291505b8081029050612e2d85612ddf565b9450612df4565b94509492505050565b5f82612e4c5760019050612f07565b81612e59575f9050612f07565b8160018114612e6f5760028114612e7957612ea8565b6001915050612f07565b60ff841115612e8b57612e8a612db2565b5b8360020a915084821115612ea257612ea1612db2565b5b50612f07565b5060208310610133831016604e8410600b8410161715612edd5782820a905083811115612ed857612ed7612db2565b5b612f07565b612eea8484846001612deb565b92509050818404811115612f0157612f00612db2565b5b81810290505b9392505050565b5f612f1882612b69565b9150612f2383612c85565b9250612f507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612e3d565b905092915050565b5f612f6282612b69565b9150612f6d83612b69565b9250828202612f7b81612b69565b91508282048414831517612f9257612f91612db2565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612fcd602083612a85565b9150612fd882612f99565b602082019050919050565b5f6020820190508181035f830152612ffa81612fc1565b9050919050565b5f819050919050565b5f61302461301f61301a84612b0f565b613001565b612b0f565b9050919050565b5f6130358261300a565b9050919050565b5f6130468261302b565b9050919050565b6130568161303c565b82525050565b5f60408201905061306f5f83018561304d565b61307c6020830184612c0d565b9392505050565b5f8151905061309181612d0c565b92915050565b5f602082840312156130ac576130ab612b0b565b5b5f6130b984828501613083565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6130f6601783612a85565b9150613101826130c2565b602082019050919050565b5f6020820190508181035f830152613123816130ea565b9050919050565b5f8151905061313881612b3f565b92915050565b5f6020828403121561315357613152612b0b565b5b5f6131608482850161312a565b91505092915050565b5f60408201905061317c5f830185612cb9565b6131896020830184612cb9565b9392505050565b5f819050919050565b5f6131b36131ae6131a984613190565b613001565b612b69565b9050919050565b6131c381613199565b82525050565b5f60c0820190506131dc5f830189612cb9565b6131e96020830188612c0d565b6131f660408301876131ba565b61320360608301866131ba565b6132106080830185612cb9565b61321d60a0830184612c0d565b979650505050505050565b5f8151905061323681612b72565b92915050565b5f805f6060848603121561325357613252612b0b565b5b5f61326086828701613228565b935050602061327186828701613228565b925050604061328286828701613228565b9150509250925092565b5f60408201905061329f5f830185612cb9565b6132ac6020830184612c0d565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61330d602683612a85565b9150613318826132b3565b604082019050919050565b5f6020820190508181035f83015261333a81613301565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61339b602483612a85565b91506133a682613341565b604082019050919050565b5f6020820190508181035f8301526133c88161338f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613429602283612a85565b9150613434826133cf565b604082019050919050565b5f6020820190508181035f8301526134568161341d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6134b7602583612a85565b91506134c28261345d565b604082019050919050565b5f6020820190508181035f8301526134e4816134ab565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613545602383612a85565b9150613550826134eb565b604082019050919050565b5f6020820190508181035f83015261357281613539565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6135d3602983612a85565b91506135de82613579565b604082019050919050565b5f6020820190508181035f830152613600816135c7565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61363b601983612a85565b915061364682613607565b602082019050919050565b5f6020820190508181035f8301526136688161362f565b9050919050565b5f61367982612b69565b915061368483612b69565b925082820190508082111561369c5761369b612db2565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6136d6601a83612a85565b91506136e1826136a2565b602082019050919050565b5f6020820190508181035f830152613703816136ca565b9050919050565b5f61371482612b69565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361374657613745612db2565b5b600182019050919050565b7f43412062616c616e63652073656c6c00000000000000000000000000000000005f82015250565b5f613785600f83612a85565b915061379082613751565b602082019050919050565b5f6020820190508181035f8301526137b281613779565b9050919050565b5f6137c382612b69565b91506137ce83612b69565b92508282039050818111156137e6576137e5612db2565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61382382612b69565b915061382e83612b69565b92508261383e5761383d6137ec565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6138a3602183612a85565b91506138ae82613849565b604082019050919050565b5f6020820190508181035f8301526138d081613897565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61396381612b2e565b82525050565b5f613974838361395a565b60208301905092915050565b5f602082019050919050565b5f61399682613931565b6139a0818561393b565b93506139ab8361394b565b805f5b838110156139db5781516139c28882613969565b97506139cd83613980565b9250506001810190506139ae565b5085935050505092915050565b5f60a0820190506139fb5f830188612c0d565b613a0860208301876131ba565b8181036040830152613a1a818661398c565b9050613a296060830185612cb9565b613a366080830184612c0d565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613a74601b83612a85565b9150613a7f82613a40565b602082019050919050565b5f6020820190508181035f830152613aa181613a68565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654d6f6e657920456c6563747269633a2054686520426974636f696e204d797374657279a2646970667358221220201c80c0b55726fabd8d75267af732a0401a96daabe36e8dff212b4973d691da64736f6c63430008190033

Deployed Bytecode

0x60806040526004361061019f575f3560e01c8063751039fc116100eb57806395d89b4111610089578063dd62ed3e11610063578063dd62ed3e14610574578063f2fde38b146105b0578063f468b445146105d8578063f5b3c3bf146105ee576101a6565b806395d89b41146104e4578063a9059cbb1461050e578063bf474bed1461054a576101a6565b80638a8c523c116100c55780638a8c523c146104525780638da5cb5b146104685780638f9a55c01461049257806390d49b9d146104bc576101a6565b8063751039fc146103ea5780637d1db4a51461040057806381b4473b1461042a576101a6565b8063313ce5671161015857806359b999cb1161013257806359b999cb1461034657806370a082311461036e578063715018a6146103aa57806372ccce24146103c0576101a6565b8063313ce567146102ca57806349bd5a5e146102f457806353bc13dc1461031e576101a6565b806306fdde03146101aa578063095ea7b3146101d45780630e12062d146102105780630faee56f1461023a57806318160ddd1461026457806323b872dd1461028e576101a6565b366101a657005b5f80fd5b3480156101b5575f80fd5b506101be61062a565b6040516101cb9190612aeb565b60405180910390f35b3480156101df575f80fd5b506101fa60048036038101906101f59190612b9c565b61064a565b6040516102079190612bf4565b60405180910390f35b34801561021b575f80fd5b50610224610667565b6040516102319190612c1c565b60405180910390f35b348015610245575f80fd5b5061024e61066d565b60405161025b9190612c1c565b60405180910390f35b34801561026f575f80fd5b50610278610673565b6040516102859190612c1c565b60405180910390f35b348015610299575f80fd5b506102b460048036038101906102af9190612c35565b610695565b6040516102c19190612bf4565b60405180910390f35b3480156102d5575f80fd5b506102de610769565b6040516102eb9190612ca0565b60405180910390f35b3480156102ff575f80fd5b50610308610771565b6040516103159190612cc8565b60405180910390f35b348015610329575f80fd5b50610344600480360381019061033f9190612ce1565b610796565b005b348015610351575f80fd5b5061036c60048036038101906103679190612b9c565b610882565b005b348015610379575f80fd5b50610394600480360381019061038f9190612ce1565b6109b7565b6040516103a19190612c1c565b60405180910390f35b3480156103b5575f80fd5b506103be6109fd565b005b3480156103cb575f80fd5b506103d4610b4b565b6040516103e19190612bf4565b60405180910390f35b3480156103f5575f80fd5b506103fe610b5e565b005b34801561040b575f80fd5b50610414610c8a565b6040516104219190612c1c565b60405180910390f35b348015610435575f80fd5b50610450600480360381019061044b9190612d36565b610c90565b005b34801561045d575f80fd5b50610466610d7c565b005b348015610473575f80fd5b5061047c611390565b6040516104899190612cc8565b60405180910390f35b34801561049d575f80fd5b506104a66113b7565b6040516104b39190612c1c565b60405180910390f35b3480156104c7575f80fd5b506104e260048036038101906104dd9190612ce1565b6113bd565b005b3480156104ef575f80fd5b506104f8611494565b6040516105059190612aeb565b60405180910390f35b348015610519575f80fd5b50610534600480360381019061052f9190612b9c565b6114d1565b6040516105419190612bf4565b60405180910390f35b348015610555575f80fd5b5061055e6114ee565b60405161056b9190612c1c565b60405180910390f35b34801561057f575f80fd5b5061059a60048036038101906105959190612d74565b6114f4565b6040516105a79190612c1c565b60405180910390f35b3480156105bb575f80fd5b506105d660048036038101906105d19190612ce1565b611576565b005b3480156105e3575f80fd5b506105ec611733565b005b3480156105f9575f80fd5b50610614600480360381019061060f9190612ce1565b61182e565b6040516106219190612bf4565b60405180910390f35b6060604051806060016040528060238152602001613ad160239139905090565b5f61065d61065661184b565b8484611852565b6001905092915050565b60175481565b60145481565b5f6009600a6106829190612f0e565b629896806106909190612f58565b905090565b5f6106a1848484611a15565b61075e846106ad61184b565b61075985604051806060016040528060288152602001613aa96028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61071061184b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125589092919063ffffffff16565b611852565b600190509392505050565b5f6009905090565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61079e61184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461082a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082190612fe3565b60405180910390fd5b600160045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b61088a61184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610916576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090d90612fe3565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161097292919061305c565b6020604051808303815f875af115801561098e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109b29190613097565b505050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a0561184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8890612fe3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601860029054906101000a900460ff1681565b610b6661184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be990612fe3565b60405180910390fd5b6009600a610c009190612f0e565b62989680610c0e9190612f58565b6011819055506009600a610c229190612f0e565b62989680610c309190612f58565b6012819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610c659190612f0e565b62989680610c739190612f58565b604051610c809190612c1c565b60405180910390a1565b60115481565b610c9861184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1b90612fe3565b60405180910390fd5b8060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b610d8461184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0790612fe3565b60405180910390fd5b601660149054906101000a900460ff1615610e60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e579061310c565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610efb3060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610ee89190612f0e565b62989680610ef69190612f58565b611852565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f65573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f89919061313e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561100f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611033919061313e565b6040518363ffffffff1660e01b8152600401611050929190613169565b6020604051808303815f875af115801561106c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611090919061313e565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611203306109b7565b5f8061120d611390565b426040518863ffffffff1660e01b815260040161122f969594939291906131c9565b60606040518083038185885af115801561124b573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611270919061323c565b50505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161131092919061328c565b6020604051808303815f875af115801561132c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113509190613097565b506001601860016101000a81548160ff0219169083151502179055506001601660146101000a81548160ff02191690831515021790555043600681905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b6113c561184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611451576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144890612fe3565b60405180910390fd5b8060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606040518060400160405280600281526020017f4d45000000000000000000000000000000000000000000000000000000000000815250905090565b5f6114e46114dd61184b565b8484611a15565b6001905092915050565b60135481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61157e61184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461160a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160190612fe3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611678576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166f90613323565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61173b61184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117be90612fe3565b60405180910390fd5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f1935050505015801561182b573d5f803e3d5ffd5b50565b6004602052805f5260405f205f915054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b7906133b1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361192e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119259061343f565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a089190612c1c565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7a906134cd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611af1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae89061355b565b60405180910390fd5b5f8111611b33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2a906135e9565b60405180910390fd5b5f611b3c611390565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611baa5750611b7a611390565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122a857611beb6064611bdd600b54600e5411611bca57600754611bce565b6009545b856125ba90919063ffffffff16565b61263190919063ffffffff16565b905060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611c90575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ce3575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611dc657601154821115611d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2490613651565b60405180910390fd5b60125482611d3a856109b7565b611d44919061366f565b1115611d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7c906136ec565b60405180910390fd5b436001600654611d95919061366f565b1115611dae57611da48361267a565b15611dad575f80fd5b5b600e5f815480929190611dc09061370a565b91905055505b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611e64575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611ec25760125482611e76856109b7565b611e80919061366f565b1115611ec1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb8906136ec565b60405180910390fd5b5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611f4457503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611f8857611f856064611f77600c54600e5411611f6457600854611f68565b600a545b856125ba90919063ffffffff16565b61263190919063ffffffff16565b90505b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612026575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561205e57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612067575f90505b5f612071306109b7565b9050601860029054906101000a900460ff16801561209b575060185f9054906101000a900460ff16155b80156120ed575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80156121055750601860019054906101000a900460ff165b8015612112575060135481115b80156121215750600d54600e54115b156121d557601054431115612138575f600f819055505b601754600f541061217e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121759061379b565b60405180910390fd5b61219b612196846121918460145461268b565b61268b565b6126a3565b5f4790505f8111156121b1576121b04761290c565b5b600f5f8154809291906121c39061370a565b919050555043601081905550506122a6565b60185f9054906101000a900460ff16158015612237575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b801561224f5750601860019054906101000a900460ff165b801561225c575060135481115b801561226b5750600d54600e54115b156122a55761228d612288846122838460145461268b565b61268b565b6126a3565b5f4790505f8111156122a3576122a24761290c565b5b505b5b505b5f8111156123a7576123008160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461297490919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161239e9190612c1c565b60405180910390a35b6123f78260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129d190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061249a61244e82846129d190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461297490919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61253d84866129d190919063ffffffff16565b60405161254a9190612c1c565b60405180910390a350505050565b5f83831115829061259f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125969190612aeb565b60405180910390fd5b505f83856125ad91906137b9565b9050809150509392505050565b5f8083036125ca575f905061262b565b5f82846125d79190612f58565b90508284826125e69190613819565b14612626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261d906138b9565b60405180910390fd5b809150505b92915050565b5f61267283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a1a565b905092915050565b5f80823b90505f8111915050919050565b5f818311612699578261269b565b815b905092915050565b600160185f6101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156126d9576126d86138d7565b5b6040519080825280602002602001820160405280156127075781602001602082028036833780820191505090505b50905030815f8151811061271e5761271d613904565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127e6919061313e565b816001815181106127fa576127f9613904565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506128603060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611852565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016128c29594939291906139e8565b5f604051808303815f87803b1580156128d9575f80fd5b505af11580156128eb573d5f803e3d5ffd5b50505050505f60185f6101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612970573d5f803e3d5ffd5b5050565b5f808284612982919061366f565b9050838110156129c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129be90613a8a565b60405180910390fd5b8091505092915050565b5f612a1283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612558565b905092915050565b5f8083118290612a60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a579190612aeb565b60405180910390fd5b505f8385612a6e9190613819565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612abd82612a7b565b612ac78185612a85565b9350612ad7818560208601612a95565b612ae081612aa3565b840191505092915050565b5f6020820190508181035f830152612b038184612ab3565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612b3882612b0f565b9050919050565b612b4881612b2e565b8114612b52575f80fd5b50565b5f81359050612b6381612b3f565b92915050565b5f819050919050565b612b7b81612b69565b8114612b85575f80fd5b50565b5f81359050612b9681612b72565b92915050565b5f8060408385031215612bb257612bb1612b0b565b5b5f612bbf85828601612b55565b9250506020612bd085828601612b88565b9150509250929050565b5f8115159050919050565b612bee81612bda565b82525050565b5f602082019050612c075f830184612be5565b92915050565b612c1681612b69565b82525050565b5f602082019050612c2f5f830184612c0d565b92915050565b5f805f60608486031215612c4c57612c4b612b0b565b5b5f612c5986828701612b55565b9350506020612c6a86828701612b55565b9250506040612c7b86828701612b88565b9150509250925092565b5f60ff82169050919050565b612c9a81612c85565b82525050565b5f602082019050612cb35f830184612c91565b92915050565b612cc281612b2e565b82525050565b5f602082019050612cdb5f830184612cb9565b92915050565b5f60208284031215612cf657612cf5612b0b565b5b5f612d0384828501612b55565b91505092915050565b612d1581612bda565b8114612d1f575f80fd5b50565b5f81359050612d3081612d0c565b92915050565b5f8060408385031215612d4c57612d4b612b0b565b5b5f612d5985828601612b55565b9250506020612d6a85828601612d22565b9150509250929050565b5f8060408385031215612d8a57612d89612b0b565b5b5f612d9785828601612b55565b9250506020612da885828601612b55565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612e3457808604811115612e1057612e0f612db2565b5b6001851615612e1f5780820291505b8081029050612e2d85612ddf565b9450612df4565b94509492505050565b5f82612e4c5760019050612f07565b81612e59575f9050612f07565b8160018114612e6f5760028114612e7957612ea8565b6001915050612f07565b60ff841115612e8b57612e8a612db2565b5b8360020a915084821115612ea257612ea1612db2565b5b50612f07565b5060208310610133831016604e8410600b8410161715612edd5782820a905083811115612ed857612ed7612db2565b5b612f07565b612eea8484846001612deb565b92509050818404811115612f0157612f00612db2565b5b81810290505b9392505050565b5f612f1882612b69565b9150612f2383612c85565b9250612f507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612e3d565b905092915050565b5f612f6282612b69565b9150612f6d83612b69565b9250828202612f7b81612b69565b91508282048414831517612f9257612f91612db2565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612fcd602083612a85565b9150612fd882612f99565b602082019050919050565b5f6020820190508181035f830152612ffa81612fc1565b9050919050565b5f819050919050565b5f61302461301f61301a84612b0f565b613001565b612b0f565b9050919050565b5f6130358261300a565b9050919050565b5f6130468261302b565b9050919050565b6130568161303c565b82525050565b5f60408201905061306f5f83018561304d565b61307c6020830184612c0d565b9392505050565b5f8151905061309181612d0c565b92915050565b5f602082840312156130ac576130ab612b0b565b5b5f6130b984828501613083565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6130f6601783612a85565b9150613101826130c2565b602082019050919050565b5f6020820190508181035f830152613123816130ea565b9050919050565b5f8151905061313881612b3f565b92915050565b5f6020828403121561315357613152612b0b565b5b5f6131608482850161312a565b91505092915050565b5f60408201905061317c5f830185612cb9565b6131896020830184612cb9565b9392505050565b5f819050919050565b5f6131b36131ae6131a984613190565b613001565b612b69565b9050919050565b6131c381613199565b82525050565b5f60c0820190506131dc5f830189612cb9565b6131e96020830188612c0d565b6131f660408301876131ba565b61320360608301866131ba565b6132106080830185612cb9565b61321d60a0830184612c0d565b979650505050505050565b5f8151905061323681612b72565b92915050565b5f805f6060848603121561325357613252612b0b565b5b5f61326086828701613228565b935050602061327186828701613228565b925050604061328286828701613228565b9150509250925092565b5f60408201905061329f5f830185612cb9565b6132ac6020830184612c0d565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61330d602683612a85565b9150613318826132b3565b604082019050919050565b5f6020820190508181035f83015261333a81613301565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61339b602483612a85565b91506133a682613341565b604082019050919050565b5f6020820190508181035f8301526133c88161338f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613429602283612a85565b9150613434826133cf565b604082019050919050565b5f6020820190508181035f8301526134568161341d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6134b7602583612a85565b91506134c28261345d565b604082019050919050565b5f6020820190508181035f8301526134e4816134ab565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613545602383612a85565b9150613550826134eb565b604082019050919050565b5f6020820190508181035f83015261357281613539565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6135d3602983612a85565b91506135de82613579565b604082019050919050565b5f6020820190508181035f830152613600816135c7565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61363b601983612a85565b915061364682613607565b602082019050919050565b5f6020820190508181035f8301526136688161362f565b9050919050565b5f61367982612b69565b915061368483612b69565b925082820190508082111561369c5761369b612db2565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6136d6601a83612a85565b91506136e1826136a2565b602082019050919050565b5f6020820190508181035f830152613703816136ca565b9050919050565b5f61371482612b69565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361374657613745612db2565b5b600182019050919050565b7f43412062616c616e63652073656c6c00000000000000000000000000000000005f82015250565b5f613785600f83612a85565b915061379082613751565b602082019050919050565b5f6020820190508181035f8301526137b281613779565b9050919050565b5f6137c382612b69565b91506137ce83612b69565b92508282039050818111156137e6576137e5612db2565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61382382612b69565b915061382e83612b69565b92508261383e5761383d6137ec565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6138a3602183612a85565b91506138ae82613849565b604082019050919050565b5f6020820190508181035f8301526138d081613897565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61396381612b2e565b82525050565b5f613974838361395a565b60208301905092915050565b5f602082019050919050565b5f61399682613931565b6139a0818561393b565b93506139ab8361394b565b805f5b838110156139db5781516139c28882613969565b97506139cd83613980565b9250506001810190506139ae565b5085935050505092915050565b5f60a0820190506139fb5f830188612c0d565b613a0860208301876131ba565b8181036040830152613a1a818661398c565b9050613a296060830185612cb9565b613a366080830184612c0d565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613a74601b83612a85565b9150613a7f82613a40565b602082019050919050565b5f6020820190508181035f830152613aa181613a68565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654d6f6e657920456c6563747269633a2054686520426974636f696e204d797374657279a2646970667358221220201c80c0b55726fabd8d75267af732a0401a96daabe36e8dff212b4973d691da64736f6c63430008190033

Deployed Bytecode Sourcemap

3856:9267:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5896:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6729:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5232:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5068:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6173:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6898:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6082:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5166:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7562:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11714:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6276:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2687:148;;;;;;;;;;;;;:::i;:::-;;5338:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11996:159;;;;;;;;;;;;;:::i;:::-;;4895:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11465:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12263:820;;;;;;;;;;;;;:::i;:::-;;2473:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4954:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11872:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5987:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6403:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5013:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6578:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2843:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11593:113;;;;;;;;;;;;;:::i;:::-;;4134:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5896:83;5933:13;5966:5;;;;;;;;;;;;;;;;;5959:12;;5896:83;:::o;6729:161::-;6804:4;6821:39;6830:12;:10;:12::i;:::-;6844:7;6853:6;6821:8;:39::i;:::-;6878:4;6871:11;;6729:161;;;;:::o;5232:26::-;;;;:::o;5068:40::-;;;;:::o;6173:95::-;6226:7;4686:1;4740:2;:13;;;;:::i;:::-;4729:8;:24;;;;:::i;:::-;6246:14;;6173:95;:::o;6898:313::-;6996:4;7013:36;7023:6;7031:9;7042:6;7013:9;:36::i;:::-;7060:121;7069:6;7077:12;:10;:12::i;:::-;7091:89;7129:6;7091:89;;;;;;;;;;;;;;;;;:11;:19;7103:6;7091:19;;;;;;;;;;;;;;;:33;7111:12;:10;:12::i;:::-;7091:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7060:8;:121::i;:::-;7199:4;7192:11;;6898:313;;;;;:::o;6082:83::-;6123:5;4686:1;6141:16;;6082:83;:::o;5166:28::-;;;;;;;;;;;;;:::o;7562:96::-;2610:12;:10;:12::i;:::-;2600:22;;:6;;;;;;;;;;:22;;;2592:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7646:4:::1;7627:10;:16;7638:4;7627:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;7562:96:::0;:::o;11714:150::-;2610:12;:10;:12::i;:::-;2600:22;;:6;;;;;;;;;;:22;;;2592:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11815:10:::1;11808:27;;;11836:10;;;;;;;;;;;11848:7;11808:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11714:150:::0;;:::o;6276:119::-;6342:7;6369:9;:18;6379:7;6369:18;;;;;;;;;;;;;;;;6362:25;;6276:119;;;:::o;2687:148::-;2610:12;:10;:12::i;:::-;2600:22;;:6;;;;;;;;;;:22;;;2592:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2794:1:::1;2757:40;;2778:6;::::0;::::1;;;;;;;;2757:40;;;;;;;;;;;;2825:1;2808:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2687:148::o:0;5338:27::-;;;;;;;;;;;;;:::o;11996:159::-;2610:12;:10;:12::i;:::-;2600:22;;:6;;;;;;;;;;:22;;;2592:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4686:1:::1;4740:2;:13;;;;:::i;:::-;4729:8;:24;;;;:::i;:::-;12049:12;:22;;;;4686:1;4740:2;:13;;;;:::i;:::-;4729:8;:24;;;;:::i;:::-;12082:14;:22;;;;12120:27;4686:1;4740:2;:13;;;;:::i;:::-;4729:8;:24;;;;:::i;:::-;12120:27;;;;;;:::i;:::-;;;;;;;;11996:159::o:0;4895:52::-;;;;:::o;11465:118::-;2610:12;:10;:12::i;:::-;2600:22;;:6;;;;;;;;;;:22;;;2592:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11569:6:::1;11543:17;:23;11561:4;11543:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;11465:118:::0;;:::o;12263:820::-;2610:12;:10;:12::i;:::-;2600:22;;:6;;;;;;;;;;:22;;;2592:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12329:11:::1;;;;;;;;;;;12328:12;12320:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;12415:42;12378:15;;:80;;;;;;;;;;;;;;;;;;12469:58;12486:4;12501:15;;;;;;;;;;;4686:1;4740:2;:13;;;;:::i;:::-;4729:8;:24;;;;:::i;:::-;12469:8;:58::i;:::-;12572:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12554:55;;;12618:4;12625:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12554:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12538:13;;:110;;;;;;;;;;;;;;;;;;12696:4;12659:10;:34;12678:13;;;;;;;;;;;12659:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;12755:4;12711:17;:41;12737:13;;;;;;;;;;;12711:41;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;;;;;;;12770:15;;;;;;;;;;;:31;;;12809:21;12840:4;12846:24;12864:4;12846:9;:24::i;:::-;12871:1;12873::::0;12875:7:::1;:5;:7::i;:::-;12883:15;12770:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12917:13;;;;;;;;;;;12910:29;;;12948:15;;;;;;;;;;;12966:14;12910:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13006:4;12992:11;;:18;;;;;;;;;;;;;;;;;;13035:4;13021:11;;:18;;;;;;;;;;;;;;;;;;13063:12;13050:10;:25;;;;12263:820::o:0;2473:79::-;2511:7;2538:6;;;;;;;;;;;2531:13;;2473:79;:::o;4954:52::-;;;;:::o;11872:116::-;2610:12;:10;:12::i;:::-;2600:22;;:6;;;;;;;;;;:22;;;2592:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11967:12:::1;11946:10;;:34;;;;;;;;;;;;;;;;;;11872:116:::0;:::o;5987:87::-;6026:13;6059:7;;;;;;;;;;;;;;;;;6052:14;;5987:87;:::o;6403:167::-;6481:4;6498:42;6508:12;:10;:12::i;:::-;6522:9;6533:6;6498:9;:42::i;:::-;6558:4;6551:11;;6403:167;;;;:::o;5013:48::-;;;;:::o;6578:143::-;6659:7;6686:11;:18;6698:5;6686:18;;;;;;;;;;;;;;;:27;6705:7;6686:27;;;;;;;;;;;;;;;;6679:34;;6578:143;;;;:::o;2843:244::-;2610:12;:10;:12::i;:::-;2600:22;;:6;;;;;;;;;;:22;;;2592:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2952:1:::1;2932:22;;:8;:22;;::::0;2924:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3042:8;3013:38;;3034:6;::::0;::::1;;;;;;;;3013:38;;;;;;;;;;;;3071:8;3062:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2843:244:::0;:::o;11593:113::-;2610:12;:10;:12::i;:::-;2600:22;;:6;;;;;;;;;;:22;;;2592:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11655:10:::1;;;;;;;;;;;11647:28;;:51;11676:21;11647:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;11593:113::o:0;4134:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;228:98::-;281:7;308:10;301:17;;228:98;:::o;7219:335::-;7329:1;7312:19;;:5;:19;;;7304:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7410:1;7391:21;;:7;:21;;;7383:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7492:6;7462:11;:18;7474:5;7462:18;;;;;;;;;;;;;;;:27;7481:7;7462:27;;;;;;;;;;;;;;;:36;;;;7530:7;7514:32;;7523:5;7514:32;;;7539:6;7514:32;;;;;;:::i;:::-;;;;;;;;7219:335;;;:::o;7666:2989::-;7770:1;7754:18;;:4;:18;;;7746:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7847:1;7833:16;;:2;:16;;;7825:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7917:1;7908:6;:10;7900:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7975:17;8019:7;:5;:7::i;:::-;8011:15;;:4;:15;;;;:32;;;;;8036:7;:5;:7::i;:::-;8030:13;;:2;:13;;;;8011:32;8007:2292;;;8072:79;8147:3;8072:70;8095:15;;8084:9;;:26;8083:58;;8127:14;;8083:58;;;8113:12;;8083:58;8072:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8060:91;;8172:10;:16;8183:4;8172:16;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;8206:15;;;;;;;;;;;8192:30;;:2;:30;;;;8172:50;:77;;;;;8228:17;:21;8246:2;8228:21;;;;;;;;;;;;;;;;;;;;;;;;;8226:23;8172:77;8168:430;;;8289:12;;8279:6;:22;;8271:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8384:14;;8374:6;8358:13;8368:2;8358:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8350:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8472:12;8467:1;8454:10;;:14;;;;:::i;:::-;:30;8450:103;;;8518:14;8529:2;8518:10;:14::i;:::-;8517:15;8509:24;;;;;;8450:103;8571:9;;:11;;;;;;;;;:::i;:::-;;;;;;8168:430;8619:10;:14;8630:2;8619:14;;;;;;;;;;;;;;;;;;;;;;;;;8618:15;:42;;;;;8639:17;:21;8657:2;8639:21;;;;;;;;;;;;;;;;;;;;;;;;;8637:23;8618:42;8614:162;;;8715:14;;8705:6;8689:13;8699:2;8689:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8681:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8614:162;8795:10;:14;8806:2;8795:14;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;;;8828:4;8813:20;;:4;:20;;;;8795:38;8792:172;;;8866:82;8944:3;8866:73;8889:16;;8878:9;;:27;8877:61;;8923:15;;8877:61;;;8908:13;;8877:61;8866:6;:10;;:73;;;;:::i;:::-;:77;;:82;;;;:::i;:::-;8854:94;;8792:172;8981:10;:16;8992:4;8981:16;;;;;;;;;;;;;;;;;;;;;;;;;8980:17;:36;;;;;9002:10;:14;9013:2;9002:14;;;;;;;;;;;;;;;;;;;;;;;;;9001:15;8980:36;:60;;;;;9035:4;9020:20;;:4;:20;;;;8980:60;8976:115;;;9074:1;9062:13;;8976:115;9107:28;9138:24;9156:4;9138:9;:24::i;:::-;9107:55;;9181:8;;;;;;;;;;;:19;;;;;9194:6;;;;;;;;;;;9193:7;9181:19;:37;;;;;9204:10;:14;9215:2;9204:14;;;;;;;;;;;;;;;;;;;;;;;;;9181:37;:52;;;;;9222:11;;;;;;;;;;;9181:52;:94;;;;;9258:17;;9237:20;:38;9181:94;:126;;;;;9289:18;;9279:9;;:28;9181:126;9177:1111;;;9347:13;;9332:12;:28;9328:90;;;9397:1;9385:9;:13;;;;9328:90;9456:7;;9444:9;;:19;9436:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;9502:67;9519:49;9523:6;9530:37;9534:20;9555:11;;9530:3;:37::i;:::-;9519:3;:49::i;:::-;9502:16;:67::i;:::-;9588:26;9617:21;9588:50;;9681:1;9660:18;:22;9657:105;;;9707:35;9720:21;9707:12;:35::i;:::-;9657:105;9780:9;;:11;;;;;;;;;:::i;:::-;;;;;;9826:12;9810:13;:28;;;;9309:545;9177:1111;;;9879:6;;;;;;;;;;;9878:7;:25;;;;;9889:10;:14;9900:2;9889:14;;;;;;;;;;;;;;;;;;;;;;;;;9878:25;:40;;;;;9907:11;;;;;;;;;;;9878:40;:82;;;;;9943:17;;9922:20;:38;9878:82;:114;;;;;9974:18;;9964:9;;:28;9878:114;9875:413;;;10013:67;10030:49;10034:6;10041:37;10045:20;10066:11;;10041:3;:37::i;:::-;10030:3;:49::i;:::-;10013:16;:67::i;:::-;10099:26;10128:21;10099:50;;10192:1;10171:18;:22;10168:105;;;10218:35;10231:21;10218:12;:35::i;:::-;10168:105;9994:294;9875:413;9177:1111;8045:2254;8007:2292;10324:1;10314:9;:11;10311:161;;;10364:39;10393:9;10364;:24;10382:4;10364:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10339:9;:24;10357:4;10339:24;;;;;;;;;;;;;;;:64;;;;10444:4;10421:39;;10430:4;10421:39;;;10450:9;10421:39;;;;;;:::i;:::-;;;;;;;;10311:161;10498:27;10518:6;10498:9;:15;10508:4;10498:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10482:9;:15;10492:4;10482:15;;;;;;;;;;;;;;;:43;;;;10550:40;10568:21;10579:9;10568:6;:10;;:21;;;;:::i;:::-;10550:9;:13;10560:2;10550:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10536:9;:13;10546:2;10536:13;;;;;;;;;;;;;;;:54;;;;10621:2;10606:41;;10615:4;10606:41;;;10625:21;10636:9;10625:6;:10;;:21;;;;:::i;:::-;10606:41;;;;;;:::i;:::-;;;;;;;;7735:2920;7666:2989;;;:::o;1365:190::-;1451:7;1484:1;1479;:6;;1487:12;1471:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1511:9;1527:1;1523;:5;;;;:::i;:::-;1511:17;;1546:1;1539:8;;;1365:190;;;;;:::o;1563:246::-;1621:7;1650:1;1645;:6;1641:47;;1675:1;1668:8;;;;1641:47;1698:9;1714:1;1710;:5;;;;:::i;:::-;1698:17;;1743:1;1738;1734;:5;;;;:::i;:::-;:10;1726:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1800:1;1793:8;;;1563:246;;;;;:::o;1817:132::-;1875:7;1902:39;1906:1;1909;1902:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1895:46;;1817:132;;;;:::o;10771:195::-;10830:4;10847:12;10914:7;10902:20;10894:28;;10957:1;10950:4;:8;10943:15;;;10771:195;;;:::o;10665:98::-;10722:7;10749:1;10747;:3;10746:9;;10754:1;10746:9;;;10752:1;10746:9;10739:16;;10665:98;;;;:::o;10974:483::-;5465:4;5456:6;;:13;;;;;;;;;;;;;;;;;;11052:21:::1;11090:1;11076:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11052:40;;11121:4;11103;11108:1;11103:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11147:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11137:4;11142:1;11137:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11180:62;11197:4;11212:15;;;;;;;;;;;11230:11;11180:8;:62::i;:::-;11253:15;;;;;;;;;;;:66;;;11334:11;11360:1;11376:4;11403;11423:15;11253:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11041:416;5501:5:::0;5492:6;;:14;;;;;;;;;;;;;;;;;;10974:483;:::o;12163:92::-;12220:10;;;;;;;;;;;:19;;:27;12240:6;12220:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12163:92;:::o;1034:179::-;1092:7;1112:9;1128:1;1124;:5;;;;:::i;:::-;1112:17;;1153:1;1148;:6;;1140:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1204:1;1197:8;;;1034:179;;;;:::o;1221:136::-;1279:7;1306:43;1310:1;1313;1306:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1299:50;;1221:136;;;;:::o;1957:189::-;2043:7;2075:1;2071;:5;2078:12;2063:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2102:9;2118:1;2114;:5;;;;:::i;:::-;2102:17;;2137:1;2130:8;;;1957:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:118::-;4833:24;4851:5;4833:24;:::i;:::-;4828:3;4821:37;4746:118;;:::o;4870:222::-;4963:4;5001:2;4990:9;4986:18;4978:26;;5014:71;5082:1;5071:9;5067:17;5058:6;5014:71;:::i;:::-;4870:222;;;;:::o;5098:329::-;5157:6;5206:2;5194:9;5185:7;5181:23;5177:32;5174:119;;;5212:79;;:::i;:::-;5174:119;5332:1;5357:53;5402:7;5393:6;5382:9;5378:22;5357:53;:::i;:::-;5347:63;;5303:117;5098:329;;;;:::o;5433:116::-;5503:21;5518:5;5503:21;:::i;:::-;5496:5;5493:32;5483:60;;5539:1;5536;5529:12;5483:60;5433:116;:::o;5555:133::-;5598:5;5636:6;5623:20;5614:29;;5652:30;5676:5;5652:30;:::i;:::-;5555:133;;;;:::o;5694:468::-;5759:6;5767;5816:2;5804:9;5795:7;5791:23;5787:32;5784:119;;;5822:79;;:::i;:::-;5784:119;5942:1;5967:53;6012:7;6003:6;5992:9;5988:22;5967:53;:::i;:::-;5957:63;;5913:117;6069:2;6095:50;6137:7;6128:6;6117:9;6113:22;6095:50;:::i;:::-;6085:60;;6040:115;5694:468;;;;;:::o;6168:474::-;6236:6;6244;6293:2;6281:9;6272:7;6268:23;6264:32;6261:119;;;6299:79;;:::i;:::-;6261:119;6419:1;6444:53;6489:7;6480:6;6469:9;6465:22;6444:53;:::i;:::-;6434:63;;6390:117;6546:2;6572:53;6617:7;6608:6;6597:9;6593:22;6572:53;:::i;:::-;6562:63;;6517:118;6168:474;;;;;:::o;6648:180::-;6696:77;6693:1;6686:88;6793:4;6790:1;6783:15;6817:4;6814:1;6807:15;6834:102;6876:8;6923:5;6920:1;6916:13;6895:34;;6834:102;;;:::o;6942:848::-;7003:5;7010:4;7034:6;7025:15;;7058:5;7049:14;;7072:712;7093:1;7083:8;7080:15;7072:712;;;7188:4;7183:3;7179:14;7173:4;7170:24;7167:50;;;7197:18;;:::i;:::-;7167:50;7247:1;7237:8;7233:16;7230:451;;;7662:4;7655:5;7651:16;7642:25;;7230:451;7712:4;7706;7702:15;7694:23;;7742:32;7765:8;7742:32;:::i;:::-;7730:44;;7072:712;;;6942:848;;;;;;;:::o;7796:1073::-;7850:5;8041:8;8031:40;;8062:1;8053:10;;8064:5;;8031:40;8090:4;8080:36;;8107:1;8098:10;;8109:5;;8080:36;8176:4;8224:1;8219:27;;;;8260:1;8255:191;;;;8169:277;;8219:27;8237:1;8228:10;;8239:5;;;8255:191;8300:3;8290:8;8287:17;8284:43;;;8307:18;;:::i;:::-;8284:43;8356:8;8353:1;8349:16;8340:25;;8391:3;8384:5;8381:14;8378:40;;;8398:18;;:::i;:::-;8378:40;8431:5;;;8169:277;;8555:2;8545:8;8542:16;8536:3;8530:4;8527:13;8523:36;8505:2;8495:8;8492:16;8487:2;8481:4;8478:12;8474:35;8458:111;8455:246;;;8611:8;8605:4;8601:19;8592:28;;8646:3;8639:5;8636:14;8633:40;;;8653:18;;:::i;:::-;8633:40;8686:5;;8455:246;8726:42;8764:3;8754:8;8748:4;8745:1;8726:42;:::i;:::-;8711:57;;;;8800:4;8795:3;8791:14;8784:5;8781:25;8778:51;;;8809:18;;:::i;:::-;8778:51;8858:4;8851:5;8847:16;8838:25;;7796:1073;;;;;;:::o;8875:281::-;8933:5;8957:23;8975:4;8957:23;:::i;:::-;8949:31;;9001:25;9017:8;9001:25;:::i;:::-;8989:37;;9045:104;9082:66;9072:8;9066:4;9045:104;:::i;:::-;9036:113;;8875:281;;;;:::o;9162:410::-;9202:7;9225:20;9243:1;9225:20;:::i;:::-;9220:25;;9259:20;9277:1;9259:20;:::i;:::-;9254:25;;9314:1;9311;9307:9;9336:30;9354:11;9336:30;:::i;:::-;9325:41;;9515:1;9506:7;9502:15;9499:1;9496:22;9476:1;9469:9;9449:83;9426:139;;9545:18;;:::i;:::-;9426:139;9210:362;9162:410;;;;:::o;9578:182::-;9718:34;9714:1;9706:6;9702:14;9695:58;9578:182;:::o;9766:366::-;9908:3;9929:67;9993:2;9988:3;9929:67;:::i;:::-;9922:74;;10005:93;10094:3;10005:93;:::i;:::-;10123:2;10118:3;10114:12;10107:19;;9766:366;;;:::o;10138:419::-;10304:4;10342:2;10331:9;10327:18;10319:26;;10391:9;10385:4;10381:20;10377:1;10366:9;10362:17;10355:47;10419:131;10545:4;10419:131;:::i;:::-;10411:139;;10138:419;;;:::o;10563:60::-;10591:3;10612:5;10605:12;;10563:60;;;:::o;10629:142::-;10679:9;10712:53;10730:34;10739:24;10757:5;10739:24;:::i;:::-;10730:34;:::i;:::-;10712:53;:::i;:::-;10699:66;;10629:142;;;:::o;10777:126::-;10827:9;10860:37;10891:5;10860:37;:::i;:::-;10847:50;;10777:126;;;:::o;10909:134::-;10967:9;11000:37;11031:5;11000:37;:::i;:::-;10987:50;;10909:134;;;:::o;11049:147::-;11144:45;11183:5;11144:45;:::i;:::-;11139:3;11132:58;11049:147;;:::o;11202:348::-;11331:4;11369:2;11358:9;11354:18;11346:26;;11382:79;11458:1;11447:9;11443:17;11434:6;11382:79;:::i;:::-;11471:72;11539:2;11528:9;11524:18;11515:6;11471:72;:::i;:::-;11202:348;;;;;:::o;11556:137::-;11610:5;11641:6;11635:13;11626:22;;11657:30;11681:5;11657:30;:::i;:::-;11556:137;;;;:::o;11699:345::-;11766:6;11815:2;11803:9;11794:7;11790:23;11786:32;11783:119;;;11821:79;;:::i;:::-;11783:119;11941:1;11966:61;12019:7;12010:6;11999:9;11995:22;11966:61;:::i;:::-;11956:71;;11912:125;11699:345;;;;:::o;12050:173::-;12190:25;12186:1;12178:6;12174:14;12167:49;12050:173;:::o;12229:366::-;12371:3;12392:67;12456:2;12451:3;12392:67;:::i;:::-;12385:74;;12468:93;12557:3;12468:93;:::i;:::-;12586:2;12581:3;12577:12;12570:19;;12229:366;;;:::o;12601:419::-;12767:4;12805:2;12794:9;12790:18;12782:26;;12854:9;12848:4;12844:20;12840:1;12829:9;12825:17;12818:47;12882:131;13008:4;12882:131;:::i;:::-;12874:139;;12601:419;;;:::o;13026:143::-;13083:5;13114:6;13108:13;13099:22;;13130:33;13157:5;13130:33;:::i;:::-;13026:143;;;;:::o;13175:351::-;13245:6;13294:2;13282:9;13273:7;13269:23;13265:32;13262:119;;;13300:79;;:::i;:::-;13262:119;13420:1;13445:64;13501:7;13492:6;13481:9;13477:22;13445:64;:::i;:::-;13435:74;;13391:128;13175:351;;;;:::o;13532:332::-;13653:4;13691:2;13680:9;13676:18;13668:26;;13704:71;13772:1;13761:9;13757:17;13748:6;13704:71;:::i;:::-;13785:72;13853:2;13842:9;13838:18;13829:6;13785:72;:::i;:::-;13532:332;;;;;:::o;13870:85::-;13915:7;13944:5;13933:16;;13870:85;;;:::o;13961:158::-;14019:9;14052:61;14070:42;14079:32;14105:5;14079:32;:::i;:::-;14070:42;:::i;:::-;14052:61;:::i;:::-;14039:74;;13961:158;;;:::o;14125:147::-;14220:45;14259:5;14220:45;:::i;:::-;14215:3;14208:58;14125:147;;:::o;14278:807::-;14527:4;14565:3;14554:9;14550:19;14542:27;;14579:71;14647:1;14636:9;14632:17;14623:6;14579:71;:::i;:::-;14660:72;14728:2;14717:9;14713:18;14704:6;14660:72;:::i;:::-;14742:80;14818:2;14807:9;14803:18;14794:6;14742:80;:::i;:::-;14832;14908:2;14897:9;14893:18;14884:6;14832:80;:::i;:::-;14922:73;14990:3;14979:9;14975:19;14966:6;14922:73;:::i;:::-;15005;15073:3;15062:9;15058:19;15049:6;15005:73;:::i;:::-;14278:807;;;;;;;;;:::o;15091:143::-;15148:5;15179:6;15173:13;15164:22;;15195:33;15222:5;15195:33;:::i;:::-;15091:143;;;;:::o;15240:663::-;15328:6;15336;15344;15393:2;15381:9;15372:7;15368:23;15364:32;15361:119;;;15399:79;;:::i;:::-;15361:119;15519:1;15544:64;15600:7;15591:6;15580:9;15576:22;15544:64;:::i;:::-;15534:74;;15490:128;15657:2;15683:64;15739:7;15730:6;15719:9;15715:22;15683:64;:::i;:::-;15673:74;;15628:129;15796:2;15822:64;15878:7;15869:6;15858:9;15854:22;15822:64;:::i;:::-;15812:74;;15767:129;15240:663;;;;;:::o;15909:332::-;16030:4;16068:2;16057:9;16053:18;16045:26;;16081:71;16149:1;16138:9;16134:17;16125:6;16081:71;:::i;:::-;16162:72;16230:2;16219:9;16215:18;16206:6;16162:72;:::i;:::-;15909:332;;;;;:::o;16247:225::-;16387:34;16383:1;16375:6;16371:14;16364:58;16456:8;16451:2;16443:6;16439:15;16432:33;16247:225;:::o;16478:366::-;16620:3;16641:67;16705:2;16700:3;16641:67;:::i;:::-;16634:74;;16717:93;16806:3;16717:93;:::i;:::-;16835:2;16830:3;16826:12;16819:19;;16478:366;;;:::o;16850:419::-;17016:4;17054:2;17043:9;17039:18;17031:26;;17103:9;17097:4;17093:20;17089:1;17078:9;17074:17;17067:47;17131:131;17257:4;17131:131;:::i;:::-;17123:139;;16850:419;;;:::o;17275:223::-;17415:34;17411:1;17403:6;17399:14;17392:58;17484:6;17479:2;17471:6;17467:15;17460:31;17275:223;:::o;17504:366::-;17646:3;17667:67;17731:2;17726:3;17667:67;:::i;:::-;17660:74;;17743:93;17832:3;17743:93;:::i;:::-;17861:2;17856:3;17852:12;17845:19;;17504:366;;;:::o;17876:419::-;18042:4;18080:2;18069:9;18065:18;18057:26;;18129:9;18123:4;18119:20;18115:1;18104:9;18100:17;18093:47;18157:131;18283:4;18157:131;:::i;:::-;18149:139;;17876:419;;;:::o;18301:221::-;18441:34;18437:1;18429:6;18425:14;18418:58;18510:4;18505:2;18497:6;18493:15;18486:29;18301:221;:::o;18528:366::-;18670:3;18691:67;18755:2;18750:3;18691:67;:::i;:::-;18684:74;;18767:93;18856:3;18767:93;:::i;:::-;18885:2;18880:3;18876:12;18869:19;;18528:366;;;:::o;18900:419::-;19066:4;19104:2;19093:9;19089:18;19081:26;;19153:9;19147:4;19143:20;19139:1;19128:9;19124:17;19117:47;19181:131;19307:4;19181:131;:::i;:::-;19173:139;;18900:419;;;:::o;19325:224::-;19465:34;19461:1;19453:6;19449:14;19442:58;19534:7;19529:2;19521:6;19517:15;19510:32;19325:224;:::o;19555:366::-;19697:3;19718:67;19782:2;19777:3;19718:67;:::i;:::-;19711:74;;19794:93;19883:3;19794:93;:::i;:::-;19912:2;19907:3;19903:12;19896:19;;19555:366;;;:::o;19927:419::-;20093:4;20131:2;20120:9;20116:18;20108:26;;20180:9;20174:4;20170:20;20166:1;20155:9;20151:17;20144:47;20208:131;20334:4;20208:131;:::i;:::-;20200:139;;19927:419;;;:::o;20352:222::-;20492:34;20488:1;20480:6;20476:14;20469:58;20561:5;20556:2;20548:6;20544:15;20537:30;20352:222;:::o;20580:366::-;20722:3;20743:67;20807:2;20802:3;20743:67;:::i;:::-;20736:74;;20819:93;20908:3;20819:93;:::i;:::-;20937:2;20932:3;20928:12;20921:19;;20580:366;;;:::o;20952:419::-;21118:4;21156:2;21145:9;21141:18;21133:26;;21205:9;21199:4;21195:20;21191:1;21180:9;21176:17;21169:47;21233:131;21359:4;21233:131;:::i;:::-;21225:139;;20952:419;;;:::o;21377:228::-;21517:34;21513:1;21505:6;21501:14;21494:58;21586:11;21581:2;21573:6;21569:15;21562:36;21377:228;:::o;21611:366::-;21753:3;21774:67;21838:2;21833:3;21774:67;:::i;:::-;21767:74;;21850:93;21939:3;21850:93;:::i;:::-;21968:2;21963:3;21959:12;21952:19;;21611:366;;;:::o;21983:419::-;22149:4;22187:2;22176:9;22172:18;22164:26;;22236:9;22230:4;22226:20;22222:1;22211:9;22207:17;22200:47;22264:131;22390:4;22264:131;:::i;:::-;22256:139;;21983:419;;;:::o;22408:175::-;22548:27;22544:1;22536:6;22532:14;22525:51;22408:175;:::o;22589:366::-;22731:3;22752:67;22816:2;22811:3;22752:67;:::i;:::-;22745:74;;22828:93;22917:3;22828:93;:::i;:::-;22946:2;22941:3;22937:12;22930:19;;22589:366;;;:::o;22961:419::-;23127:4;23165:2;23154:9;23150:18;23142:26;;23214:9;23208:4;23204:20;23200:1;23189:9;23185:17;23178:47;23242:131;23368:4;23242:131;:::i;:::-;23234:139;;22961:419;;;:::o;23386:191::-;23426:3;23445:20;23463:1;23445:20;:::i;:::-;23440:25;;23479:20;23497:1;23479:20;:::i;:::-;23474:25;;23522:1;23519;23515:9;23508:16;;23543:3;23540:1;23537:10;23534:36;;;23550:18;;:::i;:::-;23534:36;23386:191;;;;:::o;23583:176::-;23723:28;23719:1;23711:6;23707:14;23700:52;23583:176;:::o;23765:366::-;23907:3;23928:67;23992:2;23987:3;23928:67;:::i;:::-;23921:74;;24004:93;24093:3;24004:93;:::i;:::-;24122:2;24117:3;24113:12;24106:19;;23765:366;;;:::o;24137:419::-;24303:4;24341:2;24330:9;24326:18;24318:26;;24390:9;24384:4;24380:20;24376:1;24365:9;24361:17;24354:47;24418:131;24544:4;24418:131;:::i;:::-;24410:139;;24137:419;;;:::o;24562:233::-;24601:3;24624:24;24642:5;24624:24;:::i;:::-;24615:33;;24670:66;24663:5;24660:77;24657:103;;24740:18;;:::i;:::-;24657:103;24787:1;24780:5;24776:13;24769:20;;24562:233;;;:::o;24801:165::-;24941:17;24937:1;24929:6;24925:14;24918:41;24801:165;:::o;24972:366::-;25114:3;25135:67;25199:2;25194:3;25135:67;:::i;:::-;25128:74;;25211:93;25300:3;25211:93;:::i;:::-;25329:2;25324:3;25320:12;25313:19;;24972:366;;;:::o;25344:419::-;25510:4;25548:2;25537:9;25533:18;25525:26;;25597:9;25591:4;25587:20;25583:1;25572:9;25568:17;25561:47;25625:131;25751:4;25625:131;:::i;:::-;25617:139;;25344:419;;;:::o;25769:194::-;25809:4;25829:20;25847:1;25829:20;:::i;:::-;25824:25;;25863:20;25881:1;25863:20;:::i;:::-;25858:25;;25907:1;25904;25900:9;25892:17;;25931:1;25925:4;25922:11;25919:37;;;25936:18;;:::i;:::-;25919:37;25769:194;;;;:::o;25969:180::-;26017:77;26014:1;26007:88;26114:4;26111:1;26104:15;26138:4;26135:1;26128:15;26155:185;26195:1;26212:20;26230:1;26212:20;:::i;:::-;26207:25;;26246:20;26264:1;26246:20;:::i;:::-;26241:25;;26285:1;26275:35;;26290:18;;:::i;:::-;26275:35;26332:1;26329;26325:9;26320:14;;26155:185;;;;:::o;26346:220::-;26486:34;26482:1;26474:6;26470:14;26463:58;26555:3;26550:2;26542:6;26538:15;26531:28;26346:220;:::o;26572:366::-;26714:3;26735:67;26799:2;26794:3;26735:67;:::i;:::-;26728:74;;26811:93;26900:3;26811:93;:::i;:::-;26929:2;26924:3;26920:12;26913:19;;26572:366;;;:::o;26944:419::-;27110:4;27148:2;27137:9;27133:18;27125:26;;27197:9;27191:4;27187:20;27183:1;27172:9;27168:17;27161:47;27225:131;27351:4;27225:131;:::i;:::-;27217:139;;26944:419;;;:::o;27369:180::-;27417:77;27414:1;27407:88;27514:4;27511:1;27504:15;27538:4;27535:1;27528:15;27555:180;27603:77;27600:1;27593:88;27700:4;27697:1;27690:15;27724:4;27721:1;27714:15;27741:114;27808:6;27842:5;27836:12;27826:22;;27741:114;;;:::o;27861:184::-;27960:11;27994:6;27989:3;27982:19;28034:4;28029:3;28025:14;28010:29;;27861:184;;;;:::o;28051:132::-;28118:4;28141:3;28133:11;;28171:4;28166:3;28162:14;28154:22;;28051:132;;;:::o;28189:108::-;28266:24;28284:5;28266:24;:::i;:::-;28261:3;28254:37;28189:108;;:::o;28303:179::-;28372:10;28393:46;28435:3;28427:6;28393:46;:::i;:::-;28471:4;28466:3;28462:14;28448:28;;28303:179;;;;:::o;28488:113::-;28558:4;28590;28585:3;28581:14;28573:22;;28488:113;;;:::o;28637:732::-;28756:3;28785:54;28833:5;28785:54;:::i;:::-;28855:86;28934:6;28929:3;28855:86;:::i;:::-;28848:93;;28965:56;29015:5;28965:56;:::i;:::-;29044:7;29075:1;29060:284;29085:6;29082:1;29079:13;29060:284;;;29161:6;29155:13;29188:63;29247:3;29232:13;29188:63;:::i;:::-;29181:70;;29274:60;29327:6;29274:60;:::i;:::-;29264:70;;29120:224;29107:1;29104;29100:9;29095:14;;29060:284;;;29064:14;29360:3;29353:10;;28761:608;;;28637:732;;;;:::o;29375:831::-;29638:4;29676:3;29665:9;29661:19;29653:27;;29690:71;29758:1;29747:9;29743:17;29734:6;29690:71;:::i;:::-;29771:80;29847:2;29836:9;29832:18;29823:6;29771:80;:::i;:::-;29898:9;29892:4;29888:20;29883:2;29872:9;29868:18;29861:48;29926:108;30029:4;30020:6;29926:108;:::i;:::-;29918:116;;30044:72;30112:2;30101:9;30097:18;30088:6;30044:72;:::i;:::-;30126:73;30194:3;30183:9;30179:19;30170:6;30126:73;:::i;:::-;29375:831;;;;;;;;:::o;30212:177::-;30352:29;30348:1;30340:6;30336:14;30329:53;30212:177;:::o;30395:366::-;30537:3;30558:67;30622:2;30617:3;30558:67;:::i;:::-;30551:74;;30634:93;30723:3;30634:93;:::i;:::-;30752:2;30747:3;30743:12;30736:19;;30395:366;;;:::o;30767:419::-;30933:4;30971:2;30960:9;30956:18;30948:26;;31020:9;31014:4;31010:20;31006:1;30995:9;30991:17;30984:47;31048:131;31174:4;31048:131;:::i;:::-;31040:139;;30767:419;;;:::o

Swarm Source

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