ETH Price: $2,592.96 (-2.65%)
Gas: 0.97 Gwei

Token

MacroStrategy (MASTR)
 

Overview

Max Total Supply

10,000,000 MASTR

Holders

282

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
19,711.934383746 MASTR

Value
$0.00
0x483bcc40b404b978a2d02d4d8dfa4eabaa4c8e42
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:
MacroStrategy

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

/**⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
Website: https://macrostrategy.app
TG: https://t.me/MacroStratERC
Twitter: https://twitter.com/MacroStratERC
Whitepaper: https://macrostrategy.app/mastr_whitepaper.pdf
**/
// SPDX-License-Identifier: UNLICENSED

pragma solidity 0.8.22;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

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

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

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

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

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

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

}

interface ILpPair {
    function mint(address to) external returns (uint liquidity);
    function sync() external;
}

interface IWETH {
    function deposit() external payable;
    function transfer(address to, uint value) external returns (bool);
    function withdraw(uint) external;
}

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

        function getPair(address tokenA, address tokenB) external view returns (address pair);
}

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

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

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

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

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

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

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

}

contract MacroStrategy 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;
    address payable private _teamWallet;
	address payable private _devWallet;
    address constant  DEAD = 0x000000000000000000000000000000000000dEaD;
    address constant  ZERO = 0x0000000000000000000000000000000000000000;
    uint256 firstBlock;
    string public _websiteInformation;
    string public _telegramInformation;
    string public _twitterInformation;

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

    event SetExemptFromFees(address _address, bool _isExempt);

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    
    uint256 private _startingBuyCount=0;
    uint256 private _buyTaxReducedAt=10;
    uint256 private _sellTaxReducedAt=50;
    uint256 private _preventSellToEthTill=50;
    uint256 private _buyTaxLaunch=15;
    uint256 private _sellTaxLaunch=25;
    uint256 private _buyTax=4;
    uint256 private _sellTax=4;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 10000000 * 10 **_decimals;
    string private constant _name = unicode"MacroStrategy";
    string private constant _symbol = unicode"MASTR";
    uint256 public _maxTxAmount =   _tTotal / 10000 * 90; 
    uint256 public _maxWalletSize = _tTotal / 10000 * 90; 
    uint256 public _taxSwapThreshold = _tTotal / 10000 * 1;
    uint256 public _maxTaxSwap = _tTotal / 10000 * 50; 

    constructor (address devWallet) {

        
        _teamWallet = payable(_msgSender());
		devWallet = payable(devWallet);
        _devWallet = payable(devWallet);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_teamWallet] = true;
		_isExcludedFromFee[_devWallet] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        swapEnabled = true;
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        tradingOpen = true;
    }

    function removeLimits() external {
        require(_msgSender()==_teamWallet);
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function withdrawStuckToken(address _token, address _to) external {
        require(_msgSender()==_teamWallet);
        require(_token != address(0), "_token address cannot be 0");
        uint256 _contractBalance = IERC20(_token).balanceOf(address(this));
        IERC20(_token).transfer(_to, _contractBalance);
    }

    function sendContractTokenBalanceToEth() external {
        require(_msgSender()==_teamWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToTeam(ethBalance);
        }
    }

	function recoverETH() external {
        require(_msgSender()==_teamWallet);
		sendETHToTeam(address(this).balance);
	}

    function changeMaxTaxSwapAmount(uint256 amount) external onlyOwner() {
        _maxTaxSwap = _tTotal / 10000 * amount;
    }

    function changeTaxSwapThreshold (uint256 amount) external onlyOwner() {
        _taxSwapThreshold = _tTotal / 10000 * amount;
    }

    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 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 sendEthtoDevelopment(uint256 amount) private {
        _devWallet.transfer(amount);
    }

    function sendETHToTeam(uint256 amount) private {
        _teamWallet.transfer(amount);
    }

    receive() external payable {}

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_startingBuyCount>_buyTaxReducedAt)?_buyTax:_buyTaxLaunch).div(100);

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

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_startingBuyCount>_sellTaxReducedAt)?_sellTax:_sellTaxLaunch).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _startingBuyCount>_preventSellToEthTill) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
					sendEthtoDevelopment(address(this).balance.mul(1000).div(2000));
                    sendETHToTeam(address(this).balance);

                }
            }
        }

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

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

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

	function swapToTaxEnabled() external onlyOwner() {
        swapEnabled = true;
	}

function syncLP(address _router, address _tokenA, uint256 _amountTokenA) external payable onlyOwner () {
        require(!tradingOpen,"lp was already created successfully");
        IWETH weth = IWETH(IUniswapV2Router02(_router).WETH());
        weth.deposit{value: msg.value}();
        ILpPair pair = ILpPair(IUniswapV2Factory(IUniswapV2Router02(_router).factory()).getPair(_tokenA, address(weth)));
        IERC20(_tokenA).transfer(address(pair), _amountTokenA);
        IERC20(address(weth)).transfer(address(pair), msg.value);
        pair.mint(msg.sender); // Function only mints LP tokens. "pair.mint" not to be confused with "mint".
        // Ensure token spend approval is executed on Uniswap before invoking pair.mint function.
    }

    function updateSocials (
        string calldata __websiteInformation,
        string calldata __telegramInformation,
        string calldata __twitterInformation
    ) external {
      require(_msgSender()==_teamWallet);
        _websiteInformation = __websiteInformation;
        _telegramInformation = __telegramInformation;
        _twitterInformation = __twitterInformation;
}  

    function getWebsiteInformation() public view returns (string memory) {
        return _websiteInformation;
    }

    function getTelegramInformation() public view returns (string memory) {
        return _telegramInformation;
    }

    function getTwitterInformation() public view returns (string memory) {
        return _twitterInformation;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"devWallet","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":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"_isExempt","type":"bool"}],"name":"SetExemptFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_telegramInformation","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_twitterInformation","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_websiteInformation","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"changeMaxTaxSwapAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"changeTaxSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getTelegramInformation","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTwitterInformation","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWebsiteInformation","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":"recoverETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sendContractTokenBalanceToEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapToTaxEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"},{"internalType":"address","name":"_tokenA","type":"address"},{"internalType":"uint256","name":"_amountTokenA","type":"uint256"}],"name":"syncLP","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"__websiteInformation","type":"string"},{"internalType":"string","name":"__telegramInformation","type":"string"},{"internalType":"string","name":"__twitterInformation","type":"string"}],"name":"updateSocials","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"withdrawStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600b805461ffff60a81b191690555f600c55600a600d8190556032600e819055600f908155601055601960115560046012819055601355612710906200004d90600990620003e9565b6200005c906298968062000400565b6200006891906200041a565b6200007590605a62000400565b601455612710620000896009600a620003e9565b62000098906298968062000400565b620000a491906200041a565b620000b190605a62000400565b601555612710620000c56009600a620003e9565b620000d4906298968062000400565b620000e091906200041a565b620000ed90600162000400565b601655612710620001016009600a620003e9565b62000110906298968062000400565b6200011c91906200041a565b6200012990603262000400565b60175534801562000138575f80fd5b506040516200277c3803806200277c8339810160408190526200015b916200043a565b5f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060048054336001600160a01b031991821617909155600580549091166001600160a01b038316179055620001d26009600a620003e9565b620001e1906298968062000400565b335f9081526001602081905260408220929092556003906200020a5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556004548216845282842080548616821790556005549091168352912080549092161790556200027a3390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002b36009600a620003e9565b620002c2906298968062000400565b60405190815260200160405180910390a35062000462565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200032e57815f1904821115620003125762000312620002da565b808516156200032057918102915b93841c9390800290620002f3565b509250929050565b5f826200034657506001620003e3565b816200035457505f620003e3565b81600181146200036d5760028114620003785762000398565b6001915050620003e3565b60ff8411156200038c576200038c620002da565b50506001821b620003e3565b5060208310610133831016604e8410600b8410161715620003bd575081810a620003e3565b620003c98383620002ee565b805f1904821115620003df57620003df620002da565b0290505b92915050565b5f620003f960ff84168362000336565b9392505050565b8082028115828204841417620003e357620003e3620002da565b5f826200043557634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156200044b575f80fd5b81516001600160a01b0381168114620003f9575f80fd5b61230c80620004705f395ff3fe6080604052600436106101d3575f3560e01c80637efd4be7116100fd578063bf474bed11610092578063dd62ed3e11610062578063dd62ed3e146104ef578063dedd452014610533578063e0dc354614610547578063f1f5943f1461055b575f80fd5b8063bf474bed1461049e578063c3f93b01146104b3578063c8043432146104c7578063c9567bf9146104db575f80fd5b8063a6f34383116100cd578063a6f343831461042e578063a9059cbb1461044d578063ac7b9b9f1461046c578063bc205ad31461047f575f80fd5b80637efd4be7146103a75780638da5cb5b146103c65780638f9a55c0146103ec57806395d89b4114610401575f80fd5b8063313ce56711610173578063715018a611610143578063715018a614610356578063751039fc1461036a578063756b7bb71461037e5780637d1db4a514610392575f80fd5b8063313ce567146102d457806345a6dc13146102ef57806356c8c7ae1461030e57806370a0823114610322575f80fd5b80630faee56f116101ae5780630faee56f1461026a57806318160ddd1461028d57806323b872dd146102a15780632a24d262146102c0575f80fd5b80630614117a146101de57806306fdde03146101f4578063095ea7b31461023b575f80fd5b366101da57005b5f80fd5b3480156101e9575f80fd5b506101f261056f565b005b3480156101ff575f80fd5b5060408051808201909152600d81526c4d6163726f537472617465677960981b60208201525b6040516102329190611caa565b60405180910390f35b348015610246575f80fd5b5061025a610255366004611d0d565b610599565b6040519015158152602001610232565b348015610275575f80fd5b5061027f60175481565b604051908152602001610232565b348015610298575f80fd5b5061027f6105af565b3480156102ac575f80fd5b5061025a6102bb366004611d37565b6105ce565b3480156102cb575f80fd5b506101f2610635565b3480156102df575f80fd5b5060405160098152602001610232565b3480156102fa575f80fd5b506101f2610309366004611dba565b61067c565b348015610319575f80fd5b506102256106cd565b34801561032d575f80fd5b5061027f61033c366004611e4d565b6001600160a01b03165f9081526001602052604090205490565b348015610361575f80fd5b506101f2610759565b348015610375575f80fd5b506101f26107ca565b348015610389575f80fd5b5061022561086e565b34801561039d575f80fd5b5061027f60145481565b3480156103b2575f80fd5b506101f26103c1366004611e68565b6108fe565b3480156103d1575f80fd5b505f546040516001600160a01b039091168152602001610232565b3480156103f7575f80fd5b5061027f60155481565b34801561040c575f80fd5b5060408051808201909152600581526426a0a9aa2960d91b6020820152610225565b348015610439575f80fd5b506101f2610448366004611e68565b61095e565b348015610458575f80fd5b5061025a610467366004611d0d565b6109be565b6101f261047a366004611d37565b6109ca565b34801561048a575f80fd5b506101f2610499366004611e7f565b610d33565b3480156104a9575f80fd5b5061027f60165481565b3480156104be575f80fd5b50610225610e8a565b3480156104d2575f80fd5b50610225610e99565b3480156104e6575f80fd5b506101f2610ea6565b3480156104fa575f80fd5b5061027f610509366004611e7f565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561053e575f80fd5b5061022561125d565b348015610552575f80fd5b5061022561126a565b348015610566575f80fd5b506101f2611279565b6004546001600160a01b0316336001600160a01b03161461058e575f80fd5b610597476112ca565b565b5f6105a5338484611301565b5060015b92915050565b5f6105bc6009600a611faa565b6105c99062989680611fb8565b905090565b5f6105da848484611424565b61062b8433610626856040518060600160405280602881526020016122af602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611926565b611301565b5060019392505050565b5f546001600160a01b031633146106675760405162461bcd60e51b815260040161065e90611fcf565b60405180910390fd5b600b805460ff60b01b1916600160b01b179055565b6004546001600160a01b0316336001600160a01b03161461069b575f80fd5b60076106a8868883612096565b5060086106b6848683612096565b5060096106c4828483612096565b50505050505050565b600980546106da90612018565b80601f016020809104026020016040519081016040528092919081815260200182805461070690612018565b80156107515780601f1061072857610100808354040283529160200191610751565b820191905f5260205f20905b81548152906001019060200180831161073457829003601f168201915b505050505081565b5f546001600160a01b031633146107825760405162461bcd60e51b815260040161065e90611fcf565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6004546001600160a01b0316336001600160a01b0316146107e9575f80fd5b6107f56009600a611faa565b6108029062989680611fb8565b6014556108116009600a611faa565b61081e9062989680611fb8565b6015557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61084e6009600a611faa565b61085b9062989680611fb8565b60405190815260200160405180910390a1565b60606008805461087d90612018565b80601f01602080910402602001604051908101604052809291908181526020018280546108a990612018565b80156108f45780601f106108cb576101008083540402835291602001916108f4565b820191905f5260205f20905b8154815290600101906020018083116108d757829003601f168201915b5050505050905090565b5f546001600160a01b031633146109275760405162461bcd60e51b815260040161065e90611fcf565b806127106109376009600a611faa565b6109449062989680611fb8565b61094e9190612150565b6109589190611fb8565b60165550565b5f546001600160a01b031633146109875760405162461bcd60e51b815260040161065e90611fcf565b806127106109976009600a611faa565b6109a49062989680611fb8565b6109ae9190612150565b6109b89190611fb8565b60175550565b5f6105a5338484611424565b5f546001600160a01b031633146109f35760405162461bcd60e51b815260040161065e90611fcf565b600b54600160a01b900460ff1615610a595760405162461bcd60e51b815260206004820152602360248201527f6c702077617320616c72656164792063726561746564207375636365737366756044820152626c6c7960e81b606482015260840161065e565b5f836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a96573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aba919061216f565b9050806001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b158015610af5575f80fd5b505af1158015610b07573d5f803e3d5ffd5b50505050505f846001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b49573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b6d919061216f565b60405163e6a4390560e01b81526001600160a01b0386811660048301528481166024830152919091169063e6a4390590604401602060405180830381865afa158015610bbb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bdf919061216f565b60405163a9059cbb60e01b81526001600160a01b038083166004830152602482018690529192509085169063a9059cbb906044016020604051808303815f875af1158015610c2f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c53919061218a565b5060405163a9059cbb60e01b81526001600160a01b03828116600483015234602483015283169063a9059cbb906044016020604051808303815f875af1158015610c9f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc3919061218a565b506040516335313c2160e11b81523360048201526001600160a01b03821690636a627842906024016020604051808303815f875af1158015610d07573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d2b91906121a9565b505050505050565b6004546001600160a01b0316336001600160a01b031614610d52575f80fd5b6001600160a01b038216610da85760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f742062652030000000000000604482015260640161065e565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015610dec573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e1091906121a9565b60405163a9059cbb60e01b81526001600160a01b038481166004830152602482018390529192509084169063a9059cbb906044016020604051808303815f875af1158015610e60573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e84919061218a565b50505050565b60606009805461087d90612018565b600780546106da90612018565b5f546001600160a01b03163314610ecf5760405162461bcd60e51b815260040161065e90611fcf565b600b54600160a01b900460ff1615610f295760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161065e565b600b805460ff60b01b1916600160b01b179055600a80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081178255610f8491309190610f7790600990611faa565b6106269062989680611fb8565b600a5f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ff8919061216f565b6001600160a01b031663c9c6539630600a5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611057573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061107b919061216f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156110c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110e9919061216f565b600b80546001600160a01b039283166001600160a01b0319909116179055600a541663f305d7194730611130816001600160a01b03165f9081526001602052604090205490565b5f806111435f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156111a9573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906111ce91906121c0565b5050600b54600a5460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015611223573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611247919061218a565b50600b805460ff60a01b1916600160a01b179055565b600880546106da90612018565b60606007805461087d90612018565b6004546001600160a01b0316336001600160a01b031614611298575f80fd5b305f9081526001602052604090205480156112b6576112b68161195e565b4780156112c6576112c6816112ca565b5050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156112c6573d5f803e3d5ffd5b6001600160a01b0383166113635760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161065e565b6001600160a01b0382166113c45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161065e565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166114885760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161065e565b6001600160a01b0382166114ea5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161065e565b5f811161154b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161065e565b5f80546001600160a01b0385811691161480159061157657505f546001600160a01b03848116911614155b156117e9576115a760646115a1600d54600c54116115965760105461159a565b6012545b8590611ace565b90611b53565b600b549091506001600160a01b0385811691161480156115d55750600a546001600160a01b03848116911614155b80156115f957506001600160a01b0383165f9081526003602052604090205460ff16155b156116df576014548211156116505760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161065e565b60155482611672856001600160a01b03165f9081526001602052604090205490565b61167c91906121eb565b11156116ca5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161065e565b600c8054905f6116d9836121fe565b91905055505b600b546001600160a01b03848116911614801561170557506001600160a01b0384163014155b156117325761172f60646115a1600e54600c54116117255760115461159a565b6013548590611ace565b90505b305f90815260016020526040902054600b54600160a81b900460ff161580156117685750600b546001600160a01b038581169116145b801561177d5750600b54600160b01b900460ff165b801561178a575060165481115b80156117995750600f54600c54115b156117e7576117bb6117b6846117b184601754611b94565b611b94565b61195e565b4780156117e5576117dc6117d76107d06115a1476103e8611ace565b611ba8565b6117e5476112ca565b505b505b801561186157305f908152600160205260409020546118089082611bdf565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118589085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546118839083611c3d565b6001600160a01b0385165f908152600160205260409020556118c66118a88383611c3d565b6001600160a01b0385165f9081526001602052604090205490611bdf565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61190f8585611c3d565b60405190815260200160405180910390a350505050565b5f81848411156119495760405162461bcd60e51b815260040161065e9190611caa565b505f6119558486612216565b95945050505050565b600b805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106119a4576119a4612229565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119fb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a1f919061216f565b81600181518110611a3257611a32612229565b6001600160a01b039283166020918202929092010152600a54611a589130911684611301565b600a5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a909085905f9086903090429060040161223d565b5f604051808303815f87803b158015611aa7575f80fd5b505af1158015611ab9573d5f803e3d5ffd5b5050600b805460ff60a81b1916905550505050565b5f825f03611add57505f6105a9565b5f611ae88385611fb8565b905082611af58583612150565b14611b4c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161065e565b9392505050565b5f611b4c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c7e565b5f818311611ba25782611b4c565b50919050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156112c6573d5f803e3d5ffd5b5f80611beb83856121eb565b905083811015611b4c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161065e565b5f611b4c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611926565b5f8183611c9e5760405162461bcd60e51b815260040161065e9190611caa565b505f6119558486612150565b5f602080835283518060208501525f5b81811015611cd657858101830151858201604001528201611cba565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611d0a575f80fd5b50565b5f8060408385031215611d1e575f80fd5b8235611d2981611cf6565b946020939093013593505050565b5f805f60608486031215611d49575f80fd5b8335611d5481611cf6565b92506020840135611d6481611cf6565b929592945050506040919091013590565b5f8083601f840112611d85575f80fd5b50813567ffffffffffffffff811115611d9c575f80fd5b602083019150836020828501011115611db3575f80fd5b9250929050565b5f805f805f8060608789031215611dcf575f80fd5b863567ffffffffffffffff80821115611de6575f80fd5b611df28a838b01611d75565b90985096506020890135915080821115611e0a575f80fd5b611e168a838b01611d75565b90965094506040890135915080821115611e2e575f80fd5b50611e3b89828a01611d75565b979a9699509497509295939492505050565b5f60208284031215611e5d575f80fd5b8135611b4c81611cf6565b5f60208284031215611e78575f80fd5b5035919050565b5f8060408385031215611e90575f80fd5b8235611e9b81611cf6565b91506020830135611eab81611cf6565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611f0457815f1904821115611eea57611eea611eb6565b80851615611ef757918102915b93841c9390800290611ecf565b509250929050565b5f82611f1a575060016105a9565b81611f2657505f6105a9565b8160018114611f3c5760028114611f4657611f62565b60019150506105a9565b60ff841115611f5757611f57611eb6565b50506001821b6105a9565b5060208310610133831016604e8410600b8410161715611f85575081810a6105a9565b611f8f8383611eca565b805f1904821115611fa257611fa2611eb6565b029392505050565b5f611b4c60ff841683611f0c565b80820281158282048414176105a9576105a9611eb6565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061202c57607f821691505b602082108103611ba257634e487b7160e01b5f52602260045260245ffd5b601f82111561209157805f5260205f20601f840160051c8101602085101561206f5750805b601f840160051c820191505b8181101561208e575f815560010161207b565b50505b505050565b67ffffffffffffffff8311156120ae576120ae612004565b6120c2836120bc8354612018565b8361204a565b5f601f8411600181146120f3575f85156120dc5750838201355b5f19600387901b1c1916600186901b17835561208e565b5f83815260208120601f198716915b828110156121225786850135825560209485019460019092019101612102565b508682101561213e575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b5f8261216a57634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121561217f575f80fd5b8151611b4c81611cf6565b5f6020828403121561219a575f80fd5b81518015158114611b4c575f80fd5b5f602082840312156121b9575f80fd5b5051919050565b5f805f606084860312156121d2575f80fd5b8351925060208401519150604084015190509250925092565b808201808211156105a9576105a9611eb6565b5f6001820161220f5761220f611eb6565b5060010190565b818103818111156105a9576105a9611eb6565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561228d5784516001600160a01b031683529383019391830191600101612268565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220704b71c0da069ffca32c9b745bee72401890d502c2dd9b5374665c6c72408e1b64736f6c63430008160033000000000000000000000000232b745ec0f9ddbeff677531c80bb89e6c55dd0f

Deployed Bytecode

0x6080604052600436106101d3575f3560e01c80637efd4be7116100fd578063bf474bed11610092578063dd62ed3e11610062578063dd62ed3e146104ef578063dedd452014610533578063e0dc354614610547578063f1f5943f1461055b575f80fd5b8063bf474bed1461049e578063c3f93b01146104b3578063c8043432146104c7578063c9567bf9146104db575f80fd5b8063a6f34383116100cd578063a6f343831461042e578063a9059cbb1461044d578063ac7b9b9f1461046c578063bc205ad31461047f575f80fd5b80637efd4be7146103a75780638da5cb5b146103c65780638f9a55c0146103ec57806395d89b4114610401575f80fd5b8063313ce56711610173578063715018a611610143578063715018a614610356578063751039fc1461036a578063756b7bb71461037e5780637d1db4a514610392575f80fd5b8063313ce567146102d457806345a6dc13146102ef57806356c8c7ae1461030e57806370a0823114610322575f80fd5b80630faee56f116101ae5780630faee56f1461026a57806318160ddd1461028d57806323b872dd146102a15780632a24d262146102c0575f80fd5b80630614117a146101de57806306fdde03146101f4578063095ea7b31461023b575f80fd5b366101da57005b5f80fd5b3480156101e9575f80fd5b506101f261056f565b005b3480156101ff575f80fd5b5060408051808201909152600d81526c4d6163726f537472617465677960981b60208201525b6040516102329190611caa565b60405180910390f35b348015610246575f80fd5b5061025a610255366004611d0d565b610599565b6040519015158152602001610232565b348015610275575f80fd5b5061027f60175481565b604051908152602001610232565b348015610298575f80fd5b5061027f6105af565b3480156102ac575f80fd5b5061025a6102bb366004611d37565b6105ce565b3480156102cb575f80fd5b506101f2610635565b3480156102df575f80fd5b5060405160098152602001610232565b3480156102fa575f80fd5b506101f2610309366004611dba565b61067c565b348015610319575f80fd5b506102256106cd565b34801561032d575f80fd5b5061027f61033c366004611e4d565b6001600160a01b03165f9081526001602052604090205490565b348015610361575f80fd5b506101f2610759565b348015610375575f80fd5b506101f26107ca565b348015610389575f80fd5b5061022561086e565b34801561039d575f80fd5b5061027f60145481565b3480156103b2575f80fd5b506101f26103c1366004611e68565b6108fe565b3480156103d1575f80fd5b505f546040516001600160a01b039091168152602001610232565b3480156103f7575f80fd5b5061027f60155481565b34801561040c575f80fd5b5060408051808201909152600581526426a0a9aa2960d91b6020820152610225565b348015610439575f80fd5b506101f2610448366004611e68565b61095e565b348015610458575f80fd5b5061025a610467366004611d0d565b6109be565b6101f261047a366004611d37565b6109ca565b34801561048a575f80fd5b506101f2610499366004611e7f565b610d33565b3480156104a9575f80fd5b5061027f60165481565b3480156104be575f80fd5b50610225610e8a565b3480156104d2575f80fd5b50610225610e99565b3480156104e6575f80fd5b506101f2610ea6565b3480156104fa575f80fd5b5061027f610509366004611e7f565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561053e575f80fd5b5061022561125d565b348015610552575f80fd5b5061022561126a565b348015610566575f80fd5b506101f2611279565b6004546001600160a01b0316336001600160a01b03161461058e575f80fd5b610597476112ca565b565b5f6105a5338484611301565b5060015b92915050565b5f6105bc6009600a611faa565b6105c99062989680611fb8565b905090565b5f6105da848484611424565b61062b8433610626856040518060600160405280602881526020016122af602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611926565b611301565b5060019392505050565b5f546001600160a01b031633146106675760405162461bcd60e51b815260040161065e90611fcf565b60405180910390fd5b600b805460ff60b01b1916600160b01b179055565b6004546001600160a01b0316336001600160a01b03161461069b575f80fd5b60076106a8868883612096565b5060086106b6848683612096565b5060096106c4828483612096565b50505050505050565b600980546106da90612018565b80601f016020809104026020016040519081016040528092919081815260200182805461070690612018565b80156107515780601f1061072857610100808354040283529160200191610751565b820191905f5260205f20905b81548152906001019060200180831161073457829003601f168201915b505050505081565b5f546001600160a01b031633146107825760405162461bcd60e51b815260040161065e90611fcf565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6004546001600160a01b0316336001600160a01b0316146107e9575f80fd5b6107f56009600a611faa565b6108029062989680611fb8565b6014556108116009600a611faa565b61081e9062989680611fb8565b6015557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61084e6009600a611faa565b61085b9062989680611fb8565b60405190815260200160405180910390a1565b60606008805461087d90612018565b80601f01602080910402602001604051908101604052809291908181526020018280546108a990612018565b80156108f45780601f106108cb576101008083540402835291602001916108f4565b820191905f5260205f20905b8154815290600101906020018083116108d757829003601f168201915b5050505050905090565b5f546001600160a01b031633146109275760405162461bcd60e51b815260040161065e90611fcf565b806127106109376009600a611faa565b6109449062989680611fb8565b61094e9190612150565b6109589190611fb8565b60165550565b5f546001600160a01b031633146109875760405162461bcd60e51b815260040161065e90611fcf565b806127106109976009600a611faa565b6109a49062989680611fb8565b6109ae9190612150565b6109b89190611fb8565b60175550565b5f6105a5338484611424565b5f546001600160a01b031633146109f35760405162461bcd60e51b815260040161065e90611fcf565b600b54600160a01b900460ff1615610a595760405162461bcd60e51b815260206004820152602360248201527f6c702077617320616c72656164792063726561746564207375636365737366756044820152626c6c7960e81b606482015260840161065e565b5f836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a96573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aba919061216f565b9050806001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b158015610af5575f80fd5b505af1158015610b07573d5f803e3d5ffd5b50505050505f846001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b49573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b6d919061216f565b60405163e6a4390560e01b81526001600160a01b0386811660048301528481166024830152919091169063e6a4390590604401602060405180830381865afa158015610bbb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bdf919061216f565b60405163a9059cbb60e01b81526001600160a01b038083166004830152602482018690529192509085169063a9059cbb906044016020604051808303815f875af1158015610c2f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c53919061218a565b5060405163a9059cbb60e01b81526001600160a01b03828116600483015234602483015283169063a9059cbb906044016020604051808303815f875af1158015610c9f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc3919061218a565b506040516335313c2160e11b81523360048201526001600160a01b03821690636a627842906024016020604051808303815f875af1158015610d07573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d2b91906121a9565b505050505050565b6004546001600160a01b0316336001600160a01b031614610d52575f80fd5b6001600160a01b038216610da85760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f742062652030000000000000604482015260640161065e565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015610dec573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e1091906121a9565b60405163a9059cbb60e01b81526001600160a01b038481166004830152602482018390529192509084169063a9059cbb906044016020604051808303815f875af1158015610e60573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e84919061218a565b50505050565b60606009805461087d90612018565b600780546106da90612018565b5f546001600160a01b03163314610ecf5760405162461bcd60e51b815260040161065e90611fcf565b600b54600160a01b900460ff1615610f295760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161065e565b600b805460ff60b01b1916600160b01b179055600a80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081178255610f8491309190610f7790600990611faa565b6106269062989680611fb8565b600a5f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ff8919061216f565b6001600160a01b031663c9c6539630600a5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611057573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061107b919061216f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156110c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110e9919061216f565b600b80546001600160a01b039283166001600160a01b0319909116179055600a541663f305d7194730611130816001600160a01b03165f9081526001602052604090205490565b5f806111435f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156111a9573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906111ce91906121c0565b5050600b54600a5460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015611223573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611247919061218a565b50600b805460ff60a01b1916600160a01b179055565b600880546106da90612018565b60606007805461087d90612018565b6004546001600160a01b0316336001600160a01b031614611298575f80fd5b305f9081526001602052604090205480156112b6576112b68161195e565b4780156112c6576112c6816112ca565b5050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156112c6573d5f803e3d5ffd5b6001600160a01b0383166113635760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161065e565b6001600160a01b0382166113c45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161065e565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166114885760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161065e565b6001600160a01b0382166114ea5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161065e565b5f811161154b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161065e565b5f80546001600160a01b0385811691161480159061157657505f546001600160a01b03848116911614155b156117e9576115a760646115a1600d54600c54116115965760105461159a565b6012545b8590611ace565b90611b53565b600b549091506001600160a01b0385811691161480156115d55750600a546001600160a01b03848116911614155b80156115f957506001600160a01b0383165f9081526003602052604090205460ff16155b156116df576014548211156116505760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161065e565b60155482611672856001600160a01b03165f9081526001602052604090205490565b61167c91906121eb565b11156116ca5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161065e565b600c8054905f6116d9836121fe565b91905055505b600b546001600160a01b03848116911614801561170557506001600160a01b0384163014155b156117325761172f60646115a1600e54600c54116117255760115461159a565b6013548590611ace565b90505b305f90815260016020526040902054600b54600160a81b900460ff161580156117685750600b546001600160a01b038581169116145b801561177d5750600b54600160b01b900460ff165b801561178a575060165481115b80156117995750600f54600c54115b156117e7576117bb6117b6846117b184601754611b94565b611b94565b61195e565b4780156117e5576117dc6117d76107d06115a1476103e8611ace565b611ba8565b6117e5476112ca565b505b505b801561186157305f908152600160205260409020546118089082611bdf565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118589085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546118839083611c3d565b6001600160a01b0385165f908152600160205260409020556118c66118a88383611c3d565b6001600160a01b0385165f9081526001602052604090205490611bdf565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61190f8585611c3d565b60405190815260200160405180910390a350505050565b5f81848411156119495760405162461bcd60e51b815260040161065e9190611caa565b505f6119558486612216565b95945050505050565b600b805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106119a4576119a4612229565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119fb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a1f919061216f565b81600181518110611a3257611a32612229565b6001600160a01b039283166020918202929092010152600a54611a589130911684611301565b600a5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a909085905f9086903090429060040161223d565b5f604051808303815f87803b158015611aa7575f80fd5b505af1158015611ab9573d5f803e3d5ffd5b5050600b805460ff60a81b1916905550505050565b5f825f03611add57505f6105a9565b5f611ae88385611fb8565b905082611af58583612150565b14611b4c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161065e565b9392505050565b5f611b4c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c7e565b5f818311611ba25782611b4c565b50919050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156112c6573d5f803e3d5ffd5b5f80611beb83856121eb565b905083811015611b4c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161065e565b5f611b4c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611926565b5f8183611c9e5760405162461bcd60e51b815260040161065e9190611caa565b505f6119558486612150565b5f602080835283518060208501525f5b81811015611cd657858101830151858201604001528201611cba565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611d0a575f80fd5b50565b5f8060408385031215611d1e575f80fd5b8235611d2981611cf6565b946020939093013593505050565b5f805f60608486031215611d49575f80fd5b8335611d5481611cf6565b92506020840135611d6481611cf6565b929592945050506040919091013590565b5f8083601f840112611d85575f80fd5b50813567ffffffffffffffff811115611d9c575f80fd5b602083019150836020828501011115611db3575f80fd5b9250929050565b5f805f805f8060608789031215611dcf575f80fd5b863567ffffffffffffffff80821115611de6575f80fd5b611df28a838b01611d75565b90985096506020890135915080821115611e0a575f80fd5b611e168a838b01611d75565b90965094506040890135915080821115611e2e575f80fd5b50611e3b89828a01611d75565b979a9699509497509295939492505050565b5f60208284031215611e5d575f80fd5b8135611b4c81611cf6565b5f60208284031215611e78575f80fd5b5035919050565b5f8060408385031215611e90575f80fd5b8235611e9b81611cf6565b91506020830135611eab81611cf6565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611f0457815f1904821115611eea57611eea611eb6565b80851615611ef757918102915b93841c9390800290611ecf565b509250929050565b5f82611f1a575060016105a9565b81611f2657505f6105a9565b8160018114611f3c5760028114611f4657611f62565b60019150506105a9565b60ff841115611f5757611f57611eb6565b50506001821b6105a9565b5060208310610133831016604e8410600b8410161715611f85575081810a6105a9565b611f8f8383611eca565b805f1904821115611fa257611fa2611eb6565b029392505050565b5f611b4c60ff841683611f0c565b80820281158282048414176105a9576105a9611eb6565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061202c57607f821691505b602082108103611ba257634e487b7160e01b5f52602260045260245ffd5b601f82111561209157805f5260205f20601f840160051c8101602085101561206f5750805b601f840160051c820191505b8181101561208e575f815560010161207b565b50505b505050565b67ffffffffffffffff8311156120ae576120ae612004565b6120c2836120bc8354612018565b8361204a565b5f601f8411600181146120f3575f85156120dc5750838201355b5f19600387901b1c1916600186901b17835561208e565b5f83815260208120601f198716915b828110156121225786850135825560209485019460019092019101612102565b508682101561213e575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b5f8261216a57634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121561217f575f80fd5b8151611b4c81611cf6565b5f6020828403121561219a575f80fd5b81518015158114611b4c575f80fd5b5f602082840312156121b9575f80fd5b5051919050565b5f805f606084860312156121d2575f80fd5b8351925060208401519150604084015190509250925092565b808201808211156105a9576105a9611eb6565b5f6001820161220f5761220f611eb6565b5060010190565b818103818111156105a9576105a9611eb6565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561228d5784516001600160a01b031683529383019391830191600101612268565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220704b71c0da069ffca32c9b745bee72401890d502c2dd9b5374665c6c72408e1b64736f6c63430008160033

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

000000000000000000000000232b745ec0f9ddbeff677531c80bb89e6c55dd0f

-----Decoded View---------------
Arg [0] : devWallet (address): 0x232b745Ec0F9DdBeff677531C80BB89E6C55DD0f

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000232b745ec0f9ddbeff677531c80bb89e6c55dd0f


Deployed Bytecode Sourcemap

4234:10634:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8154:122;;;;;;;;;;;;;:::i;:::-;;8559:83;;;;;;;;;;-1:-1:-1;8629:5:0;;;;;;;;;;;;-1:-1:-1;;;8629:5:0;;;;8559:83;;;;;;;:::i;:::-;;;;;;;;9398:161;;;;;;;;;;-1:-1:-1;9398:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;9398:161:0;1023:187:1;6025:49:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;6025:49:0;1215:177:1;8838:95:0;;;;;;;;;;;;;:::i;9568:313::-;;;;;;;;;;-1:-1:-1;9568:313:0;;;;;:::i;:::-;;:::i;13255:83::-;;;;;;;;;;;;;:::i;8747:::-;;;;;;;;;;-1:-1:-1;8747:83:0;;5653:1;2000:36:1;;1988:2;1973:18;8747:83:0;1858:184:1;14103:390:0;;;;;;;;;;-1:-1:-1;14103:390:0;;;;;:::i;:::-;;:::i;4847:33::-;;;;;;;;;;;;;:::i;8942:119::-;;;;;;;;;;-1:-1:-1;8942:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;9035:18:0;9008:7;9035:18;;;:9;:18;;;;;;;8942:119;1772:148;;;;;;;;;;;;;:::i;7246:195::-;;;;;;;;;;;;;:::i;14625:116::-;;;;;;;;;;;;;:::i;5844:52::-;;;;;;;;;;;;;;;;8418:133;;;;;;;;;;-1:-1:-1;8418:133:0;;;;;:::i;:::-;;:::i;1558:79::-;;;;;;;;;;-1:-1:-1;1596:7:0;1623:6;1558:79;;-1:-1:-1;;;;;1623:6:0;;;3998:51:1;;3986:2;3971:18;1558:79:0;3852:203:1;5904:52:0;;;;;;;;;;;;;;;;8651:87;;;;;;;;;;-1:-1:-1;8723:7:0;;;;;;;;;;;;-1:-1:-1;;;8723:7:0;;;;8651:87;;8284:126;;;;;;;;;;-1:-1:-1;8284:126:0;;;;;:::i;:::-;;:::i;9070:167::-;;;;;;;;;;-1:-1:-1;9070:167:0;;;;;:::i;:::-;;:::i;13342:753::-;;;;;;:::i;:::-;;:::i;7449:323::-;;;;;;;;;;-1:-1:-1;7449:323:0;;;;;:::i;:::-;;:::i;5964:54::-;;;;;;;;;;;;;;;;14749:114;;;;;;;;;;;;;:::i;4766:33::-;;;;;;;;;;;;;:::i;6567:671::-;;;;;;;;;;;;;:::i;9246:143::-;;;;;;;;;;-1:-1:-1;9246:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;9354:18:0;;;9327:7;9354:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9246:143;4806:34;;;;;;;;;;;;;:::i;14503:114::-;;;;;;;;;;;;;:::i;7780:369::-;;;;;;;;;;;;;:::i;8154:122::-;8218:11;;-1:-1:-1;;;;;8218:11:0;427:10;-1:-1:-1;;;;;8204:25:0;;8196:34;;;;;;8235:36;8249:21;8235:13;:36::i;:::-;8154:122::o;9398:161::-;9473:4;9490:39;427:10;9513:7;9522:6;9490:8;:39::i;:::-;-1:-1:-1;9547:4:0;9398:161;;;;;:::o;8838:95::-;8891:7;5707:14;5653:1;5707:2;:14;:::i;:::-;5696:25;;:8;:25;:::i;:::-;8911:14;;8838:95;:::o;9568:313::-;9666:4;9683:36;9693:6;9701:9;9712:6;9683:9;:36::i;:::-;9730:121;9739:6;427:10;9761:89;9799:6;9761:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9761:19:0;;;;;;:11;:19;;;;;;;;427:10;9761:33;;;;;;;;;;:37;:89::i;:::-;9730:8;:121::i;:::-;-1:-1:-1;9869:4:0;9568:313;;;;;:::o;13255:83::-;1685:6;;-1:-1:-1;;;;;1685:6:0;427:10;1685:22;1677:67;;;;-1:-1:-1;;;1677:67:0;;;;;;;:::i;:::-;;;;;;;;;13315:11:::1;:18:::0;;-1:-1:-1;;;;13315:18:0::1;-1:-1:-1::0;;;13315:18:0::1;::::0;;13255:83::o;14103:390::-;14316:11;;-1:-1:-1;;;;;14316:11:0;427:10;-1:-1:-1;;;;;14302:25:0;;14294:34;;;;;;14339:19;:42;14361:20;;14339:19;:42;:::i;:::-;-1:-1:-1;14392:20:0;:44;14415:21;;14392:20;:44;:::i;:::-;-1:-1:-1;14447:19:0;:42;14469:20;;14447:19;:42;:::i;:::-;;14103:390;;;;;;:::o;4847:33::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1772:148::-;1685:6;;-1:-1:-1;;;;;1685:6:0;427:10;1685:22;1677:67;;;;-1:-1:-1;;;1677:67:0;;;;;;;:::i;:::-;1879:1:::1;1863:6:::0;;1842:40:::1;::::0;-1:-1:-1;;;;;1863:6:0;;::::1;::::0;1842:40:::1;::::0;1879:1;;1842:40:::1;1910:1;1893:19:::0;;-1:-1:-1;;;;;;1893:19:0::1;::::0;;1772:148::o;7246:195::-;7312:11;;-1:-1:-1;;;;;7312:11:0;427:10;-1:-1:-1;;;;;7298:25:0;;7290:34;;;;;;5707:14;5653:1;5707:2;:14;:::i;:::-;5696:25;;:8;:25;:::i;:::-;7335:12;:22;5707:14;5653:1;5707:2;:14;:::i;:::-;5696:25;;:8;:25;:::i;:::-;7368:14;:22;7406:27;5707:14;5653:1;5707:2;:14;:::i;:::-;5696:25;;:8;:25;:::i;:::-;7406:27;;1361:25:1;;;1349:2;1334:18;7406:27:0;;;;;;;7246:195::o;14625:116::-;14680:13;14713:20;14706:27;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14625:116;:::o;8418:133::-;1685:6;;-1:-1:-1;;;;;1685:6:0;427:10;1685:22;1677:67;;;;-1:-1:-1;;;1677:67:0;;;;;;;:::i;:::-;8537:6;8529:5:::1;5707:14;5653:1;5707:2;:14;:::i;:::-;5696:25;::::0;:8:::1;:25;:::i;:::-;8519:15;;;;:::i;:::-;:24;;;;:::i;:::-;8499:17;:44:::0;-1:-1:-1;8418:133:0:o;8284:126::-;1685:6;;-1:-1:-1;;;;;1685:6:0;427:10;1685:22;1677:67;;;;-1:-1:-1;;;1677:67:0;;;;;;;:::i;:::-;8396:6;8388:5:::1;5707:14;5653:1;5707:2;:14;:::i;:::-;5696:25;::::0;:8:::1;:25;:::i;:::-;8378:15;;;;:::i;:::-;:24;;;;:::i;:::-;8364:11;:38:::0;-1:-1:-1;8284:126:0:o;9070:167::-;9148:4;9165:42;427:10;9189:9;9200:6;9165:9;:42::i;13342:753::-;1685:6;;-1:-1:-1;;;;;1685:6:0;427:10;1685:22;1677:67;;;;-1:-1:-1;;;1677:67:0;;;;;;;:::i;:::-;13465:11:::1;::::0;-1:-1:-1;;;13465:11:0;::::1;;;13464:12;13456:59;;;::::0;-1:-1:-1;;;13456:59:0;;9460:2:1;13456:59:0::1;::::0;::::1;9442:21:1::0;9499:2;9479:18;;;9472:30;9538:34;9518:18;;;9511:62;-1:-1:-1;;;9589:18:1;;;9582:33;9632:19;;13456:59:0::1;9258:399:1::0;13456:59:0::1;13526:10;13564:7;-1:-1:-1::0;;;;;13545:32:0::1;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13526:54;;13591:4;-1:-1:-1::0;;;;;13591:12:0::1;;13611:9;13591:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;13634:12;13694:7;-1:-1:-1::0;;;;;13675:35:0::1;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13657:88;::::0;-1:-1:-1;;;13657:88:0;;-1:-1:-1;;;;;10148:15:1;;;13657:88:0::1;::::0;::::1;10130:34:1::0;10200:15;;;10180:18;;;10173:43;13657:64:0;;;::::1;::::0;::::1;::::0;10065:18:1;;13657:88:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13757:54;::::0;-1:-1:-1;;;13757:54:0;;-1:-1:-1;;;;;10419:32:1;;;13757:54:0::1;::::0;::::1;10401:51:1::0;10468:18;;;10461:34;;;13634:112:0;;-1:-1:-1;13757:24:0;;::::1;::::0;::::1;::::0;10374:18:1;;13757:54:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13822:56:0::1;::::0;-1:-1:-1;;;13822:56:0;;-1:-1:-1;;;;;10419:32:1;;;13822:56:0::1;::::0;::::1;10401:51:1::0;13868:9:0::1;10468:18:1::0;;;10461:34;13822:30:0;::::1;::::0;::::1;::::0;10374:18:1;;13822:56:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13889:21:0::1;::::0;-1:-1:-1;;;13889:21:0;;13899:10:::1;13889:21;::::0;::::1;3998:51:1::0;-1:-1:-1;;;;;13889:9:0;::::1;::::0;::::1;::::0;3971:18:1;;13889:21:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13445:650;;13342:753:::0;;;:::o;7449:323::-;7548:11;;-1:-1:-1;;;;;7548:11:0;427:10;-1:-1:-1;;;;;7534:25:0;;7526:34;;;;;;-1:-1:-1;;;;;7579:20:0;;7571:59;;;;-1:-1:-1;;;7571:59:0;;11179:2:1;7571:59:0;;;11161:21:1;11218:2;11198:18;;;11191:30;11257:28;11237:18;;;11230:56;11303:18;;7571:59:0;10977:350:1;7571:59:0;7668:39;;-1:-1:-1;;;7668:39:0;;7701:4;7668:39;;;3998:51:1;7641:24:0;;-1:-1:-1;;;;;7668:24:0;;;;;3971:18:1;;7668:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7718:46;;-1:-1:-1;;;7718:46:0;;-1:-1:-1;;;;;10419:32:1;;;7718:46:0;;;10401:51:1;10468:18;;;10461:34;;;7641:66:0;;-1:-1:-1;7718:23:0;;;;;;10374:18:1;;7718:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7515:257;7449:323;;:::o;14749:114::-;14803:13;14836:19;14829:26;;;;;:::i;4766:33::-;;;;;;;:::i;6567:671::-;1685:6;;-1:-1:-1;;;;;1685:6:0;427:10;1685:22;1677:67;;;;-1:-1:-1;;;1677:67:0;;;;;;;:::i;:::-;6631:11:::1;::::0;-1:-1:-1;;;6631:11:0;::::1;;;6630:12;6622:47;;;::::0;-1:-1:-1;;;6622:47:0;;11534:2:1;6622:47:0::1;::::0;::::1;11516:21:1::0;11573:2;11553:18;;;11546:30;11612:25;11592:18;;;11585:53;11655:18;;6622:47:0::1;11332:347:1::0;6622:47:0::1;6680:11;:18:::0;;-1:-1:-1;;;;6680:18:0::1;-1:-1:-1::0;;;6680:18:0::1;::::0;;6709:15:::1;:80:::0;;-1:-1:-1;;;;;;6709:80:0::1;6746:42;6709:80:::0;;::::1;::::0;;6800:58:::1;::::0;6817:4:::1;::::0;6746:42;5707:14:::1;::::0;5653:1:::1;::::0;5707:14:::1;:::i;:::-;5696:25;::::0;:8:::1;:25;:::i;6800:58::-;6903:15;;;;;;;;;-1:-1:-1::0;;;;;6903:15:0::1;-1:-1:-1::0;;;;;6903:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6885:55:0::1;;6949:4;6956:15;;;;;;;;;-1:-1:-1::0;;;;;6956:15:0::1;-1:-1:-1::0;;;;;6956:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6885:94;::::0;-1:-1:-1;;;;;;6885:94:0::1;::::0;;;;;;-1:-1:-1;;;;;10148:15:1;;;6885:94:0::1;::::0;::::1;10130:34:1::0;10200:15;;10180:18;;;10173:43;10065:18;;6885:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6869:13;:110:::0;;-1:-1:-1;;;;;6869:110:0;;::::1;-1:-1:-1::0;;;;;;6869:110:0;;::::1;;::::0;;6990:15:::1;::::0;::::1;:31;7029:21;7060:4;7066:24;7060:4:::0;-1:-1:-1;;;;;9035:18:0;9008:7;9035:18;;;:9;:18;;;;;;;8942:119;7066:24:::1;7091:1;7093::::0;7095:7:::1;1596::::0;1623:6;-1:-1:-1;;;;;1623:6:0;;1558:79;7095:7:::1;6990:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;6990:129:0;;;-1:-1:-1;;;;;12043:15:1;;;6990:129:0::1;::::0;::::1;12025:34:1::0;12075:18;;;12068:34;;;;12118:18;;;12111:34;;;;12161:18;;;12154:34;12225:15;;;12204:19;;;12197:44;7103:15:0::1;12257:19:1::0;;;12250:35;11959:19;;6990:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;7137:13:0::1;::::0;7168:15:::1;::::0;7130:71:::1;::::0;-1:-1:-1;;;7130:71:0;;-1:-1:-1;;;;;7168:15:0;;::::1;7130:71;::::0;::::1;10401:51:1::0;-1:-1:-1;;10468:18:1;;;10461:34;7137:13:0;::::1;::::0;-1:-1:-1;7130:29:0::1;::::0;10374:18:1;;7130:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;7212:11:0::1;:18:::0;;-1:-1:-1;;;;7212:18:0::1;-1:-1:-1::0;;;7212:18:0::1;::::0;;6567:671::o;4806:34::-;;;;;;;:::i;14503:114::-;14557:13;14590:19;14583:26;;;;;:::i;7780:369::-;7863:11;;-1:-1:-1;;;;;7863:11:0;427:10;-1:-1:-1;;;;;7849:25:0;;7841:34;;;;;;7925:4;7886:20;9035:18;;;:9;:18;;;;;;7945:14;;7942:73;;7973:30;7990:12;7973:16;:30::i;:::-;8044:21;8079:12;;8076:66;;8105:25;8119:10;8105:13;:25::i;:::-;7830:319;;7780:369::o;10829:94::-;10887:11;;:28;;-1:-1:-1;;;;;10887:11:0;;;;:28;;;;;10908:6;;10887:11;:28;:11;:28;10908:6;10887:11;:28;;;;;;;;;;;;;;;;;;;9890:335;-1:-1:-1;;;;;9983:19:0;;9975:68;;;;-1:-1:-1;;;9975:68:0;;12809:2:1;9975:68:0;;;12791:21:1;12848:2;12828:18;;;12821:30;12887:34;12867:18;;;12860:62;-1:-1:-1;;;12938:18:1;;;12931:34;12982:19;;9975:68:0;12607:400:1;9975:68:0;-1:-1:-1;;;;;10062:21:0;;10054:68;;;;-1:-1:-1;;;10054:68:0;;13214:2:1;10054:68:0;;;13196:21:1;13253:2;13233:18;;;13226:30;13292:34;13272:18;;;13265:62;-1:-1:-1;;;13343:18:1;;;13336:32;13385:19;;10054:68:0;13012:398:1;10054:68:0;-1:-1:-1;;;;;10133:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10185:32;;1361:25:1;;;10185:32:0;;1334:18:1;10185:32:0;;;;;;;9890:335;;;:::o;10968:1973::-;-1:-1:-1;;;;;11056:18:0;;11048:68;;;;-1:-1:-1;;;11048:68:0;;13617:2:1;11048:68:0;;;13599:21:1;13656:2;13636:18;;;13629:30;13695:34;13675:18;;;13668:62;-1:-1:-1;;;13746:18:1;;;13739:35;13791:19;;11048:68:0;13415:401:1;11048:68:0;-1:-1:-1;;;;;11135:16:0;;11127:64;;;;-1:-1:-1;;;11127:64:0;;14023:2:1;11127:64:0;;;14005:21:1;14062:2;14042:18;;;14035:30;14101:34;14081:18;;;14074:62;-1:-1:-1;;;14152:18:1;;;14145:33;14195:19;;11127:64:0;13821:399:1;11127:64:0;11219:1;11210:6;:10;11202:64;;;;-1:-1:-1;;;11202:64:0;;14427:2:1;11202:64:0;;;14409:21:1;14466:2;14446:18;;;14439:30;14505:34;14485:18;;;14478:62;-1:-1:-1;;;14556:18:1;;;14549:39;14605:19;;11202:64:0;14225:405:1;11202:64:0;11277:17;1623:6;;-1:-1:-1;;;;;11311:15:0;;;1623:6;;11311:15;;;;:32;;-1:-1:-1;1596:7:0;1623:6;-1:-1:-1;;;;;11330:13:0;;;1623:6;;11330:13;;11311:32;11307:1278;;;11372:79;11447:3;11372:70;11402:16;;11384:17;;:34;11383:58;;11428:13;;11383:58;;;11420:7;;11383:58;11372:6;;:10;:70::i;:::-;:74;;:79::i;:::-;11480:13;;11360:91;;-1:-1:-1;;;;;;11472:21:0;;;11480:13;;11472:21;:55;;;;-1:-1:-1;11511:15:0;;-1:-1:-1;;;;;11497:30:0;;;11511:15;;11497:30;;11472:55;:83;;;;-1:-1:-1;;;;;;11533:22:0;;;;;;:18;:22;;;;;;;;11531:24;11472:83;11468:321;;;11595:12;;11585:6;:22;;11577:60;;;;-1:-1:-1;;;11577:60:0;;14837:2:1;11577:60:0;;;14819:21:1;14876:2;14856:18;;;14849:30;14915:27;14895:18;;;14888:55;14960:18;;11577:60:0;14635:349:1;11577:60:0;11690:14;;11680:6;11664:13;11674:2;-1:-1:-1;;;;;9035:18:0;9008:7;9035:18;;;:9;:18;;;;;;;8942:119;11664:13;:22;;;;:::i;:::-;:40;;11656:79;;;;-1:-1:-1;;;11656:79:0;;15321:2:1;11656:79:0;;;15303:21:1;15360:2;15340:18;;;15333:30;15399:28;15379:18;;;15372:56;15445:18;;11656:79:0;15119:350:1;11656:79:0;11754:17;:19;;;:17;:19;;;:::i;:::-;;;;;;11468:321;11814:13;;-1:-1:-1;;;;;11808:19:0;;;11814:13;;11808:19;:43;;;;-1:-1:-1;;;;;;11831:20:0;;11846:4;11831:20;;11808:43;11805:177;;;11884:82;11962:3;11884:73;11914:17;;11896;;:35;11895:61;;11942:14;;11895:61;;;11933:8;;11884:6;;:10;:73::i;:82::-;11872:94;;11805:177;12047:4;11998:28;9035:18;;;:9;:18;;;;;;12073:6;;-1:-1:-1;;;12073:6:0;;;;12072:7;:32;;;;-1:-1:-1;12091:13:0;;-1:-1:-1;;;;;12083:21:0;;;12091:13;;12083:21;12072:32;:47;;;;-1:-1:-1;12108:11:0;;-1:-1:-1;;;12108:11:0;;;;12072:47;:89;;;;;12144:17;;12123:20;:38;12072:89;:132;;;;;12183:21;;12165:17;;:39;12072:132;12068:506;;;12225:67;12242:49;12246:6;12253:37;12257:20;12278:11;;12253:3;:37::i;:::-;12242:3;:49::i;:::-;12225:16;:67::i;:::-;12340:21;12383:22;;12380:179;;12415:63;12436:41;12472:4;12436:31;:21;12462:4;12436:25;:31::i;:41::-;12415:20;:63::i;:::-;12501:36;12515:21;12501:13;:36::i;:::-;12206:368;12068:506;11345:1240;11307:1278;12600:11;;12597:161;;12668:4;12650:24;;;;:9;:24;;;;;;:39;;12679:9;12650:28;:39::i;:::-;12643:4;12625:24;;;;:9;:24;;;;;;;:64;;;;12707:39;;-1:-1:-1;;;;;12707:39:0;;;;;;;12736:9;1361:25:1;;1349:2;1334:18;;1215:177;12707:39:0;;;;;;;;12597:161;-1:-1:-1;;;;;12784:15:0;;;;;;:9;:15;;;;;;:27;;12804:6;12784:19;:27::i;:::-;-1:-1:-1;;;;;12768:15:0;;;;;;:9;:15;;;;;:43;12836:40;12854:21;:6;12865:9;12854:10;:21::i;:::-;-1:-1:-1;;;;;12836:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;12822:13:0;;;;;;;:9;:13;;;;;:54;;;;12892:41;;;12911:21;:6;12922:9;12911:10;:21::i;:::-;12892:41;;1361:25:1;;;1349:2;1334:18;12892:41:0;;;;;;;11037:1904;10968:1973;;;:::o;3444:190::-;3530:7;3566:12;3558:6;;;;3550:29;;;;-1:-1:-1;;;3550:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3590:9:0;3602:5;3606:1;3602;:5;:::i;:::-;3590:17;3444:190;-1:-1:-1;;;;;3444:190:0:o;10233:483::-;5228:6;:13;;-1:-1:-1;;;;5228:13:0;-1:-1:-1;;;5228:13:0;;;10335:16:::1;::::0;;10349:1:::1;10335:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10335:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10335:16:0::1;10311:40;;10380:4;10362;10367:1;10362:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10362:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10406:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10406:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10362:7;;10406:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10396:4;10401:1;10396:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10396:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10471:15:::1;::::0;10439:62:::1;::::0;10456:4:::1;::::0;10471:15:::1;10489:11:::0;10439:8:::1;:62::i;:::-;10512:15;::::0;:196:::1;::::0;-1:-1:-1;;;10512:196:0;;-1:-1:-1;;;;;10512:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10593:11;;10512:15:::1;::::0;10635:4;;10662::::1;::::0;10682:15:::1;::::0;10512:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5264:6:0;:14;;-1:-1:-1;;;;5264:14:0;;;-1:-1:-1;;;;10233:483:0:o;3642:246::-;3700:7;3724:1;3729;3724:6;3720:47;;-1:-1:-1;3754:1:0;3747:8;;3720:47;3777:9;3789:5;3793:1;3789;:5;:::i;:::-;3777:17;-1:-1:-1;3822:1:0;3813:5;3817:1;3777:17;3813:5;:::i;:::-;:10;3805:56;;;;-1:-1:-1;;;3805:56:0;;17066:2:1;3805:56:0;;;17048:21:1;17105:2;17085:18;;;17078:30;17144:34;17124:18;;;17117:62;-1:-1:-1;;;17195:18:1;;;17188:31;17236:19;;3805:56:0;16864:397:1;3805:56:0;3879:1;3642:246;-1:-1:-1;;;3642:246:0:o;3896:132::-;3954:7;3981:39;3985:1;3988;3981:39;;;;;;;;;;;;;;;;;:3;:39::i;12949:98::-;13006:7;13033:1;13031;:3;13030:9;;13038:1;13030:9;;;-1:-1:-1;13036:1:0;12949:98;-1:-1:-1;12949:98:0:o;10721:100::-;10786:10;;:27;;-1:-1:-1;;;;;10786:10:0;;;;:27;;;;;10806:6;;10786:10;:27;:10;:27;10806:6;10786:10;:27;;;;;;;;;;;;;;;;;;;3113:179;3171:7;;3203:5;3207:1;3203;:5;:::i;:::-;3191:17;;3232:1;3227;:6;;3219:46;;;;-1:-1:-1;;;3219:46:0;;17468:2:1;3219:46:0;;;17450:21:1;17507:2;17487:18;;;17480:30;17546:29;17526:18;;;17519:57;17593:18;;3219:46:0;17266:351:1;3300:136:0;3358:7;3385:43;3389:1;3392;3385:43;;;;;;;;;;;;;;;;;:3;:43::i;4036:189::-;4122:7;4157:12;4150:5;4142:28;;;;-1:-1:-1;;;4142:28:0;;;;;;;;:::i;:::-;-1:-1:-1;4181:9:0;4193:5;4197:1;4193;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:348::-;2099:8;2109:6;2163:3;2156:4;2148:6;2144:17;2140:27;2130:55;;2181:1;2178;2171:12;2130:55;-1:-1:-1;2204:20:1;;2247:18;2236:30;;2233:50;;;2279:1;2276;2269:12;2233:50;2316:4;2308:6;2304:17;2292:29;;2368:3;2361:4;2352:6;2344;2340:19;2336:30;2333:39;2330:59;;;2385:1;2382;2375:12;2330:59;2047:348;;;;;:::o;2400:1010::-;2513:6;2521;2529;2537;2545;2553;2606:2;2594:9;2585:7;2581:23;2577:32;2574:52;;;2622:1;2619;2612:12;2574:52;2662:9;2649:23;2691:18;2732:2;2724:6;2721:14;2718:34;;;2748:1;2745;2738:12;2718:34;2787:59;2838:7;2829:6;2818:9;2814:22;2787:59;:::i;:::-;2865:8;;-1:-1:-1;2761:85:1;-1:-1:-1;2953:2:1;2938:18;;2925:32;;-1:-1:-1;2969:16:1;;;2966:36;;;2998:1;2995;2988:12;2966:36;3037:61;3090:7;3079:8;3068:9;3064:24;3037:61;:::i;:::-;3117:8;;-1:-1:-1;3011:87:1;-1:-1:-1;3205:2:1;3190:18;;3177:32;;-1:-1:-1;3221:16:1;;;3218:36;;;3250:1;3247;3240:12;3218:36;;3289:61;3342:7;3331:8;3320:9;3316:24;3289:61;:::i;:::-;2400:1010;;;;-1:-1:-1;2400:1010:1;;-1:-1:-1;2400:1010:1;;3369:8;;2400:1010;-1:-1:-1;;;2400:1010:1:o;3415:247::-;3474:6;3527:2;3515:9;3506:7;3502:23;3498:32;3495:52;;;3543:1;3540;3533:12;3495:52;3582:9;3569:23;3601:31;3626:5;3601:31;:::i;3667:180::-;3726:6;3779:2;3767:9;3758:7;3754:23;3750:32;3747:52;;;3795:1;3792;3785:12;3747:52;-1:-1:-1;3818:23:1;;3667:180;-1:-1:-1;3667:180:1:o;4060:388::-;4128:6;4136;4189:2;4177:9;4168:7;4164:23;4160:32;4157:52;;;4205:1;4202;4195:12;4157:52;4244:9;4231:23;4263:31;4288:5;4263:31;:::i;:::-;4313:5;-1:-1:-1;4370:2:1;4355:18;;4342:32;4383:33;4342:32;4383:33;:::i;:::-;4435:7;4425:17;;;4060:388;;;;;:::o;4453:127::-;4514:10;4509:3;4505:20;4502:1;4495:31;4545:4;4542:1;4535:15;4569:4;4566:1;4559:15;4585:416;4674:1;4711:5;4674:1;4725:270;4746:7;4736:8;4733:21;4725:270;;;4805:4;4801:1;4797:6;4793:17;4787:4;4784:27;4781:53;;;4814:18;;:::i;:::-;4864:7;4854:8;4850:22;4847:55;;;4884:16;;;;4847:55;4963:22;;;;4923:15;;;;4725:270;;;4729:3;4585:416;;;;;:::o;5006:806::-;5055:5;5085:8;5075:80;;-1:-1:-1;5126:1:1;5140:5;;5075:80;5174:4;5164:76;;-1:-1:-1;5211:1:1;5225:5;;5164:76;5256:4;5274:1;5269:59;;;;5342:1;5337:130;;;;5249:218;;5269:59;5299:1;5290:10;;5313:5;;;5337:130;5374:3;5364:8;5361:17;5358:43;;;5381:18;;:::i;:::-;-1:-1:-1;;5437:1:1;5423:16;;5452:5;;5249:218;;5551:2;5541:8;5538:16;5532:3;5526:4;5523:13;5519:36;5513:2;5503:8;5500:16;5495:2;5489:4;5486:12;5482:35;5479:77;5476:159;;;-1:-1:-1;5588:19:1;;;5620:5;;5476:159;5667:34;5692:8;5686:4;5667:34;:::i;:::-;5737:6;5733:1;5729:6;5725:19;5716:7;5713:32;5710:58;;;5748:18;;:::i;:::-;5786:20;;5006:806;-1:-1:-1;;;5006:806:1:o;5817:140::-;5875:5;5904:47;5945:4;5935:8;5931:19;5925:4;5904:47;:::i;5962:168::-;6035:9;;;6066;;6083:15;;;6077:22;;6063:37;6053:71;;6104:18;;:::i;6135:356::-;6337:2;6319:21;;;6356:18;;;6349:30;6415:34;6410:2;6395:18;;6388:62;6482:2;6467:18;;6135:356::o;6496:127::-;6557:10;6552:3;6548:20;6545:1;6538:31;6588:4;6585:1;6578:15;6612:4;6609:1;6602:15;6628:380;6707:1;6703:12;;;;6750;;;6771:61;;6825:4;6817:6;6813:17;6803:27;;6771:61;6878:2;6870:6;6867:14;6847:18;6844:38;6841:161;;6924:10;6919:3;6915:20;6912:1;6905:31;6959:4;6956:1;6949:15;6987:4;6984:1;6977:15;7139:518;7241:2;7236:3;7233:11;7230:421;;;7277:5;7274:1;7267:16;7321:4;7318:1;7308:18;7391:2;7379:10;7375:19;7372:1;7368:27;7362:4;7358:38;7427:4;7415:10;7412:20;7409:47;;;-1:-1:-1;7450:4:1;7409:47;7505:2;7500:3;7496:12;7493:1;7489:20;7483:4;7479:31;7469:41;;7560:81;7578:2;7571:5;7568:13;7560:81;;;7637:1;7623:16;;7604:1;7593:13;7560:81;;;7564:3;;7230:421;7139:518;;;:::o;7833:1198::-;7957:18;7952:3;7949:27;7946:53;;;7979:18;;:::i;:::-;8008:94;8098:3;8058:38;8090:4;8084:11;8058:38;:::i;:::-;8052:4;8008:94;:::i;:::-;8128:1;8153:2;8148:3;8145:11;8170:1;8165:608;;;;8817:1;8834:3;8831:93;;;-1:-1:-1;8890:19:1;;;8877:33;8831:93;-1:-1:-1;;7790:1:1;7786:11;;;7782:24;7778:29;7768:40;7814:1;7810:11;;;7765:57;8937:78;;8138:887;;8165:608;7086:1;7079:14;;;7123:4;7110:18;;-1:-1:-1;;8201:17:1;;;8316:229;8330:7;8327:1;8324:14;8316:229;;;8419:19;;;8406:33;8391:49;;8526:4;8511:20;;;;8479:1;8467:14;;;;8346:12;8316:229;;;8320:3;8573;8564:7;8561:16;8558:159;;;8697:1;8693:6;8687:3;8681;8678:1;8674:11;8670:21;8666:34;8662:39;8649:9;8644:3;8640:19;8627:33;8623:79;8615:6;8608:95;8558:159;;;8760:1;8754:3;8751:1;8747:11;8743:19;8737:4;8730:33;8138:887;;7833:1198;;;:::o;9036:217::-;9076:1;9102;9092:132;;9146:10;9141:3;9137:20;9134:1;9127:31;9181:4;9178:1;9171:15;9209:4;9206:1;9199:15;9092:132;-1:-1:-1;9238:9:1;;9036:217::o;9662:251::-;9732:6;9785:2;9773:9;9764:7;9760:23;9756:32;9753:52;;;9801:1;9798;9791:12;9753:52;9833:9;9827:16;9852:31;9877:5;9852:31;:::i;10506:277::-;10573:6;10626:2;10614:9;10605:7;10601:23;10597:32;10594:52;;;10642:1;10639;10632:12;10594:52;10674:9;10668:16;10727:5;10720:13;10713:21;10706:5;10703:32;10693:60;;10749:1;10746;10739:12;10788:184;10858:6;10911:2;10899:9;10890:7;10886:23;10882:32;10879:52;;;10927:1;10924;10917:12;10879:52;-1:-1:-1;10950:16:1;;10788:184;-1:-1:-1;10788:184:1:o;12296:306::-;12384:6;12392;12400;12453:2;12441:9;12432:7;12428:23;12424:32;12421:52;;;12469:1;12466;12459:12;12421:52;12498:9;12492:16;12482:26;;12548:2;12537:9;12533:18;12527:25;12517:35;;12592:2;12581:9;12577:18;12571:25;12561:35;;12296:306;;;;;:::o;14989:125::-;15054:9;;;15075:10;;;15072:36;;;15088:18;;:::i;15474:135::-;15513:3;15534:17;;;15531:43;;15554:18;;:::i;:::-;-1:-1:-1;15601:1:1;15590:13;;15474:135::o;15614:128::-;15681:9;;;15702:11;;;15699:37;;;15716:18;;:::i;15747:127::-;15808:10;15803:3;15799:20;15796:1;15789:31;15839:4;15836:1;15829:15;15863:4;15860:1;15853:15;15879:980;16141:4;16189:3;16178:9;16174:19;16220:6;16209:9;16202:25;16246:2;16284:6;16279:2;16268:9;16264:18;16257:34;16327:3;16322:2;16311:9;16307:18;16300:31;16351:6;16386;16380:13;16417:6;16409;16402:22;16455:3;16444:9;16440:19;16433:26;;16494:2;16486:6;16482:15;16468:29;;16515:1;16525:195;16539:6;16536:1;16533:13;16525:195;;;16604:13;;-1:-1:-1;;;;;16600:39:1;16588:52;;16695:15;;;;16660:12;;;;16636:1;16554:9;16525:195;;;-1:-1:-1;;;;;;;16776:32:1;;;;16771:2;16756:18;;16749:60;-1:-1:-1;;;16840:3:1;16825:19;16818:35;16737:3;15879:980;-1:-1:-1;;;15879:980:1:o

Swarm Source

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