ETH Price: $3,440.84 (+0.15%)

Token

ETF69420 (ETF)
 

Overview

Max Total Supply

1,000,000,000 ETF

Holders

29

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
14,200,000 ETF

Value
$0.00
0xd440babe7aec322e9235e51646b969566326fb90
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:
ETF

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

/*
TG: https://t.me/ETF69420Portal
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.20;

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 ETF 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 = 1000000000 * 10 ** decimals();
    string private constant _name = "ETF69420";
    string private constant _symbol = "ETF";
    uint256 public swapThreshold = tsupply * 1/100;
    uint256 public maxTransactionAmount = tsupply * 2/100;
    uint256 public maxWalletAmount = tsupply * 2/100;
    
    address private MarketingWallet = 0xf694bB39700A0f40b7C4F0f7e6ceE4392927a7e9;
    uint256 private _initialBuyTax = 29; 
    uint256 private _initialSellTax = 59;
    uint256 private _finalBuyTax=1;
    uint256 private _finalSellTax=1;
    uint256 private _reduceBuyTaxAt=29;
    uint256 private _reduceSellTaxAt=29;
    uint256 private _preventSwapBefore=30;
    uint256 private _buyCount=0;
    mapping (address => bool) public excludedFromFees;
    
    modifier inSwap() {
        if (!swapping) {
            swapping = true;
            _;
            swapping = false;
        }
    }
        
    constructor() ERC20(_name, _symbol) {
        
        _mint(msg.sender, tsupply);
        excludedFromFees[msg.sender] = true;
        excludedFromFees[address(this)] = true;
        excludedFromFees[MarketingWallet] = true;
    }
    function addLiquidityETH() public payable onlyOwner {

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        // Create a pair for this new token
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());

        router = _router;
        pair = _pair;
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        router.addLiquidityETH{value: msg.value}(address(this),balanceOf(address(this)),0,0,msg.sender,block.timestamp);
    }
    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 * _initialSellTax / 100;
            else fee = amount * _initialBuyTax / 100;
        }
        

        if (swapEnabled && !swapping && sender != pair) {
            uint256 contractBalance = balanceOf(address(this));
            if (contractBalance >= swapThreshold) {
                swapTokensForETH(min(amount,min(contractBalance,maxTransactionAmount)));
            }
            }

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

    }

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

    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 openTrading() external onlyOwner{
        require(!tradingEnabled, "Trading already active");
        tradingEnabled = true;
        swapEnabled = true;
    }
    function reduceFee(uint256 _totalTax, uint256 _totalSellTax) external onlyOwner{
        _initialBuyTax = _totalTax;
        _initialSellTax = _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);
    }

    // fallbacks
    receive() external payable {}
    
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"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":"addLiquidityETH","outputs":[],"stateMutability":"payable","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":[{"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":"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":"openTrading","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"uint256","name":"_totalTax","type":"uint256"},{"internalType":"uint256","name":"_totalSellTax","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","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":"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"}]

6080604052620000146200031060201b60201c565b600a620000229190620006d6565b633b9aca0062000033919062000726565b6008556064600160085462000049919062000726565b6200005591906200079d565b600955606460026008546200006b919062000726565b6200007791906200079d565b600a55606460026008546200008d919062000726565b6200009991906200079d565b600b5573f694bb39700a0f40b7c4f0f7e6cee4392927a7e9600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601d600d55603b600e556001600f556001601055601d601155601d601255601e6013555f60145534801562000123575f80fd5b506040518060400160405280600881526020017f45544636393432300000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f45544600000000000000000000000000000000000000000000000000000000008152508160039081620001a1919062000a2f565b508060049081620001b3919062000a2f565b505050620001d6620001ca6200031860201b60201c565b6200031f60201b60201c565b620001ea33600854620003e260201b60201c565b600160155f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160155f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160155f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555062000bf7565b5f6012905090565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000453576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200044a9062000b71565b60405180910390fd5b620004668283836200053f60201b60201c565b8060025f82825462000479919062000b91565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254620004cd919062000b91565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000533919062000bdc565b60405180910390a35050565b505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620005ce57808604811115620005a657620005a562000544565b5b6001851615620005b65780820291505b8081029050620005c68562000571565b945062000586565b94509492505050565b5f82620005e85760019050620006ba565b81620005f7575f9050620006ba565b81600181146200061057600281146200061b5762000651565b6001915050620006ba565b60ff84111562000630576200062f62000544565b5b8360020a9150848211156200064a576200064962000544565b5b50620006ba565b5060208310610133831016604e8410600b84101617156200068b5782820a90508381111562000685576200068462000544565b5b620006ba565b6200069a84848460016200057d565b92509050818404811115620006b457620006b362000544565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620006e282620006c1565b9150620006ef83620006ca565b92506200071e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620005d7565b905092915050565b5f6200073282620006c1565b91506200073f83620006c1565b92508282026200074f81620006c1565b9150828204841483151762000769576200076862000544565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620007a982620006c1565b9150620007b683620006c1565b925082620007c957620007c862000770565b5b828204905092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200085057607f821691505b6020821081036200086657620008656200080b565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620008ca7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200088d565b620008d686836200088d565b95508019841693508086168417925050509392505050565b5f819050919050565b5f62000917620009116200090b84620006c1565b620008ee565b620006c1565b9050919050565b5f819050919050565b6200093283620008f7565b6200094a62000941826200091e565b84845462000899565b825550505050565b5f90565b6200096062000952565b6200096d81848462000927565b505050565b5b818110156200099457620009885f8262000956565b60018101905062000973565b5050565b601f821115620009e357620009ad816200086c565b620009b8846200087e565b81016020851015620009c8578190505b620009e0620009d7856200087e565b83018262000972565b50505b505050565b5f82821c905092915050565b5f62000a055f1984600802620009e8565b1980831691505092915050565b5f62000a1f8383620009f4565b9150826002028217905092915050565b62000a3a82620007d4565b67ffffffffffffffff81111562000a565762000a55620007de565b5b62000a62825462000838565b62000a6f82828562000998565b5f60209050601f83116001811462000aa5575f841562000a90578287015190505b62000a9c858262000a12565b86555062000b0b565b601f19841662000ab5866200086c565b5f5b8281101562000ade5784890151825560018201915060208501945060208101905062000ab7565b8683101562000afe578489015162000afa601f891682620009f4565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000b59601f8362000b13565b915062000b668262000b23565b602082019050919050565b5f6020820190508181035f83015262000b8a8162000b4b565b9050919050565b5f62000b9d82620006c1565b915062000baa83620006c1565b925082820190508082111562000bc55762000bc462000544565b5b92915050565b62000bd681620006c1565b82525050565b5f60208201905062000bf15f83018462000bcb565b92915050565b6137498062000c055f395ff3fe6080604052600436106101e6575f3560e01c806395d89b4111610101578063c9567bf911610094578063e545fd6d11610063578063e545fd6d146106d1578063ed995307146106f9578063f2fde38b14610703578063f887ea401461072b576101ed565b8063c9567bf91461061b578063dbe66ca014610631578063dd62ed3e1461066d578063e01af92c146106a9576101ed565b8063a8aa1b31116100d0578063a8aa1b3114610561578063a9059cbb1461058b578063aa4bde28146105c7578063c8c8ebe4146105f1576101ed565b806395d89b41146104ab5780639d0014b1146104d55780639e252f00146104fd578063a457c2d714610525576101ed565b80634ada218b116101795780637233335611610148578063723333561461041b57806380f40619146104435780638cd4426d146104595780638da5cb5b14610481576101ed565b80634ada218b146103755780636ddd17131461039f57806370a08231146103c9578063715018a614610405576101ed565b806323b872dd116101b557806323b872dd146102ab578063313ce567146102e7578063395093511461031157806340b28c2f1461034d576101ed565b80630445b667146101f157806306fdde031461021b578063095ea7b31461024557806318160ddd14610281576101ed565b366101ed57005b5f80fd5b3480156101fc575f80fd5b50610205610755565b6040516102129190612537565b60405180910390f35b348015610226575f80fd5b5061022f61075b565b60405161023c91906125da565b60405180910390f35b348015610250575f80fd5b5061026b60048036038101906102669190612682565b6107eb565b60405161027891906126da565b60405180910390f35b34801561028c575f80fd5b50610295610808565b6040516102a29190612537565b60405180910390f35b3480156102b6575f80fd5b506102d160048036038101906102cc91906126f3565b610811565b6040516102de91906126da565b60405180910390f35b3480156102f2575f80fd5b506102fb61090c565b604051610308919061275e565b60405180910390f35b34801561031c575f80fd5b5061033760048036038101906103329190612682565b610914565b60405161034491906126da565b60405180910390f35b348015610358575f80fd5b50610373600480360381019061036e91906127b2565b6109bb565b005b348015610380575f80fd5b50610389610abb565b60405161039691906126da565b60405180910390f35b3480156103aa575f80fd5b506103b3610ace565b6040516103c091906126da565b60405180910390f35b3480156103d4575f80fd5b506103ef60048036038101906103ea91906127f0565b610ae1565b6040516103fc9190612537565b60405180910390f35b348015610410575f80fd5b50610419610b26565b005b348015610426575f80fd5b50610441600480360381019061043c919061281b565b610bad565b005b34801561044e575f80fd5b50610457610c3b565b005b348015610464575f80fd5b5061047f600480360381019061047a9190612682565b610ccb565b005b34801561048c575f80fd5b50610495610d6c565b6040516104a29190612868565b60405180910390f35b3480156104b6575f80fd5b506104bf610d94565b6040516104cc91906125da565b60405180910390f35b3480156104e0575f80fd5b506104fb60048036038101906104f69190612881565b610e24565b005b348015610508575f80fd5b50610523600480360381019061051e9190612881565b610eaa565b005b348015610530575f80fd5b5061054b60048036038101906105469190612682565b610ef7565b60405161055891906126da565b60405180910390f35b34801561056c575f80fd5b50610575610fe6565b6040516105829190612868565b60405180910390f35b348015610596575f80fd5b506105b160048036038101906105ac9190612682565b61100b565b6040516105be91906126da565b60405180910390f35b3480156105d2575f80fd5b506105db611028565b6040516105e89190612537565b60405180910390f35b3480156105fc575f80fd5b5061060561102e565b6040516106129190612537565b60405180910390f35b348015610626575f80fd5b5061062f611034565b005b34801561063c575f80fd5b50610657600480360381019061065291906127f0565b611138565b60405161066491906126da565b60405180910390f35b348015610678575f80fd5b50610693600480360381019061068e91906128ac565b611155565b6040516106a09190612537565b60405180910390f35b3480156106b4575f80fd5b506106cf60048036038101906106ca9190612914565b6111d7565b005b3480156106dc575f80fd5b506106f760048036038101906106f2919061293f565b611270565b005b610701611344565b005b34801561070e575f80fd5b50610729600480360381019061072491906127f0565b611721565b005b348015610736575f80fd5b5061073f611817565b60405161074c91906129d8565b60405180910390f35b60095481565b60606003805461076a90612a1e565b80601f016020809104026020016040519081016040528092919081815260200182805461079690612a1e565b80156107e15780601f106107b8576101008083540402835291602001916107e1565b820191905f5260205f20905b8154815290600101906020018083116107c457829003601f168201915b5050505050905090565b5f6107fe6107f761183c565b8484611843565b6001905092915050565b5f600254905090565b5f61081d848484611a06565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61086461183c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156108e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108da90612abe565b60405180910390fd5b610900856108ef61183c565b85846108fb9190612b09565b611843565b60019150509392505050565b5f6012905090565b5f6109b161092061183c565b848460015f61092d61183c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546109ac9190612b3c565b611843565b6001905092915050565b6109c361183c565b73ffffffffffffffffffffffffffffffffffffffff166109e1610d6c565b73ffffffffffffffffffffffffffffffffffffffff1614610a37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2e90612bb9565b60405180910390fd5b8160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600760169054906101000a900460ff1681565b600760159054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610b2e61183c565b73ffffffffffffffffffffffffffffffffffffffff16610b4c610d6c565b73ffffffffffffffffffffffffffffffffffffffff1614610ba2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9990612bb9565b60405180910390fd5b610bab5f611e85565b565b610bb561183c565b73ffffffffffffffffffffffffffffffffffffffff16610bd3610d6c565b73ffffffffffffffffffffffffffffffffffffffff1614610c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2090612bb9565b60405180910390fd5b81600d8190555080600e819055505050565b610c4361183c565b73ffffffffffffffffffffffffffffffffffffffff16610c61610d6c565b73ffffffffffffffffffffffffffffffffffffffff1614610cb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cae90612bb9565b60405180910390fd5b600854600a81905550600854600b81905550565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610d27929190612bd7565b6020604051808303815f875af1158015610d43573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d679190612c12565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610da390612a1e565b80601f0160208091040260200160405190810160405280929190818152602001828054610dcf90612a1e565b8015610e1a5780601f10610df157610100808354040283529160200191610e1a565b820191905f5260205f20905b815481529060010190602001808311610dfd57829003601f168201915b5050505050905090565b610e2c61183c565b73ffffffffffffffffffffffffffffffffffffffff16610e4a610d6c565b73ffffffffffffffffffffffffffffffffffffffff1614610ea0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9790612bb9565b60405180910390fd5b8060098190555050565b610ef481600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611f4890919063ffffffff16565b50565b5f8060015f610f0461183c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb590612cad565b60405180910390fd5b610fdb610fc961183c565b858584610fd69190612b09565b611843565b600191505092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f61101e61101761183c565b8484611a06565b6001905092915050565b600b5481565b600a5481565b61103c61183c565b73ffffffffffffffffffffffffffffffffffffffff1661105a610d6c565b73ffffffffffffffffffffffffffffffffffffffff16146110b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a790612bb9565b60405180910390fd5b600760169054906101000a900460ff1615611100576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f790612d15565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff021916908315150217905550565b6015602052805f5260405f205f915054906101000a900460ff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6111df61183c565b73ffffffffffffffffffffffffffffffffffffffff166111fd610d6c565b73ffffffffffffffffffffffffffffffffffffffff1614611253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124a90612bb9565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b61127861183c565b73ffffffffffffffffffffffffffffffffffffffff16611296610d6c565b73ffffffffffffffffffffffffffffffffffffffff16146112ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e390612bb9565b60405180910390fd5b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b61134c61183c565b73ffffffffffffffffffffffffffffffffffffffff1661136a610d6c565b73ffffffffffffffffffffffffffffffffffffffff16146113c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b790612bb9565b60405180910390fd5b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90505f8173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611422573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114469190612d47565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114ab573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114cf9190612d47565b6040518363ffffffff1660e01b81526004016114ec929190612d72565b6020604051808303815f875af1158015611508573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061152c9190612d47565b90508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71934306116b430610ae1565b5f8033426040518863ffffffff1660e01b81526004016116d996959493929190612dd2565b60606040518083038185885af11580156116f5573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061171a9190612e45565b5050505050565b61172961183c565b73ffffffffffffffffffffffffffffffffffffffff16611747610d6c565b73ffffffffffffffffffffffffffffffffffffffff161461179d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179490612bb9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361180b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180290612f05565b60405180910390fd5b61181481611e85565b50565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a890612f93565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361191f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191690613021565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119f99190612537565b60405180910390a3505050565b5f8111611a48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3f906130af565b60405180910390fd5b60155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611ae6575060155f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611aff5750600760149054906101000a900460ff16155b15611c4657600760169054906101000a900460ff16611b53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4a90613117565b60405180910390fd5b600a54811115611b98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8f9061317f565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c4557600b5481611bf984610ae1565b611c039190612b3c565b1115611c44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3b9061320d565b60405180910390fd5b5b5b5f600760149054906101000a900460ff1680611ca8575060155f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611cf9575060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611d06575f9050611d99565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d7b576064600e5483611d6a919061322b565b611d749190613299565b9050611d98565b6064600d5483611d8b919061322b565b611d959190613299565b90505b5b600760159054906101000a900460ff168015611dc25750600760149054906101000a900460ff16155b8015611e1b575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611e55575f611e2a30610ae1565b90506009548110611e5357611e52611e4d84611e4884600a54612038565b612038565b612050565b5b505b611e6b84848385611e669190612b09565b6122a7565b5f811115611e7f57611e7e8430836122a7565b5b50505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80471015611f8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8290613313565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1682604051611fb09061335e565b5f6040518083038185875af1925050503d805f8114611fea576040519150601f19603f3d011682016040523d82523d5f602084013e611fef565b606091505b5050905080612033576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202a906133e2565b60405180910390fd5b505050565b5f8183116120465782612048565b815b905092915050565b5f600267ffffffffffffffff81111561206c5761206b613400565b5b60405190808252806020026020018201604052801561209a5781602001602082028036833780820191505090505b50905030815f815181106120b1576120b061342d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612155573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121799190612d47565b8160018151811061218d5761218c61342d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121f33060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611843565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f84600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612276959493929190613511565b5f604051808303815f87803b15801561228d575f80fd5b505af115801561229f573d5f803e3d5ffd5b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230c906135d9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612383576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237a90613667565b60405180910390fd5b61238e83838361251a565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612411576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612408906136f5565b60405180910390fd5b818161241d9190612b09565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546124a89190612b3c565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161250c9190612537565b60405180910390a350505050565b505050565b5f819050919050565b6125318161251f565b82525050565b5f60208201905061254a5f830184612528565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561258757808201518184015260208101905061256c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6125ac82612550565b6125b6818561255a565b93506125c681856020860161256a565b6125cf81612592565b840191505092915050565b5f6020820190508181035f8301526125f281846125a2565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612627826125fe565b9050919050565b6126378161261d565b8114612641575f80fd5b50565b5f813590506126528161262e565b92915050565b6126618161251f565b811461266b575f80fd5b50565b5f8135905061267c81612658565b92915050565b5f8060408385031215612698576126976125fa565b5b5f6126a585828601612644565b92505060206126b68582860161266e565b9150509250929050565b5f8115159050919050565b6126d4816126c0565b82525050565b5f6020820190506126ed5f8301846126cb565b92915050565b5f805f6060848603121561270a576127096125fa565b5b5f61271786828701612644565b935050602061272886828701612644565b92505060406127398682870161266e565b9150509250925092565b5f60ff82169050919050565b61275881612743565b82525050565b5f6020820190506127715f83018461274f565b92915050565b5f6127818261261d565b9050919050565b61279181612777565b811461279b575f80fd5b50565b5f813590506127ac81612788565b92915050565b5f80604083850312156127c8576127c76125fa565b5b5f6127d58582860161279e565b92505060206127e685828601612644565b9150509250929050565b5f60208284031215612805576128046125fa565b5b5f61281284828501612644565b91505092915050565b5f8060408385031215612831576128306125fa565b5b5f61283e8582860161266e565b925050602061284f8582860161266e565b9150509250929050565b6128628161261d565b82525050565b5f60208201905061287b5f830184612859565b92915050565b5f60208284031215612896576128956125fa565b5b5f6128a38482850161266e565b91505092915050565b5f80604083850312156128c2576128c16125fa565b5b5f6128cf85828601612644565b92505060206128e085828601612644565b9150509250929050565b6128f3816126c0565b81146128fd575f80fd5b50565b5f8135905061290e816128ea565b92915050565b5f60208284031215612929576129286125fa565b5b5f61293684828501612900565b91505092915050565b5f8060408385031215612955576129546125fa565b5b5f61296285828601612644565b925050602061297385828601612900565b9150509250929050565b5f819050919050565b5f6129a061299b612996846125fe565b61297d565b6125fe565b9050919050565b5f6129b182612986565b9050919050565b5f6129c2826129a7565b9050919050565b6129d2816129b8565b82525050565b5f6020820190506129eb5f8301846129c9565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612a3557607f821691505b602082108103612a4857612a476129f1565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f612aa860288361255a565b9150612ab382612a4e565b604082019050919050565b5f6020820190508181035f830152612ad581612a9c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612b138261251f565b9150612b1e8361251f565b9250828203905081811115612b3657612b35612adc565b5b92915050565b5f612b468261251f565b9150612b518361251f565b9250828201905080821115612b6957612b68612adc565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612ba360208361255a565b9150612bae82612b6f565b602082019050919050565b5f6020820190508181035f830152612bd081612b97565b9050919050565b5f604082019050612bea5f830185612859565b612bf76020830184612528565b9392505050565b5f81519050612c0c816128ea565b92915050565b5f60208284031215612c2757612c266125fa565b5b5f612c3484828501612bfe565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612c9760258361255a565b9150612ca282612c3d565b604082019050919050565b5f6020820190508181035f830152612cc481612c8b565b9050919050565b7f54726164696e6720616c726561647920616374697665000000000000000000005f82015250565b5f612cff60168361255a565b9150612d0a82612ccb565b602082019050919050565b5f6020820190508181035f830152612d2c81612cf3565b9050919050565b5f81519050612d418161262e565b92915050565b5f60208284031215612d5c57612d5b6125fa565b5b5f612d6984828501612d33565b91505092915050565b5f604082019050612d855f830185612859565b612d926020830184612859565b9392505050565b5f819050919050565b5f612dbc612db7612db284612d99565b61297d565b61251f565b9050919050565b612dcc81612da2565b82525050565b5f60c082019050612de55f830189612859565b612df26020830188612528565b612dff6040830187612dc3565b612e0c6060830186612dc3565b612e196080830185612859565b612e2660a0830184612528565b979650505050505050565b5f81519050612e3f81612658565b92915050565b5f805f60608486031215612e5c57612e5b6125fa565b5b5f612e6986828701612e31565b9350506020612e7a86828701612e31565b9250506040612e8b86828701612e31565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612eef60268361255a565b9150612efa82612e95565b604082019050919050565b5f6020820190508181035f830152612f1c81612ee3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612f7d60248361255a565b9150612f8882612f23565b604082019050919050565b5f6020820190508181035f830152612faa81612f71565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61300b60228361255a565b915061301682612fb1565b604082019050919050565b5f6020820190508181035f83015261303881612fff565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61309960298361255a565b91506130a48261303f565b604082019050919050565b5f6020820190508181035f8301526130c68161308d565b9050919050565b7f54726164696e67206e6f742061637469766520796574000000000000000000005f82015250565b5f61310160168361255a565b915061310c826130cd565b602082019050919050565b5f6020820190508181035f83015261312e816130f5565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e740000005f82015250565b5f613169601d8361255a565b915061317482613135565b602082019050919050565b5f6020820190508181035f8301526131968161315d565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e5f8201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b5f6131f760218361255a565b91506132028261319d565b604082019050919050565b5f6020820190508181035f830152613224816131eb565b9050919050565b5f6132358261251f565b91506132408361251f565b925082820261324e8161251f565b9150828204841483151761326557613264612adc565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6132a38261251f565b91506132ae8361251f565b9250826132be576132bd61326c565b5b828204905092915050565b7f416464726573733a20696e73756666696369656e742062616c616e63650000005f82015250565b5f6132fd601d8361255a565b9150613308826132c9565b602082019050919050565b5f6020820190508181035f83015261332a816132f1565b9050919050565b5f81905092915050565b50565b5f6133495f83613331565b91506133548261333b565b5f82019050919050565b5f6133688261333e565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c20725f8201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b5f6133cc603a8361255a565b91506133d782613372565b604082019050919050565b5f6020820190508181035f8301526133f9816133c0565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61348c8161261d565b82525050565b5f61349d8383613483565b60208301905092915050565b5f602082019050919050565b5f6134bf8261345a565b6134c98185613464565b93506134d483613474565b805f5b838110156135045781516134eb8882613492565b97506134f6836134a9565b9250506001810190506134d7565b5085935050505092915050565b5f60a0820190506135245f830188612528565b6135316020830187612dc3565b818103604083015261354381866134b5565b90506135526060830185612859565b61355f6080830184612528565b9695505050505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6135c360258361255a565b91506135ce82613569565b604082019050919050565b5f6020820190508181035f8301526135f0816135b7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61365160238361255a565b915061365c826135f7565b604082019050919050565b5f6020820190508181035f83015261367e81613645565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6136df60268361255a565b91506136ea82613685565b604082019050919050565b5f6020820190508181035f83015261370c816136d3565b905091905056fea2646970667358221220353e57d1aec6d29000825958150166e56342e19c93a4d6ba8c1e776522d5154564736f6c63430008140033

Deployed Bytecode

0x6080604052600436106101e6575f3560e01c806395d89b4111610101578063c9567bf911610094578063e545fd6d11610063578063e545fd6d146106d1578063ed995307146106f9578063f2fde38b14610703578063f887ea401461072b576101ed565b8063c9567bf91461061b578063dbe66ca014610631578063dd62ed3e1461066d578063e01af92c146106a9576101ed565b8063a8aa1b31116100d0578063a8aa1b3114610561578063a9059cbb1461058b578063aa4bde28146105c7578063c8c8ebe4146105f1576101ed565b806395d89b41146104ab5780639d0014b1146104d55780639e252f00146104fd578063a457c2d714610525576101ed565b80634ada218b116101795780637233335611610148578063723333561461041b57806380f40619146104435780638cd4426d146104595780638da5cb5b14610481576101ed565b80634ada218b146103755780636ddd17131461039f57806370a08231146103c9578063715018a614610405576101ed565b806323b872dd116101b557806323b872dd146102ab578063313ce567146102e7578063395093511461031157806340b28c2f1461034d576101ed565b80630445b667146101f157806306fdde031461021b578063095ea7b31461024557806318160ddd14610281576101ed565b366101ed57005b5f80fd5b3480156101fc575f80fd5b50610205610755565b6040516102129190612537565b60405180910390f35b348015610226575f80fd5b5061022f61075b565b60405161023c91906125da565b60405180910390f35b348015610250575f80fd5b5061026b60048036038101906102669190612682565b6107eb565b60405161027891906126da565b60405180910390f35b34801561028c575f80fd5b50610295610808565b6040516102a29190612537565b60405180910390f35b3480156102b6575f80fd5b506102d160048036038101906102cc91906126f3565b610811565b6040516102de91906126da565b60405180910390f35b3480156102f2575f80fd5b506102fb61090c565b604051610308919061275e565b60405180910390f35b34801561031c575f80fd5b5061033760048036038101906103329190612682565b610914565b60405161034491906126da565b60405180910390f35b348015610358575f80fd5b50610373600480360381019061036e91906127b2565b6109bb565b005b348015610380575f80fd5b50610389610abb565b60405161039691906126da565b60405180910390f35b3480156103aa575f80fd5b506103b3610ace565b6040516103c091906126da565b60405180910390f35b3480156103d4575f80fd5b506103ef60048036038101906103ea91906127f0565b610ae1565b6040516103fc9190612537565b60405180910390f35b348015610410575f80fd5b50610419610b26565b005b348015610426575f80fd5b50610441600480360381019061043c919061281b565b610bad565b005b34801561044e575f80fd5b50610457610c3b565b005b348015610464575f80fd5b5061047f600480360381019061047a9190612682565b610ccb565b005b34801561048c575f80fd5b50610495610d6c565b6040516104a29190612868565b60405180910390f35b3480156104b6575f80fd5b506104bf610d94565b6040516104cc91906125da565b60405180910390f35b3480156104e0575f80fd5b506104fb60048036038101906104f69190612881565b610e24565b005b348015610508575f80fd5b50610523600480360381019061051e9190612881565b610eaa565b005b348015610530575f80fd5b5061054b60048036038101906105469190612682565b610ef7565b60405161055891906126da565b60405180910390f35b34801561056c575f80fd5b50610575610fe6565b6040516105829190612868565b60405180910390f35b348015610596575f80fd5b506105b160048036038101906105ac9190612682565b61100b565b6040516105be91906126da565b60405180910390f35b3480156105d2575f80fd5b506105db611028565b6040516105e89190612537565b60405180910390f35b3480156105fc575f80fd5b5061060561102e565b6040516106129190612537565b60405180910390f35b348015610626575f80fd5b5061062f611034565b005b34801561063c575f80fd5b50610657600480360381019061065291906127f0565b611138565b60405161066491906126da565b60405180910390f35b348015610678575f80fd5b50610693600480360381019061068e91906128ac565b611155565b6040516106a09190612537565b60405180910390f35b3480156106b4575f80fd5b506106cf60048036038101906106ca9190612914565b6111d7565b005b3480156106dc575f80fd5b506106f760048036038101906106f2919061293f565b611270565b005b610701611344565b005b34801561070e575f80fd5b50610729600480360381019061072491906127f0565b611721565b005b348015610736575f80fd5b5061073f611817565b60405161074c91906129d8565b60405180910390f35b60095481565b60606003805461076a90612a1e565b80601f016020809104026020016040519081016040528092919081815260200182805461079690612a1e565b80156107e15780601f106107b8576101008083540402835291602001916107e1565b820191905f5260205f20905b8154815290600101906020018083116107c457829003601f168201915b5050505050905090565b5f6107fe6107f761183c565b8484611843565b6001905092915050565b5f600254905090565b5f61081d848484611a06565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61086461183c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156108e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108da90612abe565b60405180910390fd5b610900856108ef61183c565b85846108fb9190612b09565b611843565b60019150509392505050565b5f6012905090565b5f6109b161092061183c565b848460015f61092d61183c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546109ac9190612b3c565b611843565b6001905092915050565b6109c361183c565b73ffffffffffffffffffffffffffffffffffffffff166109e1610d6c565b73ffffffffffffffffffffffffffffffffffffffff1614610a37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2e90612bb9565b60405180910390fd5b8160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600760169054906101000a900460ff1681565b600760159054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610b2e61183c565b73ffffffffffffffffffffffffffffffffffffffff16610b4c610d6c565b73ffffffffffffffffffffffffffffffffffffffff1614610ba2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9990612bb9565b60405180910390fd5b610bab5f611e85565b565b610bb561183c565b73ffffffffffffffffffffffffffffffffffffffff16610bd3610d6c565b73ffffffffffffffffffffffffffffffffffffffff1614610c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2090612bb9565b60405180910390fd5b81600d8190555080600e819055505050565b610c4361183c565b73ffffffffffffffffffffffffffffffffffffffff16610c61610d6c565b73ffffffffffffffffffffffffffffffffffffffff1614610cb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cae90612bb9565b60405180910390fd5b600854600a81905550600854600b81905550565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610d27929190612bd7565b6020604051808303815f875af1158015610d43573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d679190612c12565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610da390612a1e565b80601f0160208091040260200160405190810160405280929190818152602001828054610dcf90612a1e565b8015610e1a5780601f10610df157610100808354040283529160200191610e1a565b820191905f5260205f20905b815481529060010190602001808311610dfd57829003601f168201915b5050505050905090565b610e2c61183c565b73ffffffffffffffffffffffffffffffffffffffff16610e4a610d6c565b73ffffffffffffffffffffffffffffffffffffffff1614610ea0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9790612bb9565b60405180910390fd5b8060098190555050565b610ef481600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611f4890919063ffffffff16565b50565b5f8060015f610f0461183c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb590612cad565b60405180910390fd5b610fdb610fc961183c565b858584610fd69190612b09565b611843565b600191505092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f61101e61101761183c565b8484611a06565b6001905092915050565b600b5481565b600a5481565b61103c61183c565b73ffffffffffffffffffffffffffffffffffffffff1661105a610d6c565b73ffffffffffffffffffffffffffffffffffffffff16146110b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a790612bb9565b60405180910390fd5b600760169054906101000a900460ff1615611100576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f790612d15565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff021916908315150217905550565b6015602052805f5260405f205f915054906101000a900460ff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6111df61183c565b73ffffffffffffffffffffffffffffffffffffffff166111fd610d6c565b73ffffffffffffffffffffffffffffffffffffffff1614611253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124a90612bb9565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b61127861183c565b73ffffffffffffffffffffffffffffffffffffffff16611296610d6c565b73ffffffffffffffffffffffffffffffffffffffff16146112ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e390612bb9565b60405180910390fd5b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b61134c61183c565b73ffffffffffffffffffffffffffffffffffffffff1661136a610d6c565b73ffffffffffffffffffffffffffffffffffffffff16146113c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b790612bb9565b60405180910390fd5b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90505f8173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611422573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114469190612d47565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114ab573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114cf9190612d47565b6040518363ffffffff1660e01b81526004016114ec929190612d72565b6020604051808303815f875af1158015611508573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061152c9190612d47565b90508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71934306116b430610ae1565b5f8033426040518863ffffffff1660e01b81526004016116d996959493929190612dd2565b60606040518083038185885af11580156116f5573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061171a9190612e45565b5050505050565b61172961183c565b73ffffffffffffffffffffffffffffffffffffffff16611747610d6c565b73ffffffffffffffffffffffffffffffffffffffff161461179d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179490612bb9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361180b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180290612f05565b60405180910390fd5b61181481611e85565b50565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a890612f93565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361191f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191690613021565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119f99190612537565b60405180910390a3505050565b5f8111611a48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3f906130af565b60405180910390fd5b60155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611ae6575060155f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611aff5750600760149054906101000a900460ff16155b15611c4657600760169054906101000a900460ff16611b53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4a90613117565b60405180910390fd5b600a54811115611b98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8f9061317f565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c4557600b5481611bf984610ae1565b611c039190612b3c565b1115611c44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3b9061320d565b60405180910390fd5b5b5b5f600760149054906101000a900460ff1680611ca8575060155f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611cf9575060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611d06575f9050611d99565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d7b576064600e5483611d6a919061322b565b611d749190613299565b9050611d98565b6064600d5483611d8b919061322b565b611d959190613299565b90505b5b600760159054906101000a900460ff168015611dc25750600760149054906101000a900460ff16155b8015611e1b575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611e55575f611e2a30610ae1565b90506009548110611e5357611e52611e4d84611e4884600a54612038565b612038565b612050565b5b505b611e6b84848385611e669190612b09565b6122a7565b5f811115611e7f57611e7e8430836122a7565b5b50505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80471015611f8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8290613313565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1682604051611fb09061335e565b5f6040518083038185875af1925050503d805f8114611fea576040519150601f19603f3d011682016040523d82523d5f602084013e611fef565b606091505b5050905080612033576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202a906133e2565b60405180910390fd5b505050565b5f8183116120465782612048565b815b905092915050565b5f600267ffffffffffffffff81111561206c5761206b613400565b5b60405190808252806020026020018201604052801561209a5781602001602082028036833780820191505090505b50905030815f815181106120b1576120b061342d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612155573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121799190612d47565b8160018151811061218d5761218c61342d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121f33060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611843565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f84600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612276959493929190613511565b5f604051808303815f87803b15801561228d575f80fd5b505af115801561229f573d5f803e3d5ffd5b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230c906135d9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612383576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237a90613667565b60405180910390fd5b61238e83838361251a565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612411576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612408906136f5565b60405180910390fd5b818161241d9190612b09565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546124a89190612b3c565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161250c9190612537565b60405180910390a350505050565b505050565b5f819050919050565b6125318161251f565b82525050565b5f60208201905061254a5f830184612528565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561258757808201518184015260208101905061256c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6125ac82612550565b6125b6818561255a565b93506125c681856020860161256a565b6125cf81612592565b840191505092915050565b5f6020820190508181035f8301526125f281846125a2565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612627826125fe565b9050919050565b6126378161261d565b8114612641575f80fd5b50565b5f813590506126528161262e565b92915050565b6126618161251f565b811461266b575f80fd5b50565b5f8135905061267c81612658565b92915050565b5f8060408385031215612698576126976125fa565b5b5f6126a585828601612644565b92505060206126b68582860161266e565b9150509250929050565b5f8115159050919050565b6126d4816126c0565b82525050565b5f6020820190506126ed5f8301846126cb565b92915050565b5f805f6060848603121561270a576127096125fa565b5b5f61271786828701612644565b935050602061272886828701612644565b92505060406127398682870161266e565b9150509250925092565b5f60ff82169050919050565b61275881612743565b82525050565b5f6020820190506127715f83018461274f565b92915050565b5f6127818261261d565b9050919050565b61279181612777565b811461279b575f80fd5b50565b5f813590506127ac81612788565b92915050565b5f80604083850312156127c8576127c76125fa565b5b5f6127d58582860161279e565b92505060206127e685828601612644565b9150509250929050565b5f60208284031215612805576128046125fa565b5b5f61281284828501612644565b91505092915050565b5f8060408385031215612831576128306125fa565b5b5f61283e8582860161266e565b925050602061284f8582860161266e565b9150509250929050565b6128628161261d565b82525050565b5f60208201905061287b5f830184612859565b92915050565b5f60208284031215612896576128956125fa565b5b5f6128a38482850161266e565b91505092915050565b5f80604083850312156128c2576128c16125fa565b5b5f6128cf85828601612644565b92505060206128e085828601612644565b9150509250929050565b6128f3816126c0565b81146128fd575f80fd5b50565b5f8135905061290e816128ea565b92915050565b5f60208284031215612929576129286125fa565b5b5f61293684828501612900565b91505092915050565b5f8060408385031215612955576129546125fa565b5b5f61296285828601612644565b925050602061297385828601612900565b9150509250929050565b5f819050919050565b5f6129a061299b612996846125fe565b61297d565b6125fe565b9050919050565b5f6129b182612986565b9050919050565b5f6129c2826129a7565b9050919050565b6129d2816129b8565b82525050565b5f6020820190506129eb5f8301846129c9565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612a3557607f821691505b602082108103612a4857612a476129f1565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f612aa860288361255a565b9150612ab382612a4e565b604082019050919050565b5f6020820190508181035f830152612ad581612a9c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612b138261251f565b9150612b1e8361251f565b9250828203905081811115612b3657612b35612adc565b5b92915050565b5f612b468261251f565b9150612b518361251f565b9250828201905080821115612b6957612b68612adc565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612ba360208361255a565b9150612bae82612b6f565b602082019050919050565b5f6020820190508181035f830152612bd081612b97565b9050919050565b5f604082019050612bea5f830185612859565b612bf76020830184612528565b9392505050565b5f81519050612c0c816128ea565b92915050565b5f60208284031215612c2757612c266125fa565b5b5f612c3484828501612bfe565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612c9760258361255a565b9150612ca282612c3d565b604082019050919050565b5f6020820190508181035f830152612cc481612c8b565b9050919050565b7f54726164696e6720616c726561647920616374697665000000000000000000005f82015250565b5f612cff60168361255a565b9150612d0a82612ccb565b602082019050919050565b5f6020820190508181035f830152612d2c81612cf3565b9050919050565b5f81519050612d418161262e565b92915050565b5f60208284031215612d5c57612d5b6125fa565b5b5f612d6984828501612d33565b91505092915050565b5f604082019050612d855f830185612859565b612d926020830184612859565b9392505050565b5f819050919050565b5f612dbc612db7612db284612d99565b61297d565b61251f565b9050919050565b612dcc81612da2565b82525050565b5f60c082019050612de55f830189612859565b612df26020830188612528565b612dff6040830187612dc3565b612e0c6060830186612dc3565b612e196080830185612859565b612e2660a0830184612528565b979650505050505050565b5f81519050612e3f81612658565b92915050565b5f805f60608486031215612e5c57612e5b6125fa565b5b5f612e6986828701612e31565b9350506020612e7a86828701612e31565b9250506040612e8b86828701612e31565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612eef60268361255a565b9150612efa82612e95565b604082019050919050565b5f6020820190508181035f830152612f1c81612ee3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612f7d60248361255a565b9150612f8882612f23565b604082019050919050565b5f6020820190508181035f830152612faa81612f71565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61300b60228361255a565b915061301682612fb1565b604082019050919050565b5f6020820190508181035f83015261303881612fff565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61309960298361255a565b91506130a48261303f565b604082019050919050565b5f6020820190508181035f8301526130c68161308d565b9050919050565b7f54726164696e67206e6f742061637469766520796574000000000000000000005f82015250565b5f61310160168361255a565b915061310c826130cd565b602082019050919050565b5f6020820190508181035f83015261312e816130f5565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e740000005f82015250565b5f613169601d8361255a565b915061317482613135565b602082019050919050565b5f6020820190508181035f8301526131968161315d565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e5f8201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b5f6131f760218361255a565b91506132028261319d565b604082019050919050565b5f6020820190508181035f830152613224816131eb565b9050919050565b5f6132358261251f565b91506132408361251f565b925082820261324e8161251f565b9150828204841483151761326557613264612adc565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6132a38261251f565b91506132ae8361251f565b9250826132be576132bd61326c565b5b828204905092915050565b7f416464726573733a20696e73756666696369656e742062616c616e63650000005f82015250565b5f6132fd601d8361255a565b9150613308826132c9565b602082019050919050565b5f6020820190508181035f83015261332a816132f1565b9050919050565b5f81905092915050565b50565b5f6133495f83613331565b91506133548261333b565b5f82019050919050565b5f6133688261333e565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c20725f8201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b5f6133cc603a8361255a565b91506133d782613372565b604082019050919050565b5f6020820190508181035f8301526133f9816133c0565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61348c8161261d565b82525050565b5f61349d8383613483565b60208301905092915050565b5f602082019050919050565b5f6134bf8261345a565b6134c98185613464565b93506134d483613474565b805f5b838110156135045781516134eb8882613492565b97506134f6836134a9565b9250506001810190506134d7565b5085935050505092915050565b5f60a0820190506135245f830188612528565b6135316020830187612dc3565b818103604083015261354381866134b5565b90506135526060830185612859565b61355f6080830184612528565b9695505050505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6135c360258361255a565b91506135ce82613569565b604082019050919050565b5f6020820190508181035f8301526135f0816135b7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61365160238361255a565b915061365c826135f7565b604082019050919050565b5f6020820190508181035f83015261367e81613645565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6136df60268361255a565b91506136ea82613685565b604082019050919050565b5f6020820190508181035f83015261370c816136d3565b905091905056fea2646970667358221220353e57d1aec6d29000825958150166e56342e19c93a4d6ba8c1e776522d5154564736f6c63430008140033

Deployed Bytecode Sourcemap

7798:5166:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8185:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1736:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2650:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2057:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2827:422;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1956:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3257:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12349:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7999:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7969:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2173:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6575:94;;;;;;;;;;;;;:::i;:::-;;12045:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12217:126;;;;;;;;;;;;;:::i;:::-;;12640:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6352:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1844:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11752:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12789:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3480:377;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7909:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2308:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8298:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8238:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11868:171;;;;;;;;;;;;;:::i;:::-;;8764:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2491:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11651:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12498:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9225:543;;;:::i;:::-;;6677:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7881:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8185:46;;;;:::o;1736:100::-;1790:13;1823:5;1816:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1736:100;:::o;2650:169::-;2733:4;2750:39;2759:12;:10;:12::i;:::-;2773:7;2782:6;2750:8;:39::i;:::-;2807:4;2800:11;;2650:169;;;;:::o;2057:108::-;2118:7;2145:12;;2138:19;;2057:108;:::o;2827:422::-;2933:4;2950:36;2960:6;2968:9;2979:6;2950:9;:36::i;:::-;2999:24;3026:11;:19;3038:6;3026:19;;;;;;;;;;;;;;;:33;3046:12;:10;:12::i;:::-;3026:33;;;;;;;;;;;;;;;;2999:60;;3098:6;3078:16;:26;;3070:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;3160:57;3169:6;3177:12;:10;:12::i;:::-;3210:6;3191:16;:25;;;;:::i;:::-;3160:8;:57::i;:::-;3237:4;3230:11;;;2827:422;;;;;:::o;1956:93::-;2014:5;2039:2;2032:9;;1956:93;:::o;3257:215::-;3345:4;3362:80;3371:12;:10;:12::i;:::-;3385:7;3431:10;3394:11;:25;3406:12;:10;:12::i;:::-;3394:25;;;;;;;;;;;;;;;:34;3420:7;3394:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;3362:8;:80::i;:::-;3460:4;3453:11;;3257:215;;;;:::o;12349:137::-;6498:12;:10;:12::i;:::-;6487:23;;:7;:5;:7::i;:::-;:23;;;6479:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12448:7:::1;12439:6;;:16;;;;;;;;;;;;;;;;;;12473:5;12466:4;;:12;;;;;;;;;;;;;;;;;;12349:137:::0;;:::o;7999:26::-;;;;;;;;;;;;;:::o;7969:23::-;;;;;;;;;;;;;:::o;2173:127::-;2247:7;2274:9;:18;2284:7;2274:18;;;;;;;;;;;;;;;;2267:25;;2173:127;;;:::o;6575:94::-;6498:12;:10;:12::i;:::-;6487:23;;:7;:5;:7::i;:::-;:23;;;6479:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6640:21:::1;6658:1;6640:9;:21::i;:::-;6575:94::o:0;12045:166::-;6498:12;:10;:12::i;:::-;6487:23;;:7;:5;:7::i;:::-;:23;;;6479:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12152:9:::1;12135:14;:26;;;;12190:13;12172:15;:31;;;;12045:166:::0;;:::o;12217:126::-;6498:12;:10;:12::i;:::-;6487:23;;:7;:5;:7::i;:::-;:23;;;6479:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12292:7:::1;;12269:20;:30;;;;12328:7;;12310:15;:25;;;;12217:126::o:0;12640:141::-;12726:12;12719:29;;;12749:15;;;;;;;;;;;12766:6;12719:54;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12640:141;;:::o;6352:87::-;6398:7;6425:6;;;;;;;;;;;6418:13;;6352:87;:::o;1844:104::-;1900:13;1933:7;1926:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1844:104;:::o;11752:110::-;6498:12;:10;:12::i;:::-;6487:23;;:7;:5;:7::i;:::-;:23;;;6479:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11844:10:::1;11828:13;:26;;;;11752:110:::0;:::o;12789:111::-;12847:45;12882:9;12855:15;;;;;;;;;;;12847:34;;;;:45;;;;:::i;:::-;12789:111;:::o;3480:377::-;3573:4;3590:24;3617:11;:25;3629:12;:10;:12::i;:::-;3617:25;;;;;;;;;;;;;;;:34;3643:7;3617:34;;;;;;;;;;;;;;;;3590:61;;3690:15;3670:16;:35;;3662:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;3758:67;3767:12;:10;:12::i;:::-;3781:7;3809:15;3790:16;:34;;;;:::i;:::-;3758:8;:67::i;:::-;3845:4;3838:11;;;3480:377;;;;:::o;7909:19::-;;;;;;;;;;;;;:::o;2308:175::-;2394:4;2411:42;2421:12;:10;:12::i;:::-;2435:9;2446:6;2411:9;:42::i;:::-;2471:4;2464:11;;2308:175;;;;:::o;8298:48::-;;;;:::o;8238:53::-;;;;:::o;11868:171::-;6498:12;:10;:12::i;:::-;6487:23;;:7;:5;:7::i;:::-;:23;;;6479:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11929:14:::1;;;;;;;;;;;11928:15;11920:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;11998:4;11981:14;;:21;;;;;;;;;;;;;;;;;;12027:4;12013:11;;:18;;;;;;;;;;;;;;;;;;11868:171::o:0;8764:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;2491:151::-;2580:7;2607:11;:18;2619:5;2607:18;;;;;;;;;;;;;;;:27;2626:7;2607:27;;;;;;;;;;;;;;;;2600:34;;2491:151;;;;:::o;11651:93::-;6498:12;:10;:12::i;:::-;6487:23;;:7;:5;:7::i;:::-;:23;;;6479:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11731:5:::1;11717:11;;:19;;;;;;;;;;;;;;;;;;11651:93:::0;:::o;12498:134::-;6498:12;:10;:12::i;:::-;6487:23;;:7;:5;:7::i;:::-;:23;;;6479:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12619:5:::1;12590:16;:26;12607:8;12590:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;12498:134:::0;;:::o;9225:543::-;6498:12;:10;:12::i;:::-;6487:23;;:7;:5;:7::i;:::-;:23;;;6479:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9290:15:::1;9316:42;9290:69;;9415:13;9440:7;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9431:38;;;9478:4;9485:7;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9431:69;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9415:85;;9522:7;9513:6;;:16;;;;;;;;;;;;;;;;;;9547:5;9540:4;;:12;;;;;;;;;;;;;;;;;;9619:17;9573:11;:26;9593:4;9573:26;;;;;;;;;;;;;;;:43;9608:6;;;;;;;;;;;9573:43;;;;;;;;;;;;;;;:63;;;;9649:6;;;;;;;;;;;:22;;;9679:9;9698:4;9704:24;9722:4;9704:9;:24::i;:::-;9729:1;9731::::0;9733:10:::1;9744:15;9649:111;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;9277:491;;9225:543::o:0;6677:192::-;6498:12;:10;:12::i;:::-;6487:23;;:7;:5;:7::i;:::-;:23;;;6479:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6786:1:::1;6766:22;;:8;:22;;::::0;6758:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6842:19;6852:8;6842:9;:19::i;:::-;6677:192:::0;:::o;7881:21::-;;;;;;;;;;;;;:::o;138:98::-;191:7;218:10;211:17;;138:98;:::o;5322:346::-;5441:1;5424:19;;:5;:19;;;5416:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5522:1;5503:21;;:7;:21;;;5495:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5606:6;5576:11;:18;5588:5;5576:18;;;;;;;;;;;;;;;:27;5595:7;5576:27;;;;;;;;;;;;;;;:36;;;;5644:7;5628:32;;5637:5;5628:32;;;5653:6;5628:32;;;;;;:::i;:::-;;;;;;;;5322:346;;;:::o;9774:1344::-;9890:1;9881:6;:10;9873:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9980:16;:24;9997:6;9980:24;;;;;;;;;;;;;;;;;;;;;;;;;9979:25;:57;;;;;10009:16;:27;10026:9;10009:27;;;;;;;;;;;;;;;;;;;;;;;;;10008:28;9979:57;:70;;;;;10041:8;;;;;;;;;;;10040:9;9979:70;9976:401;;;10073:14;;;;;;;;;;;10065:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;10147:20;;10137:6;:30;;10129:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10232:4;;;;;;;;;;;10219:17;;:9;:17;;;10216:150;;10297:15;;10287:6;10264:20;10274:9;10264;:20::i;:::-;:29;;;;:::i;:::-;:48;;10256:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;10216:150;9976:401;10389:11;10429:8;;;;;;;;;;;:36;;;;10441:16;:24;10458:6;10441:24;;;;;;;;;;;;;;;;;;;;;;;;;10429:36;:67;;;;10469:16;:27;10486:9;10469:27;;;;;;;;;;;;;;;;;;;;;;;;;10429:67;10425:248;;;10504:1;10498:7;;10425:248;;;10564:4;;;;;;;;;;;10551:17;;:9;:17;;;10548:113;;10603:3;10585:15;;10576:6;:24;;;;:::i;:::-;:30;;;;:::i;:::-;10570:36;;10548:113;;;10658:3;10641:14;;10632:6;:23;;;;:::i;:::-;:29;;;;:::i;:::-;10626:35;;10548:113;10425:248;10699:11;;;;;;;;;;;:24;;;;;10715:8;;;;;;;;;;;10714:9;10699:24;:42;;;;;10737:4;;;;;;;;;;;10727:14;;:6;:14;;;;10699:42;10695:287;;;10758:23;10784:24;10802:4;10784:9;:24::i;:::-;10758:50;;10846:13;;10827:15;:32;10823:144;;10880:71;10897:53;10901:6;10908:41;10912:15;10928:20;;10908:3;:41::i;:::-;10897:3;:53::i;:::-;10880:16;:71::i;:::-;10823:144;10743:239;10695:287;10994:48;11010:6;11018:9;11038:3;11029:6;:12;;;;:::i;:::-;10994:15;:48::i;:::-;11062:1;11056:3;:7;11053:55;;;11065:43;11081:6;11097:4;11104:3;11065:15;:43::i;:::-;11053:55;9862:1256;9774:1344;;;:::o;6877:173::-;6933:16;6952:6;;;;;;;;;;;6933:25;;6978:8;6969:6;;:17;;;;;;;;;;;;;;;;;;7033:8;7002:40;;7023:8;7002:40;;;;;;;;;;;;6922:128;6877:173;:::o;5797:317::-;5912:6;5887:21;:31;;5879:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;5966:12;5984:9;:14;;6006:6;5984:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5965:52;;;6036:7;6028:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;5868:246;5797:317;;:::o;11133:98::-;11190:7;11217:1;11215;:3;11214:9;;11222:1;11214:9;;;11220:1;11214:9;11207:16;;11133:98;;;;:::o;11239:402::-;11305:21;11343:1;11329:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11305:40;;11374:4;11356;11361:1;11356:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;11400:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11390:4;11395:1;11390:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;11426:53;11443:4;11458:6;;;;;;;;;;;11467:11;11426:8;:53::i;:::-;11518:6;;;;;;;;;;;:57;;;11576:11;11589:1;11592:4;11598:15;;;;;;;;;;;11615;11518:113;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11294:347;11239:402;:::o;3865:604::-;3989:1;3971:20;;:6;:20;;;3963:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;4073:1;4052:23;;:9;:23;;;4044:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4128:47;4149:6;4157:9;4168:6;4128:20;:47::i;:::-;4188:21;4212:9;:17;4222:6;4212:17;;;;;;;;;;;;;;;;4188:41;;4265:6;4248:13;:23;;4240:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;4361:6;4345:13;:22;;;;:::i;:::-;4325:9;:17;4335:6;4325:17;;;;;;;;;;;;;;;:42;;;;4402:6;4378:9;:20;4388:9;4378:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;4443:9;4426:35;;4435:6;4426:35;;;4454:6;4426:35;;;;;;:::i;:::-;;;;;;;;3952:517;3865:604;;;:::o;5676:92::-;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1865:117::-;1974:1;1971;1964:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:111::-;4905:7;4934:24;4952:5;4934:24;:::i;:::-;4923:35;;4853:111;;;:::o;4970:152::-;5058:39;5091:5;5058:39;:::i;:::-;5051:5;5048:50;5038:78;;5112:1;5109;5102:12;5038:78;4970:152;:::o;5128:169::-;5189:5;5227:6;5214:20;5205:29;;5243:48;5285:5;5243:48;:::i;:::-;5128:169;;;;:::o;5303:504::-;5386:6;5394;5443:2;5431:9;5422:7;5418:23;5414:32;5411:119;;;5449:79;;:::i;:::-;5411:119;5569:1;5594:68;5654:7;5645:6;5634:9;5630:22;5594:68;:::i;:::-;5584:78;;5540:132;5711:2;5737:53;5782:7;5773:6;5762:9;5758:22;5737:53;:::i;:::-;5727:63;;5682:118;5303:504;;;;;:::o;5813:329::-;5872:6;5921:2;5909:9;5900:7;5896:23;5892:32;5889:119;;;5927:79;;:::i;:::-;5889:119;6047:1;6072:53;6117:7;6108:6;6097:9;6093:22;6072:53;:::i;:::-;6062:63;;6018:117;5813:329;;;;:::o;6148:474::-;6216:6;6224;6273:2;6261:9;6252:7;6248:23;6244:32;6241:119;;;6279:79;;:::i;:::-;6241:119;6399:1;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6370:117;6526:2;6552:53;6597:7;6588:6;6577:9;6573:22;6552:53;:::i;:::-;6542:63;;6497:118;6148:474;;;;;:::o;6628:118::-;6715:24;6733:5;6715:24;:::i;:::-;6710:3;6703:37;6628:118;;:::o;6752:222::-;6845:4;6883:2;6872:9;6868:18;6860:26;;6896:71;6964:1;6953:9;6949:17;6940:6;6896:71;:::i;:::-;6752:222;;;;:::o;6980:329::-;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:180::-;9825:77;9822:1;9815:88;9922:4;9919:1;9912:15;9946:4;9943:1;9936:15;9963:320;10007:6;10044:1;10038:4;10034:12;10024:22;;10091:1;10085:4;10081:12;10112:18;10102:81;;10168:4;10160:6;10156:17;10146:27;;10102:81;10230:2;10222:6;10219:14;10199:18;10196:38;10193:84;;10249:18;;:::i;:::-;10193:84;10014:269;9963:320;;;:::o;10289:227::-;10429:34;10425:1;10417:6;10413:14;10406:58;10498:10;10493:2;10485:6;10481:15;10474:35;10289:227;:::o;10522:366::-;10664:3;10685:67;10749:2;10744:3;10685:67;:::i;:::-;10678:74;;10761:93;10850:3;10761:93;:::i;:::-;10879:2;10874:3;10870:12;10863:19;;10522:366;;;:::o;10894:419::-;11060:4;11098:2;11087:9;11083:18;11075:26;;11147:9;11141:4;11137:20;11133:1;11122:9;11118:17;11111:47;11175:131;11301:4;11175:131;:::i;:::-;11167:139;;10894:419;;;:::o;11319:180::-;11367:77;11364:1;11357:88;11464:4;11461:1;11454:15;11488:4;11485:1;11478:15;11505:194;11545:4;11565:20;11583:1;11565:20;:::i;:::-;11560:25;;11599:20;11617:1;11599:20;:::i;:::-;11594:25;;11643:1;11640;11636:9;11628:17;;11667:1;11661:4;11658:11;11655:37;;;11672:18;;:::i;:::-;11655:37;11505:194;;;;:::o;11705:191::-;11745:3;11764:20;11782:1;11764:20;:::i;:::-;11759:25;;11798:20;11816:1;11798:20;:::i;:::-;11793:25;;11841:1;11838;11834:9;11827:16;;11862:3;11859:1;11856:10;11853:36;;;11869:18;;:::i;:::-;11853:36;11705:191;;;;:::o;11902:182::-;12042:34;12038:1;12030:6;12026:14;12019:58;11902:182;:::o;12090:366::-;12232:3;12253:67;12317:2;12312:3;12253:67;:::i;:::-;12246:74;;12329:93;12418:3;12329:93;:::i;:::-;12447:2;12442:3;12438:12;12431:19;;12090:366;;;:::o;12462:419::-;12628:4;12666:2;12655:9;12651:18;12643:26;;12715:9;12709:4;12705:20;12701:1;12690:9;12686:17;12679:47;12743:131;12869:4;12743:131;:::i;:::-;12735:139;;12462:419;;;:::o;12887:332::-;13008:4;13046:2;13035:9;13031:18;13023:26;;13059:71;13127:1;13116:9;13112:17;13103:6;13059:71;:::i;:::-;13140:72;13208:2;13197:9;13193:18;13184:6;13140:72;:::i;:::-;12887:332;;;;;:::o;13225:137::-;13279:5;13310:6;13304:13;13295:22;;13326:30;13350:5;13326:30;:::i;:::-;13225:137;;;;:::o;13368:345::-;13435:6;13484:2;13472:9;13463:7;13459:23;13455:32;13452:119;;;13490:79;;:::i;:::-;13452:119;13610:1;13635:61;13688:7;13679:6;13668:9;13664:22;13635:61;:::i;:::-;13625:71;;13581:125;13368:345;;;;:::o;13719:224::-;13859:34;13855:1;13847:6;13843:14;13836:58;13928:7;13923:2;13915:6;13911:15;13904:32;13719:224;:::o;13949:366::-;14091:3;14112:67;14176:2;14171:3;14112:67;:::i;:::-;14105:74;;14188:93;14277:3;14188:93;:::i;:::-;14306:2;14301:3;14297:12;14290:19;;13949:366;;;:::o;14321:419::-;14487:4;14525:2;14514:9;14510:18;14502:26;;14574:9;14568:4;14564:20;14560:1;14549:9;14545:17;14538:47;14602:131;14728:4;14602:131;:::i;:::-;14594:139;;14321:419;;;:::o;14746:172::-;14886:24;14882:1;14874:6;14870:14;14863:48;14746:172;:::o;14924:366::-;15066:3;15087:67;15151:2;15146:3;15087:67;:::i;:::-;15080:74;;15163:93;15252:3;15163:93;:::i;:::-;15281:2;15276:3;15272:12;15265:19;;14924:366;;;:::o;15296:419::-;15462:4;15500:2;15489:9;15485:18;15477:26;;15549:9;15543:4;15539:20;15535:1;15524:9;15520:17;15513:47;15577:131;15703:4;15577:131;:::i;:::-;15569:139;;15296:419;;;:::o;15721:143::-;15778:5;15809:6;15803:13;15794:22;;15825:33;15852:5;15825:33;:::i;:::-;15721:143;;;;:::o;15870:351::-;15940:6;15989:2;15977:9;15968:7;15964:23;15960:32;15957:119;;;15995:79;;:::i;:::-;15957:119;16115:1;16140:64;16196:7;16187:6;16176:9;16172:22;16140:64;:::i;:::-;16130:74;;16086:128;15870:351;;;;:::o;16227:332::-;16348:4;16386:2;16375:9;16371:18;16363:26;;16399:71;16467:1;16456:9;16452:17;16443:6;16399:71;:::i;:::-;16480:72;16548:2;16537:9;16533:18;16524:6;16480:72;:::i;:::-;16227:332;;;;;:::o;16565:85::-;16610:7;16639:5;16628:16;;16565:85;;;:::o;16656:158::-;16714:9;16747:61;16765:42;16774:32;16800:5;16774:32;:::i;:::-;16765:42;:::i;:::-;16747:61;:::i;:::-;16734:74;;16656:158;;;:::o;16820:147::-;16915:45;16954:5;16915:45;:::i;:::-;16910:3;16903:58;16820:147;;:::o;16973:807::-;17222:4;17260:3;17249:9;17245:19;17237:27;;17274:71;17342:1;17331:9;17327:17;17318:6;17274:71;:::i;:::-;17355:72;17423:2;17412:9;17408:18;17399:6;17355:72;:::i;:::-;17437:80;17513:2;17502:9;17498:18;17489:6;17437:80;:::i;:::-;17527;17603:2;17592:9;17588:18;17579:6;17527:80;:::i;:::-;17617:73;17685:3;17674:9;17670:19;17661:6;17617:73;:::i;:::-;17700;17768:3;17757:9;17753:19;17744:6;17700:73;:::i;:::-;16973:807;;;;;;;;;:::o;17786:143::-;17843:5;17874:6;17868:13;17859:22;;17890:33;17917:5;17890:33;:::i;:::-;17786:143;;;;:::o;17935:663::-;18023:6;18031;18039;18088:2;18076:9;18067:7;18063:23;18059:32;18056:119;;;18094:79;;:::i;:::-;18056:119;18214:1;18239:64;18295:7;18286:6;18275:9;18271:22;18239:64;:::i;:::-;18229:74;;18185:128;18352:2;18378:64;18434:7;18425:6;18414:9;18410:22;18378:64;:::i;:::-;18368:74;;18323:129;18491:2;18517:64;18573:7;18564:6;18553:9;18549:22;18517:64;:::i;:::-;18507:74;;18462:129;17935:663;;;;;:::o;18604:225::-;18744:34;18740:1;18732:6;18728:14;18721:58;18813:8;18808:2;18800:6;18796:15;18789:33;18604:225;:::o;18835:366::-;18977:3;18998:67;19062:2;19057:3;18998:67;:::i;:::-;18991:74;;19074:93;19163:3;19074:93;:::i;:::-;19192:2;19187:3;19183:12;19176:19;;18835:366;;;:::o;19207:419::-;19373:4;19411:2;19400:9;19396:18;19388:26;;19460:9;19454:4;19450:20;19446:1;19435:9;19431:17;19424:47;19488:131;19614:4;19488:131;:::i;:::-;19480:139;;19207:419;;;:::o;19632:223::-;19772:34;19768:1;19760:6;19756:14;19749:58;19841:6;19836:2;19828:6;19824:15;19817:31;19632:223;:::o;19861:366::-;20003:3;20024:67;20088:2;20083:3;20024:67;:::i;:::-;20017:74;;20100:93;20189:3;20100:93;:::i;:::-;20218:2;20213:3;20209:12;20202:19;;19861:366;;;:::o;20233:419::-;20399:4;20437:2;20426:9;20422:18;20414:26;;20486:9;20480:4;20476:20;20472:1;20461:9;20457:17;20450:47;20514:131;20640:4;20514:131;:::i;:::-;20506:139;;20233:419;;;:::o;20658:221::-;20798:34;20794:1;20786:6;20782:14;20775:58;20867:4;20862:2;20854:6;20850:15;20843:29;20658:221;:::o;20885:366::-;21027:3;21048:67;21112:2;21107:3;21048:67;:::i;:::-;21041:74;;21124:93;21213:3;21124:93;:::i;:::-;21242:2;21237:3;21233:12;21226:19;;20885:366;;;:::o;21257:419::-;21423:4;21461:2;21450:9;21446:18;21438:26;;21510:9;21504:4;21500:20;21496:1;21485:9;21481:17;21474:47;21538:131;21664:4;21538:131;:::i;:::-;21530:139;;21257:419;;;:::o;21682:228::-;21822:34;21818:1;21810:6;21806:14;21799:58;21891:11;21886:2;21878:6;21874:15;21867:36;21682:228;:::o;21916:366::-;22058:3;22079:67;22143:2;22138:3;22079:67;:::i;:::-;22072:74;;22155:93;22244:3;22155:93;:::i;:::-;22273:2;22268:3;22264:12;22257:19;;21916:366;;;:::o;22288:419::-;22454:4;22492:2;22481:9;22477:18;22469:26;;22541:9;22535:4;22531:20;22527:1;22516:9;22512:17;22505:47;22569:131;22695:4;22569:131;:::i;:::-;22561:139;;22288:419;;;:::o;22713:172::-;22853:24;22849:1;22841:6;22837:14;22830:48;22713:172;:::o;22891:366::-;23033:3;23054:67;23118:2;23113:3;23054:67;:::i;:::-;23047:74;;23130:93;23219:3;23130:93;:::i;:::-;23248:2;23243:3;23239:12;23232:19;;22891:366;;;:::o;23263:419::-;23429:4;23467:2;23456:9;23452:18;23444:26;;23516:9;23510:4;23506:20;23502:1;23491:9;23487:17;23480:47;23544:131;23670:4;23544:131;:::i;:::-;23536:139;;23263:419;;;:::o;23688:179::-;23828:31;23824:1;23816:6;23812:14;23805:55;23688:179;:::o;23873:366::-;24015:3;24036:67;24100:2;24095:3;24036:67;:::i;:::-;24029:74;;24112:93;24201:3;24112:93;:::i;:::-;24230:2;24225:3;24221:12;24214:19;;23873:366;;;:::o;24245:419::-;24411:4;24449:2;24438:9;24434:18;24426:26;;24498:9;24492:4;24488:20;24484:1;24473:9;24469:17;24462:47;24526:131;24652:4;24526:131;:::i;:::-;24518:139;;24245:419;;;:::o;24670:220::-;24810:34;24806:1;24798:6;24794:14;24787:58;24879:3;24874:2;24866:6;24862:15;24855:28;24670:220;:::o;24896:366::-;25038:3;25059:67;25123:2;25118:3;25059:67;:::i;:::-;25052:74;;25135:93;25224:3;25135:93;:::i;:::-;25253:2;25248:3;25244:12;25237:19;;24896:366;;;:::o;25268:419::-;25434:4;25472:2;25461:9;25457:18;25449:26;;25521:9;25515:4;25511:20;25507:1;25496:9;25492:17;25485:47;25549:131;25675:4;25549:131;:::i;:::-;25541:139;;25268:419;;;:::o;25693:410::-;25733:7;25756:20;25774:1;25756:20;:::i;:::-;25751:25;;25790:20;25808:1;25790:20;:::i;:::-;25785:25;;25845:1;25842;25838:9;25867:30;25885:11;25867:30;:::i;:::-;25856:41;;26046:1;26037:7;26033:15;26030:1;26027:22;26007:1;26000:9;25980:83;25957:139;;26076:18;;:::i;:::-;25957:139;25741:362;25693:410;;;;:::o;26109:180::-;26157:77;26154:1;26147:88;26254:4;26251:1;26244:15;26278:4;26275:1;26268:15;26295:185;26335:1;26352:20;26370:1;26352:20;:::i;:::-;26347:25;;26386:20;26404:1;26386:20;:::i;:::-;26381:25;;26425:1;26415:35;;26430:18;;:::i;:::-;26415:35;26472:1;26469;26465:9;26460:14;;26295:185;;;;:::o;26486:179::-;26626:31;26622:1;26614:6;26610:14;26603:55;26486:179;:::o;26671:366::-;26813:3;26834:67;26898:2;26893:3;26834:67;:::i;:::-;26827:74;;26910:93;26999:3;26910:93;:::i;:::-;27028:2;27023:3;27019:12;27012:19;;26671:366;;;:::o;27043:419::-;27209:4;27247:2;27236:9;27232:18;27224:26;;27296:9;27290:4;27286:20;27282:1;27271:9;27267:17;27260:47;27324:131;27450:4;27324:131;:::i;:::-;27316:139;;27043:419;;;:::o;27468:147::-;27569:11;27606:3;27591:18;;27468:147;;;;:::o;27621:114::-;;:::o;27741:398::-;27900:3;27921:83;28002:1;27997:3;27921:83;:::i;:::-;27914:90;;28013:93;28102:3;28013:93;:::i;:::-;28131:1;28126:3;28122:11;28115:18;;27741:398;;;:::o;28145:379::-;28329:3;28351:147;28494:3;28351:147;:::i;:::-;28344:154;;28515:3;28508:10;;28145:379;;;:::o;28530:245::-;28670:34;28666:1;28658:6;28654:14;28647:58;28739:28;28734:2;28726:6;28722:15;28715:53;28530:245;:::o;28781:366::-;28923:3;28944:67;29008:2;29003:3;28944:67;:::i;:::-;28937:74;;29020:93;29109:3;29020:93;:::i;:::-;29138:2;29133:3;29129:12;29122:19;;28781:366;;;:::o;29153:419::-;29319:4;29357:2;29346:9;29342:18;29334:26;;29406:9;29400:4;29396:20;29392:1;29381:9;29377:17;29370:47;29434:131;29560:4;29434:131;:::i;:::-;29426:139;;29153:419;;;:::o;29578:180::-;29626:77;29623:1;29616:88;29723:4;29720:1;29713:15;29747:4;29744:1;29737:15;29764:180;29812:77;29809:1;29802:88;29909:4;29906:1;29899:15;29933:4;29930:1;29923:15;29950:114;30017:6;30051:5;30045:12;30035:22;;29950:114;;;:::o;30070:184::-;30169:11;30203:6;30198:3;30191:19;30243:4;30238:3;30234:14;30219:29;;30070:184;;;;:::o;30260:132::-;30327:4;30350:3;30342:11;;30380:4;30375:3;30371:14;30363:22;;30260:132;;;:::o;30398:108::-;30475:24;30493:5;30475:24;:::i;:::-;30470:3;30463:37;30398:108;;:::o;30512:179::-;30581:10;30602:46;30644:3;30636:6;30602:46;:::i;:::-;30680:4;30675:3;30671:14;30657:28;;30512:179;;;;:::o;30697:113::-;30767:4;30799;30794:3;30790:14;30782:22;;30697:113;;;:::o;30846:732::-;30965:3;30994:54;31042:5;30994:54;:::i;:::-;31064:86;31143:6;31138:3;31064:86;:::i;:::-;31057:93;;31174:56;31224:5;31174:56;:::i;:::-;31253:7;31284:1;31269:284;31294:6;31291:1;31288:13;31269:284;;;31370:6;31364:13;31397:63;31456:3;31441:13;31397:63;:::i;:::-;31390:70;;31483:60;31536:6;31483:60;:::i;:::-;31473:70;;31329:224;31316:1;31313;31309:9;31304:14;;31269:284;;;31273:14;31569:3;31562:10;;30970:608;;;30846:732;;;;:::o;31584:831::-;31847:4;31885:3;31874:9;31870:19;31862:27;;31899:71;31967:1;31956:9;31952:17;31943:6;31899:71;:::i;:::-;31980:80;32056:2;32045:9;32041:18;32032:6;31980:80;:::i;:::-;32107:9;32101:4;32097:20;32092:2;32081:9;32077:18;32070:48;32135:108;32238:4;32229:6;32135:108;:::i;:::-;32127:116;;32253:72;32321:2;32310:9;32306:18;32297:6;32253:72;:::i;:::-;32335:73;32403:3;32392:9;32388:19;32379:6;32335:73;:::i;:::-;31584:831;;;;;;;;:::o;32421:224::-;32561:34;32557:1;32549:6;32545:14;32538:58;32630:7;32625:2;32617:6;32613:15;32606:32;32421:224;:::o;32651:366::-;32793:3;32814:67;32878:2;32873:3;32814:67;:::i;:::-;32807:74;;32890:93;32979:3;32890:93;:::i;:::-;33008:2;33003:3;32999:12;32992:19;;32651:366;;;:::o;33023:419::-;33189:4;33227:2;33216:9;33212:18;33204:26;;33276:9;33270:4;33266:20;33262:1;33251:9;33247:17;33240:47;33304:131;33430:4;33304:131;:::i;:::-;33296:139;;33023:419;;;:::o;33448:222::-;33588:34;33584:1;33576:6;33572:14;33565:58;33657:5;33652:2;33644:6;33640:15;33633:30;33448:222;:::o;33676:366::-;33818:3;33839:67;33903:2;33898:3;33839:67;:::i;:::-;33832:74;;33915:93;34004:3;33915:93;:::i;:::-;34033:2;34028:3;34024:12;34017:19;;33676:366;;;:::o;34048:419::-;34214:4;34252:2;34241:9;34237:18;34229:26;;34301:9;34295:4;34291:20;34287:1;34276:9;34272:17;34265:47;34329:131;34455:4;34329:131;:::i;:::-;34321:139;;34048:419;;;:::o;34473:225::-;34613:34;34609:1;34601:6;34597:14;34590:58;34682:8;34677:2;34669:6;34665:15;34658:33;34473:225;:::o;34704:366::-;34846:3;34867:67;34931:2;34926:3;34867:67;:::i;:::-;34860:74;;34943:93;35032:3;34943:93;:::i;:::-;35061:2;35056:3;35052:12;35045:19;;34704:366;;;:::o;35076:419::-;35242:4;35280:2;35269:9;35265:18;35257:26;;35329:9;35323:4;35319:20;35315:1;35304:9;35300:17;35293:47;35357:131;35483:4;35357:131;:::i;:::-;35349:139;;35076:419;;;:::o

Swarm Source

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