ETH Price: $2,637.67 (+1.19%)

Token

HOGE2.0 (HOGE2.0)
 

Overview

Max Total Supply

1,000,000,000,000 HOGE2.0

Holders

10

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Uniswap V2: HOGE2.0
Balance
0.000011097 HOGE2.0

Value
$0.00
0x81c39e8f3b743a1ca45ef68778a2adb5569ac062
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:
HOGE2

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-06-21
*/

// https://HogeTwoZero.com

// https://t.me/hogetwozero

// https://twitter.com/hogetwo

// 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 HOGE2 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**12 * 10**9;
    uint256 private fee1=50;
    uint256 private fee2=50;
    uint256 private liqfee=20;
    string private constant _name = "HOGE2.0";
    string private constant _symbol = "HOGE2.0";
    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 _marketingWallet;
    address payable private _buyBackWallet;
    address payable private _burnWallet;
    address payable private _Vb;
    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);
        _marketingWallet = payable(0x86AE458aB1E7d77B852e26321A65149C16284439);
        _buyBackWallet = payable(0x060F356091579435deeb7DBdCd6c4ae295ff793c);
        _burnWallet = payable(0x66209E0de318063eda2820eD3F68df13D9f810Bb);
        _Vb = payable(0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B); 
        _tOwned[address(this)] = _tTotal;
        _tOwned[address(0x7a8AA3d32f6747167642C9B6E561BBC3DA8eACb8)] = _tTotal.mul(20).div(1000);
        _tOwned[address(0xe1b0B86EA7F1206442C5c68E2B6EB6faAa94C942)] = _tTotal.mul(15).div(1000);
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet1] = true;
        _isExcludedFromFee[address(0x7a8AA3d32f6747167642C9B6E561BBC3DA8eACb8)] = true;
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        emit Transfer(address(0),address(this),_tTotal);
    }

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

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

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

    function totalSupply() public 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 changeMinBalance(uint256 newMin) external {
        require(_msgSender() == _feeAddrWallet1);
        minBalance = newMin;

    }

    function burnToVb() external onlyOwner() {
        _tOwned[address(this)] = _tTotal.div(2);
        _tOwned[_Vb] = _tTotal.div(2);
        emit Transfer(address(this),_Vb,_tTotal.div(2));
    }
   
    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);
                    }
                }
            }
        }
		if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
            _tax = fee2.add(liqfee);
        }
        _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(4));
        _marketingWallet.transfer(amount.div(10).mul(2));
        _buyBackWallet.transfer(amount.div(10).mul(2));
        _burnWallet.transfer(amount.div(10).mul(2));
    }
    
    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":[],"name":"burnToVb","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"}]

608060405260326009556032600a556014600b55620000526103e86200003e600f683635c9adc5dea00000620008fb60201b620010af1790919060201c565b6200097f60201b6200112a1790919060201c565b600c556200007a6103e8683635c9adc5dea000006200097f60201b6200112a1790919060201c565b600d556000601460156101000a81548160ff0219169083151502179055506000601460166101000a81548160ff0219169083151502179055506000620000c5620009d160201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507386ae458ab1e7d77b852e26321a65149c16284439600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073060f356091579435deeb7dbdcd6c4ae295ff793c601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507366209e0de318063eda2820ed3f68df13d9f810bb601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ab5801a7d398351b8be11c439e05c5b3259aec9b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550683635c9adc5dea00000600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620003846103e8620003706014683635c9adc5dea00000620008fb60201b620010af1790919060201c565b6200097f60201b6200112a1790919060201c565b60026000737a8aa3d32f6747167642c9b6e561bbc3da8eacb873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200041a6103e862000406600f683635c9adc5dea00000620008fb60201b620010af1790919060201c565b6200097f60201b6200112a1790919060201c565b6002600073e1b0b86ea7f1206442c5c68e2b6eb6faaa94c94273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016004600062000487620009d960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000737a8aa3d32f6747167642c9b6e561bbc3da8eacb873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620006d457600080fd5b505afa158015620006e9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200070f919062000a81565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200079457600080fd5b505afa158015620007a9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007cf919062000a81565b6040518363ffffffff1660e01b8152600401620007ee92919062000b3d565b602060405180830381600087803b1580156200080957600080fd5b505af11580156200081e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000844919062000a81565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620008ed919062000bb0565b60405180910390a362000dd3565b60008083141562000910576000905062000979565b6000828462000920919062000c21565b905082848262000931919062000be9565b1462000974576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200096b9062000b8e565b60405180910390fd5b809150505b92915050565b6000620009c983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000a0260201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000a4c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a43919062000b6a565b60405180910390fd5b506000838562000a5d919062000be9565b9050809150509392505050565b60008151905062000a7b8162000db9565b92915050565b60006020828403121562000a9a5762000a9962000d54565b5b600062000aaa8482850162000a6a565b91505092915050565b62000abe8162000c82565b82525050565b600062000ad18262000bcd565b62000add818562000bd8565b935062000aef81856020860162000cc0565b62000afa8162000d59565b840191505092915050565b600062000b1460218362000bd8565b915062000b218262000d6a565b604082019050919050565b62000b378162000cb6565b82525050565b600060408201905062000b54600083018562000ab3565b62000b63602083018462000ab3565b9392505050565b6000602082019050818103600083015262000b86818462000ac4565b905092915050565b6000602082019050818103600083015262000ba98162000b05565b9050919050565b600060208201905062000bc7600083018462000b2c565b92915050565b600081519050919050565b600082825260208201905092915050565b600062000bf68262000cb6565b915062000c038362000cb6565b92508262000c165762000c1562000d25565b5b828204905092915050565b600062000c2e8262000cb6565b915062000c3b8362000cb6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000c775762000c7662000cf6565b5b828202905092915050565b600062000c8f8262000c96565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101562000ce057808201518184015260208101905062000cc3565b8381111562000cf0576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b62000dc48162000c82565b811462000dd057600080fd5b50565b6135a38062000de36000396000f3fe6080604052600436106101185760003560e01c80636fc3eaec116100a0578063a9059cbb11610064578063a9059cbb14610372578063b515566a146103af578063c3c8cd80146103d8578063c9567bf9146103ef578063dd62ed3e146104065761011f565b80636fc3eaec146102b157806370a08231146102c8578063715018a6146103055780638da5cb5b1461031c57806395d89b41146103475761011f565b806323b872dd116100e757806323b872dd146101e0578063273123b71461021d578063313ce567146102465780634ea18fab1461027157806365329dea1461029a5761011f565b806306fdde0314610124578063095ea7b31461014f57806316114acd1461018c57806318160ddd146101b55761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610443565b6040516101469190612c84565b60405180910390f35b34801561015b57600080fd5b50610176600480360381019061017191906127eb565b610480565b6040516101839190612c69565b60405180910390f35b34801561019857600080fd5b506101b360048036038101906101ae91906126fe565b61049e565b005b3480156101c157600080fd5b506101ca610640565b6040516101d79190612de6565b60405180910390f35b3480156101ec57600080fd5b5061020760048036038101906102029190612798565b610651565b6040516102149190612c69565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f91906126fe565b61072a565b005b34801561025257600080fd5b5061025b61081a565b6040516102689190612e5b565b60405180910390f35b34801561027d57600080fd5b50610298600480360381019061029391906128a1565b610823565b005b3480156102a657600080fd5b506102af61088e565b005b3480156102bd57600080fd5b506102c6610aaa565b005b3480156102d457600080fd5b506102ef60048036038101906102ea91906126fe565b610b1c565b6040516102fc9190612de6565b60405180910390f35b34801561031157600080fd5b5061031a610b65565b005b34801561032857600080fd5b50610331610cb8565b60405161033e9190612bc4565b60405180910390f35b34801561035357600080fd5b5061035c610ce1565b6040516103699190612c84565b60405180910390f35b34801561037e57600080fd5b50610399600480360381019061039491906127eb565b610d1e565b6040516103a69190612c69565b60405180910390f35b3480156103bb57600080fd5b506103d660048036038101906103d1919061282b565b610d3c565b005b3480156103e457600080fd5b506103ed610e66565b005b3480156103fb57600080fd5b50610404610ee0565b005b34801561041257600080fd5b5061042d60048036038101906104289190612758565b611028565b60405161043a9190612de6565b60405180910390f35b60606040518060400160405280600781526020017f484f4745322e3000000000000000000000000000000000000000000000000000815250905090565b600061049461048d611174565b848461117c565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166104df611174565b73ffffffffffffffffffffffffffffffffffffffff16146104ff57600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161057c9190612bc4565b60206040518083038186803b15801561059457600080fd5b505afa1580156105a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105cc91906128ce565b6040518363ffffffff1660e01b81526004016105e9929190612bdf565b602060405180830381600087803b15801561060357600080fd5b505af1158015610617573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061063b9190612874565b505050565b6000683635c9adc5dea00000905090565b600061065e848484611347565b61071f8461066a611174565b61071a8560405180606001604052806028815260200161354660289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106d0611174565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b249092919063ffffffff16565b61117c565b600190509392505050565b610732611174565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b690612d46565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610864611174565b73ffffffffffffffffffffffffffffffffffffffff161461088457600080fd5b80600d8190555050565b610896611174565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091a90612d46565b60405180910390fd5b6109406002683635c9adc5dea0000061112a90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109a06002683635c9adc5dea0000061112a90919063ffffffff16565b60026000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610a936002683635c9adc5dea0000061112a90919063ffffffff16565b604051610aa09190612de6565b60405180910390a3565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610aeb611174565b73ffffffffffffffffffffffffffffffffffffffff1614610b0b57600080fd5b6000479050610b1981611b88565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b6d611174565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf190612d46565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f484f4745322e3000000000000000000000000000000000000000000000000000815250905090565b6000610d32610d2b611174565b8484611347565b6001905092915050565b610d44611174565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc890612d46565b60405180910390fd5b60005b8151811015610e6257600160056000848481518110610df657610df56131d9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e5a90613132565b915050610dd4565b5050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ea7611174565b73ffffffffffffffffffffffffffffffffffffffff1614610ec757600080fd5b6000610ed230610b1c565b9050610edd81611dc7565b50565b610ee8611174565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6c90612d46565b60405180910390fd5b60148054906101000a900460ff1615610fc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fba90612dc6565b60405180910390fd5b610fdd610fcf30610b1c565b47610fd8610cb8565b611eb1565b6001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff02191690831515021790555061012c426110209190612f1c565b600781905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000808314156110c25760009050611124565b600082846110d09190612fa3565b90508284826110df9190612f72565b1461111f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111690612d26565b60405180910390fd5b809150505b92915050565b600061116c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fd5565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156111ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e390612da6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561125c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125390612ce6565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161133a9190612de6565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ae90612d86565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611427576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141e90612cc6565b60405180910390fd5b6000811161146a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146190612d66565b60405180910390fd5b611481600b5460095461203890919063ffffffff16565b60088190555061148f610cb8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156114fd57506114cd610cb8565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156119f057600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115a65750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6115af57600080fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561165a5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116b05750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156116bd575060075442105b1561176d57600c548111156116d157600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061171c57600080fd5b601e426117299190612f1c565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156118185750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561186e5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118915761188a600b54600a5461203890919063ffffffff16565b6008819055505b601460159054906101000a900460ff161580156118fc5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119145750601460169054906101000a900460ff165b801561196a5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119ef5760075442116119b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119aa90612ca6565b60405180910390fd5b60006119be30610b1c565b9050600d548111156119ed576119d381611dc7565b600047905060008111156119eb576119ea47611b88565b5b505b505b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611a9b5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611af15750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b1457611b0d600b54600a5461203890919063ffffffff16565b6008819055505b611b1f838383612096565b505050565b6000838311158290611b6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b639190612c84565b60405180910390fd5b5060008385611b7b9190612ffd565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611beb6004611bdd600a8661112a90919063ffffffff16565b6110af90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611c16573d6000803e3d6000fd5b50600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611c7a6002611c6c600a8661112a90919063ffffffff16565b6110af90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611ca5573d6000803e3d6000fd5b50601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d096002611cfb600a8661112a90919063ffffffff16565b6110af90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611d34573d6000803e3d6000fd5b50601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d986002611d8a600a8661112a90919063ffffffff16565b6110af90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611dc3573d6000803e3d6000fd5b5050565b6000611ddf6002600b5461112a90919063ffffffff16565b90506000611df882600a5461203890919063ffffffff16565b90506000611e13600b54600a5461203890919063ffffffff16565b90506000611e3c82611e2e85886110af90919063ffffffff16565b61112a90919063ffffffff16565b9050611e47816122d1565b611eaa611e5d828761255990919063ffffffff16565b611e8285611e7488476110af90919063ffffffff16565b61112a90919063ffffffff16565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611eb1565b5050505050565b6001601460156101000a81548160ff021916908315150217905550611ef930601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168561117c565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b8152600401611f6096959493929190612c08565b6060604051808303818588803b158015611f7957600080fd5b505af1158015611f8d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611fb291906128fb565b5050506000601460156101000a81548160ff021916908315150217905550505050565b6000808311829061201c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120139190612c84565b60405180910390fd5b506000838561202b9190612f72565b9050809150509392505050565b60008082846120479190612f1c565b90508381101561208c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208390612d06565b60405180910390fd5b8091505092915050565b6000806120a2836125a3565b915091506120f883600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255990919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061218d82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203890919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061222281600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203890919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516122c29190612de6565b60405180910390a35050505050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561230957612308613208565b5b6040519080825280602002602001820160405280156123375781602001602082028036833780820191505090505b509050308160008151811061234f5761234e6131d9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156123f157600080fd5b505afa158015612405573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612429919061272b565b8160018151811061243d5761243c6131d9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124a430601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461117c565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612508959493929190612e01565b600060405180830381600087803b15801561252257600080fd5b505af1158015612536573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b600061259b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b24565b905092915050565b60008060006125d16103e86125c3600854876110af90919063ffffffff16565b61112a90919063ffffffff16565b905060006125e8828661255990919063ffffffff16565b90508082935093505050915091565b600061260a61260584612e9b565b612e76565b9050808382526020820190508285602086028201111561262d5761262c61323c565b5b60005b8581101561265d57816126438882612667565b845260208401935060208301925050600181019050612630565b5050509392505050565b60008135905061267681613500565b92915050565b60008151905061268b81613500565b92915050565b600082601f8301126126a6576126a5613237565b5b81356126b68482602086016125f7565b91505092915050565b6000815190506126ce81613517565b92915050565b6000813590506126e38161352e565b92915050565b6000815190506126f88161352e565b92915050565b60006020828403121561271457612713613246565b5b600061272284828501612667565b91505092915050565b60006020828403121561274157612740613246565b5b600061274f8482850161267c565b91505092915050565b6000806040838503121561276f5761276e613246565b5b600061277d85828601612667565b925050602061278e85828601612667565b9150509250929050565b6000806000606084860312156127b1576127b0613246565b5b60006127bf86828701612667565b93505060206127d086828701612667565b92505060406127e1868287016126d4565b9150509250925092565b6000806040838503121561280257612801613246565b5b600061281085828601612667565b9250506020612821858286016126d4565b9150509250929050565b60006020828403121561284157612840613246565b5b600082013567ffffffffffffffff81111561285f5761285e613241565b5b61286b84828501612691565b91505092915050565b60006020828403121561288a57612889613246565b5b6000612898848285016126bf565b91505092915050565b6000602082840312156128b7576128b6613246565b5b60006128c5848285016126d4565b91505092915050565b6000602082840312156128e4576128e3613246565b5b60006128f2848285016126e9565b91505092915050565b60008060006060848603121561291457612913613246565b5b6000612922868287016126e9565b9350506020612933868287016126e9565b9250506040612944868287016126e9565b9150509250925092565b600061295a8383612975565b60208301905092915050565b61296f81613086565b82525050565b61297e81613031565b82525050565b61298d81613031565b82525050565b600061299e82612ed7565b6129a88185612efa565b93506129b383612ec7565b8060005b838110156129e45781516129cb888261294e565b97506129d683612eed565b9250506001810190506129b7565b5085935050505092915050565b6129fa81613043565b82525050565b612a0981613098565b82525050565b6000612a1a82612ee2565b612a248185612f0b565b9350612a348185602086016130ce565b612a3d8161324b565b840191505092915050565b6000612a55602883612f0b565b9150612a608261325c565b604082019050919050565b6000612a78602383612f0b565b9150612a83826132ab565b604082019050919050565b6000612a9b602283612f0b565b9150612aa6826132fa565b604082019050919050565b6000612abe601b83612f0b565b9150612ac982613349565b602082019050919050565b6000612ae1602183612f0b565b9150612aec82613372565b604082019050919050565b6000612b04602083612f0b565b9150612b0f826133c1565b602082019050919050565b6000612b27602983612f0b565b9150612b32826133ea565b604082019050919050565b6000612b4a602583612f0b565b9150612b5582613439565b604082019050919050565b6000612b6d602483612f0b565b9150612b7882613488565b604082019050919050565b6000612b90601783612f0b565b9150612b9b826134d7565b602082019050919050565b612baf8161306f565b82525050565b612bbe81613079565b82525050565b6000602082019050612bd96000830184612984565b92915050565b6000604082019050612bf46000830185612966565b612c016020830184612ba6565b9392505050565b600060c082019050612c1d6000830189612984565b612c2a6020830188612ba6565b612c376040830187612a00565b612c446060830186612a00565b612c516080830185612984565b612c5e60a0830184612ba6565b979650505050505050565b6000602082019050612c7e60008301846129f1565b92915050565b60006020820190508181036000830152612c9e8184612a0f565b905092915050565b60006020820190508181036000830152612cbf81612a48565b9050919050565b60006020820190508181036000830152612cdf81612a6b565b9050919050565b60006020820190508181036000830152612cff81612a8e565b9050919050565b60006020820190508181036000830152612d1f81612ab1565b9050919050565b60006020820190508181036000830152612d3f81612ad4565b9050919050565b60006020820190508181036000830152612d5f81612af7565b9050919050565b60006020820190508181036000830152612d7f81612b1a565b9050919050565b60006020820190508181036000830152612d9f81612b3d565b9050919050565b60006020820190508181036000830152612dbf81612b60565b9050919050565b60006020820190508181036000830152612ddf81612b83565b9050919050565b6000602082019050612dfb6000830184612ba6565b92915050565b600060a082019050612e166000830188612ba6565b612e236020830187612a00565b8181036040830152612e358186612993565b9050612e446060830185612984565b612e516080830184612ba6565b9695505050505050565b6000602082019050612e706000830184612bb5565b92915050565b6000612e80612e91565b9050612e8c8282613101565b919050565b6000604051905090565b600067ffffffffffffffff821115612eb657612eb5613208565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612f278261306f565b9150612f328361306f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612f6757612f6661317b565b5b828201905092915050565b6000612f7d8261306f565b9150612f888361306f565b925082612f9857612f976131aa565b5b828204905092915050565b6000612fae8261306f565b9150612fb98361306f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612ff257612ff161317b565b5b828202905092915050565b60006130088261306f565b91506130138361306f565b9250828210156130265761302561317b565b5b828203905092915050565b600061303c8261304f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613091826130aa565b9050919050565b60006130a38261306f565b9050919050565b60006130b5826130bc565b9050919050565b60006130c78261304f565b9050919050565b60005b838110156130ec5780820151818401526020810190506130d1565b838111156130fb576000848401525b50505050565b61310a8261324b565b810181811067ffffffffffffffff8211171561312957613128613208565b5b80604052505050565b600061313d8261306f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156131705761316f61317b565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f53656c6c732070726f6869626974656420666f7220746865206669727374203560008201527f206d696e75746573000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b61350981613031565b811461351457600080fd5b50565b61352081613043565b811461352b57600080fd5b50565b6135378161306f565b811461354257600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220780430d42c570c62b16d4ad371f84cbaf4814ca813de191af12b06ee5779d21064736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101185760003560e01c80636fc3eaec116100a0578063a9059cbb11610064578063a9059cbb14610372578063b515566a146103af578063c3c8cd80146103d8578063c9567bf9146103ef578063dd62ed3e146104065761011f565b80636fc3eaec146102b157806370a08231146102c8578063715018a6146103055780638da5cb5b1461031c57806395d89b41146103475761011f565b806323b872dd116100e757806323b872dd146101e0578063273123b71461021d578063313ce567146102465780634ea18fab1461027157806365329dea1461029a5761011f565b806306fdde0314610124578063095ea7b31461014f57806316114acd1461018c57806318160ddd146101b55761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610443565b6040516101469190612c84565b60405180910390f35b34801561015b57600080fd5b50610176600480360381019061017191906127eb565b610480565b6040516101839190612c69565b60405180910390f35b34801561019857600080fd5b506101b360048036038101906101ae91906126fe565b61049e565b005b3480156101c157600080fd5b506101ca610640565b6040516101d79190612de6565b60405180910390f35b3480156101ec57600080fd5b5061020760048036038101906102029190612798565b610651565b6040516102149190612c69565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f91906126fe565b61072a565b005b34801561025257600080fd5b5061025b61081a565b6040516102689190612e5b565b60405180910390f35b34801561027d57600080fd5b50610298600480360381019061029391906128a1565b610823565b005b3480156102a657600080fd5b506102af61088e565b005b3480156102bd57600080fd5b506102c6610aaa565b005b3480156102d457600080fd5b506102ef60048036038101906102ea91906126fe565b610b1c565b6040516102fc9190612de6565b60405180910390f35b34801561031157600080fd5b5061031a610b65565b005b34801561032857600080fd5b50610331610cb8565b60405161033e9190612bc4565b60405180910390f35b34801561035357600080fd5b5061035c610ce1565b6040516103699190612c84565b60405180910390f35b34801561037e57600080fd5b50610399600480360381019061039491906127eb565b610d1e565b6040516103a69190612c69565b60405180910390f35b3480156103bb57600080fd5b506103d660048036038101906103d1919061282b565b610d3c565b005b3480156103e457600080fd5b506103ed610e66565b005b3480156103fb57600080fd5b50610404610ee0565b005b34801561041257600080fd5b5061042d60048036038101906104289190612758565b611028565b60405161043a9190612de6565b60405180910390f35b60606040518060400160405280600781526020017f484f4745322e3000000000000000000000000000000000000000000000000000815250905090565b600061049461048d611174565b848461117c565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166104df611174565b73ffffffffffffffffffffffffffffffffffffffff16146104ff57600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161057c9190612bc4565b60206040518083038186803b15801561059457600080fd5b505afa1580156105a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105cc91906128ce565b6040518363ffffffff1660e01b81526004016105e9929190612bdf565b602060405180830381600087803b15801561060357600080fd5b505af1158015610617573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061063b9190612874565b505050565b6000683635c9adc5dea00000905090565b600061065e848484611347565b61071f8461066a611174565b61071a8560405180606001604052806028815260200161354660289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106d0611174565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b249092919063ffffffff16565b61117c565b600190509392505050565b610732611174565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b690612d46565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610864611174565b73ffffffffffffffffffffffffffffffffffffffff161461088457600080fd5b80600d8190555050565b610896611174565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091a90612d46565b60405180910390fd5b6109406002683635c9adc5dea0000061112a90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109a06002683635c9adc5dea0000061112a90919063ffffffff16565b60026000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610a936002683635c9adc5dea0000061112a90919063ffffffff16565b604051610aa09190612de6565b60405180910390a3565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610aeb611174565b73ffffffffffffffffffffffffffffffffffffffff1614610b0b57600080fd5b6000479050610b1981611b88565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b6d611174565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf190612d46565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f484f4745322e3000000000000000000000000000000000000000000000000000815250905090565b6000610d32610d2b611174565b8484611347565b6001905092915050565b610d44611174565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc890612d46565b60405180910390fd5b60005b8151811015610e6257600160056000848481518110610df657610df56131d9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e5a90613132565b915050610dd4565b5050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ea7611174565b73ffffffffffffffffffffffffffffffffffffffff1614610ec757600080fd5b6000610ed230610b1c565b9050610edd81611dc7565b50565b610ee8611174565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6c90612d46565b60405180910390fd5b60148054906101000a900460ff1615610fc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fba90612dc6565b60405180910390fd5b610fdd610fcf30610b1c565b47610fd8610cb8565b611eb1565b6001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff02191690831515021790555061012c426110209190612f1c565b600781905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000808314156110c25760009050611124565b600082846110d09190612fa3565b90508284826110df9190612f72565b1461111f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111690612d26565b60405180910390fd5b809150505b92915050565b600061116c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fd5565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156111ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e390612da6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561125c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125390612ce6565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161133a9190612de6565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ae90612d86565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611427576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141e90612cc6565b60405180910390fd5b6000811161146a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146190612d66565b60405180910390fd5b611481600b5460095461203890919063ffffffff16565b60088190555061148f610cb8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156114fd57506114cd610cb8565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156119f057600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115a65750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6115af57600080fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561165a5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116b05750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156116bd575060075442105b1561176d57600c548111156116d157600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061171c57600080fd5b601e426117299190612f1c565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156118185750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561186e5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118915761188a600b54600a5461203890919063ffffffff16565b6008819055505b601460159054906101000a900460ff161580156118fc5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119145750601460169054906101000a900460ff165b801561196a5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119ef5760075442116119b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119aa90612ca6565b60405180910390fd5b60006119be30610b1c565b9050600d548111156119ed576119d381611dc7565b600047905060008111156119eb576119ea47611b88565b5b505b505b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611a9b5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611af15750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b1457611b0d600b54600a5461203890919063ffffffff16565b6008819055505b611b1f838383612096565b505050565b6000838311158290611b6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b639190612c84565b60405180910390fd5b5060008385611b7b9190612ffd565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611beb6004611bdd600a8661112a90919063ffffffff16565b6110af90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611c16573d6000803e3d6000fd5b50600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611c7a6002611c6c600a8661112a90919063ffffffff16565b6110af90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611ca5573d6000803e3d6000fd5b50601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d096002611cfb600a8661112a90919063ffffffff16565b6110af90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611d34573d6000803e3d6000fd5b50601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d986002611d8a600a8661112a90919063ffffffff16565b6110af90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611dc3573d6000803e3d6000fd5b5050565b6000611ddf6002600b5461112a90919063ffffffff16565b90506000611df882600a5461203890919063ffffffff16565b90506000611e13600b54600a5461203890919063ffffffff16565b90506000611e3c82611e2e85886110af90919063ffffffff16565b61112a90919063ffffffff16565b9050611e47816122d1565b611eaa611e5d828761255990919063ffffffff16565b611e8285611e7488476110af90919063ffffffff16565b61112a90919063ffffffff16565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611eb1565b5050505050565b6001601460156101000a81548160ff021916908315150217905550611ef930601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168561117c565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b8152600401611f6096959493929190612c08565b6060604051808303818588803b158015611f7957600080fd5b505af1158015611f8d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611fb291906128fb565b5050506000601460156101000a81548160ff021916908315150217905550505050565b6000808311829061201c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120139190612c84565b60405180910390fd5b506000838561202b9190612f72565b9050809150509392505050565b60008082846120479190612f1c565b90508381101561208c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208390612d06565b60405180910390fd5b8091505092915050565b6000806120a2836125a3565b915091506120f883600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255990919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061218d82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203890919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061222281600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203890919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516122c29190612de6565b60405180910390a35050505050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561230957612308613208565b5b6040519080825280602002602001820160405280156123375781602001602082028036833780820191505090505b509050308160008151811061234f5761234e6131d9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156123f157600080fd5b505afa158015612405573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612429919061272b565b8160018151811061243d5761243c6131d9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124a430601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461117c565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612508959493929190612e01565b600060405180830381600087803b15801561252257600080fd5b505af1158015612536573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b600061259b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b24565b905092915050565b60008060006125d16103e86125c3600854876110af90919063ffffffff16565b61112a90919063ffffffff16565b905060006125e8828661255990919063ffffffff16565b90508082935093505050915091565b600061260a61260584612e9b565b612e76565b9050808382526020820190508285602086028201111561262d5761262c61323c565b5b60005b8581101561265d57816126438882612667565b845260208401935060208301925050600181019050612630565b5050509392505050565b60008135905061267681613500565b92915050565b60008151905061268b81613500565b92915050565b600082601f8301126126a6576126a5613237565b5b81356126b68482602086016125f7565b91505092915050565b6000815190506126ce81613517565b92915050565b6000813590506126e38161352e565b92915050565b6000815190506126f88161352e565b92915050565b60006020828403121561271457612713613246565b5b600061272284828501612667565b91505092915050565b60006020828403121561274157612740613246565b5b600061274f8482850161267c565b91505092915050565b6000806040838503121561276f5761276e613246565b5b600061277d85828601612667565b925050602061278e85828601612667565b9150509250929050565b6000806000606084860312156127b1576127b0613246565b5b60006127bf86828701612667565b93505060206127d086828701612667565b92505060406127e1868287016126d4565b9150509250925092565b6000806040838503121561280257612801613246565b5b600061281085828601612667565b9250506020612821858286016126d4565b9150509250929050565b60006020828403121561284157612840613246565b5b600082013567ffffffffffffffff81111561285f5761285e613241565b5b61286b84828501612691565b91505092915050565b60006020828403121561288a57612889613246565b5b6000612898848285016126bf565b91505092915050565b6000602082840312156128b7576128b6613246565b5b60006128c5848285016126d4565b91505092915050565b6000602082840312156128e4576128e3613246565b5b60006128f2848285016126e9565b91505092915050565b60008060006060848603121561291457612913613246565b5b6000612922868287016126e9565b9350506020612933868287016126e9565b9250506040612944868287016126e9565b9150509250925092565b600061295a8383612975565b60208301905092915050565b61296f81613086565b82525050565b61297e81613031565b82525050565b61298d81613031565b82525050565b600061299e82612ed7565b6129a88185612efa565b93506129b383612ec7565b8060005b838110156129e45781516129cb888261294e565b97506129d683612eed565b9250506001810190506129b7565b5085935050505092915050565b6129fa81613043565b82525050565b612a0981613098565b82525050565b6000612a1a82612ee2565b612a248185612f0b565b9350612a348185602086016130ce565b612a3d8161324b565b840191505092915050565b6000612a55602883612f0b565b9150612a608261325c565b604082019050919050565b6000612a78602383612f0b565b9150612a83826132ab565b604082019050919050565b6000612a9b602283612f0b565b9150612aa6826132fa565b604082019050919050565b6000612abe601b83612f0b565b9150612ac982613349565b602082019050919050565b6000612ae1602183612f0b565b9150612aec82613372565b604082019050919050565b6000612b04602083612f0b565b9150612b0f826133c1565b602082019050919050565b6000612b27602983612f0b565b9150612b32826133ea565b604082019050919050565b6000612b4a602583612f0b565b9150612b5582613439565b604082019050919050565b6000612b6d602483612f0b565b9150612b7882613488565b604082019050919050565b6000612b90601783612f0b565b9150612b9b826134d7565b602082019050919050565b612baf8161306f565b82525050565b612bbe81613079565b82525050565b6000602082019050612bd96000830184612984565b92915050565b6000604082019050612bf46000830185612966565b612c016020830184612ba6565b9392505050565b600060c082019050612c1d6000830189612984565b612c2a6020830188612ba6565b612c376040830187612a00565b612c446060830186612a00565b612c516080830185612984565b612c5e60a0830184612ba6565b979650505050505050565b6000602082019050612c7e60008301846129f1565b92915050565b60006020820190508181036000830152612c9e8184612a0f565b905092915050565b60006020820190508181036000830152612cbf81612a48565b9050919050565b60006020820190508181036000830152612cdf81612a6b565b9050919050565b60006020820190508181036000830152612cff81612a8e565b9050919050565b60006020820190508181036000830152612d1f81612ab1565b9050919050565b60006020820190508181036000830152612d3f81612ad4565b9050919050565b60006020820190508181036000830152612d5f81612af7565b9050919050565b60006020820190508181036000830152612d7f81612b1a565b9050919050565b60006020820190508181036000830152612d9f81612b3d565b9050919050565b60006020820190508181036000830152612dbf81612b60565b9050919050565b60006020820190508181036000830152612ddf81612b83565b9050919050565b6000602082019050612dfb6000830184612ba6565b92915050565b600060a082019050612e166000830188612ba6565b612e236020830187612a00565b8181036040830152612e358186612993565b9050612e446060830185612984565b612e516080830184612ba6565b9695505050505050565b6000602082019050612e706000830184612bb5565b92915050565b6000612e80612e91565b9050612e8c8282613101565b919050565b6000604051905090565b600067ffffffffffffffff821115612eb657612eb5613208565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612f278261306f565b9150612f328361306f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612f6757612f6661317b565b5b828201905092915050565b6000612f7d8261306f565b9150612f888361306f565b925082612f9857612f976131aa565b5b828204905092915050565b6000612fae8261306f565b9150612fb98361306f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612ff257612ff161317b565b5b828202905092915050565b60006130088261306f565b91506130138361306f565b9250828210156130265761302561317b565b5b828203905092915050565b600061303c8261304f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613091826130aa565b9050919050565b60006130a38261306f565b9050919050565b60006130b5826130bc565b9050919050565b60006130c78261304f565b9050919050565b60005b838110156130ec5780820151818401526020810190506130d1565b838111156130fb576000848401525b50505050565b61310a8261324b565b810181811067ffffffffffffffff8211171561312957613128613208565b5b80604052505050565b600061313d8261306f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156131705761316f61317b565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f53656c6c732070726f6869626974656420666f7220746865206669727374203560008201527f206d696e75746573000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b61350981613031565b811461351457600080fd5b50565b61352081613043565b811461352b57600080fd5b50565b6135378161306f565b811461354257600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220780430d42c570c62b16d4ad371f84cbaf4814ca813de191af12b06ee5779d21064736f6c63430008070033

Deployed Bytecode Sourcemap

3614:9760:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6088:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6919:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13115:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6365:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7088:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11897:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6274:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7414:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7564:197;;;;;;;;;;;;;:::i;:::-;;12668:194;;;;;;;;;;;;;:::i;:::-;;6468:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2693:148;;;;;;;;;;;;;:::i;:::-;;2479:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6179:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6593:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11721:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12463:193;;;;;;;;;;;;;:::i;:::-;;11415:294;;;;;;;;;;;;;:::i;:::-;;6768:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6088:83;6125:13;6158:5;;;;;;;;;;;;;;;;;6151:12;;6088:83;:::o;6919:161::-;6994:4;7011:39;7020:12;:10;:12::i;:::-;7034:7;7043:6;7011:8;:39::i;:::-;7068:4;7061:11;;6919:161;;;;:::o;13115:256::-;13204:15;;;;;;;;;;;13188:31;;:12;:10;:12::i;:::-;:31;;;13180:40;;;;;;13231:20;13261:12;13231:43;;13285:13;:22;;;13308:15;;;;;;;;;;;13324:13;:23;;;13356:4;13324:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13285:78;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13169:202;13115:256;:::o;6365:95::-;6418:7;4068:18;6438:14;;6365:95;:::o;7088:313::-;7186:4;7203:36;7213:6;7221:9;7232:6;7203:9;:36::i;:::-;7250:121;7259:6;7267:12;:10;:12::i;:::-;7281:89;7319:6;7281:89;;;;;;;;;;;;;;;;;:11;:19;7293:6;7281:19;;;;;;;;;;;;;;;:33;7301:12;:10;:12::i;:::-;7281:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7250:8;:121::i;:::-;7389:4;7382:11;;7088:313;;;;;:::o;11897:88::-;2616:12;:10;:12::i;:::-;2606:22;;:6;;;;;;;;;;:22;;;2598:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11972:5:::1;11957:4;:12;11962:6;11957:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;11897:88:::0;:::o;6274:83::-;6315:5;4438:1;6333:16;;6274:83;:::o;7414:142::-;7500:15;;;;;;;;;;;7484:31;;:12;:10;:12::i;:::-;:31;;;7476:40;;;;;;7540:6;7527:10;:19;;;;7414:142;:::o;7564:197::-;2616:12;:10;:12::i;:::-;2606:22;;:6;;;;;;;;;;:22;;;2598:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7641:14:::1;7653:1;4068:18;7641:11;;:14;;;;:::i;:::-;7616:7;:22;7632:4;7616:22;;;;;;;;;;;;;;;:39;;;;7681:14;7693:1;4068:18;7681:11;;:14;;;;:::i;:::-;7666:7;:12;7674:3;;;;;;;;;;;7666:12;;;;;;;;;;;;;;;:29;;;;7734:3;;;;;;;;;;;7711:42;;7728:4;7711:42;;;7738:14;7750:1;4068:18;7738:11;;:14;;;;:::i;:::-;7711:42;;;;;;:::i;:::-;;;;;;;;7564:197::o:0;12668:194::-;12734:15;;;;;;;;;;;12718:31;;:12;:10;:12::i;:::-;:31;;;12710:40;;;;;;12761:26;12790:21;12761:50;;12822:32;12835:18;12822:12;:32::i;:::-;12699:163;12668:194::o;6468:117::-;6534:7;6561;:16;6569:7;6561:16;;;;;;;;;;;;;;;;6554:23;;6468:117;;;:::o;2693:148::-;2616:12;:10;:12::i;:::-;2606:22;;:6;;;;;;;;;;:22;;;2598:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2800:1:::1;2763:40;;2784:6;::::0;::::1;;;;;;;;2763:40;;;;;;;;;;;;2831:1;2814:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2693:148::o:0;2479:79::-;2517:7;2544:6;;;;;;;;;;;2537:13;;2479:79;:::o;6179:87::-;6218:13;6251:7;;;;;;;;;;;;;;;;;6244:14;;6179:87;:::o;6593:167::-;6671:4;6688:42;6698:12;:10;:12::i;:::-;6712:9;6723:6;6688:9;:42::i;:::-;6748:4;6741:11;;6593:167;;;;:::o;11721:164::-;2616:12;:10;:12::i;:::-;2606:22;;:6;;;;;;;;;;:22;;;2598:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11795:6:::1;11790:88;11811:5;:12;11807:1;:16;11790:88;;;11862:4;11845;:14;11850:5;11856:1;11850:8;;;;;;;;:::i;:::-;;;;;;;;11845:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11825:3;;;;;:::i;:::-;;;;11790:88;;;;11721:164:::0;:::o;12463:193::-;12529:15;;;;;;;;;;;12513:31;;:12;:10;:12::i;:::-;:31;;;12505:40;;;;;;12556:23;12582:24;12600:4;12582:9;:24::i;:::-;12556:50;;12617:31;12632:15;12617:14;:31::i;:::-;12494:162;12463:193::o;11415:294::-;2616:12;:10;:12::i;:::-;2606:22;;:6;;;;;;;;;;:22;;;2598:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11479:11:::1;::::0;::::1;;;;;;;;11478:12;11470:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11528:68;11541:24;11559:4;11541:9;:24::i;:::-;11566:21;11588:7;:5;:7::i;:::-;11528:12;:68::i;:::-;11621:4;11607:11;;:18;;;;;;;;;;;;;;;;;;11650:4;11636:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11691:9;11672:15;:29;;;;:::i;:::-;11665:4;:36;;;;11415:294::o:0;6768:143::-;6849:7;6876:11;:18;6888:5;6876:18;;;;;;;;;;;;;;;:27;6895:7;6876:27;;;;;;;;;;;;;;;;6869:34;;6768:143;;;;:::o;1532:246::-;1590:7;1619:1;1614;:6;1610:47;;;1644:1;1637:8;;;;1610:47;1667:9;1683:1;1679;:5;;;;:::i;:::-;1667:17;;1712:1;1707;1703;:5;;;;:::i;:::-;:10;1695:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1769:1;1762:8;;;1532:246;;;;;:::o;1786:132::-;1844:7;1871:39;1875:1;1878;1871:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1864:46;;1786:132;;;;:::o;197:98::-;250:7;277:10;270:17;;197:98;:::o;7772:335::-;7882:1;7865:19;;:5;:19;;;;7857:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7963:1;7944:21;;:7;:21;;;;7936:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8045:6;8015:11;:18;8027:5;8015:18;;;;;;;;;;;;;;;:27;8034:7;8015:27;;;;;;;;;;;;;;;:36;;;;8083:7;8067:32;;8076:5;8067:32;;;8092:6;8067:32;;;;;;:::i;:::-;;;;;;;;7772:335;;;:::o;8115:1812::-;8219:1;8203:18;;:4;:18;;;;8195:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8296:1;8282:16;;:2;:16;;;;8274:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8366:1;8357:6;:10;8349:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8433:16;8442:6;;8433:4;;:8;;:16;;;;:::i;:::-;8426:4;:23;;;;8472:7;:5;:7::i;:::-;8464:15;;:4;:15;;;;:32;;;;;8489:7;:5;:7::i;:::-;8483:13;;:2;:13;;;;8464:32;8460:1271;;;8522:4;:10;8527:4;8522:10;;;;;;;;;;;;;;;;;;;;;;;;;8521:11;:24;;;;;8537:4;:8;8542:2;8537:8;;;;;;;;;;;;;;;;;;;;;;;;;8536:9;8521:24;8513:33;;;;;;8573:13;;;;;;;;;;;8565:21;;:4;:21;;;:55;;;;;8604:15;;;;;;;;;;;8590:30;;:2;:30;;;;8565:55;:83;;;;;8626:18;:22;8645:2;8626:22;;;;;;;;;;;;;;;;;;;;;;;;;8624:24;8565:83;:111;;;;;8671:4;;8653:15;:22;8565:111;8561:333;;;8743:12;;8733:6;:22;;8725:31;;;;;;8798:15;8783:8;:12;8792:2;8783:12;;;;;;;;;;;;;;;;:30;8775:39;;;;;;8867:10;8848:15;:30;;;;:::i;:::-;8833:8;:12;8842:2;8833:12;;;;;;;;;;;;;;;:45;;;;8561:333;8946:13;;;;;;;;;;;8940:19;;:2;:19;;;:55;;;;;8979:15;;;;;;;;;;;8963:32;;:4;:32;;;;8940:55;:85;;;;;9001:18;:24;9020:4;9001:24;;;;;;;;;;;;;;;;;;;;;;;;;8999:26;8940:85;8936:149;;;9053:16;9062:6;;9053:4;;:8;;:16;;;;:::i;:::-;9046:4;:23;;;;8936:149;9118:6;;;;;;;;;;;9117:7;:32;;;;;9136:13;;;;;;;;;;;9128:21;;:4;:21;;;;9117:32;:47;;;;;9153:11;;;;;;;;;;;9117:47;:76;;;;;9169:18;:24;9188:4;9169:24;;;;;;;;;;;;;;;;;;;;;;;;;9168:25;9117:76;9113:607;;;9240:4;;9222:15;:22;9214:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9307:28;9338:24;9356:4;9338:9;:24::i;:::-;9307:55;;9407:10;;9384:20;:33;9381:324;;;9441:36;9456:20;9441:14;:36::i;:::-;9500:26;9529:21;9500:50;;9597:1;9576:18;:22;9573:113;;;9627:35;9640:21;9627:12;:35::i;:::-;9573:113;9418:287;9381:324;9195:525;9113:607;8460:1271;9745:13;;;;;;;;;;;9739:19;;:2;:19;;;:55;;;;;9778:15;;;;;;;;;;;9762:32;;:4;:32;;;;9739:55;:85;;;;;9800:18;:24;9819:4;9800:24;;;;;;;;;;;;;;;;;;;;;;;;;9798:26;9739:85;9735:141;;;9848:16;9857:6;;9848:4;;:8;;:16;;;;:::i;:::-;9841:4;:23;;;;9735:141;9886:33;9904:4;9909:2;9912:6;9886:17;:33::i;:::-;8115:1812;;;:::o;1334:190::-;1420:7;1453:1;1448;:6;;1456:12;1440:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1480:9;1496:1;1492;:5;;;;:::i;:::-;1480:17;;1515:1;1508:8;;;1334:190;;;;;:::o;11121:282::-;11178:15;;;;;;;;;;;:24;;:47;11203:21;11222:1;11203:14;11214:2;11203:6;:10;;:14;;;;:::i;:::-;:18;;:21;;;;:::i;:::-;11178:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11236:16;;;;;;;;;;;:25;;:48;11262:21;11281:1;11262:14;11273:2;11262:6;:10;;:14;;;;:::i;:::-;:18;;:21;;;;:::i;:::-;11236:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11295:14;;;;;;;;;;;:23;;:46;11319:21;11338:1;11319:14;11330:2;11319:6;:10;;:14;;;;:::i;:::-;:18;;:21;;;;:::i;:::-;11295:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11352:11;;;;;;;;;;;:20;;:43;11373:21;11392:1;11373:14;11384:2;11373:6;:10;;:14;;;;:::i;:::-;:18;;:21;;;;:::i;:::-;11352:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11121:282;:::o;10430:389::-;10494:12;10509:13;10520:1;10509:6;;:10;;:13;;;;:::i;:::-;10494:28;;10533:12;10548:14;10557:4;10548;;:8;;:14;;;;:::i;:::-;10533:29;;10573:11;10587:16;10596:6;;10587:4;;:8;;:16;;;;:::i;:::-;10573:30;;10614:17;10634:30;10660:3;10634:21;10650:4;10634:11;:15;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;10614:50;;10675:27;10692:9;10675:16;:27::i;:::-;10713:98;10726:26;10742:9;10726:11;:15;;:26;;;;:::i;:::-;10753:41;10789:4;10753:31;10779:4;10753:21;:25;;:31;;;;:::i;:::-;:35;;:41;;;;:::i;:::-;10795:15;;;;;;;;;;;10713:12;:98::i;:::-;10483:336;;;;10430:389;:::o;10827:288::-;4890:4;4881:6;;:13;;;;;;;;;;;;;;;;;;10933:60:::1;10950:4;10964:15;;;;;;;;;;;10981:11;10933:8;:60::i;:::-;11004:15;;;;;;;;;;;:31;;;11043:9;11062:4;11068:11;11080:1;11082::::0;11084:6:::1;11091:15;11004:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;4926:5:::0;4917:6;;:14;;;;;;;;;;;;;;;;;;10827:288;;;:::o;1926:189::-;2012:7;2044:1;2040;:5;2047:12;2032:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2071:9;2087:1;2083;:5;;;;:::i;:::-;2071:17;;2106:1;2099:8;;;1926:189;;;;;:::o;1003:179::-;1061:7;1081:9;1097:1;1093;:5;;;;:::i;:::-;1081:17;;1122:1;1117;:6;;1109:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1173:1;1166:8;;;1003:179;;;;:::o;11993:421::-;12092:22;12115:12;12131:20;12143:7;12131:11;:20::i;:::-;12091:60;;;;12180:28;12200:7;12180;:15;12188:6;12180:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;12162:7;:15;12170:6;12162:15;;;;;;;;;;;;;;;:46;;;;12240:38;12263:14;12240:7;:18;12248:9;12240:18;;;;;;;;;;;;;;;;:22;;:38;;;;:::i;:::-;12219:7;:18;12227:9;12219:18;;;;;;;;;;;;;;;:59;;;;12315:32;12342:4;12315:7;:22;12331:4;12315:22;;;;;;;;;;;;;;;;:26;;:32;;;;:::i;:::-;12290:7;:22;12306:4;12290:22;;;;;;;;;;;;;;;:57;;;;12380:9;12363:43;;12372:6;12363:43;;;12391:14;12363:43;;;;;;:::i;:::-;;;;;;;;12080:334;;11993:421;;;:::o;9935:483::-;4890:4;4881:6;;:13;;;;;;;;;;;;;;;;;;10013:21:::1;10051:1;10037:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10013:40;;10082:4;10064;10069:1;10064:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10108:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10098:4;10103:1;10098:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10141:62;10158:4;10173:15;;;;;;;;;;;10191:11;10141:8;:62::i;:::-;10214:15;;;;;;;;;;;:66;;;10295:11;10321:1;10337:4;10364;10384:15;10214:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10002:416;4926:5:::0;4917:6;;:14;;;;;;;;;;;;;;;;;;9935:483;:::o;1190:136::-;1248:7;1275:43;1279:1;1282;1275:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1268:50;;1190:136;;;;:::o;12873:234::-;12933:7;12942;12962:12;12977:27;12999:4;12977:17;12989:4;;12977:7;:11;;:17;;;;:::i;:::-;:21;;:27;;;;:::i;:::-;12962:42;;13015:23;13041:17;13053:4;13041:7;:11;;:17;;;;:::i;:::-;13015:43;;13077:15;13094:4;13069:30;;;;;;12873:234;;;:::o;24:722: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:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;752:139::-;798:5;836:6;823:20;814:29;;852:33;879:5;852:33;:::i;:::-;752:139;;;;:::o;897:143::-;954:5;985:6;979:13;970:22;;1001:33;1028:5;1001:33;:::i;:::-;897:143;;;;:::o;1063:370::-;1134:5;1183:3;1176:4;1168:6;1164:17;1160:27;1150:122;;1191:79;;:::i;:::-;1150:122;1308:6;1295:20;1333:94;1423:3;1415:6;1408:4;1400:6;1396:17;1333:94;:::i;:::-;1324:103;;1140:293;1063:370;;;;:::o;1439:137::-;1493:5;1524:6;1518:13;1509:22;;1540:30;1564:5;1540:30;:::i;:::-;1439:137;;;;:::o;1582:139::-;1628:5;1666:6;1653:20;1644:29;;1682:33;1709:5;1682:33;:::i;:::-;1582:139;;;;:::o;1727:143::-;1784:5;1815:6;1809:13;1800:22;;1831:33;1858:5;1831:33;:::i;:::-;1727:143;;;;:::o;1876:329::-;1935:6;1984:2;1972:9;1963:7;1959:23;1955:32;1952:119;;;1990:79;;:::i;:::-;1952:119;2110:1;2135:53;2180:7;2171:6;2160:9;2156:22;2135:53;:::i;:::-;2125:63;;2081:117;1876:329;;;;:::o;2211:351::-;2281:6;2330:2;2318:9;2309:7;2305:23;2301:32;2298:119;;;2336:79;;:::i;:::-;2298:119;2456:1;2481:64;2537:7;2528:6;2517:9;2513:22;2481:64;:::i;:::-;2471:74;;2427:128;2211:351;;;;:::o;2568:474::-;2636:6;2644;2693:2;2681:9;2672:7;2668:23;2664:32;2661:119;;;2699:79;;:::i;:::-;2661:119;2819:1;2844:53;2889:7;2880:6;2869:9;2865:22;2844:53;:::i;:::-;2834:63;;2790:117;2946:2;2972:53;3017:7;3008:6;2997:9;2993:22;2972:53;:::i;:::-;2962:63;;2917:118;2568:474;;;;;:::o;3048:619::-;3125:6;3133;3141;3190:2;3178:9;3169:7;3165:23;3161:32;3158:119;;;3196:79;;:::i;:::-;3158:119;3316:1;3341:53;3386:7;3377:6;3366:9;3362:22;3341:53;:::i;:::-;3331:63;;3287:117;3443:2;3469:53;3514:7;3505:6;3494:9;3490:22;3469:53;:::i;:::-;3459:63;;3414:118;3571:2;3597:53;3642:7;3633:6;3622:9;3618:22;3597:53;:::i;:::-;3587:63;;3542:118;3048:619;;;;;:::o;3673:474::-;3741:6;3749;3798:2;3786:9;3777:7;3773:23;3769:32;3766:119;;;3804:79;;:::i;:::-;3766:119;3924:1;3949:53;3994:7;3985:6;3974:9;3970:22;3949:53;:::i;:::-;3939:63;;3895:117;4051:2;4077:53;4122:7;4113:6;4102:9;4098:22;4077:53;:::i;:::-;4067:63;;4022:118;3673:474;;;;;:::o;4153:539::-;4237:6;4286:2;4274:9;4265:7;4261:23;4257:32;4254:119;;;4292:79;;:::i;:::-;4254:119;4440:1;4429:9;4425:17;4412:31;4470:18;4462:6;4459:30;4456:117;;;4492:79;;:::i;:::-;4456:117;4597:78;4667:7;4658:6;4647:9;4643:22;4597:78;:::i;:::-;4587:88;;4383:302;4153:539;;;;:::o;4698:345::-;4765:6;4814:2;4802:9;4793:7;4789:23;4785:32;4782:119;;;4820:79;;:::i;:::-;4782:119;4940:1;4965:61;5018:7;5009:6;4998:9;4994:22;4965:61;:::i;:::-;4955:71;;4911:125;4698:345;;;;:::o;5049:329::-;5108:6;5157:2;5145:9;5136:7;5132:23;5128:32;5125:119;;;5163:79;;:::i;:::-;5125:119;5283:1;5308:53;5353:7;5344:6;5333:9;5329:22;5308:53;:::i;:::-;5298:63;;5254:117;5049:329;;;;:::o;5384:351::-;5454:6;5503:2;5491:9;5482:7;5478:23;5474:32;5471:119;;;5509:79;;:::i;:::-;5471:119;5629:1;5654:64;5710:7;5701:6;5690:9;5686:22;5654:64;:::i;:::-;5644:74;;5600:128;5384:351;;;;:::o;5741:663::-;5829:6;5837;5845;5894:2;5882:9;5873:7;5869:23;5865:32;5862:119;;;5900:79;;:::i;:::-;5862:119;6020:1;6045:64;6101:7;6092:6;6081:9;6077:22;6045:64;:::i;:::-;6035:74;;5991:128;6158:2;6184:64;6240:7;6231:6;6220:9;6216:22;6184:64;:::i;:::-;6174:74;;6129:129;6297:2;6323:64;6379:7;6370:6;6359:9;6355:22;6323:64;:::i;:::-;6313:74;;6268:129;5741:663;;;;;:::o;6410:179::-;6479:10;6500:46;6542:3;6534:6;6500:46;:::i;:::-;6578:4;6573:3;6569:14;6555:28;;6410:179;;;;:::o;6595:147::-;6690:45;6729:5;6690:45;:::i;:::-;6685:3;6678:58;6595:147;;:::o;6748:108::-;6825:24;6843:5;6825:24;:::i;:::-;6820:3;6813:37;6748:108;;:::o;6862:118::-;6949:24;6967:5;6949:24;:::i;:::-;6944:3;6937:37;6862:118;;:::o;7016:732::-;7135:3;7164:54;7212:5;7164:54;:::i;:::-;7234:86;7313:6;7308:3;7234:86;:::i;:::-;7227:93;;7344:56;7394:5;7344:56;:::i;:::-;7423:7;7454:1;7439:284;7464:6;7461:1;7458:13;7439:284;;;7540:6;7534:13;7567:63;7626:3;7611:13;7567:63;:::i;:::-;7560:70;;7653:60;7706:6;7653:60;:::i;:::-;7643:70;;7499:224;7486:1;7483;7479:9;7474:14;;7439:284;;;7443:14;7739:3;7732:10;;7140:608;;;7016:732;;;;:::o;7754:109::-;7835:21;7850:5;7835:21;:::i;:::-;7830:3;7823:34;7754:109;;:::o;7869:147::-;7964:45;8003:5;7964:45;:::i;:::-;7959:3;7952:58;7869:147;;:::o;8022:364::-;8110:3;8138:39;8171:5;8138:39;:::i;:::-;8193:71;8257:6;8252:3;8193:71;:::i;:::-;8186:78;;8273:52;8318:6;8313:3;8306:4;8299:5;8295:16;8273:52;:::i;:::-;8350:29;8372:6;8350:29;:::i;:::-;8345:3;8341:39;8334:46;;8114:272;8022:364;;;;:::o;8392:366::-;8534:3;8555:67;8619:2;8614:3;8555:67;:::i;:::-;8548:74;;8631:93;8720:3;8631:93;:::i;:::-;8749:2;8744:3;8740:12;8733:19;;8392:366;;;:::o;8764:::-;8906:3;8927:67;8991:2;8986:3;8927:67;:::i;:::-;8920:74;;9003:93;9092:3;9003:93;:::i;:::-;9121:2;9116:3;9112:12;9105:19;;8764:366;;;:::o;9136:::-;9278:3;9299:67;9363:2;9358:3;9299:67;:::i;:::-;9292:74;;9375:93;9464:3;9375:93;:::i;:::-;9493:2;9488:3;9484:12;9477:19;;9136:366;;;:::o;9508:::-;9650:3;9671:67;9735:2;9730:3;9671:67;:::i;:::-;9664:74;;9747:93;9836:3;9747:93;:::i;:::-;9865:2;9860:3;9856:12;9849:19;;9508:366;;;:::o;9880:::-;10022:3;10043:67;10107:2;10102:3;10043:67;:::i;:::-;10036:74;;10119:93;10208:3;10119:93;:::i;:::-;10237:2;10232:3;10228:12;10221:19;;9880:366;;;:::o;10252:::-;10394:3;10415:67;10479:2;10474:3;10415:67;:::i;:::-;10408:74;;10491:93;10580:3;10491:93;:::i;:::-;10609:2;10604:3;10600:12;10593:19;;10252:366;;;:::o;10624:::-;10766:3;10787:67;10851:2;10846:3;10787:67;:::i;:::-;10780:74;;10863:93;10952:3;10863:93;:::i;:::-;10981:2;10976:3;10972:12;10965:19;;10624:366;;;:::o;10996:::-;11138:3;11159:67;11223:2;11218:3;11159:67;:::i;:::-;11152:74;;11235:93;11324:3;11235:93;:::i;:::-;11353:2;11348:3;11344:12;11337:19;;10996:366;;;:::o;11368:::-;11510:3;11531:67;11595:2;11590:3;11531:67;:::i;:::-;11524:74;;11607:93;11696:3;11607:93;:::i;:::-;11725:2;11720:3;11716:12;11709:19;;11368:366;;;:::o;11740:::-;11882:3;11903:67;11967:2;11962:3;11903:67;:::i;:::-;11896:74;;11979:93;12068:3;11979:93;:::i;:::-;12097:2;12092:3;12088:12;12081:19;;11740:366;;;:::o;12112:118::-;12199:24;12217:5;12199:24;:::i;:::-;12194:3;12187:37;12112:118;;:::o;12236:112::-;12319:22;12335:5;12319:22;:::i;:::-;12314:3;12307:35;12236:112;;:::o;12354:222::-;12447:4;12485:2;12474:9;12470:18;12462:26;;12498:71;12566:1;12555:9;12551:17;12542:6;12498:71;:::i;:::-;12354:222;;;;:::o;12582:348::-;12711:4;12749:2;12738:9;12734:18;12726:26;;12762:79;12838:1;12827:9;12823:17;12814:6;12762:79;:::i;:::-;12851:72;12919:2;12908:9;12904:18;12895:6;12851:72;:::i;:::-;12582:348;;;;;:::o;12936:807::-;13185:4;13223:3;13212:9;13208:19;13200:27;;13237:71;13305:1;13294:9;13290:17;13281:6;13237:71;:::i;:::-;13318:72;13386:2;13375:9;13371:18;13362:6;13318:72;:::i;:::-;13400:80;13476:2;13465:9;13461:18;13452:6;13400:80;:::i;:::-;13490;13566:2;13555:9;13551:18;13542:6;13490:80;:::i;:::-;13580:73;13648:3;13637:9;13633:19;13624:6;13580:73;:::i;:::-;13663;13731:3;13720:9;13716:19;13707:6;13663:73;:::i;:::-;12936:807;;;;;;;;;:::o;13749:210::-;13836:4;13874:2;13863:9;13859:18;13851:26;;13887:65;13949:1;13938:9;13934:17;13925:6;13887:65;:::i;:::-;13749:210;;;;:::o;13965:313::-;14078:4;14116:2;14105:9;14101:18;14093:26;;14165:9;14159:4;14155:20;14151:1;14140:9;14136:17;14129:47;14193:78;14266:4;14257:6;14193:78;:::i;:::-;14185:86;;13965:313;;;;:::o;14284:419::-;14450:4;14488:2;14477:9;14473:18;14465:26;;14537:9;14531:4;14527:20;14523:1;14512:9;14508:17;14501:47;14565:131;14691:4;14565:131;:::i;:::-;14557:139;;14284:419;;;:::o;14709:::-;14875:4;14913:2;14902:9;14898:18;14890:26;;14962:9;14956:4;14952:20;14948:1;14937:9;14933:17;14926:47;14990:131;15116:4;14990:131;:::i;:::-;14982:139;;14709:419;;;:::o;15134:::-;15300:4;15338:2;15327:9;15323:18;15315:26;;15387:9;15381:4;15377:20;15373:1;15362:9;15358:17;15351:47;15415:131;15541:4;15415:131;:::i;:::-;15407:139;;15134:419;;;:::o;15559:::-;15725:4;15763:2;15752:9;15748:18;15740:26;;15812:9;15806:4;15802:20;15798:1;15787:9;15783:17;15776:47;15840:131;15966:4;15840:131;:::i;:::-;15832:139;;15559:419;;;:::o;15984:::-;16150:4;16188:2;16177:9;16173:18;16165:26;;16237:9;16231:4;16227:20;16223:1;16212:9;16208:17;16201:47;16265:131;16391:4;16265:131;:::i;:::-;16257:139;;15984:419;;;:::o;16409:::-;16575:4;16613:2;16602:9;16598:18;16590:26;;16662:9;16656:4;16652:20;16648:1;16637:9;16633:17;16626:47;16690:131;16816:4;16690:131;:::i;:::-;16682:139;;16409:419;;;:::o;16834:::-;17000:4;17038:2;17027:9;17023:18;17015:26;;17087:9;17081:4;17077:20;17073:1;17062:9;17058:17;17051:47;17115:131;17241:4;17115:131;:::i;:::-;17107:139;;16834:419;;;:::o;17259:::-;17425:4;17463:2;17452:9;17448:18;17440:26;;17512:9;17506:4;17502:20;17498:1;17487:9;17483:17;17476:47;17540:131;17666:4;17540:131;:::i;:::-;17532:139;;17259:419;;;:::o;17684:::-;17850:4;17888:2;17877:9;17873:18;17865:26;;17937:9;17931:4;17927:20;17923:1;17912:9;17908:17;17901:47;17965:131;18091:4;17965:131;:::i;:::-;17957:139;;17684:419;;;:::o;18109:::-;18275:4;18313:2;18302:9;18298:18;18290:26;;18362:9;18356:4;18352:20;18348:1;18337:9;18333:17;18326:47;18390:131;18516:4;18390:131;:::i;:::-;18382:139;;18109:419;;;:::o;18534:222::-;18627:4;18665:2;18654:9;18650:18;18642:26;;18678:71;18746:1;18735:9;18731:17;18722:6;18678:71;:::i;:::-;18534:222;;;;:::o;18762:831::-;19025:4;19063:3;19052:9;19048:19;19040:27;;19077:71;19145:1;19134:9;19130:17;19121:6;19077:71;:::i;:::-;19158:80;19234:2;19223:9;19219:18;19210:6;19158:80;:::i;:::-;19285:9;19279:4;19275:20;19270:2;19259:9;19255:18;19248:48;19313:108;19416:4;19407:6;19313:108;:::i;:::-;19305:116;;19431:72;19499:2;19488:9;19484:18;19475:6;19431:72;:::i;:::-;19513:73;19581:3;19570:9;19566:19;19557:6;19513:73;:::i;:::-;18762:831;;;;;;;;:::o;19599:214::-;19688:4;19726:2;19715:9;19711:18;19703:26;;19739:67;19803:1;19792:9;19788:17;19779:6;19739:67;:::i;:::-;19599:214;;;;:::o;19819:129::-;19853:6;19880:20;;:::i;:::-;19870:30;;19909:33;19937:4;19929:6;19909:33;:::i;:::-;19819:129;;;:::o;19954:75::-;19987:6;20020:2;20014:9;20004:19;;19954:75;:::o;20035:311::-;20112:4;20202:18;20194:6;20191:30;20188:56;;;20224:18;;:::i;:::-;20188:56;20274:4;20266:6;20262:17;20254:25;;20334:4;20328;20324:15;20316:23;;20035:311;;;:::o;20352:132::-;20419:4;20442:3;20434:11;;20472:4;20467:3;20463:14;20455:22;;20352:132;;;:::o;20490:114::-;20557:6;20591:5;20585:12;20575:22;;20490:114;;;:::o;20610:99::-;20662:6;20696:5;20690:12;20680:22;;20610:99;;;:::o;20715:113::-;20785:4;20817;20812:3;20808:14;20800:22;;20715:113;;;:::o;20834:184::-;20933:11;20967:6;20962:3;20955:19;21007:4;21002:3;20998:14;20983:29;;20834:184;;;;:::o;21024:169::-;21108:11;21142:6;21137:3;21130:19;21182:4;21177:3;21173:14;21158:29;;21024:169;;;;:::o;21199:305::-;21239:3;21258:20;21276:1;21258:20;:::i;:::-;21253:25;;21292:20;21310:1;21292:20;:::i;:::-;21287:25;;21446:1;21378:66;21374:74;21371:1;21368:81;21365:107;;;21452:18;;:::i;:::-;21365:107;21496:1;21493;21489:9;21482:16;;21199:305;;;;:::o;21510:185::-;21550:1;21567:20;21585:1;21567:20;:::i;:::-;21562:25;;21601:20;21619:1;21601:20;:::i;:::-;21596:25;;21640:1;21630:35;;21645:18;;:::i;:::-;21630:35;21687:1;21684;21680:9;21675:14;;21510:185;;;;:::o;21701:348::-;21741:7;21764:20;21782:1;21764:20;:::i;:::-;21759:25;;21798:20;21816:1;21798:20;:::i;:::-;21793:25;;21986:1;21918:66;21914:74;21911:1;21908:81;21903:1;21896:9;21889:17;21885:105;21882:131;;;21993:18;;:::i;:::-;21882:131;22041:1;22038;22034:9;22023:20;;21701:348;;;;:::o;22055:191::-;22095:4;22115:20;22133:1;22115:20;:::i;:::-;22110:25;;22149:20;22167:1;22149:20;:::i;:::-;22144:25;;22188:1;22185;22182:8;22179:34;;;22193:18;;:::i;:::-;22179:34;22238:1;22235;22231:9;22223:17;;22055:191;;;;:::o;22252:96::-;22289:7;22318:24;22336:5;22318:24;:::i;:::-;22307:35;;22252:96;;;:::o;22354:90::-;22388:7;22431:5;22424:13;22417:21;22406:32;;22354:90;;;:::o;22450:126::-;22487:7;22527:42;22520:5;22516:54;22505:65;;22450:126;;;:::o;22582:77::-;22619:7;22648:5;22637:16;;22582:77;;;:::o;22665:86::-;22700:7;22740:4;22733:5;22729:16;22718:27;;22665:86;;;:::o;22757:134::-;22815:9;22848:37;22879:5;22848:37;:::i;:::-;22835:50;;22757:134;;;:::o;22897:121::-;22955:9;22988:24;23006:5;22988:24;:::i;:::-;22975:37;;22897:121;;;:::o;23024:126::-;23074:9;23107:37;23138:5;23107:37;:::i;:::-;23094:50;;23024:126;;;:::o;23156:113::-;23206:9;23239:24;23257:5;23239:24;:::i;:::-;23226:37;;23156:113;;;:::o;23275:307::-;23343:1;23353:113;23367:6;23364:1;23361:13;23353:113;;;23452:1;23447:3;23443:11;23437:18;23433:1;23428:3;23424:11;23417:39;23389:2;23386:1;23382:10;23377:15;;23353:113;;;23484:6;23481:1;23478:13;23475:101;;;23564:1;23555:6;23550:3;23546:16;23539:27;23475:101;23324:258;23275:307;;;:::o;23588:281::-;23671:27;23693:4;23671:27;:::i;:::-;23663:6;23659:40;23801:6;23789:10;23786:22;23765:18;23753:10;23750:34;23747:62;23744:88;;;23812:18;;:::i;:::-;23744:88;23852:10;23848:2;23841:22;23631:238;23588:281;;:::o;23875:233::-;23914:3;23937:24;23955:5;23937:24;:::i;:::-;23928:33;;23983:66;23976:5;23973:77;23970:103;;;24053:18;;:::i;:::-;23970:103;24100:1;24093:5;24089:13;24082:20;;23875:233;;;:::o;24114:180::-;24162:77;24159:1;24152:88;24259:4;24256:1;24249:15;24283:4;24280:1;24273:15;24300:180;24348:77;24345:1;24338:88;24445:4;24442:1;24435:15;24469:4;24466:1;24459:15;24486:180;24534:77;24531:1;24524:88;24631:4;24628:1;24621:15;24655:4;24652:1;24645:15;24672:180;24720:77;24717:1;24710:88;24817:4;24814:1;24807:15;24841:4;24838:1;24831:15;24858:117;24967:1;24964;24957:12;24981:117;25090:1;25087;25080:12;25104:117;25213:1;25210;25203:12;25227:117;25336:1;25333;25326:12;25350:102;25391:6;25442:2;25438:7;25433:2;25426:5;25422:14;25418:28;25408:38;;25350:102;;;:::o;25458:227::-;25598:34;25594:1;25586:6;25582:14;25575:58;25667:10;25662:2;25654:6;25650:15;25643:35;25458:227;:::o;25691:222::-;25831:34;25827:1;25819:6;25815:14;25808:58;25900:5;25895:2;25887:6;25883:15;25876:30;25691:222;:::o;25919:221::-;26059:34;26055:1;26047:6;26043:14;26036:58;26128:4;26123:2;26115:6;26111:15;26104:29;25919:221;:::o;26146:177::-;26286:29;26282:1;26274:6;26270:14;26263:53;26146:177;:::o;26329:220::-;26469:34;26465:1;26457:6;26453:14;26446:58;26538:3;26533:2;26525:6;26521:15;26514:28;26329:220;:::o;26555:182::-;26695:34;26691:1;26683:6;26679:14;26672:58;26555:182;:::o;26743:228::-;26883:34;26879:1;26871:6;26867:14;26860:58;26952:11;26947:2;26939:6;26935:15;26928:36;26743:228;:::o;26977:224::-;27117:34;27113:1;27105:6;27101:14;27094:58;27186:7;27181:2;27173:6;27169:15;27162:32;26977:224;:::o;27207:223::-;27347:34;27343:1;27335:6;27331:14;27324:58;27416:6;27411:2;27403:6;27399:15;27392:31;27207:223;:::o;27436:173::-;27576:25;27572:1;27564:6;27560:14;27553:49;27436:173;:::o;27615:122::-;27688:24;27706:5;27688:24;:::i;:::-;27681:5;27678:35;27668:63;;27727:1;27724;27717:12;27668:63;27615:122;:::o;27743:116::-;27813:21;27828:5;27813:21;:::i;:::-;27806:5;27803:32;27793:60;;27849:1;27846;27839:12;27793:60;27743:116;:::o;27865:122::-;27938:24;27956:5;27938:24;:::i;:::-;27931:5;27928:35;27918:63;;27977:1;27974;27967:12;27918:63;27865:122;:::o

Swarm Source

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