ETH Price: $2,069.65 (+6.08%)
 

Overview

Max Total Supply

169,696,969,696 NUDE

Holders

3

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
NudeCoin

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-07-02
*/

/*
Twitter: https://twitter.com/nudecoinerc
Telegram: https://t.me/NudeCoinERC
Website: https://nudecoin.bio/
*/
// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;

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

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Metadata is IERC20 {

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}


contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping (address => uint256) internal _balances;

    mapping (address => mapping (address => uint256)) internal _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor (string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }


    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

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

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(account, account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        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 _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
}

library Address{
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _setOwner(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

contract NudeCoin is ERC20, Ownable{
    using Address for address payable;
    
    IRouter public router;
    address public pair;
    
    bool private swapping;
    bool public swapEnabled;
    bool public tradingEnabled;


    uint256 tsupply = 169696969696 * 10 ** decimals();
    uint256 public swapThreshold = tsupply * 2/1000;
    uint256 public maxTransactionAmount = tsupply * 2/100;
    uint256 public maxWalletAmount = tsupply * 2/100;
    
    address public MarketingWallet = 0x74257eA0246f2a6a5731985b25441015348CF184;
    uint256 public tBuyTax = 0; 
    uint256 public tSellTax = 0;
    
    mapping (address => bool) public excludedFromFees;
    
    modifier inSwap() {
        if (!swapping) {
            swapping = true;
            _;
            swapping = false;
        }
    }
        
    constructor() ERC20("NudeCoin", "NUDE") {
        _mint(msg.sender, tsupply);
        excludedFromFees[msg.sender] = true;

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory())
            .createPair(address(this), _router.WETH());

        router = _router;
        pair = _pair;
        excludedFromFees[address(this)] = true;
        excludedFromFees[MarketingWallet] = true;
    }
    
    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
                
        
        if(!excludedFromFees[sender] && !excludedFromFees[recipient] && !swapping){
            require(tradingEnabled, "Trading not active yet");
            require(amount <= maxTransactionAmount, "You are exceeding maxTxAmount");
            if(recipient != pair){
                require(balanceOf(recipient) + amount <= maxWalletAmount, "You are exceeding maxWalletAmount");
            }
        }

        uint256 fee;
        
  
        if (swapping || excludedFromFees[sender] || excludedFromFees[recipient]) fee = 0;
        
 
        else{
            if(recipient == pair) fee = amount * tSellTax / 100;
            else fee = amount * tBuyTax / 100;
        }
        

        if (swapEnabled && !swapping && sender != pair) swapForFees();

        super._transfer(sender, recipient, amount - fee);
        if(fee > 0) super._transfer(sender, address(this) ,fee);

    }

     function swapForFees() private inSwap {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= swapThreshold) {
            swapTokensForETH(swapThreshold);
        }
    }


    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        _approve(address(this), address(router), tokenAmount);

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, MarketingWallet, block.timestamp);

    }


    function setSwapEnabled(bool state) external onlyOwner {
        swapEnabled = state;
    }

    function setSwapThreshold(uint256 new_amount) external onlyOwner {
        swapThreshold = new_amount;
    }
    function enableTrading() external onlyOwner{
        require(!tradingEnabled, "Trading already active");
        tradingEnabled = true;
        swapEnabled = true;
    }
    function SetFee(uint256 _totalTax, uint256 _totalSellTax) external onlyOwner{
        require (_totalTax <= 10, "Fee can't exceed 10%");
        require (_totalSellTax <= 10, "Fee can't exceed 10%");
        tBuyTax = _totalTax;
        tSellTax = _totalSellTax;
    }
    function removelimit() external onlyOwner{
        maxTransactionAmount = tsupply;
        maxWalletAmount = tsupply;
    }
    function updateRouterAndPair(IRouter _router, address _pair) external onlyOwner{
        router = _router;
        pair = _pair;
    }
    
    function updateExcludedFromFees(address _address, bool state) external onlyOwner {
        excludedFromFees[_address] = state;
    }

    function rescueERC20(address tokenAddress, uint256 amount) external {
        IERC20(tokenAddress).transfer(MarketingWallet, amount);
    }

    function rescueETH(uint256 weiAmount) external {
        payable(MarketingWallet).sendValue(weiAmount);
    }

    function manualSwap() external {
        require(_msgSender()==MarketingWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForETH(tokenBalance);
        }
    }

    // fallbacks
    receive() external payable {}
    
}

Contract Security Audit

Contract ABI

API
[{"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":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"MarketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_totalTax","type":"uint256"},{"internalType":"uint256","name":"_totalSellTax","type":"uint256"}],"name":"SetFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removelimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IRouter","name":"_router","type":"address"},{"internalType":"address","name":"_pair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000146200050760201b60201c565b600a620000229190620008e0565b642782ba43e062000034919062000931565b6008556103e860026008546200004b919062000931565b620000579190620009ab565b600955606460026008546200006d919062000931565b620000799190620009ab565b600a55606460026008546200008f919062000931565b6200009b9190620009ab565b600b557374257ea0246f2a6a5731985b25441015348cf184600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600d556000600e553480156200010a57600080fd5b506040518060400160405280600881526020017f4e756465436f696e0000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4e55444500000000000000000000000000000000000000000000000000000000815250816003908162000188919062000c53565b5080600490816200019a919062000c53565b505050620001bd620001b16200051060201b60201c565b6200051860201b60201c565b620001d133600854620005de60201b60201c565b6001600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000290573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b6919062000da4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200031e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000344919062000da4565b6040518363ffffffff1660e01b81526004016200036392919062000de7565b6020604051808303816000875af115801562000383573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003a9919062000da4565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600f60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505062000f00565b60006012905090565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000650576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006479062000e75565b60405180910390fd5b620006638283836200074160201b60201c565b806002600082825462000677919062000e97565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620006ce919062000e97565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000735919062000ee3565b60405180910390a35050565b505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620007d457808604811115620007ac57620007ab62000746565b5b6001851615620007bc5780820291505b8081029050620007cc8562000775565b94506200078c565b94509492505050565b600082620007ef5760019050620008c2565b81620007ff5760009050620008c2565b8160018114620008185760028114620008235762000859565b6001915050620008c2565b60ff84111562000838576200083762000746565b5b8360020a91508482111562000852576200085162000746565b5b50620008c2565b5060208310610133831016604e8410600b8410161715620008935782820a9050838111156200088d576200088c62000746565b5b620008c2565b620008a2848484600162000782565b92509050818404811115620008bc57620008bb62000746565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620008ed82620008c9565b9150620008fa83620008d3565b9250620009297fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620007dd565b905092915050565b60006200093e82620008c9565b91506200094b83620008c9565b92508282026200095b81620008c9565b9150828204841483151762000975576200097462000746565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620009b882620008c9565b9150620009c583620008c9565b925082620009d857620009d76200097c565b5b828204905092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000a6557607f821691505b60208210810362000a7b5762000a7a62000a1d565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000ae57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000aa6565b62000af1868362000aa6565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000b3462000b2e62000b2884620008c9565b62000b09565b620008c9565b9050919050565b6000819050919050565b62000b508362000b13565b62000b6862000b5f8262000b3b565b84845462000ab3565b825550505050565b600090565b62000b7f62000b70565b62000b8c81848462000b45565b505050565b5b8181101562000bb45762000ba860008262000b75565b60018101905062000b92565b5050565b601f82111562000c035762000bcd8162000a81565b62000bd88462000a96565b8101602085101562000be8578190505b62000c0062000bf78562000a96565b83018262000b91565b50505b505050565b600082821c905092915050565b600062000c286000198460080262000c08565b1980831691505092915050565b600062000c43838362000c15565b9150826002028217905092915050565b62000c5e82620009e3565b67ffffffffffffffff81111562000c7a5762000c79620009ee565b5b62000c86825462000a4c565b62000c9382828562000bb8565b600060209050601f83116001811462000ccb576000841562000cb6578287015190505b62000cc2858262000c35565b86555062000d32565b601f19841662000cdb8662000a81565b60005b8281101562000d055784890151825560018201915060208501945060208101905062000cde565b8683101562000d25578489015162000d21601f89168262000c15565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000d6c8262000d3f565b9050919050565b62000d7e8162000d5f565b811462000d8a57600080fd5b50565b60008151905062000d9e8162000d73565b92915050565b60006020828403121562000dbd5762000dbc62000d3a565b5b600062000dcd8482850162000d8d565b91505092915050565b62000de18162000d5f565b82525050565b600060408201905062000dfe600083018562000dd6565b62000e0d602083018462000dd6565b9392505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000e5d601f8362000e14565b915062000e6a8262000e25565b602082019050919050565b6000602082019050818103600083015262000e908162000e4e565b9050919050565b600062000ea482620008c9565b915062000eb183620008c9565b925082820190508082111562000ecc5762000ecb62000746565b5b92915050565b62000edd81620008c9565b82525050565b600060208201905062000efa600083018462000ed2565b92915050565b6136338062000f106000396000f3fe6080604052600436106102085760003560e01c80638cd4426d11610118578063aa4bde28116100a0578063dd62ed3e1161006f578063dd62ed3e14610742578063e01af92c1461077f578063e545fd6d146107a8578063f2fde38b146107d1578063f887ea40146107fa5761020f565b8063aa4bde2814610684578063c1731ceb146106af578063c8c8ebe4146106da578063dbe66ca0146107055761020f565b80639d0014b1116100e75780639d0014b11461058d5780639e252f00146105b6578063a457c2d7146105df578063a8aa1b311461061c578063a9059cbb146106475761020f565b80638cd4426d146104e35780638da5cb5b1461050c57806395d656e71461053757806395d89b41146105625761020f565b8063395093511161019b5780636ddd17131161016a5780636ddd17131461043657806370a0823114610461578063715018a61461049e57806380f40619146104b55780638a8c523c146104cc5761020f565b8063395093511461038e57806340b28c2f146103cb5780634ada218b146103f457806351bc3c851461041f5761020f565b806318160ddd116101d757806318160ddd146102d057806323b872dd146102fb5780632598cdb214610338578063313ce567146103635761020f565b8063032dc6a2146102145780630445b6671461023d57806306fdde0314610268578063095ea7b3146102935761020f565b3661020f57005b600080fd5b34801561022057600080fd5b5061023b60048036038101906102369190612423565b610825565b005b34801561024957600080fd5b5061025261093b565b60405161025f9190612472565b60405180910390f35b34801561027457600080fd5b5061027d610941565b60405161028a919061251d565b60405180910390f35b34801561029f57600080fd5b506102ba60048036038101906102b5919061259d565b6109d3565b6040516102c791906125f8565b60405180910390f35b3480156102dc57600080fd5b506102e56109f1565b6040516102f29190612472565b60405180910390f35b34801561030757600080fd5b50610322600480360381019061031d9190612613565b6109fb565b60405161032f91906125f8565b60405180910390f35b34801561034457600080fd5b5061034d610afc565b60405161035a9190612675565b60405180910390f35b34801561036f57600080fd5b50610378610b22565b60405161038591906126ac565b60405180910390f35b34801561039a57600080fd5b506103b560048036038101906103b0919061259d565b610b2b565b6040516103c291906125f8565b60405180910390f35b3480156103d757600080fd5b506103f260048036038101906103ed9190612705565b610bd7565b005b34801561040057600080fd5b50610409610cd9565b60405161041691906125f8565b60405180910390f35b34801561042b57600080fd5b50610434610cec565b005b34801561044257600080fd5b5061044b610d70565b60405161045891906125f8565b60405180910390f35b34801561046d57600080fd5b5061048860048036038101906104839190612745565b610d83565b6040516104959190612472565b60405180910390f35b3480156104aa57600080fd5b506104b3610dcb565b005b3480156104c157600080fd5b506104ca610e53565b005b3480156104d857600080fd5b506104e1610ee3565b005b3480156104ef57600080fd5b5061050a6004803603810190610505919061259d565b610fe7565b005b34801561051857600080fd5b5061052161108c565b60405161052e9190612675565b60405180910390f35b34801561054357600080fd5b5061054c6110b6565b6040516105599190612472565b60405180910390f35b34801561056e57600080fd5b506105776110bc565b604051610584919061251d565b60405180910390f35b34801561059957600080fd5b506105b460048036038101906105af9190612772565b61114e565b005b3480156105c257600080fd5b506105dd60048036038101906105d89190612772565b6111d4565b005b3480156105eb57600080fd5b506106066004803603810190610601919061259d565b611222565b60405161061391906125f8565b60405180910390f35b34801561062857600080fd5b50610631611316565b60405161063e9190612675565b60405180910390f35b34801561065357600080fd5b5061066e6004803603810190610669919061259d565b61133c565b60405161067b91906125f8565b60405180910390f35b34801561069057600080fd5b5061069961135a565b6040516106a69190612472565b60405180910390f35b3480156106bb57600080fd5b506106c4611360565b6040516106d19190612472565b60405180910390f35b3480156106e657600080fd5b506106ef611366565b6040516106fc9190612472565b60405180910390f35b34801561071157600080fd5b5061072c60048036038101906107279190612745565b61136c565b60405161073991906125f8565b60405180910390f35b34801561074e57600080fd5b506107696004803603810190610764919061279f565b61138c565b6040516107769190612472565b60405180910390f35b34801561078b57600080fd5b506107a660048036038101906107a1919061280b565b611413565b005b3480156107b457600080fd5b506107cf60048036038101906107ca9190612838565b6114ac565b005b3480156107dd57600080fd5b506107f860048036038101906107f39190612745565b611583565b005b34801561080657600080fd5b5061080f61167a565b60405161081c91906128d7565b60405180910390f35b61082d6116a0565b73ffffffffffffffffffffffffffffffffffffffff1661084b61108c565b73ffffffffffffffffffffffffffffffffffffffff16146108a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108989061293e565b60405180910390fd5b600a8211156108e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108dc906129aa565b60405180910390fd5b600a811115610929576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610920906129aa565b60405180910390fd5b81600d8190555080600e819055505050565b60095481565b606060038054610950906129f9565b80601f016020809104026020016040519081016040528092919081815260200182805461097c906129f9565b80156109c95780601f1061099e576101008083540402835291602001916109c9565b820191906000526020600020905b8154815290600101906020018083116109ac57829003601f168201915b5050505050905090565b60006109e76109e06116a0565b84846116a8565b6001905092915050565b6000600254905090565b6000610a08848484611871565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a536116a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ad3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aca90612a9c565b60405180910390fd5b610af085610adf6116a0565b8584610aeb9190612aeb565b6116a8565b60019150509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006012905090565b6000610bcd610b386116a0565b848460016000610b466116a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bc89190612b1f565b6116a8565b6001905092915050565b610bdf6116a0565b73ffffffffffffffffffffffffffffffffffffffff16610bfd61108c565b73ffffffffffffffffffffffffffffffffffffffff1614610c53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4a9061293e565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600760169054906101000a900460ff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d2d6116a0565b73ffffffffffffffffffffffffffffffffffffffff1614610d4d57600080fd5b6000610d5830610d83565b90506000811115610d6d57610d6c81611cd7565b5b50565b600760159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610dd36116a0565b73ffffffffffffffffffffffffffffffffffffffff16610df161108c565b73ffffffffffffffffffffffffffffffffffffffff1614610e47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3e9061293e565b60405180910390fd5b610e516000611f3c565b565b610e5b6116a0565b73ffffffffffffffffffffffffffffffffffffffff16610e7961108c565b73ffffffffffffffffffffffffffffffffffffffff1614610ecf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec69061293e565b60405180910390fd5b600854600a81905550600854600b81905550565b610eeb6116a0565b73ffffffffffffffffffffffffffffffffffffffff16610f0961108c565b73ffffffffffffffffffffffffffffffffffffffff1614610f5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f569061293e565b60405180910390fd5b600760169054906101000a900460ff1615610faf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa690612b9f565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff021916908315150217905550565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611044929190612bbf565b6020604051808303816000875af1158015611063573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110879190612bfd565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e5481565b6060600480546110cb906129f9565b80601f01602080910402602001604051908101604052809291908181526020018280546110f7906129f9565b80156111445780601f1061111957610100808354040283529160200191611144565b820191906000526020600020905b81548152906001019060200180831161112757829003601f168201915b5050505050905090565b6111566116a0565b73ffffffffffffffffffffffffffffffffffffffff1661117461108c565b73ffffffffffffffffffffffffffffffffffffffff16146111ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c19061293e565b60405180910390fd5b8060098190555050565b61121f81600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661200290919063ffffffff16565b50565b600080600160006112316116a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156112ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e590612c9c565b60405180910390fd5b61130b6112f96116a0565b8585846113069190612aeb565b6116a8565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006113506113496116a0565b8484611871565b6001905092915050565b600b5481565b600d5481565b600a5481565b600f6020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61141b6116a0565b73ffffffffffffffffffffffffffffffffffffffff1661143961108c565b73ffffffffffffffffffffffffffffffffffffffff161461148f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114869061293e565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b6114b46116a0565b73ffffffffffffffffffffffffffffffffffffffff166114d261108c565b73ffffffffffffffffffffffffffffffffffffffff1614611528576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151f9061293e565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61158b6116a0565b73ffffffffffffffffffffffffffffffffffffffff166115a961108c565b73ffffffffffffffffffffffffffffffffffffffff16146115ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f69061293e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361166e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166590612d2e565b60405180910390fd5b61167781611f3c565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170e90612dc0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611786576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177d90612e52565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118649190612472565b60405180910390a3505050565b600081116118b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ab90612ee4565b60405180910390fd5b600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119585750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156119715750600760149054906101000a900460ff16155b15611ab957600760169054906101000a900460ff166119c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bc90612f50565b60405180910390fd5b600a54811115611a0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0190612fbc565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611ab857600b5481611a6c84610d83565b611a769190612b1f565b1115611ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aae9061304e565b60405180910390fd5b5b5b6000600760149054906101000a900460ff1680611b1f5750600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611b735750600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611b815760009050611c15565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bf7576064600e5483611be6919061306e565b611bf091906130df565b9050611c14565b6064600d5483611c07919061306e565b611c1191906130df565b90505b5b600760159054906101000a900460ff168015611c3e5750600760149054906101000a900460ff16155b8015611c985750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ca657611ca56120f6565b5b611cbc84848385611cb79190612aeb565b612166565b6000811115611cd157611cd0843083612166565b5b50505050565b6000600267ffffffffffffffff811115611cf457611cf3613110565b5b604051908082528060200260200182016040528015611d225781602001602082028036833780820191505090505b5090503081600081518110611d3a57611d3961313f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611de1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e059190613183565b81600181518110611e1957611e1861313f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e8030600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846116a8565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611f069594939291906132a9565b600060405180830381600087803b158015611f2057600080fd5b505af1158015611f34573d6000803e3d6000fd5b505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80471015612045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203c9061334f565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405161206b906133a0565b60006040518083038185875af1925050503d80600081146120a8576040519150601f19603f3d011682016040523d82523d6000602084013e6120ad565b606091505b50509050806120f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e890613427565b60405180910390fd5b505050565b600760149054906101000a900460ff16612164576001600760146101000a81548160ff021916908315150217905550600061213030610d83565b9050600954811061214757612146600954611cd7565b5b506000600760146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036121d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121cc906134b9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223b9061354b565b60405180910390fd5b61224f8383836123e3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156122d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122cc906135dd565b60405180910390fd5b81816122e19190612aeb565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123719190612b1f565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123d59190612472565b60405180910390a350505050565b505050565b600080fd5b6000819050919050565b612400816123ed565b811461240b57600080fd5b50565b60008135905061241d816123f7565b92915050565b6000806040838503121561243a576124396123e8565b5b60006124488582860161240e565b92505060206124598582860161240e565b9150509250929050565b61246c816123ed565b82525050565b60006020820190506124876000830184612463565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124c75780820151818401526020810190506124ac565b60008484015250505050565b6000601f19601f8301169050919050565b60006124ef8261248d565b6124f98185612498565b93506125098185602086016124a9565b612512816124d3565b840191505092915050565b6000602082019050818103600083015261253781846124e4565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061256a8261253f565b9050919050565b61257a8161255f565b811461258557600080fd5b50565b60008135905061259781612571565b92915050565b600080604083850312156125b4576125b36123e8565b5b60006125c285828601612588565b92505060206125d38582860161240e565b9150509250929050565b60008115159050919050565b6125f2816125dd565b82525050565b600060208201905061260d60008301846125e9565b92915050565b60008060006060848603121561262c5761262b6123e8565b5b600061263a86828701612588565b935050602061264b86828701612588565b925050604061265c8682870161240e565b9150509250925092565b61266f8161255f565b82525050565b600060208201905061268a6000830184612666565b92915050565b600060ff82169050919050565b6126a681612690565b82525050565b60006020820190506126c1600083018461269d565b92915050565b60006126d28261255f565b9050919050565b6126e2816126c7565b81146126ed57600080fd5b50565b6000813590506126ff816126d9565b92915050565b6000806040838503121561271c5761271b6123e8565b5b600061272a858286016126f0565b925050602061273b85828601612588565b9150509250929050565b60006020828403121561275b5761275a6123e8565b5b600061276984828501612588565b91505092915050565b600060208284031215612788576127876123e8565b5b60006127968482850161240e565b91505092915050565b600080604083850312156127b6576127b56123e8565b5b60006127c485828601612588565b92505060206127d585828601612588565b9150509250929050565b6127e8816125dd565b81146127f357600080fd5b50565b600081359050612805816127df565b92915050565b600060208284031215612821576128206123e8565b5b600061282f848285016127f6565b91505092915050565b6000806040838503121561284f5761284e6123e8565b5b600061285d85828601612588565b925050602061286e858286016127f6565b9150509250929050565b6000819050919050565b600061289d6128986128938461253f565b612878565b61253f565b9050919050565b60006128af82612882565b9050919050565b60006128c1826128a4565b9050919050565b6128d1816128b6565b82525050565b60006020820190506128ec60008301846128c8565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612928602083612498565b9150612933826128f2565b602082019050919050565b600060208201905081810360008301526129578161291b565b9050919050565b7f4665652063616e27742065786365656420313025000000000000000000000000600082015250565b6000612994601483612498565b915061299f8261295e565b602082019050919050565b600060208201905081810360008301526129c381612987565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612a1157607f821691505b602082108103612a2457612a236129ca565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000612a86602883612498565b9150612a9182612a2a565b604082019050919050565b60006020820190508181036000830152612ab581612a79565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612af6826123ed565b9150612b01836123ed565b9250828203905081811115612b1957612b18612abc565b5b92915050565b6000612b2a826123ed565b9150612b35836123ed565b9250828201905080821115612b4d57612b4c612abc565b5b92915050565b7f54726164696e6720616c72656164792061637469766500000000000000000000600082015250565b6000612b89601683612498565b9150612b9482612b53565b602082019050919050565b60006020820190508181036000830152612bb881612b7c565b9050919050565b6000604082019050612bd46000830185612666565b612be16020830184612463565b9392505050565b600081519050612bf7816127df565b92915050565b600060208284031215612c1357612c126123e8565b5b6000612c2184828501612be8565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612c86602583612498565b9150612c9182612c2a565b604082019050919050565b60006020820190508181036000830152612cb581612c79565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612d18602683612498565b9150612d2382612cbc565b604082019050919050565b60006020820190508181036000830152612d4781612d0b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612daa602483612498565b9150612db582612d4e565b604082019050919050565b60006020820190508181036000830152612dd981612d9d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e3c602283612498565b9150612e4782612de0565b604082019050919050565b60006020820190508181036000830152612e6b81612e2f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612ece602983612498565b9150612ed982612e72565b604082019050919050565b60006020820190508181036000830152612efd81612ec1565b9050919050565b7f54726164696e67206e6f74206163746976652079657400000000000000000000600082015250565b6000612f3a601683612498565b9150612f4582612f04565b602082019050919050565b60006020820190508181036000830152612f6981612f2d565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e74000000600082015250565b6000612fa6601d83612498565b9150612fb182612f70565b602082019050919050565b60006020820190508181036000830152612fd581612f99565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b6000613038602183612498565b915061304382612fdc565b604082019050919050565b600060208201905081810360008301526130678161302b565b9050919050565b6000613079826123ed565b9150613084836123ed565b9250828202613092816123ed565b915082820484148315176130a9576130a8612abc565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006130ea826123ed565b91506130f5836123ed565b925082613105576131046130b0565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061317d81612571565b92915050565b600060208284031215613199576131986123e8565b5b60006131a78482850161316e565b91505092915050565b6000819050919050565b60006131d56131d06131cb846131b0565b612878565b6123ed565b9050919050565b6131e5816131ba565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132208161255f565b82525050565b60006132328383613217565b60208301905092915050565b6000602082019050919050565b6000613256826131eb565b61326081856131f6565b935061326b83613207565b8060005b8381101561329c5781516132838882613226565b975061328e8361323e565b92505060018101905061326f565b5085935050505092915050565b600060a0820190506132be6000830188612463565b6132cb60208301876131dc565b81810360408301526132dd818661324b565b90506132ec6060830185612666565b6132f96080830184612463565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000613339601d83612498565b915061334482613303565b602082019050919050565b600060208201905081810360008301526133688161332c565b9050919050565b600081905092915050565b50565b600061338a60008361336f565b91506133958261337a565b600082019050919050565b60006133ab8261337d565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000613411603a83612498565b915061341c826133b5565b604082019050919050565b6000602082019050818103600083015261344081613404565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006134a3602583612498565b91506134ae82613447565b604082019050919050565b600060208201905081810360008301526134d281613496565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613535602383612498565b9150613540826134d9565b604082019050919050565b6000602082019050818103600083015261356481613528565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006135c7602683612498565b91506135d28261356b565b604082019050919050565b600060208201905081810360008301526135f6816135ba565b905091905056fea2646970667358221220b6ab0fa1a3a733f8caca79407e5d40d5a01f69049e53be21a288d2c25c62e9d064736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102085760003560e01c80638cd4426d11610118578063aa4bde28116100a0578063dd62ed3e1161006f578063dd62ed3e14610742578063e01af92c1461077f578063e545fd6d146107a8578063f2fde38b146107d1578063f887ea40146107fa5761020f565b8063aa4bde2814610684578063c1731ceb146106af578063c8c8ebe4146106da578063dbe66ca0146107055761020f565b80639d0014b1116100e75780639d0014b11461058d5780639e252f00146105b6578063a457c2d7146105df578063a8aa1b311461061c578063a9059cbb146106475761020f565b80638cd4426d146104e35780638da5cb5b1461050c57806395d656e71461053757806395d89b41146105625761020f565b8063395093511161019b5780636ddd17131161016a5780636ddd17131461043657806370a0823114610461578063715018a61461049e57806380f40619146104b55780638a8c523c146104cc5761020f565b8063395093511461038e57806340b28c2f146103cb5780634ada218b146103f457806351bc3c851461041f5761020f565b806318160ddd116101d757806318160ddd146102d057806323b872dd146102fb5780632598cdb214610338578063313ce567146103635761020f565b8063032dc6a2146102145780630445b6671461023d57806306fdde0314610268578063095ea7b3146102935761020f565b3661020f57005b600080fd5b34801561022057600080fd5b5061023b60048036038101906102369190612423565b610825565b005b34801561024957600080fd5b5061025261093b565b60405161025f9190612472565b60405180910390f35b34801561027457600080fd5b5061027d610941565b60405161028a919061251d565b60405180910390f35b34801561029f57600080fd5b506102ba60048036038101906102b5919061259d565b6109d3565b6040516102c791906125f8565b60405180910390f35b3480156102dc57600080fd5b506102e56109f1565b6040516102f29190612472565b60405180910390f35b34801561030757600080fd5b50610322600480360381019061031d9190612613565b6109fb565b60405161032f91906125f8565b60405180910390f35b34801561034457600080fd5b5061034d610afc565b60405161035a9190612675565b60405180910390f35b34801561036f57600080fd5b50610378610b22565b60405161038591906126ac565b60405180910390f35b34801561039a57600080fd5b506103b560048036038101906103b0919061259d565b610b2b565b6040516103c291906125f8565b60405180910390f35b3480156103d757600080fd5b506103f260048036038101906103ed9190612705565b610bd7565b005b34801561040057600080fd5b50610409610cd9565b60405161041691906125f8565b60405180910390f35b34801561042b57600080fd5b50610434610cec565b005b34801561044257600080fd5b5061044b610d70565b60405161045891906125f8565b60405180910390f35b34801561046d57600080fd5b5061048860048036038101906104839190612745565b610d83565b6040516104959190612472565b60405180910390f35b3480156104aa57600080fd5b506104b3610dcb565b005b3480156104c157600080fd5b506104ca610e53565b005b3480156104d857600080fd5b506104e1610ee3565b005b3480156104ef57600080fd5b5061050a6004803603810190610505919061259d565b610fe7565b005b34801561051857600080fd5b5061052161108c565b60405161052e9190612675565b60405180910390f35b34801561054357600080fd5b5061054c6110b6565b6040516105599190612472565b60405180910390f35b34801561056e57600080fd5b506105776110bc565b604051610584919061251d565b60405180910390f35b34801561059957600080fd5b506105b460048036038101906105af9190612772565b61114e565b005b3480156105c257600080fd5b506105dd60048036038101906105d89190612772565b6111d4565b005b3480156105eb57600080fd5b506106066004803603810190610601919061259d565b611222565b60405161061391906125f8565b60405180910390f35b34801561062857600080fd5b50610631611316565b60405161063e9190612675565b60405180910390f35b34801561065357600080fd5b5061066e6004803603810190610669919061259d565b61133c565b60405161067b91906125f8565b60405180910390f35b34801561069057600080fd5b5061069961135a565b6040516106a69190612472565b60405180910390f35b3480156106bb57600080fd5b506106c4611360565b6040516106d19190612472565b60405180910390f35b3480156106e657600080fd5b506106ef611366565b6040516106fc9190612472565b60405180910390f35b34801561071157600080fd5b5061072c60048036038101906107279190612745565b61136c565b60405161073991906125f8565b60405180910390f35b34801561074e57600080fd5b506107696004803603810190610764919061279f565b61138c565b6040516107769190612472565b60405180910390f35b34801561078b57600080fd5b506107a660048036038101906107a1919061280b565b611413565b005b3480156107b457600080fd5b506107cf60048036038101906107ca9190612838565b6114ac565b005b3480156107dd57600080fd5b506107f860048036038101906107f39190612745565b611583565b005b34801561080657600080fd5b5061080f61167a565b60405161081c91906128d7565b60405180910390f35b61082d6116a0565b73ffffffffffffffffffffffffffffffffffffffff1661084b61108c565b73ffffffffffffffffffffffffffffffffffffffff16146108a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108989061293e565b60405180910390fd5b600a8211156108e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108dc906129aa565b60405180910390fd5b600a811115610929576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610920906129aa565b60405180910390fd5b81600d8190555080600e819055505050565b60095481565b606060038054610950906129f9565b80601f016020809104026020016040519081016040528092919081815260200182805461097c906129f9565b80156109c95780601f1061099e576101008083540402835291602001916109c9565b820191906000526020600020905b8154815290600101906020018083116109ac57829003601f168201915b5050505050905090565b60006109e76109e06116a0565b84846116a8565b6001905092915050565b6000600254905090565b6000610a08848484611871565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a536116a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ad3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aca90612a9c565b60405180910390fd5b610af085610adf6116a0565b8584610aeb9190612aeb565b6116a8565b60019150509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006012905090565b6000610bcd610b386116a0565b848460016000610b466116a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bc89190612b1f565b6116a8565b6001905092915050565b610bdf6116a0565b73ffffffffffffffffffffffffffffffffffffffff16610bfd61108c565b73ffffffffffffffffffffffffffffffffffffffff1614610c53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4a9061293e565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600760169054906101000a900460ff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d2d6116a0565b73ffffffffffffffffffffffffffffffffffffffff1614610d4d57600080fd5b6000610d5830610d83565b90506000811115610d6d57610d6c81611cd7565b5b50565b600760159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610dd36116a0565b73ffffffffffffffffffffffffffffffffffffffff16610df161108c565b73ffffffffffffffffffffffffffffffffffffffff1614610e47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3e9061293e565b60405180910390fd5b610e516000611f3c565b565b610e5b6116a0565b73ffffffffffffffffffffffffffffffffffffffff16610e7961108c565b73ffffffffffffffffffffffffffffffffffffffff1614610ecf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec69061293e565b60405180910390fd5b600854600a81905550600854600b81905550565b610eeb6116a0565b73ffffffffffffffffffffffffffffffffffffffff16610f0961108c565b73ffffffffffffffffffffffffffffffffffffffff1614610f5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f569061293e565b60405180910390fd5b600760169054906101000a900460ff1615610faf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa690612b9f565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff021916908315150217905550565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611044929190612bbf565b6020604051808303816000875af1158015611063573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110879190612bfd565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e5481565b6060600480546110cb906129f9565b80601f01602080910402602001604051908101604052809291908181526020018280546110f7906129f9565b80156111445780601f1061111957610100808354040283529160200191611144565b820191906000526020600020905b81548152906001019060200180831161112757829003601f168201915b5050505050905090565b6111566116a0565b73ffffffffffffffffffffffffffffffffffffffff1661117461108c565b73ffffffffffffffffffffffffffffffffffffffff16146111ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c19061293e565b60405180910390fd5b8060098190555050565b61121f81600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661200290919063ffffffff16565b50565b600080600160006112316116a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156112ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e590612c9c565b60405180910390fd5b61130b6112f96116a0565b8585846113069190612aeb565b6116a8565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006113506113496116a0565b8484611871565b6001905092915050565b600b5481565b600d5481565b600a5481565b600f6020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61141b6116a0565b73ffffffffffffffffffffffffffffffffffffffff1661143961108c565b73ffffffffffffffffffffffffffffffffffffffff161461148f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114869061293e565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b6114b46116a0565b73ffffffffffffffffffffffffffffffffffffffff166114d261108c565b73ffffffffffffffffffffffffffffffffffffffff1614611528576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151f9061293e565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61158b6116a0565b73ffffffffffffffffffffffffffffffffffffffff166115a961108c565b73ffffffffffffffffffffffffffffffffffffffff16146115ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f69061293e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361166e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166590612d2e565b60405180910390fd5b61167781611f3c565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170e90612dc0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611786576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177d90612e52565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118649190612472565b60405180910390a3505050565b600081116118b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ab90612ee4565b60405180910390fd5b600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119585750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156119715750600760149054906101000a900460ff16155b15611ab957600760169054906101000a900460ff166119c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bc90612f50565b60405180910390fd5b600a54811115611a0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0190612fbc565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611ab857600b5481611a6c84610d83565b611a769190612b1f565b1115611ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aae9061304e565b60405180910390fd5b5b5b6000600760149054906101000a900460ff1680611b1f5750600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611b735750600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611b815760009050611c15565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bf7576064600e5483611be6919061306e565b611bf091906130df565b9050611c14565b6064600d5483611c07919061306e565b611c1191906130df565b90505b5b600760159054906101000a900460ff168015611c3e5750600760149054906101000a900460ff16155b8015611c985750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ca657611ca56120f6565b5b611cbc84848385611cb79190612aeb565b612166565b6000811115611cd157611cd0843083612166565b5b50505050565b6000600267ffffffffffffffff811115611cf457611cf3613110565b5b604051908082528060200260200182016040528015611d225781602001602082028036833780820191505090505b5090503081600081518110611d3a57611d3961313f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611de1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e059190613183565b81600181518110611e1957611e1861313f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e8030600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846116a8565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611f069594939291906132a9565b600060405180830381600087803b158015611f2057600080fd5b505af1158015611f34573d6000803e3d6000fd5b505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80471015612045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203c9061334f565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405161206b906133a0565b60006040518083038185875af1925050503d80600081146120a8576040519150601f19603f3d011682016040523d82523d6000602084013e6120ad565b606091505b50509050806120f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e890613427565b60405180910390fd5b505050565b600760149054906101000a900460ff16612164576001600760146101000a81548160ff021916908315150217905550600061213030610d83565b9050600954811061214757612146600954611cd7565b5b506000600760146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036121d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121cc906134b9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223b9061354b565b60405180910390fd5b61224f8383836123e3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156122d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122cc906135dd565b60405180910390fd5b81816122e19190612aeb565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123719190612b1f565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123d59190612472565b60405180910390a350505050565b505050565b600080fd5b6000819050919050565b612400816123ed565b811461240b57600080fd5b50565b60008135905061241d816123f7565b92915050565b6000806040838503121561243a576124396123e8565b5b60006124488582860161240e565b92505060206124598582860161240e565b9150509250929050565b61246c816123ed565b82525050565b60006020820190506124876000830184612463565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124c75780820151818401526020810190506124ac565b60008484015250505050565b6000601f19601f8301169050919050565b60006124ef8261248d565b6124f98185612498565b93506125098185602086016124a9565b612512816124d3565b840191505092915050565b6000602082019050818103600083015261253781846124e4565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061256a8261253f565b9050919050565b61257a8161255f565b811461258557600080fd5b50565b60008135905061259781612571565b92915050565b600080604083850312156125b4576125b36123e8565b5b60006125c285828601612588565b92505060206125d38582860161240e565b9150509250929050565b60008115159050919050565b6125f2816125dd565b82525050565b600060208201905061260d60008301846125e9565b92915050565b60008060006060848603121561262c5761262b6123e8565b5b600061263a86828701612588565b935050602061264b86828701612588565b925050604061265c8682870161240e565b9150509250925092565b61266f8161255f565b82525050565b600060208201905061268a6000830184612666565b92915050565b600060ff82169050919050565b6126a681612690565b82525050565b60006020820190506126c1600083018461269d565b92915050565b60006126d28261255f565b9050919050565b6126e2816126c7565b81146126ed57600080fd5b50565b6000813590506126ff816126d9565b92915050565b6000806040838503121561271c5761271b6123e8565b5b600061272a858286016126f0565b925050602061273b85828601612588565b9150509250929050565b60006020828403121561275b5761275a6123e8565b5b600061276984828501612588565b91505092915050565b600060208284031215612788576127876123e8565b5b60006127968482850161240e565b91505092915050565b600080604083850312156127b6576127b56123e8565b5b60006127c485828601612588565b92505060206127d585828601612588565b9150509250929050565b6127e8816125dd565b81146127f357600080fd5b50565b600081359050612805816127df565b92915050565b600060208284031215612821576128206123e8565b5b600061282f848285016127f6565b91505092915050565b6000806040838503121561284f5761284e6123e8565b5b600061285d85828601612588565b925050602061286e858286016127f6565b9150509250929050565b6000819050919050565b600061289d6128986128938461253f565b612878565b61253f565b9050919050565b60006128af82612882565b9050919050565b60006128c1826128a4565b9050919050565b6128d1816128b6565b82525050565b60006020820190506128ec60008301846128c8565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612928602083612498565b9150612933826128f2565b602082019050919050565b600060208201905081810360008301526129578161291b565b9050919050565b7f4665652063616e27742065786365656420313025000000000000000000000000600082015250565b6000612994601483612498565b915061299f8261295e565b602082019050919050565b600060208201905081810360008301526129c381612987565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612a1157607f821691505b602082108103612a2457612a236129ca565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000612a86602883612498565b9150612a9182612a2a565b604082019050919050565b60006020820190508181036000830152612ab581612a79565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612af6826123ed565b9150612b01836123ed565b9250828203905081811115612b1957612b18612abc565b5b92915050565b6000612b2a826123ed565b9150612b35836123ed565b9250828201905080821115612b4d57612b4c612abc565b5b92915050565b7f54726164696e6720616c72656164792061637469766500000000000000000000600082015250565b6000612b89601683612498565b9150612b9482612b53565b602082019050919050565b60006020820190508181036000830152612bb881612b7c565b9050919050565b6000604082019050612bd46000830185612666565b612be16020830184612463565b9392505050565b600081519050612bf7816127df565b92915050565b600060208284031215612c1357612c126123e8565b5b6000612c2184828501612be8565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612c86602583612498565b9150612c9182612c2a565b604082019050919050565b60006020820190508181036000830152612cb581612c79565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612d18602683612498565b9150612d2382612cbc565b604082019050919050565b60006020820190508181036000830152612d4781612d0b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612daa602483612498565b9150612db582612d4e565b604082019050919050565b60006020820190508181036000830152612dd981612d9d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e3c602283612498565b9150612e4782612de0565b604082019050919050565b60006020820190508181036000830152612e6b81612e2f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612ece602983612498565b9150612ed982612e72565b604082019050919050565b60006020820190508181036000830152612efd81612ec1565b9050919050565b7f54726164696e67206e6f74206163746976652079657400000000000000000000600082015250565b6000612f3a601683612498565b9150612f4582612f04565b602082019050919050565b60006020820190508181036000830152612f6981612f2d565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e74000000600082015250565b6000612fa6601d83612498565b9150612fb182612f70565b602082019050919050565b60006020820190508181036000830152612fd581612f99565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b6000613038602183612498565b915061304382612fdc565b604082019050919050565b600060208201905081810360008301526130678161302b565b9050919050565b6000613079826123ed565b9150613084836123ed565b9250828202613092816123ed565b915082820484148315176130a9576130a8612abc565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006130ea826123ed565b91506130f5836123ed565b925082613105576131046130b0565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061317d81612571565b92915050565b600060208284031215613199576131986123e8565b5b60006131a78482850161316e565b91505092915050565b6000819050919050565b60006131d56131d06131cb846131b0565b612878565b6123ed565b9050919050565b6131e5816131ba565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132208161255f565b82525050565b60006132328383613217565b60208301905092915050565b6000602082019050919050565b6000613256826131eb565b61326081856131f6565b935061326b83613207565b8060005b8381101561329c5781516132838882613226565b975061328e8361323e565b92505060018101905061326f565b5085935050505092915050565b600060a0820190506132be6000830188612463565b6132cb60208301876131dc565b81810360408301526132dd818661324b565b90506132ec6060830185612666565b6132f96080830184612463565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000613339601d83612498565b915061334482613303565b602082019050919050565b600060208201905081810360008301526133688161332c565b9050919050565b600081905092915050565b50565b600061338a60008361336f565b91506133958261337a565b600082019050919050565b60006133ab8261337d565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000613411603a83612498565b915061341c826133b5565b604082019050919050565b6000602082019050818103600083015261344081613404565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006134a3602583612498565b91506134ae82613447565b604082019050919050565b600060208201905081810360008301526134d281613496565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613535602383612498565b9150613540826134d9565b604082019050919050565b6000602082019050818103600083015261356481613528565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006135c7602683612498565b91506135d28261356b565b604082019050919050565b600060208201905081810360008301526135f6816135ba565b905091905056fea2646970667358221220b6ab0fa1a3a733f8caca79407e5d40d5a01f69049e53be21a288d2c25c62e9d064736f6c63430008130033

Deployed Bytecode Sourcemap

7873:4741:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11353:273;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8172:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1811:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2725:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2132:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2902:422;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8347:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2031:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3332:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11764:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8079:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12323:227;;;;;;;;;;;;;:::i;:::-;;8049:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2248:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6650:94;;;;;;;;;;;;;:::i;:::-;;11632:126;;;;;;;;;;;;;:::i;:::-;;11174:173;;;;;;;;;;;;;:::i;:::-;;12055:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6427:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8463:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1919:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11058:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12204:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3555:377;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7989:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2383:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8286:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8429:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8226:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8503:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2566:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10957:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11913:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6752:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7961:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11353:273;6573:12;:10;:12::i;:::-;6562:23;;:7;:5;:7::i;:::-;:23;;;6554:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11462:2:::1;11449:9;:15;;11440:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;11526:2;11509:13;:19;;11500:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;11574:9;11564:7;:19;;;;11605:13;11594:8;:24;;;;11353:273:::0;;:::o;8172:47::-;;;;:::o;1811:100::-;1865:13;1898:5;1891:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1811:100;:::o;2725:169::-;2808:4;2825:39;2834:12;:10;:12::i;:::-;2848:7;2857:6;2825:8;:39::i;:::-;2882:4;2875:11;;2725:169;;;;:::o;2132:108::-;2193:7;2220:12;;2213:19;;2132:108;:::o;2902:422::-;3008:4;3025:36;3035:6;3043:9;3054:6;3025:9;:36::i;:::-;3074:24;3101:11;:19;3113:6;3101:19;;;;;;;;;;;;;;;:33;3121:12;:10;:12::i;:::-;3101:33;;;;;;;;;;;;;;;;3074:60;;3173:6;3153:16;:26;;3145:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;3235:57;3244:6;3252:12;:10;:12::i;:::-;3285:6;3266:16;:25;;;;:::i;:::-;3235:8;:57::i;:::-;3312:4;3305:11;;;2902:422;;;;;:::o;8347:75::-;;;;;;;;;;;;;:::o;2031:93::-;2089:5;2114:2;2107:9;;2031:93;:::o;3332:215::-;3420:4;3437:80;3446:12;:10;:12::i;:::-;3460:7;3506:10;3469:11;:25;3481:12;:10;:12::i;:::-;3469:25;;;;;;;;;;;;;;;:34;3495:7;3469:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;3437:8;:80::i;:::-;3535:4;3528:11;;3332:215;;;;:::o;11764:137::-;6573:12;:10;:12::i;:::-;6562:23;;:7;:5;:7::i;:::-;:23;;;6554:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11863:7:::1;11854:6;;:16;;;;;;;;;;;;;;;;;;11888:5;11881:4;;:12;;;;;;;;;;;;;;;;;;11764:137:::0;;:::o;8079:26::-;;;;;;;;;;;;;:::o;12323:227::-;12387:15;;;;;;;;;;;12373:29;;:12;:10;:12::i;:::-;:29;;;12365:38;;;;;;12414:20;12435:24;12453:4;12435:9;:24::i;:::-;12414:45;;12486:1;12473:12;:14;12470:73;;;12501:30;12518:12;12501:16;:30::i;:::-;12470:73;12354:196;12323:227::o;8049:23::-;;;;;;;;;;;;;:::o;2248:127::-;2322:7;2349:9;:18;2359:7;2349:18;;;;;;;;;;;;;;;;2342:25;;2248:127;;;:::o;6650:94::-;6573:12;:10;:12::i;:::-;6562:23;;:7;:5;:7::i;:::-;:23;;;6554:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6715:21:::1;6733:1;6715:9;:21::i;:::-;6650:94::o:0;11632:126::-;6573:12;:10;:12::i;:::-;6562:23;;:7;:5;:7::i;:::-;:23;;;6554:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11707:7:::1;;11684:20;:30;;;;11743:7;;11725:15;:25;;;;11632:126::o:0;11174:173::-;6573:12;:10;:12::i;:::-;6562:23;;:7;:5;:7::i;:::-;:23;;;6554:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11237:14:::1;;;;;;;;;;;11236:15;11228:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;11306:4;11289:14;;:21;;;;;;;;;;;;;;;;;;11335:4;11321:11;;:18;;;;;;;;;;;;;;;;;;11174:173::o:0;12055:141::-;12141:12;12134:29;;;12164:15;;;;;;;;;;;12181:6;12134:54;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12055:141;;:::o;6427:87::-;6473:7;6500:6;;;;;;;;;;;6493:13;;6427:87;:::o;8463:27::-;;;;:::o;1919:104::-;1975:13;2008:7;2001:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1919:104;:::o;11058:110::-;6573:12;:10;:12::i;:::-;6562:23;;:7;:5;:7::i;:::-;:23;;;6554:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11150:10:::1;11134:13;:26;;;;11058:110:::0;:::o;12204:111::-;12262:45;12297:9;12270:15;;;;;;;;;;;12262:34;;;;:45;;;;:::i;:::-;12204:111;:::o;3555:377::-;3648:4;3665:24;3692:11;:25;3704:12;:10;:12::i;:::-;3692:25;;;;;;;;;;;;;;;:34;3718:7;3692:34;;;;;;;;;;;;;;;;3665:61;;3765:15;3745:16;:35;;3737:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;3833:67;3842:12;:10;:12::i;:::-;3856:7;3884:15;3865:16;:34;;;;:::i;:::-;3833:8;:67::i;:::-;3920:4;3913:11;;;3555:377;;;;:::o;7989:19::-;;;;;;;;;;;;;:::o;2383:175::-;2469:4;2486:42;2496:12;:10;:12::i;:::-;2510:9;2521:6;2486:9;:42::i;:::-;2546:4;2539:11;;2383:175;;;;:::o;8286:48::-;;;;:::o;8429:26::-;;;;:::o;8226:53::-;;;;:::o;8503:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;2566:151::-;2655:7;2682:11;:18;2694:5;2682:18;;;;;;;;;;;;;;;:27;2701:7;2682:27;;;;;;;;;;;;;;;;2675:34;;2566:151;;;;:::o;10957:93::-;6573:12;:10;:12::i;:::-;6562:23;;:7;:5;:7::i;:::-;:23;;;6554:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11037:5:::1;11023:11;;:19;;;;;;;;;;;;;;;;;;10957:93:::0;:::o;11913:134::-;6573:12;:10;:12::i;:::-;6562:23;;:7;:5;:7::i;:::-;:23;;;6554:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12034:5:::1;12005:16;:26;12022:8;12005:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;11913:134:::0;;:::o;6752:192::-;6573:12;:10;:12::i;:::-;6562:23;;:7;:5;:7::i;:::-;:23;;;6554:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6861:1:::1;6841:22;;:8;:22;;::::0;6833:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6917:19;6927:8;6917:9;:19::i;:::-;6752:192:::0;:::o;7961:21::-;;;;;;;;;;;;;:::o;213:98::-;266:7;293:10;286:17;;213:98;:::o;5397:346::-;5516:1;5499:19;;:5;:19;;;5491:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5597:1;5578:21;;:7;:21;;;5570:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5681:6;5651:11;:18;5663:5;5651:18;;;;;;;;;;;;;;;:27;5670:7;5651:27;;;;;;;;;;;;;;;:36;;;;5719:7;5703:32;;5712:5;5703:32;;;5728:6;5703:32;;;;;;:::i;:::-;;;;;;;;5397:346;;;:::o;9208:1105::-;9324:1;9315:6;:10;9307:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9414:16;:24;9431:6;9414:24;;;;;;;;;;;;;;;;;;;;;;;;;9413:25;:57;;;;;9443:16;:27;9460:9;9443:27;;;;;;;;;;;;;;;;;;;;;;;;;9442:28;9413:57;:70;;;;;9475:8;;;;;;;;;;;9474:9;9413:70;9410:401;;;9507:14;;;;;;;;;;;9499:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;9581:20;;9571:6;:30;;9563:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;9666:4;;;;;;;;;;;9653:17;;:9;:17;;;9650:150;;9731:15;;9721:6;9698:20;9708:9;9698;:20::i;:::-;:29;;;;:::i;:::-;:48;;9690:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;9650:150;9410:401;9823:11;9863:8;;;;;;;;;;;:36;;;;9875:16;:24;9892:6;9875:24;;;;;;;;;;;;;;;;;;;;;;;;;9863:36;:67;;;;9903:16;:27;9920:9;9903:27;;;;;;;;;;;;;;;;;;;;;;;;;9863:67;9859:234;;;9938:1;9932:7;;9859:234;;;9998:4;;;;;;;;;;;9985:17;;:9;:17;;;9982:99;;10030:3;10019:8;;10010:6;:17;;;;:::i;:::-;:23;;;;:::i;:::-;10004:29;;9982:99;;;10078:3;10068:7;;10059:6;:16;;;;:::i;:::-;:22;;;;:::i;:::-;10053:28;;9982:99;9859:234;10119:11;;;;;;;;;;;:24;;;;;10135:8;;;;;;;;;;;10134:9;10119:24;:42;;;;;10157:4;;;;;;;;;;;10147:14;;:6;:14;;;;10119:42;10115:61;;;10163:13;:11;:13::i;:::-;10115:61;10189:48;10205:6;10213:9;10233:3;10224:6;:12;;;;:::i;:::-;10189:15;:48::i;:::-;10257:1;10251:3;:7;10248:55;;;10260:43;10276:6;10292:4;10299:3;10260:15;:43::i;:::-;10248:55;9296:1017;9208:1105;;;:::o;10545:402::-;10611:21;10649:1;10635:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10611:40;;10680:4;10662;10667:1;10662:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;10706:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10696:4;10701:1;10696:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;10732:53;10749:4;10764:6;;;;;;;;;;;10773:11;10732:8;:53::i;:::-;10824:6;;;;;;;;;;;:57;;;10882:11;10895:1;10898:4;10904:15;;;;;;;;;;;10921;10824:113;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10600:347;10545:402;:::o;6952:173::-;7008:16;7027:6;;;;;;;;;;;7008:25;;7053:8;7044:6;;:17;;;;;;;;;;;;;;;;;;7108:8;7077:40;;7098:8;7077:40;;;;;;;;;;;;6997:128;6952:173;:::o;5872:317::-;5987:6;5962:21;:31;;5954:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6041:12;6059:9;:14;;6081:6;6059:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6040:52;;;6111:7;6103:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;5943:246;5872:317;;:::o;10322:213::-;8599:8;;;;;;;;;;;8594:104;;8635:4;8624:8;;:15;;;;;;;;;;;;;;;;;;10371:23:::1;10397:24;10415:4;10397:9;:24::i;:::-;10371:50;;10455:13;;10436:15;:32;10432:96;;10485:31;10502:13;;10485:16;:31::i;:::-;10432:96;10360:175;8681:5:::0;8670:8;;:16;;;;;;;;;;;;;;;;;;8594:104;10322:213::o;3940:604::-;4064:1;4046:20;;:6;:20;;;4038:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;4148:1;4127:23;;:9;:23;;;4119:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4203:47;4224:6;4232:9;4243:6;4203:20;:47::i;:::-;4263:21;4287:9;:17;4297:6;4287:17;;;;;;;;;;;;;;;;4263:41;;4340:6;4323:13;:23;;4315:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;4436:6;4420:13;:22;;;;:::i;:::-;4400:9;:17;4410:6;4400:17;;;;;;;;;;;;;;;:42;;;;4477:6;4453:9;:20;4463:9;4453:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;4518:9;4501:35;;4510:6;4501:35;;;4529:6;4501:35;;;;;;:::i;:::-;;;;;;;;4027:517;3940:604;;;:::o;5751:92::-;;;;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:474::-;758:6;766;815:2;803:9;794:7;790:23;786:32;783:119;;;821:79;;:::i;:::-;783:119;941:1;966:53;1011:7;1002:6;991:9;987:22;966:53;:::i;:::-;956:63;;912:117;1068:2;1094:53;1139:7;1130:6;1119:9;1115:22;1094:53;:::i;:::-;1084:63;;1039:118;690:474;;;;;:::o;1170:118::-;1257:24;1275:5;1257:24;:::i;:::-;1252:3;1245:37;1170:118;;:::o;1294:222::-;1387:4;1425:2;1414:9;1410:18;1402:26;;1438:71;1506:1;1495:9;1491:17;1482:6;1438:71;:::i;:::-;1294:222;;;;:::o;1522:99::-;1574:6;1608:5;1602:12;1592:22;;1522:99;;;:::o;1627:169::-;1711:11;1745:6;1740:3;1733:19;1785:4;1780:3;1776:14;1761:29;;1627:169;;;;:::o;1802:246::-;1883:1;1893:113;1907:6;1904:1;1901:13;1893:113;;;1992:1;1987:3;1983:11;1977:18;1973:1;1968:3;1964:11;1957:39;1929:2;1926:1;1922:10;1917:15;;1893:113;;;2040:1;2031:6;2026:3;2022:16;2015:27;1864:184;1802:246;;;:::o;2054:102::-;2095:6;2146:2;2142:7;2137:2;2130:5;2126:14;2122:28;2112:38;;2054:102;;;:::o;2162:377::-;2250:3;2278:39;2311:5;2278:39;:::i;:::-;2333:71;2397:6;2392:3;2333:71;:::i;:::-;2326:78;;2413:65;2471:6;2466:3;2459:4;2452:5;2448:16;2413:65;:::i;:::-;2503:29;2525:6;2503:29;:::i;:::-;2498:3;2494:39;2487:46;;2254:285;2162:377;;;;:::o;2545:313::-;2658:4;2696:2;2685:9;2681:18;2673:26;;2745:9;2739:4;2735:20;2731:1;2720:9;2716:17;2709:47;2773:78;2846:4;2837:6;2773:78;:::i;:::-;2765:86;;2545:313;;;;:::o;2864:126::-;2901:7;2941:42;2934:5;2930:54;2919:65;;2864:126;;;:::o;2996:96::-;3033:7;3062:24;3080:5;3062:24;:::i;:::-;3051:35;;2996:96;;;:::o;3098:122::-;3171:24;3189:5;3171:24;:::i;:::-;3164:5;3161:35;3151:63;;3210:1;3207;3200:12;3151:63;3098:122;:::o;3226:139::-;3272:5;3310:6;3297:20;3288:29;;3326:33;3353:5;3326:33;:::i;:::-;3226:139;;;;:::o;3371:474::-;3439:6;3447;3496:2;3484:9;3475:7;3471:23;3467:32;3464:119;;;3502:79;;:::i;:::-;3464:119;3622:1;3647:53;3692:7;3683:6;3672:9;3668:22;3647:53;:::i;:::-;3637:63;;3593:117;3749:2;3775:53;3820:7;3811:6;3800:9;3796:22;3775:53;:::i;:::-;3765:63;;3720:118;3371:474;;;;;:::o;3851:90::-;3885:7;3928:5;3921:13;3914:21;3903:32;;3851:90;;;:::o;3947:109::-;4028:21;4043:5;4028:21;:::i;:::-;4023:3;4016:34;3947:109;;:::o;4062:210::-;4149:4;4187:2;4176:9;4172:18;4164:26;;4200:65;4262:1;4251:9;4247:17;4238:6;4200:65;:::i;:::-;4062:210;;;;:::o;4278:619::-;4355:6;4363;4371;4420:2;4408:9;4399:7;4395:23;4391:32;4388:119;;;4426:79;;:::i;:::-;4388:119;4546:1;4571:53;4616:7;4607:6;4596:9;4592:22;4571:53;:::i;:::-;4561:63;;4517:117;4673:2;4699:53;4744:7;4735:6;4724:9;4720:22;4699:53;:::i;:::-;4689:63;;4644:118;4801:2;4827:53;4872:7;4863:6;4852:9;4848:22;4827:53;:::i;:::-;4817:63;;4772:118;4278:619;;;;;:::o;4903:118::-;4990:24;5008:5;4990:24;:::i;:::-;4985:3;4978:37;4903:118;;:::o;5027:222::-;5120:4;5158:2;5147:9;5143:18;5135:26;;5171:71;5239:1;5228:9;5224:17;5215:6;5171:71;:::i;:::-;5027:222;;;;:::o;5255:86::-;5290:7;5330:4;5323:5;5319:16;5308:27;;5255:86;;;:::o;5347:112::-;5430:22;5446:5;5430:22;:::i;:::-;5425:3;5418:35;5347:112;;:::o;5465:214::-;5554:4;5592:2;5581:9;5577:18;5569:26;;5605:67;5669:1;5658:9;5654:17;5645:6;5605:67;:::i;:::-;5465:214;;;;:::o;5685:111::-;5737:7;5766:24;5784:5;5766:24;:::i;:::-;5755:35;;5685:111;;;:::o;5802:152::-;5890:39;5923:5;5890:39;:::i;:::-;5883:5;5880:50;5870:78;;5944:1;5941;5934:12;5870:78;5802:152;:::o;5960:169::-;6021:5;6059:6;6046:20;6037:29;;6075:48;6117:5;6075:48;:::i;:::-;5960:169;;;;:::o;6135:504::-;6218:6;6226;6275:2;6263:9;6254:7;6250:23;6246:32;6243:119;;;6281:79;;:::i;:::-;6243:119;6401:1;6426:68;6486:7;6477:6;6466:9;6462:22;6426:68;:::i;:::-;6416:78;;6372:132;6543:2;6569:53;6614:7;6605:6;6594:9;6590:22;6569:53;:::i;:::-;6559:63;;6514:118;6135:504;;;;;:::o;6645:329::-;6704:6;6753:2;6741:9;6732:7;6728:23;6724:32;6721:119;;;6759:79;;:::i;:::-;6721:119;6879:1;6904:53;6949:7;6940:6;6929:9;6925:22;6904:53;:::i;:::-;6894:63;;6850:117;6645:329;;;;:::o;6980:::-;7039:6;7088:2;7076:9;7067:7;7063:23;7059:32;7056:119;;;7094:79;;:::i;:::-;7056:119;7214:1;7239:53;7284:7;7275:6;7264:9;7260:22;7239:53;:::i;:::-;7229:63;;7185:117;6980:329;;;;:::o;7315:474::-;7383:6;7391;7440:2;7428:9;7419:7;7415:23;7411:32;7408:119;;;7446:79;;:::i;:::-;7408:119;7566:1;7591:53;7636:7;7627:6;7616:9;7612:22;7591:53;:::i;:::-;7581:63;;7537:117;7693:2;7719:53;7764:7;7755:6;7744:9;7740:22;7719:53;:::i;:::-;7709:63;;7664:118;7315:474;;;;;:::o;7795:116::-;7865:21;7880:5;7865:21;:::i;:::-;7858:5;7855:32;7845:60;;7901:1;7898;7891:12;7845:60;7795:116;:::o;7917:133::-;7960:5;7998:6;7985:20;7976:29;;8014:30;8038:5;8014:30;:::i;:::-;7917:133;;;;:::o;8056:323::-;8112:6;8161:2;8149:9;8140:7;8136:23;8132:32;8129:119;;;8167:79;;:::i;:::-;8129:119;8287:1;8312:50;8354:7;8345:6;8334:9;8330:22;8312:50;:::i;:::-;8302:60;;8258:114;8056:323;;;;:::o;8385:468::-;8450:6;8458;8507:2;8495:9;8486:7;8482:23;8478:32;8475:119;;;8513:79;;:::i;:::-;8475:119;8633:1;8658:53;8703:7;8694:6;8683:9;8679:22;8658:53;:::i;:::-;8648:63;;8604:117;8760:2;8786:50;8828:7;8819:6;8808:9;8804:22;8786:50;:::i;:::-;8776:60;;8731:115;8385:468;;;;;:::o;8859:60::-;8887:3;8908:5;8901:12;;8859:60;;;:::o;8925:142::-;8975:9;9008:53;9026:34;9035:24;9053:5;9035:24;:::i;:::-;9026:34;:::i;:::-;9008:53;:::i;:::-;8995:66;;8925:142;;;:::o;9073:126::-;9123:9;9156:37;9187:5;9156:37;:::i;:::-;9143:50;;9073:126;;;:::o;9205:141::-;9270:9;9303:37;9334:5;9303:37;:::i;:::-;9290:50;;9205:141;;;:::o;9352:161::-;9454:52;9500:5;9454:52;:::i;:::-;9449:3;9442:65;9352:161;;:::o;9519:252::-;9627:4;9665:2;9654:9;9650:18;9642:26;;9678:86;9761:1;9750:9;9746:17;9737:6;9678:86;:::i;:::-;9519:252;;;;:::o;9777:182::-;9917:34;9913:1;9905:6;9901:14;9894:58;9777:182;:::o;9965:366::-;10107:3;10128:67;10192:2;10187:3;10128:67;:::i;:::-;10121:74;;10204:93;10293:3;10204:93;:::i;:::-;10322:2;10317:3;10313:12;10306:19;;9965:366;;;:::o;10337:419::-;10503:4;10541:2;10530:9;10526:18;10518:26;;10590:9;10584:4;10580:20;10576:1;10565:9;10561:17;10554:47;10618:131;10744:4;10618:131;:::i;:::-;10610:139;;10337:419;;;:::o;10762:170::-;10902:22;10898:1;10890:6;10886:14;10879:46;10762:170;:::o;10938:366::-;11080:3;11101:67;11165:2;11160:3;11101:67;:::i;:::-;11094:74;;11177:93;11266:3;11177:93;:::i;:::-;11295:2;11290:3;11286:12;11279:19;;10938:366;;;:::o;11310:419::-;11476:4;11514:2;11503:9;11499:18;11491:26;;11563:9;11557:4;11553:20;11549:1;11538:9;11534:17;11527:47;11591:131;11717:4;11591:131;:::i;:::-;11583:139;;11310:419;;;:::o;11735:180::-;11783:77;11780:1;11773:88;11880:4;11877:1;11870:15;11904:4;11901:1;11894:15;11921:320;11965:6;12002:1;11996:4;11992:12;11982:22;;12049:1;12043:4;12039:12;12070:18;12060:81;;12126:4;12118:6;12114:17;12104:27;;12060:81;12188:2;12180:6;12177:14;12157:18;12154:38;12151:84;;12207:18;;:::i;:::-;12151:84;11972:269;11921:320;;;:::o;12247:227::-;12387:34;12383:1;12375:6;12371:14;12364:58;12456:10;12451:2;12443:6;12439:15;12432:35;12247:227;:::o;12480:366::-;12622:3;12643:67;12707:2;12702:3;12643:67;:::i;:::-;12636:74;;12719:93;12808:3;12719:93;:::i;:::-;12837:2;12832:3;12828:12;12821:19;;12480:366;;;:::o;12852:419::-;13018:4;13056:2;13045:9;13041:18;13033:26;;13105:9;13099:4;13095:20;13091:1;13080:9;13076:17;13069:47;13133:131;13259:4;13133:131;:::i;:::-;13125:139;;12852:419;;;:::o;13277:180::-;13325:77;13322:1;13315:88;13422:4;13419:1;13412:15;13446:4;13443:1;13436:15;13463:194;13503:4;13523:20;13541:1;13523:20;:::i;:::-;13518:25;;13557:20;13575:1;13557:20;:::i;:::-;13552:25;;13601:1;13598;13594:9;13586:17;;13625:1;13619:4;13616:11;13613:37;;;13630:18;;:::i;:::-;13613:37;13463:194;;;;:::o;13663:191::-;13703:3;13722:20;13740:1;13722:20;:::i;:::-;13717:25;;13756:20;13774:1;13756:20;:::i;:::-;13751:25;;13799:1;13796;13792:9;13785:16;;13820:3;13817:1;13814:10;13811:36;;;13827:18;;:::i;:::-;13811:36;13663:191;;;;:::o;13860:172::-;14000:24;13996:1;13988:6;13984:14;13977:48;13860:172;:::o;14038:366::-;14180:3;14201:67;14265:2;14260:3;14201:67;:::i;:::-;14194:74;;14277:93;14366:3;14277:93;:::i;:::-;14395:2;14390:3;14386:12;14379:19;;14038:366;;;:::o;14410:419::-;14576:4;14614:2;14603:9;14599:18;14591:26;;14663:9;14657:4;14653:20;14649:1;14638:9;14634:17;14627:47;14691:131;14817:4;14691:131;:::i;:::-;14683:139;;14410:419;;;:::o;14835:332::-;14956:4;14994:2;14983:9;14979:18;14971:26;;15007:71;15075:1;15064:9;15060:17;15051:6;15007:71;:::i;:::-;15088:72;15156:2;15145:9;15141:18;15132:6;15088:72;:::i;:::-;14835:332;;;;;:::o;15173:137::-;15227:5;15258:6;15252:13;15243:22;;15274:30;15298:5;15274:30;:::i;:::-;15173:137;;;;:::o;15316:345::-;15383:6;15432:2;15420:9;15411:7;15407:23;15403:32;15400:119;;;15438:79;;:::i;:::-;15400:119;15558:1;15583:61;15636:7;15627:6;15616:9;15612:22;15583:61;:::i;:::-;15573:71;;15529:125;15316:345;;;;:::o;15667:224::-;15807:34;15803:1;15795:6;15791:14;15784:58;15876:7;15871:2;15863:6;15859:15;15852:32;15667:224;:::o;15897:366::-;16039:3;16060:67;16124:2;16119:3;16060:67;:::i;:::-;16053:74;;16136:93;16225:3;16136:93;:::i;:::-;16254:2;16249:3;16245:12;16238:19;;15897:366;;;:::o;16269:419::-;16435:4;16473:2;16462:9;16458:18;16450:26;;16522:9;16516:4;16512:20;16508:1;16497:9;16493:17;16486:47;16550:131;16676:4;16550:131;:::i;:::-;16542:139;;16269:419;;;:::o;16694:225::-;16834:34;16830:1;16822:6;16818:14;16811:58;16903:8;16898:2;16890:6;16886:15;16879:33;16694:225;:::o;16925:366::-;17067:3;17088:67;17152:2;17147:3;17088:67;:::i;:::-;17081:74;;17164:93;17253:3;17164:93;:::i;:::-;17282:2;17277:3;17273:12;17266:19;;16925:366;;;:::o;17297:419::-;17463:4;17501:2;17490:9;17486:18;17478:26;;17550:9;17544:4;17540:20;17536:1;17525:9;17521:17;17514:47;17578:131;17704:4;17578:131;:::i;:::-;17570:139;;17297:419;;;:::o;17722:223::-;17862:34;17858:1;17850:6;17846:14;17839:58;17931:6;17926:2;17918:6;17914:15;17907:31;17722:223;:::o;17951:366::-;18093:3;18114:67;18178:2;18173:3;18114:67;:::i;:::-;18107:74;;18190:93;18279:3;18190:93;:::i;:::-;18308:2;18303:3;18299:12;18292:19;;17951:366;;;:::o;18323:419::-;18489:4;18527:2;18516:9;18512:18;18504:26;;18576:9;18570:4;18566:20;18562:1;18551:9;18547:17;18540:47;18604:131;18730:4;18604:131;:::i;:::-;18596:139;;18323:419;;;:::o;18748:221::-;18888:34;18884:1;18876:6;18872:14;18865:58;18957:4;18952:2;18944:6;18940:15;18933:29;18748:221;:::o;18975:366::-;19117:3;19138:67;19202:2;19197:3;19138:67;:::i;:::-;19131:74;;19214:93;19303:3;19214:93;:::i;:::-;19332:2;19327:3;19323:12;19316:19;;18975:366;;;:::o;19347:419::-;19513:4;19551:2;19540:9;19536:18;19528:26;;19600:9;19594:4;19590:20;19586:1;19575:9;19571:17;19564:47;19628:131;19754:4;19628:131;:::i;:::-;19620:139;;19347:419;;;:::o;19772:228::-;19912:34;19908:1;19900:6;19896:14;19889:58;19981:11;19976:2;19968:6;19964:15;19957:36;19772:228;:::o;20006:366::-;20148:3;20169:67;20233:2;20228:3;20169:67;:::i;:::-;20162:74;;20245:93;20334:3;20245:93;:::i;:::-;20363:2;20358:3;20354:12;20347:19;;20006:366;;;:::o;20378:419::-;20544:4;20582:2;20571:9;20567:18;20559:26;;20631:9;20625:4;20621:20;20617:1;20606:9;20602:17;20595:47;20659:131;20785:4;20659:131;:::i;:::-;20651:139;;20378:419;;;:::o;20803:172::-;20943:24;20939:1;20931:6;20927:14;20920:48;20803:172;:::o;20981:366::-;21123:3;21144:67;21208:2;21203:3;21144:67;:::i;:::-;21137:74;;21220:93;21309:3;21220:93;:::i;:::-;21338:2;21333:3;21329:12;21322:19;;20981:366;;;:::o;21353:419::-;21519:4;21557:2;21546:9;21542:18;21534:26;;21606:9;21600:4;21596:20;21592:1;21581:9;21577:17;21570:47;21634:131;21760:4;21634:131;:::i;:::-;21626:139;;21353:419;;;:::o;21778:179::-;21918:31;21914:1;21906:6;21902:14;21895:55;21778:179;:::o;21963:366::-;22105:3;22126:67;22190:2;22185:3;22126:67;:::i;:::-;22119:74;;22202:93;22291:3;22202:93;:::i;:::-;22320:2;22315:3;22311:12;22304:19;;21963:366;;;:::o;22335:419::-;22501:4;22539:2;22528:9;22524:18;22516:26;;22588:9;22582:4;22578:20;22574:1;22563:9;22559:17;22552:47;22616:131;22742:4;22616:131;:::i;:::-;22608:139;;22335:419;;;:::o;22760:220::-;22900:34;22896:1;22888:6;22884:14;22877:58;22969:3;22964:2;22956:6;22952:15;22945:28;22760:220;:::o;22986:366::-;23128:3;23149:67;23213:2;23208:3;23149:67;:::i;:::-;23142:74;;23225:93;23314:3;23225:93;:::i;:::-;23343:2;23338:3;23334:12;23327:19;;22986:366;;;:::o;23358:419::-;23524:4;23562:2;23551:9;23547:18;23539:26;;23611:9;23605:4;23601:20;23597:1;23586:9;23582:17;23575:47;23639:131;23765:4;23639:131;:::i;:::-;23631:139;;23358:419;;;:::o;23783:410::-;23823:7;23846:20;23864:1;23846:20;:::i;:::-;23841:25;;23880:20;23898:1;23880:20;:::i;:::-;23875:25;;23935:1;23932;23928:9;23957:30;23975:11;23957:30;:::i;:::-;23946:41;;24136:1;24127:7;24123:15;24120:1;24117:22;24097:1;24090:9;24070:83;24047:139;;24166:18;;:::i;:::-;24047:139;23831:362;23783:410;;;;:::o;24199:180::-;24247:77;24244:1;24237:88;24344:4;24341:1;24334:15;24368:4;24365:1;24358:15;24385:185;24425:1;24442:20;24460:1;24442:20;:::i;:::-;24437:25;;24476:20;24494:1;24476:20;:::i;:::-;24471:25;;24515:1;24505:35;;24520:18;;:::i;:::-;24505:35;24562:1;24559;24555:9;24550:14;;24385:185;;;;:::o;24576:180::-;24624:77;24621:1;24614:88;24721:4;24718:1;24711:15;24745:4;24742:1;24735:15;24762:180;24810:77;24807:1;24800:88;24907:4;24904:1;24897:15;24931:4;24928:1;24921:15;24948:143;25005:5;25036:6;25030:13;25021:22;;25052:33;25079:5;25052:33;:::i;:::-;24948:143;;;;:::o;25097:351::-;25167:6;25216:2;25204:9;25195:7;25191:23;25187:32;25184:119;;;25222:79;;:::i;:::-;25184:119;25342:1;25367:64;25423:7;25414:6;25403:9;25399:22;25367:64;:::i;:::-;25357:74;;25313:128;25097:351;;;;:::o;25454:85::-;25499:7;25528:5;25517:16;;25454:85;;;:::o;25545:158::-;25603:9;25636:61;25654:42;25663:32;25689:5;25663:32;:::i;:::-;25654:42;:::i;:::-;25636:61;:::i;:::-;25623:74;;25545:158;;;:::o;25709:147::-;25804:45;25843:5;25804:45;:::i;:::-;25799:3;25792:58;25709:147;;:::o;25862:114::-;25929:6;25963:5;25957:12;25947:22;;25862:114;;;:::o;25982:184::-;26081:11;26115:6;26110:3;26103:19;26155:4;26150:3;26146:14;26131:29;;25982:184;;;;:::o;26172:132::-;26239:4;26262:3;26254:11;;26292:4;26287:3;26283:14;26275:22;;26172:132;;;:::o;26310:108::-;26387:24;26405:5;26387:24;:::i;:::-;26382:3;26375:37;26310:108;;:::o;26424:179::-;26493:10;26514:46;26556:3;26548:6;26514:46;:::i;:::-;26592:4;26587:3;26583:14;26569:28;;26424:179;;;;:::o;26609:113::-;26679:4;26711;26706:3;26702:14;26694:22;;26609:113;;;:::o;26758:732::-;26877:3;26906:54;26954:5;26906:54;:::i;:::-;26976:86;27055:6;27050:3;26976:86;:::i;:::-;26969:93;;27086:56;27136:5;27086:56;:::i;:::-;27165:7;27196:1;27181:284;27206:6;27203:1;27200:13;27181:284;;;27282:6;27276:13;27309:63;27368:3;27353:13;27309:63;:::i;:::-;27302:70;;27395:60;27448:6;27395:60;:::i;:::-;27385:70;;27241:224;27228:1;27225;27221:9;27216:14;;27181:284;;;27185:14;27481:3;27474:10;;26882:608;;;26758:732;;;;:::o;27496:831::-;27759:4;27797:3;27786:9;27782:19;27774:27;;27811:71;27879:1;27868:9;27864:17;27855:6;27811:71;:::i;:::-;27892:80;27968:2;27957:9;27953:18;27944:6;27892:80;:::i;:::-;28019:9;28013:4;28009:20;28004:2;27993:9;27989:18;27982:48;28047:108;28150:4;28141:6;28047:108;:::i;:::-;28039:116;;28165:72;28233:2;28222:9;28218:18;28209:6;28165:72;:::i;:::-;28247:73;28315:3;28304:9;28300:19;28291:6;28247:73;:::i;:::-;27496:831;;;;;;;;:::o;28333:179::-;28473:31;28469:1;28461:6;28457:14;28450:55;28333:179;:::o;28518:366::-;28660:3;28681:67;28745:2;28740:3;28681:67;:::i;:::-;28674:74;;28757:93;28846:3;28757:93;:::i;:::-;28875:2;28870:3;28866:12;28859:19;;28518:366;;;:::o;28890:419::-;29056:4;29094:2;29083:9;29079:18;29071:26;;29143:9;29137:4;29133:20;29129:1;29118:9;29114:17;29107:47;29171:131;29297:4;29171:131;:::i;:::-;29163:139;;28890:419;;;:::o;29315:147::-;29416:11;29453:3;29438:18;;29315:147;;;;:::o;29468:114::-;;:::o;29588:398::-;29747:3;29768:83;29849:1;29844:3;29768:83;:::i;:::-;29761:90;;29860:93;29949:3;29860:93;:::i;:::-;29978:1;29973:3;29969:11;29962:18;;29588:398;;;:::o;29992:379::-;30176:3;30198:147;30341:3;30198:147;:::i;:::-;30191:154;;30362:3;30355:10;;29992:379;;;:::o;30377:245::-;30517:34;30513:1;30505:6;30501:14;30494:58;30586:28;30581:2;30573:6;30569:15;30562:53;30377:245;:::o;30628:366::-;30770:3;30791:67;30855:2;30850:3;30791:67;:::i;:::-;30784:74;;30867:93;30956:3;30867:93;:::i;:::-;30985:2;30980:3;30976:12;30969:19;;30628:366;;;:::o;31000:419::-;31166:4;31204:2;31193:9;31189:18;31181:26;;31253:9;31247:4;31243:20;31239:1;31228:9;31224:17;31217:47;31281:131;31407:4;31281:131;:::i;:::-;31273:139;;31000:419;;;:::o;31425:224::-;31565:34;31561:1;31553:6;31549:14;31542:58;31634:7;31629:2;31621:6;31617:15;31610:32;31425:224;:::o;31655:366::-;31797:3;31818:67;31882:2;31877:3;31818:67;:::i;:::-;31811:74;;31894:93;31983:3;31894:93;:::i;:::-;32012:2;32007:3;32003:12;31996:19;;31655:366;;;:::o;32027:419::-;32193:4;32231:2;32220:9;32216:18;32208:26;;32280:9;32274:4;32270:20;32266:1;32255:9;32251:17;32244:47;32308:131;32434:4;32308:131;:::i;:::-;32300:139;;32027:419;;;:::o;32452:222::-;32592:34;32588:1;32580:6;32576:14;32569:58;32661:5;32656:2;32648:6;32644:15;32637:30;32452:222;:::o;32680:366::-;32822:3;32843:67;32907:2;32902:3;32843:67;:::i;:::-;32836:74;;32919:93;33008:3;32919:93;:::i;:::-;33037:2;33032:3;33028:12;33021:19;;32680:366;;;:::o;33052:419::-;33218:4;33256:2;33245:9;33241:18;33233:26;;33305:9;33299:4;33295:20;33291:1;33280:9;33276:17;33269:47;33333:131;33459:4;33333:131;:::i;:::-;33325:139;;33052:419;;;:::o;33477:225::-;33617:34;33613:1;33605:6;33601:14;33594:58;33686:8;33681:2;33673:6;33669:15;33662:33;33477:225;:::o;33708:366::-;33850:3;33871:67;33935:2;33930:3;33871:67;:::i;:::-;33864:74;;33947:93;34036:3;33947:93;:::i;:::-;34065:2;34060:3;34056:12;34049:19;;33708:366;;;:::o;34080:419::-;34246:4;34284:2;34273:9;34269:18;34261:26;;34333:9;34327:4;34323:20;34319:1;34308:9;34304:17;34297:47;34361:131;34487:4;34361:131;:::i;:::-;34353:139;;34080:419;;;:::o

Swarm Source

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