ETH Price: $3,384.01 (+3.45%)
Gas: 2 Gwei

Token

Fentanyl Turkey Coin (FENT)
 

Overview

Max Total Supply

1,000,000,000,000 FENT

Holders

69

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
0xmoles.eth
Balance
0.174799984 FENT

Value
$0.00
0x1ee9e2692b4fcb8016f1986699aee96d4b6f9586
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:
Fent

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-18
*/

// SPDX-License-Identifier: Unlicensed

//https://twitter.com/FentanylTurkey
//https://fentanylturkey.net/
//https://t.me/fentanylturkey

pragma solidity ^0.8.4;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}  

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

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

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

    uint256 private constant _tTotal = 1 * 10**12 * 10**9;
    uint256 private fee1=250;
    uint256 private fee2=400;
    uint256 private feeMax=500;
    string private constant _name = "Fentanyl Turkey Coin";
    string private constant _symbol = "FENT";
    uint256 private _maxTxAmount = _tTotal.mul(2).div(100);
    uint256 private minBalance = _tTotal.div(1000);
    uint256 private maxSellBalance = _tTotal.div(100);


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

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

    }

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

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

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

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

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

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

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

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

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

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

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

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

        _tax = fee1;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && (block.timestamp < time)){
                // Cooldown
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            if (!inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from]) {
                
                uint256 tokenBalance = balanceOf(address(this));
                if (tokenBalance > maxSellBalance){
                    tokenBalance = maxSellBalance;
                }
                if(tokenBalance > minBalance){
                    swapTokensForEth(tokenBalance);
                    uint256 contractETHBalance = address(this).balance;
                    if(contractETHBalance > 0) {
                        sendETHToFee(address(this).balance);
                    }
                }
            }
        }
        if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
            _tax = fee2;
        }
        _transferStandard(from,to,amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount,uint256 ethAmount,address target) private lockTheSwap{
        _approve(address(this),address(uniswapV2Router),tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,target,block.timestamp);
    }
    
    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet1.transfer(amount);
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        addLiquidity(balanceOf(address(this)),address(this).balance,owner());
        swapEnabled = true;
        tradingOpen = true;
        time = block.timestamp + (5 minutes);
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

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

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

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

Contract Security Audit

Contract ABI

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

608060405260fa600955610190600a556101f4600b556200005360646200003f6002683635c9adc5dea00000620006a260201b62000ff11790919060201c565b6200072560201b6200106b1790919060201c565b600c556200007b6103e8683635c9adc5dea000006200072560201b6200106b1790919060201c565b600d55620000a26064683635c9adc5dea000006200072560201b6200106b1790919060201c565b600e556000601160156101000a81548160ff0219169083151502179055506000601160166101000a81548160ff0219169083151502179055506000620000ed6200077760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200020a6009620001f6600a683635c9adc5dea000006200072560201b6200106b1790919060201c565b620006a260201b62000ff11790919060201c565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000271600a683635c9adc5dea000006200072560201b6200106b1790919060201c565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160046000620002ca6200077f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004b0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004d691906200087a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000560573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200058691906200087a565b6040518363ffffffff1660e01b8152600401620005a5929190620008bd565b6020604051808303816000875af1158015620005c5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005eb91906200087a565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea0000060405162000694919062000905565b60405180910390a362000b59565b6000808303620006b657600090506200071f565b60008284620006c6919062000951565b9050828482620006d79190620009cb565b146200071a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007119062000a8a565b60405180910390fd5b809150505b92915050565b60006200076f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620007a860201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008083118290620007f2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007e9919062000b35565b60405180910390fd5b5060008385620008039190620009cb565b9050809150509392505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008428262000815565b9050919050565b620008548162000835565b81146200086057600080fd5b50565b600081519050620008748162000849565b92915050565b60006020828403121562000893576200089262000810565b5b6000620008a38482850162000863565b91505092915050565b620008b78162000835565b82525050565b6000604082019050620008d46000830185620008ac565b620008e36020830184620008ac565b9392505050565b6000819050919050565b620008ff81620008ea565b82525050565b60006020820190506200091c6000830184620008f4565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200095e82620008ea565b91506200096b83620008ea565b92508282026200097b81620008ea565b9150828204841483151762000995576200099462000922565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620009d882620008ea565b9150620009e583620008ea565b925082620009f857620009f76200099c565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600062000a7260218362000a03565b915062000a7f8262000a14565b604082019050919050565b6000602082019050818103600083015262000aa58162000a63565b9050919050565b600081519050919050565b60005b8381101562000ad757808201518184015260208101905062000aba565b60008484015250505050565b6000601f19601f8301169050919050565b600062000b018262000aac565b62000b0d818562000a03565b935062000b1f81856020860162000ab7565b62000b2a8162000ae3565b840191505092915050565b6000602082019050818103600083015262000b51818462000af4565b905092915050565b6130b48062000b696000396000f3fe6080604052600436106101185760003560e01c806370a08231116100a0578063aae1c07411610064578063aae1c07414610398578063b515566a146103c1578063c3c8cd80146103ea578063c9567bf914610401578063dd62ed3e146104185761011f565b806370a08231146102b1578063715018a6146102ee5780638da5cb5b1461030557806395d89b4114610330578063a9059cbb1461035b5761011f565b806323b872dd116100e757806323b872dd146101e0578063273123b71461021d578063313ce567146102465780634ea18fab146102715780636fc3eaec1461029a5761011f565b806306fdde0314610124578063095ea7b31461014f57806316114acd1461018c57806318160ddd146101b55761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610455565b6040516101469190612169565b60405180910390f35b34801561015b57600080fd5b5061017660048036038101906101719190612233565b610492565b604051610183919061228e565b60405180910390f35b34801561019857600080fd5b506101b360048036038101906101ae91906122a9565b6104b0565b005b3480156101c157600080fd5b506101ca610634565b6040516101d791906122e5565b60405180910390f35b3480156101ec57600080fd5b5061020760048036038101906102029190612300565b610645565b604051610214919061228e565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f91906122a9565b61071e565b005b34801561025257600080fd5b5061025b61080e565b604051610268919061236f565b60405180910390f35b34801561027d57600080fd5b506102986004803603810190610293919061238a565b610817565b005b3480156102a657600080fd5b506102af610882565b005b3480156102bd57600080fd5b506102d860048036038101906102d391906122a9565b6108f4565b6040516102e591906122e5565b60405180910390f35b3480156102fa57600080fd5b5061030361093d565b005b34801561031157600080fd5b5061031a610a90565b60405161032791906123c6565b60405180910390f35b34801561033c57600080fd5b50610345610ab9565b6040516103529190612169565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d9190612233565b610af6565b60405161038f919061228e565b60405180910390f35b3480156103a457600080fd5b506103bf60048036038101906103ba919061240d565b610b14565b005b3480156103cd57600080fd5b506103e860048036038101906103e39190612595565b610c7b565b005b3480156103f657600080fd5b506103ff610da5565b005b34801561040d57600080fd5b50610416610e1f565b005b34801561042457600080fd5b5061043f600480360381019061043a91906125de565b610f6a565b60405161044c91906122e5565b60405180910390f35b60606040518060400160405280601481526020017f46656e74616e796c205475726b657920436f696e000000000000000000000000815250905090565b60006104a661049f6110b5565b84846110bd565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166104f16110b5565b73ffffffffffffffffffffffffffffffffffffffff161461051157600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161058e91906123c6565b602060405180830381865afa1580156105ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105cf9190612633565b6040518363ffffffff1660e01b81526004016105ec9291906126bf565b6020604051808303816000875af115801561060b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062f9190612714565b505050565b6000683635c9adc5dea00000905090565b6000610652848484611286565b6107138461065e6110b5565b61070e8560405180606001604052806028815260200161305760289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106c46110b5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118e19092919063ffffffff16565b6110bd565b600190509392505050565b6107266110b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107aa9061278d565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108586110b5565b73ffffffffffffffffffffffffffffffffffffffff161461087857600080fd5b80600d8190555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108c36110b5565b73ffffffffffffffffffffffffffffffffffffffff16146108e357600080fd5b60004790506108f181611945565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109456110b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c99061278d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f46454e5400000000000000000000000000000000000000000000000000000000815250905090565b6000610b0a610b036110b5565b8484611286565b6001905092915050565b610b1c6110b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ba9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba09061278d565b60405180910390fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bea6110b5565b73ffffffffffffffffffffffffffffffffffffffff1614610c0a57600080fd5b600b548260ff1611158015610c245750600b548160ff1611155b610c63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5a906127f9565b60405180910390fd5b8160ff166009819055508060ff16600a819055505050565b610c836110b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d079061278d565b60405180910390fd5b60005b8151811015610da157600160056000848481518110610d3557610d34612819565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d9990612877565b915050610d13565b5050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610de66110b5565b73ffffffffffffffffffffffffffffffffffffffff1614610e0657600080fd5b6000610e11306108f4565b9050610e1c816119b1565b50565b610e276110b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eab9061278d565b60405180910390fd5b601160149054906101000a900460ff1615610f04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efb9061290b565b60405180910390fd5b610f1e610f10306108f4565b47610f19610a90565b611c2a565b6001601160166101000a81548160ff0219169083151502179055506001601160146101000a81548160ff02191690831515021790555061012c42610f62919061292b565b600781905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008083036110035760009050611065565b60008284611011919061295f565b905082848261102091906129d0565b14611060576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105790612a73565b60405180910390fd5b809150505b92915050565b60006110ad83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d3f565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361112c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112390612b05565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361119b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119290612b97565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161127991906122e5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ec90612c29565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611364576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135b90612cbb565b60405180910390fd5b600081116113a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139e90612d4d565b60405180910390fd5b6009546008819055506113b8610a90565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561142657506113f6610a90565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156117c157600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114cf5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6114d857600080fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156115835750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115d95750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156115e6575060075442105b1561169657600c548111156115fa57600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061164557600080fd5b601e42611652919061292b565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601160159054906101000a900460ff161580156117015750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117195750601160169054906101000a900460ff165b801561176f5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117c057600061177f306108f4565b9050600e5481111561179157600e5490505b600d548111156117be576117a4816119b1565b600047905060008111156117bc576117bb47611945565b5b505b505b5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561186c5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118c25750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118d157600a546008819055505b6118dc838383611da2565b505050565b6000838311158290611929576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119209190612169565b60405180910390fd5b50600083856119389190612d6d565b9050809150509392505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156119ad573d6000803e3d6000fd5b5050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156119e9576119e8612452565b5b604051908082528060200260200182016040528015611a175781602001602082028036833780820191505090505b5090503081600081518110611a2f57611a2e612819565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ad6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611afa9190612db6565b81600181518110611b0e57611b0d612819565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611b7530601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110bd565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611bd9959493929190612edc565b600060405180830381600087803b158015611bf357600080fd5b505af1158015611c07573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b6001601160156101000a81548160ff021916908315150217905550611c7230601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856110bd565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b8152600401611cd996959493929190612f36565b60606040518083038185885af1158015611cf7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611d1c9190612f97565b5050506000601160156101000a81548160ff021916908315150217905550505050565b60008083118290611d86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7d9190612169565b60405180910390fd5b5060008385611d9591906129d0565b9050809150509392505050565b600080611dae83611fdd565b91509150611e0483600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203190919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e9982600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461207b90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f2e81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461207b90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611fce91906122e5565b60405180910390a35050505050565b600080600061200b6103e8611ffd60085487610ff190919063ffffffff16565b61106b90919063ffffffff16565b90506000612022828661203190919063ffffffff16565b90508082935093505050915091565b600061207383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118e1565b905092915050565b600080828461208a919061292b565b9050838110156120cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c690613036565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121135780820151818401526020810190506120f8565b60008484015250505050565b6000601f19601f8301169050919050565b600061213b826120d9565b61214581856120e4565b93506121558185602086016120f5565b61215e8161211f565b840191505092915050565b600060208201905081810360008301526121838184612130565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121ca8261219f565b9050919050565b6121da816121bf565b81146121e557600080fd5b50565b6000813590506121f7816121d1565b92915050565b6000819050919050565b612210816121fd565b811461221b57600080fd5b50565b60008135905061222d81612207565b92915050565b6000806040838503121561224a57612249612195565b5b6000612258858286016121e8565b92505060206122698582860161221e565b9150509250929050565b60008115159050919050565b61228881612273565b82525050565b60006020820190506122a3600083018461227f565b92915050565b6000602082840312156122bf576122be612195565b5b60006122cd848285016121e8565b91505092915050565b6122df816121fd565b82525050565b60006020820190506122fa60008301846122d6565b92915050565b60008060006060848603121561231957612318612195565b5b6000612327868287016121e8565b9350506020612338868287016121e8565b92505060406123498682870161221e565b9150509250925092565b600060ff82169050919050565b61236981612353565b82525050565b60006020820190506123846000830184612360565b92915050565b6000602082840312156123a05761239f612195565b5b60006123ae8482850161221e565b91505092915050565b6123c0816121bf565b82525050565b60006020820190506123db60008301846123b7565b92915050565b6123ea81612353565b81146123f557600080fd5b50565b600081359050612407816123e1565b92915050565b6000806040838503121561242457612423612195565b5b6000612432858286016123f8565b9250506020612443858286016123f8565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61248a8261211f565b810181811067ffffffffffffffff821117156124a9576124a8612452565b5b80604052505050565b60006124bc61218b565b90506124c88282612481565b919050565b600067ffffffffffffffff8211156124e8576124e7612452565b5b602082029050602081019050919050565b600080fd5b600061251161250c846124cd565b6124b2565b90508083825260208201905060208402830185811115612534576125336124f9565b5b835b8181101561255d578061254988826121e8565b845260208401935050602081019050612536565b5050509392505050565b600082601f83011261257c5761257b61244d565b5b813561258c8482602086016124fe565b91505092915050565b6000602082840312156125ab576125aa612195565b5b600082013567ffffffffffffffff8111156125c9576125c861219a565b5b6125d584828501612567565b91505092915050565b600080604083850312156125f5576125f4612195565b5b6000612603858286016121e8565b9250506020612614858286016121e8565b9150509250929050565b60008151905061262d81612207565b92915050565b60006020828403121561264957612648612195565b5b60006126578482850161261e565b91505092915050565b6000819050919050565b600061268561268061267b8461219f565b612660565b61219f565b9050919050565b60006126978261266a565b9050919050565b60006126a98261268c565b9050919050565b6126b98161269e565b82525050565b60006040820190506126d460008301856126b0565b6126e160208301846122d6565b9392505050565b6126f181612273565b81146126fc57600080fd5b50565b60008151905061270e816126e8565b92915050565b60006020828403121561272a57612729612195565b5b6000612738848285016126ff565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006127776020836120e4565b915061278282612741565b602082019050919050565b600060208201905081810360008301526127a68161276a565b9050919050565b7f43616e6e6f742073657420666565732061626f7665206d6178696d756d000000600082015250565b60006127e3601d836120e4565b91506127ee826127ad565b602082019050919050565b60006020820190508181036000830152612812816127d6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612882826121fd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036128b4576128b3612848565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006128f56017836120e4565b9150612900826128bf565b602082019050919050565b60006020820190508181036000830152612924816128e8565b9050919050565b6000612936826121fd565b9150612941836121fd565b925082820190508082111561295957612958612848565b5b92915050565b600061296a826121fd565b9150612975836121fd565b9250828202612983816121fd565b9150828204841483151761299a57612999612848565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006129db826121fd565b91506129e6836121fd565b9250826129f6576129f56129a1565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a5d6021836120e4565b9150612a6882612a01565b604082019050919050565b60006020820190508181036000830152612a8c81612a50565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612aef6024836120e4565b9150612afa82612a93565b604082019050919050565b60006020820190508181036000830152612b1e81612ae2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612b816022836120e4565b9150612b8c82612b25565b604082019050919050565b60006020820190508181036000830152612bb081612b74565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612c136025836120e4565b9150612c1e82612bb7565b604082019050919050565b60006020820190508181036000830152612c4281612c06565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612ca56023836120e4565b9150612cb082612c49565b604082019050919050565b60006020820190508181036000830152612cd481612c98565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612d376029836120e4565b9150612d4282612cdb565b604082019050919050565b60006020820190508181036000830152612d6681612d2a565b9050919050565b6000612d78826121fd565b9150612d83836121fd565b9250828203905081811115612d9b57612d9a612848565b5b92915050565b600081519050612db0816121d1565b92915050565b600060208284031215612dcc57612dcb612195565b5b6000612dda84828501612da1565b91505092915050565b6000819050919050565b6000612e08612e03612dfe84612de3565b612660565b6121fd565b9050919050565b612e1881612ded565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612e53816121bf565b82525050565b6000612e658383612e4a565b60208301905092915050565b6000602082019050919050565b6000612e8982612e1e565b612e938185612e29565b9350612e9e83612e3a565b8060005b83811015612ecf578151612eb68882612e59565b9750612ec183612e71565b925050600181019050612ea2565b5085935050505092915050565b600060a082019050612ef160008301886122d6565b612efe6020830187612e0f565b8181036040830152612f108186612e7e565b9050612f1f60608301856123b7565b612f2c60808301846122d6565b9695505050505050565b600060c082019050612f4b60008301896123b7565b612f5860208301886122d6565b612f656040830187612e0f565b612f726060830186612e0f565b612f7f60808301856123b7565b612f8c60a08301846122d6565b979650505050505050565b600080600060608486031215612fb057612faf612195565b5b6000612fbe8682870161261e565b9350506020612fcf8682870161261e565b9250506040612fe08682870161261e565b9150509250925092565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613020601b836120e4565b915061302b82612fea565b602082019050919050565b6000602082019050818103600083015261304f81613013565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a4397f40c7b75bd775637fce33a55fc625fcbaaf7f5e4d70978d6ff713c635de64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101185760003560e01c806370a08231116100a0578063aae1c07411610064578063aae1c07414610398578063b515566a146103c1578063c3c8cd80146103ea578063c9567bf914610401578063dd62ed3e146104185761011f565b806370a08231146102b1578063715018a6146102ee5780638da5cb5b1461030557806395d89b4114610330578063a9059cbb1461035b5761011f565b806323b872dd116100e757806323b872dd146101e0578063273123b71461021d578063313ce567146102465780634ea18fab146102715780636fc3eaec1461029a5761011f565b806306fdde0314610124578063095ea7b31461014f57806316114acd1461018c57806318160ddd146101b55761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610455565b6040516101469190612169565b60405180910390f35b34801561015b57600080fd5b5061017660048036038101906101719190612233565b610492565b604051610183919061228e565b60405180910390f35b34801561019857600080fd5b506101b360048036038101906101ae91906122a9565b6104b0565b005b3480156101c157600080fd5b506101ca610634565b6040516101d791906122e5565b60405180910390f35b3480156101ec57600080fd5b5061020760048036038101906102029190612300565b610645565b604051610214919061228e565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f91906122a9565b61071e565b005b34801561025257600080fd5b5061025b61080e565b604051610268919061236f565b60405180910390f35b34801561027d57600080fd5b506102986004803603810190610293919061238a565b610817565b005b3480156102a657600080fd5b506102af610882565b005b3480156102bd57600080fd5b506102d860048036038101906102d391906122a9565b6108f4565b6040516102e591906122e5565b60405180910390f35b3480156102fa57600080fd5b5061030361093d565b005b34801561031157600080fd5b5061031a610a90565b60405161032791906123c6565b60405180910390f35b34801561033c57600080fd5b50610345610ab9565b6040516103529190612169565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d9190612233565b610af6565b60405161038f919061228e565b60405180910390f35b3480156103a457600080fd5b506103bf60048036038101906103ba919061240d565b610b14565b005b3480156103cd57600080fd5b506103e860048036038101906103e39190612595565b610c7b565b005b3480156103f657600080fd5b506103ff610da5565b005b34801561040d57600080fd5b50610416610e1f565b005b34801561042457600080fd5b5061043f600480360381019061043a91906125de565b610f6a565b60405161044c91906122e5565b60405180910390f35b60606040518060400160405280601481526020017f46656e74616e796c205475726b657920436f696e000000000000000000000000815250905090565b60006104a661049f6110b5565b84846110bd565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166104f16110b5565b73ffffffffffffffffffffffffffffffffffffffff161461051157600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161058e91906123c6565b602060405180830381865afa1580156105ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105cf9190612633565b6040518363ffffffff1660e01b81526004016105ec9291906126bf565b6020604051808303816000875af115801561060b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062f9190612714565b505050565b6000683635c9adc5dea00000905090565b6000610652848484611286565b6107138461065e6110b5565b61070e8560405180606001604052806028815260200161305760289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106c46110b5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118e19092919063ffffffff16565b6110bd565b600190509392505050565b6107266110b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107aa9061278d565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108586110b5565b73ffffffffffffffffffffffffffffffffffffffff161461087857600080fd5b80600d8190555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108c36110b5565b73ffffffffffffffffffffffffffffffffffffffff16146108e357600080fd5b60004790506108f181611945565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109456110b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c99061278d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f46454e5400000000000000000000000000000000000000000000000000000000815250905090565b6000610b0a610b036110b5565b8484611286565b6001905092915050565b610b1c6110b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ba9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba09061278d565b60405180910390fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bea6110b5565b73ffffffffffffffffffffffffffffffffffffffff1614610c0a57600080fd5b600b548260ff1611158015610c245750600b548160ff1611155b610c63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5a906127f9565b60405180910390fd5b8160ff166009819055508060ff16600a819055505050565b610c836110b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d079061278d565b60405180910390fd5b60005b8151811015610da157600160056000848481518110610d3557610d34612819565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d9990612877565b915050610d13565b5050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610de66110b5565b73ffffffffffffffffffffffffffffffffffffffff1614610e0657600080fd5b6000610e11306108f4565b9050610e1c816119b1565b50565b610e276110b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eab9061278d565b60405180910390fd5b601160149054906101000a900460ff1615610f04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efb9061290b565b60405180910390fd5b610f1e610f10306108f4565b47610f19610a90565b611c2a565b6001601160166101000a81548160ff0219169083151502179055506001601160146101000a81548160ff02191690831515021790555061012c42610f62919061292b565b600781905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008083036110035760009050611065565b60008284611011919061295f565b905082848261102091906129d0565b14611060576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105790612a73565b60405180910390fd5b809150505b92915050565b60006110ad83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d3f565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361112c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112390612b05565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361119b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119290612b97565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161127991906122e5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ec90612c29565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611364576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135b90612cbb565b60405180910390fd5b600081116113a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139e90612d4d565b60405180910390fd5b6009546008819055506113b8610a90565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561142657506113f6610a90565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156117c157600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114cf5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6114d857600080fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156115835750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115d95750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156115e6575060075442105b1561169657600c548111156115fa57600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061164557600080fd5b601e42611652919061292b565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601160159054906101000a900460ff161580156117015750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117195750601160169054906101000a900460ff165b801561176f5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117c057600061177f306108f4565b9050600e5481111561179157600e5490505b600d548111156117be576117a4816119b1565b600047905060008111156117bc576117bb47611945565b5b505b505b5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561186c5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118c25750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118d157600a546008819055505b6118dc838383611da2565b505050565b6000838311158290611929576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119209190612169565b60405180910390fd5b50600083856119389190612d6d565b9050809150509392505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156119ad573d6000803e3d6000fd5b5050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156119e9576119e8612452565b5b604051908082528060200260200182016040528015611a175781602001602082028036833780820191505090505b5090503081600081518110611a2f57611a2e612819565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ad6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611afa9190612db6565b81600181518110611b0e57611b0d612819565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611b7530601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110bd565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611bd9959493929190612edc565b600060405180830381600087803b158015611bf357600080fd5b505af1158015611c07573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b6001601160156101000a81548160ff021916908315150217905550611c7230601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856110bd565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b8152600401611cd996959493929190612f36565b60606040518083038185885af1158015611cf7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611d1c9190612f97565b5050506000601160156101000a81548160ff021916908315150217905550505050565b60008083118290611d86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7d9190612169565b60405180910390fd5b5060008385611d9591906129d0565b9050809150509392505050565b600080611dae83611fdd565b91509150611e0483600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203190919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e9982600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461207b90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f2e81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461207b90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611fce91906122e5565b60405180910390a35050505050565b600080600061200b6103e8611ffd60085487610ff190919063ffffffff16565b61106b90919063ffffffff16565b90506000612022828661203190919063ffffffff16565b90508082935093505050915091565b600061207383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118e1565b905092915050565b600080828461208a919061292b565b9050838110156120cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c690613036565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121135780820151818401526020810190506120f8565b60008484015250505050565b6000601f19601f8301169050919050565b600061213b826120d9565b61214581856120e4565b93506121558185602086016120f5565b61215e8161211f565b840191505092915050565b600060208201905081810360008301526121838184612130565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121ca8261219f565b9050919050565b6121da816121bf565b81146121e557600080fd5b50565b6000813590506121f7816121d1565b92915050565b6000819050919050565b612210816121fd565b811461221b57600080fd5b50565b60008135905061222d81612207565b92915050565b6000806040838503121561224a57612249612195565b5b6000612258858286016121e8565b92505060206122698582860161221e565b9150509250929050565b60008115159050919050565b61228881612273565b82525050565b60006020820190506122a3600083018461227f565b92915050565b6000602082840312156122bf576122be612195565b5b60006122cd848285016121e8565b91505092915050565b6122df816121fd565b82525050565b60006020820190506122fa60008301846122d6565b92915050565b60008060006060848603121561231957612318612195565b5b6000612327868287016121e8565b9350506020612338868287016121e8565b92505060406123498682870161221e565b9150509250925092565b600060ff82169050919050565b61236981612353565b82525050565b60006020820190506123846000830184612360565b92915050565b6000602082840312156123a05761239f612195565b5b60006123ae8482850161221e565b91505092915050565b6123c0816121bf565b82525050565b60006020820190506123db60008301846123b7565b92915050565b6123ea81612353565b81146123f557600080fd5b50565b600081359050612407816123e1565b92915050565b6000806040838503121561242457612423612195565b5b6000612432858286016123f8565b9250506020612443858286016123f8565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61248a8261211f565b810181811067ffffffffffffffff821117156124a9576124a8612452565b5b80604052505050565b60006124bc61218b565b90506124c88282612481565b919050565b600067ffffffffffffffff8211156124e8576124e7612452565b5b602082029050602081019050919050565b600080fd5b600061251161250c846124cd565b6124b2565b90508083825260208201905060208402830185811115612534576125336124f9565b5b835b8181101561255d578061254988826121e8565b845260208401935050602081019050612536565b5050509392505050565b600082601f83011261257c5761257b61244d565b5b813561258c8482602086016124fe565b91505092915050565b6000602082840312156125ab576125aa612195565b5b600082013567ffffffffffffffff8111156125c9576125c861219a565b5b6125d584828501612567565b91505092915050565b600080604083850312156125f5576125f4612195565b5b6000612603858286016121e8565b9250506020612614858286016121e8565b9150509250929050565b60008151905061262d81612207565b92915050565b60006020828403121561264957612648612195565b5b60006126578482850161261e565b91505092915050565b6000819050919050565b600061268561268061267b8461219f565b612660565b61219f565b9050919050565b60006126978261266a565b9050919050565b60006126a98261268c565b9050919050565b6126b98161269e565b82525050565b60006040820190506126d460008301856126b0565b6126e160208301846122d6565b9392505050565b6126f181612273565b81146126fc57600080fd5b50565b60008151905061270e816126e8565b92915050565b60006020828403121561272a57612729612195565b5b6000612738848285016126ff565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006127776020836120e4565b915061278282612741565b602082019050919050565b600060208201905081810360008301526127a68161276a565b9050919050565b7f43616e6e6f742073657420666565732061626f7665206d6178696d756d000000600082015250565b60006127e3601d836120e4565b91506127ee826127ad565b602082019050919050565b60006020820190508181036000830152612812816127d6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612882826121fd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036128b4576128b3612848565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006128f56017836120e4565b9150612900826128bf565b602082019050919050565b60006020820190508181036000830152612924816128e8565b9050919050565b6000612936826121fd565b9150612941836121fd565b925082820190508082111561295957612958612848565b5b92915050565b600061296a826121fd565b9150612975836121fd565b9250828202612983816121fd565b9150828204841483151761299a57612999612848565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006129db826121fd565b91506129e6836121fd565b9250826129f6576129f56129a1565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a5d6021836120e4565b9150612a6882612a01565b604082019050919050565b60006020820190508181036000830152612a8c81612a50565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612aef6024836120e4565b9150612afa82612a93565b604082019050919050565b60006020820190508181036000830152612b1e81612ae2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612b816022836120e4565b9150612b8c82612b25565b604082019050919050565b60006020820190508181036000830152612bb081612b74565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612c136025836120e4565b9150612c1e82612bb7565b604082019050919050565b60006020820190508181036000830152612c4281612c06565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612ca56023836120e4565b9150612cb082612c49565b604082019050919050565b60006020820190508181036000830152612cd481612c98565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612d376029836120e4565b9150612d4282612cdb565b604082019050919050565b60006020820190508181036000830152612d6681612d2a565b9050919050565b6000612d78826121fd565b9150612d83836121fd565b9250828203905081811115612d9b57612d9a612848565b5b92915050565b600081519050612db0816121d1565b92915050565b600060208284031215612dcc57612dcb612195565b5b6000612dda84828501612da1565b91505092915050565b6000819050919050565b6000612e08612e03612dfe84612de3565b612660565b6121fd565b9050919050565b612e1881612ded565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612e53816121bf565b82525050565b6000612e658383612e4a565b60208301905092915050565b6000602082019050919050565b6000612e8982612e1e565b612e938185612e29565b9350612e9e83612e3a565b8060005b83811015612ecf578151612eb68882612e59565b9750612ec183612e71565b925050600181019050612ea2565b5085935050505092915050565b600060a082019050612ef160008301886122d6565b612efe6020830187612e0f565b8181036040830152612f108186612e7e565b9050612f1f60608301856123b7565b612f2c60808301846122d6565b9695505050505050565b600060c082019050612f4b60008301896123b7565b612f5860208301886122d6565b612f656040830187612e0f565b612f726060830186612e0f565b612f7f60808301856123b7565b612f8c60a08301846122d6565b979650505050505050565b600080600060608486031215612fb057612faf612195565b5b6000612fbe8682870161261e565b9350506020612fcf8682870161261e565b9250506040612fe08682870161261e565b9150509250925092565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613020601b836120e4565b915061302b82612fea565b602082019050919050565b6000602082019050818103600083015261304f81613013565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a4397f40c7b75bd775637fce33a55fc625fcbaaf7f5e4d70978d6ff713c635de64736f6c63430008120033

Deployed Bytecode Sourcemap

3621:8437:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5466:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6297:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11799:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5743:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6466:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10579:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5652:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7063:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11352:194;;;;;;;;;;;;;:::i;:::-;;5846:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2700:148;;;;;;;;;;;;;:::i;:::-;;2486:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5557:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5971:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6790:265;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10403:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11145:195;;;;;;;;;;;;;:::i;:::-;;10097:294;;;;;;;;;;;;;:::i;:::-;;6146:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5466:83;5503:13;5536:5;;;;;;;;;;;;;;;;;5529:12;;5466:83;:::o;6297:161::-;6372:4;6389:39;6398:12;:10;:12::i;:::-;6412:7;6421:6;6389:8;:39::i;:::-;6446:4;6439:11;;6297:161;;;;:::o;11799:256::-;11888:15;;;;;;;;;;;11872:31;;:12;:10;:12::i;:::-;:31;;;11864:40;;;;;;11915:20;11945:12;11915:43;;11969:13;:22;;;11992:15;;;;;;;;;;;12008:13;:23;;;12040:4;12008:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11969:78;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11853:202;11799:256;:::o;5743:95::-;5796:7;4074:18;5816:14;;5743:95;:::o;6466:313::-;6564:4;6581:36;6591:6;6599:9;6610:6;6581:9;:36::i;:::-;6628:121;6637:6;6645:12;:10;:12::i;:::-;6659:89;6697:6;6659:89;;;;;;;;;;;;;;;;;:11;:19;6671:6;6659:19;;;;;;;;;;;;;;;:33;6679:12;:10;:12::i;:::-;6659:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6628:8;:121::i;:::-;6767:4;6760:11;;6466:313;;;;;:::o;10579:88::-;2623:12;:10;:12::i;:::-;2613:22;;:6;;;;;;;;;;:22;;;2605:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10654:5:::1;10639:4;:12;10644:6;10639:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;10579:88:::0;:::o;5652:83::-;5693:5;4511:1;5711:16;;5652:83;:::o;7063:142::-;7149:15;;;;;;;;;;;7133:31;;:12;:10;:12::i;:::-;:31;;;7125:40;;;;;;7189:6;7176:10;:19;;;;7063:142;:::o;11352:194::-;11418:15;;;;;;;;;;;11402:31;;:12;:10;:12::i;:::-;:31;;;11394:40;;;;;;11445:26;11474:21;11445:50;;11506:32;11519:18;11506:12;:32::i;:::-;11383:163;11352:194::o;5846:117::-;5912:7;5939;:16;5947:7;5939:16;;;;;;;;;;;;;;;;5932:23;;5846:117;;;:::o;2700:148::-;2623:12;:10;:12::i;:::-;2613:22;;:6;;;;;;;;;;:22;;;2605:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2807:1:::1;2770:40;;2791:6;::::0;::::1;;;;;;;;2770:40;;;;;;;;;;;;2838:1;2821:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2700:148::o:0;2486:79::-;2524:7;2551:6;;;;;;;;;;;2544:13;;2486:79;:::o;5557:87::-;5596:13;5629:7;;;;;;;;;;;;;;;;;5622:14;;5557:87;:::o;5971:167::-;6049:4;6066:42;6076:12;:10;:12::i;:::-;6090:9;6101:6;6066:9;:42::i;:::-;6126:4;6119:11;;5971:167;;;;:::o;6790:265::-;2623:12;:10;:12::i;:::-;2613:22;;:6;;;;;;;;;;:22;;;2605:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6899:15:::1;;;;;;;;;;;6883:31;;:12;:10;:12::i;:::-;:31;;;6875:40;;;::::0;::::1;;6943:6;;6934:5;:15;;;;:34;;;;;6962:6;;6953:5;:15;;;;6934:34;6926:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;7019:5;7012:12;;:4;:12;;;;7042:5;7035:12;;:4;:12;;;;6790:265:::0;;:::o;10403:164::-;2623:12;:10;:12::i;:::-;2613:22;;:6;;;;;;;;;;:22;;;2605:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10477:6:::1;10472:88;10493:5;:12;10489:1;:16;10472:88;;;10544:4;10527;:14;10532:5;10538:1;10532:8;;;;;;;;:::i;:::-;;;;;;;;10527:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10507:3;;;;;:::i;:::-;;;;10472:88;;;;10403:164:::0;:::o;11145:195::-;11211:15;;;;;;;;;;;11195:31;;:12;:10;:12::i;:::-;:31;;;11187:40;;;;;;11238:23;11264:24;11282:4;11264:9;:24::i;:::-;11238:50;;11299:33;11316:15;11299:16;:33::i;:::-;11176:164;11145:195::o;10097:294::-;2623:12;:10;:12::i;:::-;2613:22;;:6;;;;;;;;;;:22;;;2605:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10161:11:::1;;;;;;;;;;;10160:12;10152:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10210:68;10223:24;10241:4;10223:9;:24::i;:::-;10248:21;10270:7;:5;:7::i;:::-;10210:12;:68::i;:::-;10303:4;10289:11;;:18;;;;;;;;;;;;;;;;;;10332:4;10318:11;;:18;;;;;;;;;;;;;;;;;;10373:9;10354:15;:29;;;;:::i;:::-;10347:4;:36;;;;10097:294::o:0;6146:143::-;6227:7;6254:11;:18;6266:5;6254:18;;;;;;;;;;;;;;;:27;6273:7;6254:27;;;;;;;;;;;;;;;;6247:34;;6146:143;;;;:::o;1539:246::-;1597:7;1626:1;1621;:6;1617:47;;1651:1;1644:8;;;;1617:47;1674:9;1690:1;1686;:5;;;;:::i;:::-;1674:17;;1719:1;1714;1710;:5;;;;:::i;:::-;:10;1702:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1776:1;1769:8;;;1539:246;;;;;:::o;1793:132::-;1851:7;1878:39;1882:1;1885;1878:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1871:46;;1793:132;;;;:::o;204:98::-;257:7;284:10;277:17;;204:98;:::o;7216:335::-;7326:1;7309:19;;:5;:19;;;7301:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7407:1;7388:21;;:7;:21;;;7380:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7489:6;7459:11;:18;7471:5;7459:18;;;;;;;;;;;;;;;:27;7478:7;7459:27;;;;;;;;;;;;;;;:36;;;;7527:7;7511:32;;7520:5;7511:32;;;7536:6;7511:32;;;;;;:::i;:::-;;;;;;;;7216:335;;;:::o;7559:1630::-;7663:1;7647:18;;:4;:18;;;7639:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7740:1;7726:16;;:2;:16;;;7718:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7810:1;7801:6;:10;7793:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7877:4;;7870;:11;;;;7904:7;:5;:7::i;:::-;7896:15;;:4;:15;;;;:32;;;;;7921:7;:5;:7::i;:::-;7915:13;;:2;:13;;;;7896:32;7892:1107;;;7954:4;:10;7959:4;7954:10;;;;;;;;;;;;;;;;;;;;;;;;;7953:11;:24;;;;;7969:4;:8;7974:2;7969:8;;;;;;;;;;;;;;;;;;;;;;;;;7968:9;7953:24;7945:33;;;;;;8005:13;;;;;;;;;;;7997:21;;:4;:21;;;:55;;;;;8036:15;;;;;;;;;;;8022:30;;:2;:30;;;;7997:55;:83;;;;;8058:18;:22;8077:2;8058:22;;;;;;;;;;;;;;;;;;;;;;;;;8056:24;7997:83;:111;;;;;8103:4;;8085:15;:22;7997:111;7993:333;;;8175:12;;8165:6;:22;;8157:31;;;;;;8230:15;8215:8;:12;8224:2;8215:12;;;;;;;;;;;;;;;;:30;8207:39;;;;;;8299:10;8280:15;:30;;;;:::i;:::-;8265:8;:12;8274:2;8265:12;;;;;;;;;;;;;;;:45;;;;7993:333;8359:6;;;;;;;;;;;8358:7;:32;;;;;8377:13;;;;;;;;;;;8369:21;;:4;:21;;;;8358:32;:47;;;;;8394:11;;;;;;;;;;;8358:47;:76;;;;;8410:18;:24;8429:4;8410:24;;;;;;;;;;;;;;;;;;;;;;;;;8409:25;8358:76;8354:634;;;8473:20;8496:24;8514:4;8496:9;:24::i;:::-;8473:47;;8558:14;;8543:12;:29;8539:106;;;8611:14;;8596:29;;8539:106;8681:10;;8666:12;:25;8663:310;;;8715:30;8732:12;8715:16;:30::i;:::-;8768:26;8797:21;8768:50;;8865:1;8844:18;:22;8841:113;;;8895:35;8908:21;8895:12;:35::i;:::-;8841:113;8692:281;8663:310;8436:552;8354:634;7892:1107;9019:13;;;;;;;;;;;9013:19;;:2;:19;;;:55;;;;;9052:15;;;;;;;;;;;9036:32;;:4;:32;;;;9013:55;:85;;;;;9074:18;:24;9093:4;9074:24;;;;;;;;;;;;;;;;;;;;;;;;;9072:26;9013:85;9009:129;;;9122:4;;9115;:11;;;;9009:129;9148:33;9166:4;9171:2;9174:6;9148:17;:33::i;:::-;7559:1630;;;:::o;1341:190::-;1427:7;1460:1;1455;:6;;1463:12;1447:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1487:9;1503:1;1499;:5;;;;:::i;:::-;1487:17;;1522:1;1515:8;;;1341:190;;;;;:::o;9988:97::-;10045:15;;;;;;;;;;;:24;;:32;10070:6;10045:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9988:97;:::o;9197:483::-;4795:4;4786:6;;:13;;;;;;;;;;;;;;;;;;9275:21:::1;9313:1;9299:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9275:40;;9344:4;9326;9331:1;9326:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9370:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9360:4;9365:1;9360:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9403:62;9420:4;9435:15;;;;;;;;;;;9453:11;9403:8;:62::i;:::-;9476:15;;;;;;;;;;;:66;;;9557:11;9583:1;9599:4;9626;9646:15;9476:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9264:416;4831:5:::0;4822:6;;:14;;;;;;;;;;;;;;;;;;9197:483;:::o;9688:288::-;4795:4;4786:6;;:13;;;;;;;;;;;;;;;;;;9794:60:::1;9811:4;9825:15;;;;;;;;;;;9842:11;9794:8;:60::i;:::-;9865:15;;;;;;;;;;;:31;;;9904:9;9923:4;9929:11;9941:1;9943::::0;9945:6:::1;9952:15;9865:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;4831:5:::0;4822:6;;:14;;;;;;;;;;;;;;;;;;9688:288;;;:::o;1933:189::-;2019:7;2051:1;2047;:5;2054:12;2039:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2078:9;2094:1;2090;:5;;;;:::i;:::-;2078:17;;2113:1;2106:8;;;1933:189;;;;;:::o;10675:421::-;10774:22;10797:12;10813:20;10825:7;10813:11;:20::i;:::-;10773:60;;;;10862:28;10882:7;10862;:15;10870:6;10862:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;10844:7;:15;10852:6;10844:15;;;;;;;;;;;;;;;:46;;;;10922:38;10945:14;10922:7;:18;10930:9;10922:18;;;;;;;;;;;;;;;;:22;;:38;;;;:::i;:::-;10901:7;:18;10909:9;10901:18;;;;;;;;;;;;;;;:59;;;;10997:32;11024:4;10997:7;:22;11013:4;10997:22;;;;;;;;;;;;;;;;:26;;:32;;;;:::i;:::-;10972:7;:22;10988:4;10972:22;;;;;;;;;;;;;;;:57;;;;11062:9;11045:43;;11054:6;11045:43;;;11073:14;11045:43;;;;;;:::i;:::-;;;;;;;;10762:334;;10675:421;;;:::o;11557:234::-;11617:7;11626;11646:12;11661:27;11683:4;11661:17;11673:4;;11661:7;:11;;:17;;;;:::i;:::-;:21;;:27;;;;:::i;:::-;11646:42;;11699:23;11725:17;11737:4;11725:7;:11;;:17;;;;:::i;:::-;11699:43;;11761:15;11778:4;11753:30;;;;;;11557:234;;;:::o;1197:136::-;1255:7;1282:43;1286:1;1289;1282:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1275:50;;1197:136;;;;:::o;1010:179::-;1068:7;1088:9;1104:1;1100;:5;;;;:::i;:::-;1088:17;;1129:1;1124;:6;;1116:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1180:1;1173:8;;;1010:179;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:329::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:118::-;5610:24;5628:5;5610:24;:::i;:::-;5605:3;5598:37;5523:118;;:::o;5647:222::-;5740:4;5778:2;5767:9;5763:18;5755:26;;5791:71;5859:1;5848:9;5844:17;5835:6;5791:71;:::i;:::-;5647:222;;;;:::o;5875:118::-;5946:22;5962:5;5946:22;:::i;:::-;5939:5;5936:33;5926:61;;5983:1;5980;5973:12;5926:61;5875:118;:::o;5999:135::-;6043:5;6081:6;6068:20;6059:29;;6097:31;6122:5;6097:31;:::i;:::-;5999:135;;;;:::o;6140:466::-;6204:6;6212;6261:2;6249:9;6240:7;6236:23;6232:32;6229:119;;;6267:79;;:::i;:::-;6229:119;6387:1;6412:51;6455:7;6446:6;6435:9;6431:22;6412:51;:::i;:::-;6402:61;;6358:115;6512:2;6538:51;6581:7;6572:6;6561:9;6557:22;6538:51;:::i;:::-;6528:61;;6483:116;6140:466;;;;;:::o;6612:117::-;6721:1;6718;6711:12;6735:180;6783:77;6780:1;6773:88;6880:4;6877:1;6870:15;6904:4;6901:1;6894:15;6921:281;7004:27;7026:4;7004:27;:::i;:::-;6996:6;6992:40;7134:6;7122:10;7119:22;7098:18;7086:10;7083:34;7080:62;7077:88;;;7145:18;;:::i;:::-;7077:88;7185:10;7181:2;7174:22;6964:238;6921:281;;:::o;7208:129::-;7242:6;7269:20;;:::i;:::-;7259:30;;7298:33;7326:4;7318:6;7298:33;:::i;:::-;7208:129;;;:::o;7343:311::-;7420:4;7510:18;7502:6;7499:30;7496:56;;;7532:18;;:::i;:::-;7496:56;7582:4;7574:6;7570:17;7562:25;;7642:4;7636;7632:15;7624:23;;7343:311;;;:::o;7660:117::-;7769:1;7766;7759:12;7800:710;7896:5;7921:81;7937:64;7994:6;7937:64;:::i;:::-;7921:81;:::i;:::-;7912:90;;8022:5;8051:6;8044:5;8037:21;8085:4;8078:5;8074:16;8067:23;;8138:4;8130:6;8126:17;8118:6;8114:30;8167:3;8159:6;8156:15;8153:122;;;8186:79;;:::i;:::-;8153:122;8301:6;8284:220;8318:6;8313:3;8310:15;8284:220;;;8393:3;8422:37;8455:3;8443:10;8422:37;:::i;:::-;8417:3;8410:50;8489:4;8484:3;8480:14;8473:21;;8360:144;8344:4;8339:3;8335:14;8328:21;;8284:220;;;8288:21;7902:608;;7800:710;;;;;:::o;8533:370::-;8604:5;8653:3;8646:4;8638:6;8634:17;8630:27;8620:122;;8661:79;;:::i;:::-;8620:122;8778:6;8765:20;8803:94;8893:3;8885:6;8878:4;8870:6;8866:17;8803:94;:::i;:::-;8794:103;;8610:293;8533:370;;;;:::o;8909:539::-;8993:6;9042:2;9030:9;9021:7;9017:23;9013:32;9010:119;;;9048:79;;:::i;:::-;9010:119;9196:1;9185:9;9181:17;9168:31;9226:18;9218:6;9215:30;9212:117;;;9248:79;;:::i;:::-;9212:117;9353:78;9423:7;9414:6;9403:9;9399:22;9353:78;:::i;:::-;9343:88;;9139:302;8909:539;;;;:::o;9454:474::-;9522:6;9530;9579:2;9567:9;9558:7;9554:23;9550:32;9547:119;;;9585:79;;:::i;:::-;9547:119;9705:1;9730:53;9775:7;9766:6;9755:9;9751:22;9730:53;:::i;:::-;9720:63;;9676:117;9832:2;9858:53;9903:7;9894:6;9883:9;9879:22;9858:53;:::i;:::-;9848:63;;9803:118;9454:474;;;;;:::o;9934:143::-;9991:5;10022:6;10016:13;10007:22;;10038:33;10065:5;10038:33;:::i;:::-;9934:143;;;;:::o;10083:351::-;10153:6;10202:2;10190:9;10181:7;10177:23;10173:32;10170:119;;;10208:79;;:::i;:::-;10170:119;10328:1;10353:64;10409:7;10400:6;10389:9;10385:22;10353:64;:::i;:::-;10343:74;;10299:128;10083:351;;;;:::o;10440:60::-;10468:3;10489:5;10482:12;;10440:60;;;:::o;10506:142::-;10556:9;10589:53;10607:34;10616:24;10634:5;10616:24;:::i;:::-;10607:34;:::i;:::-;10589:53;:::i;:::-;10576:66;;10506:142;;;:::o;10654:126::-;10704:9;10737:37;10768:5;10737:37;:::i;:::-;10724:50;;10654:126;;;:::o;10786:134::-;10844:9;10877:37;10908:5;10877:37;:::i;:::-;10864:50;;10786:134;;;:::o;10926:147::-;11021:45;11060:5;11021:45;:::i;:::-;11016:3;11009:58;10926:147;;:::o;11079:348::-;11208:4;11246:2;11235:9;11231:18;11223:26;;11259:79;11335:1;11324:9;11320:17;11311:6;11259:79;:::i;:::-;11348:72;11416:2;11405:9;11401:18;11392:6;11348:72;:::i;:::-;11079:348;;;;;:::o;11433:116::-;11503:21;11518:5;11503:21;:::i;:::-;11496:5;11493:32;11483:60;;11539:1;11536;11529:12;11483:60;11433:116;:::o;11555:137::-;11609:5;11640:6;11634:13;11625:22;;11656:30;11680:5;11656:30;:::i;:::-;11555:137;;;;:::o;11698:345::-;11765:6;11814:2;11802:9;11793:7;11789:23;11785:32;11782:119;;;11820:79;;:::i;:::-;11782:119;11940:1;11965:61;12018:7;12009:6;11998:9;11994:22;11965:61;:::i;:::-;11955:71;;11911:125;11698:345;;;;:::o;12049:182::-;12189:34;12185:1;12177:6;12173:14;12166:58;12049:182;:::o;12237:366::-;12379:3;12400:67;12464:2;12459:3;12400:67;:::i;:::-;12393:74;;12476:93;12565:3;12476:93;:::i;:::-;12594:2;12589:3;12585:12;12578:19;;12237:366;;;:::o;12609:419::-;12775:4;12813:2;12802:9;12798:18;12790:26;;12862:9;12856:4;12852:20;12848:1;12837:9;12833:17;12826:47;12890:131;13016:4;12890:131;:::i;:::-;12882:139;;12609:419;;;:::o;13034:179::-;13174:31;13170:1;13162:6;13158:14;13151:55;13034:179;:::o;13219:366::-;13361:3;13382:67;13446:2;13441:3;13382:67;:::i;:::-;13375:74;;13458:93;13547:3;13458:93;:::i;:::-;13576:2;13571:3;13567:12;13560:19;;13219:366;;;:::o;13591:419::-;13757:4;13795:2;13784:9;13780:18;13772:26;;13844:9;13838:4;13834:20;13830:1;13819:9;13815:17;13808:47;13872:131;13998:4;13872:131;:::i;:::-;13864:139;;13591:419;;;:::o;14016:180::-;14064:77;14061:1;14054:88;14161:4;14158:1;14151:15;14185:4;14182:1;14175:15;14202:180;14250:77;14247:1;14240:88;14347:4;14344:1;14337:15;14371:4;14368:1;14361:15;14388:233;14427:3;14450:24;14468:5;14450:24;:::i;:::-;14441:33;;14496:66;14489:5;14486:77;14483:103;;14566:18;;:::i;:::-;14483:103;14613:1;14606:5;14602:13;14595:20;;14388:233;;;:::o;14627:173::-;14767:25;14763:1;14755:6;14751:14;14744:49;14627:173;:::o;14806:366::-;14948:3;14969:67;15033:2;15028:3;14969:67;:::i;:::-;14962:74;;15045:93;15134:3;15045:93;:::i;:::-;15163:2;15158:3;15154:12;15147:19;;14806:366;;;:::o;15178:419::-;15344:4;15382:2;15371:9;15367:18;15359:26;;15431:9;15425:4;15421:20;15417:1;15406:9;15402:17;15395:47;15459:131;15585:4;15459:131;:::i;:::-;15451:139;;15178:419;;;:::o;15603:191::-;15643:3;15662:20;15680:1;15662:20;:::i;:::-;15657:25;;15696:20;15714:1;15696:20;:::i;:::-;15691:25;;15739:1;15736;15732:9;15725:16;;15760:3;15757:1;15754:10;15751:36;;;15767:18;;:::i;:::-;15751:36;15603:191;;;;:::o;15800:410::-;15840:7;15863:20;15881:1;15863:20;:::i;:::-;15858:25;;15897:20;15915:1;15897:20;:::i;:::-;15892:25;;15952:1;15949;15945:9;15974:30;15992:11;15974:30;:::i;:::-;15963:41;;16153:1;16144:7;16140:15;16137:1;16134:22;16114:1;16107:9;16087:83;16064:139;;16183:18;;:::i;:::-;16064:139;15848:362;15800:410;;;;:::o;16216:180::-;16264:77;16261:1;16254:88;16361:4;16358:1;16351:15;16385:4;16382:1;16375:15;16402:185;16442:1;16459:20;16477:1;16459:20;:::i;:::-;16454:25;;16493:20;16511:1;16493:20;:::i;:::-;16488:25;;16532:1;16522:35;;16537:18;;:::i;:::-;16522:35;16579:1;16576;16572:9;16567:14;;16402:185;;;;:::o;16593:220::-;16733:34;16729:1;16721:6;16717:14;16710:58;16802:3;16797:2;16789:6;16785:15;16778:28;16593:220;:::o;16819:366::-;16961:3;16982:67;17046:2;17041:3;16982:67;:::i;:::-;16975:74;;17058:93;17147:3;17058:93;:::i;:::-;17176:2;17171:3;17167:12;17160:19;;16819:366;;;:::o;17191:419::-;17357:4;17395:2;17384:9;17380:18;17372:26;;17444:9;17438:4;17434:20;17430:1;17419:9;17415:17;17408:47;17472:131;17598:4;17472:131;:::i;:::-;17464:139;;17191:419;;;:::o;17616:223::-;17756:34;17752:1;17744:6;17740:14;17733:58;17825:6;17820:2;17812:6;17808:15;17801:31;17616:223;:::o;17845:366::-;17987:3;18008:67;18072:2;18067:3;18008:67;:::i;:::-;18001:74;;18084:93;18173:3;18084:93;:::i;:::-;18202:2;18197:3;18193:12;18186:19;;17845:366;;;:::o;18217:419::-;18383:4;18421:2;18410:9;18406:18;18398:26;;18470:9;18464:4;18460:20;18456:1;18445:9;18441:17;18434:47;18498:131;18624:4;18498:131;:::i;:::-;18490:139;;18217:419;;;:::o;18642:221::-;18782:34;18778:1;18770:6;18766:14;18759:58;18851:4;18846:2;18838:6;18834:15;18827:29;18642:221;:::o;18869:366::-;19011:3;19032:67;19096:2;19091:3;19032:67;:::i;:::-;19025:74;;19108:93;19197:3;19108:93;:::i;:::-;19226:2;19221:3;19217:12;19210:19;;18869:366;;;:::o;19241:419::-;19407:4;19445:2;19434:9;19430:18;19422:26;;19494:9;19488:4;19484:20;19480:1;19469:9;19465:17;19458:47;19522:131;19648:4;19522:131;:::i;:::-;19514:139;;19241:419;;;:::o;19666:224::-;19806:34;19802:1;19794:6;19790:14;19783:58;19875:7;19870:2;19862:6;19858:15;19851:32;19666:224;:::o;19896:366::-;20038:3;20059:67;20123:2;20118:3;20059:67;:::i;:::-;20052:74;;20135:93;20224:3;20135:93;:::i;:::-;20253:2;20248:3;20244:12;20237:19;;19896:366;;;:::o;20268:419::-;20434:4;20472:2;20461:9;20457:18;20449:26;;20521:9;20515:4;20511:20;20507:1;20496:9;20492:17;20485:47;20549:131;20675:4;20549:131;:::i;:::-;20541:139;;20268:419;;;:::o;20693:222::-;20833:34;20829:1;20821:6;20817:14;20810:58;20902:5;20897:2;20889:6;20885:15;20878:30;20693:222;:::o;20921:366::-;21063:3;21084:67;21148:2;21143:3;21084:67;:::i;:::-;21077:74;;21160:93;21249:3;21160:93;:::i;:::-;21278:2;21273:3;21269:12;21262:19;;20921:366;;;:::o;21293:419::-;21459:4;21497:2;21486:9;21482:18;21474:26;;21546:9;21540:4;21536:20;21532:1;21521:9;21517:17;21510:47;21574:131;21700:4;21574:131;:::i;:::-;21566:139;;21293:419;;;:::o;21718:228::-;21858:34;21854:1;21846:6;21842:14;21835:58;21927:11;21922:2;21914:6;21910:15;21903:36;21718:228;:::o;21952:366::-;22094:3;22115:67;22179:2;22174:3;22115:67;:::i;:::-;22108:74;;22191:93;22280:3;22191:93;:::i;:::-;22309:2;22304:3;22300:12;22293:19;;21952:366;;;:::o;22324:419::-;22490:4;22528:2;22517:9;22513:18;22505:26;;22577:9;22571:4;22567:20;22563:1;22552:9;22548:17;22541:47;22605:131;22731:4;22605:131;:::i;:::-;22597:139;;22324:419;;;:::o;22749:194::-;22789:4;22809:20;22827:1;22809:20;:::i;:::-;22804:25;;22843:20;22861:1;22843:20;:::i;:::-;22838:25;;22887:1;22884;22880:9;22872:17;;22911:1;22905:4;22902:11;22899:37;;;22916:18;;:::i;:::-;22899:37;22749:194;;;;:::o;22949:143::-;23006:5;23037:6;23031:13;23022:22;;23053:33;23080:5;23053:33;:::i;:::-;22949:143;;;;:::o;23098:351::-;23168:6;23217:2;23205:9;23196:7;23192:23;23188:32;23185:119;;;23223:79;;:::i;:::-;23185:119;23343:1;23368:64;23424:7;23415:6;23404:9;23400:22;23368:64;:::i;:::-;23358:74;;23314:128;23098:351;;;;:::o;23455:85::-;23500:7;23529:5;23518:16;;23455:85;;;:::o;23546:158::-;23604:9;23637:61;23655:42;23664:32;23690:5;23664:32;:::i;:::-;23655:42;:::i;:::-;23637:61;:::i;:::-;23624:74;;23546:158;;;:::o;23710:147::-;23805:45;23844:5;23805:45;:::i;:::-;23800:3;23793:58;23710:147;;:::o;23863:114::-;23930:6;23964:5;23958:12;23948:22;;23863:114;;;:::o;23983:184::-;24082:11;24116:6;24111:3;24104:19;24156:4;24151:3;24147:14;24132:29;;23983:184;;;;:::o;24173:132::-;24240:4;24263:3;24255:11;;24293:4;24288:3;24284:14;24276:22;;24173:132;;;:::o;24311:108::-;24388:24;24406:5;24388:24;:::i;:::-;24383:3;24376:37;24311:108;;:::o;24425:179::-;24494:10;24515:46;24557:3;24549:6;24515:46;:::i;:::-;24593:4;24588:3;24584:14;24570:28;;24425:179;;;;:::o;24610:113::-;24680:4;24712;24707:3;24703:14;24695:22;;24610:113;;;:::o;24759:732::-;24878:3;24907:54;24955:5;24907:54;:::i;:::-;24977:86;25056:6;25051:3;24977:86;:::i;:::-;24970:93;;25087:56;25137:5;25087:56;:::i;:::-;25166:7;25197:1;25182:284;25207:6;25204:1;25201:13;25182:284;;;25283:6;25277:13;25310:63;25369:3;25354:13;25310:63;:::i;:::-;25303:70;;25396:60;25449:6;25396:60;:::i;:::-;25386:70;;25242:224;25229:1;25226;25222:9;25217:14;;25182:284;;;25186:14;25482:3;25475:10;;24883:608;;;24759:732;;;;:::o;25497:831::-;25760:4;25798:3;25787:9;25783:19;25775:27;;25812:71;25880:1;25869:9;25865:17;25856:6;25812:71;:::i;:::-;25893:80;25969:2;25958:9;25954:18;25945:6;25893:80;:::i;:::-;26020:9;26014:4;26010:20;26005:2;25994:9;25990:18;25983:48;26048:108;26151:4;26142:6;26048:108;:::i;:::-;26040:116;;26166:72;26234:2;26223:9;26219:18;26210:6;26166:72;:::i;:::-;26248:73;26316:3;26305:9;26301:19;26292:6;26248:73;:::i;:::-;25497:831;;;;;;;;:::o;26334:807::-;26583:4;26621:3;26610:9;26606:19;26598:27;;26635:71;26703:1;26692:9;26688:17;26679:6;26635:71;:::i;:::-;26716:72;26784:2;26773:9;26769:18;26760:6;26716:72;:::i;:::-;26798:80;26874:2;26863:9;26859:18;26850:6;26798:80;:::i;:::-;26888;26964:2;26953:9;26949:18;26940:6;26888:80;:::i;:::-;26978:73;27046:3;27035:9;27031:19;27022:6;26978:73;:::i;:::-;27061;27129:3;27118:9;27114:19;27105:6;27061:73;:::i;:::-;26334:807;;;;;;;;;:::o;27147:663::-;27235:6;27243;27251;27300:2;27288:9;27279:7;27275:23;27271:32;27268:119;;;27306:79;;:::i;:::-;27268:119;27426:1;27451:64;27507:7;27498:6;27487:9;27483:22;27451:64;:::i;:::-;27441:74;;27397:128;27564:2;27590:64;27646:7;27637:6;27626:9;27622:22;27590:64;:::i;:::-;27580:74;;27535:129;27703:2;27729:64;27785:7;27776:6;27765:9;27761:22;27729:64;:::i;:::-;27719:74;;27674:129;27147:663;;;;;:::o;27816:177::-;27956:29;27952:1;27944:6;27940:14;27933:53;27816:177;:::o;27999:366::-;28141:3;28162:67;28226:2;28221:3;28162:67;:::i;:::-;28155:74;;28238:93;28327:3;28238:93;:::i;:::-;28356:2;28351:3;28347:12;28340:19;;27999:366;;;:::o;28371:419::-;28537:4;28575:2;28564:9;28560:18;28552:26;;28624:9;28618:4;28614:20;28610:1;28599:9;28595:17;28588:47;28652:131;28778:4;28652:131;:::i;:::-;28644:139;;28371:419;;;:::o

Swarm Source

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