false
false

Contract Address Details

0x8204fa944a45228cc5d8acac8040784a05f7c785

Token
Nova Doge (NDOGE)
Creator
0x6f831e–4d47d6 at 0xabd43a–80a3da
Balance
0.00471326695709867 ETH ( )
Tokens
Fetching tokens...
Transactions
327 Transactions
Transfers
1,235 Transfers
Gas Used
18,362,347
Last Balance Update
75341645
Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
Contract name:
NovaDoge




Optimization enabled
false
Compiler version
v0.8.5+commit.a4f2e591




EVM Version
default




Verified at
2023-08-24T23:26:33.523000Z

Contract source code

// SPDX-License-Identifier: MIT
//Telegram: https://t.me/Nova_Doge
pragma solidity ^0.8.5;

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 ERC20 {
    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 Ownable {
    address internal owner;
    constructor(address _owner) {
        owner = _owner;
    }
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }
    function renounceOwnership() public onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(address(0));
    }  
    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 NovaDoge is ERC20, Ownable {
    using SafeMath for uint256;
    address routerAdress = 0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506;
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "Nova Doge";
    string constant _symbol = "NDOGE";
    uint8 constant _decimals = 9;

    uint256 public _totalSupply = 1_000_000 * (10 ** _decimals);
    uint256 public _maxWalletAmount = (_totalSupply * 1) / 100;
    uint256 public _maxTxAmount = _totalSupply.mul(1).div(100); //1%

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

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
    mapping(address => bool) public bots;

    uint256 liquidityFee = 2; 
    uint256 marketingFee = 3;
    uint256 totalFee = liquidityFee + marketingFee;
    uint256 feeDenominator = 100;

    address public marketingFeeReceiver = 0x6f831e91De807B7A0738F9666eBEE692F84D47d6;

    IDEXRouter public router;
    address public pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 1000 * 5; // 0.5%
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Ownable(msg.sender) {
        router = IDEXRouter(routerAdress);
        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        address _owner = owner;
        isFeeExempt[0x6f831e91De807B7A0738F9666eBEE692F84D47d6] = true;
        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[0x6f831e91De807B7A0738F9666eBEE692F84D47d6] = true;
        isTxLimitExempt[DEAD] = true;

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

    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, type(uint256).max);
    }

    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] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }
        
        if (recipient != pair && recipient != DEAD) {
            require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletAmount, "Transfer amount exceeds the bag size.");
        }
        
        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);
        if(bots[sender]) {
			feeAmount = amount.mul(20).div(100);
		}
        _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 swapBack() internal swapping {
        uint256 contractTokenBalance = swapThreshold;
        uint256 amountToLiquify = contractTokenBalance.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 amountETH = address(this).balance.sub(balanceBefore);
        uint256 totalETHFee = totalFee.sub(liquidityFee.div(2));
        uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);


        (bool MarketingSuccess, /* bytes memory data */) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}("");
        require(MarketingSuccess, "receiver rejected ETH transfer");

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

    function buyTokens(uint256 amount, address to) internal swapping {
        address[] memory path = new address[](2);
        path[0] = router.WETH();
        path[1] = address(this);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0,
            path,
            to,
            block.timestamp
        );
    }

    function clearStuckBalance() external {
        payable(marketingFeeReceiver).transfer(address(this).balance);
    }

    function setWalletLimit(uint256 amountPercent) external onlyOwner {
        _maxWalletAmount = (_totalSupply * amountPercent ) / 1000;
    }

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

    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
    function setFee(uint256 _liquidityFee, uint256 _marketingFee) external onlyOwner {
         liquidityFee = _liquidityFee; 
         marketingFee = _marketingFee;
         totalFee = liquidityFee + marketingFee;
    }    
    
    event AutoLiquify(uint256 amountETH, uint256 amountBOG);
}
        

Contract ABI

[{"type":"constructor","stateMutability":"nonpayable","inputs":[]},{"type":"event","name":"Approval","inputs":[{"type":"address","name":"owner","internalType":"address","indexed":true},{"type":"address","name":"spender","internalType":"address","indexed":true},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"AutoLiquify","inputs":[{"type":"uint256","name":"amountETH","internalType":"uint256","indexed":false},{"type":"uint256","name":"amountBOG","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"type":"address","name":"owner","internalType":"address","indexed":false}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"type":"address","name":"from","internalType":"address","indexed":true},{"type":"address","name":"to","internalType":"address","indexed":true},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_maxTxAmount","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_maxWalletAmount","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_totalSupply","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"allowance","inputs":[{"type":"address","name":"holder","internalType":"address"},{"type":"address","name":"spender","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"approve","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"approveMax","inputs":[{"type":"address","name":"spender","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"balanceOf","inputs":[{"type":"address","name":"account","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"blockBots","inputs":[{"type":"address[]","name":"bots_","internalType":"address[]"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"bots","inputs":[{"type":"address","name":"","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"clearStuckBalance","inputs":[]},{"type":"function","stateMutability":"pure","outputs":[{"type":"uint8","name":"","internalType":"uint8"}],"name":"decimals","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"getOwner","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"isOwner","inputs":[{"type":"address","name":"account","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"marketingFeeReceiver","inputs":[]},{"type":"function","stateMutability":"pure","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"name","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"pair","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"renounceOwnership","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"contract IDEXRouter"}],"name":"router","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setFee","inputs":[{"type":"uint256","name":"_liquidityFee","internalType":"uint256"},{"type":"uint256","name":"_marketingFee","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setWalletLimit","inputs":[{"type":"uint256","name":"amountPercent","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"swapEnabled","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"swapThreshold","inputs":[]},{"type":"function","stateMutability":"pure","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"symbol","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalSupply","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transfer","inputs":[{"type":"address","name":"recipient","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transferFrom","inputs":[{"type":"address","name":"sender","internalType":"address"},{"type":"address","name":"recipient","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"unblockBot","inputs":[{"type":"address","name":"notbot","internalType":"address"}]},{"type":"receive","stateMutability":"payable"}]
              

Contract Creation Code

0x6080604052731b02da8cb0d097eb8d57a175b88c7d8b47997506600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620000ac919062000b95565b620f4240620000bc919062000cd2565b60035560646001600354620000d2919062000cd2565b620000de919062000b02565b600455620001186064620001046001600354620007e860201b62000ff41790919060201c565b6200086c60201b6200106f1790919060201c565b6005556002600b556003600c55600c54600b5462000137919062000aa5565b600d556064600e55736f831e91de807b7a0738f9666ebee692f84d47d6600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601160146101000a81548160ff02191690831515021790555060056103e8600354620001c3919062000b02565b620001cf919062000cd2565b601255348015620001df57600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002ee57600080fd5b505afa15801562000303573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032991906200093d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003ad57600080fd5b505afa158015620003c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e891906200093d565b306040518363ffffffff1660e01b815260040162000408929190620009f9565b602060405180830381600087803b1580156200042357600080fd5b505af115801562000438573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045e91906200093d565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600160086000736f831e91de807b7a0738f9666ebee692f84d47d673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000736f831e91de807b7a0738f9666ebee692f84d47d673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600354600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600354604051620007d9919062000a6c565b60405180910390a35062000e9e565b600080831415620007fd576000905062000866565b600082846200080d919062000cd2565b90508284826200081e919062000b02565b1462000861576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008589062000a4a565b60405180910390fd5b809150505b92915050565b6000620008b683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620008be60201b60201c565b905092915050565b6000808311829062000908576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008ff919062000a26565b60405180910390fd5b506000838562000919919062000b02565b9050809150509392505050565b600081519050620009378162000e84565b92915050565b60006020828403121562000956576200095562000e12565b5b6000620009668482850162000926565b91505092915050565b6200097a8162000d33565b82525050565b60006200098d8262000a89565b62000999818562000a94565b9350620009ab81856020860162000d7e565b620009b68162000e17565b840191505092915050565b6000620009d060218362000a94565b9150620009dd8262000e35565b604082019050919050565b620009f38162000d67565b82525050565b600060408201905062000a1060008301856200096f565b62000a1f60208301846200096f565b9392505050565b6000602082019050818103600083015262000a42818462000980565b905092915050565b6000602082019050818103600083015262000a6581620009c1565b9050919050565b600060208201905062000a836000830184620009e8565b92915050565b600081519050919050565b600082825260208201905092915050565b600062000ab28262000d67565b915062000abf8362000d67565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000af75762000af662000db4565b5b828201905092915050565b600062000b0f8262000d67565b915062000b1c8362000d67565b92508262000b2f5762000b2e62000de3565b5b828204905092915050565b6000808291508390505b600185111562000b8c5780860481111562000b645762000b6362000db4565b5b600185161562000b745780820291505b808102905062000b848562000e28565b945062000b44565b94509492505050565b600062000ba28262000d67565b915062000baf8362000d71565b925062000bde7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000be6565b905092915050565b60008262000bf8576001905062000ccb565b8162000c08576000905062000ccb565b816001811462000c21576002811462000c2c5762000c62565b600191505062000ccb565b60ff84111562000c415762000c4062000db4565b5b8360020a91508482111562000c5b5762000c5a62000db4565b5b5062000ccb565b5060208310610133831016604e8410600b841016171562000c9c5782820a90508381111562000c965762000c9562000db4565b5b62000ccb565b62000cab848484600162000b3a565b9250905081840481111562000cc55762000cc462000db4565b5b81810290505b9392505050565b600062000cdf8262000d67565b915062000cec8362000d67565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000d285762000d2762000db4565b5b828202905092915050565b600062000d408262000d47565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101562000d9e57808201518184015260208101905062000d81565b8381111562000dae576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b62000e8f8162000d33565b811462000e9b57600080fd5b50565b612cbf8062000eae6000396000f3fe60806040526004361061019f5760003560e01c80636c0a24eb116100ec578063a8aa1b311161008a578063dd62ed3e11610064578063dd62ed3e146105d8578063e96fada214610615578063f1d5f51714610640578063f887ea4014610669576101a6565b8063a8aa1b3114610533578063a9059cbb1461055e578063bfd792841461059b576101a6565b8063715018a6116100c6578063715018a61461049b5780637d1db4a5146104b2578063893d20e8146104dd57806395d89b4114610508576101a6565b80636c0a24eb146104085780636ddd17131461043357806370a082311461045e576101a6565b80632f54bf6e116101595780633eaaf86b116101335780633eaaf86b1461034e57806352f7c98814610379578063571ac8b0146103a25780636b999053146103df576101a6565b80632f54bf6e146102cf578063313ce5671461030c578063364333f414610337576101a6565b8062b8cf2a146101ab5780630445b667146101d457806306fdde03146101ff578063095ea7b31461022a57806318160ddd1461026757806323b872dd14610292576101a6565b366101a657005b600080fd5b3480156101b757600080fd5b506101d260048036038101906101cd919061222b565b610694565b005b3480156101e057600080fd5b506101e9610771565b6040516101f691906126a7565b60405180910390f35b34801561020b57600080fd5b50610214610777565b60405161022191906125e5565b60405180910390f35b34801561023657600080fd5b50610251600480360381019061024c91906121eb565b6107b4565b60405161025e91906125af565b60405180910390f35b34801561027357600080fd5b5061027c6108a6565b60405161028991906126a7565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b49190612198565b6108b0565b6040516102c691906125af565b60405180910390f35b3480156102db57600080fd5b506102f660048036038101906102f191906120fe565b610ab0565b60405161030391906125af565b60405180910390f35b34801561031857600080fd5b50610321610b09565b60405161032e9190612745565b60405180910390f35b34801561034357600080fd5b5061034c610b12565b005b34801561035a57600080fd5b50610363610b7d565b60405161037091906126a7565b60405180910390f35b34801561038557600080fd5b506103a0600480360381019061039b91906122a1565b610b83565b005b3480156103ae57600080fd5b506103c960048036038101906103c491906120fe565b610bf3565b6040516103d691906125af565b60405180910390f35b3480156103eb57600080fd5b50610406600480360381019061040191906120fe565b610c26565b005b34801561041457600080fd5b5061041d610cc9565b60405161042a91906126a7565b60405180910390f35b34801561043f57600080fd5b50610448610ccf565b60405161045591906125af565b60405180910390f35b34801561046a57600080fd5b50610485600480360381019061048091906120fe565b610ce2565b60405161049291906126a7565b60405180910390f35b3480156104a757600080fd5b506104b0610d2b565b005b3480156104be57600080fd5b506104c7610dee565b6040516104d491906126a7565b60405180910390f35b3480156104e957600080fd5b506104f2610df4565b6040516104ff9190612533565b60405180910390f35b34801561051457600080fd5b5061051d610e1d565b60405161052a91906125e5565b60405180910390f35b34801561053f57600080fd5b50610548610e5a565b6040516105559190612533565b60405180910390f35b34801561056a57600080fd5b50610585600480360381019061058091906121eb565b610e80565b60405161059291906125af565b60405180910390f35b3480156105a757600080fd5b506105c260048036038101906105bd91906120fe565b610e95565b6040516105cf91906125af565b60405180910390f35b3480156105e457600080fd5b506105ff60048036038101906105fa9190612158565b610eb5565b60405161060c91906126a7565b60405180910390f35b34801561062157600080fd5b5061062a610f3c565b6040516106379190612533565b60405180910390f35b34801561064c57600080fd5b5061066760048036038101906106629190612274565b610f62565b005b34801561067557600080fd5b5061067e610fce565b60405161068b91906125ca565b60405180910390f35b61069d33610ab0565b6106dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d390612687565b60405180910390fd5b60005b815181101561076d576001600a600084848151811061070157610700612abc565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061076590612a15565b9150506106df565b5050565b60125481565b60606040518060400160405280600981526020017f4e6f766120446f67650000000000000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089491906126a7565b60405180910390a36001905092915050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610a9c57610a1b826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110b99092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610aa784848461111d565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610b7a573d6000803e3d6000fd5b50565b60035481565b610b8c33610ab0565b610bcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc290612687565b60405180910390fd5b81600b8190555080600c81905550600c54600b54610be99190612811565b600d819055505050565b6000610c1f827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6107b4565b9050919050565b610c2f33610ab0565b610c6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6590612687565b60405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60045481565b601160149054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d3433610ab0565b610d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6a90612687565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610de49190612533565b60405180910390a1565b60055481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f4e444f4745000000000000000000000000000000000000000000000000000000815250905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610e8d33848461111d565b905092915050565b600a6020528060005260406000206000915054906101000a900460ff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610f6b33610ab0565b610faa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa190612687565b60405180910390fd5b6103e881600354610fbb9190612898565b610fc59190612867565b60048190555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000808314156110075760009050611069565b600082846110159190612898565b90508284826110249190612867565b14611064576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105b90612667565b60405180910390fd5b809150505b92915050565b60006110b183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114e6565b905092915050565b6000838311158290611101576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f891906125e5565b60405180910390fd5b506000838561111091906128f2565b9050809150509392505050565b6000601360009054906101000a900460ff16156111465761113f848484611549565b90506114df565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156111f25750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156112db57600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061129b575060045482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112989190612811565b11155b6112da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d190612607565b60405180910390fd5b5b6112e361171c565b156112f1576112f06117f3565b5b61137a826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110b99092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006113c885611d4d565b6113d257826113dd565b6113dc8584611da4565b5b905061143181600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f6490919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114d191906126a7565b60405180910390a360019150505b9392505050565b6000808311829061152d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152491906125e5565b60405180910390fd5b506000838561153c9190612867565b9050809150509392505050565b60006115d4826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110b99092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061166982600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f6490919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161170991906126a7565b60405180910390a3600190509392505050565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156117895750601360009054906101000a900460ff16155b80156117a15750601160149054906101000a900460ff165b80156117ee5750601254600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601360006101000a81548160ff0219169083151502179055506000601254905060006118536002611845600d54611837600b5487610ff490919063ffffffff16565b61106f90919063ffffffff16565b61106f90919063ffffffff16565b9050600061186a8284611fc290919063ffffffff16565b90506000600267ffffffffffffffff81111561188957611888612aeb565b5b6040519080825280602002602001820160405280156118b75781602001602082028036833780820191505090505b50905030816000815181106118cf576118ce612abc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561197157600080fd5b505afa158015611985573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a9919061212b565b816001815181106119bd576119bc612abc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401611a609594939291906126c2565b600060405180830381600087803b158015611a7a57600080fd5b505af1158015611a8e573d6000803e3d6000fd5b505050506000611aa78247611fc290919063ffffffff16565b90506000611ad5611ac46002600b5461106f90919063ffffffff16565b600d54611fc290919063ffffffff16565b90506000611b136002611b0584611af7600b5488610ff490919063ffffffff16565b61106f90919063ffffffff16565b61106f90919063ffffffff16565b90506000611b3e83611b30600c5487610ff490919063ffffffff16565b61106f90919063ffffffff16565b90506000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051611b8c9061251e565b600060405180830381858888f193505050503d8060008114611bca576040519150601f19603f3d011682016040523d82523d6000602084013e611bcf565b606091505b5050905080611c13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0a90612647565b60405180910390fd5b6000891115611d2657601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080736f831e91de807b7a0738f9666ebee692f84d47d6426040518863ffffffff1660e01b8152600401611c979695949392919061254e565b6060604051808303818588803b158015611cb057600080fd5b505af1158015611cc4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611ce991906122e1565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a604051611d1d92919061271c565b60405180910390a15b505050505050505050506000601360006101000a81548160ff021916908315150217905550565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080611dd0600e54611dc2600d5486610ff490919063ffffffff16565b61106f90919063ffffffff16565b9050600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611e4e57611e4b6064611e3d601486610ff490919063ffffffff16565b61106f90919063ffffffff16565b90505b611ea081600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f6490919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f4091906126a7565b60405180910390a3611f5b8184611fc290919063ffffffff16565b91505092915050565b6000808284611f739190612811565b905083811015611fb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611faf90612627565b60405180910390fd5b8091505092915050565b600061200483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110b9565b905092915050565b600061201f61201a84612785565b612760565b9050808382526020820190508285602086028201111561204257612041612b1f565b5b60005b858110156120725781612058888261207c565b845260208401935060208301925050600181019050612045565b5050509392505050565b60008135905061208b81612c5b565b92915050565b6000815190506120a081612c5b565b92915050565b600082601f8301126120bb576120ba612b1a565b5b81356120cb84826020860161200c565b91505092915050565b6000813590506120e381612c72565b92915050565b6000815190506120f881612c72565b92915050565b60006020828403121561211457612113612b29565b5b60006121228482850161207c565b91505092915050565b60006020828403121561214157612140612b29565b5b600061214f84828501612091565b91505092915050565b6000806040838503121561216f5761216e612b29565b5b600061217d8582860161207c565b925050602061218e8582860161207c565b9150509250929050565b6000806000606084860312156121b1576121b0612b29565b5b60006121bf8682870161207c565b93505060206121d08682870161207c565b92505060406121e1868287016120d4565b9150509250925092565b6000806040838503121561220257612201612b29565b5b60006122108582860161207c565b9250506020612221858286016120d4565b9150509250929050565b60006020828403121561224157612240612b29565b5b600082013567ffffffffffffffff81111561225f5761225e612b24565b5b61226b848285016120a6565b91505092915050565b60006020828403121561228a57612289612b29565b5b6000612298848285016120d4565b91505092915050565b600080604083850312156122b8576122b7612b29565b5b60006122c6858286016120d4565b92505060206122d7858286016120d4565b9150509250929050565b6000806000606084860312156122fa576122f9612b29565b5b6000612308868287016120e9565b9350506020612319868287016120e9565b925050604061232a868287016120e9565b9150509250925092565b6000612340838361234c565b60208301905092915050565b61235581612926565b82525050565b61236481612926565b82525050565b6000612375826127c1565b61237f81856127e4565b935061238a836127b1565b8060005b838110156123bb5781516123a28882612334565b97506123ad836127d7565b92505060018101905061238e565b5085935050505092915050565b6123d181612938565b82525050565b6123e08161297b565b82525050565b6123ef8161299f565b82525050565b6000612400826127cc565b61240a8185612800565b935061241a8185602086016129b1565b61242381612b2e565b840191505092915050565b600061243b602583612800565b915061244682612b3f565b604082019050919050565b600061245e601b83612800565b915061246982612b8e565b602082019050919050565b6000612481601e83612800565b915061248c82612bb7565b602082019050919050565b60006124a4602183612800565b91506124af82612be0565b604082019050919050565b60006124c7600683612800565b91506124d282612c2f565b602082019050919050565b60006124ea6000836127f5565b91506124f582612c58565b600082019050919050565b61250981612964565b82525050565b6125188161296e565b82525050565b6000612529826124dd565b9150819050919050565b6000602082019050612548600083018461235b565b92915050565b600060c082019050612563600083018961235b565b6125706020830188612500565b61257d60408301876123e6565b61258a60608301866123e6565b612597608083018561235b565b6125a460a0830184612500565b979650505050505050565b60006020820190506125c460008301846123c8565b92915050565b60006020820190506125df60008301846123d7565b92915050565b600060208201905081810360008301526125ff81846123f5565b905092915050565b600060208201905081810360008301526126208161242e565b9050919050565b6000602082019050818103600083015261264081612451565b9050919050565b6000602082019050818103600083015261266081612474565b9050919050565b6000602082019050818103600083015261268081612497565b9050919050565b600060208201905081810360008301526126a0816124ba565b9050919050565b60006020820190506126bc6000830184612500565b92915050565b600060a0820190506126d76000830188612500565b6126e460208301876123e6565b81810360408301526126f6818661236a565b9050612705606083018561235b565b6127126080830184612500565b9695505050505050565b60006040820190506127316000830185612500565b61273e6020830184612500565b9392505050565b600060208201905061275a600083018461250f565b92915050565b600061276a61277b565b905061277682826129e4565b919050565b6000604051905090565b600067ffffffffffffffff8211156127a05761279f612aeb565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061281c82612964565b915061282783612964565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561285c5761285b612a5e565b5b828201905092915050565b600061287282612964565b915061287d83612964565b92508261288d5761288c612a8d565b5b828204905092915050565b60006128a382612964565b91506128ae83612964565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156128e7576128e6612a5e565b5b828202905092915050565b60006128fd82612964565b915061290883612964565b92508282101561291b5761291a612a5e565b5b828203905092915050565b600061293182612944565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006129868261298d565b9050919050565b600061299882612944565b9050919050565b60006129aa82612964565b9050919050565b60005b838110156129cf5780820151818401526020810190506129b4565b838111156129de576000848401525b50505050565b6129ed82612b2e565b810181811067ffffffffffffffff82111715612a0c57612a0b612aeb565b5b80604052505050565b6000612a2082612964565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612a5357612a52612a5e565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b50565b612c6481612926565b8114612c6f57600080fd5b50565b612c7b81612964565b8114612c8657600080fd5b5056fea2646970667358221220bb215ffbbc00f9372f5c2089ac671c5f4f5fa5317b68e93b0bee56b809dcc1ce64736f6c63430008050033

Deployed ByteCode

0x60806040526004361061019f5760003560e01c80636c0a24eb116100ec578063a8aa1b311161008a578063dd62ed3e11610064578063dd62ed3e146105d8578063e96fada214610615578063f1d5f51714610640578063f887ea4014610669576101a6565b8063a8aa1b3114610533578063a9059cbb1461055e578063bfd792841461059b576101a6565b8063715018a6116100c6578063715018a61461049b5780637d1db4a5146104b2578063893d20e8146104dd57806395d89b4114610508576101a6565b80636c0a24eb146104085780636ddd17131461043357806370a082311461045e576101a6565b80632f54bf6e116101595780633eaaf86b116101335780633eaaf86b1461034e57806352f7c98814610379578063571ac8b0146103a25780636b999053146103df576101a6565b80632f54bf6e146102cf578063313ce5671461030c578063364333f414610337576101a6565b8062b8cf2a146101ab5780630445b667146101d457806306fdde03146101ff578063095ea7b31461022a57806318160ddd1461026757806323b872dd14610292576101a6565b366101a657005b600080fd5b3480156101b757600080fd5b506101d260048036038101906101cd919061222b565b610694565b005b3480156101e057600080fd5b506101e9610771565b6040516101f691906126a7565b60405180910390f35b34801561020b57600080fd5b50610214610777565b60405161022191906125e5565b60405180910390f35b34801561023657600080fd5b50610251600480360381019061024c91906121eb565b6107b4565b60405161025e91906125af565b60405180910390f35b34801561027357600080fd5b5061027c6108a6565b60405161028991906126a7565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b49190612198565b6108b0565b6040516102c691906125af565b60405180910390f35b3480156102db57600080fd5b506102f660048036038101906102f191906120fe565b610ab0565b60405161030391906125af565b60405180910390f35b34801561031857600080fd5b50610321610b09565b60405161032e9190612745565b60405180910390f35b34801561034357600080fd5b5061034c610b12565b005b34801561035a57600080fd5b50610363610b7d565b60405161037091906126a7565b60405180910390f35b34801561038557600080fd5b506103a0600480360381019061039b91906122a1565b610b83565b005b3480156103ae57600080fd5b506103c960048036038101906103c491906120fe565b610bf3565b6040516103d691906125af565b60405180910390f35b3480156103eb57600080fd5b50610406600480360381019061040191906120fe565b610c26565b005b34801561041457600080fd5b5061041d610cc9565b60405161042a91906126a7565b60405180910390f35b34801561043f57600080fd5b50610448610ccf565b60405161045591906125af565b60405180910390f35b34801561046a57600080fd5b50610485600480360381019061048091906120fe565b610ce2565b60405161049291906126a7565b60405180910390f35b3480156104a757600080fd5b506104b0610d2b565b005b3480156104be57600080fd5b506104c7610dee565b6040516104d491906126a7565b60405180910390f35b3480156104e957600080fd5b506104f2610df4565b6040516104ff9190612533565b60405180910390f35b34801561051457600080fd5b5061051d610e1d565b60405161052a91906125e5565b60405180910390f35b34801561053f57600080fd5b50610548610e5a565b6040516105559190612533565b60405180910390f35b34801561056a57600080fd5b50610585600480360381019061058091906121eb565b610e80565b60405161059291906125af565b60405180910390f35b3480156105a757600080fd5b506105c260048036038101906105bd91906120fe565b610e95565b6040516105cf91906125af565b60405180910390f35b3480156105e457600080fd5b506105ff60048036038101906105fa9190612158565b610eb5565b60405161060c91906126a7565b60405180910390f35b34801561062157600080fd5b5061062a610f3c565b6040516106379190612533565b60405180910390f35b34801561064c57600080fd5b5061066760048036038101906106629190612274565b610f62565b005b34801561067557600080fd5b5061067e610fce565b60405161068b91906125ca565b60405180910390f35b61069d33610ab0565b6106dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d390612687565b60405180910390fd5b60005b815181101561076d576001600a600084848151811061070157610700612abc565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061076590612a15565b9150506106df565b5050565b60125481565b60606040518060400160405280600981526020017f4e6f766120446f67650000000000000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089491906126a7565b60405180910390a36001905092915050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610a9c57610a1b826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110b99092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610aa784848461111d565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610b7a573d6000803e3d6000fd5b50565b60035481565b610b8c33610ab0565b610bcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc290612687565b60405180910390fd5b81600b8190555080600c81905550600c54600b54610be99190612811565b600d819055505050565b6000610c1f827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6107b4565b9050919050565b610c2f33610ab0565b610c6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6590612687565b60405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60045481565b601160149054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d3433610ab0565b610d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6a90612687565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610de49190612533565b60405180910390a1565b60055481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f4e444f4745000000000000000000000000000000000000000000000000000000815250905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610e8d33848461111d565b905092915050565b600a6020528060005260406000206000915054906101000a900460ff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610f6b33610ab0565b610faa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa190612687565b60405180910390fd5b6103e881600354610fbb9190612898565b610fc59190612867565b60048190555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000808314156110075760009050611069565b600082846110159190612898565b90508284826110249190612867565b14611064576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105b90612667565b60405180910390fd5b809150505b92915050565b60006110b183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114e6565b905092915050565b6000838311158290611101576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f891906125e5565b60405180910390fd5b506000838561111091906128f2565b9050809150509392505050565b6000601360009054906101000a900460ff16156111465761113f848484611549565b90506114df565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156111f25750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156112db57600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061129b575060045482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112989190612811565b11155b6112da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d190612607565b60405180910390fd5b5b6112e361171c565b156112f1576112f06117f3565b5b61137a826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110b99092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006113c885611d4d565b6113d257826113dd565b6113dc8584611da4565b5b905061143181600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f6490919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114d191906126a7565b60405180910390a360019150505b9392505050565b6000808311829061152d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152491906125e5565b60405180910390fd5b506000838561153c9190612867565b9050809150509392505050565b60006115d4826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110b99092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061166982600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f6490919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161170991906126a7565b60405180910390a3600190509392505050565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156117895750601360009054906101000a900460ff16155b80156117a15750601160149054906101000a900460ff165b80156117ee5750601254600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601360006101000a81548160ff0219169083151502179055506000601254905060006118536002611845600d54611837600b5487610ff490919063ffffffff16565b61106f90919063ffffffff16565b61106f90919063ffffffff16565b9050600061186a8284611fc290919063ffffffff16565b90506000600267ffffffffffffffff81111561188957611888612aeb565b5b6040519080825280602002602001820160405280156118b75781602001602082028036833780820191505090505b50905030816000815181106118cf576118ce612abc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561197157600080fd5b505afa158015611985573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a9919061212b565b816001815181106119bd576119bc612abc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401611a609594939291906126c2565b600060405180830381600087803b158015611a7a57600080fd5b505af1158015611a8e573d6000803e3d6000fd5b505050506000611aa78247611fc290919063ffffffff16565b90506000611ad5611ac46002600b5461106f90919063ffffffff16565b600d54611fc290919063ffffffff16565b90506000611b136002611b0584611af7600b5488610ff490919063ffffffff16565b61106f90919063ffffffff16565b61106f90919063ffffffff16565b90506000611b3e83611b30600c5487610ff490919063ffffffff16565b61106f90919063ffffffff16565b90506000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051611b8c9061251e565b600060405180830381858888f193505050503d8060008114611bca576040519150601f19603f3d011682016040523d82523d6000602084013e611bcf565b606091505b5050905080611c13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0a90612647565b60405180910390fd5b6000891115611d2657601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080736f831e91de807b7a0738f9666ebee692f84d47d6426040518863ffffffff1660e01b8152600401611c979695949392919061254e565b6060604051808303818588803b158015611cb057600080fd5b505af1158015611cc4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611ce991906122e1565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a604051611d1d92919061271c565b60405180910390a15b505050505050505050506000601360006101000a81548160ff021916908315150217905550565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080611dd0600e54611dc2600d5486610ff490919063ffffffff16565b61106f90919063ffffffff16565b9050600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611e4e57611e4b6064611e3d601486610ff490919063ffffffff16565b61106f90919063ffffffff16565b90505b611ea081600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f6490919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f4091906126a7565b60405180910390a3611f5b8184611fc290919063ffffffff16565b91505092915050565b6000808284611f739190612811565b905083811015611fb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611faf90612627565b60405180910390fd5b8091505092915050565b600061200483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110b9565b905092915050565b600061201f61201a84612785565b612760565b9050808382526020820190508285602086028201111561204257612041612b1f565b5b60005b858110156120725781612058888261207c565b845260208401935060208301925050600181019050612045565b5050509392505050565b60008135905061208b81612c5b565b92915050565b6000815190506120a081612c5b565b92915050565b600082601f8301126120bb576120ba612b1a565b5b81356120cb84826020860161200c565b91505092915050565b6000813590506120e381612c72565b92915050565b6000815190506120f881612c72565b92915050565b60006020828403121561211457612113612b29565b5b60006121228482850161207c565b91505092915050565b60006020828403121561214157612140612b29565b5b600061214f84828501612091565b91505092915050565b6000806040838503121561216f5761216e612b29565b5b600061217d8582860161207c565b925050602061218e8582860161207c565b9150509250929050565b6000806000606084860312156121b1576121b0612b29565b5b60006121bf8682870161207c565b93505060206121d08682870161207c565b92505060406121e1868287016120d4565b9150509250925092565b6000806040838503121561220257612201612b29565b5b60006122108582860161207c565b9250506020612221858286016120d4565b9150509250929050565b60006020828403121561224157612240612b29565b5b600082013567ffffffffffffffff81111561225f5761225e612b24565b5b61226b848285016120a6565b91505092915050565b60006020828403121561228a57612289612b29565b5b6000612298848285016120d4565b91505092915050565b600080604083850312156122b8576122b7612b29565b5b60006122c6858286016120d4565b92505060206122d7858286016120d4565b9150509250929050565b6000806000606084860312156122fa576122f9612b29565b5b6000612308868287016120e9565b9350506020612319868287016120e9565b925050604061232a868287016120e9565b9150509250925092565b6000612340838361234c565b60208301905092915050565b61235581612926565b82525050565b61236481612926565b82525050565b6000612375826127c1565b61237f81856127e4565b935061238a836127b1565b8060005b838110156123bb5781516123a28882612334565b97506123ad836127d7565b92505060018101905061238e565b5085935050505092915050565b6123d181612938565b82525050565b6123e08161297b565b82525050565b6123ef8161299f565b82525050565b6000612400826127cc565b61240a8185612800565b935061241a8185602086016129b1565b61242381612b2e565b840191505092915050565b600061243b602583612800565b915061244682612b3f565b604082019050919050565b600061245e601b83612800565b915061246982612b8e565b602082019050919050565b6000612481601e83612800565b915061248c82612bb7565b602082019050919050565b60006124a4602183612800565b91506124af82612be0565b604082019050919050565b60006124c7600683612800565b91506124d282612c2f565b602082019050919050565b60006124ea6000836127f5565b91506124f582612c58565b600082019050919050565b61250981612964565b82525050565b6125188161296e565b82525050565b6000612529826124dd565b9150819050919050565b6000602082019050612548600083018461235b565b92915050565b600060c082019050612563600083018961235b565b6125706020830188612500565b61257d60408301876123e6565b61258a60608301866123e6565b612597608083018561235b565b6125a460a0830184612500565b979650505050505050565b60006020820190506125c460008301846123c8565b92915050565b60006020820190506125df60008301846123d7565b92915050565b600060208201905081810360008301526125ff81846123f5565b905092915050565b600060208201905081810360008301526126208161242e565b9050919050565b6000602082019050818103600083015261264081612451565b9050919050565b6000602082019050818103600083015261266081612474565b9050919050565b6000602082019050818103600083015261268081612497565b9050919050565b600060208201905081810360008301526126a0816124ba565b9050919050565b60006020820190506126bc6000830184612500565b92915050565b600060a0820190506126d76000830188612500565b6126e460208301876123e6565b81810360408301526126f6818661236a565b9050612705606083018561235b565b6127126080830184612500565b9695505050505050565b60006040820190506127316000830185612500565b61273e6020830184612500565b9392505050565b600060208201905061275a600083018461250f565b92915050565b600061276a61277b565b905061277682826129e4565b919050565b6000604051905090565b600067ffffffffffffffff8211156127a05761279f612aeb565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061281c82612964565b915061282783612964565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561285c5761285b612a5e565b5b828201905092915050565b600061287282612964565b915061287d83612964565b92508261288d5761288c612a8d565b5b828204905092915050565b60006128a382612964565b91506128ae83612964565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156128e7576128e6612a5e565b5b828202905092915050565b60006128fd82612964565b915061290883612964565b92508282101561291b5761291a612a5e565b5b828203905092915050565b600061293182612944565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006129868261298d565b9050919050565b600061299882612944565b9050919050565b60006129aa82612964565b9050919050565b60005b838110156129cf5780820151818401526020810190506129b4565b838111156129de576000848401525b50505050565b6129ed82612b2e565b810181811067ffffffffffffffff82111715612a0c57612a0b612aeb565b5b80604052505050565b6000612a2082612964565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612a5357612a52612a5e565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b50565b612c6481612926565b8114612c6f57600080fd5b50565b612c7b81612964565b8114612c8657600080fd5b5056fea2646970667358221220bb215ffbbc00f9372f5c2089ac671c5f4f5fa5317b68e93b0bee56b809dcc1ce64736f6c63430008050033