ETH Price: $2,573.22 (-2.76%)

Token

OrdiScan (ORDIS)
 

Overview

Max Total Supply

1,000,000,000 ORDIS

Holders

216

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,200,000 ORDIS

Value
$0.00
0x06c5fc070e8ee039da615c2460d53d9240bad6c8
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:
OrdiScan

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

/**
 Telegram: https://t.me/OrdiscanLabs
 Bot: @OrdiscanBot
 Website: https://ordiscan.tools/
 Twitter: https://twitter.com/OrdiscanLabs
 */


// SPDX-License-Identifier: Unlicensed
pragma solidity 0.8.18;

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

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

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

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

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

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

    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }

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

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);
    function WETH() external pure returns (address);
}

contract OrdiScan is Context, IERC20, Ownable {
    mapping(address => uint256) private _balance;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFeeWallet;
    uint256 private constant MAX = ~uint256(0);
    uint8 private constant _decimals = 18;
    uint256 private constant _totalSupply = 10**9 * 10**_decimals;
    uint256 private constant minSwap = 30000 * 10**_decimals; //0.03% from supply
    uint256 private constant maxSwap = 750000 * 10**_decimals; //0.7% from supply
    uint256 public maxTxAmount = maxSwap * 2; //max Tx for first mins after launch

    uint256 private _tax;
    uint256 public buyTax = 0;
    uint256 public sellTax = 0;
    
    uint256 private launchBlock;
    bool public normalizeTrade;

    string private constant _name = "OrdiScan";
    string private constant _symbol = "ORDIS";

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    address payable public marketingWallet;

    bool private launch = false;

    // Anti-Whale
    uint256 public maxHoldAmount = _totalSupply / 100; // 1% of _totalSupply
    mapping(address => bool) public isWhiteList;

    // Events
    event UpdateWhiteList(address indexed holder, bool value);
    event SetMaxHoldAmount(uint256 indexed maxHoldAmount);

    constructor() {
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        marketingWallet = payable(0x27a87Cc25433F803e1eF3e520e30D201129595BA);
        _balance[msg.sender] = _totalSupply;

        _isExcludedFromFeeWallet[msg.sender] = true;
        _isExcludedFromFeeWallet[0x27a87Cc25433F803e1eF3e520e30D201129595BA] = true;
        _isExcludedFromFeeWallet[address(this)] = true;

        // default whiteList
        isWhiteList[msg.sender] = true; // owner
        isWhiteList[address(this)] = true; // token contract
        isWhiteList[uniswapV2Pair] = true; // pair

        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

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

    function balanceOf(address account) public view override returns (uint256) {
        return _balance[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()] - amount);
        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 enableTrading() external onlyOwner {
        launch = true;
        launchBlock = block.number;
    }

    function configureExempted(address[] memory _wallets, bool _enable) external onlyOwner {
        for(uint256 i = 0; i < _wallets.length; i++) {

            _isExcludedFromFeeWallet[_wallets[i]] = _enable;
        }
    }

    function removeLimits() external onlyOwner {
        maxTxAmount = _totalSupply;
    }

    function changeTax(uint256 newBuyTax, uint256 newSellTax) external onlyOwner {
        require(newBuyTax <= 10 && newSellTax <= 10, "ERC20: wrong tax value!");
        buyTax = newBuyTax;
        sellTax = newSellTax;
    }
    
      function setMarketingWallet(address _marketingWallet) external onlyOwner {
        marketingWallet = payable(_marketingWallet);
    }
    
    function _tokenTransfer(address from, address to, uint256 amount) private {
        uint256 taxTokens = (amount * _tax) / 100;
        uint256 transferAmount = amount - taxTokens;

        _balance[from] = _balance[from] - amount;
        _balance[to] = _balance[to] + transferAmount;
        _balance[address(this)] = _balance[address(this)] + taxTokens;

        // maxHoldAmount check
        if(!isWhiteList[to]) {
            require(_balance[to] <= maxHoldAmount, "Over Max Holding Amount");
        }

        emit Transfer(from, to, transferAmount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");

        if (_isExcludedFromFeeWallet[from] || _isExcludedFromFeeWallet[to]) {
            _tax = 0;
        } else {
            require(launch, "Wait till launch");
            require(amount <= maxTxAmount, "Max TxAmount 2% at launch");
            if (launchBlock != 0 && !normalizeTrade) {
                dynamicTaxSetter();
            }
            if (from == uniswapV2Pair) {
                _tax = buyTax;
            } else if (to == uniswapV2Pair) {
                uint256 tokensToSwap = balanceOf(address(this));
                if (tokensToSwap > minSwap) {
                    if (tokensToSwap > maxSwap) {
                        tokensToSwap = maxSwap;
                    }
                    swapTokensForEth(tokensToSwap);
                }
                _tax = sellTax;
            } else {
                _tax = 0;
            }
        }
        _tokenTransfer(from, to, amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        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,
            marketingWallet,
            block.timestamp
        );
    }
    receive() external payable {}

    function setMaxHoldAmount(uint256 _maxHoldAmount) external onlyOwner {
        maxHoldAmount = _maxHoldAmount;

        emit SetMaxHoldAmount(_maxHoldAmount);
    }

    function updateWhiteList(address _holder, bool _value) external onlyOwner {
        isWhiteList[_holder] = _value;

        emit UpdateWhiteList(_holder, _value);
    }
    function dynamicTaxSetter() internal {
        if (block.number <= launchBlock + 10) {
            dynamicSetter(20,20);
        }
        if (block.number > launchBlock + 10 && block.number <= launchBlock + 22) {
            dynamicSetter(15,15);
        }
        if (block.number > launchBlock + 22 && block.number <= launchBlock + 34) {
            dynamicSetter(10,10);
        }
        if (block.number > launchBlock + 34 && block.number <= launchBlock + 46) {
            dynamicSetter(6,6);
        }
        if (block.number > launchBlock + 46) {
            dynamicSetter(4,4);
            normalizeTrade = true;
        } 
    }
    function dynamicSetter(uint _buy, uint _Sell) internal {
        buyTax = _buy;
        sellTax = _Sell;
    }
}

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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxHoldAmount","type":"uint256"}],"name":"SetMaxHoldAmount","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"bool","name":"value","type":"bool"}],"name":"UpdateWhiteList","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"changeTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_wallets","type":"address[]"},{"internalType":"bool","name":"_enable","type":"bool"}],"name":"configureExempted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWhiteList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldAmount","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":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"normalizeTrade","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxHoldAmount","type":"uint256"}],"name":"setMaxHoldAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_holder","type":"address"},{"internalType":"bool","name":"_value","type":"bool"}],"name":"updateWhiteList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260026012600a620000169190620008c6565b620b71b062000026919062000917565b62000032919062000917565b600555600060075560006008556000600c60146101000a81548160ff02191690831515021790555060646012600a6200006c9190620008c6565b633b9aca006200007d919062000917565b62000089919062000991565b600d553480156200009957600080fd5b506000620000ac6200072460201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d600a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200020d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000233919062000a33565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002bd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e3919062000a33565b6040518363ffffffff1660e01b81526004016200030292919062000a76565b6020604051808303816000875af115801562000322573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000348919062000a33565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507327a87cc25433f803e1ef3e520e30d201129595ba600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620003ed9190620008c6565b633b9aca00620003fe919062000917565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460007327a87cc25433f803e1ef3e520e30d201129595ba73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006976200072460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620006f69190620008c6565b633b9aca0062000707919062000917565b60405162000716919062000ab4565b60405180910390a362000ad1565b600033905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620007ba578086048111156200079257620007916200072c565b5b6001851615620007a25780820291505b8081029050620007b2856200075b565b945062000772565b94509492505050565b600082620007d55760019050620008a8565b81620007e55760009050620008a8565b8160018114620007fe576002811462000809576200083f565b6001915050620008a8565b60ff8411156200081e576200081d6200072c565b5b8360020a9150848211156200083857620008376200072c565b5b50620008a8565b5060208310610133831016604e8410600b8410161715620008795782820a9050838111156200087357620008726200072c565b5b620008a8565b62000888848484600162000768565b92509050818404811115620008a257620008a16200072c565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620008d382620008af565b9150620008e083620008b9565b92506200090f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620007c3565b905092915050565b60006200092482620008af565b91506200093183620008af565b92508282026200094181620008af565b915082820484148315176200095b576200095a6200072c565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200099e82620008af565b9150620009ab83620008af565b925082620009be57620009bd62000962565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009fb82620009ce565b9050919050565b62000a0d81620009ee565b811462000a1957600080fd5b50565b60008151905062000a2d8162000a02565b92915050565b60006020828403121562000a4c5762000a4b620009c9565b5b600062000a5c8482850162000a1c565b91505092915050565b62000a7081620009ee565b82525050565b600060408201905062000a8d600083018562000a65565b62000a9c602083018462000a65565b9392505050565b62000aae81620008af565b82525050565b600060208201905062000acb600083018462000aa3565b92915050565b612e638062000ae16000396000f3fe6080604052600436106101a05760003560e01c80638a8c523c116100ec578063ac1d06091161008a578063d8b6004011610064578063d8b600401461058d578063dd62ed3e146105b6578063f2fde38b146105f3578063f99031a71461061c576101a7565b8063ac1d06091461050e578063cc1776d314610537578063cd03425c14610562576101a7565b80639036ed4d116100c65780639036ed4d1461045457806395d89b411461047d578063a21e876e146104a8578063a9059cbb146104d1576101a7565b80638a8c523c146103e75780638c0b5e22146103fe5780638da5cb5b14610429576101a7565b806349bd5a5e1161015957806370a082311161013357806370a0823114610351578063715018a61461038e578063751039fc146103a557806375f0a874146103bc576101a7565b806349bd5a5e146102d25780634f7041a5146102fd5780635d098b3814610328576101a7565b806306fdde03146101ac578063095ea7b3146101d7578063111a46511461021457806318160ddd1461023f57806323b872dd1461026a578063313ce567146102a7576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610659565b6040516101ce9190611f63565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f9919061202d565b610696565b60405161020b9190612088565b60405180910390f35b34801561022057600080fd5b506102296106b4565b6040516102369190612088565b60405180910390f35b34801561024b57600080fd5b506102546106c7565b60405161026191906120b2565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c91906120cd565b6106eb565b60405161029e9190612088565b60405180910390f35b3480156102b357600080fd5b506102bc6107a3565b6040516102c9919061213c565b60405180910390f35b3480156102de57600080fd5b506102e76107ac565b6040516102f49190612166565b60405180910390f35b34801561030957600080fd5b506103126107d2565b60405161031f91906120b2565b60405180910390f35b34801561033457600080fd5b5061034f600480360381019061034a9190612181565b6107d8565b005b34801561035d57600080fd5b5061037860048036038101906103739190612181565b6108b1565b60405161038591906120b2565b60405180910390f35b34801561039a57600080fd5b506103a36108fa565b005b3480156103b157600080fd5b506103ba610a4d565b005b3480156103c857600080fd5b506103d1610b07565b6040516103de91906121cf565b60405180910390f35b3480156103f357600080fd5b506103fc610b2d565b005b34801561040a57600080fd5b50610413610be6565b60405161042091906120b2565b60405180910390f35b34801561043557600080fd5b5061043e610bec565b60405161044b9190612166565b60405180910390f35b34801561046057600080fd5b5061047b600480360381019061047691906121ea565b610c15565b005b34801561048957600080fd5b50610492610d0d565b60405161049f9190611f63565b60405180910390f35b3480156104b457600080fd5b506104cf60048036038101906104ca919061239e565b610d4a565b005b3480156104dd57600080fd5b506104f860048036038101906104f3919061202d565b610e74565b6040516105059190612088565b60405180910390f35b34801561051a57600080fd5b50610535600480360381019061053091906123fa565b610e92565b005b34801561054357600080fd5b5061054c610fd0565b60405161055991906120b2565b60405180910390f35b34801561056e57600080fd5b50610577610fd6565b60405161058491906120b2565b60405180910390f35b34801561059957600080fd5b506105b460048036038101906105af919061243a565b610fdc565b005b3480156105c257600080fd5b506105dd60048036038101906105d89190612467565b6110a8565b6040516105ea91906120b2565b60405180910390f35b3480156105ff57600080fd5b5061061a60048036038101906106159190612181565b61112f565b005b34801561062857600080fd5b50610643600480360381019061063e9190612181565b6111d0565b6040516106509190612088565b60405180910390f35b60606040518060400160405280600881526020017f4f7264695363616e000000000000000000000000000000000000000000000000815250905090565b60006106aa6106a36111f0565b84846111f8565b6001905092915050565b600a60009054906101000a900460ff1681565b60006012600a6106d79190612609565b633b9aca006106e69190612654565b905090565b60006106f88484846113c1565b610798846107046111f0565b84600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061074e6111f0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107939190612696565b6111f8565b600190509392505050565b60006012905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b6107e06111f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461086d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086490612716565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109026111f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461098f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098690612716565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a556111f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad990612716565b60405180910390fd5b6012600a610af09190612609565b633b9aca00610aff9190612654565b600581905550565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b356111f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb990612716565b60405180910390fd5b6001600c60146101000a81548160ff02191690831515021790555043600981905550565b60055481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610c1d6111f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610caa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca190612716565b60405180910390fd5b600a8211158015610cbc5750600a8111155b610cfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf290612782565b60405180910390fd5b81600781905550806008819055505050565b60606040518060400160405280600581526020017f4f52444953000000000000000000000000000000000000000000000000000000815250905090565b610d526111f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ddf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd690612716565b60405180910390fd5b60005b8251811015610e6f578160046000858481518110610e0357610e026127a2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e67906127d1565b915050610de2565b505050565b6000610e88610e816111f0565b84846113c1565b6001905092915050565b610e9a6111f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1e90612716565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fc551bbb22d0406dbfb8b6b7740cc521bcf44e1106029cf899c19b6a8e4c99d5182604051610fc49190612088565b60405180910390a25050565b60085481565b600d5481565b610fe46111f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611071576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106890612716565b60405180910390fd5b80600d81905550807fc9a07d0106b62dd0f2706dab6a7aee4c4d0dc35078c994bf5c08d5d85861d46b60405160405180910390a250565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6111376111f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bb90612716565b60405180910390fd5b6111cd81611702565b50565b600e6020528060005260406000206000915054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611267576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125e9061288b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cd9061291d565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113b491906120b2565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611430576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611427906129af565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806114d15750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156114e35760006006819055506116f2565b600c60149054906101000a900460ff16611532576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152990612a1b565b60405180910390fd5b600554811115611577576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156e90612a87565b60405180910390fd5b6000600954141580156115975750600a60009054906101000a900460ff16155b156115a5576115a461182e565b5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611608576007546006819055506116f1565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116e7576000611668306108b1565b90506012600a6116789190612609565b6175306116859190612654565b8111156116d8576012600a61169a9190612609565b620b71b06116a89190612654565b8111156116ce576012600a6116bd9190612609565b620b71b06116cb9190612654565b90505b6116d781611942565b5b600854600681905550506116f0565b60006006819055505b5b5b6116fd838383611ba7565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611771576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176890612b19565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a60095461183d9190612b39565b431161184f5761184e601480611ec1565b5b600a60095461185e9190612b39565b4311801561187a575060166009546118769190612b39565b4311155b1561188b5761188a600f80611ec1565b5b601660095461189a9190612b39565b431180156118b6575060226009546118b29190612b39565b4311155b156118c7576118c6600a80611ec1565b5b60226009546118d69190612b39565b431180156118f25750602e6009546118ee9190612b39565b4311155b1561190357611902600680611ec1565b5b602e6009546119129190612b39565b43111561194057611924600480611ec1565b6001600a60006101000a81548160ff0219169083151502179055505b565b6000600267ffffffffffffffff81111561195f5761195e61222f565b5b60405190808252806020026020018201604052801561198d5781602001602082028036833780820191505090505b50905030816000815181106119a5576119a46127a2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a709190612b82565b81600181518110611a8457611a836127a2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611aeb30600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111f8565b600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611b71959493929190612d07565b600060405180830381600087803b158015611b8b57600080fd5b505af1158015611b9f573d6000803e3d6000fd5b505050505050565b6000606460065483611bb99190612654565b611bc39190612d90565b905060008183611bd39190612696565b905082600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c209190612696565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cae9190612b39565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d3c9190612b39565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611e5557600d54600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611e54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4b90612e0d565b60405180910390fd5b5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611eb291906120b2565b60405180910390a35050505050565b81600781905550806008819055505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611f0d578082015181840152602081019050611ef2565b60008484015250505050565b6000601f19601f8301169050919050565b6000611f3582611ed3565b611f3f8185611ede565b9350611f4f818560208601611eef565b611f5881611f19565b840191505092915050565b60006020820190508181036000830152611f7d8184611f2a565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611fc482611f99565b9050919050565b611fd481611fb9565b8114611fdf57600080fd5b50565b600081359050611ff181611fcb565b92915050565b6000819050919050565b61200a81611ff7565b811461201557600080fd5b50565b60008135905061202781612001565b92915050565b6000806040838503121561204457612043611f8f565b5b600061205285828601611fe2565b925050602061206385828601612018565b9150509250929050565b60008115159050919050565b6120828161206d565b82525050565b600060208201905061209d6000830184612079565b92915050565b6120ac81611ff7565b82525050565b60006020820190506120c760008301846120a3565b92915050565b6000806000606084860312156120e6576120e5611f8f565b5b60006120f486828701611fe2565b935050602061210586828701611fe2565b925050604061211686828701612018565b9150509250925092565b600060ff82169050919050565b61213681612120565b82525050565b6000602082019050612151600083018461212d565b92915050565b61216081611fb9565b82525050565b600060208201905061217b6000830184612157565b92915050565b60006020828403121561219757612196611f8f565b5b60006121a584828501611fe2565b91505092915050565b60006121b982611f99565b9050919050565b6121c9816121ae565b82525050565b60006020820190506121e460008301846121c0565b92915050565b6000806040838503121561220157612200611f8f565b5b600061220f85828601612018565b925050602061222085828601612018565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61226782611f19565b810181811067ffffffffffffffff821117156122865761228561222f565b5b80604052505050565b6000612299611f85565b90506122a5828261225e565b919050565b600067ffffffffffffffff8211156122c5576122c461222f565b5b602082029050602081019050919050565b600080fd5b60006122ee6122e9846122aa565b61228f565b90508083825260208201905060208402830185811115612311576123106122d6565b5b835b8181101561233a57806123268882611fe2565b845260208401935050602081019050612313565b5050509392505050565b600082601f8301126123595761235861222a565b5b81356123698482602086016122db565b91505092915050565b61237b8161206d565b811461238657600080fd5b50565b60008135905061239881612372565b92915050565b600080604083850312156123b5576123b4611f8f565b5b600083013567ffffffffffffffff8111156123d3576123d2611f94565b5b6123df85828601612344565b92505060206123f085828601612389565b9150509250929050565b6000806040838503121561241157612410611f8f565b5b600061241f85828601611fe2565b925050602061243085828601612389565b9150509250929050565b6000602082840312156124505761244f611f8f565b5b600061245e84828501612018565b91505092915050565b6000806040838503121561247e5761247d611f8f565b5b600061248c85828601611fe2565b925050602061249d85828601611fe2565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561252d57808604811115612509576125086124a7565b5b60018516156125185780820291505b8081029050612526856124d6565b94506124ed565b94509492505050565b6000826125465760019050612602565b816125545760009050612602565b816001811461256a5760028114612574576125a3565b6001915050612602565b60ff841115612586576125856124a7565b5b8360020a91508482111561259d5761259c6124a7565b5b50612602565b5060208310610133831016604e8410600b84101617156125d85782820a9050838111156125d3576125d26124a7565b5b612602565b6125e584848460016124e3565b925090508184048111156125fc576125fb6124a7565b5b81810290505b9392505050565b600061261482611ff7565b915061261f83612120565b925061264c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612536565b905092915050565b600061265f82611ff7565b915061266a83611ff7565b925082820261267881611ff7565b9150828204841483151761268f5761268e6124a7565b5b5092915050565b60006126a182611ff7565b91506126ac83611ff7565b92508282039050818111156126c4576126c36124a7565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612700602083611ede565b915061270b826126ca565b602082019050919050565b6000602082019050818103600083015261272f816126f3565b9050919050565b7f45524332303a2077726f6e67207461782076616c756521000000000000000000600082015250565b600061276c601783611ede565b915061277782612736565b602082019050919050565b6000602082019050818103600083015261279b8161275f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006127dc82611ff7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361280e5761280d6124a7565b5b600182019050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612875602483611ede565b915061288082612819565b604082019050919050565b600060208201905081810360008301526128a481612868565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612907602283611ede565b9150612912826128ab565b604082019050919050565b60006020820190508181036000830152612936816128fa565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612999602583611ede565b91506129a48261293d565b604082019050919050565b600060208201905081810360008301526129c88161298c565b9050919050565b7f576169742074696c6c206c61756e636800000000000000000000000000000000600082015250565b6000612a05601083611ede565b9150612a10826129cf565b602082019050919050565b60006020820190508181036000830152612a34816129f8565b9050919050565b7f4d6178205478416d6f756e74203225206174206c61756e636800000000000000600082015250565b6000612a71601983611ede565b9150612a7c82612a3b565b602082019050919050565b60006020820190508181036000830152612aa081612a64565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612b03602683611ede565b9150612b0e82612aa7565b604082019050919050565b60006020820190508181036000830152612b3281612af6565b9050919050565b6000612b4482611ff7565b9150612b4f83611ff7565b9250828201905080821115612b6757612b666124a7565b5b92915050565b600081519050612b7c81611fcb565b92915050565b600060208284031215612b9857612b97611f8f565b5b6000612ba684828501612b6d565b91505092915050565b6000819050919050565b6000819050919050565b6000612bde612bd9612bd484612baf565b612bb9565b611ff7565b9050919050565b612bee81612bc3565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612c2981611fb9565b82525050565b6000612c3b8383612c20565b60208301905092915050565b6000602082019050919050565b6000612c5f82612bf4565b612c698185612bff565b9350612c7483612c10565b8060005b83811015612ca5578151612c8c8882612c2f565b9750612c9783612c47565b925050600181019050612c78565b5085935050505092915050565b6000612ccd612cc8612cc384611f99565b612bb9565b611f99565b9050919050565b6000612cdf82612cb2565b9050919050565b6000612cf182612cd4565b9050919050565b612d0181612ce6565b82525050565b600060a082019050612d1c60008301886120a3565b612d296020830187612be5565b8181036040830152612d3b8186612c54565b9050612d4a6060830185612cf8565b612d5760808301846120a3565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612d9b82611ff7565b9150612da683611ff7565b925082612db657612db5612d61565b5b828204905092915050565b7f4f766572204d617820486f6c64696e6720416d6f756e74000000000000000000600082015250565b6000612df7601783611ede565b9150612e0282612dc1565b602082019050919050565b60006020820190508181036000830152612e2681612dea565b905091905056fea26469706673582212205ef6a7b3afe8d96c4eed048d280909adec43b735c7559e9214e377775863d97d64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101a05760003560e01c80638a8c523c116100ec578063ac1d06091161008a578063d8b6004011610064578063d8b600401461058d578063dd62ed3e146105b6578063f2fde38b146105f3578063f99031a71461061c576101a7565b8063ac1d06091461050e578063cc1776d314610537578063cd03425c14610562576101a7565b80639036ed4d116100c65780639036ed4d1461045457806395d89b411461047d578063a21e876e146104a8578063a9059cbb146104d1576101a7565b80638a8c523c146103e75780638c0b5e22146103fe5780638da5cb5b14610429576101a7565b806349bd5a5e1161015957806370a082311161013357806370a0823114610351578063715018a61461038e578063751039fc146103a557806375f0a874146103bc576101a7565b806349bd5a5e146102d25780634f7041a5146102fd5780635d098b3814610328576101a7565b806306fdde03146101ac578063095ea7b3146101d7578063111a46511461021457806318160ddd1461023f57806323b872dd1461026a578063313ce567146102a7576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610659565b6040516101ce9190611f63565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f9919061202d565b610696565b60405161020b9190612088565b60405180910390f35b34801561022057600080fd5b506102296106b4565b6040516102369190612088565b60405180910390f35b34801561024b57600080fd5b506102546106c7565b60405161026191906120b2565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c91906120cd565b6106eb565b60405161029e9190612088565b60405180910390f35b3480156102b357600080fd5b506102bc6107a3565b6040516102c9919061213c565b60405180910390f35b3480156102de57600080fd5b506102e76107ac565b6040516102f49190612166565b60405180910390f35b34801561030957600080fd5b506103126107d2565b60405161031f91906120b2565b60405180910390f35b34801561033457600080fd5b5061034f600480360381019061034a9190612181565b6107d8565b005b34801561035d57600080fd5b5061037860048036038101906103739190612181565b6108b1565b60405161038591906120b2565b60405180910390f35b34801561039a57600080fd5b506103a36108fa565b005b3480156103b157600080fd5b506103ba610a4d565b005b3480156103c857600080fd5b506103d1610b07565b6040516103de91906121cf565b60405180910390f35b3480156103f357600080fd5b506103fc610b2d565b005b34801561040a57600080fd5b50610413610be6565b60405161042091906120b2565b60405180910390f35b34801561043557600080fd5b5061043e610bec565b60405161044b9190612166565b60405180910390f35b34801561046057600080fd5b5061047b600480360381019061047691906121ea565b610c15565b005b34801561048957600080fd5b50610492610d0d565b60405161049f9190611f63565b60405180910390f35b3480156104b457600080fd5b506104cf60048036038101906104ca919061239e565b610d4a565b005b3480156104dd57600080fd5b506104f860048036038101906104f3919061202d565b610e74565b6040516105059190612088565b60405180910390f35b34801561051a57600080fd5b50610535600480360381019061053091906123fa565b610e92565b005b34801561054357600080fd5b5061054c610fd0565b60405161055991906120b2565b60405180910390f35b34801561056e57600080fd5b50610577610fd6565b60405161058491906120b2565b60405180910390f35b34801561059957600080fd5b506105b460048036038101906105af919061243a565b610fdc565b005b3480156105c257600080fd5b506105dd60048036038101906105d89190612467565b6110a8565b6040516105ea91906120b2565b60405180910390f35b3480156105ff57600080fd5b5061061a60048036038101906106159190612181565b61112f565b005b34801561062857600080fd5b50610643600480360381019061063e9190612181565b6111d0565b6040516106509190612088565b60405180910390f35b60606040518060400160405280600881526020017f4f7264695363616e000000000000000000000000000000000000000000000000815250905090565b60006106aa6106a36111f0565b84846111f8565b6001905092915050565b600a60009054906101000a900460ff1681565b60006012600a6106d79190612609565b633b9aca006106e69190612654565b905090565b60006106f88484846113c1565b610798846107046111f0565b84600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061074e6111f0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107939190612696565b6111f8565b600190509392505050565b60006012905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b6107e06111f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461086d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086490612716565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109026111f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461098f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098690612716565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a556111f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad990612716565b60405180910390fd5b6012600a610af09190612609565b633b9aca00610aff9190612654565b600581905550565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b356111f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb990612716565b60405180910390fd5b6001600c60146101000a81548160ff02191690831515021790555043600981905550565b60055481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610c1d6111f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610caa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca190612716565b60405180910390fd5b600a8211158015610cbc5750600a8111155b610cfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf290612782565b60405180910390fd5b81600781905550806008819055505050565b60606040518060400160405280600581526020017f4f52444953000000000000000000000000000000000000000000000000000000815250905090565b610d526111f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ddf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd690612716565b60405180910390fd5b60005b8251811015610e6f578160046000858481518110610e0357610e026127a2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e67906127d1565b915050610de2565b505050565b6000610e88610e816111f0565b84846113c1565b6001905092915050565b610e9a6111f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1e90612716565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fc551bbb22d0406dbfb8b6b7740cc521bcf44e1106029cf899c19b6a8e4c99d5182604051610fc49190612088565b60405180910390a25050565b60085481565b600d5481565b610fe46111f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611071576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106890612716565b60405180910390fd5b80600d81905550807fc9a07d0106b62dd0f2706dab6a7aee4c4d0dc35078c994bf5c08d5d85861d46b60405160405180910390a250565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6111376111f0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bb90612716565b60405180910390fd5b6111cd81611702565b50565b600e6020528060005260406000206000915054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611267576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125e9061288b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cd9061291d565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113b491906120b2565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611430576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611427906129af565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806114d15750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156114e35760006006819055506116f2565b600c60149054906101000a900460ff16611532576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152990612a1b565b60405180910390fd5b600554811115611577576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156e90612a87565b60405180910390fd5b6000600954141580156115975750600a60009054906101000a900460ff16155b156115a5576115a461182e565b5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611608576007546006819055506116f1565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116e7576000611668306108b1565b90506012600a6116789190612609565b6175306116859190612654565b8111156116d8576012600a61169a9190612609565b620b71b06116a89190612654565b8111156116ce576012600a6116bd9190612609565b620b71b06116cb9190612654565b90505b6116d781611942565b5b600854600681905550506116f0565b60006006819055505b5b5b6116fd838383611ba7565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611771576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176890612b19565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a60095461183d9190612b39565b431161184f5761184e601480611ec1565b5b600a60095461185e9190612b39565b4311801561187a575060166009546118769190612b39565b4311155b1561188b5761188a600f80611ec1565b5b601660095461189a9190612b39565b431180156118b6575060226009546118b29190612b39565b4311155b156118c7576118c6600a80611ec1565b5b60226009546118d69190612b39565b431180156118f25750602e6009546118ee9190612b39565b4311155b1561190357611902600680611ec1565b5b602e6009546119129190612b39565b43111561194057611924600480611ec1565b6001600a60006101000a81548160ff0219169083151502179055505b565b6000600267ffffffffffffffff81111561195f5761195e61222f565b5b60405190808252806020026020018201604052801561198d5781602001602082028036833780820191505090505b50905030816000815181106119a5576119a46127a2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a709190612b82565b81600181518110611a8457611a836127a2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611aeb30600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111f8565b600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611b71959493929190612d07565b600060405180830381600087803b158015611b8b57600080fd5b505af1158015611b9f573d6000803e3d6000fd5b505050505050565b6000606460065483611bb99190612654565b611bc39190612d90565b905060008183611bd39190612696565b905082600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c209190612696565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cae9190612b39565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d3c9190612b39565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611e5557600d54600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611e54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4b90612e0d565b60405180910390fd5b5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611eb291906120b2565b60405180910390a35050505050565b81600781905550806008819055505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611f0d578082015181840152602081019050611ef2565b60008484015250505050565b6000601f19601f8301169050919050565b6000611f3582611ed3565b611f3f8185611ede565b9350611f4f818560208601611eef565b611f5881611f19565b840191505092915050565b60006020820190508181036000830152611f7d8184611f2a565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611fc482611f99565b9050919050565b611fd481611fb9565b8114611fdf57600080fd5b50565b600081359050611ff181611fcb565b92915050565b6000819050919050565b61200a81611ff7565b811461201557600080fd5b50565b60008135905061202781612001565b92915050565b6000806040838503121561204457612043611f8f565b5b600061205285828601611fe2565b925050602061206385828601612018565b9150509250929050565b60008115159050919050565b6120828161206d565b82525050565b600060208201905061209d6000830184612079565b92915050565b6120ac81611ff7565b82525050565b60006020820190506120c760008301846120a3565b92915050565b6000806000606084860312156120e6576120e5611f8f565b5b60006120f486828701611fe2565b935050602061210586828701611fe2565b925050604061211686828701612018565b9150509250925092565b600060ff82169050919050565b61213681612120565b82525050565b6000602082019050612151600083018461212d565b92915050565b61216081611fb9565b82525050565b600060208201905061217b6000830184612157565b92915050565b60006020828403121561219757612196611f8f565b5b60006121a584828501611fe2565b91505092915050565b60006121b982611f99565b9050919050565b6121c9816121ae565b82525050565b60006020820190506121e460008301846121c0565b92915050565b6000806040838503121561220157612200611f8f565b5b600061220f85828601612018565b925050602061222085828601612018565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61226782611f19565b810181811067ffffffffffffffff821117156122865761228561222f565b5b80604052505050565b6000612299611f85565b90506122a5828261225e565b919050565b600067ffffffffffffffff8211156122c5576122c461222f565b5b602082029050602081019050919050565b600080fd5b60006122ee6122e9846122aa565b61228f565b90508083825260208201905060208402830185811115612311576123106122d6565b5b835b8181101561233a57806123268882611fe2565b845260208401935050602081019050612313565b5050509392505050565b600082601f8301126123595761235861222a565b5b81356123698482602086016122db565b91505092915050565b61237b8161206d565b811461238657600080fd5b50565b60008135905061239881612372565b92915050565b600080604083850312156123b5576123b4611f8f565b5b600083013567ffffffffffffffff8111156123d3576123d2611f94565b5b6123df85828601612344565b92505060206123f085828601612389565b9150509250929050565b6000806040838503121561241157612410611f8f565b5b600061241f85828601611fe2565b925050602061243085828601612389565b9150509250929050565b6000602082840312156124505761244f611f8f565b5b600061245e84828501612018565b91505092915050565b6000806040838503121561247e5761247d611f8f565b5b600061248c85828601611fe2565b925050602061249d85828601611fe2565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561252d57808604811115612509576125086124a7565b5b60018516156125185780820291505b8081029050612526856124d6565b94506124ed565b94509492505050565b6000826125465760019050612602565b816125545760009050612602565b816001811461256a5760028114612574576125a3565b6001915050612602565b60ff841115612586576125856124a7565b5b8360020a91508482111561259d5761259c6124a7565b5b50612602565b5060208310610133831016604e8410600b84101617156125d85782820a9050838111156125d3576125d26124a7565b5b612602565b6125e584848460016124e3565b925090508184048111156125fc576125fb6124a7565b5b81810290505b9392505050565b600061261482611ff7565b915061261f83612120565b925061264c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612536565b905092915050565b600061265f82611ff7565b915061266a83611ff7565b925082820261267881611ff7565b9150828204841483151761268f5761268e6124a7565b5b5092915050565b60006126a182611ff7565b91506126ac83611ff7565b92508282039050818111156126c4576126c36124a7565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612700602083611ede565b915061270b826126ca565b602082019050919050565b6000602082019050818103600083015261272f816126f3565b9050919050565b7f45524332303a2077726f6e67207461782076616c756521000000000000000000600082015250565b600061276c601783611ede565b915061277782612736565b602082019050919050565b6000602082019050818103600083015261279b8161275f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006127dc82611ff7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361280e5761280d6124a7565b5b600182019050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612875602483611ede565b915061288082612819565b604082019050919050565b600060208201905081810360008301526128a481612868565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612907602283611ede565b9150612912826128ab565b604082019050919050565b60006020820190508181036000830152612936816128fa565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612999602583611ede565b91506129a48261293d565b604082019050919050565b600060208201905081810360008301526129c88161298c565b9050919050565b7f576169742074696c6c206c61756e636800000000000000000000000000000000600082015250565b6000612a05601083611ede565b9150612a10826129cf565b602082019050919050565b60006020820190508181036000830152612a34816129f8565b9050919050565b7f4d6178205478416d6f756e74203225206174206c61756e636800000000000000600082015250565b6000612a71601983611ede565b9150612a7c82612a3b565b602082019050919050565b60006020820190508181036000830152612aa081612a64565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612b03602683611ede565b9150612b0e82612aa7565b604082019050919050565b60006020820190508181036000830152612b3281612af6565b9050919050565b6000612b4482611ff7565b9150612b4f83611ff7565b9250828201905080821115612b6757612b666124a7565b5b92915050565b600081519050612b7c81611fcb565b92915050565b600060208284031215612b9857612b97611f8f565b5b6000612ba684828501612b6d565b91505092915050565b6000819050919050565b6000819050919050565b6000612bde612bd9612bd484612baf565b612bb9565b611ff7565b9050919050565b612bee81612bc3565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612c2981611fb9565b82525050565b6000612c3b8383612c20565b60208301905092915050565b6000602082019050919050565b6000612c5f82612bf4565b612c698185612bff565b9350612c7483612c10565b8060005b83811015612ca5578151612c8c8882612c2f565b9750612c9783612c47565b925050600181019050612c78565b5085935050505092915050565b6000612ccd612cc8612cc384611f99565b612bb9565b611f99565b9050919050565b6000612cdf82612cb2565b9050919050565b6000612cf182612cd4565b9050919050565b612d0181612ce6565b82525050565b600060a082019050612d1c60008301886120a3565b612d296020830187612be5565b8181036040830152612d3b8186612c54565b9050612d4a6060830185612cf8565b612d5760808301846120a3565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612d9b82611ff7565b9150612da683611ff7565b925082612db657612db5612d61565b5b828204905092915050565b7f4f766572204d617820486f6c64696e6720416d6f756e74000000000000000000600082015250565b6000612df7601783611ede565b9150612e0282612dc1565b602082019050919050565b60006020820190508181036000830152612e2681612dea565b905091905056fea26469706673582212205ef6a7b3afe8d96c4eed048d280909adec43b735c7559e9214e377775863d97d64736f6c63430008120033

Deployed Bytecode Sourcemap

2652:7995:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4859:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5693:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3439:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5136:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5861:264;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5045:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3622:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3334:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7168:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5244:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1981:148;;;;;;;;;;;;;:::i;:::-;;6831:88;;;;;;;;;;;;;:::i;:::-;;3657:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6476:113;;;;;;;;;;;;;:::i;:::-;;3221:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1413:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6927:227;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4950:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6597:226;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5370:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9690:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3366:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3759:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9514:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5543:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1627:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3837:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4859:83;4896:13;4929:5;;;;;;;;;;;;;;;;;4922:12;;4859:83;:::o;5693:160::-;5768:4;5784:39;5793:12;:10;:12::i;:::-;5807:7;5816:6;5784:8;:39::i;:::-;5841:4;5834:11;;5693:160;;;;:::o;3439:26::-;;;;;;;;;;;;;:::o;5136:100::-;5189:7;2978:2;3035;:13;;;;:::i;:::-;3027:5;:21;;;;:::i;:::-;5209:19;;5136:100;:::o;5861:264::-;5959:4;5976:36;5986:6;5994:9;6005:6;5976:9;:36::i;:::-;6023:72;6032:6;6039:12;:10;:12::i;:::-;6088:6;6052:11;:19;6064:6;6052:19;;;;;;;;;;;;;;;:33;6072:12;:10;:12::i;:::-;6052:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;6023:8;:72::i;:::-;6113:4;6106:11;;5861:264;;;;;:::o;5045:83::-;5086:5;2978:2;5104:16;;5045:83;:::o;3622:28::-;;;;;;;;;;;;;:::o;3334:25::-;;;;:::o;7168:135::-;1550:12;:10;:12::i;:::-;1540:22;;:6;;;;;;;;;;:22;;;1532:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7278:16:::1;7252:15;;:43;;;;;;;;;;;;;;;;;;7168:135:::0;:::o;5244:118::-;5310:7;5337:8;:17;5346:7;5337:17;;;;;;;;;;;;;;;;5330:24;;5244:118;;;:::o;1981:148::-;1550:12;:10;:12::i;:::-;1540:22;;:6;;;;;;;;;;:22;;;1532:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2088:1:::1;2051:40;;2072:6;::::0;::::1;;;;;;;;2051:40;;;;;;;;;;;;2119:1;2102:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1981:148::o:0;6831:88::-;1550:12;:10;:12::i;:::-;1540:22;;:6;;;;;;;;;;:22;;;1532:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2978:2:::1;3035;:13;;;;:::i;:::-;3027:5;:21;;;;:::i;:::-;6885:11;:26;;;;6831:88::o:0;3657:38::-;;;;;;;;;;;;;:::o;6476:113::-;1550:12;:10;:12::i;:::-;1540:22;;:6;;;;;;;;;;:22;;;1532:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6540:4:::1;6531:6;;:13;;;;;;;;;;;;;;;;;;6569:12;6555:11;:26;;;;6476:113::o:0;3221:40::-;;;;:::o;1413:79::-;1451:7;1478:6;;;;;;;;;;;1471:13;;1413:79;:::o;6927:227::-;1550:12;:10;:12::i;:::-;1540:22;;:6;;;;;;;;;;:22;;;1532:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7036:2:::1;7023:9;:15;;:35;;;;;7056:2;7042:10;:16;;7023:35;7015:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;7106:9;7097:6;:18;;;;7136:10;7126:7;:20;;;;6927:227:::0;;:::o;4950:87::-;4989:13;5022:7;;;;;;;;;;;;;;;;;5015:14;;4950:87;:::o;6597:226::-;1550:12;:10;:12::i;:::-;1540:22;;:6;;;;;;;;;;:22;;;1532:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6699:9:::1;6695:121;6718:8;:15;6714:1;:19;6695:121;;;6797:7;6757:24;:37;6782:8;6791:1;6782:11;;;;;;;;:::i;:::-;;;;;;;;6757:37;;;;;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;6735:3;;;;;:::i;:::-;;;;6695:121;;;;6597:226:::0;;:::o;5370:165::-;5447:4;5463:42;5473:12;:10;:12::i;:::-;5487:9;5498:6;5463:9;:42::i;:::-;5523:4;5516:11;;5370:165;;;;:::o;9690:172::-;1550:12;:10;:12::i;:::-;1540:22;;:6;;;;;;;;;;:22;;;1532:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9798:6:::1;9775:11;:20;9787:7;9775:20;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;9838:7;9822:32;;;9847:6;9822:32;;;;;;:::i;:::-;;;;;;;;9690:172:::0;;:::o;3366:26::-;;;;:::o;3759:49::-;;;;:::o;9514:168::-;1550:12;:10;:12::i;:::-;1540:22;;:6;;;;;;;;;;:22;;;1532:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9610:14:::1;9594:13;:30;;;;9659:14;9642:32;;;;;;;;;;9514:168:::0;:::o;5543:142::-;5624:7;5650:11;:18;5662:5;5650:18;;;;;;;;;;;;;;;:27;5669:7;5650:27;;;;;;;;;;;;;;;;5643:34;;5543:142;;;;:::o;1627:109::-;1550:12;:10;:12::i;:::-;1540:22;;:6;;;;;;;;;;:22;;;1532:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1700:28:::1;1719:8;1700:18;:28::i;:::-;1627:109:::0;:::o;3837:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;251:98::-;304:7;331:10;324:17;;251:98;:::o;6133:335::-;6243:1;6226:19;;:5;:19;;;6218:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6324:1;6305:21;;:7;:21;;;6297:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6406:6;6376:11;:18;6388:5;6376:18;;;;;;;;;;;;;;;:27;6395:7;6376:27;;;;;;;;;;;;;;;:36;;;;6444:7;6428:32;;6437:5;6428:32;;;6453:6;6428:32;;;;;;:::i;:::-;;;;;;;;6133:335;;;:::o;7900:1090::-;8004:1;7988:18;;:4;:18;;;7980:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8065:24;:30;8090:4;8065:30;;;;;;;;;;;;;;;;;;;;;;;;;:62;;;;8099:24;:28;8124:2;8099:28;;;;;;;;;;;;;;;;;;;;;;;;;8065:62;8061:879;;;8151:1;8144:4;:8;;;;8061:879;;;8193:6;;;;;;;;;;;8185:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;8253:11;;8243:6;:21;;8235:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;8328:1;8313:11;;:16;;:35;;;;;8334:14;;;;;;;;;;;8333:15;8313:35;8309:94;;;8369:18;:16;:18::i;:::-;8309:94;8429:13;;;;;;;;;;;8421:21;;:4;:21;;;8417:512;;8470:6;;8463:4;:13;;;;8417:512;;;8508:13;;;;;;;;;;;8502:19;;:2;:19;;;8498:431;;8542:20;8565:24;8583:4;8565:9;:24::i;:::-;8542:47;;2978:2;3098;:13;;;;:::i;:::-;3090:5;:21;;;;:::i;:::-;8612:12;:22;8608:224;;;2978:2;3182;:13;;;;:::i;:::-;3173:6;:22;;;;:::i;:::-;8663:12;:22;8659:101;;;2978:2;3182;:13;;;;:::i;:::-;3173:6;:22;;;;:::i;:::-;8714;;8659:101;8782:30;8799:12;8782:16;:30::i;:::-;8608:224;8857:7;;8850:4;:14;;;;8523:357;8498:431;;;8912:1;8905:4;:8;;;;8498:431;8417:512;8061:879;8950:32;8965:4;8971:2;8975:6;8950:14;:32::i;:::-;7900:1090;;;:::o;1744:229::-;1838:1;1818:22;;:8;:22;;;1810:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1928:8;1899:38;;1920:6;;;;;;;;;;1899:38;;;;;;;;;;;;1957:8;1948:6;;:17;;;;;;;;;;;;;;;;;;1744:229;:::o;9868:657::-;9950:2;9936:11;;:16;;;;:::i;:::-;9920:12;:32;9916:85;;9969:20;9983:2;9986;9969:13;:20::i;:::-;9916:85;10044:2;10030:11;;:16;;;;:::i;:::-;10015:12;:31;:67;;;;;10080:2;10066:11;;:16;;;;:::i;:::-;10050:12;:32;;10015:67;10011:120;;;10099:20;10113:2;10116;10099:13;:20::i;:::-;10011:120;10174:2;10160:11;;:16;;;;:::i;:::-;10145:12;:31;:67;;;;;10210:2;10196:11;;:16;;;;:::i;:::-;10180:12;:32;;10145:67;10141:120;;;10229:20;10243:2;10246;10229:13;:20::i;:::-;10141:120;10304:2;10290:11;;:16;;;;:::i;:::-;10275:12;:31;:67;;;;;10340:2;10326:11;;:16;;;;:::i;:::-;10310:12;:32;;10275:67;10271:118;;;10359:18;10373:1;10375;10359:13;:18::i;:::-;10271:118;10432:2;10418:11;;:16;;;;:::i;:::-;10403:12;:31;10399:118;;;10451:18;10465:1;10467;10451:13;:18::i;:::-;10501:4;10484:14;;:21;;;;;;;;;;;;;;;;;;10399:118;9868:657::o;8998:473::-;9064:21;9102:1;9088:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9064:40;;9133:4;9115;9120:1;9115:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;9159:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9149:4;9154:1;9149:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;9192:62;9209:4;9224:15;;;;;;;;;;;9242:11;9192:8;:62::i;:::-;9265:15;;;;;;;;;;;:66;;;9346:11;9372:1;9388:4;9407:15;;;;;;;;;;;9437;9265:198;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9053:418;8998:473;:::o;7315:577::-;7400:17;7438:3;7430:4;;7421:6;:13;;;;:::i;:::-;7420:21;;;;:::i;:::-;7400:41;;7452:22;7486:9;7477:6;:18;;;;:::i;:::-;7452:43;;7542:6;7525:8;:14;7534:4;7525:14;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;7508:8;:14;7517:4;7508:14;;;;;;;;;;;;;;;:40;;;;7589:14;7574:8;:12;7583:2;7574:12;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;7559:8;:12;7568:2;7559:12;;;;;;;;;;;;;;;:44;;;;7666:9;7640:8;:23;7657:4;7640:23;;;;;;;;;;;;;;;;:35;;;;:::i;:::-;7614:8;:23;7631:4;7614:23;;;;;;;;;;;;;;;:61;;;;7724:11;:15;7736:2;7724:15;;;;;;;;;;;;;;;;;;;;;;;;;7720:113;;7780:13;;7764:8;:12;7773:2;7764:12;;;;;;;;;;;;;;;;:29;;7756:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;7720:113;7865:2;7850:34;;7859:4;7850:34;;;7869:14;7850:34;;;;;;:::i;:::-;;;;;;;;7389:503;;7315:577;;;:::o;10531:113::-;10606:4;10597:6;:13;;;;10631:5;10621:7;:15;;;;10531:113;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:118::-;4940:24;4958:5;4940:24;:::i;:::-;4935:3;4928:37;4853:118;;:::o;4977:222::-;5070:4;5108:2;5097:9;5093:18;5085:26;;5121:71;5189:1;5178:9;5174:17;5165:6;5121:71;:::i;:::-;4977:222;;;;:::o;5205:329::-;5264:6;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5205:329;;;;:::o;5540:104::-;5585:7;5614:24;5632:5;5614:24;:::i;:::-;5603:35;;5540:104;;;:::o;5650:142::-;5753:32;5779:5;5753:32;:::i;:::-;5748:3;5741:45;5650:142;;:::o;5798:254::-;5907:4;5945:2;5934:9;5930:18;5922:26;;5958:87;6042:1;6031:9;6027:17;6018:6;5958:87;:::i;:::-;5798:254;;;;:::o;6058:474::-;6126:6;6134;6183:2;6171:9;6162:7;6158:23;6154:32;6151:119;;;6189:79;;:::i;:::-;6151:119;6309:1;6334:53;6379:7;6370:6;6359:9;6355:22;6334:53;:::i;:::-;6324:63;;6280:117;6436:2;6462:53;6507:7;6498:6;6487:9;6483:22;6462:53;:::i;:::-;6452:63;;6407:118;6058:474;;;;;:::o;6538:117::-;6647:1;6644;6637:12;6661:180;6709:77;6706:1;6699:88;6806:4;6803:1;6796:15;6830:4;6827:1;6820:15;6847:281;6930:27;6952:4;6930:27;:::i;:::-;6922:6;6918:40;7060:6;7048:10;7045:22;7024:18;7012:10;7009:34;7006:62;7003:88;;;7071:18;;:::i;:::-;7003:88;7111:10;7107:2;7100:22;6890:238;6847:281;;:::o;7134:129::-;7168:6;7195:20;;:::i;:::-;7185:30;;7224:33;7252:4;7244:6;7224:33;:::i;:::-;7134:129;;;:::o;7269:311::-;7346:4;7436:18;7428:6;7425:30;7422:56;;;7458:18;;:::i;:::-;7422:56;7508:4;7500:6;7496:17;7488:25;;7568:4;7562;7558:15;7550:23;;7269:311;;;:::o;7586:117::-;7695:1;7692;7685:12;7726:710;7822:5;7847:81;7863:64;7920:6;7863:64;:::i;:::-;7847:81;:::i;:::-;7838:90;;7948:5;7977:6;7970:5;7963:21;8011:4;8004:5;8000:16;7993:23;;8064:4;8056:6;8052:17;8044:6;8040:30;8093:3;8085:6;8082:15;8079:122;;;8112:79;;:::i;:::-;8079:122;8227:6;8210:220;8244:6;8239:3;8236:15;8210:220;;;8319:3;8348:37;8381:3;8369:10;8348:37;:::i;:::-;8343:3;8336:50;8415:4;8410:3;8406:14;8399:21;;8286:144;8270:4;8265:3;8261:14;8254:21;;8210:220;;;8214:21;7828:608;;7726:710;;;;;:::o;8459:370::-;8530:5;8579:3;8572:4;8564:6;8560:17;8556:27;8546:122;;8587:79;;:::i;:::-;8546:122;8704:6;8691:20;8729:94;8819:3;8811:6;8804:4;8796:6;8792:17;8729:94;:::i;:::-;8720:103;;8536:293;8459:370;;;;:::o;8835:116::-;8905:21;8920:5;8905:21;:::i;:::-;8898:5;8895:32;8885:60;;8941:1;8938;8931:12;8885:60;8835:116;:::o;8957:133::-;9000:5;9038:6;9025:20;9016:29;;9054:30;9078:5;9054:30;:::i;:::-;8957:133;;;;:::o;9096:678::-;9186:6;9194;9243:2;9231:9;9222:7;9218:23;9214:32;9211:119;;;9249:79;;:::i;:::-;9211:119;9397:1;9386:9;9382:17;9369:31;9427:18;9419:6;9416:30;9413:117;;;9449:79;;:::i;:::-;9413:117;9554:78;9624:7;9615:6;9604:9;9600:22;9554:78;:::i;:::-;9544:88;;9340:302;9681:2;9707:50;9749:7;9740:6;9729:9;9725:22;9707:50;:::i;:::-;9697:60;;9652:115;9096:678;;;;;:::o;9780:468::-;9845:6;9853;9902:2;9890:9;9881:7;9877:23;9873:32;9870:119;;;9908:79;;:::i;:::-;9870:119;10028:1;10053:53;10098:7;10089:6;10078:9;10074:22;10053:53;:::i;:::-;10043:63;;9999:117;10155:2;10181:50;10223:7;10214:6;10203:9;10199:22;10181:50;:::i;:::-;10171:60;;10126:115;9780:468;;;;;:::o;10254:329::-;10313:6;10362:2;10350:9;10341:7;10337:23;10333:32;10330:119;;;10368:79;;:::i;:::-;10330:119;10488:1;10513:53;10558:7;10549:6;10538:9;10534:22;10513:53;:::i;:::-;10503:63;;10459:117;10254:329;;;;:::o;10589:474::-;10657:6;10665;10714:2;10702:9;10693:7;10689:23;10685:32;10682:119;;;10720:79;;:::i;:::-;10682:119;10840:1;10865:53;10910:7;10901:6;10890:9;10886:22;10865:53;:::i;:::-;10855:63;;10811:117;10967:2;10993:53;11038:7;11029:6;11018:9;11014:22;10993:53;:::i;:::-;10983:63;;10938:118;10589:474;;;;;:::o;11069:180::-;11117:77;11114:1;11107:88;11214:4;11211:1;11204:15;11238:4;11235:1;11228:15;11255:102;11297:8;11344:5;11341:1;11337:13;11316:34;;11255:102;;;:::o;11363:848::-;11424:5;11431:4;11455:6;11446:15;;11479:5;11470:14;;11493:712;11514:1;11504:8;11501:15;11493:712;;;11609:4;11604:3;11600:14;11594:4;11591:24;11588:50;;;11618:18;;:::i;:::-;11588:50;11668:1;11658:8;11654:16;11651:451;;;12083:4;12076:5;12072:16;12063:25;;11651:451;12133:4;12127;12123:15;12115:23;;12163:32;12186:8;12163:32;:::i;:::-;12151:44;;11493:712;;;11363:848;;;;;;;:::o;12217:1073::-;12271:5;12462:8;12452:40;;12483:1;12474:10;;12485:5;;12452:40;12511:4;12501:36;;12528:1;12519:10;;12530:5;;12501:36;12597:4;12645:1;12640:27;;;;12681:1;12676:191;;;;12590:277;;12640:27;12658:1;12649:10;;12660:5;;;12676:191;12721:3;12711:8;12708:17;12705:43;;;12728:18;;:::i;:::-;12705:43;12777:8;12774:1;12770:16;12761:25;;12812:3;12805:5;12802:14;12799:40;;;12819:18;;:::i;:::-;12799:40;12852:5;;;12590:277;;12976:2;12966:8;12963:16;12957:3;12951:4;12948:13;12944:36;12926:2;12916:8;12913:16;12908:2;12902:4;12899:12;12895:35;12879:111;12876:246;;;13032:8;13026:4;13022:19;13013:28;;13067:3;13060:5;13057:14;13054:40;;;13074:18;;:::i;:::-;13054:40;13107:5;;12876:246;13147:42;13185:3;13175:8;13169:4;13166:1;13147:42;:::i;:::-;13132:57;;;;13221:4;13216:3;13212:14;13205:5;13202:25;13199:51;;;13230:18;;:::i;:::-;13199:51;13279:4;13272:5;13268:16;13259:25;;12217:1073;;;;;;:::o;13296:281::-;13354:5;13378:23;13396:4;13378:23;:::i;:::-;13370:31;;13422:25;13438:8;13422:25;:::i;:::-;13410:37;;13466:104;13503:66;13493:8;13487:4;13466:104;:::i;:::-;13457:113;;13296:281;;;;:::o;13583:410::-;13623:7;13646:20;13664:1;13646:20;:::i;:::-;13641:25;;13680:20;13698:1;13680:20;:::i;:::-;13675:25;;13735:1;13732;13728:9;13757:30;13775:11;13757:30;:::i;:::-;13746:41;;13936:1;13927:7;13923:15;13920:1;13917:22;13897:1;13890:9;13870:83;13847:139;;13966:18;;:::i;:::-;13847:139;13631:362;13583:410;;;;:::o;13999:194::-;14039:4;14059:20;14077:1;14059:20;:::i;:::-;14054:25;;14093:20;14111:1;14093:20;:::i;:::-;14088:25;;14137:1;14134;14130:9;14122:17;;14161:1;14155:4;14152:11;14149:37;;;14166:18;;:::i;:::-;14149:37;13999:194;;;;:::o;14199:182::-;14339:34;14335:1;14327:6;14323:14;14316:58;14199:182;:::o;14387:366::-;14529:3;14550:67;14614:2;14609:3;14550:67;:::i;:::-;14543:74;;14626:93;14715:3;14626:93;:::i;:::-;14744:2;14739:3;14735:12;14728:19;;14387:366;;;:::o;14759:419::-;14925:4;14963:2;14952:9;14948:18;14940:26;;15012:9;15006:4;15002:20;14998:1;14987:9;14983:17;14976:47;15040:131;15166:4;15040:131;:::i;:::-;15032:139;;14759:419;;;:::o;15184:173::-;15324:25;15320:1;15312:6;15308:14;15301:49;15184:173;:::o;15363:366::-;15505:3;15526:67;15590:2;15585:3;15526:67;:::i;:::-;15519:74;;15602:93;15691:3;15602:93;:::i;:::-;15720:2;15715:3;15711:12;15704:19;;15363:366;;;:::o;15735:419::-;15901:4;15939:2;15928:9;15924:18;15916:26;;15988:9;15982:4;15978:20;15974:1;15963:9;15959:17;15952:47;16016:131;16142:4;16016:131;:::i;:::-;16008:139;;15735:419;;;:::o;16160:180::-;16208:77;16205:1;16198:88;16305:4;16302:1;16295:15;16329:4;16326:1;16319:15;16346:233;16385:3;16408:24;16426:5;16408:24;:::i;:::-;16399:33;;16454:66;16447:5;16444:77;16441:103;;16524:18;;:::i;:::-;16441:103;16571:1;16564:5;16560:13;16553:20;;16346:233;;;:::o;16585:223::-;16725:34;16721:1;16713:6;16709:14;16702:58;16794:6;16789:2;16781:6;16777:15;16770:31;16585:223;:::o;16814:366::-;16956:3;16977:67;17041:2;17036:3;16977:67;:::i;:::-;16970:74;;17053:93;17142:3;17053:93;:::i;:::-;17171:2;17166:3;17162:12;17155:19;;16814:366;;;:::o;17186:419::-;17352:4;17390:2;17379:9;17375:18;17367:26;;17439:9;17433:4;17429:20;17425:1;17414:9;17410:17;17403:47;17467:131;17593:4;17467:131;:::i;:::-;17459:139;;17186:419;;;:::o;17611:221::-;17751:34;17747:1;17739:6;17735:14;17728:58;17820:4;17815:2;17807:6;17803:15;17796:29;17611:221;:::o;17838:366::-;17980:3;18001:67;18065:2;18060:3;18001:67;:::i;:::-;17994:74;;18077:93;18166:3;18077:93;:::i;:::-;18195:2;18190:3;18186:12;18179:19;;17838:366;;;:::o;18210:419::-;18376:4;18414:2;18403:9;18399:18;18391:26;;18463:9;18457:4;18453:20;18449:1;18438:9;18434:17;18427:47;18491:131;18617:4;18491:131;:::i;:::-;18483:139;;18210:419;;;:::o;18635:224::-;18775:34;18771:1;18763:6;18759:14;18752:58;18844:7;18839:2;18831:6;18827:15;18820:32;18635:224;:::o;18865:366::-;19007:3;19028:67;19092:2;19087:3;19028:67;:::i;:::-;19021:74;;19104:93;19193:3;19104:93;:::i;:::-;19222:2;19217:3;19213:12;19206:19;;18865:366;;;:::o;19237:419::-;19403:4;19441:2;19430:9;19426:18;19418:26;;19490:9;19484:4;19480:20;19476:1;19465:9;19461:17;19454:47;19518:131;19644:4;19518:131;:::i;:::-;19510:139;;19237:419;;;:::o;19662:166::-;19802:18;19798:1;19790:6;19786:14;19779:42;19662:166;:::o;19834:366::-;19976:3;19997:67;20061:2;20056:3;19997:67;:::i;:::-;19990:74;;20073:93;20162:3;20073:93;:::i;:::-;20191:2;20186:3;20182:12;20175:19;;19834:366;;;:::o;20206:419::-;20372:4;20410:2;20399:9;20395:18;20387:26;;20459:9;20453:4;20449:20;20445:1;20434:9;20430:17;20423:47;20487:131;20613:4;20487:131;:::i;:::-;20479:139;;20206:419;;;:::o;20631:175::-;20771:27;20767:1;20759:6;20755:14;20748:51;20631:175;:::o;20812:366::-;20954:3;20975:67;21039:2;21034:3;20975:67;:::i;:::-;20968:74;;21051:93;21140:3;21051:93;:::i;:::-;21169:2;21164:3;21160:12;21153:19;;20812:366;;;:::o;21184:419::-;21350:4;21388:2;21377:9;21373:18;21365:26;;21437:9;21431:4;21427:20;21423:1;21412:9;21408:17;21401:47;21465:131;21591:4;21465:131;:::i;:::-;21457:139;;21184:419;;;:::o;21609:225::-;21749:34;21745:1;21737:6;21733:14;21726:58;21818:8;21813:2;21805:6;21801:15;21794:33;21609:225;:::o;21840:366::-;21982:3;22003:67;22067:2;22062:3;22003:67;:::i;:::-;21996:74;;22079:93;22168:3;22079:93;:::i;:::-;22197:2;22192:3;22188:12;22181:19;;21840:366;;;:::o;22212:419::-;22378:4;22416:2;22405:9;22401:18;22393:26;;22465:9;22459:4;22455:20;22451:1;22440:9;22436:17;22429:47;22493:131;22619:4;22493:131;:::i;:::-;22485:139;;22212:419;;;:::o;22637:191::-;22677:3;22696:20;22714:1;22696:20;:::i;:::-;22691:25;;22730:20;22748:1;22730:20;:::i;:::-;22725:25;;22773:1;22770;22766:9;22759:16;;22794:3;22791:1;22788:10;22785:36;;;22801:18;;:::i;:::-;22785:36;22637:191;;;;:::o;22834:143::-;22891:5;22922:6;22916:13;22907:22;;22938:33;22965:5;22938:33;:::i;:::-;22834:143;;;;:::o;22983:351::-;23053:6;23102:2;23090:9;23081:7;23077:23;23073:32;23070:119;;;23108:79;;:::i;:::-;23070:119;23228:1;23253:64;23309:7;23300:6;23289:9;23285:22;23253:64;:::i;:::-;23243:74;;23199:128;22983:351;;;;:::o;23340:85::-;23385:7;23414:5;23403:16;;23340:85;;;:::o;23431:60::-;23459:3;23480:5;23473:12;;23431:60;;;:::o;23497:158::-;23555:9;23588:61;23606:42;23615:32;23641:5;23615:32;:::i;:::-;23606:42;:::i;:::-;23588:61;:::i;:::-;23575:74;;23497:158;;;:::o;23661:147::-;23756:45;23795:5;23756:45;:::i;:::-;23751:3;23744:58;23661:147;;:::o;23814:114::-;23881:6;23915:5;23909:12;23899:22;;23814:114;;;:::o;23934:184::-;24033:11;24067:6;24062:3;24055:19;24107:4;24102:3;24098:14;24083:29;;23934:184;;;;:::o;24124:132::-;24191:4;24214:3;24206:11;;24244:4;24239:3;24235:14;24227:22;;24124:132;;;:::o;24262:108::-;24339:24;24357:5;24339:24;:::i;:::-;24334:3;24327:37;24262:108;;:::o;24376:179::-;24445:10;24466:46;24508:3;24500:6;24466:46;:::i;:::-;24544:4;24539:3;24535:14;24521:28;;24376:179;;;;:::o;24561:113::-;24631:4;24663;24658:3;24654:14;24646:22;;24561:113;;;:::o;24710:732::-;24829:3;24858:54;24906:5;24858:54;:::i;:::-;24928:86;25007:6;25002:3;24928:86;:::i;:::-;24921:93;;25038:56;25088:5;25038:56;:::i;:::-;25117:7;25148:1;25133:284;25158:6;25155:1;25152:13;25133:284;;;25234:6;25228:13;25261:63;25320:3;25305:13;25261:63;:::i;:::-;25254:70;;25347:60;25400:6;25347:60;:::i;:::-;25337:70;;25193:224;25180:1;25177;25173:9;25168:14;;25133:284;;;25137:14;25433:3;25426:10;;24834:608;;;24710:732;;;;:::o;25448:142::-;25498:9;25531:53;25549:34;25558:24;25576:5;25558:24;:::i;:::-;25549:34;:::i;:::-;25531:53;:::i;:::-;25518:66;;25448:142;;;:::o;25596:126::-;25646:9;25679:37;25710:5;25679:37;:::i;:::-;25666:50;;25596:126;;;:::o;25728:134::-;25786:9;25819:37;25850:5;25819:37;:::i;:::-;25806:50;;25728:134;;;:::o;25868:147::-;25963:45;26002:5;25963:45;:::i;:::-;25958:3;25951:58;25868:147;;:::o;26021:847::-;26292:4;26330:3;26319:9;26315:19;26307:27;;26344:71;26412:1;26401:9;26397:17;26388:6;26344:71;:::i;:::-;26425:80;26501:2;26490:9;26486:18;26477:6;26425:80;:::i;:::-;26552:9;26546:4;26542:20;26537:2;26526:9;26522:18;26515:48;26580:108;26683:4;26674:6;26580:108;:::i;:::-;26572:116;;26698:80;26774:2;26763:9;26759:18;26750:6;26698:80;:::i;:::-;26788:73;26856:3;26845:9;26841:19;26832:6;26788:73;:::i;:::-;26021:847;;;;;;;;:::o;26874:180::-;26922:77;26919:1;26912:88;27019:4;27016:1;27009:15;27043:4;27040:1;27033:15;27060:185;27100:1;27117:20;27135:1;27117:20;:::i;:::-;27112:25;;27151:20;27169:1;27151:20;:::i;:::-;27146:25;;27190:1;27180:35;;27195:18;;:::i;:::-;27180:35;27237:1;27234;27230:9;27225:14;;27060:185;;;;:::o;27251:173::-;27391:25;27387:1;27379:6;27375:14;27368:49;27251:173;:::o;27430:366::-;27572:3;27593:67;27657:2;27652:3;27593:67;:::i;:::-;27586:74;;27669:93;27758:3;27669:93;:::i;:::-;27787:2;27782:3;27778:12;27771:19;;27430:366;;;:::o;27802:419::-;27968:4;28006:2;27995:9;27991:18;27983:26;;28055:9;28049:4;28045:20;28041:1;28030:9;28026:17;28019:47;28083:131;28209:4;28083:131;:::i;:::-;28075:139;;27802:419;;;:::o

Swarm Source

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