CRO Price: $0.08 (+1.95%)

Token

Crodoge (CRODOGE)

Overview

Max Total Supply

1,000,000,000 CRODOGE

Holders

1,004

Market

Price

$0.00 @ 0.000000 CRO

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 4 Decimals)

Balance
576,371,908.8417 CRODOGE

Value
$0.00
0x61333d6999408c3ea2baa9c61814816d2d8933bf
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
CRO20

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at cronoscan.com on 2022-02-01
*/

/**
 ██████╗██████╗  ██████╗ ██████╗  ██████╗  ██████╗ ███████╗
██╔════╝██╔══██╗██╔═══██╗██╔══██╗██╔═══██╗██╔════╝ ██╔════╝
██║     ██████╔╝██║   ██║██║  ██║██║   ██║██║  ███╗█████╗  
██║     ██╔══██╗██║   ██║██║  ██║██║   ██║██║   ██║██╔══╝  
╚██████╗██║  ██║╚██████╔╝██████╔╝╚██████╔╝╚██████╔╝███████╗
 ╚═════╝╚═╝  ╚═╝ ╚═════╝ ╚═════╝  ╚═════╝  ╚═════╝ ╚══════╝
 
 The one and only MEME token on the Cronos network
 
 https://twitter.com/CronosDoge
 https://discord.gg/HCDQSsN6
 https://www.crodoge.org/
                                                          
*/                                                              

pragma solidity ^0.7.4;
//SPDX-License-Identifier: MIT

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

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

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

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

        return c;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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);
}

abstract contract Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

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

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

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        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 swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract CRO20 is IERC20, Auth {
    using SafeMath for uint256;

    address WCRO = 0x5C7F8A570d578ED84E63fdFA7b1eE72dEae1AE23; 
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string constant _name = "Crodoge";
    string constant _symbol = "CRODOGE";
    uint8 constant _decimals = 4;

    uint256 _totalSupply = 1 * 10**9 * (10 ** _decimals);

    uint256 public _maxWalletToken = ( _totalSupply * 1 ) / 100; 

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => bool) isFeeExempt;

    uint256 liquidityFee    = 5;
    uint256 marketingFee    = 4;
    uint256 public totalFee = 9;
    uint256 feeDenominator  = 100;

    address public autoLiquidityReceiver;
    address public devDeployReceiver;
    address public marketingFeeReceiver;

    uint256 targetLiquidity = 30;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    address public pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 1 / 10000; // 0.01% of supply
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0xeC0A7a0C2439E8Cb67b992b12ecd020Ea943c7Be); //Crodex router
        pair = IDEXFactory(router.factory()).createPair(WCRO, address(this));
        _allowances[address(this)][address(router)] = uint256(-1);

        isFeeExempt[msg.sender] = true;
        isFeeExempt[marketingFeeReceiver] = true;

        autoLiquidityReceiver = DEAD;
  
        devDeployReceiver = 0x5994C0554E5923854146D7955815c4BA4B34851E;
        marketingFeeReceiver = 0xb6F1e1126e7f455923A4c50Bd4fe29B6ADdf3ffC;

        uint deployerSupply = _totalSupply.div(100).mul(98); 
        uint marketingFeeOnDeploy = _totalSupply.div(50);

        _balances[msg.sender] = deployerSupply;
        emit Transfer(address(0), msg.sender, deployerSupply);

        _balances[marketingFeeReceiver] = marketingFeeOnDeploy;
        emit Transfer(address(0), marketingFeeReceiver, marketingFeeOnDeploy);

    }
    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, uint256(-1));
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != uint256(-1)){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

     function setMaxWalletPercent(uint256 maxWallPercent) external onlyOwner() {
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 100;
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if (!authorizations[sender] 
            && recipient != address(this)  
            && recipient != address(DEAD) 
            && recipient != pair 
            && recipient != marketingFeeReceiver 
            && recipient != autoLiquidityReceiver  
            && recipient != devDeployReceiver){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");}

        if(shouldSwapBack()){ swapBack(); }

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

        uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);

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

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

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(totalFee).div(feeDenominator);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function recover(uint256 amountPercentage) external onlyOwner {
        uint256 amountCRO = address(this).balance;
        payable(marketingFeeReceiver).transfer(amountCRO * amountPercentage / 100);
    }

    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = balanceOf(address(this)).mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = balanceOf(address(this)).sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WCRO;

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountCRO = address(this).balance.sub(balanceBefore);

        uint256 totalCROFee = totalFee.sub(dynamicLiquidityFee.div(2));

        uint256 amountCROLiquidity = amountCRO.mul(dynamicLiquidityFee).div(totalCROFee).div(2);
        uint256 amountCROMarketing = amountCRO.mul(marketingFee).div(totalCROFee);

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountCROMarketing, gas: 30000}("");

        tmpSuccess = false;

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountCROLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountCROLiquidity, amountToLiquify);
        }
    }

    function setIsFeeExempt(address holder, bool exempt) external authorized {
        isFeeExempt[holder] = exempt;
    }

    function setFees(uint256 _liquidityFee, uint256 _marketingFee, uint256 _feeDenominator) external authorized {
        liquidityFee = _liquidityFee;
        marketingFee = _marketingFee;
        totalFee = _liquidityFee.add(_marketingFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator / 4);
    }

    function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver) external authorized {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external authorized {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function setTargetLiquidity(uint256 _target, uint256 _denominator) external authorized {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
    }

    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }

    event AutoLiquify(uint256 amountCRO, uint256 amountTo);

}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountCRO","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTo","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devDeployReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"recover","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWalletPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052735c7f8a570d578ed84e63fdfa7b1ee72deae1ae23600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460ff16600a0a633b9aca0002600555606460016005540281620000ff57fe5b046006556005600a556004600b556009600c556064600d55601e601155606460125560016014806101000a81548160ff021916908315150217905550612710600160055402816200014c57fe5b046015553480156200015d57600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505073ec0a7a0c2439e8cb67b992b12ecd020ea943c7be601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002b557600080fd5b505afa158015620002ca573d6000803e3d6000fd5b505050506040513d6020811015620002e157600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c65396600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156200039b57600080fd5b505af1158015620003b0573d6000803e3d6000fd5b505050506040513d6020811015620003c757600080fd5b8101908080519060200190929190505050601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550735994c0554e5923854146d7955815c4ba4b34851e600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b6f1e1126e7f455923a4c50bd4fe29b6addf3ffc601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000620006f36062620006df6064600554620008b660201b62001cf71790919060201c565b6200090860201b62001d411790919060201c565b90506000620007146032600554620008b660201b62001cf71790919060201c565b905081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a38060076000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505062000a5e565b60006200090083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200099360201b60201c565b905092915050565b6000808314156200091d57600090506200098d565b60008284029050828482816200092f57fe5b041462000988576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180620039e86021913960400191505060405180910390fd5b809150505b92915050565b6000808311829062000a43576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101562000a07578082015181840152602081019050620009ea565b50505050905090810190601f16801562000a355780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858162000a5057fe5b049050809150509392505050565b612f7a8062000a6e6000396000f3fe6080604052600436106102085760003560e01c806382bf293c11610118578063d51ed1c8116100a0578063e96fada21161006f578063e96fada214610baf578063f0b37c0414610bf0578063f2fde38b14610c41578063f887ea4014610c92578063fe9fbb8014610cd35761020f565b8063d51ed1c814610a53578063d92420ee14610aa2578063dd62ed3e14610ae3578063df20fd4914610b685761020f565b8063a8aa1b31116100e7578063a8aa1b31146108c0578063a9059cbb14610901578063b6a5d7de14610972578063ca33e64c146109c3578063cec10c1114610a045761020f565b806382bf293c14610743578063893d20e81461077e57806395d89b41146107bf578063a4b45c001461084f5761020f565b806323b872dd1161019b578063571ac8b01161016a578063571ac8b0146105c2578063658d4b7f146106295780636ddd17131461068657806370a08231146106b357806378109e54146107185761020f565b806323b872dd146104715780632b112e49146105025780632f54bf6e1461052d578063313ce567146105945761020f565b80631161ae39116101d75780631161ae391461037b57806318160ddd146103d65780631df4ccfc14610401578063201e79911461042c5761020f565b80630445b6671461021457806306fdde031461023f578063095ea7b3146102cf5780630ca35682146103405761020f565b3661020f57005b600080fd5b34801561022057600080fd5b50610229610d3a565b6040518082815260200191505060405180910390f35b34801561024b57600080fd5b50610254610d40565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610294578082015181840152602081019050610279565b50505050905090810190601f1680156102c15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102db57600080fd5b50610328600480360360408110156102f257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d7d565b60405180821515815260200191505060405180910390f35b34801561034c57600080fd5b506103796004803603602081101561036357600080fd5b8101908080359060200190929190505050610e6f565b005b34801561038757600080fd5b506103be6004803603604081101561039e57600080fd5b810190808035906020019092919080359060200190929190505050610f68565b60405180821515815260200191505060405180910390f35b3480156103e257600080fd5b506103eb610f7d565b6040518082815260200191505060405180910390f35b34801561040d57600080fd5b50610416610f87565b6040518082815260200191505060405180910390f35b34801561043857600080fd5b5061046f6004803603604081101561044f57600080fd5b810190808035906020019092919080359060200190929190505050610f8d565b005b34801561047d57600080fd5b506104ea6004803603606081101561049457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061101a565b60405180821515815260200191505060405180910390f35b34801561050e57600080fd5b5061051761121a565b6040518082815260200191505060405180910390f35b34801561053957600080fd5b5061057c6004803603602081101561055057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061129c565b60405180821515815260200191505060405180910390f35b3480156105a057600080fd5b506105a96112f5565b604051808260ff16815260200191505060405180910390f35b3480156105ce57600080fd5b50610611600480360360208110156105e557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112fe565b60405180821515815260200191505060405180910390f35b34801561063557600080fd5b506106846004803603604081101561064c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611331565b005b34801561069257600080fd5b5061069b611407565b60405180821515815260200191505060405180910390f35b3480156106bf57600080fd5b50610702600480360360208110156106d657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611418565b6040518082815260200191505060405180910390f35b34801561072457600080fd5b5061072d611461565b6040518082815260200191505060405180910390f35b34801561074f57600080fd5b5061077c6004803603602081101561076657600080fd5b8101908080359060200190929190505050611467565b005b34801561078a57600080fd5b506107936114fa565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107cb57600080fd5b506107d4611523565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108145780820151818401526020810190506107f9565b50505050905090810190601f1680156108415780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561085b57600080fd5b506108be6004803603604081101561087257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611560565b005b3480156108cc57600080fd5b506108d5611661565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561090d57600080fd5b5061095a6004803603604081101561092457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611687565b60405180821515815260200191505060405180910390f35b34801561097e57600080fd5b506109c16004803603602081101561099557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061169c565b005b3480156109cf57600080fd5b506109d8611771565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a1057600080fd5b50610a5160048036036060811015610a2757600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050611797565b005b348015610a5f57600080fd5b50610a8c60048036036020811015610a7657600080fd5b810190808035906020019092919050505061185f565b6040518082815260200191505060405180910390f35b348015610aae57600080fd5b50610ab76118d1565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610aef57600080fd5b50610b5260048036036040811015610b0657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118f7565b6040518082815260200191505060405180910390f35b348015610b7457600080fd5b50610bad60048036036040811015610b8b57600080fd5b810190808035151590602001909291908035906020019092919050505061197e565b005b348015610bbb57600080fd5b50610bc4611a1d565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610bfc57600080fd5b50610c3f60048036036020811015610c1357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a43565b005b348015610c4d57600080fd5b50610c9060048036036020811015610c6457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b19565b005b348015610c9e57600080fd5b50610ca7611c7b565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610cdf57600080fd5b50610d2260048036036020811015610cf657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ca1565b60405180821515815260200191505060405180910390f35b60155481565b60606040518060400160405280600781526020017f43726f646f676500000000000000000000000000000000000000000000000000815250905090565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b610e783361129c565b610eea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000479050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc606484840281610f3757fe5b049081150290604051600060405180830381858888f19350505050158015610f63573d6000803e3d6000fd5b505050565b600082610f748361185f565b11905092915050565b6000600554905090565b600c5481565b610f9633611ca1565b611008576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b81601181905550806012819055505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461120657611185826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dc79092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611211848484611e87565b90509392505050565b600061129761124a600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611418565b611289611278600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611418565b60055461237490919063ffffffff16565b61237490919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006004905090565b600061132a827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610d7d565b9050919050565b61133a33611ca1565b6113ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60148054906101000a900460ff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b6114703361129c565b6114e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60648160055402816114f057fe5b0460068190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f43524f444f474500000000000000000000000000000000000000000000000000815250905090565b61156933611ca1565b6115db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b81600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611694338484611e87565b905092915050565b6116a53361129c565b611717576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117a033611ca1565b611812576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b82600a8190555081600b8190555061183382846123be90919063ffffffff16565b600c8190555080600d819055506004600d548161184c57fe5b04600c541061185a57600080fd5b505050565b60006118ca61186c61121a565b6118bc6118ad600261189f601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611418565b611d4190919063ffffffff16565b85611d4190919063ffffffff16565b611cf790919063ffffffff16565b9050919050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61198733611ca1565b6119f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b816014806101000a81548160ff021916908315150217905550806015819055505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611a4c3361129c565b611abe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611b223361129c565b611b94576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000611d3983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612446565b905092915050565b600080831415611d545760009050611dc1565b6000828402905082848281611d6557fe5b0414611dbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612ee66021913960400191505060405180910390fd5b809150505b92915050565b6000838311158290611e74576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e39578082015181840152602081019050611e1e565b50505050905090810190601f168015611e665780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000601660009054906101000a900460ff1615611eb057611ea984848461250c565b905061236d565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f3657503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f905750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611fea5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120445750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561209e5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120f85750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561216957600061210884611418565b90506006548382011115612167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e815260200180612f07603e913960400191505060405180910390fd5b505b6121716126df565b1561217f5761217e6127b4565b5b612208826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dc79092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061225685612d4a565b612260578261226b565b61226a8584612da1565b5b90506122bf81600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123be90919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019150505b9392505050565b60006123b683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611dc7565b905092915050565b60008082840190508381101561243c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600080831182906124f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156124b757808201518184015260208101905061249c565b50505050905090810190601f1680156124e45780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816124fe57fe5b049050809150509392505050565b6000612597826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dc79092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061262c82600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123be90919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561274c5750601660009054906101000a900460ff16155b8015612762575060148054906101000a900460ff165b80156127af5750601554600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601660006101000a81548160ff02191690831515021790555060006127df601154601254610f68565b6127eb57600a546127ee565b60005b905060006128346002612826600c546128188661280a30611418565b611d4190919063ffffffff16565b611cf790919063ffffffff16565b611cf790919063ffffffff16565b905060006128538261284530611418565b61237490919063ffffffff16565b90506000600267ffffffffffffffff8111801561286f57600080fd5b5060405190808252806020026020018201604052801561289e5781602001602082028036833780820191505090505b50905030816000815181106128af57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061291957fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015612a1c578082015181840152602081019050612a01565b505050509050019650505050505050600060405180830381600087803b158015612a4557600080fd5b505af1158015612a59573d6000803e3d6000fd5b505050506000612a72824761237490919063ffffffff16565b90506000612a9e612a8d600289611cf790919063ffffffff16565b600c5461237490919063ffffffff16565b90506000612ada6002612acc84612abe8c88611d4190919063ffffffff16565b611cf790919063ffffffff16565b611cf790919063ffffffff16565b90506000612b0583612af7600b5487611d4190919063ffffffff16565b611cf790919063ffffffff16565b90506000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051806000019050600060405180830381858888f193505050503d8060008114612b8e576040519150601f19603f3d011682016040523d82523d6000602084013e612b93565b606091505b50509050600090506000891115612d2357601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b158015612c9057600080fd5b505af1158015612ca4573d6000803e3d6000fd5b50505050506040513d6060811015612cbb57600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a604051808381526020018281526020019250505060405180910390a15b505050505050505050506000601660006101000a81548160ff021916908315150217905550565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080612dcd600d54612dbf600c5486611d4190919063ffffffff16565b611cf790919063ffffffff16565b9050612e2181600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123be90919063ffffffff16565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3612edc818461237490919063ffffffff16565b9150509291505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77546f74616c20486f6c64696e672069732063757272656e746c79206c696d697465642c20796f752063616e206e6f74206275792074686174206d7563682ea2646970667358221220ced9a48928ae78e947b3e12ff50e060bf8130abb8df8984f3b714cadbe6b48e564736f6c63430007060033536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77

Deployed Bytecode

0x6080604052600436106102085760003560e01c806382bf293c11610118578063d51ed1c8116100a0578063e96fada21161006f578063e96fada214610baf578063f0b37c0414610bf0578063f2fde38b14610c41578063f887ea4014610c92578063fe9fbb8014610cd35761020f565b8063d51ed1c814610a53578063d92420ee14610aa2578063dd62ed3e14610ae3578063df20fd4914610b685761020f565b8063a8aa1b31116100e7578063a8aa1b31146108c0578063a9059cbb14610901578063b6a5d7de14610972578063ca33e64c146109c3578063cec10c1114610a045761020f565b806382bf293c14610743578063893d20e81461077e57806395d89b41146107bf578063a4b45c001461084f5761020f565b806323b872dd1161019b578063571ac8b01161016a578063571ac8b0146105c2578063658d4b7f146106295780636ddd17131461068657806370a08231146106b357806378109e54146107185761020f565b806323b872dd146104715780632b112e49146105025780632f54bf6e1461052d578063313ce567146105945761020f565b80631161ae39116101d75780631161ae391461037b57806318160ddd146103d65780631df4ccfc14610401578063201e79911461042c5761020f565b80630445b6671461021457806306fdde031461023f578063095ea7b3146102cf5780630ca35682146103405761020f565b3661020f57005b600080fd5b34801561022057600080fd5b50610229610d3a565b6040518082815260200191505060405180910390f35b34801561024b57600080fd5b50610254610d40565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610294578082015181840152602081019050610279565b50505050905090810190601f1680156102c15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102db57600080fd5b50610328600480360360408110156102f257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d7d565b60405180821515815260200191505060405180910390f35b34801561034c57600080fd5b506103796004803603602081101561036357600080fd5b8101908080359060200190929190505050610e6f565b005b34801561038757600080fd5b506103be6004803603604081101561039e57600080fd5b810190808035906020019092919080359060200190929190505050610f68565b60405180821515815260200191505060405180910390f35b3480156103e257600080fd5b506103eb610f7d565b6040518082815260200191505060405180910390f35b34801561040d57600080fd5b50610416610f87565b6040518082815260200191505060405180910390f35b34801561043857600080fd5b5061046f6004803603604081101561044f57600080fd5b810190808035906020019092919080359060200190929190505050610f8d565b005b34801561047d57600080fd5b506104ea6004803603606081101561049457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061101a565b60405180821515815260200191505060405180910390f35b34801561050e57600080fd5b5061051761121a565b6040518082815260200191505060405180910390f35b34801561053957600080fd5b5061057c6004803603602081101561055057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061129c565b60405180821515815260200191505060405180910390f35b3480156105a057600080fd5b506105a96112f5565b604051808260ff16815260200191505060405180910390f35b3480156105ce57600080fd5b50610611600480360360208110156105e557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112fe565b60405180821515815260200191505060405180910390f35b34801561063557600080fd5b506106846004803603604081101561064c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611331565b005b34801561069257600080fd5b5061069b611407565b60405180821515815260200191505060405180910390f35b3480156106bf57600080fd5b50610702600480360360208110156106d657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611418565b6040518082815260200191505060405180910390f35b34801561072457600080fd5b5061072d611461565b6040518082815260200191505060405180910390f35b34801561074f57600080fd5b5061077c6004803603602081101561076657600080fd5b8101908080359060200190929190505050611467565b005b34801561078a57600080fd5b506107936114fa565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107cb57600080fd5b506107d4611523565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108145780820151818401526020810190506107f9565b50505050905090810190601f1680156108415780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561085b57600080fd5b506108be6004803603604081101561087257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611560565b005b3480156108cc57600080fd5b506108d5611661565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561090d57600080fd5b5061095a6004803603604081101561092457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611687565b60405180821515815260200191505060405180910390f35b34801561097e57600080fd5b506109c16004803603602081101561099557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061169c565b005b3480156109cf57600080fd5b506109d8611771565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a1057600080fd5b50610a5160048036036060811015610a2757600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050611797565b005b348015610a5f57600080fd5b50610a8c60048036036020811015610a7657600080fd5b810190808035906020019092919050505061185f565b6040518082815260200191505060405180910390f35b348015610aae57600080fd5b50610ab76118d1565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610aef57600080fd5b50610b5260048036036040811015610b0657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118f7565b6040518082815260200191505060405180910390f35b348015610b7457600080fd5b50610bad60048036036040811015610b8b57600080fd5b810190808035151590602001909291908035906020019092919050505061197e565b005b348015610bbb57600080fd5b50610bc4611a1d565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610bfc57600080fd5b50610c3f60048036036020811015610c1357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a43565b005b348015610c4d57600080fd5b50610c9060048036036020811015610c6457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b19565b005b348015610c9e57600080fd5b50610ca7611c7b565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610cdf57600080fd5b50610d2260048036036020811015610cf657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ca1565b60405180821515815260200191505060405180910390f35b60155481565b60606040518060400160405280600781526020017f43726f646f676500000000000000000000000000000000000000000000000000815250905090565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b610e783361129c565b610eea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000479050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc606484840281610f3757fe5b049081150290604051600060405180830381858888f19350505050158015610f63573d6000803e3d6000fd5b505050565b600082610f748361185f565b11905092915050565b6000600554905090565b600c5481565b610f9633611ca1565b611008576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b81601181905550806012819055505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461120657611185826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dc79092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611211848484611e87565b90509392505050565b600061129761124a600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611418565b611289611278600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611418565b60055461237490919063ffffffff16565b61237490919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006004905090565b600061132a827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610d7d565b9050919050565b61133a33611ca1565b6113ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60148054906101000a900460ff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b6114703361129c565b6114e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60648160055402816114f057fe5b0460068190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f43524f444f474500000000000000000000000000000000000000000000000000815250905090565b61156933611ca1565b6115db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b81600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611694338484611e87565b905092915050565b6116a53361129c565b611717576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117a033611ca1565b611812576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b82600a8190555081600b8190555061183382846123be90919063ffffffff16565b600c8190555080600d819055506004600d548161184c57fe5b04600c541061185a57600080fd5b505050565b60006118ca61186c61121a565b6118bc6118ad600261189f601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611418565b611d4190919063ffffffff16565b85611d4190919063ffffffff16565b611cf790919063ffffffff16565b9050919050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61198733611ca1565b6119f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b816014806101000a81548160ff021916908315150217905550806015819055505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611a4c3361129c565b611abe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611b223361129c565b611b94576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000611d3983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612446565b905092915050565b600080831415611d545760009050611dc1565b6000828402905082848281611d6557fe5b0414611dbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612ee66021913960400191505060405180910390fd5b809150505b92915050565b6000838311158290611e74576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e39578082015181840152602081019050611e1e565b50505050905090810190601f168015611e665780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000601660009054906101000a900460ff1615611eb057611ea984848461250c565b905061236d565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f3657503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f905750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611fea5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120445750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561209e5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120f85750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561216957600061210884611418565b90506006548382011115612167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e815260200180612f07603e913960400191505060405180910390fd5b505b6121716126df565b1561217f5761217e6127b4565b5b612208826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dc79092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061225685612d4a565b612260578261226b565b61226a8584612da1565b5b90506122bf81600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123be90919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019150505b9392505050565b60006123b683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611dc7565b905092915050565b60008082840190508381101561243c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600080831182906124f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156124b757808201518184015260208101905061249c565b50505050905090810190601f1680156124e45780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816124fe57fe5b049050809150509392505050565b6000612597826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dc79092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061262c82600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123be90919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561274c5750601660009054906101000a900460ff16155b8015612762575060148054906101000a900460ff165b80156127af5750601554600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601660006101000a81548160ff02191690831515021790555060006127df601154601254610f68565b6127eb57600a546127ee565b60005b905060006128346002612826600c546128188661280a30611418565b611d4190919063ffffffff16565b611cf790919063ffffffff16565b611cf790919063ffffffff16565b905060006128538261284530611418565b61237490919063ffffffff16565b90506000600267ffffffffffffffff8111801561286f57600080fd5b5060405190808252806020026020018201604052801561289e5781602001602082028036833780820191505090505b50905030816000815181106128af57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061291957fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015612a1c578082015181840152602081019050612a01565b505050509050019650505050505050600060405180830381600087803b158015612a4557600080fd5b505af1158015612a59573d6000803e3d6000fd5b505050506000612a72824761237490919063ffffffff16565b90506000612a9e612a8d600289611cf790919063ffffffff16565b600c5461237490919063ffffffff16565b90506000612ada6002612acc84612abe8c88611d4190919063ffffffff16565b611cf790919063ffffffff16565b611cf790919063ffffffff16565b90506000612b0583612af7600b5487611d4190919063ffffffff16565b611cf790919063ffffffff16565b90506000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051806000019050600060405180830381858888f193505050503d8060008114612b8e576040519150601f19603f3d011682016040523d82523d6000602084013e612b93565b606091505b50509050600090506000891115612d2357601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b158015612c9057600080fd5b505af1158015612ca4573d6000803e3d6000fd5b50505050506040513d6060811015612cbb57600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a604051808381526020018281526020019250505060405180910390a15b505050505050505050506000601660006101000a81548160ff021916908315150217905550565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080612dcd600d54612dbf600c5486611d4190919063ffffffff16565b611cf790919063ffffffff16565b9050612e2181600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123be90919063ffffffff16565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3612edc818461237490919063ffffffff16565b9150509291505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77546f74616c20486f6c64696e672069732063757272656e746c79206c696d697465642c20796f752063616e206e6f74206275792074686174206d7563682ea2646970667358221220ced9a48928ae78e947b3e12ff50e060bf8130abb8df8984f3b714cadbe6b48e564736f6c63430007060033

Deployed Bytecode Sourcemap

5910:9503:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7034:55;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8465:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8887:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12009:207;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15195:150;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8195:88;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6656:27;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14679:183;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9399:364;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14870:142;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3979:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8289:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9111:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13803:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6997:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8635:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6358:59;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9772:149;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8551:78;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8375:84;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14279:228;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6969:19;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9235:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3772:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6728:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13931:340;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15020:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6771:32;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8746:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14515:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6810:35;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3874:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4205:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6938:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4090:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7034:55;;;;:::o;8465:80::-;8513:13;8537:5;;;;;;;;;;;;;;;;;8530:12;;8465:80;:::o;8887:216::-;8962:4;9014:6;8979:11;:23;8991:10;8979:23;;;;;;;;;;;;;;;:32;9003:7;8979:32;;;;;;;;;;;;;;;:41;;;;9057:7;9036:37;;9045:10;9036:37;;;9066:6;9036:37;;;;;;;;;;;;;;;;;;9091:4;9084:11;;8887:216;;;;:::o;12009:207::-;3623:19;3631:10;3623:7;:19::i;:::-;3615:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12082:17:::1;12102:21;12082:41;;12142:20;;;;;;;;;;;12134:38;;:74;12204:3;12185:16;12173:9;:28;:34;;;;;;12134:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;3655:1;12009:207:::0;:::o;15195:150::-;15275:4;15331:6;15299:29;15319:8;15299:19;:29::i;:::-;:38;15292:45;;15195:150;;;;:::o;8195:88::-;8250:7;8268:12;;8261:19;;8195:88;:::o;6656:27::-;;;;:::o;14679:183::-;3713:24;3726:10;3713:12;:24::i;:::-;3705:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14795:7:::1;14777:15;:25;;;;14842:12;14813:26;:41;;;;14679:183:::0;;:::o;9399:364::-;9499:4;9562:2;9519:11;:19;9531:6;9519:19;;;;;;;;;;;;;;;:31;9539:10;9519:31;;;;;;;;;;;;;;;;:46;9516:180;;9615:69;9651:6;9615:69;;;;;;;;;;;;;;;;;:11;:19;9627:6;9615:19;;;;;;;;;;;;;;;:31;9635:10;9615:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;9581:11;:19;9593:6;9581:19;;;;;;;;;;;;;;;:31;9601:10;9581:31;;;;;;;;;;;;;;;:103;;;;9516:180;9715:40;9729:6;9737:9;9748:6;9715:13;:40::i;:::-;9708:47;;9399:364;;;;;:::o;14870:142::-;14923:7;14950:54;14988:15;14998:4;;;;;;;;;;;14988:9;:15::i;:::-;14950:33;14967:15;14977:4;;;;;;;;;;;14967:9;:15::i;:::-;14950:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;14943:61;;14870:142;:::o;3979:103::-;4034:4;4069:5;;;;;;;;;;;4058:16;;:7;:16;;;4051:23;;3979:103;;;:::o;8289:80::-;8341:5;6287:1;8350:16;;8289:80;:::o;9111:116::-;9166:4;9190:29;9198:7;9215:2;9190:7;:29::i;:::-;9183:36;;9111:116;;;:::o;13803:120::-;3713:24;3726:10;3713:12;:24::i;:::-;3705:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13909:6:::1;13887:11;:19;13899:6;13887:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;13803:120:::0;;:::o;6997:30::-;;;;;;;;;;;;:::o;8635:105::-;8701:7;8719:9;:18;8729:7;8719:18;;;;;;;;;;;;;;;;8712:25;;8635:105;;;:::o;6358:59::-;;;;:::o;9772:149::-;3623:19;3631:10;3623:7;:19::i;:::-;3615:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9910:3:::1;9891:14;9876:12;;:29;9875:38;;;;;;9857:15;:56;;;;9772:149:::0;:::o;8551:78::-;8603:7;8621:5;;;;;;;;;;;8614:12;;8551:78;:::o;8375:84::-;8425:13;8449:7;;;;;;;;;;;;;;;;;8442:14;;8375:84;:::o;14279:228::-;3713:24;3726:10;3713:12;:24::i;:::-;3705:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14422:22:::1;14398:21;;:46;;;;;;;;;;;;;;;;;;14478:21;14455:20;;:44;;;;;;;;;;;;;;;;;;14279:228:::0;;:::o;6969:19::-;;;;;;;;;;;;;:::o;9235:156::-;9315:4;9339:44;9353:10;9365:9;9376:6;9339:13;:44::i;:::-;9332:51;;9235:156;;;;:::o;3772:94::-;3623:19;3631:10;3623:7;:19::i;:::-;3615:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3854:4:::1;3832:14:::0;:19:::1;3847:3;3832:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3772:94:::0;:::o;6728:36::-;;;;;;;;;;;;;:::o;13931:340::-;3713:24;3726:10;3713:12;:24::i;:::-;3705:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14065:13:::1;14050:12;:28;;;;14104:13;14089:12;:28;;;;14139:32;14157:13;14139;:17;;:32;;;;:::i;:::-;14128:8;:43;;;;14199:15;14182:14;:32;;;;14261:1;14244:14;;:18;;;;;;14233:8;;:29;14225:38;;;::::0;::::1;;13931:340:::0;;;:::o;15020:167::-;15088:7;15115:64;15156:22;:20;:22::i;:::-;15115:36;15128:22;15148:1;15128:15;15138:4;;;;;;;;;;;15128:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;15115:8;:12;;:36;;;;:::i;:::-;:40;;:64;;;;:::i;:::-;15108:71;;15020:167;;;:::o;6771:32::-;;;;;;;;;;;;;:::o;8746:133::-;8830:7;8848:11;:19;8860:6;8848:19;;;;;;;;;;;;;;;:28;8868:7;8848:28;;;;;;;;;;;;;;;;8841:35;;8746:133;;;;:::o;14515:156::-;3713:24;3726:10;3713:12;:24::i;:::-;3705:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14621:8:::1;14607:11;::::0;:22:::1;;;;;;;;;;;;;;;;;;14656:7;14640:13;:23;;;;14515:156:::0;;:::o;6810:35::-;;;;;;;;;;;;;:::o;3874:97::-;3623:19;3631:10;3623:7;:19::i;:::-;3615:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3958:5:::1;3936:14;:19;3951:3;3936:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3874:97:::0;:::o;4205:173::-;3623:19;3631:10;3623:7;:19::i;:::-;3615:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4289:3:::1;4281:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;4325:4;4303:14:::0;:19:::1;4318:3;4303:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;4345:25;4366:3;4345:25;;;;;;;;;;;;;;;;;;;;4205:173:::0;:::o;6938:24::-;;;;;;;;;;;;;:::o;4090:107::-;4146:4;4170:14;:19;4185:3;4170:19;;;;;;;;;;;;;;;;;;;;;;;;;4163:26;;4090:107;;;:::o;2107:132::-;2165:7;2192:39;2196:1;2199;2192:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2185:46;;2107:132;;;;:::o;1851:250::-;1909:7;1938:1;1933;:6;1929:47;;;1963:1;1956:8;;;;1929:47;1988:9;2004:1;2000;:5;1988:17;;2033:1;2028;2024;:5;;;;;;:10;2016:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2092:1;2085:8;;;1851:250;;;;;:::o;1653:192::-;1739:7;1772:1;1767;:6;;1775:12;1759:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1799:9;1815:1;1811;:5;1799:17;;1836:1;1829:8;;;1653:192;;;;;:::o;9929:1066::-;10021:4;10041:6;;;;;;;;;;;10038:63;;;10057:41;10072:6;10080:9;10091:6;10057:14;:41::i;:::-;10050:48;;;;10038:63;10118:14;:22;10133:6;10118:22;;;;;;;;;;;;;;;;;;;;;;;;;10117:23;:67;;;;;10179:4;10158:26;;:9;:26;;;;10117:67;:112;;;;;10224:4;;;;;;;;;;;10203:26;;:9;:26;;;;10117:112;:147;;;;;10260:4;;;;;;;;;;;10247:17;;:9;:17;;;;10117:147;:198;;;;;10295:20;;;;;;;;;;;10282:33;;:9;:33;;;;10117:198;:250;;;;;10346:21;;;;;;;;;;;10333:34;;:9;:34;;;;10117:250;:299;;;;;10399:17;;;;;;;;;;;10386:30;;:9;:30;;;;10117:299;10113:491;;;10432:18;10453:20;10463:9;10453;:20::i;:::-;10432:41;;10521:15;;10510:6;10497:10;:19;10496:40;;10488:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10113:491;;10619:16;:14;:16::i;:::-;10616:35;;;10638:10;:8;:10::i;:::-;10616:35;10683:53;10705:6;10683:53;;;;;;;;;;;;;;;;;:9;:17;10693:6;10683:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;10663:9;:17;10673:6;10663:17;;;;;;;;;;;;;;;:73;;;;10749:22;10774:21;10788:6;10774:13;:21::i;:::-;:56;;10824:6;10774:56;;;10798:23;10806:6;10814;10798:7;:23::i;:::-;10774:56;10749:81;;10864:40;10889:14;10864:9;:20;10874:9;10864:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;10841:9;:20;10851:9;10841:20;;;;;;;;;;;;;;;:63;;;;10939:9;10922:43;;10931:6;10922:43;;;10950:14;10922:43;;;;;;;;;;;;;;;;;;10983:4;10976:11;;;9929:1066;;;;;;:::o;1511:136::-;1569:7;1596:43;1600:1;1603;1596:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1589:50;;1511:136;;;;:::o;1324:181::-;1382:7;1402:9;1418:1;1414;:5;1402:17;;1443:1;1438;:6;;1430:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1496:1;1489:8;;;1324:181;;;;:::o;2245:191::-;2331:7;2363:1;2359;:5;2366:12;2351:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2390:9;2406:1;2402;:5;;;;;;2390:17;;2427:1;2420:8;;;2245:191;;;;;:::o;11003:330::-;11096:4;11133:53;11155:6;11133:53;;;;;;;;;;;;;;;;;:9;:17;11143:6;11133:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11113:9;:17;11123:6;11113:17;;;;;;;;;;;;;;;:73;;;;11220:32;11245:6;11220:9;:20;11230:9;11220:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;11197:9;:20;11207:9;11197:20;;;;;;;;;;;;;;;:55;;;;11285:9;11268:35;;11277:6;11268:35;;;11296:6;11268:35;;;;;;;;;;;;;;;;;;11321:4;11314:11;;11003:330;;;;;:::o;11804:197::-;11853:4;11891;;;;;;;;;;;11877:18;;:10;:18;;;;:38;;;;;11909:6;;;;;;;;;;;11908:7;11877:38;:62;;;;;11928:11;;;;;;;;;;11877:62;:116;;;;;11980:13;;11952:9;:24;11970:4;11952:24;;;;;;;;;;;;;;;;:41;;11877:116;11870:123;;11804:197;:::o;12224:1571::-;7164:4;7155:6;;:13;;;;;;;;;;;;;;;;;;12273:27:::1;12303:60;12319:15;;12336:26;;12303:15;:60::i;:::-;:79;;12370:12;;12303:79;;;12366:1;12303:79;12273:109;;12393:23;12419:70;12487:1;12419:63;12473:8;;12419:49;12448:19;12419:24;12437:4;12419:9;:24::i;:::-;:28;;:49;;;;:::i;:::-;:53;;:63;;;;:::i;:::-;:67;;:70;;;;:::i;:::-;12393:96;;12500:20;12523:45;12552:15;12523:24;12541:4;12523:9;:24::i;:::-;:28;;:45;;;;:::i;:::-;12500:68;;12581:21;12619:1;12605:16;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12581:40;;12650:4;12632;12637:1;12632:7;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;12676:4;;;;;;;;;;;12666;12671:1;12666:7;;;;;;;;;;;;;:14;;;;;;;;;::::0;::::1;12693:21;12717;12693:45;;12751:6;;;;;;;;;;;:57;;;12823:12;12850:1;12866:4;12893;12913:15;12751:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12952:17;12972:40;12998:13;12972:21;:25;;:40;;;;:::i;:::-;12952:60;;13025:19;13047:40;13060:26;13084:1;13060:19;:23;;:26;;;;:::i;:::-;13047:8;;:12;;:40;;;;:::i;:::-;13025:62;;13100:26;13129:58;13185:1;13129:51;13168:11;13129:34;13143:19;13129:9;:13;;:34;;;;:::i;:::-;:38;;:51;;;;:::i;:::-;:55;;:58;;;;:::i;:::-;13100:87;;13198:26;13227:44;13259:11;13227:27;13241:12;;13227:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;13198:73;;13285:15;13313:20;;;;;;;;;;;13305:34;;13347:18;13372:5;13305:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13284:98;;;13408:5;13395:18;;13447:1;13429:15;:19;13426:362;;;13464:6;;;;;;;;;;;:22;;;13494:18;13540:4;13564:15;13598:1;13618::::0;13638:21:::1;;;;;;;;;;;13678:15;13464:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13728:48;13740:18;13760:15;13728:48;;;;;;;;;;;;;;;;;;;;;;;;13426:362;7170:1;;;;;;;;;;7182:5:::0;7173:6;;:14;;;;;;;;;;;;;;;;;;12224:1571::o;11341:114::-;11403:4;11428:11;:19;11440:6;11428:19;;;;;;;;;;;;;;;;;;;;;;;;;11427:20;11420:27;;11341:114;;;:::o;11463:333::-;11530:7;11550:17;11570:40;11595:14;;11570:20;11581:8;;11570:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;11550:60;;11650:39;11679:9;11650;:24;11668:4;11650:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;11623:9;:24;11641:4;11623:24;;;;;;;;;;;;;;;:66;;;;11730:4;11705:42;;11714:6;11705:42;;;11737:9;11705:42;;;;;;;;;;;;;;;;;;11767:21;11778:9;11767:6;:10;;:21;;;;:::i;:::-;11760:28;;;11463:333;;;;:::o

Swarm Source

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