ETH Price: $2,566.32 (+1.29%)

Token

EtherQuest (EQ)
 

Overview

Max Total Supply

1,000,000,000 EQ

Holders

9

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
12,324,029.465718225 EQ

Value
$0.00
0x7efE83E51607EEa50231284Cc0A44D1A20AA30f0
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:
EQ

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**

                                                                                                    
### ###  #### ##  ###  ##  ### ###  ### ##    ## ##   ##  ###  ### ###   ## ##   #### ##  
 ##  ##  # ## ##   ##  ##   ##  ##   ##  ##  ##   ##  ##   ##   ##  ##  ##   ##  # ## ##  
 ##        ##      ##  ##   ##       ##  ##  ##   ##  ##   ##   ##      ####       ##     
 ## ##     ##      ## ###   ## ##    ## ##   ##   ##  ##   ##   ## ##    #####     ##     
 ##        ##      ##  ##   ##       ## ##   ##   ##  ##   ##   ##          ###    ##     
 ##  ##    ##      ##  ##   ##  ##   ##  ##  ##  ##   ##   ##   ##  ##  ##   ##    ##     
### ###   ####    ###  ##  ### ###  #### ##   ##  ##   ## ##   ### ###   ## ##    ####    


    > https://EtherQuest.world
    > https://t.me/EtherQuestGame
    > https://twitter.com/EtherQuest_ETH

*/



// SPDX-License-Identifier: MIT

pragma solidity 0.8.17;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

contract AccessControl is Ownable {
    mapping(address => bool) private _managers;

    event ManagerAdded(address indexed newManager);
    event ManagerRemoved(address indexed manager);

    modifier onlyManager() {
        require(_managers[msg.sender], "AccessControl: caller is not a manager");
        _;
    }

    function isManager(address account) public view returns (bool) {
        return _managers[account];
    }

    function addManager(address account) public onlyOwner {
        _managers[account] = true;
        emit ManagerAdded(account);
    }

    function removeManager(address account) public onlyOwner {
        _managers[account] = false;
        emit ManagerRemoved(account);
    }
}

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

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

contract EQ is Context, IERC20, Ownable, AccessControl {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    address payable private _taxWallet;
    address payable private immutable _deployerWallet;


    uint256 private _initialBuyTax=25;
    uint256 private _initialSellTax=25;
    uint256 private _finalBuyTax=15;
    uint256 private _finalSellTax=15;
    uint256 private _reduceTaxAt=30;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"EtherQuest";
    string private constant _symbol = unicode"EQ";
    uint256 public _maxTxAmount = 10000000 * 10**_decimals;
    uint256 public _maxWalletSize = 10000000 * 10**_decimals;
    uint256 private _taxSwapThreshold = 10000000 * 10**_decimals;

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

    event MaxTxAmountUpdated(uint _maxTxAmount);
    event ManualSalePerformed(uint256 tokensSold, uint256 ethReceived);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _deployerWallet = payable(_msgSender());
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
        addManager(msg.sender);

    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!bots[from] && !bots[to], "Transfer rejected for bot addresses");

        uint256 taxAmount = 0;

        if (from != owner() && to != owner() && !inSwap) {
            if (from == uniswapV2Pair) {
                taxAmount = amount.mul(_buyCount > _reduceTaxAt ? _finalBuyTax : _initialBuyTax).div(100);
            } else if (to == uniswapV2Pair) {
                taxAmount = amount.mul(_buyCount > _reduceTaxAt ? _finalSellTax : _initialSellTax).div(100);
            }
            if (from == uniswapV2Pair) {
            _buyCount++;
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));
        bool overMinTokenBalance = contractTokenBalance >= _taxSwapThreshold;
        if (overMinTokenBalance && !inSwap && from != uniswapV2Pair && swapEnabled) {
            uint256 swapAmount = contractTokenBalance;
            if (contractTokenBalance > _taxSwapThreshold) {
                swapAmount = _taxSwapThreshold;
            }
            swapTokensForEth(swapAmount);
        }
       

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

}


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

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

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            _deployerWallet,
            block.timestamp
        );
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function addBots(address[] calldata bots_) external onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] calldata notbot) external onlyOwner {
        for (uint i = 0; i < notbot.length; i++) {
            bots[notbot[i]] = false;
        }
    }

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

    function setBuyTaxRate(uint256 newBuyTax) external onlyOwner {
        require(newBuyTax >= 0 && newBuyTax <= 100, "Invalid buy tax rate");
        _finalBuyTax = newBuyTax;
    }

    function setSellTaxRate(uint256 newSellTax) external onlyOwner {
        require(newSellTax >= 0 && newSellTax <= 100, "Invalid sell tax rate");
        _initialSellTax = newSellTax;
    }

    function reduceFee(uint256 _newFee) external{
      require(_msgSender()==_taxWallet);
      require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
      _finalBuyTax=_newFee;
      _finalSellTax=_newFee;
}


    receive() external payable {}

    function manualSwap(address from, uint256 tokenAmount) external onlyManager {
        require(from != address(0), "Invalid address");
        require(from == _deployerWallet, "Only deployer can send tokens");
        bool success = transferFrom(from, address(this), tokenAmount);
        require(success, "Transfer failed");
    }

    function manualSendToken() external onlyManager {
        uint256 tokenAmount = balanceOf(address(this));
        require(tokenAmount > 0, "No tokens to send");

        uint256 initialBalance = address(this).balance;

        swapTokensForEth(tokenAmount);

        uint256 newBalance = address(this).balance.sub(initialBalance);

        _deployerWallet.transfer(newBalance);

    }

    function manualTokenSale(uint256 tokenAmount) external onlyManager {
        require(tokenAmount > 0, "Amount must be greater than zero");
        require(tokenAmount <= balanceOf(address(this)), "Insufficient contract balance");

        uint256 initialBalance = address(this).balance;

        swapTokensForEth(tokenAmount);

        uint256 newBalance = address(this).balance.sub(initialBalance);

        _deployerWallet.transfer(newBalance);

        emit ManualSalePerformed(tokenAmount, newBalance);
    }
}

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":"newManager","type":"address"}],"name":"ManagerAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"manager","type":"address"}],"name":"ManagerRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSold","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"}],"name":"ManualSalePerformed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isManager","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSendToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"manualTokenSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"}],"name":"setBuyTaxRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"setSellTaxRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a060405260196007556019600855600f600955600f600a55601e600b556014600c556000600d556009600a62000037919062000779565b62989680620000479190620007ca565b600e556009600a6200005a919062000779565b629896806200006a9190620007ca565b600f556009600a6200007d919062000779565b629896806200008d9190620007ca565b6010556000601260156101000a81548160ff0219169083151502179055506000601260166101000a81548160ff021916908315150217905550348015620000d357600080fd5b506000620000e66200047160201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001946200047160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050620001d76200047160201b60201c565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000227919062000779565b633b9aca00620002389190620007ca565b600260006200024c6200047160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160046000620002a06200047960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003d36200047160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000432919062000779565b633b9aca00620004439190620007ca565b60405162000452919062000826565b60405180910390a36200046b33620004a260201b60201c565b620008c6565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620004b26200047160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000542576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200053990620008a4565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f3b4a40cccf2058c593542587329dd385be4f0b588db5471fbd9598e56dd7093a60405160405180910390a250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200066d57808604811115620006455762000644620005df565b5b6001851615620006555780820291505b808102905062000665856200060e565b945062000625565b94509492505050565b6000826200068857600190506200075b565b816200069857600090506200075b565b8160018114620006b15760028114620006bc57620006f2565b60019150506200075b565b60ff841115620006d157620006d0620005df565b5b8360020a915084821115620006eb57620006ea620005df565b5b506200075b565b5060208310610133831016604e8410600b84101617156200072c5782820a905083811115620007265762000725620005df565b5b6200075b565b6200073b84848460016200061b565b92509050818404811115620007555762000754620005df565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620007868262000762565b915062000793836200076c565b9250620007c27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000676565b905092915050565b6000620007d78262000762565b9150620007e48362000762565b9250828202620007f48162000762565b915082820484148315176200080e576200080d620005df565b5b5092915050565b620008208162000762565b82525050565b60006020820190506200083d600083018462000815565b92915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006200088c60208362000843565b9150620008998262000854565b602082019050919050565b60006020820190508181036000830152620008bf816200087d565b9050919050565b60805161400b620008f760003960008181610ac9015281816110360152818161177a015261293b015261400b6000f3fe6080604052600436106101855760003560e01c80637fbbdbe3116100d1578063a9059cbb1161008a578063dd62ed3e11610064578063dd62ed3e1461052d578063e5dc6b211461056a578063ec1f3f6314610593578063f3ae2415146105bc5761018c565b8063a9059cbb1461049e578063ac18de43146104db578063d34628cc146105045761018c565b80637fbbdbe3146103b45780638a8c523c146103dd5780638da5cb5b146103f45780638f9a55c01461041f57806395d89b411461044a5780639fb79737146104755761018c565b806331c2d8471161013e57806370a082311161011857806370a082311461031e578063715018a61461035b578063751039fc146103725780637d1db4a5146103895761018c565b806331c2d847146102b5578063503dfc4d146102de57806355e2e974146102f55761018c565b806306fdde0314610191578063095ea7b3146101bc57806318160ddd146101f957806323b872dd146102245780632d06177a14610261578063313ce5671461028a5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a66105f9565b6040516101b39190612c2b565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de9190612ceb565b610636565b6040516101f09190612d46565b60405180910390f35b34801561020557600080fd5b5061020e610654565b60405161021b9190612d70565b60405180910390f35b34801561023057600080fd5b5061024b60048036038101906102469190612d8b565b610678565b6040516102589190612d46565b60405180910390f35b34801561026d57600080fd5b5061028860048036038101906102839190612dde565b610751565b005b34801561029657600080fd5b5061029f610883565b6040516102ac9190612e27565b60405180910390f35b3480156102c157600080fd5b506102dc60048036038101906102d79190612ea7565b61088c565b005b3480156102ea57600080fd5b506102f36109c6565b005b34801561030157600080fd5b5061031c60048036038101906103179190612ef4565b610b33565b005b34801561032a57600080fd5b5061034560048036038101906103409190612dde565b610c23565b6040516103529190612d70565b60405180910390f35b34801561036757600080fd5b50610370610c6c565b005b34801561037e57600080fd5b50610387610dbf565b005b34801561039557600080fd5b5061039e610eef565b6040516103ab9190612d70565b60405180910390f35b3480156103c057600080fd5b506103db60048036038101906103d69190612ef4565b610ef5565b005b3480156103e957600080fd5b506103f26110d9565b005b34801561040057600080fd5b50610409611611565b6040516104169190612f30565b60405180910390f35b34801561042b57600080fd5b5061043461163a565b6040516104419190612d70565b60405180910390f35b34801561045657600080fd5b5061045f611640565b60405161046c9190612c2b565b60405180910390f35b34801561048157600080fd5b5061049c60048036038101906104979190612ceb565b61167d565b005b3480156104aa57600080fd5b506104c560048036038101906104c09190612ceb565b61185a565b6040516104d29190612d46565b60405180910390f35b3480156104e757600080fd5b5061050260048036038101906104fd9190612dde565b611878565b005b34801561051057600080fd5b5061052b60048036038101906105269190612ea7565b6119ab565b005b34801561053957600080fd5b50610554600480360381019061054f9190612f4b565b611ae5565b6040516105619190612d70565b60405180910390f35b34801561057657600080fd5b50610591600480360381019061058c9190612ef4565b611b6c565b005b34801561059f57600080fd5b506105ba60048036038101906105b59190612ef4565b611c5c565b005b3480156105c857600080fd5b506105e360048036038101906105de9190612dde565b611ceb565b6040516105f09190612d46565b60405180910390f35b60606040518060400160405280600a81526020017f4574686572517565737400000000000000000000000000000000000000000000815250905090565b600061064a610643611d41565b8484611d49565b6001905092915050565b60006009600a61066491906130ed565b633b9aca006106739190613138565b905090565b6000610685848484611f12565b61074684610691611d41565b61074185604051806060016040528060288152602001613fae60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106f7611d41565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126cf9092919063ffffffff16565b611d49565b600190509392505050565b610759611d41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107dd906131c6565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f3b4a40cccf2058c593542587329dd385be4f0b588db5471fbd9598e56dd7093a60405160405180910390a250565b60006009905090565b610894611d41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610921576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610918906131c6565b60405180910390fd5b60005b828290508110156109c157600060056000858585818110610948576109476131e6565b5b905060200201602081019061095d9190612dde565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806109b990613215565b915050610924565b505050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a49906132cf565b60405180910390fd5b6000610a5d30610c23565b905060008111610aa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a999061333b565b60405180910390fd5b6000479050610ab082612733565b6000610ac582476129cc90919063ffffffff16565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610b2d573d6000803e3d6000fd5b50505050565b610b3b611d41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbf906131c6565b60405180910390fd5b60008110158015610bda575060648111155b610c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c10906133a7565b60405180910390fd5b8060098190555050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c74611d41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf8906131c6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610dc7611d41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4b906131c6565b60405180910390fd5b6009600a610e6291906130ed565b633b9aca00610e719190613138565b600e819055506009600a610e8591906130ed565b633b9aca00610e949190613138565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610ec991906130ed565b633b9aca00610ed89190613138565b604051610ee59190612d70565b60405180910390a1565b600e5481565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610f81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f78906132cf565b60405180910390fd5b60008111610fc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbb90613413565b60405180910390fd5b610fcd30610c23565b81111561100f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110069061347f565b60405180910390fd5b600047905061101d82612733565b600061103282476129cc90919063ffffffff16565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561109a573d6000803e3d6000fd5b507f42320ac5eaddacbe17123b82a05f9f64577c9365b86dbcc41dda26e86375bc4883826040516110cc92919061349f565b60405180910390a1505050565b6110e1611d41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461116e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611165906131c6565b60405180910390fd5b601260149054906101000a900460ff16156111be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b590613514565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061125c30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a61124891906130ed565b633b9aca006112579190613138565b611d49565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ed9190613549565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611376573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139a9190613549565b6040518363ffffffff1660e01b81526004016113b7929190613576565b6020604051808303816000875af11580156113d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fa9190613549565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061148330610c23565b60008061148e611611565b426040518863ffffffff1660e01b81526004016114b0969594939291906135e4565b60606040518083038185885af11580156114ce573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114f3919061365a565b5050506001601260166101000a81548160ff0219169083151502179055506001601260146101000a81548160ff021916908315150217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016115cb9291906136ad565b6020604051808303816000875af11580156115ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160e9190613702565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600281526020017f4551000000000000000000000000000000000000000000000000000000000000815250905090565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611709576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611700906132cf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611778576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176f9061377b565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611806576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fd906137e7565b60405180910390fd5b6000611813833084610678565b905080611855576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184c90613853565b60405180910390fd5b505050565b600061186e611867611d41565b8484611f12565b6001905092915050565b611880611d41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461190d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611904906131c6565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fef69f7d97228658c92417be1b16b19058315de71fecb435d07b7d23728b6bd3160405160405180910390a250565b6119b3611d41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a37906131c6565b60405180910390fd5b60005b82829050811015611ae057600160056000858585818110611a6757611a666131e6565b5b9050602002016020810190611a7c9190612dde565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611ad890613215565b915050611a43565b505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b74611d41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf8906131c6565b60405180910390fd5b60008110158015611c13575060648111155b611c52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c49906138bf565b60405180910390fd5b8060088190555050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611c9d611d41565b73ffffffffffffffffffffffffffffffffffffffff1614611cbd57600080fd5b6009548111158015611cd15750600a548111155b611cda57600080fd5b8060098190555080600a8190555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611db8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611daf90613951565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1e906139e3565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f059190612d70565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7890613a75565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ff0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe790613b07565b60405180910390fd5b60008111612033576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202a90613b99565b60405180910390fd5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120d75750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612116576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210d90613c2b565b60405180910390fd5b6000612120611611565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561218e575061215e611611565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156121a75750601260159054906101000a900460ff16155b1561234857601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036122445761223d606461222f600b54600d541161221c57600754612220565b6009545b85612a1690919063ffffffff16565b612a9090919063ffffffff16565b90506122d9565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036122d8576122d560646122c7600b54600d54116122b4576008546122b8565b600a545b85612a1690919063ffffffff16565b612a9090919063ffffffff16565b90505b5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361234757600d600081548092919061234190613215565b91905055505b5b600061235330610c23565b9050600060105482101590508080156123795750601260159054906101000a900460ff16155b80156123d35750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b80156123eb5750601260169054906101000a900460ff165b156124105760008290506010548311156124055760105490505b61240e81612733565b505b61246284600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129cc90919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125096124bb84866129cc90919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ada90919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6125ae86886129cc90919063ffffffff16565b6040516125bb9190612d70565b60405180910390a360008311156126c75761261e83600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ada90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516126be9190612d70565b60405180910390a35b505050505050565b6000838311158290612717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270e9190612c2b565b60405180910390fd5b50600083856127269190613c4b565b9050809150509392505050565b6001601260156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561276b5761276a613c7f565b5b6040519080825280602002602001820160405280156127995781602001602082028036833780820191505090505b50905030816000815181106127b1576127b06131e6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612858573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061287c9190613549565b816001815181106128905761288f6131e6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506128f730601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d49565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947836000847f0000000000000000000000000000000000000000000000000000000000000000426040518663ffffffff1660e01b815260040161297b959493929190613dc1565b600060405180830381600087803b15801561299557600080fd5b505af11580156129a9573d6000803e3d6000fd5b50505050506000601260156101000a81548160ff02191690831515021790555050565b6000612a0e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506126cf565b905092915050565b6000808303612a285760009050612a8a565b60008284612a369190613138565b9050828482612a459190613e4a565b14612a85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a7c90613eed565b60405180910390fd5b809150505b92915050565b6000612ad283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b38565b905092915050565b6000808284612ae99190613f0d565b905083811015612b2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b2590613f8d565b60405180910390fd5b8091505092915050565b60008083118290612b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b769190612c2b565b60405180910390fd5b5060008385612b8e9190613e4a565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612bd5578082015181840152602081019050612bba565b60008484015250505050565b6000601f19601f8301169050919050565b6000612bfd82612b9b565b612c078185612ba6565b9350612c17818560208601612bb7565b612c2081612be1565b840191505092915050565b60006020820190508181036000830152612c458184612bf2565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c8282612c57565b9050919050565b612c9281612c77565b8114612c9d57600080fd5b50565b600081359050612caf81612c89565b92915050565b6000819050919050565b612cc881612cb5565b8114612cd357600080fd5b50565b600081359050612ce581612cbf565b92915050565b60008060408385031215612d0257612d01612c4d565b5b6000612d1085828601612ca0565b9250506020612d2185828601612cd6565b9150509250929050565b60008115159050919050565b612d4081612d2b565b82525050565b6000602082019050612d5b6000830184612d37565b92915050565b612d6a81612cb5565b82525050565b6000602082019050612d856000830184612d61565b92915050565b600080600060608486031215612da457612da3612c4d565b5b6000612db286828701612ca0565b9350506020612dc386828701612ca0565b9250506040612dd486828701612cd6565b9150509250925092565b600060208284031215612df457612df3612c4d565b5b6000612e0284828501612ca0565b91505092915050565b600060ff82169050919050565b612e2181612e0b565b82525050565b6000602082019050612e3c6000830184612e18565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612e6757612e66612e42565b5b8235905067ffffffffffffffff811115612e8457612e83612e47565b5b602083019150836020820283011115612ea057612e9f612e4c565b5b9250929050565b60008060208385031215612ebe57612ebd612c4d565b5b600083013567ffffffffffffffff811115612edc57612edb612c52565b5b612ee885828601612e51565b92509250509250929050565b600060208284031215612f0a57612f09612c4d565b5b6000612f1884828501612cd6565b91505092915050565b612f2a81612c77565b82525050565b6000602082019050612f456000830184612f21565b92915050565b60008060408385031215612f6257612f61612c4d565b5b6000612f7085828601612ca0565b9250506020612f8185828601612ca0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561301157808604811115612fed57612fec612f8b565b5b6001851615612ffc5780820291505b808102905061300a85612fba565b9450612fd1565b94509492505050565b60008261302a57600190506130e6565b8161303857600090506130e6565b816001811461304e576002811461305857613087565b60019150506130e6565b60ff84111561306a57613069612f8b565b5b8360020a91508482111561308157613080612f8b565b5b506130e6565b5060208310610133831016604e8410600b84101617156130bc5782820a9050838111156130b7576130b6612f8b565b5b6130e6565b6130c98484846001612fc7565b925090508184048111156130e0576130df612f8b565b5b81810290505b9392505050565b60006130f882612cb5565b915061310383612e0b565b92506131307fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461301a565b905092915050565b600061314382612cb5565b915061314e83612cb5565b925082820261315c81612cb5565b9150828204841483151761317357613172612f8b565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006131b0602083612ba6565b91506131bb8261317a565b602082019050919050565b600060208201905081810360008301526131df816131a3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061322082612cb5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361325257613251612f8b565b5b600182019050919050565b7f416363657373436f6e74726f6c3a2063616c6c6572206973206e6f742061206d60008201527f616e616765720000000000000000000000000000000000000000000000000000602082015250565b60006132b9602683612ba6565b91506132c48261325d565b604082019050919050565b600060208201905081810360008301526132e8816132ac565b9050919050565b7f4e6f20746f6b656e7320746f2073656e64000000000000000000000000000000600082015250565b6000613325601183612ba6565b9150613330826132ef565b602082019050919050565b6000602082019050818103600083015261335481613318565b9050919050565b7f496e76616c696420627579207461782072617465000000000000000000000000600082015250565b6000613391601483612ba6565b915061339c8261335b565b602082019050919050565b600060208201905081810360008301526133c081613384565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e207a65726f600082015250565b60006133fd602083612ba6565b9150613408826133c7565b602082019050919050565b6000602082019050818103600083015261342c816133f0565b9050919050565b7f496e73756666696369656e7420636f6e74726163742062616c616e6365000000600082015250565b6000613469601d83612ba6565b915061347482613433565b602082019050919050565b600060208201905081810360008301526134988161345c565b9050919050565b60006040820190506134b46000830185612d61565b6134c16020830184612d61565b9392505050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006134fe601783612ba6565b9150613509826134c8565b602082019050919050565b6000602082019050818103600083015261352d816134f1565b9050919050565b60008151905061354381612c89565b92915050565b60006020828403121561355f5761355e612c4d565b5b600061356d84828501613534565b91505092915050565b600060408201905061358b6000830185612f21565b6135986020830184612f21565b9392505050565b6000819050919050565b6000819050919050565b60006135ce6135c96135c48461359f565b6135a9565b612cb5565b9050919050565b6135de816135b3565b82525050565b600060c0820190506135f96000830189612f21565b6136066020830188612d61565b61361360408301876135d5565b61362060608301866135d5565b61362d6080830185612f21565b61363a60a0830184612d61565b979650505050505050565b60008151905061365481612cbf565b92915050565b60008060006060848603121561367357613672612c4d565b5b600061368186828701613645565b935050602061369286828701613645565b92505060406136a386828701613645565b9150509250925092565b60006040820190506136c26000830185612f21565b6136cf6020830184612d61565b9392505050565b6136df81612d2b565b81146136ea57600080fd5b50565b6000815190506136fc816136d6565b92915050565b60006020828403121561371857613717612c4d565b5b6000613726848285016136ed565b91505092915050565b7f496e76616c696420616464726573730000000000000000000000000000000000600082015250565b6000613765600f83612ba6565b91506137708261372f565b602082019050919050565b6000602082019050818103600083015261379481613758565b9050919050565b7f4f6e6c79206465706c6f7965722063616e2073656e6420746f6b656e73000000600082015250565b60006137d1601d83612ba6565b91506137dc8261379b565b602082019050919050565b60006020820190508181036000830152613800816137c4565b9050919050565b7f5472616e73666572206661696c65640000000000000000000000000000000000600082015250565b600061383d600f83612ba6565b915061384882613807565b602082019050919050565b6000602082019050818103600083015261386c81613830565b9050919050565b7f496e76616c69642073656c6c2074617820726174650000000000000000000000600082015250565b60006138a9601583612ba6565b91506138b482613873565b602082019050919050565b600060208201905081810360008301526138d88161389c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061393b602483612ba6565b9150613946826138df565b604082019050919050565b6000602082019050818103600083015261396a8161392e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006139cd602283612ba6565b91506139d882613971565b604082019050919050565b600060208201905081810360008301526139fc816139c0565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613a5f602583612ba6565b9150613a6a82613a03565b604082019050919050565b60006020820190508181036000830152613a8e81613a52565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613af1602383612ba6565b9150613afc82613a95565b604082019050919050565b60006020820190508181036000830152613b2081613ae4565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613b83602983612ba6565b9150613b8e82613b27565b604082019050919050565b60006020820190508181036000830152613bb281613b76565b9050919050565b7f5472616e736665722072656a656374656420666f7220626f742061646472657360008201527f7365730000000000000000000000000000000000000000000000000000000000602082015250565b6000613c15602383612ba6565b9150613c2082613bb9565b604082019050919050565b60006020820190508181036000830152613c4481613c08565b9050919050565b6000613c5682612cb5565b9150613c6183612cb5565b9250828203905081811115613c7957613c78612f8b565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613ce381612c77565b82525050565b6000613cf58383613cda565b60208301905092915050565b6000602082019050919050565b6000613d1982613cae565b613d238185613cb9565b9350613d2e83613cca565b8060005b83811015613d5f578151613d468882613ce9565b9750613d5183613d01565b925050600181019050613d32565b5085935050505092915050565b6000613d87613d82613d7d84612c57565b6135a9565b612c57565b9050919050565b6000613d9982613d6c565b9050919050565b6000613dab82613d8e565b9050919050565b613dbb81613da0565b82525050565b600060a082019050613dd66000830188612d61565b613de360208301876135d5565b8181036040830152613df58186613d0e565b9050613e046060830185613db2565b613e116080830184612d61565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613e5582612cb5565b9150613e6083612cb5565b925082613e7057613e6f613e1b565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ed7602183612ba6565b9150613ee282613e7b565b604082019050919050565b60006020820190508181036000830152613f0681613eca565b9050919050565b6000613f1882612cb5565b9150613f2383612cb5565b9250828201905080821115613f3b57613f3a612f8b565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613f77601b83612ba6565b9150613f8282613f41565b602082019050919050565b60006020820190508181036000830152613fa681613f6a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206398b242296d0851b8977dfa97cdb4d48ffc20e83df20aeae81521ebe30fd4f764736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101855760003560e01c80637fbbdbe3116100d1578063a9059cbb1161008a578063dd62ed3e11610064578063dd62ed3e1461052d578063e5dc6b211461056a578063ec1f3f6314610593578063f3ae2415146105bc5761018c565b8063a9059cbb1461049e578063ac18de43146104db578063d34628cc146105045761018c565b80637fbbdbe3146103b45780638a8c523c146103dd5780638da5cb5b146103f45780638f9a55c01461041f57806395d89b411461044a5780639fb79737146104755761018c565b806331c2d8471161013e57806370a082311161011857806370a082311461031e578063715018a61461035b578063751039fc146103725780637d1db4a5146103895761018c565b806331c2d847146102b5578063503dfc4d146102de57806355e2e974146102f55761018c565b806306fdde0314610191578063095ea7b3146101bc57806318160ddd146101f957806323b872dd146102245780632d06177a14610261578063313ce5671461028a5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a66105f9565b6040516101b39190612c2b565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de9190612ceb565b610636565b6040516101f09190612d46565b60405180910390f35b34801561020557600080fd5b5061020e610654565b60405161021b9190612d70565b60405180910390f35b34801561023057600080fd5b5061024b60048036038101906102469190612d8b565b610678565b6040516102589190612d46565b60405180910390f35b34801561026d57600080fd5b5061028860048036038101906102839190612dde565b610751565b005b34801561029657600080fd5b5061029f610883565b6040516102ac9190612e27565b60405180910390f35b3480156102c157600080fd5b506102dc60048036038101906102d79190612ea7565b61088c565b005b3480156102ea57600080fd5b506102f36109c6565b005b34801561030157600080fd5b5061031c60048036038101906103179190612ef4565b610b33565b005b34801561032a57600080fd5b5061034560048036038101906103409190612dde565b610c23565b6040516103529190612d70565b60405180910390f35b34801561036757600080fd5b50610370610c6c565b005b34801561037e57600080fd5b50610387610dbf565b005b34801561039557600080fd5b5061039e610eef565b6040516103ab9190612d70565b60405180910390f35b3480156103c057600080fd5b506103db60048036038101906103d69190612ef4565b610ef5565b005b3480156103e957600080fd5b506103f26110d9565b005b34801561040057600080fd5b50610409611611565b6040516104169190612f30565b60405180910390f35b34801561042b57600080fd5b5061043461163a565b6040516104419190612d70565b60405180910390f35b34801561045657600080fd5b5061045f611640565b60405161046c9190612c2b565b60405180910390f35b34801561048157600080fd5b5061049c60048036038101906104979190612ceb565b61167d565b005b3480156104aa57600080fd5b506104c560048036038101906104c09190612ceb565b61185a565b6040516104d29190612d46565b60405180910390f35b3480156104e757600080fd5b5061050260048036038101906104fd9190612dde565b611878565b005b34801561051057600080fd5b5061052b60048036038101906105269190612ea7565b6119ab565b005b34801561053957600080fd5b50610554600480360381019061054f9190612f4b565b611ae5565b6040516105619190612d70565b60405180910390f35b34801561057657600080fd5b50610591600480360381019061058c9190612ef4565b611b6c565b005b34801561059f57600080fd5b506105ba60048036038101906105b59190612ef4565b611c5c565b005b3480156105c857600080fd5b506105e360048036038101906105de9190612dde565b611ceb565b6040516105f09190612d46565b60405180910390f35b60606040518060400160405280600a81526020017f4574686572517565737400000000000000000000000000000000000000000000815250905090565b600061064a610643611d41565b8484611d49565b6001905092915050565b60006009600a61066491906130ed565b633b9aca006106739190613138565b905090565b6000610685848484611f12565b61074684610691611d41565b61074185604051806060016040528060288152602001613fae60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106f7611d41565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126cf9092919063ffffffff16565b611d49565b600190509392505050565b610759611d41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107dd906131c6565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f3b4a40cccf2058c593542587329dd385be4f0b588db5471fbd9598e56dd7093a60405160405180910390a250565b60006009905090565b610894611d41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610921576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610918906131c6565b60405180910390fd5b60005b828290508110156109c157600060056000858585818110610948576109476131e6565b5b905060200201602081019061095d9190612dde565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806109b990613215565b915050610924565b505050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a49906132cf565b60405180910390fd5b6000610a5d30610c23565b905060008111610aa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a999061333b565b60405180910390fd5b6000479050610ab082612733565b6000610ac582476129cc90919063ffffffff16565b90507f0000000000000000000000000d06e236d87dd0560e65673466f09d561ea5242073ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610b2d573d6000803e3d6000fd5b50505050565b610b3b611d41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbf906131c6565b60405180910390fd5b60008110158015610bda575060648111155b610c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c10906133a7565b60405180910390fd5b8060098190555050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c74611d41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf8906131c6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610dc7611d41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4b906131c6565b60405180910390fd5b6009600a610e6291906130ed565b633b9aca00610e719190613138565b600e819055506009600a610e8591906130ed565b633b9aca00610e949190613138565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610ec991906130ed565b633b9aca00610ed89190613138565b604051610ee59190612d70565b60405180910390a1565b600e5481565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610f81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f78906132cf565b60405180910390fd5b60008111610fc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbb90613413565b60405180910390fd5b610fcd30610c23565b81111561100f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110069061347f565b60405180910390fd5b600047905061101d82612733565b600061103282476129cc90919063ffffffff16565b90507f0000000000000000000000000d06e236d87dd0560e65673466f09d561ea5242073ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561109a573d6000803e3d6000fd5b507f42320ac5eaddacbe17123b82a05f9f64577c9365b86dbcc41dda26e86375bc4883826040516110cc92919061349f565b60405180910390a1505050565b6110e1611d41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461116e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611165906131c6565b60405180910390fd5b601260149054906101000a900460ff16156111be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b590613514565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061125c30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a61124891906130ed565b633b9aca006112579190613138565b611d49565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ed9190613549565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611376573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139a9190613549565b6040518363ffffffff1660e01b81526004016113b7929190613576565b6020604051808303816000875af11580156113d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fa9190613549565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061148330610c23565b60008061148e611611565b426040518863ffffffff1660e01b81526004016114b0969594939291906135e4565b60606040518083038185885af11580156114ce573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114f3919061365a565b5050506001601260166101000a81548160ff0219169083151502179055506001601260146101000a81548160ff021916908315150217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016115cb9291906136ad565b6020604051808303816000875af11580156115ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160e9190613702565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600281526020017f4551000000000000000000000000000000000000000000000000000000000000815250905090565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611709576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611700906132cf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611778576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176f9061377b565b60405180910390fd5b7f0000000000000000000000000d06e236d87dd0560e65673466f09d561ea5242073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611806576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fd906137e7565b60405180910390fd5b6000611813833084610678565b905080611855576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184c90613853565b60405180910390fd5b505050565b600061186e611867611d41565b8484611f12565b6001905092915050565b611880611d41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461190d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611904906131c6565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fef69f7d97228658c92417be1b16b19058315de71fecb435d07b7d23728b6bd3160405160405180910390a250565b6119b3611d41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a37906131c6565b60405180910390fd5b60005b82829050811015611ae057600160056000858585818110611a6757611a666131e6565b5b9050602002016020810190611a7c9190612dde565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611ad890613215565b915050611a43565b505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b74611d41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf8906131c6565b60405180910390fd5b60008110158015611c13575060648111155b611c52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c49906138bf565b60405180910390fd5b8060088190555050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611c9d611d41565b73ffffffffffffffffffffffffffffffffffffffff1614611cbd57600080fd5b6009548111158015611cd15750600a548111155b611cda57600080fd5b8060098190555080600a8190555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611db8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611daf90613951565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1e906139e3565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f059190612d70565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7890613a75565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ff0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe790613b07565b60405180910390fd5b60008111612033576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202a90613b99565b60405180910390fd5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120d75750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612116576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210d90613c2b565b60405180910390fd5b6000612120611611565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561218e575061215e611611565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156121a75750601260159054906101000a900460ff16155b1561234857601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036122445761223d606461222f600b54600d541161221c57600754612220565b6009545b85612a1690919063ffffffff16565b612a9090919063ffffffff16565b90506122d9565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036122d8576122d560646122c7600b54600d54116122b4576008546122b8565b600a545b85612a1690919063ffffffff16565b612a9090919063ffffffff16565b90505b5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361234757600d600081548092919061234190613215565b91905055505b5b600061235330610c23565b9050600060105482101590508080156123795750601260159054906101000a900460ff16155b80156123d35750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b80156123eb5750601260169054906101000a900460ff165b156124105760008290506010548311156124055760105490505b61240e81612733565b505b61246284600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129cc90919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125096124bb84866129cc90919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ada90919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6125ae86886129cc90919063ffffffff16565b6040516125bb9190612d70565b60405180910390a360008311156126c75761261e83600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ada90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516126be9190612d70565b60405180910390a35b505050505050565b6000838311158290612717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270e9190612c2b565b60405180910390fd5b50600083856127269190613c4b565b9050809150509392505050565b6001601260156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561276b5761276a613c7f565b5b6040519080825280602002602001820160405280156127995781602001602082028036833780820191505090505b50905030816000815181106127b1576127b06131e6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612858573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061287c9190613549565b816001815181106128905761288f6131e6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506128f730601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d49565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947836000847f0000000000000000000000000d06e236d87dd0560e65673466f09d561ea52420426040518663ffffffff1660e01b815260040161297b959493929190613dc1565b600060405180830381600087803b15801561299557600080fd5b505af11580156129a9573d6000803e3d6000fd5b50505050506000601260156101000a81548160ff02191690831515021790555050565b6000612a0e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506126cf565b905092915050565b6000808303612a285760009050612a8a565b60008284612a369190613138565b9050828482612a459190613e4a565b14612a85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a7c90613eed565b60405180910390fd5b809150505b92915050565b6000612ad283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b38565b905092915050565b6000808284612ae99190613f0d565b905083811015612b2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b2590613f8d565b60405180910390fd5b8091505092915050565b60008083118290612b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b769190612c2b565b60405180910390fd5b5060008385612b8e9190613e4a565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612bd5578082015181840152602081019050612bba565b60008484015250505050565b6000601f19601f8301169050919050565b6000612bfd82612b9b565b612c078185612ba6565b9350612c17818560208601612bb7565b612c2081612be1565b840191505092915050565b60006020820190508181036000830152612c458184612bf2565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c8282612c57565b9050919050565b612c9281612c77565b8114612c9d57600080fd5b50565b600081359050612caf81612c89565b92915050565b6000819050919050565b612cc881612cb5565b8114612cd357600080fd5b50565b600081359050612ce581612cbf565b92915050565b60008060408385031215612d0257612d01612c4d565b5b6000612d1085828601612ca0565b9250506020612d2185828601612cd6565b9150509250929050565b60008115159050919050565b612d4081612d2b565b82525050565b6000602082019050612d5b6000830184612d37565b92915050565b612d6a81612cb5565b82525050565b6000602082019050612d856000830184612d61565b92915050565b600080600060608486031215612da457612da3612c4d565b5b6000612db286828701612ca0565b9350506020612dc386828701612ca0565b9250506040612dd486828701612cd6565b9150509250925092565b600060208284031215612df457612df3612c4d565b5b6000612e0284828501612ca0565b91505092915050565b600060ff82169050919050565b612e2181612e0b565b82525050565b6000602082019050612e3c6000830184612e18565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612e6757612e66612e42565b5b8235905067ffffffffffffffff811115612e8457612e83612e47565b5b602083019150836020820283011115612ea057612e9f612e4c565b5b9250929050565b60008060208385031215612ebe57612ebd612c4d565b5b600083013567ffffffffffffffff811115612edc57612edb612c52565b5b612ee885828601612e51565b92509250509250929050565b600060208284031215612f0a57612f09612c4d565b5b6000612f1884828501612cd6565b91505092915050565b612f2a81612c77565b82525050565b6000602082019050612f456000830184612f21565b92915050565b60008060408385031215612f6257612f61612c4d565b5b6000612f7085828601612ca0565b9250506020612f8185828601612ca0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561301157808604811115612fed57612fec612f8b565b5b6001851615612ffc5780820291505b808102905061300a85612fba565b9450612fd1565b94509492505050565b60008261302a57600190506130e6565b8161303857600090506130e6565b816001811461304e576002811461305857613087565b60019150506130e6565b60ff84111561306a57613069612f8b565b5b8360020a91508482111561308157613080612f8b565b5b506130e6565b5060208310610133831016604e8410600b84101617156130bc5782820a9050838111156130b7576130b6612f8b565b5b6130e6565b6130c98484846001612fc7565b925090508184048111156130e0576130df612f8b565b5b81810290505b9392505050565b60006130f882612cb5565b915061310383612e0b565b92506131307fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461301a565b905092915050565b600061314382612cb5565b915061314e83612cb5565b925082820261315c81612cb5565b9150828204841483151761317357613172612f8b565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006131b0602083612ba6565b91506131bb8261317a565b602082019050919050565b600060208201905081810360008301526131df816131a3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061322082612cb5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361325257613251612f8b565b5b600182019050919050565b7f416363657373436f6e74726f6c3a2063616c6c6572206973206e6f742061206d60008201527f616e616765720000000000000000000000000000000000000000000000000000602082015250565b60006132b9602683612ba6565b91506132c48261325d565b604082019050919050565b600060208201905081810360008301526132e8816132ac565b9050919050565b7f4e6f20746f6b656e7320746f2073656e64000000000000000000000000000000600082015250565b6000613325601183612ba6565b9150613330826132ef565b602082019050919050565b6000602082019050818103600083015261335481613318565b9050919050565b7f496e76616c696420627579207461782072617465000000000000000000000000600082015250565b6000613391601483612ba6565b915061339c8261335b565b602082019050919050565b600060208201905081810360008301526133c081613384565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e207a65726f600082015250565b60006133fd602083612ba6565b9150613408826133c7565b602082019050919050565b6000602082019050818103600083015261342c816133f0565b9050919050565b7f496e73756666696369656e7420636f6e74726163742062616c616e6365000000600082015250565b6000613469601d83612ba6565b915061347482613433565b602082019050919050565b600060208201905081810360008301526134988161345c565b9050919050565b60006040820190506134b46000830185612d61565b6134c16020830184612d61565b9392505050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006134fe601783612ba6565b9150613509826134c8565b602082019050919050565b6000602082019050818103600083015261352d816134f1565b9050919050565b60008151905061354381612c89565b92915050565b60006020828403121561355f5761355e612c4d565b5b600061356d84828501613534565b91505092915050565b600060408201905061358b6000830185612f21565b6135986020830184612f21565b9392505050565b6000819050919050565b6000819050919050565b60006135ce6135c96135c48461359f565b6135a9565b612cb5565b9050919050565b6135de816135b3565b82525050565b600060c0820190506135f96000830189612f21565b6136066020830188612d61565b61361360408301876135d5565b61362060608301866135d5565b61362d6080830185612f21565b61363a60a0830184612d61565b979650505050505050565b60008151905061365481612cbf565b92915050565b60008060006060848603121561367357613672612c4d565b5b600061368186828701613645565b935050602061369286828701613645565b92505060406136a386828701613645565b9150509250925092565b60006040820190506136c26000830185612f21565b6136cf6020830184612d61565b9392505050565b6136df81612d2b565b81146136ea57600080fd5b50565b6000815190506136fc816136d6565b92915050565b60006020828403121561371857613717612c4d565b5b6000613726848285016136ed565b91505092915050565b7f496e76616c696420616464726573730000000000000000000000000000000000600082015250565b6000613765600f83612ba6565b91506137708261372f565b602082019050919050565b6000602082019050818103600083015261379481613758565b9050919050565b7f4f6e6c79206465706c6f7965722063616e2073656e6420746f6b656e73000000600082015250565b60006137d1601d83612ba6565b91506137dc8261379b565b602082019050919050565b60006020820190508181036000830152613800816137c4565b9050919050565b7f5472616e73666572206661696c65640000000000000000000000000000000000600082015250565b600061383d600f83612ba6565b915061384882613807565b602082019050919050565b6000602082019050818103600083015261386c81613830565b9050919050565b7f496e76616c69642073656c6c2074617820726174650000000000000000000000600082015250565b60006138a9601583612ba6565b91506138b482613873565b602082019050919050565b600060208201905081810360008301526138d88161389c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061393b602483612ba6565b9150613946826138df565b604082019050919050565b6000602082019050818103600083015261396a8161392e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006139cd602283612ba6565b91506139d882613971565b604082019050919050565b600060208201905081810360008301526139fc816139c0565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613a5f602583612ba6565b9150613a6a82613a03565b604082019050919050565b60006020820190508181036000830152613a8e81613a52565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613af1602383612ba6565b9150613afc82613a95565b604082019050919050565b60006020820190508181036000830152613b2081613ae4565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613b83602983612ba6565b9150613b8e82613b27565b604082019050919050565b60006020820190508181036000830152613bb281613b76565b9050919050565b7f5472616e736665722072656a656374656420666f7220626f742061646472657360008201527f7365730000000000000000000000000000000000000000000000000000000000602082015250565b6000613c15602383612ba6565b9150613c2082613bb9565b604082019050919050565b60006020820190508181036000830152613c4481613c08565b9050919050565b6000613c5682612cb5565b9150613c6183612cb5565b9250828203905081811115613c7957613c78612f8b565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613ce381612c77565b82525050565b6000613cf58383613cda565b60208301905092915050565b6000602082019050919050565b6000613d1982613cae565b613d238185613cb9565b9350613d2e83613cca565b8060005b83811015613d5f578151613d468882613ce9565b9750613d5183613d01565b925050600181019050613d32565b5085935050505092915050565b6000613d87613d82613d7d84612c57565b6135a9565b612c57565b9050919050565b6000613d9982613d6c565b9050919050565b6000613dab82613d8e565b9050919050565b613dbb81613da0565b82525050565b600060a082019050613dd66000830188612d61565b613de360208301876135d5565b8181036040830152613df58186613d0e565b9050613e046060830185613db2565b613e116080830184612d61565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613e5582612cb5565b9150613e6083612cb5565b925082613e7057613e6f613e1b565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ed7602183612ba6565b9150613ee282613e7b565b604082019050919050565b60006020820190508181036000830152613f0681613eca565b9050919050565b6000613f1882612cb5565b9150613f2383612cb5565b9250828201905080821115613f3b57613f3a612f8b565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613f77601b83612ba6565b9150613f8282613f41565b602082019050919050565b60006020820190508181036000830152613fa681613f6a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206398b242296d0851b8977dfa97cdb4d48ffc20e83df20aeae81521ebe30fd4f764736f6c63430008110033

Deployed Bytecode Sourcemap

5088:8988:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7031:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7864:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7308:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8033:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4035:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7217:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11290:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13144:396;;;;;;;;;;;;;:::i;:::-;;12151:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7411:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3432:148;;;;;;;;;;;;;:::i;:::-;;10947:159;;;;;;;;;;;;;:::i;:::-;;6014:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13548:525;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11470:673;;;;;;;;;;;;;:::i;:::-;;3218:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6075:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7122:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12801:335;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7538:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4178:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11114:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7713:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12341:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12540:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3920:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7031:83;7068:13;7101:5;;;;;;;;;;;;;;;;;7094:12;;7031:83;:::o;7864:161::-;7939:4;7956:39;7965:12;:10;:12::i;:::-;7979:7;7988:6;7956:8;:39::i;:::-;8013:4;8006:11;;7864:161;;;;:::o;7308:95::-;7361:7;5828:1;5884:2;:13;;;;:::i;:::-;5871:10;:26;;;;:::i;:::-;7381:14;;7308:95;:::o;8033:313::-;8131:4;8148:36;8158:6;8166:9;8177:6;8148:9;:36::i;:::-;8195:121;8204:6;8212:12;:10;:12::i;:::-;8226:89;8264:6;8226:89;;;;;;;;;;;;;;;;;:11;:19;8238:6;8226:19;;;;;;;;;;;;;;;:33;8246:12;:10;:12::i;:::-;8226:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;8195:8;:121::i;:::-;8334:4;8327:11;;8033:313;;;;;:::o;4035:135::-;3355:12;:10;:12::i;:::-;3345:22;;:6;;;;;;;;;;:22;;;3337:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4121:4:::1;4100:9:::0;:18:::1;4110:7;4100:18;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;4154:7;4141:21;;;;;;;;;;;;4035:135:::0;:::o;7217:83::-;7258:5;5828:1;7276:16;;7217:83;:::o;11290:172::-;3355:12;:10;:12::i;:::-;3345:22;;:6;;;;;;;;;;:22;;;3337:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11369:6:::1;11364:91;11385:6;;:13;;11381:1;:17;11364:91;;;11438:5;11420:4;:15;11425:6;;11432:1;11425:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11420:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;11400:3;;;;;:::i;:::-;;;;11364:91;;;;11290:172:::0;;:::o;13144:396::-;3828:9;:21;3838:10;3828:21;;;;;;;;;;;;;;;;;;;;;;;;;3820:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;13203:19:::1;13225:24;13243:4;13225:9;:24::i;:::-;13203:46;;13282:1;13268:11;:15;13260:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;13318:22;13343:21;13318:46;;13377:29;13394:11;13377:16;:29::i;:::-;13419:18;13440:41;13466:14;13440:21;:25;;:41;;;;:::i;:::-;13419:62;;13494:15;:24;;:36;13519:10;13494:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13192:348;;;13144:396::o:0;12151:182::-;3355:12;:10;:12::i;:::-;3345:22;;:6;;;;;;;;;;:22;;;3337:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12244:1:::1;12231:9;:14;;:34;;;;;12262:3;12249:9;:16;;12231:34;12223:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12316:9;12301:12;:24;;;;12151:182:::0;:::o;7411:119::-;7477:7;7504:9;:18;7514:7;7504:18;;;;;;;;;;;;;;;;7497:25;;7411:119;;;:::o;3432:148::-;3355:12;:10;:12::i;:::-;3345:22;;:6;;;;;;;;;;:22;;;3337:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3539:1:::1;3502:40;;3523:6;::::0;::::1;;;;;;;;3502:40;;;;;;;;;;;;3570:1;3553:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3432:148::o:0;10947:159::-;3355:12;:10;:12::i;:::-;3345:22;;:6;;;;;;;;;;:22;;;3337:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5828:1:::1;5884:2;:13;;;;:::i;:::-;5871:10;:26;;;;:::i;:::-;11000:12;:22;;;;5828:1;5884:2;:13;;;;:::i;:::-;5871:10;:26;;;;:::i;:::-;11033:14;:22;;;;11071:27;5828:1;5884:2;:13;;;;:::i;:::-;5871:10;:26;;;;:::i;:::-;11071:27;;;;;;:::i;:::-;;;;;;;;10947:159::o:0;6014:54::-;;;;:::o;13548:525::-;3828:9;:21;3838:10;3828:21;;;;;;;;;;;;;;;;;;;;;;;;;3820:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;13648:1:::1;13634:11;:15;13626:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;13720:24;13738:4;13720:9;:24::i;:::-;13705:11;:39;;13697:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;13791:22;13816:21;13791:46;;13850:29;13867:11;13850:16;:29::i;:::-;13892:18;13913:41;13939:14;13913:21;:25;;:41;;;;:::i;:::-;13892:62;;13967:15;:24;;:36;13992:10;13967:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;14021:44;14041:11;14054:10;14021:44;;;;;;;:::i;:::-;;;;;;;;13615:458;;13548:525:::0;:::o;11470:673::-;3355:12;:10;:12::i;:::-;3345:22;;:6;;;;;;;;;;:22;;;3337:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11536:11:::1;;;;;;;;;;;11535:12;11527:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11622:42;11585:15;;:80;;;;;;;;;;;;;;;;;;11676:58;11693:4;11708:15;;;;;;;;;;;5828:1;5884:2;:13;;;;:::i;:::-;5871:10;:26;;;;:::i;:::-;11676:8;:58::i;:::-;11779:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11761:55;;;11825:4;11832:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11761:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11745:13;;:110;;;;;;;;;;;;;;;;;;11866:15;;;;;;;;;;;:31;;;11905:21;11936:4;11942:24;11960:4;11942:9;:24::i;:::-;11967:1;11969::::0;11971:7:::1;:5;:7::i;:::-;11979:15;11866:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12020:4;12006:11;;:18;;;;;;;;;;;;;;;;;;12049:4;12035:11;;:18;;;;;;;;;;;;;;;;;;12071:13;;;;;;;;;;;12064:29;;;12102:15;;;;;;;;;;;12120:14;12064:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11470:673::o:0;3218:79::-;3256:7;3283:6;;;;;;;;;;;3276:13;;3218:79;:::o;6075:56::-;;;;:::o;7122:87::-;7161:13;7194:7;;;;;;;;;;;;;;;;;7187:14;;7122:87;:::o;12801:335::-;3828:9;:21;3838:10;3828:21;;;;;;;;;;;;;;;;;;;;;;;;;3820:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12912:1:::1;12896:18;;:4;:18;;::::0;12888:46:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;12961:15;12953:23;;:4;:23;;;12945:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;13021:12;13036:46;13049:4;13063;13070:11;13036:12;:46::i;:::-;13021:61;;13101:7;13093:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;12877:259;12801:335:::0;;:::o;7538:167::-;7616:4;7633:42;7643:12;:10;:12::i;:::-;7657:9;7668:6;7633:9;:42::i;:::-;7693:4;7686:11;;7538:167;;;;:::o;4178:141::-;3355:12;:10;:12::i;:::-;3345:22;;:6;;;;;;;;;;:22;;;3337:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4267:5:::1;4246:9;:18;4256:7;4246:18;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;4303:7;4288:23;;;;;;;;;;;;4178:141:::0;:::o;11114:168::-;3355:12;:10;:12::i;:::-;3345:22;;:6;;;;;;;;;;:22;;;3337:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11192:6:::1;11187:88;11208:5;;:12;;11204:1;:16;11187:88;;;11259:4;11242;:14;11247:5;;11253:1;11247:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11242:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11222:3;;;;;:::i;:::-;;;;11187:88;;;;11114:168:::0;;:::o;7713:143::-;7794:7;7821:11;:18;7833:5;7821:18;;;;;;;;;;;;;;;:27;7840:7;7821:27;;;;;;;;;;;;;;;;7814:34;;7713:143;;;;:::o;12341:191::-;3355:12;:10;:12::i;:::-;3345:22;;:6;;;;;;;;;;:22;;;3337:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12437:1:::1;12423:10;:15;;:36;;;;;12456:3;12442:10;:17;;12423:36;12415:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;12514:10;12496:15;:28;;;;12341:191:::0;:::o;12540:214::-;12615:10;;;;;;;;;;;12601:24;;:12;:10;:12::i;:::-;:24;;;12593:33;;;;;;12652:12;;12643:7;:21;;:47;;;;;12677:13;;12668:7;:22;;12643:47;12635:56;;;;;;12713:7;12700:12;:20;;;;12743:7;12729:13;:21;;;;12540:214;:::o;3920:107::-;3977:4;4001:9;:18;4011:7;4001:18;;;;;;;;;;;;;;;;;;;;;;;;;3994:25;;3920:107;;;:::o;973:98::-;1026:7;1053:10;1046:17;;973:98;:::o;8354:335::-;8464:1;8447:19;;:5;:19;;;8439:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8545:1;8526:21;;:7;:21;;;8518:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8627:6;8597:11;:18;8609:5;8597:18;;;;;;;;;;;;;;;:27;8616:7;8597:27;;;;;;;;;;;;;;;:36;;;;8665:7;8649:32;;8658:5;8649:32;;;8674:6;8649:32;;;;;;:::i;:::-;;;;;;;;8354:335;;;:::o;8697:1737::-;8801:1;8785:18;;:4;:18;;;8777:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8878:1;8864:16;;:2;:16;;;8856:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8948:1;8939:6;:10;8931:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9015:4;:10;9020:4;9015:10;;;;;;;;;;;;;;;;;;;;;;;;;9014:11;:24;;;;;9030:4;:8;9035:2;9030:8;;;;;;;;;;;;;;;;;;;;;;;;;9029:9;9014:24;9006:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;9091:17;9137:7;:5;:7::i;:::-;9129:15;;:4;:15;;;;:32;;;;;9154:7;:5;:7::i;:::-;9148:13;;:2;:13;;;;9129:32;:43;;;;;9166:6;;;;;;;;;;;9165:7;9129:43;9125:466;;;9201:13;;;;;;;;;;;9193:21;;:4;:21;;;9189:308;;9247:77;9320:3;9247:68;9270:12;;9258:9;;:24;:56;;9300:14;;9258:56;;;9285:12;;9258:56;9247:6;:10;;:68;;;;:::i;:::-;:72;;:77;;;;:::i;:::-;9235:89;;9189:308;;;9356:13;;;;;;;;;;;9350:19;;:2;:19;;;9346:151;;9402:79;9477:3;9402:70;9425:12;;9413:9;;:24;:58;;9456:15;;9413:58;;;9440:13;;9413:58;9402:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;9390:91;;9346:151;9189:308;9523:13;;;;;;;;;;;9515:21;;:4;:21;;;9511:69;;9553:9;;:11;;;;;;;;;:::i;:::-;;;;;;9511:69;9125:466;9603:28;9634:24;9652:4;9634:9;:24::i;:::-;9603:55;;9669:24;9720:17;;9696:20;:41;;9669:68;;9752:19;:30;;;;;9776:6;;;;;;;;;;;9775:7;9752:30;:55;;;;;9794:13;;;;;;;;;;;9786:21;;:4;:21;;;;9752:55;:70;;;;;9811:11;;;;;;;;;;;9752:70;9748:312;;;9839:18;9860:20;9839:41;;9922:17;;9899:20;:40;9895:111;;;9973:17;;9960:30;;9895:111;10020:28;10037:10;10020:16;:28::i;:::-;9824:236;9748:312;10099:27;10119:6;10099:9;:15;10109:4;10099:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10081:9;:15;10091:4;10081:15;;;;;;;;;;;;;;;:45;;;;10153:40;10171:21;10182:9;10171:6;:10;;:21;;;;:::i;:::-;10153:9;:13;10163:2;10153:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10137:9;:13;10147:2;10137:13;;;;;;;;;;;;;;;:56;;;;10224:2;10209:41;;10218:4;10209:41;;;10228:21;10239:9;10228:6;:10;;:21;;;;:::i;:::-;10209:41;;;;;;:::i;:::-;;;;;;;;10277:1;10265:9;:13;10261:168;;;10322:39;10351:9;10322;:24;10340:4;10322:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10295:9;:24;10313:4;10295:24;;;;;;;;;;;;;;;:66;;;;10404:4;10381:40;;10390:4;10381:40;;;10411:9;10381:40;;;;;;:::i;:::-;;;;;;;;10261:168;8766:1668;;;8697:1737;;;:::o;2110:190::-;2196:7;2229:1;2224;:6;;2232:12;2216:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2256:9;2272:1;2268;:5;;;;:::i;:::-;2256:17;;2291:1;2284:8;;;2110:190;;;;;:::o;10450:489::-;6564:4;6555:6;;:13;;;;;;;;;;;;;;;;;;10528:21:::1;10566:1;10552:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10528:40;;10597:4;10579;10584:1;10579:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10623:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10613:4;10618:1;10613:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10658:62;10675:4;10690:15;;;;;;;;;;;10708:11;10658:8;:62::i;:::-;10733:15;;;;;;;;;;;:66;;;10814:11;10840:1;10856:4;10875:15;10905;10733:198;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10517:422;6600:5:::0;6591:6;;:14;;;;;;;;;;;;;;;;;;10450:489;:::o;1966:136::-;2024:7;2051:43;2055:1;2058;2051:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2044:50;;1966:136;;;;:::o;2308:246::-;2366:7;2395:1;2390;:6;2386:47;;2420:1;2413:8;;;;2386:47;2443:9;2459:1;2455;:5;;;;:::i;:::-;2443:17;;2488:1;2483;2479;:5;;;;:::i;:::-;:10;2471:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2545:1;2538:8;;;2308:246;;;;;:::o;2562:132::-;2620:7;2647:39;2651:1;2654;2647:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2640:46;;2562:132;;;;:::o;1779:179::-;1837:7;1857:9;1873:1;1869;:5;;;;:::i;:::-;1857:17;;1898:1;1893;:6;;1885:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1949:1;1942:8;;;1779:179;;;;:::o;2702:189::-;2788:7;2820:1;2816;:5;2823:12;2808:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2847:9;2863:1;2859;:5;;;;:::i;:::-;2847:17;;2882:1;2875:8;;;2702:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:329::-;4482:6;4531:2;4519:9;4510:7;4506:23;4502:32;4499:119;;;4537:79;;:::i;:::-;4499:119;4657:1;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4628:117;4423:329;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:117::-;5297:1;5294;5287:12;5311:117;5420:1;5417;5410:12;5434:117;5543:1;5540;5533:12;5574:568;5647:8;5657:6;5707:3;5700:4;5692:6;5688:17;5684:27;5674:122;;5715:79;;:::i;:::-;5674:122;5828:6;5815:20;5805:30;;5858:18;5850:6;5847:30;5844:117;;;5880:79;;:::i;:::-;5844:117;5994:4;5986:6;5982:17;5970:29;;6048:3;6040:4;6032:6;6028:17;6018:8;6014:32;6011:41;6008:128;;;6055:79;;:::i;:::-;6008:128;5574:568;;;;;:::o;6148:559::-;6234:6;6242;6291:2;6279:9;6270:7;6266:23;6262:32;6259:119;;;6297:79;;:::i;:::-;6259:119;6445:1;6434:9;6430:17;6417:31;6475:18;6467:6;6464:30;6461:117;;;6497:79;;:::i;:::-;6461:117;6610:80;6682:7;6673:6;6662:9;6658:22;6610:80;:::i;:::-;6592:98;;;;6388:312;6148:559;;;;;:::o;6713:329::-;6772:6;6821:2;6809:9;6800:7;6796:23;6792:32;6789:119;;;6827:79;;:::i;:::-;6789:119;6947:1;6972:53;7017:7;7008:6;6997:9;6993:22;6972:53;:::i;:::-;6962:63;;6918:117;6713:329;;;;:::o;7048:118::-;7135:24;7153:5;7135:24;:::i;:::-;7130:3;7123:37;7048:118;;:::o;7172:222::-;7265:4;7303:2;7292:9;7288:18;7280:26;;7316:71;7384:1;7373:9;7369:17;7360:6;7316:71;:::i;:::-;7172:222;;;;:::o;7400:474::-;7468:6;7476;7525:2;7513:9;7504:7;7500:23;7496:32;7493:119;;;7531:79;;:::i;:::-;7493:119;7651:1;7676:53;7721:7;7712:6;7701:9;7697:22;7676:53;:::i;:::-;7666:63;;7622:117;7778:2;7804:53;7849:7;7840:6;7829:9;7825:22;7804:53;:::i;:::-;7794:63;;7749:118;7400:474;;;;;:::o;7880:180::-;7928:77;7925:1;7918:88;8025:4;8022:1;8015:15;8049:4;8046:1;8039:15;8066:102;8108:8;8155:5;8152:1;8148:13;8127:34;;8066:102;;;:::o;8174:848::-;8235:5;8242:4;8266:6;8257:15;;8290:5;8281:14;;8304:712;8325:1;8315:8;8312:15;8304:712;;;8420:4;8415:3;8411:14;8405:4;8402:24;8399:50;;;8429:18;;:::i;:::-;8399:50;8479:1;8469:8;8465:16;8462:451;;;8894:4;8887:5;8883:16;8874:25;;8462:451;8944:4;8938;8934:15;8926:23;;8974:32;8997:8;8974:32;:::i;:::-;8962:44;;8304:712;;;8174:848;;;;;;;:::o;9028:1073::-;9082:5;9273:8;9263:40;;9294:1;9285:10;;9296:5;;9263:40;9322:4;9312:36;;9339:1;9330:10;;9341:5;;9312:36;9408:4;9456:1;9451:27;;;;9492:1;9487:191;;;;9401:277;;9451:27;9469:1;9460:10;;9471:5;;;9487:191;9532:3;9522:8;9519:17;9516:43;;;9539:18;;:::i;:::-;9516:43;9588:8;9585:1;9581:16;9572:25;;9623:3;9616:5;9613:14;9610:40;;;9630:18;;:::i;:::-;9610:40;9663:5;;;9401:277;;9787:2;9777:8;9774:16;9768:3;9762:4;9759:13;9755:36;9737:2;9727:8;9724:16;9719:2;9713:4;9710:12;9706:35;9690:111;9687:246;;;9843:8;9837:4;9833:19;9824:28;;9878:3;9871:5;9868:14;9865:40;;;9885:18;;:::i;:::-;9865:40;9918:5;;9687:246;9958:42;9996:3;9986:8;9980:4;9977:1;9958:42;:::i;:::-;9943:57;;;;10032:4;10027:3;10023:14;10016:5;10013:25;10010:51;;;10041:18;;:::i;:::-;10010:51;10090:4;10083:5;10079:16;10070:25;;9028:1073;;;;;;:::o;10107:281::-;10165:5;10189:23;10207:4;10189:23;:::i;:::-;10181:31;;10233:25;10249:8;10233:25;:::i;:::-;10221:37;;10277:104;10314:66;10304:8;10298:4;10277:104;:::i;:::-;10268:113;;10107:281;;;;:::o;10394:410::-;10434:7;10457:20;10475:1;10457:20;:::i;:::-;10452:25;;10491:20;10509:1;10491:20;:::i;:::-;10486:25;;10546:1;10543;10539:9;10568:30;10586:11;10568:30;:::i;:::-;10557:41;;10747:1;10738:7;10734:15;10731:1;10728:22;10708:1;10701:9;10681:83;10658:139;;10777:18;;:::i;:::-;10658:139;10442:362;10394:410;;;;:::o;10810:182::-;10950:34;10946:1;10938:6;10934:14;10927:58;10810:182;:::o;10998:366::-;11140:3;11161:67;11225:2;11220:3;11161:67;:::i;:::-;11154:74;;11237:93;11326:3;11237:93;:::i;:::-;11355:2;11350:3;11346:12;11339:19;;10998:366;;;:::o;11370:419::-;11536:4;11574:2;11563:9;11559:18;11551:26;;11623:9;11617:4;11613:20;11609:1;11598:9;11594:17;11587:47;11651:131;11777:4;11651:131;:::i;:::-;11643:139;;11370:419;;;:::o;11795:180::-;11843:77;11840:1;11833:88;11940:4;11937:1;11930:15;11964:4;11961:1;11954:15;11981:233;12020:3;12043:24;12061:5;12043:24;:::i;:::-;12034:33;;12089:66;12082:5;12079:77;12076:103;;12159:18;;:::i;:::-;12076:103;12206:1;12199:5;12195:13;12188:20;;11981:233;;;:::o;12220:225::-;12360:34;12356:1;12348:6;12344:14;12337:58;12429:8;12424:2;12416:6;12412:15;12405:33;12220:225;:::o;12451:366::-;12593:3;12614:67;12678:2;12673:3;12614:67;:::i;:::-;12607:74;;12690:93;12779:3;12690:93;:::i;:::-;12808:2;12803:3;12799:12;12792:19;;12451:366;;;:::o;12823:419::-;12989:4;13027:2;13016:9;13012:18;13004:26;;13076:9;13070:4;13066:20;13062:1;13051:9;13047:17;13040:47;13104:131;13230:4;13104:131;:::i;:::-;13096:139;;12823:419;;;:::o;13248:167::-;13388:19;13384:1;13376:6;13372:14;13365:43;13248:167;:::o;13421:366::-;13563:3;13584:67;13648:2;13643:3;13584:67;:::i;:::-;13577:74;;13660:93;13749:3;13660:93;:::i;:::-;13778:2;13773:3;13769:12;13762:19;;13421:366;;;:::o;13793:419::-;13959:4;13997:2;13986:9;13982:18;13974:26;;14046:9;14040:4;14036:20;14032:1;14021:9;14017:17;14010:47;14074:131;14200:4;14074:131;:::i;:::-;14066:139;;13793:419;;;:::o;14218:170::-;14358:22;14354:1;14346:6;14342:14;14335:46;14218:170;:::o;14394:366::-;14536:3;14557:67;14621:2;14616:3;14557:67;:::i;:::-;14550:74;;14633:93;14722:3;14633:93;:::i;:::-;14751:2;14746:3;14742:12;14735:19;;14394:366;;;:::o;14766:419::-;14932:4;14970:2;14959:9;14955:18;14947:26;;15019:9;15013:4;15009:20;15005:1;14994:9;14990:17;14983:47;15047:131;15173:4;15047:131;:::i;:::-;15039:139;;14766:419;;;:::o;15191:182::-;15331:34;15327:1;15319:6;15315:14;15308:58;15191:182;:::o;15379:366::-;15521:3;15542:67;15606:2;15601:3;15542:67;:::i;:::-;15535:74;;15618:93;15707:3;15618:93;:::i;:::-;15736:2;15731:3;15727:12;15720:19;;15379:366;;;:::o;15751:419::-;15917:4;15955:2;15944:9;15940:18;15932:26;;16004:9;15998:4;15994:20;15990:1;15979:9;15975:17;15968:47;16032:131;16158:4;16032:131;:::i;:::-;16024:139;;15751:419;;;:::o;16176:179::-;16316:31;16312:1;16304:6;16300:14;16293:55;16176:179;:::o;16361:366::-;16503:3;16524:67;16588:2;16583:3;16524:67;:::i;:::-;16517:74;;16600:93;16689:3;16600:93;:::i;:::-;16718:2;16713:3;16709:12;16702:19;;16361:366;;;:::o;16733:419::-;16899:4;16937:2;16926:9;16922:18;16914:26;;16986:9;16980:4;16976:20;16972:1;16961:9;16957:17;16950:47;17014:131;17140:4;17014:131;:::i;:::-;17006:139;;16733:419;;;:::o;17158:332::-;17279:4;17317:2;17306:9;17302:18;17294:26;;17330:71;17398:1;17387:9;17383:17;17374:6;17330:71;:::i;:::-;17411:72;17479:2;17468:9;17464:18;17455:6;17411:72;:::i;:::-;17158:332;;;;;:::o;17496:173::-;17636:25;17632:1;17624:6;17620:14;17613:49;17496:173;:::o;17675:366::-;17817:3;17838:67;17902:2;17897:3;17838:67;:::i;:::-;17831:74;;17914:93;18003:3;17914:93;:::i;:::-;18032:2;18027:3;18023:12;18016:19;;17675:366;;;:::o;18047:419::-;18213:4;18251:2;18240:9;18236:18;18228:26;;18300:9;18294:4;18290:20;18286:1;18275:9;18271:17;18264:47;18328:131;18454:4;18328:131;:::i;:::-;18320:139;;18047:419;;;:::o;18472:143::-;18529:5;18560:6;18554:13;18545:22;;18576:33;18603:5;18576:33;:::i;:::-;18472:143;;;;:::o;18621:351::-;18691:6;18740:2;18728:9;18719:7;18715:23;18711:32;18708:119;;;18746:79;;:::i;:::-;18708:119;18866:1;18891:64;18947:7;18938:6;18927:9;18923:22;18891:64;:::i;:::-;18881:74;;18837:128;18621:351;;;;:::o;18978:332::-;19099:4;19137:2;19126:9;19122:18;19114:26;;19150:71;19218:1;19207:9;19203:17;19194:6;19150:71;:::i;:::-;19231:72;19299:2;19288:9;19284:18;19275:6;19231:72;:::i;:::-;18978:332;;;;;:::o;19316:85::-;19361:7;19390:5;19379:16;;19316:85;;;:::o;19407:60::-;19435:3;19456:5;19449:12;;19407:60;;;:::o;19473:158::-;19531:9;19564:61;19582:42;19591:32;19617:5;19591:32;:::i;:::-;19582:42;:::i;:::-;19564:61;:::i;:::-;19551:74;;19473:158;;;:::o;19637:147::-;19732:45;19771:5;19732:45;:::i;:::-;19727:3;19720:58;19637:147;;:::o;19790:807::-;20039:4;20077:3;20066:9;20062:19;20054:27;;20091:71;20159:1;20148:9;20144:17;20135:6;20091:71;:::i;:::-;20172:72;20240:2;20229:9;20225:18;20216:6;20172:72;:::i;:::-;20254:80;20330:2;20319:9;20315:18;20306:6;20254:80;:::i;:::-;20344;20420:2;20409:9;20405:18;20396:6;20344:80;:::i;:::-;20434:73;20502:3;20491:9;20487:19;20478:6;20434:73;:::i;:::-;20517;20585:3;20574:9;20570:19;20561:6;20517:73;:::i;:::-;19790:807;;;;;;;;;:::o;20603:143::-;20660:5;20691:6;20685:13;20676:22;;20707:33;20734:5;20707:33;:::i;:::-;20603:143;;;;:::o;20752:663::-;20840:6;20848;20856;20905:2;20893:9;20884:7;20880:23;20876:32;20873:119;;;20911:79;;:::i;:::-;20873:119;21031:1;21056:64;21112:7;21103:6;21092:9;21088:22;21056:64;:::i;:::-;21046:74;;21002:128;21169:2;21195:64;21251:7;21242:6;21231:9;21227:22;21195:64;:::i;:::-;21185:74;;21140:129;21308:2;21334:64;21390:7;21381:6;21370:9;21366:22;21334:64;:::i;:::-;21324:74;;21279:129;20752:663;;;;;:::o;21421:332::-;21542:4;21580:2;21569:9;21565:18;21557:26;;21593:71;21661:1;21650:9;21646:17;21637:6;21593:71;:::i;:::-;21674:72;21742:2;21731:9;21727:18;21718:6;21674:72;:::i;:::-;21421:332;;;;;:::o;21759:116::-;21829:21;21844:5;21829:21;:::i;:::-;21822:5;21819:32;21809:60;;21865:1;21862;21855:12;21809:60;21759:116;:::o;21881:137::-;21935:5;21966:6;21960:13;21951:22;;21982:30;22006:5;21982:30;:::i;:::-;21881:137;;;;:::o;22024:345::-;22091:6;22140:2;22128:9;22119:7;22115:23;22111:32;22108:119;;;22146:79;;:::i;:::-;22108:119;22266:1;22291:61;22344:7;22335:6;22324:9;22320:22;22291:61;:::i;:::-;22281:71;;22237:125;22024:345;;;;:::o;22375:165::-;22515:17;22511:1;22503:6;22499:14;22492:41;22375:165;:::o;22546:366::-;22688:3;22709:67;22773:2;22768:3;22709:67;:::i;:::-;22702:74;;22785:93;22874:3;22785:93;:::i;:::-;22903:2;22898:3;22894:12;22887:19;;22546:366;;;:::o;22918:419::-;23084:4;23122:2;23111:9;23107:18;23099:26;;23171:9;23165:4;23161:20;23157:1;23146:9;23142:17;23135:47;23199:131;23325:4;23199:131;:::i;:::-;23191:139;;22918:419;;;:::o;23343:179::-;23483:31;23479:1;23471:6;23467:14;23460:55;23343:179;:::o;23528:366::-;23670:3;23691:67;23755:2;23750:3;23691:67;:::i;:::-;23684:74;;23767:93;23856:3;23767:93;:::i;:::-;23885:2;23880:3;23876:12;23869:19;;23528:366;;;:::o;23900:419::-;24066:4;24104:2;24093:9;24089:18;24081:26;;24153:9;24147:4;24143:20;24139:1;24128:9;24124:17;24117:47;24181:131;24307:4;24181:131;:::i;:::-;24173:139;;23900:419;;;:::o;24325:165::-;24465:17;24461:1;24453:6;24449:14;24442:41;24325:165;:::o;24496:366::-;24638:3;24659:67;24723:2;24718:3;24659:67;:::i;:::-;24652:74;;24735:93;24824:3;24735:93;:::i;:::-;24853:2;24848:3;24844:12;24837:19;;24496:366;;;:::o;24868:419::-;25034:4;25072:2;25061:9;25057:18;25049:26;;25121:9;25115:4;25111:20;25107:1;25096:9;25092:17;25085:47;25149:131;25275:4;25149:131;:::i;:::-;25141:139;;24868:419;;;:::o;25293:171::-;25433:23;25429:1;25421:6;25417:14;25410:47;25293:171;:::o;25470:366::-;25612:3;25633:67;25697:2;25692:3;25633:67;:::i;:::-;25626:74;;25709:93;25798:3;25709:93;:::i;:::-;25827:2;25822:3;25818:12;25811:19;;25470:366;;;:::o;25842:419::-;26008:4;26046:2;26035:9;26031:18;26023:26;;26095:9;26089:4;26085:20;26081:1;26070:9;26066:17;26059:47;26123:131;26249:4;26123:131;:::i;:::-;26115:139;;25842:419;;;:::o;26267:223::-;26407:34;26403:1;26395:6;26391:14;26384:58;26476:6;26471:2;26463:6;26459:15;26452:31;26267:223;:::o;26496:366::-;26638:3;26659:67;26723:2;26718:3;26659:67;:::i;:::-;26652:74;;26735:93;26824:3;26735:93;:::i;:::-;26853:2;26848:3;26844:12;26837:19;;26496:366;;;:::o;26868:419::-;27034:4;27072:2;27061:9;27057:18;27049:26;;27121:9;27115:4;27111:20;27107:1;27096:9;27092:17;27085:47;27149:131;27275:4;27149:131;:::i;:::-;27141:139;;26868:419;;;:::o;27293:221::-;27433:34;27429:1;27421:6;27417:14;27410:58;27502:4;27497:2;27489:6;27485:15;27478:29;27293:221;:::o;27520:366::-;27662:3;27683:67;27747:2;27742:3;27683:67;:::i;:::-;27676:74;;27759:93;27848:3;27759:93;:::i;:::-;27877:2;27872:3;27868:12;27861:19;;27520:366;;;:::o;27892:419::-;28058:4;28096:2;28085:9;28081:18;28073:26;;28145:9;28139:4;28135:20;28131:1;28120:9;28116:17;28109:47;28173:131;28299:4;28173:131;:::i;:::-;28165:139;;27892:419;;;:::o;28317:224::-;28457:34;28453:1;28445:6;28441:14;28434:58;28526:7;28521:2;28513:6;28509:15;28502:32;28317:224;:::o;28547:366::-;28689:3;28710:67;28774:2;28769:3;28710:67;:::i;:::-;28703:74;;28786:93;28875:3;28786:93;:::i;:::-;28904:2;28899:3;28895:12;28888:19;;28547:366;;;:::o;28919:419::-;29085:4;29123:2;29112:9;29108:18;29100:26;;29172:9;29166:4;29162:20;29158:1;29147:9;29143:17;29136:47;29200:131;29326:4;29200:131;:::i;:::-;29192:139;;28919:419;;;:::o;29344:222::-;29484:34;29480:1;29472:6;29468:14;29461:58;29553:5;29548:2;29540:6;29536:15;29529:30;29344:222;:::o;29572:366::-;29714:3;29735:67;29799:2;29794:3;29735:67;:::i;:::-;29728:74;;29811:93;29900:3;29811:93;:::i;:::-;29929:2;29924:3;29920:12;29913:19;;29572:366;;;:::o;29944:419::-;30110:4;30148:2;30137:9;30133:18;30125:26;;30197:9;30191:4;30187:20;30183:1;30172:9;30168:17;30161:47;30225:131;30351:4;30225:131;:::i;:::-;30217:139;;29944:419;;;:::o;30369:228::-;30509:34;30505:1;30497:6;30493:14;30486:58;30578:11;30573:2;30565:6;30561:15;30554:36;30369:228;:::o;30603:366::-;30745:3;30766:67;30830:2;30825:3;30766:67;:::i;:::-;30759:74;;30842:93;30931:3;30842:93;:::i;:::-;30960:2;30955:3;30951:12;30944:19;;30603:366;;;:::o;30975:419::-;31141:4;31179:2;31168:9;31164:18;31156:26;;31228:9;31222:4;31218:20;31214:1;31203:9;31199:17;31192:47;31256:131;31382:4;31256:131;:::i;:::-;31248:139;;30975:419;;;:::o;31400:222::-;31540:34;31536:1;31528:6;31524:14;31517:58;31609:5;31604:2;31596:6;31592:15;31585:30;31400:222;:::o;31628:366::-;31770:3;31791:67;31855:2;31850:3;31791:67;:::i;:::-;31784:74;;31867:93;31956:3;31867:93;:::i;:::-;31985:2;31980:3;31976:12;31969:19;;31628:366;;;:::o;32000:419::-;32166:4;32204:2;32193:9;32189:18;32181:26;;32253:9;32247:4;32243:20;32239:1;32228:9;32224:17;32217:47;32281:131;32407:4;32281:131;:::i;:::-;32273:139;;32000:419;;;:::o;32425:194::-;32465:4;32485:20;32503:1;32485:20;:::i;:::-;32480:25;;32519:20;32537:1;32519:20;:::i;:::-;32514:25;;32563:1;32560;32556:9;32548:17;;32587:1;32581:4;32578:11;32575:37;;;32592:18;;:::i;:::-;32575:37;32425:194;;;;:::o;32625:180::-;32673:77;32670:1;32663:88;32770:4;32767:1;32760:15;32794:4;32791:1;32784:15;32811:114;32878:6;32912:5;32906:12;32896:22;;32811:114;;;:::o;32931:184::-;33030:11;33064:6;33059:3;33052:19;33104:4;33099:3;33095:14;33080:29;;32931:184;;;;:::o;33121:132::-;33188:4;33211:3;33203:11;;33241:4;33236:3;33232:14;33224:22;;33121:132;;;:::o;33259:108::-;33336:24;33354:5;33336:24;:::i;:::-;33331:3;33324:37;33259:108;;:::o;33373:179::-;33442:10;33463:46;33505:3;33497:6;33463:46;:::i;:::-;33541:4;33536:3;33532:14;33518:28;;33373:179;;;;:::o;33558:113::-;33628:4;33660;33655:3;33651:14;33643:22;;33558:113;;;:::o;33707:732::-;33826:3;33855:54;33903:5;33855:54;:::i;:::-;33925:86;34004:6;33999:3;33925:86;:::i;:::-;33918:93;;34035:56;34085:5;34035:56;:::i;:::-;34114:7;34145:1;34130:284;34155:6;34152:1;34149:13;34130:284;;;34231:6;34225:13;34258:63;34317:3;34302:13;34258:63;:::i;:::-;34251:70;;34344:60;34397:6;34344:60;:::i;:::-;34334:70;;34190:224;34177:1;34174;34170:9;34165:14;;34130:284;;;34134:14;34430:3;34423:10;;33831:608;;;33707:732;;;;:::o;34445:142::-;34495:9;34528:53;34546:34;34555:24;34573:5;34555:24;:::i;:::-;34546:34;:::i;:::-;34528:53;:::i;:::-;34515:66;;34445:142;;;:::o;34593:126::-;34643:9;34676:37;34707:5;34676:37;:::i;:::-;34663:50;;34593:126;;;:::o;34725:134::-;34783:9;34816:37;34847:5;34816:37;:::i;:::-;34803:50;;34725:134;;;:::o;34865:147::-;34960:45;34999:5;34960:45;:::i;:::-;34955:3;34948:58;34865:147;;:::o;35018:847::-;35289:4;35327:3;35316:9;35312:19;35304:27;;35341:71;35409:1;35398:9;35394:17;35385:6;35341:71;:::i;:::-;35422:80;35498:2;35487:9;35483:18;35474:6;35422:80;:::i;:::-;35549:9;35543:4;35539:20;35534:2;35523:9;35519:18;35512:48;35577:108;35680:4;35671:6;35577:108;:::i;:::-;35569:116;;35695:80;35771:2;35760:9;35756:18;35747:6;35695:80;:::i;:::-;35785:73;35853:3;35842:9;35838:19;35829:6;35785:73;:::i;:::-;35018:847;;;;;;;;:::o;35871:180::-;35919:77;35916:1;35909:88;36016:4;36013:1;36006:15;36040:4;36037:1;36030:15;36057:185;36097:1;36114:20;36132:1;36114:20;:::i;:::-;36109:25;;36148:20;36166:1;36148:20;:::i;:::-;36143:25;;36187:1;36177:35;;36192:18;;:::i;:::-;36177:35;36234:1;36231;36227:9;36222:14;;36057:185;;;;:::o;36248:220::-;36388:34;36384:1;36376:6;36372:14;36365:58;36457:3;36452:2;36444:6;36440:15;36433:28;36248:220;:::o;36474:366::-;36616:3;36637:67;36701:2;36696:3;36637:67;:::i;:::-;36630:74;;36713:93;36802:3;36713:93;:::i;:::-;36831:2;36826:3;36822:12;36815:19;;36474:366;;;:::o;36846:419::-;37012:4;37050:2;37039:9;37035:18;37027:26;;37099:9;37093:4;37089:20;37085:1;37074:9;37070:17;37063:47;37127:131;37253:4;37127:131;:::i;:::-;37119:139;;36846:419;;;:::o;37271:191::-;37311:3;37330:20;37348:1;37330:20;:::i;:::-;37325:25;;37364:20;37382:1;37364:20;:::i;:::-;37359:25;;37407:1;37404;37400:9;37393:16;;37428:3;37425:1;37422:10;37419:36;;;37435:18;;:::i;:::-;37419:36;37271:191;;;;:::o;37468:177::-;37608:29;37604:1;37596:6;37592:14;37585:53;37468:177;:::o;37651:366::-;37793:3;37814:67;37878:2;37873:3;37814:67;:::i;:::-;37807:74;;37890:93;37979:3;37890:93;:::i;:::-;38008:2;38003:3;37999:12;37992:19;;37651:366;;;:::o;38023:419::-;38189:4;38227:2;38216:9;38212:18;38204:26;;38276:9;38270:4;38266:20;38262:1;38251:9;38247:17;38240:47;38304:131;38430:4;38304:131;:::i;:::-;38296:139;;38023:419;;;:::o

Swarm Source

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