ETH Price: $2,621.07 (+1.19%)
Gas: 3.58 Gwei

Token

Guardian Bot (GUARD)
 

Overview

Max Total Supply

10,000,000 GUARD

Holders

81

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
138,000 GUARD

Value
$0.00
0xefd3ea0776b4ef5360cdcecad59b1edc932fde33
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
GUARD

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/*
Welcome to the Guardian Bot!

Join our telegram @guardianbotofficial

Check out our website theguardianbot.com
*/
// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}  

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

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

contract GUARD is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private time;
    uint256 private _tax;

    uint256 private constant _tTotal = 1 * 10**7 * 10**9;
    uint256 private fee1=60;
    uint256 private fee2=50;
    uint256 private liqfee=20;
    uint256 private feeMax=100;
    string private constant _name = "Guardian Bot";
    string private constant _symbol = "GUARD";
    uint256 private _maxTxAmount = _tTotal.mul(15).div(1000);
    uint256 private minBalance = _tTotal.div(1000);


    uint8 private constant _decimals = 9;
    address payable private _feeAddrWallet1;
    address payable private _feeAddrWallet2;
    address payable private _feeAddrWallet3;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () payable {
        _feeAddrWallet1 = payable(msg.sender);
        _feeAddrWallet2 = payable(0x9F54eaed153D73d9c0B4E8e1fdB17f5d6f109b1c);
        _feeAddrWallet3 = payable(0xB93CB419C6552d0FDbC8Fb936242279a8E11B94c);
        _tOwned[address(this)] = _tTotal.div(100).mul(99);
        _tOwned[0xcF61baF1743B13863712b99D35b7f6845eb62E63] = _tTotal.div(100).mul(1);
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet1] = true;
        _isExcludedFromFee[_feeAddrWallet2] = true;
        _isExcludedFromFee[_feeAddrWallet3] = true;
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        emit Transfer(address(0),address(this),_tTotal.div(100).mul(99));
        emit Transfer(address(0),address(0xcF61baF1743B13863712b99D35b7f6845eb62E63),_tTotal.div(100).mul(1));
    }

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

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

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

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

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

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
   
    function changeFees(uint8 _fee1,uint8 _fee2,uint8 _liq) external {
        
        require(_msgSender() == _feeAddrWallet1);
        require(_fee1 <= feeMax && _fee2 <= feeMax && liqfee <= feeMax,"Cannot set fees above maximum");
        fee1 = _fee1;
        fee2 = _fee2;
        liqfee = _liq;
    }

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

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

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

        _tax = fee1.add(liqfee);
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && (block.timestamp < time)){
                // Cooldown
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
                _tax = fee2.add(liqfee);
            }
            
            if (!inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from]) {
                require(block.timestamp > time,"Sells prohibited for the first 5 minutes");
                uint256 contractTokenBalance = balanceOf(address(this));
                if(contractTokenBalance > minBalance){
                    swapAndLiquify(contractTokenBalance);
                    uint256 contractETHBalance = address(this).balance;
                    if(contractETHBalance > 0) {
                        sendETHToFee(address(this).balance);
                    }
                }
            }
        }
		
        _transferStandard(from,to,amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
    
    function swapAndLiquify(uint256 tokenAmount) private {
        uint256 half = liqfee.div(2);
        uint256 part = fee2.add(half);
        uint256 sum = fee2.add(liqfee);
        uint256 swapTotal = tokenAmount.mul(part).div(sum);
        swapTokensForEth(swapTotal);
        addLiquidity(tokenAmount.sub(swapTotal),address(this).balance.mul(half).div(part),_feeAddrWallet1);
    }

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

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

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

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

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

Contract Security Audit

Contract ABI

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

6080604052603c6009556032600a556014600b556064600c55620000556103e862000041600f662386f26fc100006200095c60201b62000fb91790919060201c565b620009e060201b620010341790919060201c565b600d556200007b6103e8662386f26fc10000620009e060201b620010341790919060201c565b600e556000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff0219169083151502179055506000620000c662000a3260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739f54eaed153d73d9c0b4e8e1fdb17f5d6f109b1c601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b93cb419c6552d0fdbc8fb936242279a8e11b94c601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200028b6063620002776064662386f26fc10000620009e060201b620010341790919060201c565b6200095c60201b62000fb91790919060201c565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200030a6001620002f66064662386f26fc10000620009e060201b620010341790919060201c565b6200095c60201b62000fb91790919060201c565b6002600073cf61baf1743b13863712b99d35b7f6845eb62e6373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600460006200037762000a3a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200064c57600080fd5b505afa15801562000661573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000687919062000ae2565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200070c57600080fd5b505afa15801562000721573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000747919062000ae2565b6040518363ffffffff1660e01b81526004016200076692919062000b98565b602060405180830381600087803b1580156200078157600080fd5b505af115801562000796573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007bc919062000ae2565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620008886063620008746064662386f26fc10000620009e060201b620010341790919060201c565b6200095c60201b62000fb91790919060201c565b60405162000897919062000c0b565b60405180910390a373cf61baf1743b13863712b99d35b7f6845eb62e6373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200093f60016200092b6064662386f26fc10000620009e060201b620010341790919060201c565b6200095c60201b62000fb91790919060201c565b6040516200094e919062000c0b565b60405180910390a362000e29565b600080831415620009715760009050620009da565b6000828462000981919062000c7c565b905082848262000992919062000c44565b14620009d5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009cc9062000be9565b60405180910390fd5b809150505b92915050565b600062000a2a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000a6360201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000aad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000aa4919062000bc5565b60405180910390fd5b506000838562000abe919062000c44565b9050809150509392505050565b60008151905062000adc8162000e0f565b92915050565b60006020828403121562000af557600080fd5b600062000b058482850162000acb565b91505092915050565b62000b198162000cdd565b82525050565b600062000b2c8262000c28565b62000b38818562000c33565b935062000b4a81856020860162000d1b565b62000b558162000daf565b840191505092915050565b600062000b6f60218362000c33565b915062000b7c8262000dc0565b604082019050919050565b62000b928162000d11565b82525050565b600060408201905062000baf600083018562000b0e565b62000bbe602083018462000b0e565b9392505050565b6000602082019050818103600083015262000be1818462000b1f565b905092915050565b6000602082019050818103600083015262000c048162000b60565b9050919050565b600060208201905062000c22600083018462000b87565b92915050565b600081519050919050565b600082825260208201905092915050565b600062000c518262000d11565b915062000c5e8362000d11565b92508262000c715762000c7062000d80565b5b828204905092915050565b600062000c898262000d11565b915062000c968362000d11565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000cd25762000cd162000d51565b5b828202905092915050565b600062000cea8262000cf1565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101562000d3b57808201518184015260208101905062000d1e565b8381111562000d4b576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b62000e1a8162000cdd565b811462000e2657600080fd5b50565b6133dc8062000e396000396000f3fe6080604052600436106101185760003560e01c806370a08231116100a0578063a9059cbb11610064578063a9059cbb14610384578063b515566a146103c1578063c3c8cd80146103ea578063c9567bf914610401578063dd62ed3e146104185761011f565b806370a08231146102b1578063715018a6146102ee5780637e37e9bb146103055780638da5cb5b1461032e57806395d89b41146103595761011f565b806323b872dd116100e757806323b872dd146101e0578063273123b71461021d578063313ce567146102465780634ea18fab146102715780636fc3eaec1461029a5761011f565b806306fdde0314610124578063095ea7b31461014f57806316114acd1461018c57806318160ddd146101b55761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610455565b6040516101469190612aa0565b60405180910390f35b34801561015b57600080fd5b50610176600480360381019061017191906125b1565b610492565b6040516101839190612a85565b60405180910390f35b34801561019857600080fd5b506101b360048036038101906101ae91906124d4565b6104b0565b005b3480156101c157600080fd5b506101ca610652565b6040516101d79190612c22565b60405180910390f35b3480156101ec57600080fd5b5061020760048036038101906102029190612562565b610661565b6040516102149190612a85565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f91906124d4565b61073a565b005b34801561025257600080fd5b5061025b61082a565b6040516102689190612c97565b60405180910390f35b34801561027d57600080fd5b5061029860048036038101906102939190612657565b610833565b005b3480156102a657600080fd5b506102af61089e565b005b3480156102bd57600080fd5b506102d860048036038101906102d391906124d4565b610910565b6040516102e59190612c22565b60405180910390f35b3480156102fa57600080fd5b50610303610959565b005b34801561031157600080fd5b5061032c600480360381019061032791906126f8565b610aac565b005b34801561033a57600080fd5b50610343610b99565b60405161035091906129e0565b60405180910390f35b34801561036557600080fd5b5061036e610bc2565b60405161037b9190612aa0565b60405180910390f35b34801561039057600080fd5b506103ab60048036038101906103a691906125b1565b610bff565b6040516103b89190612a85565b60405180910390f35b3480156103cd57600080fd5b506103e860048036038101906103e391906125ed565b610c1d565b005b3480156103f657600080fd5b506103ff610d6d565b005b34801561040d57600080fd5b50610416610de7565b005b34801561042457600080fd5b5061043f600480360381019061043a9190612526565b610f32565b60405161044c9190612c22565b60405180910390f35b60606040518060400160405280600c81526020017f477561726469616e20426f740000000000000000000000000000000000000000815250905090565b60006104a661049f61107e565b8484611086565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166104f161107e565b73ffffffffffffffffffffffffffffffffffffffff161461051157600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161058e91906129e0565b60206040518083038186803b1580156105a657600080fd5b505afa1580156105ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105de9190612680565b6040518363ffffffff1660e01b81526004016105fb9291906129fb565b602060405180830381600087803b15801561061557600080fd5b505af1158015610629573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064d919061262e565b505050565b6000662386f26fc10000905090565b600061066e848484611251565b61072f8461067a61107e565b61072a8560405180606001604052806028815260200161337f60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106e061107e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461190a9092919063ffffffff16565b611086565b600190509392505050565b61074261107e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c690612b62565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661087461107e565b73ffffffffffffffffffffffffffffffffffffffff161461089457600080fd5b80600e8190555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108df61107e565b73ffffffffffffffffffffffffffffffffffffffff16146108ff57600080fd5b600047905061090d8161196e565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61096161107e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e590612b62565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610aed61107e565b73ffffffffffffffffffffffffffffffffffffffff1614610b0d57600080fd5b600c548360ff1611158015610b275750600c548260ff1611155b8015610b375750600c54600b5411155b610b76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6d90612c02565b60405180910390fd5b8260ff166009819055508160ff16600a819055508060ff16600b81905550505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f4755415244000000000000000000000000000000000000000000000000000000815250905090565b6000610c13610c0c61107e565b8484611251565b6001905092915050565b610c2561107e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca990612b62565b60405180910390fd5b60005b8151811015610d6957600160056000848481518110610cfd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d6190612f6e565b915050610cb5565b5050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dae61107e565b73ffffffffffffffffffffffffffffffffffffffff1614610dce57600080fd5b6000610dd930610910565b9050610de481611b1e565b50565b610def61107e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7390612b62565b60405180910390fd5b601360149054906101000a900460ff1615610ecc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec390612be2565b60405180910390fd5b610ee6610ed830610910565b47610ee1610b99565b611c08565b6001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff02191690831515021790555061012c42610f2a9190612d58565b600781905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080831415610fcc576000905061102e565b60008284610fda9190612ddf565b9050828482610fe99190612dae565b14611029576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102090612b42565b60405180910390fd5b809150505b92915050565b600061107683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d2c565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156110f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ed90612bc2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115d90612b02565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112449190612c22565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b890612ba2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611331576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132890612ae2565b60405180910390fd5b60008111611374576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136b90612b82565b60405180910390fd5b61138b600b54600954611d8f90919063ffffffff16565b600881905550611399610b99565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561140757506113d7610b99565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156118fa57600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114b05750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6114b957600080fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156115645750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115ba5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156115c7575060075442105b1561167757600d548111156115db57600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061162657600080fd5b601e426116339190612d58565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156117225750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117785750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561179b57611794600b54600a54611d8f90919063ffffffff16565b6008819055505b601360159054906101000a900460ff161580156118065750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561181e5750601360169054906101000a900460ff165b80156118745750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118f95760075442116118bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b490612ac2565b60405180910390fd5b60006118c830610910565b9050600e548111156118f7576118dd81611b1e565b600047905060008111156118f5576118f44761196e565b5b505b505b5b611905838383611ded565b505050565b6000838311158290611952576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119499190612aa0565b60405180910390fd5b50600083856119619190612e39565b9050809150509392505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6119d160056119c3600a8661103490919063ffffffff16565b610fb990919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156119fc573d6000803e3d6000fd5b50601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611a606023611a5260648661103490919063ffffffff16565b610fb990919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611a8b573d6000803e3d6000fd5b50601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611aef600f611ae160648661103490919063ffffffff16565b610fb990919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611b1a573d6000803e3d6000fd5b5050565b6000611b366002600b5461103490919063ffffffff16565b90506000611b4f82600a54611d8f90919063ffffffff16565b90506000611b6a600b54600a54611d8f90919063ffffffff16565b90506000611b9382611b858588610fb990919063ffffffff16565b61103490919063ffffffff16565b9050611b9e81612028565b611c01611bb4828761232290919063ffffffff16565b611bd985611bcb8847610fb990919063ffffffff16565b61103490919063ffffffff16565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611c08565b5050505050565b6001601360156101000a81548160ff021916908315150217905550611c5030601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685611086565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b8152600401611cb796959493929190612a24565b6060604051808303818588803b158015611cd057600080fd5b505af1158015611ce4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611d0991906126a9565b5050506000601360156101000a81548160ff021916908315150217905550505050565b60008083118290611d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6a9190612aa0565b60405180910390fd5b5060008385611d829190612dae565b9050809150509392505050565b6000808284611d9e9190612d58565b905083811015611de3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dda90612b22565b60405180910390fd5b8091505092915050565b600080611df98361236c565b91509150611e4f83600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461232290919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ee482600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d8f90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f7981600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d8f90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516120199190612c22565b60405180910390a35050505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612086577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156120b45781602001602082028036833780820191505090505b50905030816000815181106120f2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561219457600080fd5b505afa1580156121a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121cc91906124fd565b81600181518110612206577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061226d30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611086565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122d1959493929190612c3d565b600060405180830381600087803b1580156122eb57600080fd5b505af11580156122ff573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600061236483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061190a565b905092915050565b600080600061239a6103e861238c60085487610fb990919063ffffffff16565b61103490919063ffffffff16565b905060006123b1828661232290919063ffffffff16565b90508082935093505050915091565b60006123d36123ce84612cd7565b612cb2565b905080838252602082019050828560208602820111156123f257600080fd5b60005b858110156124225781612408888261242c565b8452602084019350602083019250506001810190506123f5565b5050509392505050565b60008135905061243b81613322565b92915050565b60008151905061245081613322565b92915050565b600082601f83011261246757600080fd5b81356124778482602086016123c0565b91505092915050565b60008151905061248f81613339565b92915050565b6000813590506124a481613350565b92915050565b6000815190506124b981613350565b92915050565b6000813590506124ce81613367565b92915050565b6000602082840312156124e657600080fd5b60006124f48482850161242c565b91505092915050565b60006020828403121561250f57600080fd5b600061251d84828501612441565b91505092915050565b6000806040838503121561253957600080fd5b60006125478582860161242c565b92505060206125588582860161242c565b9150509250929050565b60008060006060848603121561257757600080fd5b60006125858682870161242c565b93505060206125968682870161242c565b92505060406125a786828701612495565b9150509250925092565b600080604083850312156125c457600080fd5b60006125d28582860161242c565b92505060206125e385828601612495565b9150509250929050565b6000602082840312156125ff57600080fd5b600082013567ffffffffffffffff81111561261957600080fd5b61262584828501612456565b91505092915050565b60006020828403121561264057600080fd5b600061264e84828501612480565b91505092915050565b60006020828403121561266957600080fd5b600061267784828501612495565b91505092915050565b60006020828403121561269257600080fd5b60006126a0848285016124aa565b91505092915050565b6000806000606084860312156126be57600080fd5b60006126cc868287016124aa565b93505060206126dd868287016124aa565b92505060406126ee868287016124aa565b9150509250925092565b60008060006060848603121561270d57600080fd5b600061271b868287016124bf565b935050602061272c868287016124bf565b925050604061273d868287016124bf565b9150509250925092565b6000612753838361276e565b60208301905092915050565b61276881612ec2565b82525050565b61277781612e6d565b82525050565b61278681612e6d565b82525050565b600061279782612d13565b6127a18185612d36565b93506127ac83612d03565b8060005b838110156127dd5781516127c48882612747565b97506127cf83612d29565b9250506001810190506127b0565b5085935050505092915050565b6127f381612e7f565b82525050565b61280281612ed4565b82525050565b600061281382612d1e565b61281d8185612d47565b935061282d818560208601612f0a565b61283681613044565b840191505092915050565b600061284e602883612d47565b915061285982613055565b604082019050919050565b6000612871602383612d47565b915061287c826130a4565b604082019050919050565b6000612894602283612d47565b915061289f826130f3565b604082019050919050565b60006128b7601b83612d47565b91506128c282613142565b602082019050919050565b60006128da602183612d47565b91506128e58261316b565b604082019050919050565b60006128fd602083612d47565b9150612908826131ba565b602082019050919050565b6000612920602983612d47565b915061292b826131e3565b604082019050919050565b6000612943602583612d47565b915061294e82613232565b604082019050919050565b6000612966602483612d47565b915061297182613281565b604082019050919050565b6000612989601783612d47565b9150612994826132d0565b602082019050919050565b60006129ac601d83612d47565b91506129b7826132f9565b602082019050919050565b6129cb81612eab565b82525050565b6129da81612eb5565b82525050565b60006020820190506129f5600083018461277d565b92915050565b6000604082019050612a10600083018561275f565b612a1d60208301846129c2565b9392505050565b600060c082019050612a39600083018961277d565b612a4660208301886129c2565b612a5360408301876127f9565b612a6060608301866127f9565b612a6d608083018561277d565b612a7a60a08301846129c2565b979650505050505050565b6000602082019050612a9a60008301846127ea565b92915050565b60006020820190508181036000830152612aba8184612808565b905092915050565b60006020820190508181036000830152612adb81612841565b9050919050565b60006020820190508181036000830152612afb81612864565b9050919050565b60006020820190508181036000830152612b1b81612887565b9050919050565b60006020820190508181036000830152612b3b816128aa565b9050919050565b60006020820190508181036000830152612b5b816128cd565b9050919050565b60006020820190508181036000830152612b7b816128f0565b9050919050565b60006020820190508181036000830152612b9b81612913565b9050919050565b60006020820190508181036000830152612bbb81612936565b9050919050565b60006020820190508181036000830152612bdb81612959565b9050919050565b60006020820190508181036000830152612bfb8161297c565b9050919050565b60006020820190508181036000830152612c1b8161299f565b9050919050565b6000602082019050612c3760008301846129c2565b92915050565b600060a082019050612c5260008301886129c2565b612c5f60208301876127f9565b8181036040830152612c71818661278c565b9050612c80606083018561277d565b612c8d60808301846129c2565b9695505050505050565b6000602082019050612cac60008301846129d1565b92915050565b6000612cbc612ccd565b9050612cc88282612f3d565b919050565b6000604051905090565b600067ffffffffffffffff821115612cf257612cf1613015565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612d6382612eab565b9150612d6e83612eab565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612da357612da2612fb7565b5b828201905092915050565b6000612db982612eab565b9150612dc483612eab565b925082612dd457612dd3612fe6565b5b828204905092915050565b6000612dea82612eab565b9150612df583612eab565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612e2e57612e2d612fb7565b5b828202905092915050565b6000612e4482612eab565b9150612e4f83612eab565b925082821015612e6257612e61612fb7565b5b828203905092915050565b6000612e7882612e8b565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612ecd82612ee6565b9050919050565b6000612edf82612eab565b9050919050565b6000612ef182612ef8565b9050919050565b6000612f0382612e8b565b9050919050565b60005b83811015612f28578082015181840152602081019050612f0d565b83811115612f37576000848401525b50505050565b612f4682613044565b810181811067ffffffffffffffff82111715612f6557612f64613015565b5b80604052505050565b6000612f7982612eab565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612fac57612fab612fb7565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f53656c6c732070726f6869626974656420666f7220746865206669727374203560008201527f206d696e75746573000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f43616e6e6f742073657420666565732061626f7665206d6178696d756d000000600082015250565b61332b81612e6d565b811461333657600080fd5b50565b61334281612e7f565b811461334d57600080fd5b50565b61335981612eab565b811461336457600080fd5b50565b61337081612eb5565b811461337b57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c22e9196dff6cf4cc3796177f2583ceecd537a92fb240429757fab4560183e3964736f6c63430008040033

Deployed Bytecode

0x6080604052600436106101185760003560e01c806370a08231116100a0578063a9059cbb11610064578063a9059cbb14610384578063b515566a146103c1578063c3c8cd80146103ea578063c9567bf914610401578063dd62ed3e146104185761011f565b806370a08231146102b1578063715018a6146102ee5780637e37e9bb146103055780638da5cb5b1461032e57806395d89b41146103595761011f565b806323b872dd116100e757806323b872dd146101e0578063273123b71461021d578063313ce567146102465780634ea18fab146102715780636fc3eaec1461029a5761011f565b806306fdde0314610124578063095ea7b31461014f57806316114acd1461018c57806318160ddd146101b55761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610455565b6040516101469190612aa0565b60405180910390f35b34801561015b57600080fd5b50610176600480360381019061017191906125b1565b610492565b6040516101839190612a85565b60405180910390f35b34801561019857600080fd5b506101b360048036038101906101ae91906124d4565b6104b0565b005b3480156101c157600080fd5b506101ca610652565b6040516101d79190612c22565b60405180910390f35b3480156101ec57600080fd5b5061020760048036038101906102029190612562565b610661565b6040516102149190612a85565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f91906124d4565b61073a565b005b34801561025257600080fd5b5061025b61082a565b6040516102689190612c97565b60405180910390f35b34801561027d57600080fd5b5061029860048036038101906102939190612657565b610833565b005b3480156102a657600080fd5b506102af61089e565b005b3480156102bd57600080fd5b506102d860048036038101906102d391906124d4565b610910565b6040516102e59190612c22565b60405180910390f35b3480156102fa57600080fd5b50610303610959565b005b34801561031157600080fd5b5061032c600480360381019061032791906126f8565b610aac565b005b34801561033a57600080fd5b50610343610b99565b60405161035091906129e0565b60405180910390f35b34801561036557600080fd5b5061036e610bc2565b60405161037b9190612aa0565b60405180910390f35b34801561039057600080fd5b506103ab60048036038101906103a691906125b1565b610bff565b6040516103b89190612a85565b60405180910390f35b3480156103cd57600080fd5b506103e860048036038101906103e391906125ed565b610c1d565b005b3480156103f657600080fd5b506103ff610d6d565b005b34801561040d57600080fd5b50610416610de7565b005b34801561042457600080fd5b5061043f600480360381019061043a9190612526565b610f32565b60405161044c9190612c22565b60405180910390f35b60606040518060400160405280600c81526020017f477561726469616e20426f740000000000000000000000000000000000000000815250905090565b60006104a661049f61107e565b8484611086565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166104f161107e565b73ffffffffffffffffffffffffffffffffffffffff161461051157600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161058e91906129e0565b60206040518083038186803b1580156105a657600080fd5b505afa1580156105ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105de9190612680565b6040518363ffffffff1660e01b81526004016105fb9291906129fb565b602060405180830381600087803b15801561061557600080fd5b505af1158015610629573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064d919061262e565b505050565b6000662386f26fc10000905090565b600061066e848484611251565b61072f8461067a61107e565b61072a8560405180606001604052806028815260200161337f60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106e061107e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461190a9092919063ffffffff16565b611086565b600190509392505050565b61074261107e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c690612b62565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661087461107e565b73ffffffffffffffffffffffffffffffffffffffff161461089457600080fd5b80600e8190555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108df61107e565b73ffffffffffffffffffffffffffffffffffffffff16146108ff57600080fd5b600047905061090d8161196e565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61096161107e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e590612b62565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610aed61107e565b73ffffffffffffffffffffffffffffffffffffffff1614610b0d57600080fd5b600c548360ff1611158015610b275750600c548260ff1611155b8015610b375750600c54600b5411155b610b76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6d90612c02565b60405180910390fd5b8260ff166009819055508160ff16600a819055508060ff16600b81905550505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f4755415244000000000000000000000000000000000000000000000000000000815250905090565b6000610c13610c0c61107e565b8484611251565b6001905092915050565b610c2561107e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca990612b62565b60405180910390fd5b60005b8151811015610d6957600160056000848481518110610cfd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d6190612f6e565b915050610cb5565b5050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dae61107e565b73ffffffffffffffffffffffffffffffffffffffff1614610dce57600080fd5b6000610dd930610910565b9050610de481611b1e565b50565b610def61107e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7390612b62565b60405180910390fd5b601360149054906101000a900460ff1615610ecc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec390612be2565b60405180910390fd5b610ee6610ed830610910565b47610ee1610b99565b611c08565b6001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff02191690831515021790555061012c42610f2a9190612d58565b600781905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080831415610fcc576000905061102e565b60008284610fda9190612ddf565b9050828482610fe99190612dae565b14611029576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102090612b42565b60405180910390fd5b809150505b92915050565b600061107683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d2c565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156110f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ed90612bc2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115d90612b02565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112449190612c22565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b890612ba2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611331576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132890612ae2565b60405180910390fd5b60008111611374576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136b90612b82565b60405180910390fd5b61138b600b54600954611d8f90919063ffffffff16565b600881905550611399610b99565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561140757506113d7610b99565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156118fa57600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114b05750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6114b957600080fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156115645750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115ba5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156115c7575060075442105b1561167757600d548111156115db57600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061162657600080fd5b601e426116339190612d58565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156117225750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117785750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561179b57611794600b54600a54611d8f90919063ffffffff16565b6008819055505b601360159054906101000a900460ff161580156118065750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561181e5750601360169054906101000a900460ff165b80156118745750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118f95760075442116118bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b490612ac2565b60405180910390fd5b60006118c830610910565b9050600e548111156118f7576118dd81611b1e565b600047905060008111156118f5576118f44761196e565b5b505b505b5b611905838383611ded565b505050565b6000838311158290611952576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119499190612aa0565b60405180910390fd5b50600083856119619190612e39565b9050809150509392505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6119d160056119c3600a8661103490919063ffffffff16565b610fb990919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156119fc573d6000803e3d6000fd5b50601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611a606023611a5260648661103490919063ffffffff16565b610fb990919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611a8b573d6000803e3d6000fd5b50601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611aef600f611ae160648661103490919063ffffffff16565b610fb990919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611b1a573d6000803e3d6000fd5b5050565b6000611b366002600b5461103490919063ffffffff16565b90506000611b4f82600a54611d8f90919063ffffffff16565b90506000611b6a600b54600a54611d8f90919063ffffffff16565b90506000611b9382611b858588610fb990919063ffffffff16565b61103490919063ffffffff16565b9050611b9e81612028565b611c01611bb4828761232290919063ffffffff16565b611bd985611bcb8847610fb990919063ffffffff16565b61103490919063ffffffff16565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611c08565b5050505050565b6001601360156101000a81548160ff021916908315150217905550611c5030601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685611086565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b8152600401611cb796959493929190612a24565b6060604051808303818588803b158015611cd057600080fd5b505af1158015611ce4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611d0991906126a9565b5050506000601360156101000a81548160ff021916908315150217905550505050565b60008083118290611d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6a9190612aa0565b60405180910390fd5b5060008385611d829190612dae565b9050809150509392505050565b6000808284611d9e9190612d58565b905083811015611de3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dda90612b22565b60405180910390fd5b8091505092915050565b600080611df98361236c565b91509150611e4f83600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461232290919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ee482600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d8f90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f7981600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d8f90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516120199190612c22565b60405180910390a35050505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612086577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156120b45781602001602082028036833780820191505090505b50905030816000815181106120f2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561219457600080fd5b505afa1580156121a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121cc91906124fd565b81600181518110612206577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061226d30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611086565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122d1959493929190612c3d565b600060405180830381600087803b1580156122eb57600080fd5b505af11580156122ff573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600061236483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061190a565b905092915050565b600080600061239a6103e861238c60085487610fb990919063ffffffff16565b61103490919063ffffffff16565b905060006123b1828661232290919063ffffffff16565b90508082935093505050915091565b60006123d36123ce84612cd7565b612cb2565b905080838252602082019050828560208602820111156123f257600080fd5b60005b858110156124225781612408888261242c565b8452602084019350602083019250506001810190506123f5565b5050509392505050565b60008135905061243b81613322565b92915050565b60008151905061245081613322565b92915050565b600082601f83011261246757600080fd5b81356124778482602086016123c0565b91505092915050565b60008151905061248f81613339565b92915050565b6000813590506124a481613350565b92915050565b6000815190506124b981613350565b92915050565b6000813590506124ce81613367565b92915050565b6000602082840312156124e657600080fd5b60006124f48482850161242c565b91505092915050565b60006020828403121561250f57600080fd5b600061251d84828501612441565b91505092915050565b6000806040838503121561253957600080fd5b60006125478582860161242c565b92505060206125588582860161242c565b9150509250929050565b60008060006060848603121561257757600080fd5b60006125858682870161242c565b93505060206125968682870161242c565b92505060406125a786828701612495565b9150509250925092565b600080604083850312156125c457600080fd5b60006125d28582860161242c565b92505060206125e385828601612495565b9150509250929050565b6000602082840312156125ff57600080fd5b600082013567ffffffffffffffff81111561261957600080fd5b61262584828501612456565b91505092915050565b60006020828403121561264057600080fd5b600061264e84828501612480565b91505092915050565b60006020828403121561266957600080fd5b600061267784828501612495565b91505092915050565b60006020828403121561269257600080fd5b60006126a0848285016124aa565b91505092915050565b6000806000606084860312156126be57600080fd5b60006126cc868287016124aa565b93505060206126dd868287016124aa565b92505060406126ee868287016124aa565b9150509250925092565b60008060006060848603121561270d57600080fd5b600061271b868287016124bf565b935050602061272c868287016124bf565b925050604061273d868287016124bf565b9150509250925092565b6000612753838361276e565b60208301905092915050565b61276881612ec2565b82525050565b61277781612e6d565b82525050565b61278681612e6d565b82525050565b600061279782612d13565b6127a18185612d36565b93506127ac83612d03565b8060005b838110156127dd5781516127c48882612747565b97506127cf83612d29565b9250506001810190506127b0565b5085935050505092915050565b6127f381612e7f565b82525050565b61280281612ed4565b82525050565b600061281382612d1e565b61281d8185612d47565b935061282d818560208601612f0a565b61283681613044565b840191505092915050565b600061284e602883612d47565b915061285982613055565b604082019050919050565b6000612871602383612d47565b915061287c826130a4565b604082019050919050565b6000612894602283612d47565b915061289f826130f3565b604082019050919050565b60006128b7601b83612d47565b91506128c282613142565b602082019050919050565b60006128da602183612d47565b91506128e58261316b565b604082019050919050565b60006128fd602083612d47565b9150612908826131ba565b602082019050919050565b6000612920602983612d47565b915061292b826131e3565b604082019050919050565b6000612943602583612d47565b915061294e82613232565b604082019050919050565b6000612966602483612d47565b915061297182613281565b604082019050919050565b6000612989601783612d47565b9150612994826132d0565b602082019050919050565b60006129ac601d83612d47565b91506129b7826132f9565b602082019050919050565b6129cb81612eab565b82525050565b6129da81612eb5565b82525050565b60006020820190506129f5600083018461277d565b92915050565b6000604082019050612a10600083018561275f565b612a1d60208301846129c2565b9392505050565b600060c082019050612a39600083018961277d565b612a4660208301886129c2565b612a5360408301876127f9565b612a6060608301866127f9565b612a6d608083018561277d565b612a7a60a08301846129c2565b979650505050505050565b6000602082019050612a9a60008301846127ea565b92915050565b60006020820190508181036000830152612aba8184612808565b905092915050565b60006020820190508181036000830152612adb81612841565b9050919050565b60006020820190508181036000830152612afb81612864565b9050919050565b60006020820190508181036000830152612b1b81612887565b9050919050565b60006020820190508181036000830152612b3b816128aa565b9050919050565b60006020820190508181036000830152612b5b816128cd565b9050919050565b60006020820190508181036000830152612b7b816128f0565b9050919050565b60006020820190508181036000830152612b9b81612913565b9050919050565b60006020820190508181036000830152612bbb81612936565b9050919050565b60006020820190508181036000830152612bdb81612959565b9050919050565b60006020820190508181036000830152612bfb8161297c565b9050919050565b60006020820190508181036000830152612c1b8161299f565b9050919050565b6000602082019050612c3760008301846129c2565b92915050565b600060a082019050612c5260008301886129c2565b612c5f60208301876127f9565b8181036040830152612c71818661278c565b9050612c80606083018561277d565b612c8d60808301846129c2565b9695505050505050565b6000602082019050612cac60008301846129d1565b92915050565b6000612cbc612ccd565b9050612cc88282612f3d565b919050565b6000604051905090565b600067ffffffffffffffff821115612cf257612cf1613015565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612d6382612eab565b9150612d6e83612eab565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612da357612da2612fb7565b5b828201905092915050565b6000612db982612eab565b9150612dc483612eab565b925082612dd457612dd3612fe6565b5b828204905092915050565b6000612dea82612eab565b9150612df583612eab565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612e2e57612e2d612fb7565b5b828202905092915050565b6000612e4482612eab565b9150612e4f83612eab565b925082821015612e6257612e61612fb7565b5b828203905092915050565b6000612e7882612e8b565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612ecd82612ee6565b9050919050565b6000612edf82612eab565b9050919050565b6000612ef182612ef8565b9050919050565b6000612f0382612e8b565b9050919050565b60005b83811015612f28578082015181840152602081019050612f0d565b83811115612f37576000848401525b50505050565b612f4682613044565b810181811067ffffffffffffffff82111715612f6557612f64613015565b5b80604052505050565b6000612f7982612eab565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612fac57612fab612fb7565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f53656c6c732070726f6869626974656420666f7220746865206669727374203560008201527f206d696e75746573000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f43616e6e6f742073657420666565732061626f7665206d6178696d756d000000600082015250565b61332b81612e6d565b811461333657600080fd5b50565b61334281612e7f565b811461334d57600080fd5b50565b61335981612eab565b811461336457600080fd5b50565b61337081612eb5565b811461337b57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c22e9196dff6cf4cc3796177f2583ceecd537a92fb240429757fab4560183e3964736f6c63430008040033

Deployed Bytecode Sourcemap

3643:9552:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5984:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6815:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12936:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6261:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6984:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11718:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6170:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7626:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12489:194;;;;;;;;;;;;;:::i;:::-;;6364:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2722:148;;;;;;;;;;;;;:::i;:::-;;7308:310;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2508:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6075:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6489:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11542:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12284:193;;;;;;;;;;;;;:::i;:::-;;11236:294;;;;;;;;;;;;;:::i;:::-;;6664:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5984:83;6021:13;6054:5;;;;;;;;;;;;;;;;;6047:12;;5984:83;:::o;6815:161::-;6890:4;6907:39;6916:12;:10;:12::i;:::-;6930:7;6939:6;6907:8;:39::i;:::-;6964:4;6957:11;;6815:161;;;;:::o;12936:256::-;13025:15;;;;;;;;;;;13009:31;;:12;:10;:12::i;:::-;:31;;;13001:40;;;;;;13052:20;13082:12;13052:43;;13106:13;:22;;;13129:15;;;;;;;;;;;13145:13;:23;;;13177:4;13145:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13106:78;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12936:256;;:::o;6261:95::-;6314:7;4097:17;6334:14;;6261:95;:::o;6984:313::-;7082:4;7099:36;7109:6;7117:9;7128:6;7099:9;:36::i;:::-;7146:121;7155:6;7163:12;:10;:12::i;:::-;7177:89;7215:6;7177:89;;;;;;;;;;;;;;;;;:11;:19;7189:6;7177:19;;;;;;;;;;;;;;;:33;7197:12;:10;:12::i;:::-;7177:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7146:8;:121::i;:::-;7285:4;7278:11;;6984:313;;;;;:::o;11718:88::-;2645:12;:10;:12::i;:::-;2635:22;;:6;;;;;;;;;;:22;;;2627:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11793:5:::1;11778:4;:12;11783:6;11778:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;11718:88:::0;:::o;6170:83::-;6211:5;4502:1;6229:16;;6170:83;:::o;7626:142::-;7712:15;;;;;;;;;;;7696:31;;:12;:10;:12::i;:::-;:31;;;7688:40;;;;;;7752:6;7739:10;:19;;;;7626:142;:::o;12489:194::-;12555:15;;;;;;;;;;;12539:31;;:12;:10;:12::i;:::-;:31;;;12531:40;;;;;;12582:26;12611:21;12582:50;;12643:32;12656:18;12643:12;:32::i;:::-;12489:194;:::o;6364:117::-;6430:7;6457;:16;6465:7;6457:16;;;;;;;;;;;;;;;;6450:23;;6364:117;;;:::o;2722:148::-;2645:12;:10;:12::i;:::-;2635:22;;:6;;;;;;;;;;:22;;;2627:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2829:1:::1;2792:40;;2813:6;::::0;::::1;;;;;;;;2792:40;;;;;;;;;;;;2860:1;2843:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2722:148::o:0;7308:310::-;7418:15;;;;;;;;;;;7402:31;;:12;:10;:12::i;:::-;:31;;;7394:40;;;;;;7462:6;;7453:5;:15;;;;:34;;;;;7481:6;;7472:5;:15;;;;7453:34;:54;;;;;7501:6;;7491;;:16;;7453:54;7445:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;7558:5;7551:12;;:4;:12;;;;7581:5;7574:12;;:4;:12;;;;7606:4;7597:13;;:6;:13;;;;7308:310;;;:::o;2508:79::-;2546:7;2573:6;;;;;;;;;;;2566:13;;2508:79;:::o;6075:87::-;6114:13;6147:7;;;;;;;;;;;;;;;;;6140:14;;6075:87;:::o;6489:167::-;6567:4;6584:42;6594:12;:10;:12::i;:::-;6608:9;6619:6;6584:9;:42::i;:::-;6644:4;6637:11;;6489:167;;;;:::o;11542:164::-;2645:12;:10;:12::i;:::-;2635:22;;:6;;;;;;;;;;:22;;;2627:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11616:6:::1;11611:88;11632:5;:12;11628:1;:16;11611:88;;;11683:4;11666;:14;11671:5;11677:1;11671:8;;;;;;;;;;;;;;;;;;;;;;11666:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11646:3;;;;;:::i;:::-;;;;11611:88;;;;11542:164:::0;:::o;12284:193::-;12350:15;;;;;;;;;;;12334:31;;:12;:10;:12::i;:::-;:31;;;12326:40;;;;;;12377:23;12403:24;12421:4;12403:9;:24::i;:::-;12377:50;;12438:31;12453:15;12438:14;:31::i;:::-;12284:193;:::o;11236:294::-;2645:12;:10;:12::i;:::-;2635:22;;:6;;;;;;;;;;:22;;;2627:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11300:11:::1;;;;;;;;;;;11299:12;11291:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11349:68;11362:24;11380:4;11362:9;:24::i;:::-;11387:21;11409:7;:5;:7::i;:::-;11349:12;:68::i;:::-;11442:4;11428:11;;:18;;;;;;;;;;;;;;;;;;11471:4;11457:11;;:18;;;;;;;;;;;;;;;;;;11512:9;11493:15;:29;;;;:::i;:::-;11486:4;:36;;;;11236:294::o:0;6664:143::-;6745:7;6772:11;:18;6784:5;6772:18;;;;;;;;;;;;;;;:27;6791:7;6772:27;;;;;;;;;;;;;;;;6765:34;;6664:143;;;;:::o;1561:246::-;1619:7;1648:1;1643;:6;1639:47;;;1673:1;1666:8;;;;1639:47;1696:9;1712:1;1708;:5;;;;:::i;:::-;1696:17;;1741:1;1736;1732;:5;;;;:::i;:::-;:10;1724:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1798:1;1791:8;;;1561:246;;;;;:::o;1815:132::-;1873:7;1900:39;1904:1;1907;1900:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1893:46;;1815:132;;;;:::o;226:98::-;279:7;306:10;299:17;;226:98;:::o;7779:335::-;7889:1;7872:19;;:5;:19;;;;7864:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7970:1;7951:21;;:7;:21;;;;7943:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8052:6;8022:11;:18;8034:5;8022:18;;;;;;;;;;;;;;;:27;8041:7;8022:27;;;;;;;;;;;;;;;:36;;;;8090:7;8074:32;;8083:5;8074:32;;;8099:6;8074:32;;;;;;:::i;:::-;;;;;;;;7779:335;;;:::o;8122:1671::-;8226:1;8210:18;;:4;:18;;;;8202:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8303:1;8289:16;;:2;:16;;;;8281:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8373:1;8364:6;:10;8356:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8440:16;8449:6;;8440:4;;:8;;:16;;;;:::i;:::-;8433:4;:23;;;;8479:7;:5;:7::i;:::-;8471:15;;:4;:15;;;;:32;;;;;8496:7;:5;:7::i;:::-;8490:13;;:2;:13;;;;8471:32;8467:1271;;;8529:4;:10;8534:4;8529:10;;;;;;;;;;;;;;;;;;;;;;;;;8528:11;:24;;;;;8544:4;:8;8549:2;8544:8;;;;;;;;;;;;;;;;;;;;;;;;;8543:9;8528:24;8520:33;;;;;;8580:13;;;;;;;;;;;8572:21;;:4;:21;;;:55;;;;;8611:15;;;;;;;;;;;8597:30;;:2;:30;;;;8572:55;:83;;;;;8633:18;:22;8652:2;8633:22;;;;;;;;;;;;;;;;;;;;;;;;;8631:24;8572:83;:111;;;;;8678:4;;8660:15;:22;8572:111;8568:333;;;8750:12;;8740:6;:22;;8732:31;;;;;;8805:15;8790:8;:12;8799:2;8790:12;;;;;;;;;;;;;;;;:30;8782:39;;;;;;8874:10;8855:15;:30;;;;:::i;:::-;8840:8;:12;8849:2;8840:12;;;;;;;;;;;;;;;:45;;;;8568:333;8953:13;;;;;;;;;;;8947:19;;:2;:19;;;:55;;;;;8986:15;;;;;;;;;;;8970:32;;:4;:32;;;;8947:55;:85;;;;;9008:18;:24;9027:4;9008:24;;;;;;;;;;;;;;;;;;;;;;;;;9006:26;8947:85;8943:149;;;9060:16;9069:6;;9060:4;;:8;;:16;;;;:::i;:::-;9053:4;:23;;;;8943:149;9125:6;;;;;;;;;;;9124:7;:32;;;;;9143:13;;;;;;;;;;;9135:21;;:4;:21;;;;9124:32;:47;;;;;9160:11;;;;;;;;;;;9124:47;:76;;;;;9176:18;:24;9195:4;9176:24;;;;;;;;;;;;;;;;;;;;;;;;;9175:25;9124:76;9120:607;;;9247:4;;9229:15;:22;9221:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9314:28;9345:24;9363:4;9345:9;:24::i;:::-;9314:55;;9414:10;;9391:20;:33;9388:324;;;9448:36;9463:20;9448:14;:36::i;:::-;9507:26;9536:21;9507:50;;9604:1;9583:18;:22;9580:113;;;9634:35;9647:21;9634:12;:35::i;:::-;9580:113;9388:324;;9120:607;;8467:1271;9752:33;9770:4;9775:2;9778:6;9752:17;:33::i;:::-;8122:1671;;;:::o;1363:190::-;1449:7;1482:1;1477;:6;;1485:12;1469:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1509:9;1525:1;1521;:5;;;;:::i;:::-;1509:17;;1544:1;1537:8;;;1363:190;;;;;:::o;10992:232::-;11049:15;;;;;;;;;;;:24;;:47;11074:21;11093:1;11074:14;11085:2;11074:6;:10;;:14;;;;:::i;:::-;:18;;:21;;;;:::i;:::-;11049:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11107:15;;;;;;;;;;;:24;;:49;11132:23;11152:2;11132:15;11143:3;11132:6;:10;;:15;;;;:::i;:::-;:19;;:23;;;;:::i;:::-;11107:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11167:15;;;;;;;;;;;:24;;:49;11192:23;11212:2;11192:15;11203:3;11192:6;:10;;:15;;;;:::i;:::-;:19;;:23;;;;:::i;:::-;11167:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10992:232;:::o;10296:389::-;10360:12;10375:13;10386:1;10375:6;;:10;;:13;;;;:::i;:::-;10360:28;;10399:12;10414:14;10423:4;10414;;:8;;:14;;;;:::i;:::-;10399:29;;10439:11;10453:16;10462:6;;10453:4;;:8;;:16;;;;:::i;:::-;10439:30;;10480:17;10500:30;10526:3;10500:21;10516:4;10500:11;:15;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;10480:50;;10541:27;10558:9;10541:16;:27::i;:::-;10579:98;10592:26;10608:9;10592:11;:15;;:26;;;;:::i;:::-;10619:41;10655:4;10619:31;10645:4;10619:21;:25;;:31;;;;:::i;:::-;:35;;:41;;;;:::i;:::-;10661:15;;;;;;;;;;;10579:12;:98::i;:::-;10296:389;;;;;:::o;10693:288::-;4878:4;4869:6;;:13;;;;;;;;;;;;;;;;;;10799:60:::1;10816:4;10830:15;;;;;;;;;;;10847:11;10799:8;:60::i;:::-;10870:15;;;;;;;;;;;:31;;;10909:9;10928:4;10934:11;10946:1;10948::::0;10950:6:::1;10957:15;10870:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;4914:5:::0;4905:6;;:14;;;;;;;;;;;;;;;;;;10693:288;;;:::o;1955:189::-;2041:7;2073:1;2069;:5;2076:12;2061:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2100:9;2116:1;2112;:5;;;;:::i;:::-;2100:17;;2135:1;2128:8;;;1955:189;;;;;:::o;1032:179::-;1090:7;1110:9;1126:1;1122;:5;;;;:::i;:::-;1110:17;;1151:1;1146;:6;;1138:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1202:1;1195:8;;;1032:179;;;;:::o;11814:421::-;11913:22;11936:12;11952:20;11964:7;11952:11;:20::i;:::-;11912:60;;;;12001:28;12021:7;12001;:15;12009:6;12001:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11983:7;:15;11991:6;11983:15;;;;;;;;;;;;;;;:46;;;;12061:38;12084:14;12061:7;:18;12069:9;12061:18;;;;;;;;;;;;;;;;:22;;:38;;;;:::i;:::-;12040:7;:18;12048:9;12040:18;;;;;;;;;;;;;;;:59;;;;12136:32;12163:4;12136:7;:22;12152:4;12136:22;;;;;;;;;;;;;;;;:26;;:32;;;;:::i;:::-;12111:7;:22;12127:4;12111:22;;;;;;;;;;;;;;;:57;;;;12201:9;12184:43;;12193:6;12184:43;;;12212:14;12184:43;;;;;;:::i;:::-;;;;;;;;11814:421;;;;;:::o;9801:483::-;4878:4;4869:6;;:13;;;;;;;;;;;;;;;;;;9879:21:::1;9917:1;9903:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9879:40;;9948:4;9930;9935:1;9930:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;9974:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9964:4;9969:1;9964:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;10007:62;10024:4;10039:15;;;;;;;;;;;10057:11;10007:8;:62::i;:::-;10080:15;;;;;;;;;;;:66;;;10161:11;10187:1;10203:4;10230;10250:15;10080:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4893:1;4914:5:::0;4905:6;;:14;;;;;;;;;;;;;;;;;;9801:483;:::o;1219:136::-;1277:7;1304:43;1308:1;1311;1304:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1297:50;;1219:136;;;;:::o;12694:234::-;12754:7;12763;12783:12;12798:27;12820:4;12798:17;12810:4;;12798:7;:11;;:17;;;;:::i;:::-;:21;;:27;;;;:::i;:::-;12783:42;;12836:23;12862:17;12874:4;12862:7;:11;;:17;;;;:::i;:::-;12836:43;;12898:15;12915:4;12890:30;;;;;;12694:234;;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:139::-;731:5;769:6;756:20;747:29;;785:33;812:5;785:33;:::i;:::-;737:87;;;;:::o;830:143::-;887:5;918:6;912:13;903:22;;934:33;961:5;934:33;:::i;:::-;893:80;;;;:::o;996:303::-;1067:5;1116:3;1109:4;1101:6;1097:17;1093:27;1083:2;;1134:1;1131;1124:12;1083:2;1174:6;1161:20;1199:94;1289:3;1281:6;1274:4;1266:6;1262:17;1199:94;:::i;:::-;1190:103;;1073:226;;;;;:::o;1305:137::-;1359:5;1390:6;1384:13;1375:22;;1406:30;1430:5;1406:30;:::i;:::-;1365:77;;;;:::o;1448:139::-;1494:5;1532:6;1519:20;1510:29;;1548:33;1575:5;1548:33;:::i;:::-;1500:87;;;;:::o;1593:143::-;1650:5;1681:6;1675:13;1666:22;;1697:33;1724:5;1697:33;:::i;:::-;1656:80;;;;:::o;1742:135::-;1786:5;1824:6;1811:20;1802:29;;1840:31;1865:5;1840:31;:::i;:::-;1792:85;;;;:::o;1883:262::-;1942:6;1991:2;1979:9;1970:7;1966:23;1962:32;1959:2;;;2007:1;2004;1997:12;1959:2;2050:1;2075:53;2120:7;2111:6;2100:9;2096:22;2075:53;:::i;:::-;2065:63;;2021:117;1949:196;;;;:::o;2151:284::-;2221:6;2270:2;2258:9;2249:7;2245:23;2241:32;2238:2;;;2286:1;2283;2276:12;2238:2;2329:1;2354:64;2410:7;2401:6;2390:9;2386:22;2354:64;:::i;:::-;2344:74;;2300:128;2228:207;;;;:::o;2441:407::-;2509:6;2517;2566:2;2554:9;2545:7;2541:23;2537:32;2534:2;;;2582:1;2579;2572:12;2534:2;2625:1;2650:53;2695:7;2686:6;2675:9;2671:22;2650:53;:::i;:::-;2640:63;;2596:117;2752:2;2778:53;2823:7;2814:6;2803:9;2799:22;2778:53;:::i;:::-;2768:63;;2723:118;2524:324;;;;;:::o;2854:552::-;2931:6;2939;2947;2996:2;2984:9;2975:7;2971:23;2967:32;2964:2;;;3012:1;3009;3002:12;2964:2;3055:1;3080:53;3125:7;3116:6;3105:9;3101:22;3080:53;:::i;:::-;3070:63;;3026:117;3182:2;3208:53;3253:7;3244:6;3233:9;3229:22;3208:53;:::i;:::-;3198:63;;3153:118;3310:2;3336:53;3381:7;3372:6;3361:9;3357:22;3336:53;:::i;:::-;3326:63;;3281:118;2954:452;;;;;:::o;3412:407::-;3480:6;3488;3537:2;3525:9;3516:7;3512:23;3508:32;3505:2;;;3553:1;3550;3543:12;3505:2;3596:1;3621:53;3666:7;3657:6;3646:9;3642:22;3621:53;:::i;:::-;3611:63;;3567:117;3723:2;3749:53;3794:7;3785:6;3774:9;3770:22;3749:53;:::i;:::-;3739:63;;3694:118;3495:324;;;;;:::o;3825:405::-;3909:6;3958:2;3946:9;3937:7;3933:23;3929:32;3926:2;;;3974:1;3971;3964:12;3926:2;4045:1;4034:9;4030:17;4017:31;4075:18;4067:6;4064:30;4061:2;;;4107:1;4104;4097:12;4061:2;4135:78;4205:7;4196:6;4185:9;4181:22;4135:78;:::i;:::-;4125:88;;3988:235;3916:314;;;;:::o;4236:278::-;4303:6;4352:2;4340:9;4331:7;4327:23;4323:32;4320:2;;;4368:1;4365;4358:12;4320:2;4411:1;4436:61;4489:7;4480:6;4469:9;4465:22;4436:61;:::i;:::-;4426:71;;4382:125;4310:204;;;;:::o;4520:262::-;4579:6;4628:2;4616:9;4607:7;4603:23;4599:32;4596:2;;;4644:1;4641;4634:12;4596:2;4687:1;4712:53;4757:7;4748:6;4737:9;4733:22;4712:53;:::i;:::-;4702:63;;4658:117;4586:196;;;;:::o;4788:284::-;4858:6;4907:2;4895:9;4886:7;4882:23;4878:32;4875:2;;;4923:1;4920;4913:12;4875:2;4966:1;4991:64;5047:7;5038:6;5027:9;5023:22;4991:64;:::i;:::-;4981:74;;4937:128;4865:207;;;;:::o;5078:596::-;5166:6;5174;5182;5231:2;5219:9;5210:7;5206:23;5202:32;5199:2;;;5247:1;5244;5237:12;5199:2;5290:1;5315:64;5371:7;5362:6;5351:9;5347:22;5315:64;:::i;:::-;5305:74;;5261:128;5428:2;5454:64;5510:7;5501:6;5490:9;5486:22;5454:64;:::i;:::-;5444:74;;5399:129;5567:2;5593:64;5649:7;5640:6;5629:9;5625:22;5593:64;:::i;:::-;5583:74;;5538:129;5189:485;;;;;:::o;5680:540::-;5751:6;5759;5767;5816:2;5804:9;5795:7;5791:23;5787:32;5784:2;;;5832:1;5829;5822:12;5784:2;5875:1;5900:51;5943:7;5934:6;5923:9;5919:22;5900:51;:::i;:::-;5890:61;;5846:115;6000:2;6026:51;6069:7;6060:6;6049:9;6045:22;6026:51;:::i;:::-;6016:61;;5971:116;6126:2;6152:51;6195:7;6186:6;6175:9;6171:22;6152:51;:::i;:::-;6142:61;;6097:116;5774:446;;;;;:::o;6226:179::-;6295:10;6316:46;6358:3;6350:6;6316:46;:::i;:::-;6394:4;6389:3;6385:14;6371:28;;6306:99;;;;:::o;6411:147::-;6506:45;6545:5;6506:45;:::i;:::-;6501:3;6494:58;6484:74;;:::o;6564:108::-;6641:24;6659:5;6641:24;:::i;:::-;6636:3;6629:37;6619:53;;:::o;6678:118::-;6765:24;6783:5;6765:24;:::i;:::-;6760:3;6753:37;6743:53;;:::o;6832:732::-;6951:3;6980:54;7028:5;6980:54;:::i;:::-;7050:86;7129:6;7124:3;7050:86;:::i;:::-;7043:93;;7160:56;7210:5;7160:56;:::i;:::-;7239:7;7270:1;7255:284;7280:6;7277:1;7274:13;7255:284;;;7356:6;7350:13;7383:63;7442:3;7427:13;7383:63;:::i;:::-;7376:70;;7469:60;7522:6;7469:60;:::i;:::-;7459:70;;7315:224;7302:1;7299;7295:9;7290:14;;7255:284;;;7259:14;7555:3;7548:10;;6956:608;;;;;;;:::o;7570:109::-;7651:21;7666:5;7651:21;:::i;:::-;7646:3;7639:34;7629:50;;:::o;7685:147::-;7780:45;7819:5;7780:45;:::i;:::-;7775:3;7768:58;7758:74;;:::o;7838:364::-;7926:3;7954:39;7987:5;7954:39;:::i;:::-;8009:71;8073:6;8068:3;8009:71;:::i;:::-;8002:78;;8089:52;8134:6;8129:3;8122:4;8115:5;8111:16;8089:52;:::i;:::-;8166:29;8188:6;8166:29;:::i;:::-;8161:3;8157:39;8150:46;;7930:272;;;;;:::o;8208:366::-;8350:3;8371:67;8435:2;8430:3;8371:67;:::i;:::-;8364:74;;8447:93;8536:3;8447:93;:::i;:::-;8565:2;8560:3;8556:12;8549:19;;8354:220;;;:::o;8580:366::-;8722:3;8743:67;8807:2;8802:3;8743:67;:::i;:::-;8736:74;;8819:93;8908:3;8819:93;:::i;:::-;8937:2;8932:3;8928:12;8921:19;;8726:220;;;:::o;8952:366::-;9094:3;9115:67;9179:2;9174:3;9115:67;:::i;:::-;9108:74;;9191:93;9280:3;9191:93;:::i;:::-;9309:2;9304:3;9300:12;9293:19;;9098:220;;;:::o;9324:366::-;9466:3;9487:67;9551:2;9546:3;9487:67;:::i;:::-;9480:74;;9563:93;9652:3;9563:93;:::i;:::-;9681:2;9676:3;9672:12;9665:19;;9470:220;;;:::o;9696:366::-;9838:3;9859:67;9923:2;9918:3;9859:67;:::i;:::-;9852:74;;9935:93;10024:3;9935:93;:::i;:::-;10053:2;10048:3;10044:12;10037:19;;9842:220;;;:::o;10068:366::-;10210:3;10231:67;10295:2;10290:3;10231:67;:::i;:::-;10224:74;;10307:93;10396:3;10307:93;:::i;:::-;10425:2;10420:3;10416:12;10409:19;;10214:220;;;:::o;10440:366::-;10582:3;10603:67;10667:2;10662:3;10603:67;:::i;:::-;10596:74;;10679:93;10768:3;10679:93;:::i;:::-;10797:2;10792:3;10788:12;10781:19;;10586:220;;;:::o;10812:366::-;10954:3;10975:67;11039:2;11034:3;10975:67;:::i;:::-;10968:74;;11051:93;11140:3;11051:93;:::i;:::-;11169:2;11164:3;11160:12;11153:19;;10958:220;;;:::o;11184:366::-;11326:3;11347:67;11411:2;11406:3;11347:67;:::i;:::-;11340:74;;11423:93;11512:3;11423:93;:::i;:::-;11541:2;11536:3;11532:12;11525:19;;11330:220;;;:::o;11556:366::-;11698:3;11719:67;11783:2;11778:3;11719:67;:::i;:::-;11712:74;;11795:93;11884:3;11795:93;:::i;:::-;11913:2;11908:3;11904:12;11897:19;;11702:220;;;:::o;11928:366::-;12070:3;12091:67;12155:2;12150:3;12091:67;:::i;:::-;12084:74;;12167:93;12256:3;12167:93;:::i;:::-;12285:2;12280:3;12276:12;12269:19;;12074:220;;;:::o;12300:118::-;12387:24;12405:5;12387:24;:::i;:::-;12382:3;12375:37;12365:53;;:::o;12424:112::-;12507:22;12523:5;12507:22;:::i;:::-;12502:3;12495:35;12485:51;;:::o;12542:222::-;12635:4;12673:2;12662:9;12658:18;12650:26;;12686:71;12754:1;12743:9;12739:17;12730:6;12686:71;:::i;:::-;12640:124;;;;:::o;12770:348::-;12899:4;12937:2;12926:9;12922:18;12914:26;;12950:79;13026:1;13015:9;13011:17;13002:6;12950:79;:::i;:::-;13039:72;13107:2;13096:9;13092:18;13083:6;13039:72;:::i;:::-;12904:214;;;;;:::o;13124:807::-;13373:4;13411:3;13400:9;13396:19;13388:27;;13425:71;13493:1;13482:9;13478:17;13469:6;13425:71;:::i;:::-;13506:72;13574:2;13563:9;13559:18;13550:6;13506:72;:::i;:::-;13588:80;13664:2;13653:9;13649:18;13640:6;13588:80;:::i;:::-;13678;13754:2;13743:9;13739:18;13730:6;13678:80;:::i;:::-;13768:73;13836:3;13825:9;13821:19;13812:6;13768:73;:::i;:::-;13851;13919:3;13908:9;13904:19;13895:6;13851:73;:::i;:::-;13378:553;;;;;;;;;:::o;13937:210::-;14024:4;14062:2;14051:9;14047:18;14039:26;;14075:65;14137:1;14126:9;14122:17;14113:6;14075:65;:::i;:::-;14029:118;;;;:::o;14153:313::-;14266:4;14304:2;14293:9;14289:18;14281:26;;14353:9;14347:4;14343:20;14339:1;14328:9;14324:17;14317:47;14381:78;14454:4;14445:6;14381:78;:::i;:::-;14373:86;;14271:195;;;;:::o;14472:419::-;14638:4;14676:2;14665:9;14661:18;14653:26;;14725:9;14719:4;14715:20;14711:1;14700:9;14696:17;14689:47;14753:131;14879:4;14753:131;:::i;:::-;14745:139;;14643:248;;;:::o;14897:419::-;15063:4;15101:2;15090:9;15086:18;15078:26;;15150:9;15144:4;15140:20;15136:1;15125:9;15121:17;15114:47;15178:131;15304:4;15178:131;:::i;:::-;15170:139;;15068:248;;;:::o;15322:419::-;15488:4;15526:2;15515:9;15511:18;15503:26;;15575:9;15569:4;15565:20;15561:1;15550:9;15546:17;15539:47;15603:131;15729:4;15603:131;:::i;:::-;15595:139;;15493:248;;;:::o;15747:419::-;15913:4;15951:2;15940:9;15936:18;15928:26;;16000:9;15994:4;15990:20;15986:1;15975:9;15971:17;15964:47;16028:131;16154:4;16028:131;:::i;:::-;16020:139;;15918:248;;;:::o;16172:419::-;16338:4;16376:2;16365:9;16361:18;16353:26;;16425:9;16419:4;16415:20;16411:1;16400:9;16396:17;16389:47;16453:131;16579:4;16453:131;:::i;:::-;16445:139;;16343:248;;;:::o;16597:419::-;16763:4;16801:2;16790:9;16786:18;16778:26;;16850:9;16844:4;16840:20;16836:1;16825:9;16821:17;16814:47;16878:131;17004:4;16878:131;:::i;:::-;16870:139;;16768:248;;;:::o;17022:419::-;17188:4;17226:2;17215:9;17211:18;17203:26;;17275:9;17269:4;17265:20;17261:1;17250:9;17246:17;17239:47;17303:131;17429:4;17303:131;:::i;:::-;17295:139;;17193:248;;;:::o;17447:419::-;17613:4;17651:2;17640:9;17636:18;17628:26;;17700:9;17694:4;17690:20;17686:1;17675:9;17671:17;17664:47;17728:131;17854:4;17728:131;:::i;:::-;17720:139;;17618:248;;;:::o;17872:419::-;18038:4;18076:2;18065:9;18061:18;18053:26;;18125:9;18119:4;18115:20;18111:1;18100:9;18096:17;18089:47;18153:131;18279:4;18153:131;:::i;:::-;18145:139;;18043:248;;;:::o;18297:419::-;18463:4;18501:2;18490:9;18486:18;18478:26;;18550:9;18544:4;18540:20;18536:1;18525:9;18521:17;18514:47;18578:131;18704:4;18578:131;:::i;:::-;18570:139;;18468:248;;;:::o;18722:419::-;18888:4;18926:2;18915:9;18911:18;18903:26;;18975:9;18969:4;18965:20;18961:1;18950:9;18946:17;18939:47;19003:131;19129:4;19003:131;:::i;:::-;18995:139;;18893:248;;;:::o;19147:222::-;19240:4;19278:2;19267:9;19263:18;19255:26;;19291:71;19359:1;19348:9;19344:17;19335:6;19291:71;:::i;:::-;19245:124;;;;:::o;19375:831::-;19638:4;19676:3;19665:9;19661:19;19653:27;;19690:71;19758:1;19747:9;19743:17;19734:6;19690:71;:::i;:::-;19771:80;19847:2;19836:9;19832:18;19823:6;19771:80;:::i;:::-;19898:9;19892:4;19888:20;19883:2;19872:9;19868:18;19861:48;19926:108;20029:4;20020:6;19926:108;:::i;:::-;19918:116;;20044:72;20112:2;20101:9;20097:18;20088:6;20044:72;:::i;:::-;20126:73;20194:3;20183:9;20179:19;20170:6;20126:73;:::i;:::-;19643:563;;;;;;;;:::o;20212:214::-;20301:4;20339:2;20328:9;20324:18;20316:26;;20352:67;20416:1;20405:9;20401:17;20392:6;20352:67;:::i;:::-;20306:120;;;;:::o;20432:129::-;20466:6;20493:20;;:::i;:::-;20483:30;;20522:33;20550:4;20542:6;20522:33;:::i;:::-;20473:88;;;:::o;20567:75::-;20600:6;20633:2;20627:9;20617:19;;20607:35;:::o;20648:311::-;20725:4;20815:18;20807:6;20804:30;20801:2;;;20837:18;;:::i;:::-;20801:2;20887:4;20879:6;20875:17;20867:25;;20947:4;20941;20937:15;20929:23;;20730:229;;;:::o;20965:132::-;21032:4;21055:3;21047:11;;21085:4;21080:3;21076:14;21068:22;;21037:60;;;:::o;21103:114::-;21170:6;21204:5;21198:12;21188:22;;21177:40;;;:::o;21223:99::-;21275:6;21309:5;21303:12;21293:22;;21282:40;;;:::o;21328:113::-;21398:4;21430;21425:3;21421:14;21413:22;;21403:38;;;:::o;21447:184::-;21546:11;21580:6;21575:3;21568:19;21620:4;21615:3;21611:14;21596:29;;21558:73;;;;:::o;21637:169::-;21721:11;21755:6;21750:3;21743:19;21795:4;21790:3;21786:14;21771:29;;21733:73;;;;:::o;21812:305::-;21852:3;21871:20;21889:1;21871:20;:::i;:::-;21866:25;;21905:20;21923:1;21905:20;:::i;:::-;21900:25;;22059:1;21991:66;21987:74;21984:1;21981:81;21978:2;;;22065:18;;:::i;:::-;21978:2;22109:1;22106;22102:9;22095:16;;21856:261;;;;:::o;22123:185::-;22163:1;22180:20;22198:1;22180:20;:::i;:::-;22175:25;;22214:20;22232:1;22214:20;:::i;:::-;22209:25;;22253:1;22243:2;;22258:18;;:::i;:::-;22243:2;22300:1;22297;22293:9;22288:14;;22165:143;;;;:::o;22314:348::-;22354:7;22377:20;22395:1;22377:20;:::i;:::-;22372:25;;22411:20;22429:1;22411:20;:::i;:::-;22406:25;;22599:1;22531:66;22527:74;22524:1;22521:81;22516:1;22509:9;22502:17;22498:105;22495:2;;;22606:18;;:::i;:::-;22495:2;22654:1;22651;22647:9;22636:20;;22362:300;;;;:::o;22668:191::-;22708:4;22728:20;22746:1;22728:20;:::i;:::-;22723:25;;22762:20;22780:1;22762:20;:::i;:::-;22757:25;;22801:1;22798;22795:8;22792:2;;;22806:18;;:::i;:::-;22792:2;22851:1;22848;22844:9;22836:17;;22713:146;;;;:::o;22865:96::-;22902:7;22931:24;22949:5;22931:24;:::i;:::-;22920:35;;22910:51;;;:::o;22967:90::-;23001:7;23044:5;23037:13;23030:21;23019:32;;23009:48;;;:::o;23063:126::-;23100:7;23140:42;23133:5;23129:54;23118:65;;23108:81;;;:::o;23195:77::-;23232:7;23261:5;23250:16;;23240:32;;;:::o;23278:86::-;23313:7;23353:4;23346:5;23342:16;23331:27;;23321:43;;;:::o;23370:134::-;23428:9;23461:37;23492:5;23461:37;:::i;:::-;23448:50;;23438:66;;;:::o;23510:121::-;23568:9;23601:24;23619:5;23601:24;:::i;:::-;23588:37;;23578:53;;;:::o;23637:126::-;23687:9;23720:37;23751:5;23720:37;:::i;:::-;23707:50;;23697:66;;;:::o;23769:113::-;23819:9;23852:24;23870:5;23852:24;:::i;:::-;23839:37;;23829:53;;;:::o;23888:307::-;23956:1;23966:113;23980:6;23977:1;23974:13;23966:113;;;24065:1;24060:3;24056:11;24050:18;24046:1;24041:3;24037:11;24030:39;24002:2;23999:1;23995:10;23990:15;;23966:113;;;24097:6;24094:1;24091:13;24088:2;;;24177:1;24168:6;24163:3;24159:16;24152:27;24088:2;23937:258;;;;:::o;24201:281::-;24284:27;24306:4;24284:27;:::i;:::-;24276:6;24272:40;24414:6;24402:10;24399:22;24378:18;24366:10;24363:34;24360:62;24357:2;;;24425:18;;:::i;:::-;24357:2;24465:10;24461:2;24454:22;24244:238;;;:::o;24488:233::-;24527:3;24550:24;24568:5;24550:24;:::i;:::-;24541:33;;24596:66;24589:5;24586:77;24583:2;;;24666:18;;:::i;:::-;24583:2;24713:1;24706:5;24702:13;24695:20;;24531:190;;;:::o;24727:180::-;24775:77;24772:1;24765:88;24872:4;24869:1;24862:15;24896:4;24893:1;24886:15;24913:180;24961:77;24958:1;24951:88;25058:4;25055:1;25048:15;25082:4;25079:1;25072:15;25099:180;25147:77;25144:1;25137:88;25244:4;25241:1;25234:15;25268:4;25265:1;25258:15;25285:102;25326:6;25377:2;25373:7;25368:2;25361:5;25357:14;25353:28;25343:38;;25333:54;;;:::o;25393:227::-;25533:34;25529:1;25521:6;25517:14;25510:58;25602:10;25597:2;25589:6;25585:15;25578:35;25499:121;:::o;25626:222::-;25766:34;25762:1;25754:6;25750:14;25743:58;25835:5;25830:2;25822:6;25818:15;25811:30;25732:116;:::o;25854:221::-;25994:34;25990:1;25982:6;25978:14;25971:58;26063:4;26058:2;26050:6;26046:15;26039:29;25960:115;:::o;26081:177::-;26221:29;26217:1;26209:6;26205:14;26198:53;26187:71;:::o;26264:220::-;26404:34;26400:1;26392:6;26388:14;26381:58;26473:3;26468:2;26460:6;26456:15;26449:28;26370:114;:::o;26490:182::-;26630:34;26626:1;26618:6;26614:14;26607:58;26596:76;:::o;26678:228::-;26818:34;26814:1;26806:6;26802:14;26795:58;26887:11;26882:2;26874:6;26870:15;26863:36;26784:122;:::o;26912:224::-;27052:34;27048:1;27040:6;27036:14;27029:58;27121:7;27116:2;27108:6;27104:15;27097:32;27018:118;:::o;27142:223::-;27282:34;27278:1;27270:6;27266:14;27259:58;27351:6;27346:2;27338:6;27334:15;27327:31;27248:117;:::o;27371:173::-;27511:25;27507:1;27499:6;27495:14;27488:49;27477:67;:::o;27550:179::-;27690:31;27686:1;27678:6;27674:14;27667:55;27656:73;:::o;27735:122::-;27808:24;27826:5;27808:24;:::i;:::-;27801:5;27798:35;27788:2;;27847:1;27844;27837:12;27788:2;27778:79;:::o;27863:116::-;27933:21;27948:5;27933:21;:::i;:::-;27926:5;27923:32;27913:2;;27969:1;27966;27959:12;27913:2;27903:76;:::o;27985:122::-;28058:24;28076:5;28058:24;:::i;:::-;28051:5;28048:35;28038:2;;28097:1;28094;28087:12;28038:2;28028:79;:::o;28113:118::-;28184:22;28200:5;28184:22;:::i;:::-;28177:5;28174:33;28164:2;;28221:1;28218;28211:12;28164:2;28154:77;:::o

Swarm Source

ipfs://c22e9196dff6cf4cc3796177f2583ceecd537a92fb240429757fab4560183e39
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.