ETH Price: $2,392.97 (-0.23%)

Token

Blue Ice Dragon (BID)
 

Overview

Max Total Supply

100,000,000 BID

Holders

53

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.652130711 BID

Value
$0.00
0x57bb06f5e3833ff0689236352c38bbabe97862ac
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:
DRAGONICEBLUE20ERC

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: UNLICENSED

pragma solidity 0.8.15;

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 ERC20 {
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

abstract contract Auth {
    address internal owner;
    address internal potentialOwner;
    mapping (address => bool) internal authorizations;

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
        emit Authorize_Wallet(adr,true);
    }

    function unauthorize(address adr) external onlyOwner {
        require(adr != owner, "OWNER cant be unauthorized");
        authorizations[adr] = false;
        emit Authorize_Wallet(adr,false);
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    function transferOwnership(address payable adr) external onlyOwner {
        require(adr != owner, "Already the owner");
        require(adr != address(0), "Can not be zero address.");
        potentialOwner = adr;
        emit OwnershipNominated(adr);
    }

    function renounceOwnership() external onlyOwner {
        authorizations[owner] = false;
        owner = address(0);
    }

    function acceptOwnership() external {
        require(msg.sender == potentialOwner, "You must be nominated as potential owner before you can accept the role.");
        authorizations[owner] = false;
        authorizations[potentialOwner] = true;

        emit Authorize_Wallet(owner,false);
        emit Authorize_Wallet(potentialOwner,true);
        
        owner = potentialOwner;
        potentialOwner = address(0);
        emit OwnershipTransferred(owner);
    }

    event OwnershipTransferred(address owner);
    event OwnershipNominated(address potentialOwner);
    event Authorize_Wallet(address Wallet, bool Status);
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract DRAGONICEBLUE20ERC is ERC20, Auth {
    using SafeMath for uint256;

    address immutable WETH;
    address constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address constant ZERO = 0x0000000000000000000000000000000000000000;

    string public constant name = "Blue Ice Dragon";
    string public constant symbol = "BID";
    uint8 public constant decimals = 9;

    uint256 public constant totalSupply = 100 * 10**6 * 10**decimals;

    uint256 public _maxTxAmount = totalSupply / 100;
    uint256 public _maxWalletToken = totalSupply / 50;

    mapping (address => uint256) public balanceOf;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isBot;
    mapping (address => bool) public isTxLimitExempt;
    mapping (address => bool) public isWalletLimitExempt;

    uint256 public totalFee = 5;
    uint256 public constant feeDenominator = 100;
    
    uint256 buyMultiplier = 400;
    uint256 sellMultiplier = 400;
    uint256 transferMultiplier = 1990;

    address public marketingFeeReceiver;

    IDEXRouter public router;
    address public immutable pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold = totalSupply / 2000;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();

        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        marketingFeeReceiver = 0xc8D80fb73199501dCE6e4Cb1795Ce83527A100E0;

        isFeeExempt[msg.sender] = true;

        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[DEAD] = true;
        isTxLimitExempt[ZERO] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[DEAD] = true;

        balanceOf[msg.sender] = totalSupply;
        emit Transfer(address(0), msg.sender, totalSupply);
    }

    receive() external payable { }

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function setMaxWalletPercent_base1000(uint256 maxWallPercent_base1000) external onlyOwner {
        require(maxWallPercent_base1000 >= 10,"Cannot set max wallet less than 1%");
        _maxWalletToken = (totalSupply * maxWallPercent_base1000 ) / 1000;
    }

    function setMaxTxPercent_base1000(uint256 maxTXPercentage_base1000) external onlyOwner {
        require(maxTXPercentage_base1000 >= 10,"Cannot set max transaction less than 1%");
        _maxTxAmount = (totalSupply * maxTXPercentage_base1000 ) / 1000;
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        require(!isBot[sender],"Bot");

        if (!authorizations[sender] && !isWalletLimitExempt[sender] && !isWalletLimitExempt[recipient] && recipient != pair) {
            require((balanceOf[recipient] + amount) <= _maxWalletToken,"max wallet limit reached");
        }
    
        require((amount <= _maxTxAmount) || isTxLimitExempt[sender] || isTxLimitExempt[recipient], "Max TX Limit Exceeded");

        if(shouldSwapBack()){ swapBack(); }

        balanceOf[sender] = balanceOf[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount, recipient);

        balanceOf[recipient] = balanceOf[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        balanceOf[sender] = balanceOf[sender].sub(amount, "Insufficient Balance");
        balanceOf[recipient] = balanceOf[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        if(amount == 0 || totalFee == 0){
            return amount;
        }

        uint256 multiplier = transferMultiplier;

        if(recipient == pair) {
            multiplier = sellMultiplier;
        } else if(sender == pair) {
            multiplier = buyMultiplier;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);

        if(feeAmount > 0){
            balanceOf[address(this)] = balanceOf[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && balanceOf[address(this)] >= swapThreshold;
    }

    function clearStuckBalance(uint256 amountPercentage) external onlyOwner {
        uint256 amountETH = address(this).balance;
        uint256 amountToClear = ( amountETH * amountPercentage ) / 100;
        payable(msg.sender).transfer(amountToClear);
    }

    function clearStuckToken(address tokenAddress, uint256 tokens) external onlyOwner returns (bool success) {
        if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }

        return ERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    function swapBack() internal swapping {

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            swapThreshold,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance;

        payable(marketingFeeReceiver).transfer(amountETH);
    }

    function manage_FeeExempt(address[] calldata addresses, bool status) external authorized {
        require(addresses.length < 501,"GAS Error: max limit is 500 addresses");
        for (uint256 i=0; i < addresses.length; ++i) {
            isFeeExempt[addresses[i]] = status;
        }
    }

    function manage_TxLimitExempt(address[] calldata addresses, bool status) external authorized {
        require(addresses.length < 501,"GAS Error: max limit is 500 addresses");
        for (uint256 i=0; i < addresses.length; ++i) {
            isTxLimitExempt[addresses[i]] = status;
        }
    }

    function manage_WalletLimitExempt(address[] calldata addresses, bool status) external authorized {
        require(addresses.length < 501,"GAS Error: max limit is 500 addresses");
        for (uint256 i=0; i < addresses.length; ++i) {
            isWalletLimitExempt[addresses[i]] = status;
        }
    }

    function manage_Bots(address[] calldata addresses, bool status) external authorized {
        require(addresses.length < 501,"GAS Error: max limit is 500 addresses");
        for (uint256 i=0; i < addresses.length; ++i) {
            isBot[addresses[i]] = status;
        }
    }

    function setMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) external authorized {
        sellMultiplier = _sell;
        buyMultiplier = _buy;
        transferMultiplier = _trans;
    }

    function setFees_base100(uint256 _totalFee) external onlyOwner {
        totalFee = _totalFee;
    }

    function setFeeReceivers(address _marketingFeeReceiver) external onlyOwner {
        marketingFeeReceiver = _marketingFeeReceiver;
    }

    function setSwapBackSettings(bool _enabled, uint256 _denominator) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = totalSupply / _denominator;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return (totalSupply - balanceOf[DEAD] - balanceOf[ZERO]);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"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":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"Authorize_Wallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"potentialOwner","type":"address"}],"name":"OwnershipNominated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_Bots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_FeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_TxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_WalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_totalFee","type":"uint256"}],"name":"setFees_base100","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercentage_base1000","type":"uint256"}],"name":"setMaxTxPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base1000","type":"uint256"}],"name":"setMaxWalletPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526064620000146009600a62000523565b62000024906305f5e1006200053b565b6200003091906200055d565b6003556032620000436009600a62000523565b62000053906305f5e1006200053b565b6200005f91906200055d565b6004556005600b55610190600c819055600d556107c6600e556010805460ff60a01b1916600160a01b1790556107d06200009c6009600a62000523565b620000ac906305f5e1006200053b565b620000b891906200055d565b601155348015620000c857600080fd5b5060008054336001600160a01b031991821681178355825260026020908152604092839020805460ff1916600117905560108054737a250d5630b4cf539739df2c5dacb4c659f2488d93168317905582516315ab88c960e31b81529251919263ad5c464892600480830193928290030181865afa1580156200014e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000174919062000580565b6001600160a01b039081166080526010546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620001c5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001eb919062000580565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af11580156200023d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000263919062000580565b6001600160a01b0390811660a05230600081815260066020908152604080832060105490951683529381528382206000199055600f80546001600160a01b03191673c8d80fb73199501dce6e4cb1795ce83527a100e017905533825260078152838220805460ff199081166001908117909255600980845286852080548316841790557f960b1051749987b45b5679007fff577a1c2f763ec21c15a6c5eb19307500378580548316841790557fec8156718a8372b1db44bb411437d0870f3e3790d4a08526d024ce1b0b668f6b8054831684179055600a938490528685208054831684179055948452948320805486168217905561dead9092527f20677881080440a9b3c87e826370bb5d9c2f74efd4dede686d52d77a6a09f8bb8054909416909117909255620003949162000523565b620003a4906305f5e1006200053b565b33600081815260056020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620003e76009600a62000523565b620003f7906305f5e1006200053b565b60405190815260200160405180910390a3620005ab565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004655781600019048211156200044957620004496200040e565b808516156200045757918102915b93841c939080029062000429565b509250929050565b6000826200047e575060016200051d565b816200048d575060006200051d565b8160018114620004a65760028114620004b157620004d1565b60019150506200051d565b60ff841115620004c557620004c56200040e565b50506001821b6200051d565b5060208310610133831016604e8410600b8410161715620004f6575081810a6200051d565b62000502838362000424565b80600019048211156200051957620005196200040e565b0290505b92915050565b60006200053460ff8416836200046d565b9392505050565b60008160001904831182151516156200055857620005586200040e565b500290565b6000826200057b57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200059357600080fd5b81516001600160a01b03811681146200053457600080fd5b60805160a0516124a6620005ed600039600081816106aa0152818161171401528181611a9d01528181611c880152611cbc01526000611b6701526124a66000f3fe6080604052600436106102695760003560e01c806377b54bad11610144578063bd9ab537116100b6578063e01bb6881161007a578063e01bb688146107e2578063e96fada214610802578063f0b37c0414610822578063f2fde38b14610842578063f887ea4014610862578063fe9fbb801461088257600080fd5b8063bd9ab5371461070c578063c33e9eba1461072c578063c867d60b1461074c578063dd62ed3e1461077c578063df20fd49146107c257600080fd5b80638b42507f116101085780638b42507f1461061957806395d89b41146106495780639660ccb814610678578063a8aa1b3114610698578063a9059cbb146106cc578063b6a5d7de146106ec57600080fd5b806377b54bad1461058657806378109e54146105a657806379ba5097146105bc5780637d1db4a5146105d1578063893d20e8146105e757600080fd5b80632b112e49116101dd5780634be9d869116101a15780634be9d869146104c3578063571ac8b0146104e35780636ce46bc3146105035780636ddd17131461052357806370a0823114610544578063715018a61461057157600080fd5b80632b112e49146103f85780632f54bf6e1461040d578063313ce5671461043c5780633bbac579146104635780633f4218e01461049357600080fd5b8063095ea7b31161022f578063095ea7b314610348578063180b0d7e1461037857806318160ddd1461038d5780631da1db5e146103a25780631df4ccfc146103c257806323b872dd146103d857600080fd5b806210868314610275578062bff446146102975780630445b667146102b757806306fdde03146102e057806309302dc61461032857600080fd5b3661027057005b600080fd5b34801561028157600080fd5b50610295610290366004611f61565b6108a2565b005b3480156102a357600080fd5b506102956102b2366004611f61565b610966565b3480156102c357600080fd5b506102cd60115481565b6040519081526020015b60405180910390f35b3480156102ec57600080fd5b5061031b6040518060400160405280600f81526020016e21363ab29024b1b290223930b3b7b760891b81525081565b6040516102d79190611fe7565b34801561033457600080fd5b5061029561034336600461203c565b610a1b565b34801561035457600080fd5b5061036861036336600461206a565b610ad9565b60405190151581526020016102d7565b34801561038457600080fd5b506102cd606481565b34801561039957600080fd5b506102cd610b46565b3480156103ae57600080fd5b506102956103bd36600461203c565b610b63565b3480156103ce57600080fd5b506102cd600b5481565b3480156103e457600080fd5b506103686103f3366004612096565b610bd6565b34801561040457600080fd5b506102cd610c98565b34801561041957600080fd5b506103686104283660046120d7565b6000546001600160a01b0391821691161490565b34801561044857600080fd5b50610451600981565b60405160ff90911681526020016102d7565b34801561046f57600080fd5b5061036861047e3660046120d7565b60086020526000908152604090205460ff1681565b34801561049f57600080fd5b506103686104ae3660046120d7565b60076020526000908152604090205460ff1681565b3480156104cf57600080fd5b506102956104de366004611f61565b610d1f565b3480156104ef57600080fd5b506103686104fe3660046120d7565b610dd4565b34801561050f57600080fd5b5061029561051e3660046120f4565b610de2565b34801561052f57600080fd5b5060105461036890600160a01b900460ff1681565b34801561055057600080fd5b506102cd61055f3660046120d7565b60056020526000908152604090205481565b34801561057d57600080fd5b50610295610e18565b34801561059257600080fd5b506103686105a136600461206a565b610e72565b3480156105b257600080fd5b506102cd60045481565b3480156105c857600080fd5b50610295610f81565b3480156105dd57600080fd5b506102cd60035481565b3480156105f357600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102d7565b34801561062557600080fd5b506103686106343660046120d7565b60096020526000908152604090205460ff1681565b34801561065557600080fd5b5061031b6040518060400160405280600381526020016210925160ea1b81525081565b34801561068457600080fd5b50610295610693366004611f61565b611109565b3480156106a457600080fd5b506106017f000000000000000000000000000000000000000000000000000000000000000081565b3480156106d857600080fd5b506103686106e736600461206a565b6111be565b3480156106f857600080fd5b506102956107073660046120d7565b6111cb565b34801561071857600080fd5b5061029561072736600461203c565b611245565b34801561073857600080fd5b5061029561074736600461203c565b611308565b34801561075857600080fd5b506103686107673660046120d7565b600a6020526000908152604090205460ff1681565b34801561078857600080fd5b506102cd610797366004612120565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156107ce57600080fd5b506102956107dd366004612159565b611337565b3480156107ee57600080fd5b506102956107fd3660046120d7565b6113a4565b34801561080e57600080fd5b50600f54610601906001600160a01b031681565b34801561082e57600080fd5b5061029561083d3660046120d7565b6113f0565b34801561084e57600080fd5b5061029561085d3660046120d7565b6114bd565b34801561086e57600080fd5b50601054610601906001600160a01b031681565b34801561088e57600080fd5b5061036861089d3660046120d7565b6115dd565b6108ab336115dd565b6108d05760405162461bcd60e51b81526004016108c790612177565b60405180910390fd5b6101f582106108f15760405162461bcd60e51b81526004016108c79061219c565b60005b828110156109605781600a6000868685818110610913576109136121e1565b905060200201602081019061092891906120d7565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556109598161220d565b90506108f4565b50505050565b61096f336115dd565b61098b5760405162461bcd60e51b81526004016108c790612177565b6101f582106109ac5760405162461bcd60e51b81526004016108c79061219c565b60005b828110156109605781600760008686858181106109ce576109ce6121e1565b90506020020160208101906109e391906120d7565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610a148161220d565b90506109af565b6000546001600160a01b03163314610a455760405162461bcd60e51b81526004016108c790612226565b600a811015610aa15760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015261312560f01b60648201526084016108c7565b6103e881610ab16009600a61232a565b610abf906305f5e100612339565b610ac99190612339565b610ad39190612358565b60045550565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b349086815260200190565b60405180910390a35060015b92915050565b610b526009600a61232a565b610b60906305f5e100612339565b81565b6000546001600160a01b03163314610b8d5760405162461bcd60e51b81526004016108c790612226565b4760006064610b9c8484612339565b610ba69190612358565b604051909150339082156108fc029083906000818181858888f19350505050158015610960573d6000803e3d6000fd5b6001600160a01b038316600090815260066020908152604080832033845290915281205460001914610c83576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600682528381203382529091529190912054610c5e9184906115fb565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b610c8e848484611635565b90505b9392505050565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5461dead60009081527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba54909190610cf86009600a61232a565b610d06906305f5e100612339565b610d10919061237a565b610d1a919061237a565b905090565b610d28336115dd565b610d445760405162461bcd60e51b81526004016108c790612177565b6101f58210610d655760405162461bcd60e51b81526004016108c79061219c565b60005b82811015610960578160096000868685818110610d8757610d876121e1565b9050602002016020810190610d9c91906120d7565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610dcd8161220d565b9050610d68565b6000610b4082600019610ad9565b610deb336115dd565b610e075760405162461bcd60e51b81526004016108c790612177565b600d91909155600c91909155600e55565b6000546001600160a01b03163314610e425760405162461bcd60e51b81526004016108c790612226565b600080546001600160a01b03168152600260205260408120805460ff1916905580546001600160a01b0319169055565b600080546001600160a01b03163314610e9d5760405162461bcd60e51b81526004016108c790612226565b81600003610f10576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610ee9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0d9190612391565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610f5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9191906123aa565b6001546001600160a01b031633146110125760405162461bcd60e51b815260206004820152604860248201527f596f75206d757374206265206e6f6d696e6174656420617320706f74656e746960448201527f616c206f776e6572206265666f726520796f752063616e2061636365707420746064820152673432903937b6329760c11b608482015260a4016108c7565b600080546001600160a01b039081168252600260209081526040808420805460ff1990811690915560018054851686528286208054909216179055835481519316835290820192909252600080516020612451833981519152910160405180910390a160018054604080516001600160a01b0390921682526020820192909252600080516020612451833981519152910160405180910390a160018054600080546001600160a01b0383166001600160a01b031991821681179092559091169091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b611112336115dd565b61112e5760405162461bcd60e51b81526004016108c790612177565b6101f5821061114f5760405162461bcd60e51b81526004016108c79061219c565b60005b82811015610960578160086000868685818110611171576111716121e1565b905060200201602081019061118691906120d7565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556111b78161220d565b9050611152565b6000610c91338484611635565b6000546001600160a01b031633146111f55760405162461bcd60e51b81526004016108c790612226565b6001600160a01b038116600081815260026020908152604091829020805460ff1916600190811790915582519384529083015260008051602061245183398151915291015b60405180910390a150565b6000546001600160a01b0316331461126f5760405162461bcd60e51b81526004016108c790612226565b600a8110156112d05760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c657373206044820152667468616e20312560c81b60648201526084016108c7565b6103e8816112e06009600a61232a565b6112ee906305f5e100612339565b6112f89190612339565b6113029190612358565b60035550565b6000546001600160a01b031633146113325760405162461bcd60e51b81526004016108c790612226565b600b55565b6000546001600160a01b031633146113615760405162461bcd60e51b81526004016108c790612226565b6010805460ff60a01b1916600160a01b84151502179055806113856009600a61232a565b611393906305f5e100612339565b61139d9190612358565b6011555050565b6000546001600160a01b031633146113ce5760405162461bcd60e51b81526004016108c790612226565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461141a5760405162461bcd60e51b81526004016108c790612226565b6000546001600160a01b03908116908216036114785760405162461bcd60e51b815260206004820152601a60248201527f4f574e45522063616e7420626520756e617574686f72697a656400000000000060448201526064016108c7565b6001600160a01b0381166000818152600260209081526040808320805460ff19169055805193845290830191909152600080516020612451833981519152910161123a565b6000546001600160a01b031633146114e75760405162461bcd60e51b81526004016108c790612226565b6000546001600160a01b03908116908216036115395760405162461bcd60e51b815260206004820152601160248201527020b63932b0b23c903a34329037bbb732b960791b60448201526064016108c7565b6001600160a01b03811661158f5760405162461bcd60e51b815260206004820152601860248201527f43616e206e6f74206265207a65726f20616464726573732e000000000000000060448201526064016108c7565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527fe235b3289f2e990914b334bf6827949c27f6ba58d3e5a1d6f8415037ca1ef2229060200161123a565b6001600160a01b031660009081526002602052604090205460ff1690565b6000818484111561161f5760405162461bcd60e51b81526004016108c79190611fe7565b50600061162c848661237a565b95945050505050565b60125460009060ff16156116555761164e8484846119aa565b9050610c91565b6001600160a01b03841660009081526008602052604090205460ff16156116a45760405162461bcd60e51b8152602060048201526003602482015262109bdd60ea1b60448201526064016108c7565b6001600160a01b03841660009081526002602052604090205460ff161580156116e657506001600160a01b0384166000908152600a602052604090205460ff16155b801561170b57506001600160a01b0383166000908152600a602052604090205460ff16155b801561174957507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b156117c3576004546001600160a01b0384166000908152600560205260409020546117759084906123c7565b11156117c35760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d69742072656163686564000000000000000060448201526064016108c7565b600354821115806117ec57506001600160a01b03841660009081526009602052604090205460ff165b8061180f57506001600160a01b03831660009081526009602052604090205460ff165b6118535760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b60448201526064016108c7565b61185b611a90565b1561186857611868611b03565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600590915291909120546118ba9184906115fb565b6001600160a01b038516600090815260056020908152604080832093909355600790529081205460ff168061190757506001600160a01b03841660009081526007602052604090205460ff165b61191b57611916858486611c60565b61191d565b825b6001600160a01b0385166000908152600560205260409020549091506119439082611dbd565b6001600160a01b0380861660008181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119979085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526005909152918220546119fb9184906115fb565b6001600160a01b038086166000908152600560205260408082209390935590851681522054611a2a9083611dbd565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a7e9086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590611ace575060125460ff16155b8015611ae35750601054600160a01b900460ff165b8015610d1a57505060115430600090815260056020526040902054101590565b6012805460ff191660011790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611b4557611b456121e1565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110611b9957611b996121e1565b6001600160a01b03928316602091820292909201015260105460115460405163791ac94760e01b8152919092169163791ac94791611be391906000908690309042906004016123df565b600060405180830381600087803b158015611bfd57600080fd5b505af1158015611c11573d6000803e3d6000fd5b5050600f546040514793506001600160a01b03909116915082156108fc029083906000818181858888f19350505050158015611c51573d6000803e3d6000fd5b50506012805460ff1916905550565b6000821580611c6f5750600b54155b15611c7b575081610c91565b600e546001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811690841603611cba5750600d54611cf8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031603611cf85750600c545b6000611d2d611d08606480612339565b611d2784611d21600b548a611e1c90919063ffffffff16565b90611e1c565b90611e9e565b90508015611da95730600090815260056020526040902054611d4f9082611dbd565b30600081815260056020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611da09085815260200190565b60405180910390a35b611db38582611ee0565b9695505050505050565b600080611dca83856123c7565b905083811015610c915760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108c7565b600082600003611e2e57506000610b40565b6000611e3a8385612339565b905082611e478583612358565b14610c915760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108c7565b6000610c9183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f22565b6000610c9183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115fb565b60008183611f435760405162461bcd60e51b81526004016108c79190611fe7565b50600061162c8486612358565b8015158114611f5e57600080fd5b50565b600080600060408486031215611f7657600080fd5b833567ffffffffffffffff80821115611f8e57600080fd5b818601915086601f830112611fa257600080fd5b813581811115611fb157600080fd5b8760208260051b8501011115611fc657600080fd5b60209283019550935050840135611fdc81611f50565b809150509250925092565b600060208083528351808285015260005b8181101561201457858101830151858201604001528201611ff8565b81811115612026576000604083870101525b50601f01601f1916929092016040019392505050565b60006020828403121561204e57600080fd5b5035919050565b6001600160a01b0381168114611f5e57600080fd5b6000806040838503121561207d57600080fd5b823561208881612055565b946020939093013593505050565b6000806000606084860312156120ab57600080fd5b83356120b681612055565b925060208401356120c681612055565b929592945050506040919091013590565b6000602082840312156120e957600080fd5b8135610c9181612055565b60008060006060848603121561210957600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561213357600080fd5b823561213e81612055565b9150602083013561214e81612055565b809150509250929050565b6000806040838503121561216c57600080fd5b823561208881611f50565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526025908201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604082015264657373657360d81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161221f5761221f6121f7565b5060010190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600181815b80851115612281578160001904821115612267576122676121f7565b8085161561227457918102915b93841c939080029061224b565b509250929050565b60008261229857506001610b40565b816122a557506000610b40565b81600181146122bb57600281146122c5576122e1565b6001915050610b40565b60ff8411156122d6576122d66121f7565b50506001821b610b40565b5060208310610133831016604e8410600b8410161715612304575081810a610b40565b61230e8383612246565b8060001904821115612322576123226121f7565b029392505050565b6000610c9160ff841683612289565b6000816000190483118215151615612353576123536121f7565b500290565b60008261237557634e487b7160e01b600052601260045260246000fd5b500490565b60008282101561238c5761238c6121f7565b500390565b6000602082840312156123a357600080fd5b5051919050565b6000602082840312156123bc57600080fd5b8151610c9181611f50565b600082198211156123da576123da6121f7565b500190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561242f5784516001600160a01b03168352938301939183019160010161240a565b50506001600160a01b0396909616606085015250505060800152939250505056feb6a1709218b158ea8591fc9269b88652f1c908dc68a79faa865c745a770b9505a2646970667358221220931a60ee6a46b87e46787a5a14ef8b4bfae3420d3999561e232cc83aee216f8764736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106102695760003560e01c806377b54bad11610144578063bd9ab537116100b6578063e01bb6881161007a578063e01bb688146107e2578063e96fada214610802578063f0b37c0414610822578063f2fde38b14610842578063f887ea4014610862578063fe9fbb801461088257600080fd5b8063bd9ab5371461070c578063c33e9eba1461072c578063c867d60b1461074c578063dd62ed3e1461077c578063df20fd49146107c257600080fd5b80638b42507f116101085780638b42507f1461061957806395d89b41146106495780639660ccb814610678578063a8aa1b3114610698578063a9059cbb146106cc578063b6a5d7de146106ec57600080fd5b806377b54bad1461058657806378109e54146105a657806379ba5097146105bc5780637d1db4a5146105d1578063893d20e8146105e757600080fd5b80632b112e49116101dd5780634be9d869116101a15780634be9d869146104c3578063571ac8b0146104e35780636ce46bc3146105035780636ddd17131461052357806370a0823114610544578063715018a61461057157600080fd5b80632b112e49146103f85780632f54bf6e1461040d578063313ce5671461043c5780633bbac579146104635780633f4218e01461049357600080fd5b8063095ea7b31161022f578063095ea7b314610348578063180b0d7e1461037857806318160ddd1461038d5780631da1db5e146103a25780631df4ccfc146103c257806323b872dd146103d857600080fd5b806210868314610275578062bff446146102975780630445b667146102b757806306fdde03146102e057806309302dc61461032857600080fd5b3661027057005b600080fd5b34801561028157600080fd5b50610295610290366004611f61565b6108a2565b005b3480156102a357600080fd5b506102956102b2366004611f61565b610966565b3480156102c357600080fd5b506102cd60115481565b6040519081526020015b60405180910390f35b3480156102ec57600080fd5b5061031b6040518060400160405280600f81526020016e21363ab29024b1b290223930b3b7b760891b81525081565b6040516102d79190611fe7565b34801561033457600080fd5b5061029561034336600461203c565b610a1b565b34801561035457600080fd5b5061036861036336600461206a565b610ad9565b60405190151581526020016102d7565b34801561038457600080fd5b506102cd606481565b34801561039957600080fd5b506102cd610b46565b3480156103ae57600080fd5b506102956103bd36600461203c565b610b63565b3480156103ce57600080fd5b506102cd600b5481565b3480156103e457600080fd5b506103686103f3366004612096565b610bd6565b34801561040457600080fd5b506102cd610c98565b34801561041957600080fd5b506103686104283660046120d7565b6000546001600160a01b0391821691161490565b34801561044857600080fd5b50610451600981565b60405160ff90911681526020016102d7565b34801561046f57600080fd5b5061036861047e3660046120d7565b60086020526000908152604090205460ff1681565b34801561049f57600080fd5b506103686104ae3660046120d7565b60076020526000908152604090205460ff1681565b3480156104cf57600080fd5b506102956104de366004611f61565b610d1f565b3480156104ef57600080fd5b506103686104fe3660046120d7565b610dd4565b34801561050f57600080fd5b5061029561051e3660046120f4565b610de2565b34801561052f57600080fd5b5060105461036890600160a01b900460ff1681565b34801561055057600080fd5b506102cd61055f3660046120d7565b60056020526000908152604090205481565b34801561057d57600080fd5b50610295610e18565b34801561059257600080fd5b506103686105a136600461206a565b610e72565b3480156105b257600080fd5b506102cd60045481565b3480156105c857600080fd5b50610295610f81565b3480156105dd57600080fd5b506102cd60035481565b3480156105f357600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102d7565b34801561062557600080fd5b506103686106343660046120d7565b60096020526000908152604090205460ff1681565b34801561065557600080fd5b5061031b6040518060400160405280600381526020016210925160ea1b81525081565b34801561068457600080fd5b50610295610693366004611f61565b611109565b3480156106a457600080fd5b506106017f000000000000000000000000421044ef30e759b6befabea346d2592f0ba81cda81565b3480156106d857600080fd5b506103686106e736600461206a565b6111be565b3480156106f857600080fd5b506102956107073660046120d7565b6111cb565b34801561071857600080fd5b5061029561072736600461203c565b611245565b34801561073857600080fd5b5061029561074736600461203c565b611308565b34801561075857600080fd5b506103686107673660046120d7565b600a6020526000908152604090205460ff1681565b34801561078857600080fd5b506102cd610797366004612120565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156107ce57600080fd5b506102956107dd366004612159565b611337565b3480156107ee57600080fd5b506102956107fd3660046120d7565b6113a4565b34801561080e57600080fd5b50600f54610601906001600160a01b031681565b34801561082e57600080fd5b5061029561083d3660046120d7565b6113f0565b34801561084e57600080fd5b5061029561085d3660046120d7565b6114bd565b34801561086e57600080fd5b50601054610601906001600160a01b031681565b34801561088e57600080fd5b5061036861089d3660046120d7565b6115dd565b6108ab336115dd565b6108d05760405162461bcd60e51b81526004016108c790612177565b60405180910390fd5b6101f582106108f15760405162461bcd60e51b81526004016108c79061219c565b60005b828110156109605781600a6000868685818110610913576109136121e1565b905060200201602081019061092891906120d7565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556109598161220d565b90506108f4565b50505050565b61096f336115dd565b61098b5760405162461bcd60e51b81526004016108c790612177565b6101f582106109ac5760405162461bcd60e51b81526004016108c79061219c565b60005b828110156109605781600760008686858181106109ce576109ce6121e1565b90506020020160208101906109e391906120d7565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610a148161220d565b90506109af565b6000546001600160a01b03163314610a455760405162461bcd60e51b81526004016108c790612226565b600a811015610aa15760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015261312560f01b60648201526084016108c7565b6103e881610ab16009600a61232a565b610abf906305f5e100612339565b610ac99190612339565b610ad39190612358565b60045550565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b349086815260200190565b60405180910390a35060015b92915050565b610b526009600a61232a565b610b60906305f5e100612339565b81565b6000546001600160a01b03163314610b8d5760405162461bcd60e51b81526004016108c790612226565b4760006064610b9c8484612339565b610ba69190612358565b604051909150339082156108fc029083906000818181858888f19350505050158015610960573d6000803e3d6000fd5b6001600160a01b038316600090815260066020908152604080832033845290915281205460001914610c83576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600682528381203382529091529190912054610c5e9184906115fb565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b610c8e848484611635565b90505b9392505050565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5461dead60009081527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba54909190610cf86009600a61232a565b610d06906305f5e100612339565b610d10919061237a565b610d1a919061237a565b905090565b610d28336115dd565b610d445760405162461bcd60e51b81526004016108c790612177565b6101f58210610d655760405162461bcd60e51b81526004016108c79061219c565b60005b82811015610960578160096000868685818110610d8757610d876121e1565b9050602002016020810190610d9c91906120d7565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610dcd8161220d565b9050610d68565b6000610b4082600019610ad9565b610deb336115dd565b610e075760405162461bcd60e51b81526004016108c790612177565b600d91909155600c91909155600e55565b6000546001600160a01b03163314610e425760405162461bcd60e51b81526004016108c790612226565b600080546001600160a01b03168152600260205260408120805460ff1916905580546001600160a01b0319169055565b600080546001600160a01b03163314610e9d5760405162461bcd60e51b81526004016108c790612226565b81600003610f10576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610ee9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0d9190612391565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610f5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9191906123aa565b6001546001600160a01b031633146110125760405162461bcd60e51b815260206004820152604860248201527f596f75206d757374206265206e6f6d696e6174656420617320706f74656e746960448201527f616c206f776e6572206265666f726520796f752063616e2061636365707420746064820152673432903937b6329760c11b608482015260a4016108c7565b600080546001600160a01b039081168252600260209081526040808420805460ff1990811690915560018054851686528286208054909216179055835481519316835290820192909252600080516020612451833981519152910160405180910390a160018054604080516001600160a01b0390921682526020820192909252600080516020612451833981519152910160405180910390a160018054600080546001600160a01b0383166001600160a01b031991821681179092559091169091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b611112336115dd565b61112e5760405162461bcd60e51b81526004016108c790612177565b6101f5821061114f5760405162461bcd60e51b81526004016108c79061219c565b60005b82811015610960578160086000868685818110611171576111716121e1565b905060200201602081019061118691906120d7565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556111b78161220d565b9050611152565b6000610c91338484611635565b6000546001600160a01b031633146111f55760405162461bcd60e51b81526004016108c790612226565b6001600160a01b038116600081815260026020908152604091829020805460ff1916600190811790915582519384529083015260008051602061245183398151915291015b60405180910390a150565b6000546001600160a01b0316331461126f5760405162461bcd60e51b81526004016108c790612226565b600a8110156112d05760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c657373206044820152667468616e20312560c81b60648201526084016108c7565b6103e8816112e06009600a61232a565b6112ee906305f5e100612339565b6112f89190612339565b6113029190612358565b60035550565b6000546001600160a01b031633146113325760405162461bcd60e51b81526004016108c790612226565b600b55565b6000546001600160a01b031633146113615760405162461bcd60e51b81526004016108c790612226565b6010805460ff60a01b1916600160a01b84151502179055806113856009600a61232a565b611393906305f5e100612339565b61139d9190612358565b6011555050565b6000546001600160a01b031633146113ce5760405162461bcd60e51b81526004016108c790612226565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461141a5760405162461bcd60e51b81526004016108c790612226565b6000546001600160a01b03908116908216036114785760405162461bcd60e51b815260206004820152601a60248201527f4f574e45522063616e7420626520756e617574686f72697a656400000000000060448201526064016108c7565b6001600160a01b0381166000818152600260209081526040808320805460ff19169055805193845290830191909152600080516020612451833981519152910161123a565b6000546001600160a01b031633146114e75760405162461bcd60e51b81526004016108c790612226565b6000546001600160a01b03908116908216036115395760405162461bcd60e51b815260206004820152601160248201527020b63932b0b23c903a34329037bbb732b960791b60448201526064016108c7565b6001600160a01b03811661158f5760405162461bcd60e51b815260206004820152601860248201527f43616e206e6f74206265207a65726f20616464726573732e000000000000000060448201526064016108c7565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527fe235b3289f2e990914b334bf6827949c27f6ba58d3e5a1d6f8415037ca1ef2229060200161123a565b6001600160a01b031660009081526002602052604090205460ff1690565b6000818484111561161f5760405162461bcd60e51b81526004016108c79190611fe7565b50600061162c848661237a565b95945050505050565b60125460009060ff16156116555761164e8484846119aa565b9050610c91565b6001600160a01b03841660009081526008602052604090205460ff16156116a45760405162461bcd60e51b8152602060048201526003602482015262109bdd60ea1b60448201526064016108c7565b6001600160a01b03841660009081526002602052604090205460ff161580156116e657506001600160a01b0384166000908152600a602052604090205460ff16155b801561170b57506001600160a01b0383166000908152600a602052604090205460ff16155b801561174957507f000000000000000000000000421044ef30e759b6befabea346d2592f0ba81cda6001600160a01b0316836001600160a01b031614155b156117c3576004546001600160a01b0384166000908152600560205260409020546117759084906123c7565b11156117c35760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d69742072656163686564000000000000000060448201526064016108c7565b600354821115806117ec57506001600160a01b03841660009081526009602052604090205460ff165b8061180f57506001600160a01b03831660009081526009602052604090205460ff165b6118535760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b60448201526064016108c7565b61185b611a90565b1561186857611868611b03565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600590915291909120546118ba9184906115fb565b6001600160a01b038516600090815260056020908152604080832093909355600790529081205460ff168061190757506001600160a01b03841660009081526007602052604090205460ff165b61191b57611916858486611c60565b61191d565b825b6001600160a01b0385166000908152600560205260409020549091506119439082611dbd565b6001600160a01b0380861660008181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119979085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526005909152918220546119fb9184906115fb565b6001600160a01b038086166000908152600560205260408082209390935590851681522054611a2a9083611dbd565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a7e9086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f000000000000000000000000421044ef30e759b6befabea346d2592f0ba81cda1614801590611ace575060125460ff16155b8015611ae35750601054600160a01b900460ff165b8015610d1a57505060115430600090815260056020526040902054101590565b6012805460ff191660011790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611b4557611b456121e1565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611b9957611b996121e1565b6001600160a01b03928316602091820292909201015260105460115460405163791ac94760e01b8152919092169163791ac94791611be391906000908690309042906004016123df565b600060405180830381600087803b158015611bfd57600080fd5b505af1158015611c11573d6000803e3d6000fd5b5050600f546040514793506001600160a01b03909116915082156108fc029083906000818181858888f19350505050158015611c51573d6000803e3d6000fd5b50506012805460ff1916905550565b6000821580611c6f5750600b54155b15611c7b575081610c91565b600e546001600160a01b037f000000000000000000000000421044ef30e759b6befabea346d2592f0ba81cda811690841603611cba5750600d54611cf8565b7f000000000000000000000000421044ef30e759b6befabea346d2592f0ba81cda6001600160a01b0316856001600160a01b031603611cf85750600c545b6000611d2d611d08606480612339565b611d2784611d21600b548a611e1c90919063ffffffff16565b90611e1c565b90611e9e565b90508015611da95730600090815260056020526040902054611d4f9082611dbd565b30600081815260056020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611da09085815260200190565b60405180910390a35b611db38582611ee0565b9695505050505050565b600080611dca83856123c7565b905083811015610c915760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108c7565b600082600003611e2e57506000610b40565b6000611e3a8385612339565b905082611e478583612358565b14610c915760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108c7565b6000610c9183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f22565b6000610c9183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115fb565b60008183611f435760405162461bcd60e51b81526004016108c79190611fe7565b50600061162c8486612358565b8015158114611f5e57600080fd5b50565b600080600060408486031215611f7657600080fd5b833567ffffffffffffffff80821115611f8e57600080fd5b818601915086601f830112611fa257600080fd5b813581811115611fb157600080fd5b8760208260051b8501011115611fc657600080fd5b60209283019550935050840135611fdc81611f50565b809150509250925092565b600060208083528351808285015260005b8181101561201457858101830151858201604001528201611ff8565b81811115612026576000604083870101525b50601f01601f1916929092016040019392505050565b60006020828403121561204e57600080fd5b5035919050565b6001600160a01b0381168114611f5e57600080fd5b6000806040838503121561207d57600080fd5b823561208881612055565b946020939093013593505050565b6000806000606084860312156120ab57600080fd5b83356120b681612055565b925060208401356120c681612055565b929592945050506040919091013590565b6000602082840312156120e957600080fd5b8135610c9181612055565b60008060006060848603121561210957600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561213357600080fd5b823561213e81612055565b9150602083013561214e81612055565b809150509250929050565b6000806040838503121561216c57600080fd5b823561208881611f50565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60208082526025908201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604082015264657373657360d81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161221f5761221f6121f7565b5060010190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600181815b80851115612281578160001904821115612267576122676121f7565b8085161561227457918102915b93841c939080029061224b565b509250929050565b60008261229857506001610b40565b816122a557506000610b40565b81600181146122bb57600281146122c5576122e1565b6001915050610b40565b60ff8411156122d6576122d66121f7565b50506001821b610b40565b5060208310610133831016604e8410600b8410161715612304575081810a610b40565b61230e8383612246565b8060001904821115612322576123226121f7565b029392505050565b6000610c9160ff841683612289565b6000816000190483118215151615612353576123536121f7565b500290565b60008261237557634e487b7160e01b600052601260045260246000fd5b500490565b60008282101561238c5761238c6121f7565b500390565b6000602082840312156123a357600080fd5b5051919050565b6000602082840312156123bc57600080fd5b8151610c9181611f50565b600082198211156123da576123da6121f7565b500190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561242f5784516001600160a01b03168352938301939183019160010161240a565b50506001600160a01b0396909616606085015250505060800152939250505056feb6a1709218b158ea8591fc9269b88652f1c908dc68a79faa865c745a770b9505a2646970667358221220931a60ee6a46b87e46787a5a14ef8b4bfae3420d3999561e232cc83aee216f8764736f6c634300080f0033

Deployed Bytecode Sourcemap

4448:9282:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12329:311;;;;;;;;;;-1:-1:-1;12329:311:0;;;;;:::i;:::-;;:::i;:::-;;11715:295;;;;;;;;;;-1:-1:-1;11715:295:0;;;;;:::i;:::-;;:::i;5722:49::-;;;;;;;;;;;;;;;;;;;1038:25:1;;;1026:2;1011:18;5722:49:0;;;;;;;;4710:47;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4710:47:0;;;;;;;;;;;;:::i;7829:260::-;;;;;;;;;;-1:-1:-1;7829:260:0;;;;;:::i;:::-;;:::i;6933:216::-;;;;;;;;;;-1:-1:-1;6933:216:0;;;;;:::i;:::-;;:::i;:::-;;;2482:14:1;;2475:22;2457:41;;2445:2;2430:18;6933:216:0;2317:187:1;5404:44:0;;;;;;;;;;;;5445:3;5404:44;;4851:64;;;;;;;;;;;;;:::i;10670:259::-;;;;;;;;;;-1:-1:-1;10670:259:0;;;;;:::i;:::-;;:::i;5370:27::-;;;;;;;;;;;;;;;;7451:370;;;;;;;;;;-1:-1:-1;7451:370:0;;;;;:::i;:::-;;:::i;13590:137::-;;;;;;;;;;;;;:::i;2693:103::-;;;;;;;;;;-1:-1:-1;2693:103:0;;;;;:::i;:::-;2748:4;2783:5;-1:-1:-1;;;;;2772:16:0;;;2783:5;;2772:16;;2693:103;4808:34;;;;;;;;;;;;4841:1;4808:34;;;;;3394:4:1;3382:17;;;3364:36;;3352:2;3337:18;4808:34:0;3222:184:1;5209:38:0;;;;;;;;;;-1:-1:-1;5209:38:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5158:44;;;;;;;;;;-1:-1:-1;5158:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12018:303;;;;;;;;;;-1:-1:-1;12018:303:0;;;;;:::i;:::-;;:::i;7157:122::-;;;;;;;;;;-1:-1:-1;7157:122:0;;;;;:::i;:::-;;:::i;12940:199::-;;;;;;;;;;-1:-1:-1;12940:199:0;;;;;:::i;:::-;;:::i;5685:30::-;;;;;;;;;;-1:-1:-1;5685:30:0;;;;-1:-1:-1;;;5685:30:0;;;;;;5036:45;;;;;;;;;;-1:-1:-1;5036:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;3190:125;;;;;;;;;;;;;:::i;10937:286::-;;;;;;;;;;-1:-1:-1;10937:286:0;;;;;:::i;:::-;;:::i;4978:49::-;;;;;;;;;;;;;;;;3323:480;;;;;;;;;;;;;:::i;4924:47::-;;;;;;;;;;;;;;;;6708:78;;;;;;;;;;-1:-1:-1;6760:7:0;6778:5;-1:-1:-1;;;;;6778:5:0;6708:78;;;-1:-1:-1;;;;;3896:32:1;;;3878:51;;3866:2;3851:18;6708:78:0;3732:203:1;5254:48:0;;;;;;;;;;-1:-1:-1;5254:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4764:37;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4764:37:0;;;;;12648:284;;;;;;;;;;-1:-1:-1;12648:284:0;;;;;:::i;:::-;;:::i;5647:29::-;;;;;;;;;;;;;;;7287:156;;;;;;;;;;-1:-1:-1;7287:156:0;;;;;:::i;:::-;;:::i;2337:136::-;;;;;;;;;;-1:-1:-1;2337:136:0;;;;;:::i;:::-;;:::i;8097:261::-;;;;;;;;;;-1:-1:-1;8097:261:0;;;;;:::i;:::-;;:::i;13147:102::-;;;;;;;;;;-1:-1:-1;13147:102:0;;;;;:::i;:::-;;:::i;5309:52::-;;;;;;;;;;-1:-1:-1;5309:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6792:133;;;;;;;;;;-1:-1:-1;6792:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;6894:19:0;;;6876:7;6894:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;6792:133;13403:179;;;;;;;;;;-1:-1:-1;13403:179:0;;;;;:::i;:::-;;:::i;13257:138::-;;;;;;;;;;-1:-1:-1;13257:138:0;;;;;:::i;:::-;;:::i;5572:35::-;;;;;;;;;;-1:-1:-1;5572:35:0;;;;-1:-1:-1;;;;;5572:35:0;;;2481:204;;;;;;;;;;-1:-1:-1;2481:204:0;;;;;:::i;:::-;;:::i;2919:263::-;;;;;;;;;;-1:-1:-1;2919:263:0;;;;;:::i;:::-;;:::i;5616:24::-;;;;;;;;;;-1:-1:-1;5616:24:0;;;;-1:-1:-1;;;;;5616:24:0;;;2804:107;;;;;;;;;;-1:-1:-1;2804:107:0;;;;;:::i;:::-;;:::i;12329:311::-;2278:24;2291:10;2278:12;:24::i;:::-;2270:48;;;;-1:-1:-1;;;2270:48:0;;;;;;;:::i;:::-;;;;;;;;;12464:3:::1;12445:22:::0;::::1;12437:71;;;;-1:-1:-1::0;;;12437:71:0::1;;;;;;;:::i;:::-;12524:9;12519:114;12537:20:::0;;::::1;12519:114;;;12615:6;12579:19;:33;12599:9;;12609:1;12599:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12579:33:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;12579:33:0;:42;;-1:-1:-1;;12579:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12559:3:::1;::::0;::::1;:::i;:::-;;;12519:114;;;;12329:311:::0;;;:::o;11715:295::-;2278:24;2291:10;2278:12;:24::i;:::-;2270:48;;;;-1:-1:-1;;;2270:48:0;;;;;;;:::i;:::-;11842:3:::1;11823:22:::0;::::1;11815:71;;;;-1:-1:-1::0;;;11815:71:0::1;;;;;;;:::i;:::-;11902:9;11897:106;11915:20:::0;;::::1;11897:106;;;11985:6;11957:11;:25;11969:9;;11979:1;11969:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11957:25:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;11957:25:0;:34;;-1:-1:-1;;11957:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11937:3:::1;::::0;::::1;:::i;:::-;;;11897:106;;7829:260:::0;2748:4;2783:5;-1:-1:-1;;;;;2783:5:0;2196:10;2772:16;2180:38;;;;-1:-1:-1;;;2180:38:0;;;;;;;:::i;:::-;7965:2:::1;7938:23;:29;;7930:75;;;::::0;-1:-1:-1;;;7930:75:0;;6819:2:1;7930:75:0::1;::::0;::::1;6801:21:1::0;6858:2;6838:18;;;6831:30;6897:34;6877:18;;;6870:62;-1:-1:-1;;;6948:18:1;;;6941:32;6990:19;;7930:75:0::1;6617:398:1::0;7930:75:0::1;8077:4;8049:23:::0;4903:12:::1;4841:1;4903:2;:12;:::i;:::-;4889:26;::::0;:11:::1;:26;:::i;:::-;8035:37;;;;:::i;:::-;8034:47;;;;:::i;:::-;8016:15;:65:::0;-1:-1:-1;7829:260:0:o;6933:216::-;7037:10;7008:4;7025:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;7025:32:0;;;;;;;;;;:41;;;7082:37;7008:4;;7025:32;;7082:37;;;;7060:6;1038:25:1;;1026:2;1011:18;;892:177;7082:37:0;;;;;;;;-1:-1:-1;7137:4:0;6933:216;;;;;:::o;4851:64::-;4903:12;4841:1;4903:2;:12;:::i;:::-;4889:26;;:11;:26;:::i;:::-;4851:64;:::o;10670:259::-;2748:4;2783:5;-1:-1:-1;;;;;2783:5:0;2196:10;2772:16;2180:38;;;;-1:-1:-1;;;2180:38:0;;;;;;;:::i;:::-;10773:21:::1;10753:17;10864:3;10831:28;10843:16:::0;10773:21;10831:28:::1;:::i;:::-;10829:38;;;;:::i;:::-;10878:43;::::0;10805:62;;-1:-1:-1;10886:10:0::1;::::0;10878:43;::::1;;;::::0;10805:62;;10878:43:::1;::::0;;;10805:62;10886:10;10878:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;7451:370:::0;-1:-1:-1;;;;;7571:19:0;;7551:4;7571:19;;;:11;:19;;;;;;;;7591:10;7571:31;;;;;;;;-1:-1:-1;;7571:52:0;7568:186;;7673:69;;;;;;;;;;;-1:-1:-1;;;7673:69:0;;;;;;;;-1:-1:-1;;;;;7673:19:0;;-1:-1:-1;7673:19:0;;;:11;:19;;;;;7693:10;7673:31;;;;;;;;;;:69;;7709:6;;7673:35;:69::i;:::-;-1:-1:-1;;;;;7639:19:0;;;;;;:11;:19;;;;;;;;7659:10;7639:31;;;;;;;:103;7568:186;7773:40;7787:6;7795:9;7806:6;7773:13;:40::i;:::-;7766:47;;7451:370;;;;;;:::o;13590:137::-;13703:9;:15;;;;4586:42;13643:7;13685:15;;;;;13643:7;;13703:15;4903:12;4841:1;4903:2;:12;:::i;:::-;4889:26;;:11;:26;:::i;:::-;13671:29;;;;:::i;:::-;:47;;;;:::i;:::-;13663:56;;13590:137;:::o;12018:303::-;2278:24;2291:10;2278:12;:24::i;:::-;2270:48;;;;-1:-1:-1;;;2270:48:0;;;;;;;:::i;:::-;12149:3:::1;12130:22:::0;::::1;12122:71;;;;-1:-1:-1::0;;;12122:71:0::1;;;;;;;:::i;:::-;12209:9;12204:110;12222:20:::0;;::::1;12204:110;;;12296:6;12264:15;:29;12280:9;;12290:1;12280:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12264:29:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;12264:29:0;:38;;-1:-1:-1;;12264:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12244:3:::1;::::0;::::1;:::i;:::-;;;12204:110;;7157:122:::0;7212:4;7236:35;7244:7;-1:-1:-1;;7236:7:0;:35::i;12940:199::-;2278:24;2291:10;2278:12;:24::i;:::-;2270:48;;;;-1:-1:-1;;;2270:48:0;;;;;;;:::i;:::-;13040:14:::1;:22:::0;;;;13073:13:::1;:20:::0;;;;13104:18:::1;:27:::0;12940:199::o;3190:125::-;2748:4;2783:5;-1:-1:-1;;;;;2783:5:0;2196:10;2772:16;2180:38;;;;-1:-1:-1;;;2180:38:0;;;;;;;:::i;:::-;3273:5:::1;3264::::0;;-1:-1:-1;;;;;3264:5:0::1;3249:21:::0;;:14:::1;:21;::::0;;;;:29;;-1:-1:-1;;3249:29:0::1;::::0;;3289:18;;-1:-1:-1;;;;;;3289:18:0::1;::::0;;3190:125::o;10937:286::-;11028:12;2783:5;;-1:-1:-1;;;;;2783:5:0;2196:10;2772:16;2180:38;;;;-1:-1:-1;;;2180:38:0;;;;;;;:::i;:::-;11056:6:::1;11066:1;11056:11:::0;11053:95:::1;;11092:44;::::0;-1:-1:-1;;;11092:44:0;;11130:4:::1;11092:44;::::0;::::1;3878:51:1::0;-1:-1:-1;;;;;11092:29:0;::::1;::::0;::::1;::::0;3851:18:1;;11092:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11083:53;;11053:95;11167:48;::::0;-1:-1:-1;;;11167:48:0;;11196:10:::1;11167:48;::::0;::::1;9291:51:1::0;9358:18;;;9351:34;;;-1:-1:-1;;;;;11167:28:0;::::1;::::0;::::1;::::0;9264:18:1;;11167:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3323:480::-:0;3392:14;;-1:-1:-1;;;;;3392:14:0;3378:10;:28;3370:113;;;;-1:-1:-1;;;3370:113:0;;9848:2:1;3370:113:0;;;9830:21:1;9887:2;9867:18;;;9860:30;9926:34;9906:18;;;9899:62;9997:34;9977:18;;;9970:62;-1:-1:-1;;;10048:19:1;;;10041:39;10097:19;;3370:113:0;9646:476:1;3370:113:0;3518:5;3509;;-1:-1:-1;;;;;3509:5:0;;;3494:21;;:14;:21;;;;;;;;:29;;-1:-1:-1;;3494:29:0;;;;;;-1:-1:-1;3549:14:0;;;;3534:30;;;;;:37;;;;;;;;3606:5;;3589:29;;3606:5;;10295:51:1;;10362:18;;;10355:50;;;;-1:-1:-1;;;;;;;;;;;3589:29:0;10268:18:1;3589:29:0;;;;;;;3651:14;;;3634:37;;;-1:-1:-1;;;;;3651:14:0;;;10295:51:1;;10377:2;10362:18;;10355:50;;;;-1:-1:-1;;;;;;;;;;;3634:37:0;10268:18:1;3634:37:0;;;;;;;3700:14;;;;3692:22;;-1:-1:-1;;;;;3700:14:0;;-1:-1:-1;;;;;;3692:22:0;;;;;;;;3725:27;;;;;;3768;;3878:51:1;;;3768:27:0;;3866:2:1;3851:18;3768:27:0;;;;;;;3323:480::o;12648:284::-;2278:24;2291:10;2278:12;:24::i;:::-;2270:48;;;;-1:-1:-1;;;2270:48:0;;;;;;;:::i;:::-;12770:3:::1;12751:22:::0;::::1;12743:71;;;;-1:-1:-1::0;;;12743:71:0::1;;;;;;;:::i;:::-;12830:9;12825:100;12843:20:::0;;::::1;12825:100;;;12907:6;12885:5;:19;12891:9;;12901:1;12891:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12885:19:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;12885:19:0;:28;;-1:-1:-1;;12885:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12865:3:::1;::::0;::::1;:::i;:::-;;;12825:100;;7287:156:::0;7367:4;7391:44;7405:10;7417:9;7428:6;7391:13;:44::i;2337:136::-;2748:4;2783:5;-1:-1:-1;;;;;2783:5:0;2196:10;2772:16;2180:38;;;;-1:-1:-1;;;2180:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2397:19:0;::::1;;::::0;;;:14:::1;:19;::::0;;;;;;;;:26;;-1:-1:-1;;2397:26:0::1;2419:4;2397:26:::0;;::::1;::::0;;;2439;;10295:51:1;;;10362:18;;;10355:50;-1:-1:-1;;;;;;;;;;;2439:26:0;10268:18:1;2439:26:0::1;;;;;;;;2337:136:::0;:::o;8097:261::-;2748:4;2783:5;-1:-1:-1;;;;;2783:5:0;2196:10;2772:16;2180:38;;;;-1:-1:-1;;;2180:38:0;;;;;;;:::i;:::-;8231:2:::1;8203:24;:30;;8195:81;;;::::0;-1:-1:-1;;;8195:81:0;;10618:2:1;8195:81:0::1;::::0;::::1;10600:21:1::0;10657:2;10637:18;;;10630:30;10696:34;10676:18;;;10669:62;-1:-1:-1;;;10747:18:1;;;10740:37;10794:19;;8195:81:0::1;10416:403:1::0;8195:81:0::1;8346:4;8317:24:::0;4903:12:::1;4841:1;4903:2;:12;:::i;:::-;4889:26;::::0;:11:::1;:26;:::i;:::-;8303:38;;;;:::i;:::-;8302:48;;;;:::i;:::-;8287:12;:63:::0;-1:-1:-1;8097:261:0:o;13147:102::-;2748:4;2783:5;-1:-1:-1;;;;;2783:5:0;2196:10;2772:16;2180:38;;;;-1:-1:-1;;;2180:38:0;;;;;;;:::i;:::-;13221:8:::1;:20:::0;13147:102::o;13403:179::-;2748:4;2783:5;-1:-1:-1;;;;;2783:5:0;2196:10;2772:16;2180:38;;;;-1:-1:-1;;;2180:38:0;;;;;;;:::i;:::-;13499:11:::1;:22:::0;;-1:-1:-1;;;;13499:22:0::1;-1:-1:-1::0;;;13499:22:0;::::1;;;;::::0;;13562:12;4903::::1;4841:1;4903:2;:12;:::i;:::-;4889:26;::::0;:11:::1;:26;:::i;:::-;13548;;;;:::i;:::-;13532:13;:42:::0;-1:-1:-1;;13403:179:0:o;13257:138::-;2748:4;2783:5;-1:-1:-1;;;;;2783:5:0;2196:10;2772:16;2180:38;;;;-1:-1:-1;;;2180:38:0;;;;;;;:::i;:::-;13343:20:::1;:44:::0;;-1:-1:-1;;;;;;13343:44:0::1;-1:-1:-1::0;;;;;13343:44:0;;;::::1;::::0;;;::::1;::::0;;13257:138::o;2481:204::-;2748:4;2783:5;-1:-1:-1;;;;;2783:5:0;2196:10;2772:16;2180:38;;;;-1:-1:-1;;;2180:38:0;;;;;;;:::i;:::-;2560:5:::1;::::0;-1:-1:-1;;;;;2560:5:0;;::::1;2553:12:::0;;::::1;::::0;2545:51:::1;;;::::0;-1:-1:-1;;;2545:51:0;;11026:2:1;2545:51:0::1;::::0;::::1;11008:21:1::0;11065:2;11045:18;;;11038:30;11104:28;11084:18;;;11077:56;11150:18;;2545:51:0::1;10824:350:1::0;2545:51:0::1;-1:-1:-1::0;;;;;2607:19:0;::::1;2629:5;2607:19:::0;;;:14:::1;:19;::::0;;;;;;;:27;;-1:-1:-1;;2607:27:0::1;::::0;;2650;;10295:51:1;;;10362:18;;;10355:50;;;;-1:-1:-1;;;;;;;;;;;2650:27:0;10268:18:1;2650:27:0::1;10127:284:1::0;2919:263:0;2748:4;2783:5;-1:-1:-1;;;;;2783:5:0;2196:10;2772:16;2180:38;;;;-1:-1:-1;;;2180:38:0;;;;;;;:::i;:::-;3012:5:::1;::::0;-1:-1:-1;;;;;3012:5:0;;::::1;3005:12:::0;;::::1;::::0;2997:42:::1;;;::::0;-1:-1:-1;;;2997:42:0;;11381:2:1;2997:42:0::1;::::0;::::1;11363:21:1::0;11420:2;11400:18;;;11393:30;-1:-1:-1;;;11439:18:1;;;11432:47;11496:18;;2997:42:0::1;11179:341:1::0;2997:42:0::1;-1:-1:-1::0;;;;;3058:17:0;::::1;3050:54;;;::::0;-1:-1:-1;;;3050:54:0;;11727:2:1;3050:54:0::1;::::0;::::1;11709:21:1::0;11766:2;11746:18;;;11739:30;11805:26;11785:18;;;11778:54;11849:18;;3050:54:0::1;11525:348:1::0;3050:54:0::1;3115:14;:20:::0;;-1:-1:-1;;;;;;3115:20:0::1;-1:-1:-1::0;;;;;3115:20:0;::::1;::::0;;::::1;::::0;;;3151:23:::1;::::0;3878:51:1;;;3151:23:0::1;::::0;3866:2:1;3851:18;3151:23:0::1;3732:203:1::0;2804:107:0;-1:-1:-1;;;;;2884:19:0;2860:4;2884:19;;;:14;:19;;;;;;;;;2804:107::o;422:192::-;508:7;544:12;536:6;;;;528:29;;;;-1:-1:-1;;;528:29:0;;;;;;;;:::i;:::-;-1:-1:-1;568:9:0;580:5;584:1;580;:5;:::i;:::-;568:17;422:192;-1:-1:-1;;;;;422:192:0:o;8366:1018::-;8478:6;;8458:4;;8478:6;;8475:63;;;8494:41;8509:6;8517:9;8528:6;8494:14;:41::i;:::-;8487:48;;;;8475:63;-1:-1:-1;;;;;8559:13:0;;;;;;:5;:13;;;;;;;;8558:14;8550:29;;;;-1:-1:-1;;;8550:29:0;;12296:2:1;8550:29:0;;;12278:21:1;12335:1;12315:18;;;12308:29;-1:-1:-1;;;12353:18:1;;;12346:33;12396:18;;8550:29:0;12094:326:1;8550:29:0;-1:-1:-1;;;;;8597:22:0;;;;;;:14;:22;;;;;;;;8596:23;:55;;;;-1:-1:-1;;;;;;8624:27:0;;;;;;:19;:27;;;;;;;;8623:28;8596:55;:90;;;;-1:-1:-1;;;;;;8656:30:0;;;;;;:19;:30;;;;;;;;8655:31;8596:90;:111;;;;;8703:4;-1:-1:-1;;;;;8690:17:0;:9;-1:-1:-1;;;;;8690:17:0;;;8596:111;8592:230;;;8767:15;;-1:-1:-1;;;;;8733:20:0;;;;;;:9;:20;;;;;;:29;;8756:6;;8733:29;:::i;:::-;8732:50;;8724:86;;;;-1:-1:-1;;;8724:86:0;;12760:2:1;8724:86:0;;;12742:21:1;12799:2;12779:18;;;12772:30;12838:26;12818:18;;;12811:54;12882:18;;8724:86:0;12558:348:1;8724:86:0;8857:12;;8847:6;:22;;8846:51;;;-1:-1:-1;;;;;;8874:23:0;;;;;;:15;:23;;;;;;;;8846:51;:81;;;-1:-1:-1;;;;;;8901:26:0;;;;;;:15;:26;;;;;;;;8846:81;8838:115;;;;-1:-1:-1;;;8838:115:0;;13113:2:1;8838:115:0;;;13095:21:1;13152:2;13132:18;;;13125:30;-1:-1:-1;;;13171:18:1;;;13164:51;13232:18;;8838:115:0;12911:345:1;8838:115:0;8969:16;:14;:16::i;:::-;8966:35;;;8988:10;:8;:10::i;:::-;9033:53;;;;;;;;;;;-1:-1:-1;;;9033:53:0;;;;;;;;-1:-1:-1;;;;;9033:17:0;;-1:-1:-1;9033:17:0;;;:9;:17;;;;;;;;:53;;9055:6;;9033:21;:53::i;:::-;-1:-1:-1;;;;;9013:17:0;;;;;;:9;:17;;;;;;;;:73;;;;9125:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;9148:22:0;;;;;;:11;:22;;;;;;;;9125:45;9124:93;;9183:34;9191:6;9199;9207:9;9183:7;:34::i;:::-;9124:93;;;9174:6;9124:93;-1:-1:-1;;;;;9253:20:0;;;;;;:9;:20;;;;;;9099:118;;-1:-1:-1;9253:40:0;;9099:118;9253:24;:40::i;:::-;-1:-1:-1;;;;;9230:20:0;;;;;;;:9;:20;;;;;;;:63;;;;9311:43;;;;;;;;;;9339:14;1038:25:1;;1026:2;1011:18;;892:177;9311:43:0;;;;;;;;-1:-1:-1;9372:4:0;;8366:1018;-1:-1:-1;;;;8366:1018:0:o;9396:330::-;9526:53;;;;;;;;;;;-1:-1:-1;;;9526:53:0;;;;;;;;-1:-1:-1;;;;;9526:17:0;;9489:4;9526:17;;;:9;:17;;;;;;;:53;;9548:6;;9526:21;:53::i;:::-;-1:-1:-1;;;;;9506:17:0;;;;;;;:9;:17;;;;;;:73;;;;9613:20;;;;;;;:32;;9638:6;9613:24;:32::i;:::-;-1:-1:-1;;;;;9590:20:0;;;;;;;:9;:20;;;;;;;:55;;;;9661:35;;;;;;;;;;9689:6;1038:25:1;;1026:2;1011:18;;892:177;9661:35:0;;;;;;;;-1:-1:-1;9714:4:0;9396:330;;;;;:::o;10465:197::-;10514:4;10538:10;-1:-1:-1;;;;;10552:4:0;10538:18;;;;;:38;;-1:-1:-1;10570:6:0;;;;10569:7;10538:38;:62;;;;-1:-1:-1;10589:11:0;;-1:-1:-1;;;10589:11:0;;;;10538:62;:116;;;;-1:-1:-1;;10641:13:0;;10631:4;10613:24;;;;:9;:24;;;;;;:41;;;10465:197::o;11231:476::-;5818:6;:13;;-1:-1:-1;;5818:13:0;5827:4;5818:13;;;11306:16:::1;::::0;;11320:1:::1;11306:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11306:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11306:16:0::1;11282:40;;11351:4;11333;11338:1;11333:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;11333:23:0::1;;;-1:-1:-1::0;;;;;11333:23:0::1;;;::::0;::::1;11377:4;11367;11372:1;11367:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11367:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;11394:6:::1;::::0;11466:13:::1;::::0;11394:189:::1;::::0;-1:-1:-1;;;11394:189:0;;:6;;;::::1;::::0;:57:::1;::::0;:189:::1;::::0;11466:13;11394:6:::1;::::0;11510:4;;11537::::1;::::0;11557:15:::1;::::0;11394:189:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;11658:20:0::1;::::0;11650:49:::1;::::0;11616:21:::1;::::0;-1:-1:-1;;;;;;11658:20:0;;::::1;::::0;-1:-1:-1;11650:49:0;::::1;;;::::0;11616:21;;11596:17:::1;11650:49:::0;11596:17;11650:49;11616:21;11658:20;11650:49;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5836:6:0;:14;;-1:-1:-1;;5836:14:0;;;-1:-1:-1;11231:476:0:o;9734:723::-;9820:7;9843:11;;;:28;;-1:-1:-1;9858:8:0;;:13;9843:28;9840:72;;;-1:-1:-1;9894:6:0;9887:13;;9840:72;9945:18;;-1:-1:-1;;;;;9992:4:0;9979:17;;;;;;9976:154;;-1:-1:-1;10026:14:0;;9976:154;;;10071:4;-1:-1:-1;;;;;10061:14:0;:6;-1:-1:-1;;;;;10061:14:0;;10058:72;;-1:-1:-1;10105:13:0;;10058:72;10142:17;10162:62;10203:20;5445:3;;10203:20;:::i;:::-;10162:36;10187:10;10162:20;10173:8;;10162:6;:10;;:20;;;;:::i;:::-;:24;;:36::i;:::-;:40;;:62::i;:::-;10142:82;-1:-1:-1;10240:13:0;;10237:172;;10314:4;10296:24;;;;:9;:24;;;;;;:39;;10325:9;10296:28;:39::i;:::-;10287:4;10269:24;;;;:9;:24;;;;;;;:66;;;;10355:42;;-1:-1:-1;;;;;10355:42:0;;;;;;;10387:9;1038:25:1;;1026:2;1011:18;;892:177;10355:42:0;;;;;;;;10237:172;10428:21;:6;10439:9;10428:10;:21::i;:::-;10421:28;9734:723;-1:-1:-1;;;;;;9734:723:0:o;93:181::-;151:7;;183:5;187:1;183;:5;:::i;:::-;171:17;;212:1;207;:6;;199:46;;;;-1:-1:-1;;;199:46:0;;14580:2:1;199:46:0;;;14562:21:1;14619:2;14599:18;;;14592:30;14658:29;14638:18;;;14631:57;14705:18;;199:46:0;14378:351:1;620:250:0;678:7;702:1;707;702:6;698:47;;-1:-1:-1;732:1:0;725:8;;698:47;757:9;769:5;773:1;769;:5;:::i;:::-;757:17;-1:-1:-1;802:1:0;793:5;797:1;757:17;793:5;:::i;:::-;:10;785:56;;;;-1:-1:-1;;;785:56:0;;14936:2:1;785:56:0;;;14918:21:1;14975:2;14955:18;;;14948:30;15014:34;14994:18;;;14987:62;-1:-1:-1;;;15065:18:1;;;15058:31;15106:19;;785:56:0;14734:397:1;876:132:0;934:7;961:39;965:1;968;961:39;;;;;;;;;;;;;;;;;:3;:39::i;280:136::-;338:7;365:43;369:1;372;365:43;;;;;;;;;;;;;;;;;:3;:43::i;1014:189::-;1100:7;1135:12;1128:5;1120:28;;;;-1:-1:-1;;;1120:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1159:9:0;1171:5;1175:1;1171;:5;:::i;14:118:1:-;100:5;93:13;86:21;79:5;76:32;66:60;;122:1;119;112:12;66:60;14:118;:::o;137:750::-;229:6;237;245;298:2;286:9;277:7;273:23;269:32;266:52;;;314:1;311;304:12;266:52;354:9;341:23;383:18;424:2;416:6;413:14;410:34;;;440:1;437;430:12;410:34;478:6;467:9;463:22;453:32;;523:7;516:4;512:2;508:13;504:27;494:55;;545:1;542;535:12;494:55;585:2;572:16;611:2;603:6;600:14;597:34;;;627:1;624;617:12;597:34;682:7;675:4;665:6;662:1;658:14;654:2;650:23;646:34;643:47;640:67;;;703:1;700;693:12;640:67;734:4;726:13;;;;-1:-1:-1;758:6:1;-1:-1:-1;;799:20:1;;786:34;829:28;786:34;829:28;:::i;:::-;876:5;866:15;;;137:750;;;;;:::o;1074:597::-;1186:4;1215:2;1244;1233:9;1226:21;1276:6;1270:13;1319:6;1314:2;1303:9;1299:18;1292:34;1344:1;1354:140;1368:6;1365:1;1362:13;1354:140;;;1463:14;;;1459:23;;1453:30;1429:17;;;1448:2;1425:26;1418:66;1383:10;;1354:140;;;1512:6;1509:1;1506:13;1503:91;;;1582:1;1577:2;1568:6;1557:9;1553:22;1549:31;1542:42;1503:91;-1:-1:-1;1655:2:1;1634:15;-1:-1:-1;;1630:29:1;1615:45;;;;1662:2;1611:54;;1074:597;-1:-1:-1;;;1074:597:1:o;1676:180::-;1735:6;1788:2;1776:9;1767:7;1763:23;1759:32;1756:52;;;1804:1;1801;1794:12;1756:52;-1:-1:-1;1827:23:1;;1676:180;-1:-1:-1;1676:180:1:o;1861:131::-;-1:-1:-1;;;;;1936:31:1;;1926:42;;1916:70;;1982:1;1979;1972:12;1997:315;2065:6;2073;2126:2;2114:9;2105:7;2101:23;2097:32;2094:52;;;2142:1;2139;2132:12;2094:52;2181:9;2168:23;2200:31;2225:5;2200:31;:::i;:::-;2250:5;2302:2;2287:18;;;;2274:32;;-1:-1:-1;;;1997:315:1:o;2509:456::-;2586:6;2594;2602;2655:2;2643:9;2634:7;2630:23;2626:32;2623:52;;;2671:1;2668;2661:12;2623:52;2710:9;2697:23;2729:31;2754:5;2729:31;:::i;:::-;2779:5;-1:-1:-1;2836:2:1;2821:18;;2808:32;2849:33;2808:32;2849:33;:::i;:::-;2509:456;;2901:7;;-1:-1:-1;;;2955:2:1;2940:18;;;;2927:32;;2509:456::o;2970:247::-;3029:6;3082:2;3070:9;3061:7;3057:23;3053:32;3050:52;;;3098:1;3095;3088:12;3050:52;3137:9;3124:23;3156:31;3181:5;3156:31;:::i;3411:316::-;3488:6;3496;3504;3557:2;3545:9;3536:7;3532:23;3528:32;3525:52;;;3573:1;3570;3563:12;3525:52;-1:-1:-1;;3596:23:1;;;3666:2;3651:18;;3638:32;;-1:-1:-1;3717:2:1;3702:18;;;3689:32;;3411:316;-1:-1:-1;3411:316:1:o;3940:388::-;4008:6;4016;4069:2;4057:9;4048:7;4044:23;4040:32;4037:52;;;4085:1;4082;4075:12;4037:52;4124:9;4111:23;4143:31;4168:5;4143:31;:::i;:::-;4193:5;-1:-1:-1;4250:2:1;4235:18;;4222:32;4263:33;4222:32;4263:33;:::i;:::-;4315:7;4305:17;;;3940:388;;;;;:::o;4333:309::-;4398:6;4406;4459:2;4447:9;4438:7;4434:23;4430:32;4427:52;;;4475:1;4472;4465:12;4427:52;4514:9;4501:23;4533:28;4555:5;4533:28;:::i;5133:335::-;5335:2;5317:21;;;5374:2;5354:18;;;5347:30;-1:-1:-1;;;5408:2:1;5393:18;;5386:41;5459:2;5444:18;;5133:335::o;5473:401::-;5675:2;5657:21;;;5714:2;5694:18;;;5687:30;5753:34;5748:2;5733:18;;5726:62;-1:-1:-1;;;5819:2:1;5804:18;;5797:35;5864:3;5849:19;;5473:401::o;5879:127::-;5940:10;5935:3;5931:20;5928:1;5921:31;5971:4;5968:1;5961:15;5995:4;5992:1;5985:15;6011:127;6072:10;6067:3;6063:20;6060:1;6053:31;6103:4;6100:1;6093:15;6127:4;6124:1;6117:15;6143:135;6182:3;6203:17;;;6200:43;;6223:18;;:::i;:::-;-1:-1:-1;6270:1:1;6259:13;;6143:135::o;6283:329::-;6485:2;6467:21;;;6524:1;6504:18;;;6497:29;-1:-1:-1;;;6557:2:1;6542:18;;6535:36;6603:2;6588:18;;6283:329::o;7020:422::-;7109:1;7152:5;7109:1;7166:270;7187:7;7177:8;7174:21;7166:270;;;7246:4;7242:1;7238:6;7234:17;7228:4;7225:27;7222:53;;;7255:18;;:::i;:::-;7305:7;7295:8;7291:22;7288:55;;;7325:16;;;;7288:55;7404:22;;;;7364:15;;;;7166:270;;;7170:3;7020:422;;;;;:::o;7447:806::-;7496:5;7526:8;7516:80;;-1:-1:-1;7567:1:1;7581:5;;7516:80;7615:4;7605:76;;-1:-1:-1;7652:1:1;7666:5;;7605:76;7697:4;7715:1;7710:59;;;;7783:1;7778:130;;;;7690:218;;7710:59;7740:1;7731:10;;7754:5;;;7778:130;7815:3;7805:8;7802:17;7799:43;;;7822:18;;:::i;:::-;-1:-1:-1;;7878:1:1;7864:16;;7893:5;;7690:218;;7992:2;7982:8;7979:16;7973:3;7967:4;7964:13;7960:36;7954:2;7944:8;7941:16;7936:2;7930:4;7927:12;7923:35;7920:77;7917:159;;;-1:-1:-1;8029:19:1;;;8061:5;;7917:159;8108:34;8133:8;8127:4;8108:34;:::i;:::-;8178:6;8174:1;8170:6;8166:19;8157:7;8154:32;8151:58;;;8189:18;;:::i;:::-;8227:20;;7447:806;-1:-1:-1;;;7447:806:1:o;8258:140::-;8316:5;8345:47;8386:4;8376:8;8372:19;8366:4;8345:47;:::i;8403:168::-;8443:7;8509:1;8505;8501:6;8497:14;8494:1;8491:21;8486:1;8479:9;8472:17;8468:45;8465:71;;;8516:18;;:::i;:::-;-1:-1:-1;8556:9:1;;8403:168::o;8576:217::-;8616:1;8642;8632:132;;8686:10;8681:3;8677:20;8674:1;8667:31;8721:4;8718:1;8711:15;8749:4;8746:1;8739:15;8632:132;-1:-1:-1;8778:9:1;;8576:217::o;8798:125::-;8838:4;8866:1;8863;8860:8;8857:34;;;8871:18;;:::i;:::-;-1:-1:-1;8908:9:1;;8798:125::o;8928:184::-;8998:6;9051:2;9039:9;9030:7;9026:23;9022:32;9019:52;;;9067:1;9064;9057:12;9019:52;-1:-1:-1;9090:16:1;;8928:184;-1:-1:-1;8928:184:1:o;9396:245::-;9463:6;9516:2;9504:9;9495:7;9491:23;9487:32;9484:52;;;9532:1;9529;9522:12;9484:52;9564:9;9558:16;9583:28;9605:5;9583:28;:::i;12425:128::-;12465:3;12496:1;12492:6;12489:1;12486:13;12483:39;;;12502:18;;:::i;:::-;-1:-1:-1;12538:9:1;;12425:128::o;13393:980::-;13655:4;13703:3;13692:9;13688:19;13734:6;13723:9;13716:25;13760:2;13798:6;13793:2;13782:9;13778:18;13771:34;13841:3;13836:2;13825:9;13821:18;13814:31;13865:6;13900;13894:13;13931:6;13923;13916:22;13969:3;13958:9;13954:19;13947:26;;14008:2;14000:6;13996:15;13982:29;;14029:1;14039:195;14053:6;14050:1;14047:13;14039:195;;;14118:13;;-1:-1:-1;;;;;14114:39:1;14102:52;;14209:15;;;;14174:12;;;;14150:1;14068:9;14039:195;;;-1:-1:-1;;;;;;;14290:32:1;;;;14285:2;14270:18;;14263:60;-1:-1:-1;;;14354:3:1;14339:19;14332:35;14251:3;13393:980;-1:-1:-1;;;13393:980:1:o

Swarm Source

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