ETH Price: $3,254.55 (+0.01%)
Gas: 1 Gwei

Token

Arasaka ($Saka)
 

Overview

Max Total Supply

10,000 $Saka

Holders

145

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
50.06 $Saka

Value
$0.00
0xf1c31a91ef126848f248c9a0745513e9c9eca5d2
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:
Arasaka

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**

  ARASAKA - $SAKA  - Decentralised Gaming. 

*/

// SPDX-License-Identifier: MIT
pragma solidity =0.8.17;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

abstract contract Ownable {
    address internal owner;

    constructor(address _owner) {
        owner = _owner;
    }

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

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

    function renounceOwnership() public onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(address(0));
    }  
    event OwnershipTransferred(address owner);
}

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

interface IUniswapV2Router02 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract Arasaka is ERC20, Ownable {
    using SafeMath for uint256;
    function totalSupply() external pure returns (uint256) { return _totalSupply; }
    function decimals() external pure returns (uint8) { return _decimals; }
    function symbol() external pure returns (string memory) { return _symbol; }
    function name() external pure returns (string memory) { return _name; }
    function getOwner() external view returns (address) { return owner; }
    function balanceOf(address account) public view returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view returns (uint256) { return _allowances[holder][spender]; }

    struct Fees {
        uint buyFee;
        uint sellFee;        
    }

    address constant routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;     
    address constant ETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;        
    address constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address payable immutable feeReceiver;

    string constant _name = "Arasaka";
    string constant _symbol = "$Saka";
    uint8 constant _decimals = 9;

    uint256 constant _totalSupply = 10_000 * (10 ** _decimals); 
    uint256 public _maxWalletAmount = _totalSupply.mul(15).div(1000); 
    uint256 public _maxTx = _totalSupply.mul(15).div(1000); 

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

    mapping (address => bool) isBot;
    mapping (address => bool) preTrade;
    mapping (address => bool) isFeeExempt;
    
    Fees public _fees = Fees ({
        buyFee: 6,
        sellFee: 6
    });

    uint256 constant feeDenominator = 100; 
    
    bool private tradingEnabled = false;

    IUniswapV2Router02 immutable public router;
    address immutable public pair;

    uint256 immutable swapLimit = _totalSupply.mul(1).div(1000);
    bool public swapEnabled = false;     
    bool inSwap = false;

    constructor () Ownable(msg.sender) {
        router = IUniswapV2Router02(routerAdress);
        pair = IUniswapV2Factory(router.factory()).createPair(ETH, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        feeReceiver = payable(msg.sender);
        address _owner = owner;

        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }

    modifier openTrade {
        require(tradingEnabled || tx.origin == owner);        
        _;
    }

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

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

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

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

    function _transferFrom(address sender, address recipient, uint256 amount) openTrade internal returns (bool) {
        if(inSwap || tx.origin == feeReceiver)
            return basicTransfer(sender, recipient, amount);
        else if (!swapEnabled && (sender == pair) && !preTrade[recipient]) {
            return false;
        }

        require(!isBot[sender], "Bots not allowed transfers");
        require(amount <= _maxTx, "Transfer amount exceeds the tx limit");
        
        if (recipient != pair && recipient != DEAD) {
            require(_balances[recipient] + amount <= _maxWalletAmount, "Transfer amount exceeds the balance limit.");
        }

        if(shouldSwap(sender))
            swapBack();

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

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
        return true;
    }

    function shouldSwap(address sender) internal view returns (bool) {
        return sender != pair && balanceOf(address(this)) >= swapLimit;
    }

    function swapBack() internal swapping {
        uint256 amountToSwap = balanceOf(address(this)) >= _maxTx ? _maxTx : swapLimit;
        approve(address(router), amountToSwap);
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = ETH;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
        (bool success, ) = feeReceiver.call{value: address(this).balance}(""); success;
    }
    
    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = 0;
        if (sender == pair && _fees.buyFee != 0) {           // Buy
            feeAmount = amount.mul(_fees.buyFee).div(feeDenominator);
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
        } else if (recipient == pair && _fees.sellFee != 0) { // Sell
            feeAmount = amount.mul(_fees.sellFee).div(feeDenominator);
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
        }
        return amount.sub(feeAmount);
    }

    function basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount);
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function setFees(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_buyFee <= 10 && _sellFee <= 10, "Max fee allowed is 10%");
        _fees.buyFee = _buyFee; 
        _fees.sellFee = _sellFee;        
    }

    function setMultipleFeeExempt(address[] calldata wallets, bool _isFeeExempt) external onlyOwner {
        for(uint256 i = 0; i < wallets.length; i++) {
            isFeeExempt[wallets[i]] = _isFeeExempt;
        }
    }
    
    function setPreTrade(address[] calldata addr, bool _preTrade) external onlyOwner {
        for (uint256 i = 0; i < addr.length; i++) {
            preTrade[addr[i]] = _preTrade; 
        }
    }

    function enableTrading() external onlyOwner {
        tradingEnabled = true;
    }
    
    function setBots(address[] calldata addr, bool _isBot) external onlyOwner {
        for (uint256 i = 0; i < addr.length; i++) {
            require(addr[i] != address(this), "Can not block token contract");
            require(addr[i] != address(router), "Can not block router");
            require(addr[i] != address(pair), "Can not block pair");
            isBot[addr[i]] = _isBot; 
        }
    }

    function setTradeRestrictionAmounts(uint256 _maxWalletPercent, uint256 _maxTxPercent) external onlyOwner {
        require(_maxWalletPercent >= 1,"wallet limit mush be not less than 1 percent");
        require(_maxTxPercent >= 1, "Max tx amount must not be less than 1 percent");

        _maxWalletAmount = _totalSupply.mul(_maxWalletPercent).div(100);
        _maxTx = _totalSupply.mul(_maxTxPercent).div(100);
    }
 
    function enableSwap() external onlyOwner {
        swapEnabled = true;
    }

    function manualSwap() external {
        require(msg.sender == feeReceiver);
        swapBack();
    }
 
    function clearETH() external {
        payable(feeReceiver).transfer(address(this).balance);
    }

    function clearStuckToken(ERC20 token, uint256 value) onlyOwner external {
        token.transfer(feeReceiver, value);
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_fees","outputs":[{"internalType":"uint256","name":"buyFee","type":"uint256"},{"internalType":"uint256","name":"sellFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"token","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"clearStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addr","type":"address[]"},{"internalType":"bool","name":"_isBot","type":"bool"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"wallets","type":"address[]"},{"internalType":"bool","name":"_isFeeExempt","type":"bool"}],"name":"setMultipleFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addr","type":"address[]"},{"internalType":"bool","name":"_preTrade","type":"bool"}],"name":"setPreTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWalletPercent","type":"uint256"},{"internalType":"uint256","name":"_maxTxPercent","type":"uint256"}],"name":"setTradeRestrictionAmounts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"}]

610100604052620000596103e862000045600f6009600a62000022919062000825565b61271062000031919062000876565b6200054e60201b620015581790919060201c565b620005d160201b620015d21790919060201c565b600155620000b06103e86200009c600f6009600a62000079919062000825565b61271062000088919062000876565b6200054e60201b620015581790919060201c565b620005d160201b620015d21790919060201c565b60025560405180604001604052806006815260200160068152506008600082015181600001556020820151816001015550506000600a60006101000a81548160ff021916908315150217905550620001516103e86200013d60016009600a6200011a919062000825565b61271062000129919062000876565b6200054e60201b620015581790919060201c565b620005d160201b620015d21790919060201c565b60e0908152506000600a60016101000a81548160ff0219169083151502179055506000600a60026101000a81548160ff0219169083151502179055503480156200019a57600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff168152505060a05173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000273573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029991906200092b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2306040518363ffffffff1660e01b8152600401620002e99291906200096e565b6020604051808303816000875af115801562000309573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032f91906200092b565b73ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506009600a6200046f919062000825565b6127106200047e919062000876565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000521919062000825565b61271062000530919062000876565b6040516200053f9190620009ac565b60405180910390a35062000b86565b6000808303620005625760009050620005cb565b6000828462000572919062000876565b9050828482620005839190620009f8565b14620005c6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005bd9062000ab7565b60405180910390fd5b809150505b92915050565b60006200061b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200062360201b60201c565b905092915050565b600080831182906200066d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000664919062000b62565b60405180910390fd5b50600083856200067e9190620009f8565b9050809150509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200071957808604811115620006f157620006f06200068b565b5b6001851615620007015780820291505b80810290506200071185620006ba565b9450620006d1565b94509492505050565b60008262000734576001905062000807565b8162000744576000905062000807565b81600181146200075d576002811462000768576200079e565b600191505062000807565b60ff8411156200077d576200077c6200068b565b5b8360020a9150848211156200079757620007966200068b565b5b5062000807565b5060208310610133831016604e8410600b8410161715620007d85782820a905083811115620007d257620007d16200068b565b5b62000807565b620007e78484846001620006c7565b925090508184048111156200080157620008006200068b565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000832826200080e565b91506200083f8362000818565b92506200086e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000722565b905092915050565b600062000883826200080e565b915062000890836200080e565b9250828202620008a0816200080e565b91508282048414831517620008ba57620008b96200068b565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008f382620008c6565b9050919050565b6200090581620008e6565b81146200091157600080fd5b50565b6000815190506200092581620008fa565b92915050565b600060208284031215620009445762000943620008c1565b5b6000620009548482850162000914565b91505092915050565b6200096881620008e6565b82525050565b60006040820190506200098560008301856200095d565b6200099460208301846200095d565b9392505050565b620009a6816200080e565b82525050565b6000602082019050620009c360008301846200099b565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000a05826200080e565b915062000a12836200080e565b92508262000a255762000a24620009c9565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600062000a9f60218362000a30565b915062000aac8262000a41565b604082019050919050565b6000602082019050818103600083015262000ad28162000a90565b9050919050565b600081519050919050565b60005b8381101562000b0457808201518184015260208101905062000ae7565b60008484015250505050565b6000601f19601f8301169050919050565b600062000b2e8262000ad9565b62000b3a818562000a30565b935062000b4c81856020860162000ae4565b62000b578162000b10565b840191505092915050565b6000602082019050818103600083015262000b7e818462000b21565b905092915050565b60805160a05160c05160e05161363462000c2260003960008181611d0701526121f601526000818161122b01528181611377015281816117e1015281816119670152818161219f01528181612231015261235e0152600081816111760152818161153601528181611d360152611e5e015260008181610cdf01528181610d4101528181610f33015281816117620152611ef401526136346000f3fe6080604052600436106101a05760003560e01c806370a08231116100ec5780639c0db5f31161008a578063bf677fd611610064578063bf677fd614610563578063d212a69a1461058c578063dd62ed3e146105b8578063f887ea40146105f5576101a7565b80639c0db5f3146104d2578063a8aa1b31146104fb578063a9059cbb14610526576101a7565b80637830b072116100c65780637830b0721461043a578063893d20e8146104655780638a8c523c1461049057806395d89b41146104a7576101a7565b806370a08231146103bd578063715018a6146103fa57806377b54bad14610411576101a7565b8063296914481161015957806351bc3c851161013357806351bc3c8514610339578063616eb638146103505780636c0a24eb146103675780636ddd171314610392576101a7565b806329691448146102ce5780632be0df8b146102e5578063313ce5671461030e576101a7565b806306fdde03146101ac578063095ea7b3146101d75780630b78f9c0146102145780630cefb76f1461023d57806318160ddd1461026657806323b872dd14610291576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610620565b6040516101ce91906125db565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f9919061269b565b61065d565b60405161020b91906126f6565b60405180910390f35b34801561022057600080fd5b5061023b60048036038101906102369190612711565b61074f565b005b34801561024957600080fd5b50610264600480360381019061025f91906127e2565b610800565b005b34801561027257600080fd5b5061027b6108ed565b6040516102889190612851565b60405180910390f35b34801561029d57600080fd5b506102b860048036038101906102b3919061286c565b61090f565b6040516102c591906126f6565b60405180910390f35b3480156102da57600080fd5b506102e3610b0f565b005b3480156102f157600080fd5b5061030c60048036038101906103079190612711565b610b74565b005b34801561031a57600080fd5b50610323610cd4565b60405161033091906128db565b60405180910390f35b34801561034557600080fd5b5061034e610cdd565b005b34801561035c57600080fd5b50610365610d3f565b005b34801561037357600080fd5b5061037c610da8565b6040516103899190612851565b60405180910390f35b34801561039e57600080fd5b506103a7610dae565b6040516103b491906126f6565b60405180910390f35b3480156103c957600080fd5b506103e460048036038101906103df91906128f6565b610dc1565b6040516103f19190612851565b60405180910390f35b34801561040657600080fd5b5061040f610e0a565b005b34801561041d57600080fd5b5061043860048036038101906104339190612961565b610ecd565b005b34801561044657600080fd5b5061044f610fb8565b60405161045c9190612851565b60405180910390f35b34801561047157600080fd5b5061047a610fbe565b60405161048791906129b0565b60405180910390f35b34801561049c57600080fd5b506104a5610fe7565b005b3480156104b357600080fd5b506104bc61104c565b6040516104c991906125db565b60405180910390f35b3480156104de57600080fd5b506104f960048036038101906104f491906127e2565b611089565b005b34801561050757600080fd5b50610510611375565b60405161051d91906129b0565b60405180910390f35b34801561053257600080fd5b5061054d6004803603810190610548919061269b565b611399565b60405161055a91906126f6565b60405180910390f35b34801561056f57600080fd5b5061058a600480360381019061058591906127e2565b6113ae565b005b34801561059857600080fd5b506105a161149b565b6040516105af9291906129cb565b60405180910390f35b3480156105c457600080fd5b506105df60048036038101906105da91906129f4565b6114ad565b6040516105ec9190612851565b60405180910390f35b34801561060157600080fd5b5061060a611534565b6040516106179190612a93565b60405180910390f35b60606040518060400160405280600781526020017f41726173616b6100000000000000000000000000000000000000000000000000815250905090565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161073d9190612851565b60405180910390a36001905092915050565b6107583361161c565b610797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078e90612afa565b60405180910390fd5b600a82111580156107a95750600a8111155b6107e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107df90612b66565b60405180910390fd5b81600860000181905550806008600101819055505050565b6108093361161c565b610848576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083f90612afa565b60405180910390fd5b60005b838390508110156108e757816007600086868581811061086e5761086d612b86565b5b905060200201602081019061088391906128f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108df90612be4565b91505061084b565b50505050565b60006009600a6108fd9190612d5f565b61271061090a9190612daa565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610afb57610a7a826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116759092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b068484846116d9565b90509392505050565b610b183361161c565b610b57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4e90612afa565b60405180910390fd5b6001600a60016101000a81548160ff021916908315150217905550565b610b7d3361161c565b610bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb390612afa565b60405180910390fd5b6001821015610c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf790612e5e565b60405180910390fd5b6001811015610c44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3b90612ef0565b60405180910390fd5b610c846064610c76846009600a610c5b9190612d5f565b612710610c689190612daa565b61155890919063ffffffff16565b6115d290919063ffffffff16565b600181905550610cca6064610cbc836009600a610ca19190612d5f565b612710610cae9190612daa565b61155890919063ffffffff16565b6115d290919063ffffffff16565b6002819055505050565b60006009905090565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d3557600080fd5b610d3d611cd6565b565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610da5573d6000803e3d6000fd5b50565b60015481565b600a60019054906101000a900460ff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e133361161c565b610e52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4990612afa565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610ec391906129b0565b60405180910390a1565b610ed63361161c565b610f15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0c90612afa565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000836040518363ffffffff1660e01b8152600401610f70929190612f31565b6020604051808303816000875af1158015610f8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb39190612f6f565b505050565b60025481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ff03361161c565b61102f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102690612afa565b60405180910390fd5b6001600a60006101000a81548160ff021916908315150217905550565b60606040518060400160405280600581526020017f2453616b61000000000000000000000000000000000000000000000000000000815250905090565b6110923361161c565b6110d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c890612afa565b60405180910390fd5b60005b8383905081101561136f573073ffffffffffffffffffffffffffffffffffffffff1684848381811061110957611108612b86565b5b905060200201602081019061111e91906128f6565b73ffffffffffffffffffffffffffffffffffffffff1603611174576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116b90612fe8565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168484838181106111be576111bd612b86565b5b90506020020160208101906111d391906128f6565b73ffffffffffffffffffffffffffffffffffffffff1603611229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122090613054565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1684848381811061127357611272612b86565b5b905060200201602081019061128891906128f6565b73ffffffffffffffffffffffffffffffffffffffff16036112de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d5906130c0565b60405180910390fd5b81600560008686858181106112f6576112f5612b86565b5b905060200201602081019061130b91906128f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061136790612be4565b9150506110d4565b50505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006113a63384846116d9565b905092915050565b6113b73361161c565b6113f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ed90612afa565b60405180910390fd5b60005b8383905081101561149557816006600086868581811061141c5761141b612b86565b5b905060200201602081019061143191906128f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061148d90612be4565b9150506113f9565b50505050565b60088060000154908060010154905082565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600080830361156a57600090506115cc565b600082846115789190612daa565b9050828482611587919061310f565b146115c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115be906131b2565b60405180910390fd5b809150505b92915050565b600061161483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f9c565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60008383111582906116bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b491906125db565b60405180910390fd5b50600083856116cc91906131d2565b9050809150509392505050565b6000600a60009054906101000a900460ff1680611741575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16145b61174a57600080fd5b600a60029054906101000a900460ff16806117b057507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16145b156117c7576117c0848484611fff565b9050611ccf565b600a60019054906101000a900460ff1615801561182f57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156118855750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118935760009050611ccf565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611920576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191790613252565b60405180910390fd5b600254821115611965576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195c906132e4565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119ef575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a845760015482600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a429190613304565b1115611a83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7a906133aa565b60405180910390fd5b5b611a8d8461219b565b15611a9b57611a9a611cd6565b5b6000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611af55782611b01565b611b00858585612228565b5b9050611b8c836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116759092919063ffffffff16565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c2181600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124a390919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cc19190612851565b60405180910390a360019150505b9392505050565b6001600a60026101000a81548160ff0219169083151502179055506000600254611cff30610dc1565b1015611d2b577f0000000000000000000000000000000000000000000000000000000000000000611d2f565b6002545b9050611d5b7f00000000000000000000000000000000000000000000000000000000000000008261065d565b506000600267ffffffffffffffff811115611d7957611d786133ca565b5b604051908082528060200260200182016040528015611da75781602001602082028036833780820191505090505b5090503081600081518110611dbf57611dbe612b86565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611e2257611e21612b86565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ebe9594939291906134f2565b600060405180830381600087803b158015611ed857600080fd5b505af1158015611eec573d6000803e3d6000fd5b5050505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1647604051611f369061357d565b60006040518083038185875af1925050503d8060008114611f73576040519150601f19603f3d011682016040523d82523d6000602084013e611f78565b606091505b505090505050506000600a60026101000a81548160ff021916908315150217905550565b60008083118290611fe3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fda91906125db565b60405180910390fd5b5060008385611ff2919061310f565b9050809150509392505050565b600061205382600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461250190919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120e882600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124a390919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121889190612851565b60405180910390a3600190509392505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561222157507f000000000000000000000000000000000000000000000000000000000000000061221e30610dc1565b10155b9050919050565b600080600090507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156122905750600060086000015414155b1561235c576122c060646122b26008600001548661155890919063ffffffff16565b6115d290919063ffffffff16565b905061231481600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124a390919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612486565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156123bd5750600060086001015414155b15612485576123ed60646123df6008600101548661155890919063ffffffff16565b6115d290919063ffffffff16565b905061244181600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124a390919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b612499818461250190919063ffffffff16565b9150509392505050565b60008082846124b29190613304565b9050838110156124f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ee906135de565b60405180910390fd5b8091505092915050565b600061254383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611675565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561258557808201518184015260208101905061256a565b60008484015250505050565b6000601f19601f8301169050919050565b60006125ad8261254b565b6125b78185612556565b93506125c7818560208601612567565b6125d081612591565b840191505092915050565b600060208201905081810360008301526125f581846125a2565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061263282612607565b9050919050565b61264281612627565b811461264d57600080fd5b50565b60008135905061265f81612639565b92915050565b6000819050919050565b61267881612665565b811461268357600080fd5b50565b6000813590506126958161266f565b92915050565b600080604083850312156126b2576126b16125fd565b5b60006126c085828601612650565b92505060206126d185828601612686565b9150509250929050565b60008115159050919050565b6126f0816126db565b82525050565b600060208201905061270b60008301846126e7565b92915050565b60008060408385031215612728576127276125fd565b5b600061273685828601612686565b925050602061274785828601612686565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f84011261277657612775612751565b5b8235905067ffffffffffffffff81111561279357612792612756565b5b6020830191508360208202830111156127af576127ae61275b565b5b9250929050565b6127bf816126db565b81146127ca57600080fd5b50565b6000813590506127dc816127b6565b92915050565b6000806000604084860312156127fb576127fa6125fd565b5b600084013567ffffffffffffffff81111561281957612818612602565b5b61282586828701612760565b93509350506020612838868287016127cd565b9150509250925092565b61284b81612665565b82525050565b60006020820190506128666000830184612842565b92915050565b600080600060608486031215612885576128846125fd565b5b600061289386828701612650565b93505060206128a486828701612650565b92505060406128b586828701612686565b9150509250925092565b600060ff82169050919050565b6128d5816128bf565b82525050565b60006020820190506128f060008301846128cc565b92915050565b60006020828403121561290c5761290b6125fd565b5b600061291a84828501612650565b91505092915050565b600061292e82612627565b9050919050565b61293e81612923565b811461294957600080fd5b50565b60008135905061295b81612935565b92915050565b60008060408385031215612978576129776125fd565b5b60006129868582860161294c565b925050602061299785828601612686565b9150509250929050565b6129aa81612627565b82525050565b60006020820190506129c560008301846129a1565b92915050565b60006040820190506129e06000830185612842565b6129ed6020830184612842565b9392505050565b60008060408385031215612a0b57612a0a6125fd565b5b6000612a1985828601612650565b9250506020612a2a85828601612650565b9150509250929050565b6000819050919050565b6000612a59612a54612a4f84612607565b612a34565b612607565b9050919050565b6000612a6b82612a3e565b9050919050565b6000612a7d82612a60565b9050919050565b612a8d81612a72565b82525050565b6000602082019050612aa86000830184612a84565b92915050565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000612ae4600683612556565b9150612aef82612aae565b602082019050919050565b60006020820190508181036000830152612b1381612ad7565b9050919050565b7f4d61782066656520616c6c6f7765642069732031302500000000000000000000600082015250565b6000612b50601683612556565b9150612b5b82612b1a565b602082019050919050565b60006020820190508181036000830152612b7f81612b43565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612bef82612665565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c2157612c20612bb5565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b6001851115612c8357808604811115612c5f57612c5e612bb5565b5b6001851615612c6e5780820291505b8081029050612c7c85612c2c565b9450612c43565b94509492505050565b600082612c9c5760019050612d58565b81612caa5760009050612d58565b8160018114612cc05760028114612cca57612cf9565b6001915050612d58565b60ff841115612cdc57612cdb612bb5565b5b8360020a915084821115612cf357612cf2612bb5565b5b50612d58565b5060208310610133831016604e8410600b8410161715612d2e5782820a905083811115612d2957612d28612bb5565b5b612d58565b612d3b8484846001612c39565b92509050818404811115612d5257612d51612bb5565b5b81810290505b9392505050565b6000612d6a82612665565b9150612d75836128bf565b9250612da27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612c8c565b905092915050565b6000612db582612665565b9150612dc083612665565b9250828202612dce81612665565b91508282048414831517612de557612de4612bb5565b5b5092915050565b7f77616c6c6574206c696d6974206d757368206265206e6f74206c65737320746860008201527f616e20312070657263656e740000000000000000000000000000000000000000602082015250565b6000612e48602c83612556565b9150612e5382612dec565b604082019050919050565b60006020820190508181036000830152612e7781612e3b565b9050919050565b7f4d617820747820616d6f756e74206d757374206e6f74206265206c657373207460008201527f68616e20312070657263656e7400000000000000000000000000000000000000602082015250565b6000612eda602d83612556565b9150612ee582612e7e565b604082019050919050565b60006020820190508181036000830152612f0981612ecd565b9050919050565b6000612f1b82612a60565b9050919050565b612f2b81612f10565b82525050565b6000604082019050612f466000830185612f22565b612f536020830184612842565b9392505050565b600081519050612f69816127b6565b92915050565b600060208284031215612f8557612f846125fd565b5b6000612f9384828501612f5a565b91505092915050565b7f43616e206e6f7420626c6f636b20746f6b656e20636f6e747261637400000000600082015250565b6000612fd2601c83612556565b9150612fdd82612f9c565b602082019050919050565b6000602082019050818103600083015261300181612fc5565b9050919050565b7f43616e206e6f7420626c6f636b20726f75746572000000000000000000000000600082015250565b600061303e601483612556565b915061304982613008565b602082019050919050565b6000602082019050818103600083015261306d81613031565b9050919050565b7f43616e206e6f7420626c6f636b20706169720000000000000000000000000000600082015250565b60006130aa601283612556565b91506130b582613074565b602082019050919050565b600060208201905081810360008301526130d98161309d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061311a82612665565b915061312583612665565b925082613135576131346130e0565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061319c602183612556565b91506131a782613140565b604082019050919050565b600060208201905081810360008301526131cb8161318f565b9050919050565b60006131dd82612665565b91506131e883612665565b9250828203905081811115613200576131ff612bb5565b5b92915050565b7f426f7473206e6f7420616c6c6f776564207472616e7366657273000000000000600082015250565b600061323c601a83612556565b915061324782613206565b602082019050919050565b6000602082019050818103600083015261326b8161322f565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865207478206c60008201527f696d697400000000000000000000000000000000000000000000000000000000602082015250565b60006132ce602483612556565b91506132d982613272565b604082019050919050565b600060208201905081810360008301526132fd816132c1565b9050919050565b600061330f82612665565b915061331a83612665565b925082820190508082111561333257613331612bb5565b5b92915050565b7f5472616e7366657220616d6f756e742065786365656473207468652062616c6160008201527f6e6365206c696d69742e00000000000000000000000000000000000000000000602082015250565b6000613394602a83612556565b915061339f82613338565b604082019050919050565b600060208201905081810360008301526133c381613387565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b600061341e613419613414846133f9565b612a34565b612665565b9050919050565b61342e81613403565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61346981612627565b82525050565b600061347b8383613460565b60208301905092915050565b6000602082019050919050565b600061349f82613434565b6134a9818561343f565b93506134b483613450565b8060005b838110156134e55781516134cc888261346f565b97506134d783613487565b9250506001810190506134b8565b5085935050505092915050565b600060a0820190506135076000830188612842565b6135146020830187613425565b81810360408301526135268186613494565b905061353560608301856129a1565b6135426080830184612842565b9695505050505050565b600081905092915050565b50565b600061356760008361354c565b915061357282613557565b600082019050919050565b60006135888261355a565b9150819050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006135c8601b83612556565b91506135d382613592565b602082019050919050565b600060208201905081810360008301526135f7816135bb565b905091905056fea26469706673582212203f0f12a37091541784e6ce3d22bcd7f3cd04dddd9c7ccfa1c0bb4ffb299af12464736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101a05760003560e01c806370a08231116100ec5780639c0db5f31161008a578063bf677fd611610064578063bf677fd614610563578063d212a69a1461058c578063dd62ed3e146105b8578063f887ea40146105f5576101a7565b80639c0db5f3146104d2578063a8aa1b31146104fb578063a9059cbb14610526576101a7565b80637830b072116100c65780637830b0721461043a578063893d20e8146104655780638a8c523c1461049057806395d89b41146104a7576101a7565b806370a08231146103bd578063715018a6146103fa57806377b54bad14610411576101a7565b8063296914481161015957806351bc3c851161013357806351bc3c8514610339578063616eb638146103505780636c0a24eb146103675780636ddd171314610392576101a7565b806329691448146102ce5780632be0df8b146102e5578063313ce5671461030e576101a7565b806306fdde03146101ac578063095ea7b3146101d75780630b78f9c0146102145780630cefb76f1461023d57806318160ddd1461026657806323b872dd14610291576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610620565b6040516101ce91906125db565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f9919061269b565b61065d565b60405161020b91906126f6565b60405180910390f35b34801561022057600080fd5b5061023b60048036038101906102369190612711565b61074f565b005b34801561024957600080fd5b50610264600480360381019061025f91906127e2565b610800565b005b34801561027257600080fd5b5061027b6108ed565b6040516102889190612851565b60405180910390f35b34801561029d57600080fd5b506102b860048036038101906102b3919061286c565b61090f565b6040516102c591906126f6565b60405180910390f35b3480156102da57600080fd5b506102e3610b0f565b005b3480156102f157600080fd5b5061030c60048036038101906103079190612711565b610b74565b005b34801561031a57600080fd5b50610323610cd4565b60405161033091906128db565b60405180910390f35b34801561034557600080fd5b5061034e610cdd565b005b34801561035c57600080fd5b50610365610d3f565b005b34801561037357600080fd5b5061037c610da8565b6040516103899190612851565b60405180910390f35b34801561039e57600080fd5b506103a7610dae565b6040516103b491906126f6565b60405180910390f35b3480156103c957600080fd5b506103e460048036038101906103df91906128f6565b610dc1565b6040516103f19190612851565b60405180910390f35b34801561040657600080fd5b5061040f610e0a565b005b34801561041d57600080fd5b5061043860048036038101906104339190612961565b610ecd565b005b34801561044657600080fd5b5061044f610fb8565b60405161045c9190612851565b60405180910390f35b34801561047157600080fd5b5061047a610fbe565b60405161048791906129b0565b60405180910390f35b34801561049c57600080fd5b506104a5610fe7565b005b3480156104b357600080fd5b506104bc61104c565b6040516104c991906125db565b60405180910390f35b3480156104de57600080fd5b506104f960048036038101906104f491906127e2565b611089565b005b34801561050757600080fd5b50610510611375565b60405161051d91906129b0565b60405180910390f35b34801561053257600080fd5b5061054d6004803603810190610548919061269b565b611399565b60405161055a91906126f6565b60405180910390f35b34801561056f57600080fd5b5061058a600480360381019061058591906127e2565b6113ae565b005b34801561059857600080fd5b506105a161149b565b6040516105af9291906129cb565b60405180910390f35b3480156105c457600080fd5b506105df60048036038101906105da91906129f4565b6114ad565b6040516105ec9190612851565b60405180910390f35b34801561060157600080fd5b5061060a611534565b6040516106179190612a93565b60405180910390f35b60606040518060400160405280600781526020017f41726173616b6100000000000000000000000000000000000000000000000000815250905090565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161073d9190612851565b60405180910390a36001905092915050565b6107583361161c565b610797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078e90612afa565b60405180910390fd5b600a82111580156107a95750600a8111155b6107e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107df90612b66565b60405180910390fd5b81600860000181905550806008600101819055505050565b6108093361161c565b610848576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083f90612afa565b60405180910390fd5b60005b838390508110156108e757816007600086868581811061086e5761086d612b86565b5b905060200201602081019061088391906128f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108df90612be4565b91505061084b565b50505050565b60006009600a6108fd9190612d5f565b61271061090a9190612daa565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610afb57610a7a826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116759092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b068484846116d9565b90509392505050565b610b183361161c565b610b57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4e90612afa565b60405180910390fd5b6001600a60016101000a81548160ff021916908315150217905550565b610b7d3361161c565b610bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb390612afa565b60405180910390fd5b6001821015610c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf790612e5e565b60405180910390fd5b6001811015610c44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3b90612ef0565b60405180910390fd5b610c846064610c76846009600a610c5b9190612d5f565b612710610c689190612daa565b61155890919063ffffffff16565b6115d290919063ffffffff16565b600181905550610cca6064610cbc836009600a610ca19190612d5f565b612710610cae9190612daa565b61155890919063ffffffff16565b6115d290919063ffffffff16565b6002819055505050565b60006009905090565b7f000000000000000000000000516ee2f7e3ca06efb8a896e5f78fae4dbc7d083873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d3557600080fd5b610d3d611cd6565b565b7f000000000000000000000000516ee2f7e3ca06efb8a896e5f78fae4dbc7d083873ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610da5573d6000803e3d6000fd5b50565b60015481565b600a60019054906101000a900460ff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e133361161c565b610e52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4990612afa565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610ec391906129b0565b60405180910390a1565b610ed63361161c565b610f15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0c90612afa565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f000000000000000000000000516ee2f7e3ca06efb8a896e5f78fae4dbc7d0838836040518363ffffffff1660e01b8152600401610f70929190612f31565b6020604051808303816000875af1158015610f8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb39190612f6f565b505050565b60025481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ff03361161c565b61102f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102690612afa565b60405180910390fd5b6001600a60006101000a81548160ff021916908315150217905550565b60606040518060400160405280600581526020017f2453616b61000000000000000000000000000000000000000000000000000000815250905090565b6110923361161c565b6110d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c890612afa565b60405180910390fd5b60005b8383905081101561136f573073ffffffffffffffffffffffffffffffffffffffff1684848381811061110957611108612b86565b5b905060200201602081019061111e91906128f6565b73ffffffffffffffffffffffffffffffffffffffff1603611174576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116b90612fe8565b60405180910390fd5b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168484838181106111be576111bd612b86565b5b90506020020160208101906111d391906128f6565b73ffffffffffffffffffffffffffffffffffffffff1603611229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122090613054565b60405180910390fd5b7f00000000000000000000000059348acd426e65eaf06a8a21adfb3414e315821a73ffffffffffffffffffffffffffffffffffffffff1684848381811061127357611272612b86565b5b905060200201602081019061128891906128f6565b73ffffffffffffffffffffffffffffffffffffffff16036112de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d5906130c0565b60405180910390fd5b81600560008686858181106112f6576112f5612b86565b5b905060200201602081019061130b91906128f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061136790612be4565b9150506110d4565b50505050565b7f00000000000000000000000059348acd426e65eaf06a8a21adfb3414e315821a81565b60006113a63384846116d9565b905092915050565b6113b73361161c565b6113f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ed90612afa565b60405180910390fd5b60005b8383905081101561149557816006600086868581811061141c5761141b612b86565b5b905060200201602081019061143191906128f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061148d90612be4565b9150506113f9565b50505050565b60088060000154908060010154905082565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b600080830361156a57600090506115cc565b600082846115789190612daa565b9050828482611587919061310f565b146115c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115be906131b2565b60405180910390fd5b809150505b92915050565b600061161483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f9c565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60008383111582906116bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b491906125db565b60405180910390fd5b50600083856116cc91906131d2565b9050809150509392505050565b6000600a60009054906101000a900460ff1680611741575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16145b61174a57600080fd5b600a60029054906101000a900460ff16806117b057507f000000000000000000000000516ee2f7e3ca06efb8a896e5f78fae4dbc7d083873ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16145b156117c7576117c0848484611fff565b9050611ccf565b600a60019054906101000a900460ff1615801561182f57507f00000000000000000000000059348acd426e65eaf06a8a21adfb3414e315821a73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156118855750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118935760009050611ccf565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611920576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191790613252565b60405180910390fd5b600254821115611965576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195c906132e4565b60405180910390fd5b7f00000000000000000000000059348acd426e65eaf06a8a21adfb3414e315821a73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119ef575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a845760015482600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a429190613304565b1115611a83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7a906133aa565b60405180910390fd5b5b611a8d8461219b565b15611a9b57611a9a611cd6565b5b6000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611af55782611b01565b611b00858585612228565b5b9050611b8c836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116759092919063ffffffff16565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c2181600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124a390919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cc19190612851565b60405180910390a360019150505b9392505050565b6001600a60026101000a81548160ff0219169083151502179055506000600254611cff30610dc1565b1015611d2b577f00000000000000000000000000000000000000000000000000000002540be400611d2f565b6002545b9050611d5b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8261065d565b506000600267ffffffffffffffff811115611d7957611d786133ca565b5b604051908082528060200260200182016040528015611da75781602001602082028036833780820191505090505b5090503081600081518110611dbf57611dbe612b86565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611e2257611e21612b86565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ebe9594939291906134f2565b600060405180830381600087803b158015611ed857600080fd5b505af1158015611eec573d6000803e3d6000fd5b5050505060007f000000000000000000000000516ee2f7e3ca06efb8a896e5f78fae4dbc7d083873ffffffffffffffffffffffffffffffffffffffff1647604051611f369061357d565b60006040518083038185875af1925050503d8060008114611f73576040519150601f19603f3d011682016040523d82523d6000602084013e611f78565b606091505b505090505050506000600a60026101000a81548160ff021916908315150217905550565b60008083118290611fe3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fda91906125db565b60405180910390fd5b5060008385611ff2919061310f565b9050809150509392505050565b600061205382600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461250190919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120e882600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124a390919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121889190612851565b60405180910390a3600190509392505050565b60007f00000000000000000000000059348acd426e65eaf06a8a21adfb3414e315821a73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561222157507f00000000000000000000000000000000000000000000000000000002540be40061221e30610dc1565b10155b9050919050565b600080600090507f00000000000000000000000059348acd426e65eaf06a8a21adfb3414e315821a73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156122905750600060086000015414155b1561235c576122c060646122b26008600001548661155890919063ffffffff16565b6115d290919063ffffffff16565b905061231481600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124a390919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612486565b7f00000000000000000000000059348acd426e65eaf06a8a21adfb3414e315821a73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156123bd5750600060086001015414155b15612485576123ed60646123df6008600101548661155890919063ffffffff16565b6115d290919063ffffffff16565b905061244181600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124a390919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b612499818461250190919063ffffffff16565b9150509392505050565b60008082846124b29190613304565b9050838110156124f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ee906135de565b60405180910390fd5b8091505092915050565b600061254383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611675565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561258557808201518184015260208101905061256a565b60008484015250505050565b6000601f19601f8301169050919050565b60006125ad8261254b565b6125b78185612556565b93506125c7818560208601612567565b6125d081612591565b840191505092915050565b600060208201905081810360008301526125f581846125a2565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061263282612607565b9050919050565b61264281612627565b811461264d57600080fd5b50565b60008135905061265f81612639565b92915050565b6000819050919050565b61267881612665565b811461268357600080fd5b50565b6000813590506126958161266f565b92915050565b600080604083850312156126b2576126b16125fd565b5b60006126c085828601612650565b92505060206126d185828601612686565b9150509250929050565b60008115159050919050565b6126f0816126db565b82525050565b600060208201905061270b60008301846126e7565b92915050565b60008060408385031215612728576127276125fd565b5b600061273685828601612686565b925050602061274785828601612686565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f84011261277657612775612751565b5b8235905067ffffffffffffffff81111561279357612792612756565b5b6020830191508360208202830111156127af576127ae61275b565b5b9250929050565b6127bf816126db565b81146127ca57600080fd5b50565b6000813590506127dc816127b6565b92915050565b6000806000604084860312156127fb576127fa6125fd565b5b600084013567ffffffffffffffff81111561281957612818612602565b5b61282586828701612760565b93509350506020612838868287016127cd565b9150509250925092565b61284b81612665565b82525050565b60006020820190506128666000830184612842565b92915050565b600080600060608486031215612885576128846125fd565b5b600061289386828701612650565b93505060206128a486828701612650565b92505060406128b586828701612686565b9150509250925092565b600060ff82169050919050565b6128d5816128bf565b82525050565b60006020820190506128f060008301846128cc565b92915050565b60006020828403121561290c5761290b6125fd565b5b600061291a84828501612650565b91505092915050565b600061292e82612627565b9050919050565b61293e81612923565b811461294957600080fd5b50565b60008135905061295b81612935565b92915050565b60008060408385031215612978576129776125fd565b5b60006129868582860161294c565b925050602061299785828601612686565b9150509250929050565b6129aa81612627565b82525050565b60006020820190506129c560008301846129a1565b92915050565b60006040820190506129e06000830185612842565b6129ed6020830184612842565b9392505050565b60008060408385031215612a0b57612a0a6125fd565b5b6000612a1985828601612650565b9250506020612a2a85828601612650565b9150509250929050565b6000819050919050565b6000612a59612a54612a4f84612607565b612a34565b612607565b9050919050565b6000612a6b82612a3e565b9050919050565b6000612a7d82612a60565b9050919050565b612a8d81612a72565b82525050565b6000602082019050612aa86000830184612a84565b92915050565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000612ae4600683612556565b9150612aef82612aae565b602082019050919050565b60006020820190508181036000830152612b1381612ad7565b9050919050565b7f4d61782066656520616c6c6f7765642069732031302500000000000000000000600082015250565b6000612b50601683612556565b9150612b5b82612b1a565b602082019050919050565b60006020820190508181036000830152612b7f81612b43565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612bef82612665565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c2157612c20612bb5565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b6001851115612c8357808604811115612c5f57612c5e612bb5565b5b6001851615612c6e5780820291505b8081029050612c7c85612c2c565b9450612c43565b94509492505050565b600082612c9c5760019050612d58565b81612caa5760009050612d58565b8160018114612cc05760028114612cca57612cf9565b6001915050612d58565b60ff841115612cdc57612cdb612bb5565b5b8360020a915084821115612cf357612cf2612bb5565b5b50612d58565b5060208310610133831016604e8410600b8410161715612d2e5782820a905083811115612d2957612d28612bb5565b5b612d58565b612d3b8484846001612c39565b92509050818404811115612d5257612d51612bb5565b5b81810290505b9392505050565b6000612d6a82612665565b9150612d75836128bf565b9250612da27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612c8c565b905092915050565b6000612db582612665565b9150612dc083612665565b9250828202612dce81612665565b91508282048414831517612de557612de4612bb5565b5b5092915050565b7f77616c6c6574206c696d6974206d757368206265206e6f74206c65737320746860008201527f616e20312070657263656e740000000000000000000000000000000000000000602082015250565b6000612e48602c83612556565b9150612e5382612dec565b604082019050919050565b60006020820190508181036000830152612e7781612e3b565b9050919050565b7f4d617820747820616d6f756e74206d757374206e6f74206265206c657373207460008201527f68616e20312070657263656e7400000000000000000000000000000000000000602082015250565b6000612eda602d83612556565b9150612ee582612e7e565b604082019050919050565b60006020820190508181036000830152612f0981612ecd565b9050919050565b6000612f1b82612a60565b9050919050565b612f2b81612f10565b82525050565b6000604082019050612f466000830185612f22565b612f536020830184612842565b9392505050565b600081519050612f69816127b6565b92915050565b600060208284031215612f8557612f846125fd565b5b6000612f9384828501612f5a565b91505092915050565b7f43616e206e6f7420626c6f636b20746f6b656e20636f6e747261637400000000600082015250565b6000612fd2601c83612556565b9150612fdd82612f9c565b602082019050919050565b6000602082019050818103600083015261300181612fc5565b9050919050565b7f43616e206e6f7420626c6f636b20726f75746572000000000000000000000000600082015250565b600061303e601483612556565b915061304982613008565b602082019050919050565b6000602082019050818103600083015261306d81613031565b9050919050565b7f43616e206e6f7420626c6f636b20706169720000000000000000000000000000600082015250565b60006130aa601283612556565b91506130b582613074565b602082019050919050565b600060208201905081810360008301526130d98161309d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061311a82612665565b915061312583612665565b925082613135576131346130e0565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061319c602183612556565b91506131a782613140565b604082019050919050565b600060208201905081810360008301526131cb8161318f565b9050919050565b60006131dd82612665565b91506131e883612665565b9250828203905081811115613200576131ff612bb5565b5b92915050565b7f426f7473206e6f7420616c6c6f776564207472616e7366657273000000000000600082015250565b600061323c601a83612556565b915061324782613206565b602082019050919050565b6000602082019050818103600083015261326b8161322f565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865207478206c60008201527f696d697400000000000000000000000000000000000000000000000000000000602082015250565b60006132ce602483612556565b91506132d982613272565b604082019050919050565b600060208201905081810360008301526132fd816132c1565b9050919050565b600061330f82612665565b915061331a83612665565b925082820190508082111561333257613331612bb5565b5b92915050565b7f5472616e7366657220616d6f756e742065786365656473207468652062616c6160008201527f6e6365206c696d69742e00000000000000000000000000000000000000000000602082015250565b6000613394602a83612556565b915061339f82613338565b604082019050919050565b600060208201905081810360008301526133c381613387565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b600061341e613419613414846133f9565b612a34565b612665565b9050919050565b61342e81613403565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61346981612627565b82525050565b600061347b8383613460565b60208301905092915050565b6000602082019050919050565b600061349f82613434565b6134a9818561343f565b93506134b483613450565b8060005b838110156134e55781516134cc888261346f565b97506134d783613487565b9250506001810190506134b8565b5085935050505092915050565b600060a0820190506135076000830188612842565b6135146020830187613425565b81810360408301526135268186613494565b905061353560608301856129a1565b6135426080830184612842565b9695505050505050565b600081905092915050565b50565b600061356760008361354c565b915061357282613557565b600082019050919050565b60006135888261355a565b9150819050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006135c8601b83612556565b91506135d382613592565b602082019050919050565b600060208201905081810360008301526135f7816135bb565b905091905056fea26469706673582212203f0f12a37091541784e6ce3d22bcd7f3cd04dddd9c7ccfa1c0bb4ffb299af12464736f6c63430008110033

Deployed Bytecode Sourcemap

3177:8315:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3495:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5862:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9390:233;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9631:223;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3252:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6232:359;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11019:78;;;;;;;;;;;;;:::i;:::-;;10585:425;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3337:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11105:105;;;;;;;;;;;;;:::i;:::-;;11219:100;;;;;;;;;;;;;:::i;:::-;;4430:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5142:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3647:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2502:131;;;;;;;;;;;;;:::i;:::-;;11327:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4502:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3572:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10072:84;;;;;;;;;;;;;:::i;:::-;;3414:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10168:409;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5038:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6077:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9866:198;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4810:75;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;3749:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4989:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3495:71;3534:13;3558:5;;;;;;;;;;;;;;;;;3551:12;;3495:71;:::o;5862:207::-;5928:4;5980:6;5945:11;:23;5957:10;5945:23;;;;;;;;;;;;;;;:32;5969:7;5945:32;;;;;;;;;;;;;;;:41;;;;6023:7;6002:37;;6011:10;6002:37;;;6032:6;6002:37;;;;;;:::i;:::-;;;;;;;;6057:4;6050:11;;5862:207;;;;:::o;9390:233::-;2340:19;2348:10;2340:7;:19::i;:::-;2332:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;9491:2:::1;9480:7;:13;;:31;;;;;9509:2;9497:8;:14;;9480:31;9472:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;9564:7;9549:5;:12;;:22;;;;9599:8;9583:5;:13;;:24;;;;9390:233:::0;;:::o;9631:223::-;2340:19;2348:10;2340:7;:19::i;:::-;2332:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;9742:9:::1;9738:109;9761:7;;:14;;9757:1;:18;9738:109;;;9823:12;9797:11;:23;9809:7;;9817:1;9809:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;9797:23;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;9777:3;;;;;:::i;:::-;;;;9738:109;;;;9631:223:::0;;;:::o;3252:79::-;3298:7;4354:1;4406:2;:15;;;;:::i;:::-;4396:6;:26;;;;:::i;:::-;3309:19;;3252:79;:::o;6232:359::-;6323:4;6378:17;6343:11;:19;6355:6;6343:19;;;;;;;;;;;;;;;:31;6363:10;6343:31;;;;;;;;;;;;;;;;:52;6340:186;;6445:69;6481:6;6445:69;;;;;;;;;;;;;;;;;:11;:19;6457:6;6445:19;;;;;;;;;;;;;;;:31;6465:10;6445:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;6411:11;:19;6423:6;6411:19;;;;;;;;;;;;;;;:31;6431:10;6411:31;;;;;;;;;;;;;;;:103;;;;6340:186;6543:40;6557:6;6565:9;6576:6;6543:13;:40::i;:::-;6536:47;;6232:359;;;;;:::o;11019:78::-;2340:19;2348:10;2340:7;:19::i;:::-;2332:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11085:4:::1;11071:11;;:18;;;;;;;;;;;;;;;;;;11019:78::o:0;10585:425::-;2340:19;2348:10;2340:7;:19::i;:::-;2332:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;10730:1:::1;10709:17;:22;;10701:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;10815:1;10798:13;:18;;10790:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;10898:44;10938:3;10898:35;10915:17;4354:1;4406:2;:15;;;;:::i;:::-;4396:6;:26;;;;:::i;:::-;10898:16;;:35;;;;:::i;:::-;:39;;:44;;;;:::i;:::-;10879:16;:63;;;;10962:40;10998:3;10962:31;10979:13;4354:1;4406:2;:15;;;;:::i;:::-;4396:6;:26;;;;:::i;:::-;10962:16;;:31;;;;:::i;:::-;:35;;:40;;;;:::i;:::-;10953:6;:49;;;;10585:425:::0;;:::o;3337:71::-;3380:5;4354:1;3389:16;;3337:71;:::o;11105:105::-;11169:11;11155:25;;:10;:25;;;11147:34;;;;;;11192:10;:8;:10::i;:::-;11105:105::o;11219:100::-;11267:11;11259:29;;:52;11289:21;11259:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11219:100::o;4430:64::-;;;;:::o;5142:31::-;;;;;;;;;;;;;:::o;3647:96::-;3704:7;3722:9;:18;3732:7;3722:18;;;;;;;;;;;;;;;;3715:25;;3647:96;;;:::o;2502:131::-;2340:19;2348:10;2340:7;:19::i;:::-;2332:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;2575:1:::1;2559:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;2593:32;2622:1;2593:32;;;;;;:::i;:::-;;;;;;;;2502:131::o:0;11327:125::-;2340:19;2348:10;2340:7;:19::i;:::-;2332:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11410:5:::1;:14;;;11425:11;11438:5;11410:34;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11327:125:::0;;:::o;4502:54::-;;;;:::o;3572:69::-;3615:7;3633:5;;;;;;;;;;;3626:12;;3572:69;:::o;10072:84::-;2340:19;2348:10;2340:7;:19::i;:::-;2332:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;10144:4:::1;10127:14;;:21;;;;;;;;;;;;;;;;;;10072:84::o:0;3414:75::-;3455:13;3479:7;;;;;;;;;;;;;;;;;3472:14;;3414:75;:::o;10168:409::-;2340:19;2348:10;2340:7;:19::i;:::-;2332:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;10258:9:::1;10253:317;10277:4;;:11;;10273:1;:15;10253:317;;;10337:4;10318:24;;:4;;10323:1;10318:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;:24;;::::0;10310:65:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;10417:6;10398:26;;:4;;10403:1;10398:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;:26;;::::0;10390:59:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;10491:4;10472:24;;:4;;10477:1;10472:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;:24;;::::0;10464:55:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;10551:6;10534:5;:14;10540:4;;10545:1;10540:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10534:14;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10290:3;;;;;:::i;:::-;;;;10253:317;;;;10168:409:::0;;;:::o;5038:29::-;;;:::o;6077:147::-;6148:4;6172:44;6186:10;6198:9;6209:6;6172:13;:44::i;:::-;6165:51;;6077:147;;;;:::o;9866:198::-;2340:19;2348:10;2340:7;:19::i;:::-;2332:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;9963:9:::1;9958:99;9982:4;;:11;;9978:1;:15;9958:99;;;10035:9;10015:8;:17;10024:4;;10029:1;10024:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10015:17;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;9995:3;;;;;:::i;:::-;;;;9958:99;;;;9866:198:::0;;;:::o;4810:75::-;;;;;;;;;;;;;;:::o;3749:124::-;3824:7;3842:11;:19;3854:6;3842:19;;;;;;;;;;;;;;;:28;3862:7;3842:28;;;;;;;;;;;;;;;;3835:35;;3749:124;;;;:::o;4989:42::-;;;:::o;668:246::-;726:7;755:1;750;:6;746:47;;780:1;773:8;;;;746:47;803:9;819:1;815;:5;;;;:::i;:::-;803:17;;848:1;843;839;:5;;;;:::i;:::-;:10;831:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;905:1;898:8;;;668:246;;;;;:::o;920:132::-;978:7;1005:39;1009:1;1012;1005:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;998:46;;920:132;;;;:::o;2390:104::-;2446:4;2481:5;;;;;;;;;;;2470:16;;:7;:16;;;2463:23;;2390:104;;;:::o;472:190::-;558:7;591:1;586;:6;;594:12;578:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;618:9;634:1;630;:5;;;;:::i;:::-;618:17;;653:1;646:8;;;472:190;;;;;:::o;6599:1083::-;6701:4;5694:14;;;;;;;;;;;:36;;;;5725:5;;;;;;;;;;5712:18;;:9;:18;;;5694:36;5686:45;;;;;;6721:6:::1;;;;;;;;;;;:34;;;;6744:11;6731:24;;:9;:24;;;6721:34;6718:216;;;6777:40;6791:6;6799:9;6810:6;6777:13;:40::i;:::-;6770:47;;;;6718:216;6838:11;;;;;;;;;;;6837:12;:32;;;;;6864:4;6854:14;;:6;:14;;;6837:32;:56;;;;;6874:8;:19;6883:9;6874:19;;;;;;;;;;;;;;;;;;;;;;;;;6873:20;6837:56;6833:101;;;6917:5;6910:12;;;;6833:101;6955:5;:13;6961:6;6955:13;;;;;;;;;;;;;;;;;;;;;;;;;6954:14;6946:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;7028:6;;7018;:16;;7010:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;7113:4;7100:17;;:9;:17;;;;:38;;;;;4152:42;7121:17;;:9;:17;;;;7100:38;7096:175;;;7196:16;;7186:6;7163:9;:20;7173:9;7163:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:49;;7155:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;7096:175;7286:18;7297:6;7286:10;:18::i;:::-;7283:46;;;7319:10;:8;:10::i;:::-;7283:46;7342:22;7368:11;:19;7380:6;7368:19;;;;;;;;;;;;;;;;;;;;;;;;;7367:20;:66;;7427:6;7367:66;;;7390:34;7398:6;7406:9;7417:6;7390:7;:34::i;:::-;7367:66;7342:91;;7466:53;7488:6;7466:53;;;;;;;;;;;;;;;;::::0;:9:::1;:17;7476:6;7466:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;7446:9;:17;7456:6;7446:17;;;;;;;;;;;;;;;:73;;;;7553:40;7578:14;7553:9;:20;7563:9;7553:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;7530:9;:20;7540:9;7530:20;;;;;;;;;;;;;;;:63;;;;7626:9;7609:43;;7618:6;7609:43;;;7637:14;7609:43;;;;;;:::i;:::-;;;;;;;;7670:4;7663:11;;;5750:1;6599:1083:::0;;;;;:::o;7844:583::-;5805:4;5796:6;;:13;;;;;;;;;;;;;;;;;;7893:20:::1;7944:6;;7916:24;7934:4;7916:9;:24::i;:::-;:34;;:55;;7962:9;7916:55;;;7953:6;;7916:55;7893:78;;7982:38;7998:6;8007:12;7982:7;:38::i;:::-;;8031:21;8069:1;8055:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8031:40;;8100:4;8082;8087:1;8082:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;4071:42;8116:4;8121:1;8116:7;;;;;;;;:::i;:::-;;;;;;;:13;;;;;;;;;::::0;::::1;8142:6;:57;;;8214:12;8241:1;8257:4;8284;8304:15;8142:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8342:12;8360:11;:16;;8384:21;8360:50;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8341:69;;;7882:545;;;5841:5:::0;5832:6;;:14;;;;;;;;;;;;;;;;;;7844:583::o;1058:189::-;1144:7;1176:1;1172;:5;1179:12;1164:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1203:9;1219:1;1215;:5;;;;:::i;:::-;1203:17;;1238:1;1231:8;;;1058:189;;;;;:::o;9077:305::-;9169:4;9206:29;9228:6;9206:9;:17;9216:6;9206:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;9186:9;:17;9196:6;9186:17;;;;;;;;;;;;;;;:49;;;;9269:32;9294:6;9269:9;:20;9279:9;9269:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;9246:9;:20;9256:9;9246:20;;;;;;;;;;;;;;;:55;;;;9334:9;9317:35;;9326:6;9317:35;;;9345:6;9317:35;;;;;;:::i;:::-;;;;;;;;9370:4;9363:11;;9077:305;;;;;:::o;7690:146::-;7749:4;7783;7773:14;;:6;:14;;;;:55;;;;;7819:9;7791:24;7809:4;7791:9;:24::i;:::-;:37;;7773:55;7766:62;;7690:146;;;:::o;8439:630::-;8525:7;8545:17;8565:1;8545:21;;8591:4;8581:14;;:6;:14;;;:35;;;;;8615:1;8599:5;:12;;;:17;;8581:35;8577:446;;;8662:44;4928:3;8662:24;8673:5;:12;;;8662:6;:10;;:24;;;;:::i;:::-;:28;;:44;;;;:::i;:::-;8650:56;;8748:39;8777:9;8748;:24;8766:4;8748:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;8721:9;:24;8739:4;8721:24;;;;;;;;;;;;;;;:66;;;;8577:446;;;8822:4;8809:17;;:9;:17;;;:39;;;;;8847:1;8830:5;:13;;;:18;;8809:39;8805:218;;;8885:45;4928:3;8885:25;8896:5;:13;;;8885:6;:10;;:25;;;;:::i;:::-;:29;;:45;;;;:::i;:::-;8873:57;;8972:39;9001:9;8972;:24;8990:4;8972:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;8945:9;:24;8963:4;8945:24;;;;;;;;;;;;;;;:66;;;;8805:218;8577:446;9040:21;9051:9;9040:6;:10;;:21;;;;:::i;:::-;9033:28;;;8439:630;;;;;:::o;145:179::-;203:7;223:9;239:1;235;:5;;;;:::i;:::-;223:17;;264:1;259;:6;;251:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;315:1;308:8;;;145:179;;;;:::o;330:136::-;388:7;415:43;419:1;422;415:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;408:50;;330:136;;;;:::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:474::-;3514:6;3522;3571:2;3559:9;3550:7;3546:23;3542:32;3539:119;;;3577:79;;:::i;:::-;3539:119;3697:1;3722:53;3767:7;3758:6;3747:9;3743:22;3722:53;:::i;:::-;3712:63;;3668:117;3824:2;3850:53;3895:7;3886:6;3875:9;3871:22;3850:53;:::i;:::-;3840:63;;3795:118;3446:474;;;;;:::o;3926:117::-;4035:1;4032;4025:12;4049:117;4158:1;4155;4148:12;4172:117;4281:1;4278;4271:12;4312:568;4385:8;4395:6;4445:3;4438:4;4430:6;4426:17;4422:27;4412:122;;4453:79;;:::i;:::-;4412:122;4566:6;4553:20;4543:30;;4596:18;4588:6;4585:30;4582:117;;;4618:79;;:::i;:::-;4582:117;4732:4;4724:6;4720:17;4708:29;;4786:3;4778:4;4770:6;4766:17;4756:8;4752:32;4749:41;4746:128;;;4793:79;;:::i;:::-;4746:128;4312:568;;;;;:::o;4886:116::-;4956:21;4971:5;4956:21;:::i;:::-;4949:5;4946:32;4936:60;;4992:1;4989;4982:12;4936:60;4886:116;:::o;5008:133::-;5051:5;5089:6;5076:20;5067:29;;5105:30;5129:5;5105:30;:::i;:::-;5008:133;;;;:::o;5147:698::-;5239:6;5247;5255;5304:2;5292:9;5283:7;5279:23;5275:32;5272:119;;;5310:79;;:::i;:::-;5272:119;5458:1;5447:9;5443:17;5430:31;5488:18;5480:6;5477:30;5474:117;;;5510:79;;:::i;:::-;5474:117;5623:80;5695:7;5686:6;5675:9;5671:22;5623:80;:::i;:::-;5605:98;;;;5401:312;5752:2;5778:50;5820:7;5811:6;5800:9;5796:22;5778:50;:::i;:::-;5768:60;;5723:115;5147:698;;;;;:::o;5851:118::-;5938:24;5956:5;5938:24;:::i;:::-;5933:3;5926:37;5851:118;;:::o;5975:222::-;6068:4;6106:2;6095:9;6091:18;6083:26;;6119:71;6187:1;6176:9;6172:17;6163:6;6119:71;:::i;:::-;5975:222;;;;:::o;6203:619::-;6280:6;6288;6296;6345:2;6333:9;6324:7;6320:23;6316:32;6313:119;;;6351:79;;:::i;:::-;6313:119;6471:1;6496:53;6541:7;6532:6;6521:9;6517:22;6496:53;:::i;:::-;6486:63;;6442:117;6598:2;6624:53;6669:7;6660:6;6649:9;6645:22;6624:53;:::i;:::-;6614:63;;6569:118;6726:2;6752:53;6797:7;6788:6;6777:9;6773:22;6752:53;:::i;:::-;6742:63;;6697:118;6203:619;;;;;:::o;6828:86::-;6863:7;6903:4;6896:5;6892:16;6881:27;;6828:86;;;:::o;6920:112::-;7003:22;7019:5;7003:22;:::i;:::-;6998:3;6991:35;6920:112;;:::o;7038:214::-;7127:4;7165:2;7154:9;7150:18;7142:26;;7178:67;7242:1;7231:9;7227:17;7218:6;7178:67;:::i;:::-;7038:214;;;;:::o;7258:329::-;7317:6;7366:2;7354:9;7345:7;7341:23;7337:32;7334:119;;;7372:79;;:::i;:::-;7334:119;7492:1;7517:53;7562:7;7553:6;7542:9;7538:22;7517:53;:::i;:::-;7507:63;;7463:117;7258:329;;;;:::o;7593:109::-;7643:7;7672:24;7690:5;7672:24;:::i;:::-;7661:35;;7593:109;;;:::o;7708:148::-;7794:37;7825:5;7794:37;:::i;:::-;7787:5;7784:48;7774:76;;7846:1;7843;7836:12;7774:76;7708:148;:::o;7862:165::-;7921:5;7959:6;7946:20;7937:29;;7975:46;8015:5;7975:46;:::i;:::-;7862:165;;;;:::o;8033:500::-;8114:6;8122;8171:2;8159:9;8150:7;8146:23;8142:32;8139:119;;;8177:79;;:::i;:::-;8139:119;8297:1;8322:66;8380:7;8371:6;8360:9;8356:22;8322:66;:::i;:::-;8312:76;;8268:130;8437:2;8463:53;8508:7;8499:6;8488:9;8484:22;8463:53;:::i;:::-;8453:63;;8408:118;8033:500;;;;;:::o;8539:118::-;8626:24;8644:5;8626:24;:::i;:::-;8621:3;8614:37;8539:118;;:::o;8663:222::-;8756:4;8794:2;8783:9;8779:18;8771:26;;8807:71;8875:1;8864:9;8860:17;8851:6;8807:71;:::i;:::-;8663:222;;;;:::o;8891:332::-;9012:4;9050:2;9039:9;9035:18;9027:26;;9063:71;9131:1;9120:9;9116:17;9107:6;9063:71;:::i;:::-;9144:72;9212:2;9201:9;9197:18;9188:6;9144:72;:::i;:::-;8891:332;;;;;:::o;9229:474::-;9297:6;9305;9354:2;9342:9;9333:7;9329:23;9325:32;9322:119;;;9360:79;;:::i;:::-;9322:119;9480:1;9505:53;9550:7;9541:6;9530:9;9526:22;9505:53;:::i;:::-;9495:63;;9451:117;9607:2;9633:53;9678:7;9669:6;9658:9;9654:22;9633:53;:::i;:::-;9623:63;;9578:118;9229:474;;;;;:::o;9709:60::-;9737:3;9758:5;9751:12;;9709:60;;;:::o;9775:142::-;9825:9;9858:53;9876:34;9885:24;9903:5;9885:24;:::i;:::-;9876:34;:::i;:::-;9858:53;:::i;:::-;9845:66;;9775:142;;;:::o;9923:126::-;9973:9;10006:37;10037:5;10006:37;:::i;:::-;9993:50;;9923:126;;;:::o;10055:152::-;10131:9;10164:37;10195:5;10164:37;:::i;:::-;10151:50;;10055:152;;;:::o;10213:183::-;10326:63;10383:5;10326:63;:::i;:::-;10321:3;10314:76;10213:183;;:::o;10402:274::-;10521:4;10559:2;10548:9;10544:18;10536:26;;10572:97;10666:1;10655:9;10651:17;10642:6;10572:97;:::i;:::-;10402:274;;;;:::o;10682:156::-;10822:8;10818:1;10810:6;10806:14;10799:32;10682:156;:::o;10844:365::-;10986:3;11007:66;11071:1;11066:3;11007:66;:::i;:::-;11000:73;;11082:93;11171:3;11082:93;:::i;:::-;11200:2;11195:3;11191:12;11184:19;;10844:365;;;:::o;11215:419::-;11381:4;11419:2;11408:9;11404:18;11396:26;;11468:9;11462:4;11458:20;11454:1;11443:9;11439:17;11432:47;11496:131;11622:4;11496:131;:::i;:::-;11488:139;;11215:419;;;:::o;11640:172::-;11780:24;11776:1;11768:6;11764:14;11757:48;11640:172;:::o;11818:366::-;11960:3;11981:67;12045:2;12040:3;11981:67;:::i;:::-;11974:74;;12057:93;12146:3;12057:93;:::i;:::-;12175:2;12170:3;12166:12;12159:19;;11818:366;;;:::o;12190:419::-;12356:4;12394:2;12383:9;12379:18;12371:26;;12443:9;12437:4;12433:20;12429:1;12418:9;12414:17;12407:47;12471:131;12597:4;12471:131;:::i;:::-;12463:139;;12190:419;;;:::o;12615:180::-;12663:77;12660:1;12653:88;12760:4;12757:1;12750:15;12784:4;12781:1;12774:15;12801:180;12849:77;12846:1;12839:88;12946:4;12943:1;12936:15;12970:4;12967:1;12960:15;12987:233;13026:3;13049:24;13067:5;13049:24;:::i;:::-;13040:33;;13095:66;13088:5;13085:77;13082:103;;13165:18;;:::i;:::-;13082:103;13212:1;13205:5;13201:13;13194:20;;12987:233;;;:::o;13226:102::-;13268:8;13315:5;13312:1;13308:13;13287:34;;13226:102;;;:::o;13334:848::-;13395:5;13402:4;13426:6;13417:15;;13450:5;13441:14;;13464:712;13485:1;13475:8;13472:15;13464:712;;;13580:4;13575:3;13571:14;13565:4;13562:24;13559:50;;;13589:18;;:::i;:::-;13559:50;13639:1;13629:8;13625:16;13622:451;;;14054:4;14047:5;14043:16;14034:25;;13622:451;14104:4;14098;14094:15;14086:23;;14134:32;14157:8;14134:32;:::i;:::-;14122:44;;13464:712;;;13334:848;;;;;;;:::o;14188:1073::-;14242:5;14433:8;14423:40;;14454:1;14445:10;;14456:5;;14423:40;14482:4;14472:36;;14499:1;14490:10;;14501:5;;14472:36;14568:4;14616:1;14611:27;;;;14652:1;14647:191;;;;14561:277;;14611:27;14629:1;14620:10;;14631:5;;;14647:191;14692:3;14682:8;14679:17;14676:43;;;14699:18;;:::i;:::-;14676:43;14748:8;14745:1;14741:16;14732:25;;14783:3;14776:5;14773:14;14770:40;;;14790:18;;:::i;:::-;14770:40;14823:5;;;14561:277;;14947:2;14937:8;14934:16;14928:3;14922:4;14919:13;14915:36;14897:2;14887:8;14884:16;14879:2;14873:4;14870:12;14866:35;14850:111;14847:246;;;15003:8;14997:4;14993:19;14984:28;;15038:3;15031:5;15028:14;15025:40;;;15045:18;;:::i;:::-;15025:40;15078:5;;14847:246;15118:42;15156:3;15146:8;15140:4;15137:1;15118:42;:::i;:::-;15103:57;;;;15192:4;15187:3;15183:14;15176:5;15173:25;15170:51;;;15201:18;;:::i;:::-;15170:51;15250:4;15243:5;15239:16;15230:25;;14188:1073;;;;;;:::o;15267:281::-;15325:5;15349:23;15367:4;15349:23;:::i;:::-;15341:31;;15393:25;15409:8;15393:25;:::i;:::-;15381:37;;15437:104;15474:66;15464:8;15458:4;15437:104;:::i;:::-;15428:113;;15267:281;;;;:::o;15554:410::-;15594:7;15617:20;15635:1;15617:20;:::i;:::-;15612:25;;15651:20;15669:1;15651:20;:::i;:::-;15646:25;;15706:1;15703;15699:9;15728:30;15746:11;15728:30;:::i;:::-;15717:41;;15907:1;15898:7;15894:15;15891:1;15888:22;15868:1;15861:9;15841:83;15818:139;;15937:18;;:::i;:::-;15818:139;15602:362;15554:410;;;;:::o;15970:231::-;16110:34;16106:1;16098:6;16094:14;16087:58;16179:14;16174:2;16166:6;16162:15;16155:39;15970:231;:::o;16207:366::-;16349:3;16370:67;16434:2;16429:3;16370:67;:::i;:::-;16363:74;;16446:93;16535:3;16446:93;:::i;:::-;16564:2;16559:3;16555:12;16548:19;;16207:366;;;:::o;16579:419::-;16745:4;16783:2;16772:9;16768:18;16760:26;;16832:9;16826:4;16822:20;16818:1;16807:9;16803:17;16796:47;16860:131;16986:4;16860:131;:::i;:::-;16852:139;;16579:419;;;:::o;17004:232::-;17144:34;17140:1;17132:6;17128:14;17121:58;17213:15;17208:2;17200:6;17196:15;17189:40;17004:232;:::o;17242:366::-;17384:3;17405:67;17469:2;17464:3;17405:67;:::i;:::-;17398:74;;17481:93;17570:3;17481:93;:::i;:::-;17599:2;17594:3;17590:12;17583:19;;17242:366;;;:::o;17614:419::-;17780:4;17818:2;17807:9;17803:18;17795:26;;17867:9;17861:4;17857:20;17853:1;17842:9;17838:17;17831:47;17895:131;18021:4;17895:131;:::i;:::-;17887:139;;17614:419;;;:::o;18039:134::-;18097:9;18130:37;18161:5;18130:37;:::i;:::-;18117:50;;18039:134;;;:::o;18179:147::-;18274:45;18313:5;18274:45;:::i;:::-;18269:3;18262:58;18179:147;;:::o;18332:348::-;18461:4;18499:2;18488:9;18484:18;18476:26;;18512:79;18588:1;18577:9;18573:17;18564:6;18512:79;:::i;:::-;18601:72;18669:2;18658:9;18654:18;18645:6;18601:72;:::i;:::-;18332:348;;;;;:::o;18686:137::-;18740:5;18771:6;18765:13;18756:22;;18787:30;18811:5;18787:30;:::i;:::-;18686:137;;;;:::o;18829:345::-;18896:6;18945:2;18933:9;18924:7;18920:23;18916:32;18913:119;;;18951:79;;:::i;:::-;18913:119;19071:1;19096:61;19149:7;19140:6;19129:9;19125:22;19096:61;:::i;:::-;19086:71;;19042:125;18829:345;;;;:::o;19180:178::-;19320:30;19316:1;19308:6;19304:14;19297:54;19180:178;:::o;19364:366::-;19506:3;19527:67;19591:2;19586:3;19527:67;:::i;:::-;19520:74;;19603:93;19692:3;19603:93;:::i;:::-;19721:2;19716:3;19712:12;19705:19;;19364:366;;;:::o;19736:419::-;19902:4;19940:2;19929:9;19925:18;19917:26;;19989:9;19983:4;19979:20;19975:1;19964:9;19960:17;19953:47;20017:131;20143:4;20017:131;:::i;:::-;20009:139;;19736:419;;;:::o;20161:170::-;20301:22;20297:1;20289:6;20285:14;20278:46;20161:170;:::o;20337:366::-;20479:3;20500:67;20564:2;20559:3;20500:67;:::i;:::-;20493:74;;20576:93;20665:3;20576:93;:::i;:::-;20694:2;20689:3;20685:12;20678:19;;20337:366;;;:::o;20709:419::-;20875:4;20913:2;20902:9;20898:18;20890:26;;20962:9;20956:4;20952:20;20948:1;20937:9;20933:17;20926:47;20990:131;21116:4;20990:131;:::i;:::-;20982:139;;20709:419;;;:::o;21134:168::-;21274:20;21270:1;21262:6;21258:14;21251:44;21134:168;:::o;21308:366::-;21450:3;21471:67;21535:2;21530:3;21471:67;:::i;:::-;21464:74;;21547:93;21636:3;21547:93;:::i;:::-;21665:2;21660:3;21656:12;21649:19;;21308:366;;;:::o;21680:419::-;21846:4;21884:2;21873:9;21869:18;21861:26;;21933:9;21927:4;21923:20;21919:1;21908:9;21904:17;21897:47;21961:131;22087:4;21961:131;:::i;:::-;21953:139;;21680:419;;;:::o;22105:180::-;22153:77;22150:1;22143:88;22250:4;22247:1;22240:15;22274:4;22271:1;22264:15;22291:185;22331:1;22348:20;22366:1;22348:20;:::i;:::-;22343:25;;22382:20;22400:1;22382:20;:::i;:::-;22377:25;;22421:1;22411:35;;22426:18;;:::i;:::-;22411:35;22468:1;22465;22461:9;22456:14;;22291:185;;;;:::o;22482:220::-;22622:34;22618:1;22610:6;22606:14;22599:58;22691:3;22686:2;22678:6;22674:15;22667:28;22482:220;:::o;22708:366::-;22850:3;22871:67;22935:2;22930:3;22871:67;:::i;:::-;22864:74;;22947:93;23036:3;22947:93;:::i;:::-;23065:2;23060:3;23056:12;23049:19;;22708:366;;;:::o;23080:419::-;23246:4;23284:2;23273:9;23269:18;23261:26;;23333:9;23327:4;23323:20;23319:1;23308:9;23304:17;23297:47;23361:131;23487:4;23361:131;:::i;:::-;23353:139;;23080:419;;;:::o;23505:194::-;23545:4;23565:20;23583:1;23565:20;:::i;:::-;23560:25;;23599:20;23617:1;23599:20;:::i;:::-;23594:25;;23643:1;23640;23636:9;23628:17;;23667:1;23661:4;23658:11;23655:37;;;23672:18;;:::i;:::-;23655:37;23505:194;;;;:::o;23705:176::-;23845:28;23841:1;23833:6;23829:14;23822:52;23705:176;:::o;23887:366::-;24029:3;24050:67;24114:2;24109:3;24050:67;:::i;:::-;24043:74;;24126:93;24215:3;24126:93;:::i;:::-;24244:2;24239:3;24235:12;24228:19;;23887:366;;;:::o;24259:419::-;24425:4;24463:2;24452:9;24448:18;24440:26;;24512:9;24506:4;24502:20;24498:1;24487:9;24483:17;24476:47;24540:131;24666:4;24540:131;:::i;:::-;24532:139;;24259:419;;;:::o;24684:223::-;24824:34;24820:1;24812:6;24808:14;24801:58;24893:6;24888:2;24880:6;24876:15;24869:31;24684:223;:::o;24913:366::-;25055:3;25076:67;25140:2;25135:3;25076:67;:::i;:::-;25069:74;;25152:93;25241:3;25152:93;:::i;:::-;25270:2;25265:3;25261:12;25254:19;;24913:366;;;:::o;25285:419::-;25451:4;25489:2;25478:9;25474:18;25466:26;;25538:9;25532:4;25528:20;25524:1;25513:9;25509:17;25502:47;25566:131;25692:4;25566:131;:::i;:::-;25558:139;;25285:419;;;:::o;25710:191::-;25750:3;25769:20;25787:1;25769:20;:::i;:::-;25764:25;;25803:20;25821:1;25803:20;:::i;:::-;25798:25;;25846:1;25843;25839:9;25832:16;;25867:3;25864:1;25861:10;25858:36;;;25874:18;;:::i;:::-;25858:36;25710:191;;;;:::o;25907:229::-;26047:34;26043:1;26035:6;26031:14;26024:58;26116:12;26111:2;26103:6;26099:15;26092:37;25907:229;:::o;26142:366::-;26284:3;26305:67;26369:2;26364:3;26305:67;:::i;:::-;26298:74;;26381:93;26470:3;26381:93;:::i;:::-;26499:2;26494:3;26490:12;26483:19;;26142:366;;;:::o;26514:419::-;26680:4;26718:2;26707:9;26703:18;26695:26;;26767:9;26761:4;26757:20;26753:1;26742:9;26738:17;26731:47;26795:131;26921:4;26795:131;:::i;:::-;26787:139;;26514:419;;;:::o;26939:180::-;26987:77;26984:1;26977:88;27084:4;27081:1;27074:15;27108:4;27105:1;27098:15;27125:85;27170:7;27199:5;27188:16;;27125:85;;;:::o;27216:158::-;27274:9;27307:61;27325:42;27334:32;27360:5;27334:32;:::i;:::-;27325:42;:::i;:::-;27307:61;:::i;:::-;27294:74;;27216:158;;;:::o;27380:147::-;27475:45;27514:5;27475:45;:::i;:::-;27470:3;27463:58;27380:147;;:::o;27533:114::-;27600:6;27634:5;27628:12;27618:22;;27533:114;;;:::o;27653:184::-;27752:11;27786:6;27781:3;27774:19;27826:4;27821:3;27817:14;27802:29;;27653:184;;;;:::o;27843:132::-;27910:4;27933:3;27925:11;;27963:4;27958:3;27954:14;27946:22;;27843:132;;;:::o;27981:108::-;28058:24;28076:5;28058:24;:::i;:::-;28053:3;28046:37;27981:108;;:::o;28095:179::-;28164:10;28185:46;28227:3;28219:6;28185:46;:::i;:::-;28263:4;28258:3;28254:14;28240:28;;28095:179;;;;:::o;28280:113::-;28350:4;28382;28377:3;28373:14;28365:22;;28280:113;;;:::o;28429:732::-;28548:3;28577:54;28625:5;28577:54;:::i;:::-;28647:86;28726:6;28721:3;28647:86;:::i;:::-;28640:93;;28757:56;28807:5;28757:56;:::i;:::-;28836:7;28867:1;28852:284;28877:6;28874:1;28871:13;28852:284;;;28953:6;28947:13;28980:63;29039:3;29024:13;28980:63;:::i;:::-;28973:70;;29066:60;29119:6;29066:60;:::i;:::-;29056:70;;28912:224;28899:1;28896;28892:9;28887:14;;28852:284;;;28856:14;29152:3;29145:10;;28553:608;;;28429:732;;;;:::o;29167:831::-;29430:4;29468:3;29457:9;29453:19;29445:27;;29482:71;29550:1;29539:9;29535:17;29526:6;29482:71;:::i;:::-;29563:80;29639:2;29628:9;29624:18;29615:6;29563:80;:::i;:::-;29690:9;29684:4;29680:20;29675:2;29664:9;29660:18;29653:48;29718:108;29821:4;29812:6;29718:108;:::i;:::-;29710:116;;29836:72;29904:2;29893:9;29889:18;29880:6;29836:72;:::i;:::-;29918:73;29986:3;29975:9;29971:19;29962:6;29918:73;:::i;:::-;29167:831;;;;;;;;:::o;30004:147::-;30105:11;30142:3;30127:18;;30004:147;;;;:::o;30157:114::-;;:::o;30277:398::-;30436:3;30457:83;30538:1;30533:3;30457:83;:::i;:::-;30450:90;;30549:93;30638:3;30549:93;:::i;:::-;30667:1;30662:3;30658:11;30651:18;;30277:398;;;:::o;30681:379::-;30865:3;30887:147;31030:3;30887:147;:::i;:::-;30880:154;;31051:3;31044:10;;30681:379;;;:::o;31066:177::-;31206:29;31202:1;31194:6;31190:14;31183:53;31066:177;:::o;31249:366::-;31391:3;31412:67;31476:2;31471:3;31412:67;:::i;:::-;31405:74;;31488:93;31577:3;31488:93;:::i;:::-;31606:2;31601:3;31597:12;31590:19;;31249:366;;;:::o;31621:419::-;31787:4;31825:2;31814:9;31810:18;31802:26;;31874:9;31868:4;31864:20;31860:1;31849:9;31845:17;31838:47;31902:131;32028:4;31902:131;:::i;:::-;31894:139;;31621:419;;;:::o

Swarm Source

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