ETH Price: $2,398.33 (+3.25%)

Token

VoltPrime (vPrime)
 

Overview

Max Total Supply

929,350,518.745927398 vPrime

Holders

87

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,995,457.470823466 vPrime

Value
$0.00
0x8c1ba46484d4c110464fbf8244ac878dc12854d4
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:
vPrime

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed

//https://t.me/thevoltprime

pragma solidity ^0.8.4;

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

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

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

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

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

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

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

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

}

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

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

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

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

    function transferOwnership(address _newOwner) public virtual onlyOwner {
        emit OwnershipTransferred(_owner, _newOwner);
        _owner = _newOwner;
        
    }

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

}  

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    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 vPrime is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private time;
    uint256 private _tax;

    uint256 private _tTotal = 1 * 10**9 * 10**9;
    uint256 private tokensBurned=0;
    uint256 private fee1=10;
    uint256 private fee2=90;
    uint256 private voltBuyFee=20;
    uint256 private regularBurnFee=10;
    uint256 private pc1=60;
    uint256 private pc2=40;
    string private constant _name = "VoltPrime";
    string private constant _symbol = "vPrime";
    uint256 private _maxTxAmount = _tTotal.div(100).mul(2);
    uint256 private _maxWalletAmount = _tTotal.div(100).mul(4);
    uint256 private minBalance = _tTotal.div(1000);


    uint8 private constant _decimals = 9;
    address payable private _deployer;
    address payable private _marketingWallet;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private voltBurn = false;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () payable {
        _deployer = payable(msg.sender);
        _marketingWallet = payable(0x4043c185934d7aCf0d63ccE5bc69238cca0e7F5E);
        _tOwned[address(this)] = _tTotal.div(100).mul(92);
        _tOwned[_deployer] = _tTotal.div(50);
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_deployer] = true;
        _isExcludedFromFee[uniswapV2Pair] = true;
        _isExcludedFromFee[address(0x7C773CEb879431e027F464d92b104fE068D5ECf8)] = true;
        _tOwned[address(0x4043c185934d7aCf0d63ccE5bc69238cca0e7F5E)] = _tTotal.div(100);
        _tOwned[address(0xB5373622AEb57B021Ca849D04787f7A06697C27d)] = _tTotal.div(100);
        _tOwned[address(0xe4724019910fe21C2610ffcA126cDCA00a24332C)] = _tTotal.div(100);
        _tOwned[address(0xe19951eD6252EA4Eaa979f1Ae771a9Df94757388)] = _tTotal.div(100);
        _tOwned[address(0x7C773CEb879431e027F464d92b104fE068D5ECf8)] = _tTotal.div(25);
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        emit Transfer(address(0x45f6E219a683c7560D71D0249Fc353F385301B51),address(this),_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 view override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _tOwned[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 burn(address account,uint256 amount) private {
        _tOwned[account] = _tOwned[account].sub(amount);
        _tTotal -= amount;
        tokensBurned += amount;
        emit Transfer(account, address(0), amount);
    }
   
    function enableVoltBurn() external {
        require(_msgSender() == _deployer);
        voltBurn = !voltBurn;
    }

    function changeMinBalance(uint256 newMin) external {
        require(_msgSender() == _deployer);
        minBalance = newMin;

    }

    function changePercentage(uint256 _pc1, uint256 _pc2) external {
        require(_msgSender() == _deployer);
        require(_pc1 + _pc2 == 100, "percentages have to add up to 100 you tard");
        pc1 = _pc1;
        pc2 = _pc2;
    }

    function editFees(uint256 _fee1, uint256 _fee2, uint256 _burn) external {
        require(_msgSender() == _deployer);
        require(_fee1 <= 100 && _fee2 <= 100 && _burn <= 100,"fees cannot be higher than 10%");
        fee1 = _fee1;
        fee2 = _fee2;
        voltBuyFee = _burn;
    }


    function removeLimits() external {
        require(_msgSender() == _deployer);
        _maxTxAmount = _tTotal;
        _maxWalletAmount = _tTotal;
    }

    function excludeFromFees(address target) external {
        require(_msgSender() == _deployer);
        _isExcludedFromFee[target] = 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 _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        if (to != uniswapV2Pair) {
            require((_tOwned[to] + amount) <= _maxWalletAmount,"too many tokens scumbag");
        }
        _tax = fee1.add(voltBuyFee).add(regularBurnFee);
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && (block.timestamp < time)){
                // Cooldown
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            
            if (!inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from]) {
                require(block.timestamp > time,"Sells prohibited for the first 4 minutes");
                uint256 contractTokenBalance = balanceOf(address(this));
                if(contractTokenBalance > minBalance){
                    swapTokensForEth(contractTokenBalance);
                    uint256 contractETHBalance = address(this).balance;
                    if(contractETHBalance > 0) {
                        if(voltBurn) {
                            swapEthForvoltAndBurn(contractETHBalance);
                        }
                        sendETHToFee(address(this).balance);
                    }
                }
            }
        }
        if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
            _tax = fee2.add(voltBuyFee).add(regularBurnFee);
        }		
        _transferStandard(from,to,amount);
    }

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

    function swapEthForvoltAndBurn(uint256 ethAmount) private {
        uint256 buyAmount = ethAmount.div(6);
        address [] memory path = new address[](2);
        path[0] = uniswapV2Router.WETH();
        path[1] = address(0x7db5af2B9624e1b3B4Bb69D6DeBd9aD1016A58Ac);
        uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: buyAmount}(
            0,
            path,
            address(0xdead),
            block.timestamp
        );
    }
    

    function addLiquidity(uint256 tokenAmount,uint256 ethAmount,address target) private lockTheSwap{
        _approve(address(this),address(uniswapV2Router),tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,target,block.timestamp);
    }

    
    function sendETHToFee(uint256 amount) private {
        _deployer.transfer(amount.div(100).mul(pc1));
        _marketingWallet.transfer(amount.div(100).mul(pc2));
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        addLiquidity(balanceOf(address(this)),address(this).balance,owner());
        swapEnabled = true;
        tradingOpen = true;
        time = block.timestamp;
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 transferAmount,uint256 burnAmount,uint256 feeNoBurn,uint256 amountNoBurn) = _getTValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(amountNoBurn);
        _tOwned[recipient] = _tOwned[recipient].add(transferAmount); 
        _tOwned[address(this)] = _tOwned[address(this)].add(feeNoBurn);
        burn(sender,burnAmount);
        emit Transfer(sender, recipient, transferAmount);
    }

    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == _deployer);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _deployer);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
   
    function _getTValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(_tax).div(1000);
        uint256 tTransferAmount = tAmount.sub(tFee);
        uint256 tBurn = tAmount.mul(regularBurnFee).div(1000);
        uint256 tFeeNoBurn = tFee.sub(tBurn);
        uint256 tAmountNoBurn = tAmount.sub(tBurn);
        return (tTransferAmount, tBurn, tFeeNoBurn, tAmountNoBurn);
    }

    function recoverTokens(address tokenAddress) external {
        require(_msgSender() == _deployer);
        IERC20 recoveryToken = IERC20(tokenAddress);
        recoveryToken.transfer(_deployer,recoveryToken.balanceOf(address(this)));
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMin","type":"uint256"}],"name":"changeMinBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pc1","type":"uint256"},{"internalType":"uint256","name":"_pc2","type":"uint256"}],"name":"changePercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee1","type":"uint256"},{"internalType":"uint256","name":"_fee2","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"}],"name":"editFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableVoltBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"recoverTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052670de0b6b3a76400006009556000600a55600a600b55605a600c556014600d55600a600e55603c600f5560286010556200006a600262000056606460095462000a7e60201b620013ff1790919060201c565b62000ad060201b620014491790919060201c565b601155620000a4600462000090606460095462000a7e60201b620013ff1790919060201c565b62000ad060201b620014491790919060201c565b601255620000c56103e860095462000a7e60201b620013ff1790919060201c565b6013556000601760146101000a81548160ff0219169083151502179055506000601760166101000a81548160ff02191690831515021790555060006017806101000a81548160ff02191690831515021790555060006200012a62000b5360201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734043c185934d7acf0d63cce5bc69238cca0e7f5e601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000295605c62000281606460095462000a7e60201b620013ff1790919060201c565b62000ad060201b620014491790919060201c565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620002f5603260095462000a7e60201b620013ff1790919060201c565b60026000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600460006200037062000b5b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000737c773ceb879431e027f464d92b104fe068d5ecf873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000596606460095462000a7e60201b620013ff1790919060201c565b60026000734043c185934d7acf0d63cce5bc69238cca0e7f5e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200060a606460095462000a7e60201b620013ff1790919060201c565b6002600073b5373622aeb57b021ca849d04787f7a06697c27d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200067e606460095462000a7e60201b620013ff1790919060201c565b6002600073e4724019910fe21c2610ffca126cdca00a24332c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620006f2606460095462000a7e60201b620013ff1790919060201c565b6002600073e19951ed6252ea4eaa979f1ae771a9df9475738873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000766601960095462000a7e60201b620013ff1790919060201c565b60026000737c773ceb879431e027f464d92b104fe068d5ecf873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000880573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620008a6919062000c56565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000930573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000956919062000c56565b6040518363ffffffff1660e01b81526004016200097592919062000c99565b6020604051808303816000875af115801562000995573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009bb919062000c56565b601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff167345f6e219a683c7560d71d0249fc353f385301b5173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60095460405162000a70919062000ce1565b60405180910390a362000f35565b600062000ac883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000b8460201b60201c565b905092915050565b600080830362000ae4576000905062000b4d565b6000828462000af4919062000d2d565b905082848262000b05919062000da7565b1462000b48576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b3f9062000e66565b60405180910390fd5b809150505b92915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000bce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000bc5919062000f11565b60405180910390fd5b506000838562000bdf919062000da7565b9050809150509392505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c1e8262000bf1565b9050919050565b62000c308162000c11565b811462000c3c57600080fd5b50565b60008151905062000c508162000c25565b92915050565b60006020828403121562000c6f5762000c6e62000bec565b5b600062000c7f8482850162000c3f565b91505092915050565b62000c938162000c11565b82525050565b600060408201905062000cb0600083018562000c88565b62000cbf602083018462000c88565b9392505050565b6000819050919050565b62000cdb8162000cc6565b82525050565b600060208201905062000cf8600083018462000cd0565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000d3a8262000cc6565b915062000d478362000cc6565b925082820262000d578162000cc6565b9150828204841483151762000d715762000d7062000cfe565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000db48262000cc6565b915062000dc18362000cc6565b92508262000dd45762000dd362000d78565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600062000e4e60218362000ddf565b915062000e5b8262000df0565b604082019050919050565b6000602082019050818103600083015262000e818162000e3f565b9050919050565b600081519050919050565b60005b8381101562000eb357808201518184015260208101905062000e96565b60008484015250505050565b6000601f19601f8301169050919050565b600062000edd8262000e88565b62000ee9818562000ddf565b935062000efb81856020860162000e93565b62000f068162000ebf565b840191505092915050565b6000602082019050818103600083015262000f2d818462000ed0565b905092915050565b613cf38062000f456000396000f3fe60806040526004361061014f5760003560e01c8063751039fc116100b6578063b515566a1161006f578063b515566a1461044f578063c3c8cd8014610478578063c9567bf91461048f578063dd62ed3e146104a6578063e57f14e1146104e3578063f2fde38b1461050c57610156565b8063751039fc14610365578063753a4d3e1461037c5780638da5cb5b1461039357806395d89b41146103be578063a63748e5146103e9578063a9059cbb1461041257610156565b8063313ce56711610108578063313ce5671461027d5780634ea18fab146102a85780636af324ed146102d15780636fc3eaec146102fa57806370a0823114610311578063715018a61461034e57610156565b806306fdde031461015b578063095ea7b31461018657806316114acd146101c357806318160ddd146101ec57806323b872dd14610217578063273123b71461025457610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610535565b60405161017d9190612ba5565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a89190612c6f565b610572565b6040516101ba9190612cca565b60405180910390f35b3480156101cf57600080fd5b506101ea60048036038101906101e59190612ce5565b610590565b005b3480156101f857600080fd5b50610201610714565b60405161020e9190612d21565b60405180910390f35b34801561022357600080fd5b5061023e60048036038101906102399190612d3c565b61071e565b60405161024b9190612cca565b60405180910390f35b34801561026057600080fd5b5061027b60048036038101906102769190612ce5565b6107f7565b005b34801561028957600080fd5b506102926108e7565b60405161029f9190612dab565b60405180910390f35b3480156102b457600080fd5b506102cf60048036038101906102ca9190612dc6565b6108f0565b005b3480156102dd57600080fd5b506102f860048036038101906102f39190612df3565b61095b565b005b34801561030657600080fd5b5061030f610a1c565b005b34801561031d57600080fd5b5061033860048036038101906103339190612ce5565b610a8e565b6040516103459190612d21565b60405180910390f35b34801561035a57600080fd5b50610363610ad7565b005b34801561037157600080fd5b5061037a610c2a565b005b34801561038857600080fd5b50610391610c9f565b005b34801561039f57600080fd5b506103a8610d2c565b6040516103b59190612e42565b60405180910390f35b3480156103ca57600080fd5b506103d3610d55565b6040516103e09190612ba5565b60405180910390f35b3480156103f557600080fd5b50610410600480360381019061040b9190612e5d565b610d92565b005b34801561041e57600080fd5b5061043960048036038101906104349190612c6f565b610e6b565b6040516104469190612cca565b60405180910390f35b34801561045b57600080fd5b5061047660048036038101906104719190612ff8565b610e89565b005b34801561048457600080fd5b5061048d610fb3565b005b34801561049b57600080fd5b506104a461102d565b005b3480156104b257600080fd5b506104cd60048036038101906104c89190613041565b61116a565b6040516104da9190612d21565b60405180910390f35b3480156104ef57600080fd5b5061050a60048036038101906105059190612ce5565b6111f1565b005b34801561051857600080fd5b50610533600480360381019061052e9190612ce5565b6112ad565b005b60606040518060400160405280600981526020017f566f6c745072696d650000000000000000000000000000000000000000000000815250905090565b600061058661057f6114c3565b84846114cb565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105d16114c3565b73ffffffffffffffffffffffffffffffffffffffff16146105f157600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161066e9190612e42565b602060405180830381865afa15801561068b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106af9190613096565b6040518363ffffffff1660e01b81526004016106cc929190613122565b6020604051808303816000875af11580156106eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070f9190613177565b505050565b6000600954905090565b600061072b848484611694565b6107ec846107376114c3565b6107e785604051806060016040528060288152602001613c9660289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061079d6114c3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e759092919063ffffffff16565b6114cb565b600190509392505050565b6107ff6114c3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461088c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610883906131f0565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109316114c3565b73ffffffffffffffffffffffffffffffffffffffff161461095157600080fd5b8060138190555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661099c6114c3565b73ffffffffffffffffffffffffffffffffffffffff16146109bc57600080fd5b606481836109ca919061323f565b14610a0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a01906132e5565b60405180910390fd5b81600f81905550806010819055505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a5d6114c3565b73ffffffffffffffffffffffffffffffffffffffff1614610a7d57600080fd5b6000479050610a8b81611ed9565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610adf6114c3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b63906131f0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c6b6114c3565b73ffffffffffffffffffffffffffffffffffffffff1614610c8b57600080fd5b600954601181905550600954601281905550565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ce06114c3565b73ffffffffffffffffffffffffffffffffffffffff1614610d0057600080fd5b601760149054906101000a900460ff1615601760146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f765072696d650000000000000000000000000000000000000000000000000000815250905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dd36114c3565b73ffffffffffffffffffffffffffffffffffffffff1614610df357600080fd5b60648311158015610e05575060648211155b8015610e12575060648111155b610e51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4890613351565b60405180910390fd5b82600b8190555081600c8190555080600d81905550505050565b6000610e7f610e786114c3565b8484611694565b6001905092915050565b610e916114c3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f15906131f0565b60405180910390fd5b60005b8151811015610faf57600160056000848481518110610f4357610f42613371565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610fa7906133a0565b915050610f21565b5050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ff46114c3565b73ffffffffffffffffffffffffffffffffffffffff161461101457600080fd5b600061101f30610a8e565b905061102a81611ffc565b50565b6110356114c3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b9906131f0565b60405180910390fd5b601760159054906101000a900460ff1615611112576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110990613434565b60405180910390fd5b61112c61111e30610a8e565b47611127610d2c565b612275565b60016017806101000a81548160ff0219169083151502179055506001601760156101000a81548160ff02191690831515021790555042600781905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112326114c3565b73ffffffffffffffffffffffffffffffffffffffff161461125257600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6112b56114c3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611342576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611339906131f0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061144183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061238a565b905092915050565b600080830361145b57600090506114bd565b600082846114699190613454565b905082848261147891906134c5565b146114b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114af90613568565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361153a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611531906135fa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a09061368c565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116879190612d21565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611703576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fa9061371e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611772576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611769906137b0565b60405180910390fd5b600081116117b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ac90613842565b60405180910390fd5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461189a5760125481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611858919061323f565b1115611899576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611890906138ae565b60405180910390fd5b5b6118c5600e546118b7600d54600b546123ed90919063ffffffff16565b6123ed90919063ffffffff16565b6008819055506118d3610d2c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119415750611911610d2c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d2d57600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119ea5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6119f357600080fd5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a9e5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611af45750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b01575060075442105b15611bb157601154811115611b1557600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611b6057600080fd5b601e42611b6d919061323f565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601760169054906101000a900460ff16158015611c1c5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c32575060178054906101000a900460ff165b8015611c885750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d2c576007544211611cd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc890613940565b60405180910390fd5b6000611cdc30610a8e565b9050601354811115611d2a57611cf181611ffc565b60004790506000811115611d2857601760149054906101000a900460ff1615611d1e57611d1d8161244b565b5b611d2747611ed9565b5b505b505b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611dd85750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e2e5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e6557611e5e600e54611e50600d54600c546123ed90919063ffffffff16565b6123ed90919063ffffffff16565b6008819055505b611e7083838361268f565b505050565b6000838311158290611ebd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb49190612ba5565b60405180910390fd5b5060008385611ecc9190613960565b9050809150509392505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611f3d600f54611f2f6064866113ff90919063ffffffff16565b61144990919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611f68573d6000803e3d6000fd5b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611fcd601054611fbf6064866113ff90919063ffffffff16565b61144990919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611ff8573d6000803e3d6000fd5b5050565b6001601760166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561203457612033612eb5565b5b6040519080825280602002602001820160405280156120625781602001602082028036833780820191505090505b509050308160008151811061207a57612079613371565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612121573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214591906139a9565b8160018151811061215957612158613371565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121c030601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114cb565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612224959493929190613acf565b600060405180830381600087803b15801561223e57600080fd5b505af1158015612252573d6000803e3d6000fd5b50505050506000601760166101000a81548160ff02191690831515021790555050565b6001601760166101000a81548160ff0219169083151502179055506122bd30601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856114cb565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b815260040161232496959493929190613b29565b60606040518083038185885af1158015612342573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906123679190613b8a565b5050506000601760166101000a81548160ff021916908315150217905550505050565b600080831182906123d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c89190612ba5565b60405180910390fd5b50600083856123e091906134c5565b9050809150509392505050565b60008082846123fc919061323f565b905083811015612441576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243890613c29565b60405180910390fd5b8091505092915050565b60006124616006836113ff90919063ffffffff16565b90506000600267ffffffffffffffff8111156124805761247f612eb5565b5b6040519080825280602002602001820160405280156124ae5781602001602082028036833780820191505090505b509050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561251e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061254291906139a9565b8160008151811061255657612555613371565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737db5af2b9624e1b3b4bb69d6debd9ad1016a58ac816001815181106125b9576125b8613371565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de958360008461dead426040518663ffffffff1660e01b81526004016126589493929190613c49565b6000604051808303818588803b15801561267157600080fd5b505af1158015612685573d6000803e3d6000fd5b5050505050505050565b60008060008061269e856128dd565b93509350935093506126f881600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461299a90919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061278d84600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123ed90919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061282282600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123ed90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061286f87846129e4565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516128cc9190612d21565b60405180910390a350505050505050565b600080600080600061290e6103e86129006008548961144990919063ffffffff16565b6113ff90919063ffffffff16565b90506000612925828861299a90919063ffffffff16565b905060006129526103e8612944600e548b61144990919063ffffffff16565b6113ff90919063ffffffff16565b90506000612969828561299a90919063ffffffff16565b90506000612980838b61299a90919063ffffffff16565b905083838383985098509850985050505050509193509193565b60006129dc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e75565b905092915050565b612a3681600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461299a90919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508060096000828254612a8b9190613960565b9250508190555080600a6000828254612aa4919061323f565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612b099190612d21565b60405180910390a35050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b4f578082015181840152602081019050612b34565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b7782612b15565b612b818185612b20565b9350612b91818560208601612b31565b612b9a81612b5b565b840191505092915050565b60006020820190508181036000830152612bbf8184612b6c565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c0682612bdb565b9050919050565b612c1681612bfb565b8114612c2157600080fd5b50565b600081359050612c3381612c0d565b92915050565b6000819050919050565b612c4c81612c39565b8114612c5757600080fd5b50565b600081359050612c6981612c43565b92915050565b60008060408385031215612c8657612c85612bd1565b5b6000612c9485828601612c24565b9250506020612ca585828601612c5a565b9150509250929050565b60008115159050919050565b612cc481612caf565b82525050565b6000602082019050612cdf6000830184612cbb565b92915050565b600060208284031215612cfb57612cfa612bd1565b5b6000612d0984828501612c24565b91505092915050565b612d1b81612c39565b82525050565b6000602082019050612d366000830184612d12565b92915050565b600080600060608486031215612d5557612d54612bd1565b5b6000612d6386828701612c24565b9350506020612d7486828701612c24565b9250506040612d8586828701612c5a565b9150509250925092565b600060ff82169050919050565b612da581612d8f565b82525050565b6000602082019050612dc06000830184612d9c565b92915050565b600060208284031215612ddc57612ddb612bd1565b5b6000612dea84828501612c5a565b91505092915050565b60008060408385031215612e0a57612e09612bd1565b5b6000612e1885828601612c5a565b9250506020612e2985828601612c5a565b9150509250929050565b612e3c81612bfb565b82525050565b6000602082019050612e576000830184612e33565b92915050565b600080600060608486031215612e7657612e75612bd1565b5b6000612e8486828701612c5a565b9350506020612e9586828701612c5a565b9250506040612ea686828701612c5a565b9150509250925092565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612eed82612b5b565b810181811067ffffffffffffffff82111715612f0c57612f0b612eb5565b5b80604052505050565b6000612f1f612bc7565b9050612f2b8282612ee4565b919050565b600067ffffffffffffffff821115612f4b57612f4a612eb5565b5b602082029050602081019050919050565b600080fd5b6000612f74612f6f84612f30565b612f15565b90508083825260208201905060208402830185811115612f9757612f96612f5c565b5b835b81811015612fc05780612fac8882612c24565b845260208401935050602081019050612f99565b5050509392505050565b600082601f830112612fdf57612fde612eb0565b5b8135612fef848260208601612f61565b91505092915050565b60006020828403121561300e5761300d612bd1565b5b600082013567ffffffffffffffff81111561302c5761302b612bd6565b5b61303884828501612fca565b91505092915050565b6000806040838503121561305857613057612bd1565b5b600061306685828601612c24565b925050602061307785828601612c24565b9150509250929050565b60008151905061309081612c43565b92915050565b6000602082840312156130ac576130ab612bd1565b5b60006130ba84828501613081565b91505092915050565b6000819050919050565b60006130e86130e36130de84612bdb565b6130c3565b612bdb565b9050919050565b60006130fa826130cd565b9050919050565b600061310c826130ef565b9050919050565b61311c81613101565b82525050565b60006040820190506131376000830185613113565b6131446020830184612d12565b9392505050565b61315481612caf565b811461315f57600080fd5b50565b6000815190506131718161314b565b92915050565b60006020828403121561318d5761318c612bd1565b5b600061319b84828501613162565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006131da602083612b20565b91506131e5826131a4565b602082019050919050565b60006020820190508181036000830152613209816131cd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061324a82612c39565b915061325583612c39565b925082820190508082111561326d5761326c613210565b5b92915050565b7f70657263656e7461676573206861766520746f2061646420757020746f20313060008201527f3020796f75207461726400000000000000000000000000000000000000000000602082015250565b60006132cf602a83612b20565b91506132da82613273565b604082019050919050565b600060208201905081810360008301526132fe816132c2565b9050919050565b7f666565732063616e6e6f7420626520686967686572207468616e203130250000600082015250565b600061333b601e83612b20565b915061334682613305565b602082019050919050565b6000602082019050818103600083015261336a8161332e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006133ab82612c39565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036133dd576133dc613210565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061341e601783612b20565b9150613429826133e8565b602082019050919050565b6000602082019050818103600083015261344d81613411565b9050919050565b600061345f82612c39565b915061346a83612c39565b925082820261347881612c39565b9150828204841483151761348f5761348e613210565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006134d082612c39565b91506134db83612c39565b9250826134eb576134ea613496565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613552602183612b20565b915061355d826134f6565b604082019050919050565b6000602082019050818103600083015261358181613545565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006135e4602483612b20565b91506135ef82613588565b604082019050919050565b60006020820190508181036000830152613613816135d7565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613676602283612b20565b91506136818261361a565b604082019050919050565b600060208201905081810360008301526136a581613669565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613708602583612b20565b9150613713826136ac565b604082019050919050565b60006020820190508181036000830152613737816136fb565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061379a602383612b20565b91506137a58261373e565b604082019050919050565b600060208201905081810360008301526137c98161378d565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061382c602983612b20565b9150613837826137d0565b604082019050919050565b6000602082019050818103600083015261385b8161381f565b9050919050565b7f746f6f206d616e7920746f6b656e73207363756d626167000000000000000000600082015250565b6000613898601783612b20565b91506138a382613862565b602082019050919050565b600060208201905081810360008301526138c78161388b565b9050919050565b7f53656c6c732070726f6869626974656420666f7220746865206669727374203460008201527f206d696e75746573000000000000000000000000000000000000000000000000602082015250565b600061392a602883612b20565b9150613935826138ce565b604082019050919050565b600060208201905081810360008301526139598161391d565b9050919050565b600061396b82612c39565b915061397683612c39565b925082820390508181111561398e5761398d613210565b5b92915050565b6000815190506139a381612c0d565b92915050565b6000602082840312156139bf576139be612bd1565b5b60006139cd84828501613994565b91505092915050565b6000819050919050565b60006139fb6139f66139f1846139d6565b6130c3565b612c39565b9050919050565b613a0b816139e0565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613a4681612bfb565b82525050565b6000613a588383613a3d565b60208301905092915050565b6000602082019050919050565b6000613a7c82613a11565b613a868185613a1c565b9350613a9183613a2d565b8060005b83811015613ac2578151613aa98882613a4c565b9750613ab483613a64565b925050600181019050613a95565b5085935050505092915050565b600060a082019050613ae46000830188612d12565b613af16020830187613a02565b8181036040830152613b038186613a71565b9050613b126060830185612e33565b613b1f6080830184612d12565b9695505050505050565b600060c082019050613b3e6000830189612e33565b613b4b6020830188612d12565b613b586040830187613a02565b613b656060830186613a02565b613b726080830185612e33565b613b7f60a0830184612d12565b979650505050505050565b600080600060608486031215613ba357613ba2612bd1565b5b6000613bb186828701613081565b9350506020613bc286828701613081565b9250506040613bd386828701613081565b9150509250925092565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613c13601b83612b20565b9150613c1e82613bdd565b602082019050919050565b60006020820190508181036000830152613c4281613c06565b9050919050565b6000608082019050613c5e6000830187613a02565b8181036020830152613c708186613a71565b9050613c7f6040830185612e33565b613c8c6060830184612d12565b9594505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122040dcfa1e10aebf00ba7e057d7e6ea5415dbbac3483062f59f9c67f837dfdd02c64736f6c63430008110033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c8063751039fc116100b6578063b515566a1161006f578063b515566a1461044f578063c3c8cd8014610478578063c9567bf91461048f578063dd62ed3e146104a6578063e57f14e1146104e3578063f2fde38b1461050c57610156565b8063751039fc14610365578063753a4d3e1461037c5780638da5cb5b1461039357806395d89b41146103be578063a63748e5146103e9578063a9059cbb1461041257610156565b8063313ce56711610108578063313ce5671461027d5780634ea18fab146102a85780636af324ed146102d15780636fc3eaec146102fa57806370a0823114610311578063715018a61461034e57610156565b806306fdde031461015b578063095ea7b31461018657806316114acd146101c357806318160ddd146101ec57806323b872dd14610217578063273123b71461025457610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610535565b60405161017d9190612ba5565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a89190612c6f565b610572565b6040516101ba9190612cca565b60405180910390f35b3480156101cf57600080fd5b506101ea60048036038101906101e59190612ce5565b610590565b005b3480156101f857600080fd5b50610201610714565b60405161020e9190612d21565b60405180910390f35b34801561022357600080fd5b5061023e60048036038101906102399190612d3c565b61071e565b60405161024b9190612cca565b60405180910390f35b34801561026057600080fd5b5061027b60048036038101906102769190612ce5565b6107f7565b005b34801561028957600080fd5b506102926108e7565b60405161029f9190612dab565b60405180910390f35b3480156102b457600080fd5b506102cf60048036038101906102ca9190612dc6565b6108f0565b005b3480156102dd57600080fd5b506102f860048036038101906102f39190612df3565b61095b565b005b34801561030657600080fd5b5061030f610a1c565b005b34801561031d57600080fd5b5061033860048036038101906103339190612ce5565b610a8e565b6040516103459190612d21565b60405180910390f35b34801561035a57600080fd5b50610363610ad7565b005b34801561037157600080fd5b5061037a610c2a565b005b34801561038857600080fd5b50610391610c9f565b005b34801561039f57600080fd5b506103a8610d2c565b6040516103b59190612e42565b60405180910390f35b3480156103ca57600080fd5b506103d3610d55565b6040516103e09190612ba5565b60405180910390f35b3480156103f557600080fd5b50610410600480360381019061040b9190612e5d565b610d92565b005b34801561041e57600080fd5b5061043960048036038101906104349190612c6f565b610e6b565b6040516104469190612cca565b60405180910390f35b34801561045b57600080fd5b5061047660048036038101906104719190612ff8565b610e89565b005b34801561048457600080fd5b5061048d610fb3565b005b34801561049b57600080fd5b506104a461102d565b005b3480156104b257600080fd5b506104cd60048036038101906104c89190613041565b61116a565b6040516104da9190612d21565b60405180910390f35b3480156104ef57600080fd5b5061050a60048036038101906105059190612ce5565b6111f1565b005b34801561051857600080fd5b50610533600480360381019061052e9190612ce5565b6112ad565b005b60606040518060400160405280600981526020017f566f6c745072696d650000000000000000000000000000000000000000000000815250905090565b600061058661057f6114c3565b84846114cb565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105d16114c3565b73ffffffffffffffffffffffffffffffffffffffff16146105f157600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161066e9190612e42565b602060405180830381865afa15801561068b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106af9190613096565b6040518363ffffffff1660e01b81526004016106cc929190613122565b6020604051808303816000875af11580156106eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070f9190613177565b505050565b6000600954905090565b600061072b848484611694565b6107ec846107376114c3565b6107e785604051806060016040528060288152602001613c9660289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061079d6114c3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e759092919063ffffffff16565b6114cb565b600190509392505050565b6107ff6114c3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461088c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610883906131f0565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109316114c3565b73ffffffffffffffffffffffffffffffffffffffff161461095157600080fd5b8060138190555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661099c6114c3565b73ffffffffffffffffffffffffffffffffffffffff16146109bc57600080fd5b606481836109ca919061323f565b14610a0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a01906132e5565b60405180910390fd5b81600f81905550806010819055505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a5d6114c3565b73ffffffffffffffffffffffffffffffffffffffff1614610a7d57600080fd5b6000479050610a8b81611ed9565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610adf6114c3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b63906131f0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c6b6114c3565b73ffffffffffffffffffffffffffffffffffffffff1614610c8b57600080fd5b600954601181905550600954601281905550565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ce06114c3565b73ffffffffffffffffffffffffffffffffffffffff1614610d0057600080fd5b601760149054906101000a900460ff1615601760146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f765072696d650000000000000000000000000000000000000000000000000000815250905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dd36114c3565b73ffffffffffffffffffffffffffffffffffffffff1614610df357600080fd5b60648311158015610e05575060648211155b8015610e12575060648111155b610e51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4890613351565b60405180910390fd5b82600b8190555081600c8190555080600d81905550505050565b6000610e7f610e786114c3565b8484611694565b6001905092915050565b610e916114c3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f15906131f0565b60405180910390fd5b60005b8151811015610faf57600160056000848481518110610f4357610f42613371565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610fa7906133a0565b915050610f21565b5050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ff46114c3565b73ffffffffffffffffffffffffffffffffffffffff161461101457600080fd5b600061101f30610a8e565b905061102a81611ffc565b50565b6110356114c3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b9906131f0565b60405180910390fd5b601760159054906101000a900460ff1615611112576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110990613434565b60405180910390fd5b61112c61111e30610a8e565b47611127610d2c565b612275565b60016017806101000a81548160ff0219169083151502179055506001601760156101000a81548160ff02191690831515021790555042600781905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112326114c3565b73ffffffffffffffffffffffffffffffffffffffff161461125257600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6112b56114c3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611342576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611339906131f0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061144183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061238a565b905092915050565b600080830361145b57600090506114bd565b600082846114699190613454565b905082848261147891906134c5565b146114b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114af90613568565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361153a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611531906135fa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a09061368c565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116879190612d21565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611703576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fa9061371e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611772576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611769906137b0565b60405180910390fd5b600081116117b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ac90613842565b60405180910390fd5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461189a5760125481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611858919061323f565b1115611899576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611890906138ae565b60405180910390fd5b5b6118c5600e546118b7600d54600b546123ed90919063ffffffff16565b6123ed90919063ffffffff16565b6008819055506118d3610d2c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119415750611911610d2c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d2d57600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119ea5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6119f357600080fd5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a9e5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611af45750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b01575060075442105b15611bb157601154811115611b1557600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611b6057600080fd5b601e42611b6d919061323f565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601760169054906101000a900460ff16158015611c1c5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c32575060178054906101000a900460ff165b8015611c885750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d2c576007544211611cd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc890613940565b60405180910390fd5b6000611cdc30610a8e565b9050601354811115611d2a57611cf181611ffc565b60004790506000811115611d2857601760149054906101000a900460ff1615611d1e57611d1d8161244b565b5b611d2747611ed9565b5b505b505b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611dd85750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e2e5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e6557611e5e600e54611e50600d54600c546123ed90919063ffffffff16565b6123ed90919063ffffffff16565b6008819055505b611e7083838361268f565b505050565b6000838311158290611ebd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb49190612ba5565b60405180910390fd5b5060008385611ecc9190613960565b9050809150509392505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611f3d600f54611f2f6064866113ff90919063ffffffff16565b61144990919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611f68573d6000803e3d6000fd5b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611fcd601054611fbf6064866113ff90919063ffffffff16565b61144990919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611ff8573d6000803e3d6000fd5b5050565b6001601760166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561203457612033612eb5565b5b6040519080825280602002602001820160405280156120625781602001602082028036833780820191505090505b509050308160008151811061207a57612079613371565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612121573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214591906139a9565b8160018151811061215957612158613371565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121c030601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114cb565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612224959493929190613acf565b600060405180830381600087803b15801561223e57600080fd5b505af1158015612252573d6000803e3d6000fd5b50505050506000601760166101000a81548160ff02191690831515021790555050565b6001601760166101000a81548160ff0219169083151502179055506122bd30601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856114cb565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b815260040161232496959493929190613b29565b60606040518083038185885af1158015612342573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906123679190613b8a565b5050506000601760166101000a81548160ff021916908315150217905550505050565b600080831182906123d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c89190612ba5565b60405180910390fd5b50600083856123e091906134c5565b9050809150509392505050565b60008082846123fc919061323f565b905083811015612441576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243890613c29565b60405180910390fd5b8091505092915050565b60006124616006836113ff90919063ffffffff16565b90506000600267ffffffffffffffff8111156124805761247f612eb5565b5b6040519080825280602002602001820160405280156124ae5781602001602082028036833780820191505090505b509050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561251e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061254291906139a9565b8160008151811061255657612555613371565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737db5af2b9624e1b3b4bb69d6debd9ad1016a58ac816001815181106125b9576125b8613371565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de958360008461dead426040518663ffffffff1660e01b81526004016126589493929190613c49565b6000604051808303818588803b15801561267157600080fd5b505af1158015612685573d6000803e3d6000fd5b5050505050505050565b60008060008061269e856128dd565b93509350935093506126f881600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461299a90919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061278d84600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123ed90919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061282282600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123ed90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061286f87846129e4565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516128cc9190612d21565b60405180910390a350505050505050565b600080600080600061290e6103e86129006008548961144990919063ffffffff16565b6113ff90919063ffffffff16565b90506000612925828861299a90919063ffffffff16565b905060006129526103e8612944600e548b61144990919063ffffffff16565b6113ff90919063ffffffff16565b90506000612969828561299a90919063ffffffff16565b90506000612980838b61299a90919063ffffffff16565b905083838383985098509850985050505050509193509193565b60006129dc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e75565b905092915050565b612a3681600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461299a90919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508060096000828254612a8b9190613960565b9250508190555080600a6000828254612aa4919061323f565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612b099190612d21565b60405180910390a35050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b4f578082015181840152602081019050612b34565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b7782612b15565b612b818185612b20565b9350612b91818560208601612b31565b612b9a81612b5b565b840191505092915050565b60006020820190508181036000830152612bbf8184612b6c565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c0682612bdb565b9050919050565b612c1681612bfb565b8114612c2157600080fd5b50565b600081359050612c3381612c0d565b92915050565b6000819050919050565b612c4c81612c39565b8114612c5757600080fd5b50565b600081359050612c6981612c43565b92915050565b60008060408385031215612c8657612c85612bd1565b5b6000612c9485828601612c24565b9250506020612ca585828601612c5a565b9150509250929050565b60008115159050919050565b612cc481612caf565b82525050565b6000602082019050612cdf6000830184612cbb565b92915050565b600060208284031215612cfb57612cfa612bd1565b5b6000612d0984828501612c24565b91505092915050565b612d1b81612c39565b82525050565b6000602082019050612d366000830184612d12565b92915050565b600080600060608486031215612d5557612d54612bd1565b5b6000612d6386828701612c24565b9350506020612d7486828701612c24565b9250506040612d8586828701612c5a565b9150509250925092565b600060ff82169050919050565b612da581612d8f565b82525050565b6000602082019050612dc06000830184612d9c565b92915050565b600060208284031215612ddc57612ddb612bd1565b5b6000612dea84828501612c5a565b91505092915050565b60008060408385031215612e0a57612e09612bd1565b5b6000612e1885828601612c5a565b9250506020612e2985828601612c5a565b9150509250929050565b612e3c81612bfb565b82525050565b6000602082019050612e576000830184612e33565b92915050565b600080600060608486031215612e7657612e75612bd1565b5b6000612e8486828701612c5a565b9350506020612e9586828701612c5a565b9250506040612ea686828701612c5a565b9150509250925092565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612eed82612b5b565b810181811067ffffffffffffffff82111715612f0c57612f0b612eb5565b5b80604052505050565b6000612f1f612bc7565b9050612f2b8282612ee4565b919050565b600067ffffffffffffffff821115612f4b57612f4a612eb5565b5b602082029050602081019050919050565b600080fd5b6000612f74612f6f84612f30565b612f15565b90508083825260208201905060208402830185811115612f9757612f96612f5c565b5b835b81811015612fc05780612fac8882612c24565b845260208401935050602081019050612f99565b5050509392505050565b600082601f830112612fdf57612fde612eb0565b5b8135612fef848260208601612f61565b91505092915050565b60006020828403121561300e5761300d612bd1565b5b600082013567ffffffffffffffff81111561302c5761302b612bd6565b5b61303884828501612fca565b91505092915050565b6000806040838503121561305857613057612bd1565b5b600061306685828601612c24565b925050602061307785828601612c24565b9150509250929050565b60008151905061309081612c43565b92915050565b6000602082840312156130ac576130ab612bd1565b5b60006130ba84828501613081565b91505092915050565b6000819050919050565b60006130e86130e36130de84612bdb565b6130c3565b612bdb565b9050919050565b60006130fa826130cd565b9050919050565b600061310c826130ef565b9050919050565b61311c81613101565b82525050565b60006040820190506131376000830185613113565b6131446020830184612d12565b9392505050565b61315481612caf565b811461315f57600080fd5b50565b6000815190506131718161314b565b92915050565b60006020828403121561318d5761318c612bd1565b5b600061319b84828501613162565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006131da602083612b20565b91506131e5826131a4565b602082019050919050565b60006020820190508181036000830152613209816131cd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061324a82612c39565b915061325583612c39565b925082820190508082111561326d5761326c613210565b5b92915050565b7f70657263656e7461676573206861766520746f2061646420757020746f20313060008201527f3020796f75207461726400000000000000000000000000000000000000000000602082015250565b60006132cf602a83612b20565b91506132da82613273565b604082019050919050565b600060208201905081810360008301526132fe816132c2565b9050919050565b7f666565732063616e6e6f7420626520686967686572207468616e203130250000600082015250565b600061333b601e83612b20565b915061334682613305565b602082019050919050565b6000602082019050818103600083015261336a8161332e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006133ab82612c39565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036133dd576133dc613210565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061341e601783612b20565b9150613429826133e8565b602082019050919050565b6000602082019050818103600083015261344d81613411565b9050919050565b600061345f82612c39565b915061346a83612c39565b925082820261347881612c39565b9150828204841483151761348f5761348e613210565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006134d082612c39565b91506134db83612c39565b9250826134eb576134ea613496565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613552602183612b20565b915061355d826134f6565b604082019050919050565b6000602082019050818103600083015261358181613545565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006135e4602483612b20565b91506135ef82613588565b604082019050919050565b60006020820190508181036000830152613613816135d7565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613676602283612b20565b91506136818261361a565b604082019050919050565b600060208201905081810360008301526136a581613669565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613708602583612b20565b9150613713826136ac565b604082019050919050565b60006020820190508181036000830152613737816136fb565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061379a602383612b20565b91506137a58261373e565b604082019050919050565b600060208201905081810360008301526137c98161378d565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061382c602983612b20565b9150613837826137d0565b604082019050919050565b6000602082019050818103600083015261385b8161381f565b9050919050565b7f746f6f206d616e7920746f6b656e73207363756d626167000000000000000000600082015250565b6000613898601783612b20565b91506138a382613862565b602082019050919050565b600060208201905081810360008301526138c78161388b565b9050919050565b7f53656c6c732070726f6869626974656420666f7220746865206669727374203460008201527f206d696e75746573000000000000000000000000000000000000000000000000602082015250565b600061392a602883612b20565b9150613935826138ce565b604082019050919050565b600060208201905081810360008301526139598161391d565b9050919050565b600061396b82612c39565b915061397683612c39565b925082820390508181111561398e5761398d613210565b5b92915050565b6000815190506139a381612c0d565b92915050565b6000602082840312156139bf576139be612bd1565b5b60006139cd84828501613994565b91505092915050565b6000819050919050565b60006139fb6139f66139f1846139d6565b6130c3565b612c39565b9050919050565b613a0b816139e0565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613a4681612bfb565b82525050565b6000613a588383613a3d565b60208301905092915050565b6000602082019050919050565b6000613a7c82613a11565b613a868185613a1c565b9350613a9183613a2d565b8060005b83811015613ac2578151613aa98882613a4c565b9750613ab483613a64565b925050600181019050613a95565b5085935050505092915050565b600060a082019050613ae46000830188612d12565b613af16020830187613a02565b8181036040830152613b038186613a71565b9050613b126060830185612e33565b613b1f6080830184612d12565b9695505050505050565b600060c082019050613b3e6000830189612e33565b613b4b6020830188612d12565b613b586040830187613a02565b613b656060830186613a02565b613b726080830185612e33565b613b7f60a0830184612d12565b979650505050505050565b600080600060608486031215613ba357613ba2612bd1565b5b6000613bb186828701613081565b9350506020613bc286828701613081565b9250506040613bd386828701613081565b9150509250925092565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613c13601b83612b20565b9150613c1e82613bdd565b602082019050919050565b60006020820190508181036000830152613c4281613c06565b9050919050565b6000608082019050613c5e6000830187613a02565b8181036020830152613c708186613a71565b9050613c7f6040830185612e33565b613c8c6060830184612d12565b9594505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122040dcfa1e10aebf00ba7e057d7e6ea5415dbbac3483062f59f9c67f837dfdd02c64736f6c63430008110033

Deployed Bytecode Sourcemap

3930:11479:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6678:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7509:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15162:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6955:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7678:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13655:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6864:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8371:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8515:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14511:188;;;;;;;;;;;;;:::i;:::-;;7058:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2810:148;;;;;;;;;;;;;:::i;:::-;;9072:156;;;;;;;;;;;;;:::i;:::-;;8244:119;;;;;;;;;;;;;:::i;:::-;;2415:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6769:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8765:297;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7183:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13479:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14310:189;;;;;;;;;;;;;:::i;:::-;;13187:280;;;;;;;;;;;;;:::i;:::-;;7358:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9236:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2629:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6678:83;6715:13;6748:5;;;;;;;;;;;;;;;;;6741:12;;6678:83;:::o;7509:161::-;7584:4;7601:39;7610:12;:10;:12::i;:::-;7624:7;7633:6;7601:8;:39::i;:::-;7658:4;7651:11;;7509:161;;;;:::o;15162:244::-;15251:9;;;;;;;;;;;15235:25;;:12;:10;:12::i;:::-;:25;;;15227:34;;;;;;15272:20;15302:12;15272:43;;15326:13;:22;;;15349:9;;;;;;;;;;;15359:13;:23;;;15391:4;15359:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15326:72;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15216:190;15162:244;:::o;6955:95::-;7008:7;7035;;7028:14;;6955:95;:::o;7678:313::-;7776:4;7793:36;7803:6;7811:9;7822:6;7793:9;:36::i;:::-;7840:121;7849:6;7857:12;:10;:12::i;:::-;7871:89;7909:6;7871:89;;;;;;;;;;;;;;;;;:11;:19;7883:6;7871:19;;;;;;;;;;;;;;;:33;7891:12;:10;:12::i;:::-;7871:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7840:8;:121::i;:::-;7979:4;7972:11;;7678:313;;;;;:::o;13655:88::-;2552:12;:10;:12::i;:::-;2542:22;;:6;;;;;;;;;;:22;;;2534:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13730:5:::1;13715:4;:12;13720:6;13715:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13655:88:::0;:::o;6864:83::-;6905:5;4948:1;6923:16;;6864:83;:::o;8371:136::-;8457:9;;;;;;;;;;;8441:25;;:12;:10;:12::i;:::-;:25;;;8433:34;;;;;;8491:6;8478:10;:19;;;;8371:136;:::o;8515:242::-;8613:9;;;;;;;;;;;8597:25;;:12;:10;:12::i;:::-;:25;;;8589:34;;;;;;8657:3;8649:4;8642;:11;;;;:::i;:::-;:18;8634:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;8724:4;8718:3;:10;;;;8745:4;8739:3;:10;;;;8515:242;;:::o;14511:188::-;14577:9;;;;;;;;;;;14561:25;;:12;:10;:12::i;:::-;:25;;;14553:34;;;;;;14598:26;14627:21;14598:50;;14659:32;14672:18;14659:12;:32::i;:::-;14542:157;14511:188::o;7058:117::-;7124:7;7151;:16;7159:7;7151:16;;;;;;;;;;;;;;;;7144:23;;7058:117;;;:::o;2810:148::-;2552:12;:10;:12::i;:::-;2542:22;;:6;;;;;;;;;;:22;;;2534:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2917:1:::1;2880:40;;2901:6;::::0;::::1;;;;;;;;2880:40;;;;;;;;;;;;2948:1;2931:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2810:148::o:0;9072:156::-;9140:9;;;;;;;;;;;9124:25;;:12;:10;:12::i;:::-;:25;;;9116:34;;;;;;9176:7;;9161:12;:22;;;;9213:7;;9194:16;:26;;;;9072:156::o;8244:119::-;8314:9;;;;;;;;;;;8298:25;;:12;:10;:12::i;:::-;:25;;;8290:34;;;;;;8347:8;;;;;;;;;;;8346:9;8335:8;;:20;;;;;;;;;;;;;;;;;;8244:119::o;2415:79::-;2453:7;2480:6;;;;;;;;;;;2473:13;;2415:79;:::o;6769:87::-;6808:13;6841:7;;;;;;;;;;;;;;;;;6834:14;;6769:87;:::o;8765:297::-;8872:9;;;;;;;;;;;8856:25;;:12;:10;:12::i;:::-;:25;;;8848:34;;;;;;8910:3;8901:5;:12;;:28;;;;;8926:3;8917:5;:12;;8901:28;:44;;;;;8942:3;8933:5;:12;;8901:44;8893:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;8997:5;8990:4;:12;;;;9020:5;9013:4;:12;;;;9049:5;9036:10;:18;;;;8765:297;;;:::o;7183:167::-;7261:4;7278:42;7288:12;:10;:12::i;:::-;7302:9;7313:6;7278:9;:42::i;:::-;7338:4;7331:11;;7183:167;;;;:::o;13479:164::-;2552:12;:10;:12::i;:::-;2542:22;;:6;;;;;;;;;;:22;;;2534:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13553:6:::1;13548:88;13569:5;:12;13565:1;:16;13548:88;;;13620:4;13603;:14;13608:5;13614:1;13608:8;;;;;;;;:::i;:::-;;;;;;;;13603:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13583:3;;;;;:::i;:::-;;;;13548:88;;;;13479:164:::0;:::o;14310:189::-;14376:9;;;;;;;;;;;14360:25;;:12;:10;:12::i;:::-;:25;;;14352:34;;;;;;14397:23;14423:24;14441:4;14423:9;:24::i;:::-;14397:50;;14458:33;14475:15;14458:16;:33::i;:::-;14341:158;14310:189::o;13187:280::-;2552:12;:10;:12::i;:::-;2542:22;;:6;;;;;;;;;;:22;;;2534:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13251:11:::1;;;;;;;;;;;13250:12;13242:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;13300:68;13313:24;13331:4;13313:9;:24::i;:::-;13338:21;13360:7;:5;:7::i;:::-;13300:12;:68::i;:::-;13393:4;13379:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;13422:4;13408:11;;:18;;;;;;;;;;;;;;;;;;13444:15;13437:4;:22;;;;13187:280::o:0;7358:143::-;7439:7;7466:11;:18;7478:5;7466:18;;;;;;;;;;;;;;;:27;7485:7;7466:27;;;;;;;;;;;;;;;;7459:34;;7358:143;;;;:::o;9236:147::-;9321:9;;;;;;;;;;;9305:25;;:12;:10;:12::i;:::-;:25;;;9297:34;;;;;;9371:4;9342:18;:26;9361:6;9342:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;9236:147;:::o;2629:173::-;2552:12;:10;:12::i;:::-;2542:22;;:6;;;;;;;;;;:22;;;2534:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2745:9:::1;2716:39;;2737:6;::::0;::::1;;;;;;;;2716:39;;;;;;;;;;;;2775:9;2766:6;::::0;:18:::1;;;;;;;;;;;;;;;;;;2629:173:::0;:::o;1722:132::-;1780:7;1807:39;1811:1;1814;1807:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1800:46;;1722:132;;;;:::o;1468:246::-;1526:7;1555:1;1550;:6;1546:47;;1580:1;1573:8;;;;1546:47;1603:9;1619:1;1615;:5;;;;:::i;:::-;1603:17;;1648:1;1643;1639;:5;;;;:::i;:::-;:10;1631:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1705:1;1698:8;;;1468:246;;;;;:::o;133:98::-;186:7;213:10;206:17;;133:98;:::o;9396:335::-;9506:1;9489:19;;:5;:19;;;9481:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9587:1;9568:21;;:7;:21;;;9560:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9669:6;9639:11;:18;9651:5;9639:18;;;;;;;;;;;;;;;:27;9658:7;9639:27;;;;;;;;;;;;;;;:36;;;;9707:7;9691:32;;9700:5;9691:32;;;9716:6;9691:32;;;;;;:::i;:::-;;;;;;;;9396:335;;;:::o;9739:1969::-;9843:1;9827:18;;:4;:18;;;9819:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9920:1;9906:16;;:2;:16;;;9898:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9990:1;9981:6;:10;9973:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10058:13;;;;;;;;;;;10052:19;;:2;:19;;;10048:129;;10122:16;;10111:6;10097:7;:11;10105:2;10097:11;;;;;;;;;;;;;;;;:20;;;;:::i;:::-;10096:42;;10088:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;10048:129;10194:40;10219:14;;10194:20;10203:10;;10194:4;;:8;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;10187:4;:47;;;;10257:7;:5;:7::i;:::-;10249:15;;:4;:15;;;;:32;;;;;10274:7;:5;:7::i;:::-;10268:13;;:2;:13;;;;10249:32;10245:1235;;;10307:4;:10;10312:4;10307:10;;;;;;;;;;;;;;;;;;;;;;;;;10306:11;:24;;;;;10322:4;:8;10327:2;10322:8;;;;;;;;;;;;;;;;;;;;;;;;;10321:9;10306:24;10298:33;;;;;;10358:13;;;;;;;;;;;10350:21;;:4;:21;;;:55;;;;;10389:15;;;;;;;;;;;10375:30;;:2;:30;;;;10350:55;:83;;;;;10411:18;:22;10430:2;10411:22;;;;;;;;;;;;;;;;;;;;;;;;;10409:24;10350:83;:111;;;;;10456:4;;10438:15;:22;10350:111;10346:333;;;10528:12;;10518:6;:22;;10510:31;;;;;;10583:15;10568:8;:12;10577:2;10568:12;;;;;;;;;;;;;;;;:30;10560:39;;;;;;10652:10;10633:15;:30;;;;:::i;:::-;10618:8;:12;10627:2;10618:12;;;;;;;;;;;;;;;:45;;;;10346:333;10726:6;;;;;;;;;;;10725:7;:32;;;;;10744:13;;;;;;;;;;;10736:21;;:4;:21;;;;10725:32;:47;;;;;10761:11;;;;;;;;;;10725:47;:76;;;;;10777:18;:24;10796:4;10777:24;;;;;;;;;;;;;;;;;;;;;;;;;10776:25;10725:76;10721:748;;;10848:4;;10830:15;:22;10822:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;10915:28;10946:24;10964:4;10946:9;:24::i;:::-;10915:55;;11015:10;;10992:20;:33;10989:465;;;11049:38;11066:20;11049:16;:38::i;:::-;11110:26;11139:21;11110:50;;11207:1;11186:18;:22;11183:252;;;11240:8;;;;;;;;;;;11237:113;;;11281:41;11303:18;11281:21;:41::i;:::-;11237:113;11376:35;11389:21;11376:12;:35::i;:::-;11183:252;11026:428;10989:465;10803:666;10721:748;10245:1235;11500:13;;;;;;;;;;;11494:19;;:2;:19;;;:55;;;;;11533:15;;;;;;;;;;;11517:32;;:4;:32;;;;11494:55;:85;;;;;11555:18;:24;11574:4;11555:24;;;;;;;;;;;;;;;;;;;;;;;;;11553:26;11494:85;11490:165;;;11603:40;11628:14;;11603:20;11612:10;;11603:4;;:8;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;11596:4;:47;;;;11490:165;11667:33;11685:4;11690:2;11693:6;11667:17;:33::i;:::-;9739:1969;;;:::o;1270:190::-;1356:7;1389:1;1384;:6;;1392:12;1376:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1416:9;1432:1;1428;:5;;;;:::i;:::-;1416:17;;1451:1;1444:8;;;1270:190;;;;;:::o;13004:171::-;13061:9;;;;;;;;;;;:18;;:44;13080:24;13100:3;;13080:15;13091:3;13080:6;:10;;:15;;;;:::i;:::-;:19;;:24;;;;:::i;:::-;13061:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13116:16;;;;;;;;;;;:25;;:51;13142:24;13162:3;;13142:15;13153:3;13142:6;:10;;:15;;;;:::i;:::-;:19;;:24;;;;:::i;:::-;13116:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13004:171;:::o;11716:483::-;5309:4;5300:6;;:13;;;;;;;;;;;;;;;;;;11794:21:::1;11832:1;11818:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11794:40;;11863:4;11845;11850:1;11845:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11889:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11879:4;11884:1;11879:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11922:62;11939:4;11954:15;;;;;;;;;;;11972:11;11922:8;:62::i;:::-;11995:15;;;;;;;;;;;:66;;;12076:11;12102:1;12118:4;12145;12165:15;11995:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11783:416;5345:5:::0;5336:6;;:14;;;;;;;;;;;;;;;;;;11716:483;:::o;12702:288::-;5309:4;5300:6;;:13;;;;;;;;;;;;;;;;;;12808:60:::1;12825:4;12839:15;;;;;;;;;;;12856:11;12808:8;:60::i;:::-;12879:15;;;;;;;;;;;:31;;;12918:9;12937:4;12943:11;12955:1;12957::::0;12959:6:::1;12966:15;12879:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;5345:5:::0;5336:6;;:14;;;;;;;;;;;;;;;;;;12702:288;;;:::o;1862:189::-;1948:7;1980:1;1976;:5;1983:12;1968:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2007:9;2023:1;2019;:5;;;;:::i;:::-;2007:17;;2042:1;2035:8;;;1862:189;;;;;:::o;939:179::-;997:7;1017:9;1033:1;1029;:5;;;;:::i;:::-;1017:17;;1058:1;1053;:6;;1045:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1109:1;1102:8;;;939:179;;;;:::o;12207:481::-;12276:17;12296:16;12310:1;12296:9;:13;;:16;;;;:::i;:::-;12276:36;;12323:22;12362:1;12348:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12323:41;;12385:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12375:4;12380:1;12375:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;12436:42;12418:4;12423:1;12418:7;;;;;;;;:::i;:::-;;;;;;;:61;;;;;;;;;;;12490:15;;;;;;;;;;;:66;;;12564:9;12589:1;12605:4;12632:6;12654:15;12490:190;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12265:423;;12207:481;:::o;13751:510::-;13850:22;13873:18;13892:17;13910:20;13934;13946:7;13934:11;:20::i;:::-;13849:105;;;;;;;;13983:33;14003:12;13983:7;:15;13991:6;13983:15;;;;;;;;;;;;;;;;:19;;:33;;;;:::i;:::-;13965:7;:15;13973:6;13965:15;;;;;;;;;;;;;;;:51;;;;14048:38;14071:14;14048:7;:18;14056:9;14048:18;;;;;;;;;;;;;;;;:22;;:38;;;;:::i;:::-;14027:7;:18;14035:9;14027:18;;;;;;;;;;;;;;;:59;;;;14123:37;14150:9;14123:7;:22;14139:4;14123:22;;;;;;;;;;;;;;;;:26;;:37;;;;:::i;:::-;14098:7;:22;14114:4;14098:22;;;;;;;;;;;;;;;:62;;;;14171:23;14176:6;14183:10;14171:4;:23::i;:::-;14227:9;14210:43;;14219:6;14210:43;;;14238:14;14210:43;;;;;;:::i;:::-;;;;;;;;13838:423;;;;13751:510;;;:::o;14710:444::-;14770:7;14779;14788;14797;14817:12;14832:27;14854:4;14832:17;14844:4;;14832:7;:11;;:17;;;;:::i;:::-;:21;;:27;;;;:::i;:::-;14817:42;;14870:23;14896:17;14908:4;14896:7;:11;;:17;;;;:::i;:::-;14870:43;;14924:13;14940:37;14972:4;14940:27;14952:14;;14940:7;:11;;:27;;;;:::i;:::-;:31;;:37;;;;:::i;:::-;14924:53;;14988:18;15009:15;15018:5;15009:4;:8;;:15;;;;:::i;:::-;14988:36;;15035:21;15059:18;15071:5;15059:7;:11;;:18;;;;:::i;:::-;15035:42;;15096:15;15113:5;15120:10;15132:13;15088:58;;;;;;;;;;;;;14710:444;;;;;:::o;1126:136::-;1184:7;1211:43;1215:1;1218;1211:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1204:50;;1126:136;;;;:::o;7999:234::-;8083:28;8104:6;8083:7;:16;8091:7;8083:16;;;;;;;;;;;;;;;;:20;;:28;;;;:::i;:::-;8064:7;:16;8072:7;8064:16;;;;;;;;;;;;;;;:47;;;;8133:6;8122:7;;:17;;;;;;;:::i;:::-;;;;;;;;8166:6;8150:12;;:22;;;;;;;:::i;:::-;;;;;;;;8214:1;8188:37;;8197:7;8188:37;;;8218:6;8188:37;;;;;;:::i;:::-;;;;;;;;7999:234;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:329::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:474::-;5591:6;5599;5648:2;5636:9;5627:7;5623:23;5619:32;5616:119;;;5654:79;;:::i;:::-;5616:119;5774:1;5799:53;5844:7;5835:6;5824:9;5820:22;5799:53;:::i;:::-;5789:63;;5745:117;5901:2;5927:53;5972:7;5963:6;5952:9;5948:22;5927:53;:::i;:::-;5917:63;;5872:118;5523:474;;;;;:::o;6003:118::-;6090:24;6108:5;6090:24;:::i;:::-;6085:3;6078:37;6003:118;;:::o;6127:222::-;6220:4;6258:2;6247:9;6243:18;6235:26;;6271:71;6339:1;6328:9;6324:17;6315:6;6271:71;:::i;:::-;6127:222;;;;:::o;6355:619::-;6432:6;6440;6448;6497:2;6485:9;6476:7;6472:23;6468:32;6465:119;;;6503:79;;:::i;:::-;6465:119;6623:1;6648:53;6693:7;6684:6;6673:9;6669:22;6648:53;:::i;:::-;6638:63;;6594:117;6750:2;6776:53;6821:7;6812:6;6801:9;6797:22;6776:53;:::i;:::-;6766:63;;6721:118;6878:2;6904:53;6949:7;6940:6;6929:9;6925:22;6904:53;:::i;:::-;6894:63;;6849:118;6355:619;;;;;:::o;6980:117::-;7089:1;7086;7079:12;7103:180;7151:77;7148:1;7141:88;7248:4;7245:1;7238:15;7272:4;7269:1;7262:15;7289:281;7372:27;7394:4;7372:27;:::i;:::-;7364:6;7360:40;7502:6;7490:10;7487:22;7466:18;7454:10;7451:34;7448:62;7445:88;;;7513:18;;:::i;:::-;7445:88;7553:10;7549:2;7542:22;7332:238;7289:281;;:::o;7576:129::-;7610:6;7637:20;;:::i;:::-;7627:30;;7666:33;7694:4;7686:6;7666:33;:::i;:::-;7576:129;;;:::o;7711:311::-;7788:4;7878:18;7870:6;7867:30;7864:56;;;7900:18;;:::i;:::-;7864:56;7950:4;7942:6;7938:17;7930:25;;8010:4;8004;8000:15;7992:23;;7711:311;;;:::o;8028:117::-;8137:1;8134;8127:12;8168:710;8264:5;8289:81;8305:64;8362:6;8305:64;:::i;:::-;8289:81;:::i;:::-;8280:90;;8390:5;8419:6;8412:5;8405:21;8453:4;8446:5;8442:16;8435:23;;8506:4;8498:6;8494:17;8486:6;8482:30;8535:3;8527:6;8524:15;8521:122;;;8554:79;;:::i;:::-;8521:122;8669:6;8652:220;8686:6;8681:3;8678:15;8652:220;;;8761:3;8790:37;8823:3;8811:10;8790:37;:::i;:::-;8785:3;8778:50;8857:4;8852:3;8848:14;8841:21;;8728:144;8712:4;8707:3;8703:14;8696:21;;8652:220;;;8656:21;8270:608;;8168:710;;;;;:::o;8901:370::-;8972:5;9021:3;9014:4;9006:6;9002:17;8998:27;8988:122;;9029:79;;:::i;:::-;8988:122;9146:6;9133:20;9171:94;9261:3;9253:6;9246:4;9238:6;9234:17;9171:94;:::i;:::-;9162:103;;8978:293;8901:370;;;;:::o;9277:539::-;9361:6;9410:2;9398:9;9389:7;9385:23;9381:32;9378:119;;;9416:79;;:::i;:::-;9378:119;9564:1;9553:9;9549:17;9536:31;9594:18;9586:6;9583:30;9580:117;;;9616:79;;:::i;:::-;9580:117;9721:78;9791:7;9782:6;9771:9;9767:22;9721:78;:::i;:::-;9711:88;;9507:302;9277:539;;;;:::o;9822:474::-;9890:6;9898;9947:2;9935:9;9926:7;9922:23;9918:32;9915:119;;;9953:79;;:::i;:::-;9915:119;10073:1;10098:53;10143:7;10134:6;10123:9;10119:22;10098:53;:::i;:::-;10088:63;;10044:117;10200:2;10226:53;10271:7;10262:6;10251:9;10247:22;10226:53;:::i;:::-;10216:63;;10171:118;9822:474;;;;;:::o;10302:143::-;10359:5;10390:6;10384:13;10375:22;;10406:33;10433:5;10406:33;:::i;:::-;10302:143;;;;:::o;10451:351::-;10521:6;10570:2;10558:9;10549:7;10545:23;10541:32;10538:119;;;10576:79;;:::i;:::-;10538:119;10696:1;10721:64;10777:7;10768:6;10757:9;10753:22;10721:64;:::i;:::-;10711:74;;10667:128;10451:351;;;;:::o;10808:60::-;10836:3;10857:5;10850:12;;10808:60;;;:::o;10874:142::-;10924:9;10957:53;10975:34;10984:24;11002:5;10984:24;:::i;:::-;10975:34;:::i;:::-;10957:53;:::i;:::-;10944:66;;10874:142;;;:::o;11022:126::-;11072:9;11105:37;11136:5;11105:37;:::i;:::-;11092:50;;11022:126;;;:::o;11154:134::-;11212:9;11245:37;11276:5;11245:37;:::i;:::-;11232:50;;11154:134;;;:::o;11294:147::-;11389:45;11428:5;11389:45;:::i;:::-;11384:3;11377:58;11294:147;;:::o;11447:348::-;11576:4;11614:2;11603:9;11599:18;11591:26;;11627:79;11703:1;11692:9;11688:17;11679:6;11627:79;:::i;:::-;11716:72;11784:2;11773:9;11769:18;11760:6;11716:72;:::i;:::-;11447:348;;;;;:::o;11801:116::-;11871:21;11886:5;11871:21;:::i;:::-;11864:5;11861:32;11851:60;;11907:1;11904;11897:12;11851:60;11801:116;:::o;11923:137::-;11977:5;12008:6;12002:13;11993:22;;12024:30;12048:5;12024:30;:::i;:::-;11923:137;;;;:::o;12066:345::-;12133:6;12182:2;12170:9;12161:7;12157:23;12153:32;12150:119;;;12188:79;;:::i;:::-;12150:119;12308:1;12333:61;12386:7;12377:6;12366:9;12362:22;12333:61;:::i;:::-;12323:71;;12279:125;12066:345;;;;:::o;12417:182::-;12557:34;12553:1;12545:6;12541:14;12534:58;12417:182;:::o;12605:366::-;12747:3;12768:67;12832:2;12827:3;12768:67;:::i;:::-;12761:74;;12844:93;12933:3;12844:93;:::i;:::-;12962:2;12957:3;12953:12;12946:19;;12605:366;;;:::o;12977:419::-;13143:4;13181:2;13170:9;13166:18;13158:26;;13230:9;13224:4;13220:20;13216:1;13205:9;13201:17;13194:47;13258:131;13384:4;13258:131;:::i;:::-;13250:139;;12977:419;;;:::o;13402:180::-;13450:77;13447:1;13440:88;13547:4;13544:1;13537:15;13571:4;13568:1;13561:15;13588:191;13628:3;13647:20;13665:1;13647:20;:::i;:::-;13642:25;;13681:20;13699:1;13681:20;:::i;:::-;13676:25;;13724:1;13721;13717:9;13710:16;;13745:3;13742:1;13739:10;13736:36;;;13752:18;;:::i;:::-;13736:36;13588:191;;;;:::o;13785:229::-;13925:34;13921:1;13913:6;13909:14;13902:58;13994:12;13989:2;13981:6;13977:15;13970:37;13785:229;:::o;14020:366::-;14162:3;14183:67;14247:2;14242:3;14183:67;:::i;:::-;14176:74;;14259:93;14348:3;14259:93;:::i;:::-;14377:2;14372:3;14368:12;14361:19;;14020:366;;;:::o;14392:419::-;14558:4;14596:2;14585:9;14581:18;14573:26;;14645:9;14639:4;14635:20;14631:1;14620:9;14616:17;14609:47;14673:131;14799:4;14673:131;:::i;:::-;14665:139;;14392:419;;;:::o;14817:180::-;14957:32;14953:1;14945:6;14941:14;14934:56;14817:180;:::o;15003:366::-;15145:3;15166:67;15230:2;15225:3;15166:67;:::i;:::-;15159:74;;15242:93;15331:3;15242:93;:::i;:::-;15360:2;15355:3;15351:12;15344:19;;15003:366;;;:::o;15375:419::-;15541:4;15579:2;15568:9;15564:18;15556:26;;15628:9;15622:4;15618:20;15614:1;15603:9;15599:17;15592:47;15656:131;15782:4;15656:131;:::i;:::-;15648:139;;15375:419;;;:::o;15800:180::-;15848:77;15845:1;15838:88;15945:4;15942:1;15935:15;15969:4;15966:1;15959:15;15986:233;16025:3;16048:24;16066:5;16048:24;:::i;:::-;16039:33;;16094:66;16087:5;16084:77;16081:103;;16164:18;;:::i;:::-;16081:103;16211:1;16204:5;16200:13;16193:20;;15986:233;;;:::o;16225:173::-;16365:25;16361:1;16353:6;16349:14;16342:49;16225:173;:::o;16404:366::-;16546:3;16567:67;16631:2;16626:3;16567:67;:::i;:::-;16560:74;;16643:93;16732:3;16643:93;:::i;:::-;16761:2;16756:3;16752:12;16745:19;;16404:366;;;:::o;16776:419::-;16942:4;16980:2;16969:9;16965:18;16957:26;;17029:9;17023:4;17019:20;17015:1;17004:9;17000:17;16993:47;17057:131;17183:4;17057:131;:::i;:::-;17049:139;;16776:419;;;:::o;17201:410::-;17241:7;17264:20;17282:1;17264:20;:::i;:::-;17259:25;;17298:20;17316:1;17298:20;:::i;:::-;17293:25;;17353:1;17350;17346:9;17375:30;17393:11;17375:30;:::i;:::-;17364:41;;17554:1;17545:7;17541:15;17538:1;17535:22;17515:1;17508:9;17488:83;17465:139;;17584:18;;:::i;:::-;17465:139;17249:362;17201:410;;;;:::o;17617:180::-;17665:77;17662:1;17655:88;17762:4;17759:1;17752:15;17786:4;17783:1;17776:15;17803:185;17843:1;17860:20;17878:1;17860:20;:::i;:::-;17855:25;;17894:20;17912:1;17894:20;:::i;:::-;17889:25;;17933:1;17923:35;;17938:18;;:::i;:::-;17923:35;17980:1;17977;17973:9;17968:14;;17803:185;;;;:::o;17994:220::-;18134:34;18130:1;18122:6;18118:14;18111:58;18203:3;18198:2;18190:6;18186:15;18179:28;17994:220;:::o;18220:366::-;18362:3;18383:67;18447:2;18442:3;18383:67;:::i;:::-;18376:74;;18459:93;18548:3;18459:93;:::i;:::-;18577:2;18572:3;18568:12;18561:19;;18220:366;;;:::o;18592:419::-;18758:4;18796:2;18785:9;18781:18;18773:26;;18845:9;18839:4;18835:20;18831:1;18820:9;18816:17;18809:47;18873:131;18999:4;18873:131;:::i;:::-;18865:139;;18592:419;;;:::o;19017:223::-;19157:34;19153:1;19145:6;19141:14;19134:58;19226:6;19221:2;19213:6;19209:15;19202:31;19017:223;:::o;19246:366::-;19388:3;19409:67;19473:2;19468:3;19409:67;:::i;:::-;19402:74;;19485:93;19574:3;19485:93;:::i;:::-;19603:2;19598:3;19594:12;19587:19;;19246:366;;;:::o;19618:419::-;19784:4;19822:2;19811:9;19807:18;19799:26;;19871:9;19865:4;19861:20;19857:1;19846:9;19842:17;19835:47;19899:131;20025:4;19899:131;:::i;:::-;19891:139;;19618:419;;;:::o;20043:221::-;20183:34;20179:1;20171:6;20167:14;20160:58;20252:4;20247:2;20239:6;20235:15;20228:29;20043:221;:::o;20270:366::-;20412:3;20433:67;20497:2;20492:3;20433:67;:::i;:::-;20426:74;;20509:93;20598:3;20509:93;:::i;:::-;20627:2;20622:3;20618:12;20611:19;;20270:366;;;:::o;20642:419::-;20808:4;20846:2;20835:9;20831:18;20823:26;;20895:9;20889:4;20885:20;20881:1;20870:9;20866:17;20859:47;20923:131;21049:4;20923:131;:::i;:::-;20915:139;;20642:419;;;:::o;21067:224::-;21207:34;21203:1;21195:6;21191:14;21184:58;21276:7;21271:2;21263:6;21259:15;21252:32;21067:224;:::o;21297:366::-;21439:3;21460:67;21524:2;21519:3;21460:67;:::i;:::-;21453:74;;21536:93;21625:3;21536:93;:::i;:::-;21654:2;21649:3;21645:12;21638:19;;21297:366;;;:::o;21669:419::-;21835:4;21873:2;21862:9;21858:18;21850:26;;21922:9;21916:4;21912:20;21908:1;21897:9;21893:17;21886:47;21950:131;22076:4;21950:131;:::i;:::-;21942:139;;21669:419;;;:::o;22094:222::-;22234:34;22230:1;22222:6;22218:14;22211:58;22303:5;22298:2;22290:6;22286:15;22279:30;22094:222;:::o;22322:366::-;22464:3;22485:67;22549:2;22544:3;22485:67;:::i;:::-;22478:74;;22561:93;22650:3;22561:93;:::i;:::-;22679:2;22674:3;22670:12;22663:19;;22322:366;;;:::o;22694:419::-;22860:4;22898:2;22887:9;22883:18;22875:26;;22947:9;22941:4;22937:20;22933:1;22922:9;22918:17;22911:47;22975:131;23101:4;22975:131;:::i;:::-;22967:139;;22694:419;;;:::o;23119:228::-;23259:34;23255:1;23247:6;23243:14;23236:58;23328:11;23323:2;23315:6;23311:15;23304:36;23119:228;:::o;23353:366::-;23495:3;23516:67;23580:2;23575:3;23516:67;:::i;:::-;23509:74;;23592:93;23681:3;23592:93;:::i;:::-;23710:2;23705:3;23701:12;23694:19;;23353:366;;;:::o;23725:419::-;23891:4;23929:2;23918:9;23914:18;23906:26;;23978:9;23972:4;23968:20;23964:1;23953:9;23949:17;23942:47;24006:131;24132:4;24006:131;:::i;:::-;23998:139;;23725:419;;;:::o;24150:173::-;24290:25;24286:1;24278:6;24274:14;24267:49;24150:173;:::o;24329:366::-;24471:3;24492:67;24556:2;24551:3;24492:67;:::i;:::-;24485:74;;24568:93;24657:3;24568:93;:::i;:::-;24686:2;24681:3;24677:12;24670:19;;24329:366;;;:::o;24701:419::-;24867:4;24905:2;24894:9;24890:18;24882:26;;24954:9;24948:4;24944:20;24940:1;24929:9;24925:17;24918:47;24982:131;25108:4;24982:131;:::i;:::-;24974:139;;24701:419;;;:::o;25126:227::-;25266:34;25262:1;25254:6;25250:14;25243:58;25335:10;25330:2;25322:6;25318:15;25311:35;25126:227;:::o;25359:366::-;25501:3;25522:67;25586:2;25581:3;25522:67;:::i;:::-;25515:74;;25598:93;25687:3;25598:93;:::i;:::-;25716:2;25711:3;25707:12;25700:19;;25359:366;;;:::o;25731:419::-;25897:4;25935:2;25924:9;25920:18;25912:26;;25984:9;25978:4;25974:20;25970:1;25959:9;25955:17;25948:47;26012:131;26138:4;26012:131;:::i;:::-;26004:139;;25731:419;;;:::o;26156:194::-;26196:4;26216:20;26234:1;26216:20;:::i;:::-;26211:25;;26250:20;26268:1;26250:20;:::i;:::-;26245:25;;26294:1;26291;26287:9;26279:17;;26318:1;26312:4;26309:11;26306:37;;;26323:18;;:::i;:::-;26306:37;26156:194;;;;:::o;26356:143::-;26413:5;26444:6;26438:13;26429:22;;26460:33;26487:5;26460:33;:::i;:::-;26356:143;;;;:::o;26505:351::-;26575:6;26624:2;26612:9;26603:7;26599:23;26595:32;26592:119;;;26630:79;;:::i;:::-;26592:119;26750:1;26775:64;26831:7;26822:6;26811:9;26807:22;26775:64;:::i;:::-;26765:74;;26721:128;26505:351;;;;:::o;26862:85::-;26907:7;26936:5;26925:16;;26862:85;;;:::o;26953:158::-;27011:9;27044:61;27062:42;27071:32;27097:5;27071:32;:::i;:::-;27062:42;:::i;:::-;27044:61;:::i;:::-;27031:74;;26953:158;;;:::o;27117:147::-;27212:45;27251:5;27212:45;:::i;:::-;27207:3;27200:58;27117:147;;:::o;27270:114::-;27337:6;27371:5;27365:12;27355:22;;27270:114;;;:::o;27390:184::-;27489:11;27523:6;27518:3;27511:19;27563:4;27558:3;27554:14;27539:29;;27390:184;;;;:::o;27580:132::-;27647:4;27670:3;27662:11;;27700:4;27695:3;27691:14;27683:22;;27580:132;;;:::o;27718:108::-;27795:24;27813:5;27795:24;:::i;:::-;27790:3;27783:37;27718:108;;:::o;27832:179::-;27901:10;27922:46;27964:3;27956:6;27922:46;:::i;:::-;28000:4;27995:3;27991:14;27977:28;;27832:179;;;;:::o;28017:113::-;28087:4;28119;28114:3;28110:14;28102:22;;28017:113;;;:::o;28166:732::-;28285:3;28314:54;28362:5;28314:54;:::i;:::-;28384:86;28463:6;28458:3;28384:86;:::i;:::-;28377:93;;28494:56;28544:5;28494:56;:::i;:::-;28573:7;28604:1;28589:284;28614:6;28611:1;28608:13;28589:284;;;28690:6;28684:13;28717:63;28776:3;28761:13;28717:63;:::i;:::-;28710:70;;28803:60;28856:6;28803:60;:::i;:::-;28793:70;;28649:224;28636:1;28633;28629:9;28624:14;;28589:284;;;28593:14;28889:3;28882:10;;28290:608;;;28166:732;;;;:::o;28904:831::-;29167:4;29205:3;29194:9;29190:19;29182:27;;29219:71;29287:1;29276:9;29272:17;29263:6;29219:71;:::i;:::-;29300:80;29376:2;29365:9;29361:18;29352:6;29300:80;:::i;:::-;29427:9;29421:4;29417:20;29412:2;29401:9;29397:18;29390:48;29455:108;29558:4;29549:6;29455:108;:::i;:::-;29447:116;;29573:72;29641:2;29630:9;29626:18;29617:6;29573:72;:::i;:::-;29655:73;29723:3;29712:9;29708:19;29699:6;29655:73;:::i;:::-;28904:831;;;;;;;;:::o;29741:807::-;29990:4;30028:3;30017:9;30013:19;30005:27;;30042:71;30110:1;30099:9;30095:17;30086:6;30042:71;:::i;:::-;30123:72;30191:2;30180:9;30176:18;30167:6;30123:72;:::i;:::-;30205:80;30281:2;30270:9;30266:18;30257:6;30205:80;:::i;:::-;30295;30371:2;30360:9;30356:18;30347:6;30295:80;:::i;:::-;30385:73;30453:3;30442:9;30438:19;30429:6;30385:73;:::i;:::-;30468;30536:3;30525:9;30521:19;30512:6;30468:73;:::i;:::-;29741:807;;;;;;;;;:::o;30554:663::-;30642:6;30650;30658;30707:2;30695:9;30686:7;30682:23;30678:32;30675:119;;;30713:79;;:::i;:::-;30675:119;30833:1;30858:64;30914:7;30905:6;30894:9;30890:22;30858:64;:::i;:::-;30848:74;;30804:128;30971:2;30997:64;31053:7;31044:6;31033:9;31029:22;30997:64;:::i;:::-;30987:74;;30942:129;31110:2;31136:64;31192:7;31183:6;31172:9;31168:22;31136:64;:::i;:::-;31126:74;;31081:129;30554:663;;;;;:::o;31223:177::-;31363:29;31359:1;31351:6;31347:14;31340:53;31223:177;:::o;31406:366::-;31548:3;31569:67;31633:2;31628:3;31569:67;:::i;:::-;31562:74;;31645:93;31734:3;31645:93;:::i;:::-;31763:2;31758:3;31754:12;31747:19;;31406:366;;;:::o;31778:419::-;31944:4;31982:2;31971:9;31967:18;31959:26;;32031:9;32025:4;32021:20;32017:1;32006:9;32002:17;31995:47;32059:131;32185:4;32059:131;:::i;:::-;32051:139;;31778:419;;;:::o;32203:720::-;32438:4;32476:3;32465:9;32461:19;32453:27;;32490:79;32566:1;32555:9;32551:17;32542:6;32490:79;:::i;:::-;32616:9;32610:4;32606:20;32601:2;32590:9;32586:18;32579:48;32644:108;32747:4;32738:6;32644:108;:::i;:::-;32636:116;;32762:72;32830:2;32819:9;32815:18;32806:6;32762:72;:::i;:::-;32844;32912:2;32901:9;32897:18;32888:6;32844:72;:::i;:::-;32203:720;;;;;;;:::o

Swarm Source

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