ETH Price: $2,028.78 (+4.93%)
 

Overview

Max Total Supply

100,000,000 SAKURA

Holders

46

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
SAKURA

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*

SAKURA
Innovative P2E GAME Created by DINOSOFT

Gitbook: https://dino-soft.gitbook.io/sakura-dino-soft/
Web: https://dinosoft-sakura.net
X: https://twitter.com/DINOSOFT_Games
TG: https://t.me/DINO_SAKURA

*/
// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

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

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

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

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

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

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

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

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

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

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

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

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

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}
contract SAKURA is Context, IERC20, Ownable {
    mapping(address => uint256) private _balance;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => uint256) private _FreeWallets;
    uint256 private constant MAX = ~uint256(0);
    uint8 private constant _decimals = 18;
    uint256 private constant _totalSupply = 100000000 * 10**_decimals;
    uint256 private constant onePercent = (_totalSupply)/100;
    uint256 private constant minimumSwapAmount = 1 * 10**_decimals;
    uint256 private maxSwap = onePercent / 4;
    uint256 public MaximumOneTrxAmount = onePercent;
    uint256 public MxWalletSize = onePercent;
    uint256 private InitialBlockNo;

    uint256 public buyTax = 35;
    uint256 public sellTax = 35;
    
    string private constant _name = "SAKURA";
    string private constant _symbol = "SAKURA";

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    address immutable public FeesAddress ;

    bool private launch = false;

    constructor() {
        FeesAddress  = 0xb63DF744BDCaf0A8CfCac6114C427e727065c23b; 
        _balance[msg.sender] = _totalSupply;
        _FreeWallets[FeesAddress ] = 1;
        _FreeWallets[msg.sender] = 1;
        _FreeWallets[address(this)] = 1;

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

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

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

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

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

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

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

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

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

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

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if(currentAllowance != type(uint256).max) { 
            require(
                currentAllowance >= amount,
                "ERC20: transfer amount exceeds allowance"
            );
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - amount);
            }
        }
        return true;
    }

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


    function StartTrading() external onlyOwner {
        require(!launch,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        _approve(address(this), address(uniswapV2Router), _totalSupply);
        
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        launch = true;
        InitialBlockNo = block.number;
    }

    function _addExcludedWallet(address wallet) external onlyOwner {
        _FreeWallets[wallet] = 1;
    }

    function _RemoveExcludedWallet(address wallet) external onlyOwner {
        _FreeWallets[wallet] = 0;
    }

    function FreeFromLimits() external onlyOwner {
        MaximumOneTrxAmount = _totalSupply;
        MxWalletSize = _totalSupply;
    }

    function ChangeTaxes(uint256 newBuyTax, uint256 newSellTax) external onlyOwner {
        require(newBuyTax + newSellTax <= 70, "Tax too high");
        buyTax = newBuyTax;
        sellTax = newSellTax;
    }

    function _tokenTransfer(address from, address to, uint256 amount, uint256 _tax) private {
        uint256 taxTokens = (amount * _tax) / 100;
        uint256 transferAmount = amount - taxTokens;

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

        emit Transfer(from, to, transferAmount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(amount > 0, "ERC20: no tokens transferred");
        uint256 _tax = 0;
        if (_FreeWallets[from] == 0 && _FreeWallets[to] == 0)
        {
            require(launch, "Trading not open");
            require(amount <= MaximumOneTrxAmount, "MaxTx Enabled at launch");
            if (to != uniswapV2Pair && to != address(0xdead)) require(balanceOf(to) + amount <= MxWalletSize, "MaxWallet Enabled at launch");
            if (block.number < InitialBlockNo + 3) {
                _tax = 65;
            } else {
                if (from == uniswapV2Pair) {
                    _tax = buyTax;
                } else if (to == uniswapV2Pair) {
                    uint256 tokensToSwap = balanceOf(address(this));                  
                    if (tokensToSwap > minimumSwapAmount) {  
                        uint256 mxSw = maxSwap;
                        if (tokensToSwap > amount) tokensToSwap = amount;                     
                        if (tokensToSwap > mxSw) tokensToSwap = mxSw;                      
                        swapTokensForEth(tokensToSwap);
                    }
                    _tax = sellTax;
                }
            }
        }
        _tokenTransfer(from, to, amount, _tax);
    }

    function manualSendBalance() external onlyOwner {
        bool success;
        (success, ) = FeesAddress .call{value: address(this).balance}("");
    } 

    function manualSwapTokens(uint256 percent) external onlyOwner {
        uint256 contractBalance = balanceOf(address(this));
        uint256 amtswap = (percent*contractBalance)/100;
        swapTokensForEth(amtswap);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
        bool success;
        (success, ) = FeesAddress .call{value: address(this).balance}("");
    }
    receive() external payable {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"ChangeTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"FeesAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FreeFromLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"MaximumOneTrxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"StartTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"_RemoveExcludedWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"_addExcludedWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSendBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwapTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a0604052600460646012600a62000018919062000547565b6305f5e10062000029919062000598565b62000035919062000612565b62000041919062000612565b60045560646012600a62000056919062000547565b6305f5e10062000067919062000598565b62000073919062000612565b60055560646012600a62000088919062000547565b6305f5e10062000099919062000598565b620000a5919062000612565b600655602360085560236009556000600b60146101000a81548160ff021916908315150217905550348015620000da57600080fd5b506000620000ed620003a560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073b63df744bdcaf0a8cfcac6114c427e727065c23b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506012600a620001e3919062000547565b6305f5e100620001f4919062000598565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016003600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000318620003a560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a62000377919062000547565b6305f5e10062000388919062000598565b6040516200039791906200065b565b60405180910390a362000678565b600033905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200043b57808604811115620004135762000412620003ad565b5b6001851615620004235780820291505b80810290506200043385620003dc565b9450620003f3565b94509492505050565b60008262000456576001905062000529565b8162000466576000905062000529565b81600181146200047f57600281146200048a57620004c0565b600191505062000529565b60ff8411156200049f576200049e620003ad565b5b8360020a915084821115620004b957620004b8620003ad565b5b5062000529565b5060208310610133831016604e8410600b8410161715620004fa5782820a905083811115620004f457620004f3620003ad565b5b62000529565b620005098484846001620003e9565b92509050818404811115620005235762000522620003ad565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620005548262000530565b915062000561836200053a565b9250620005907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000444565b905092915050565b6000620005a58262000530565b9150620005b28362000530565b9250828202620005c28162000530565b91508282048414831517620005dc57620005db620003ad565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200061f8262000530565b91506200062c8362000530565b9250826200063f576200063e620005e3565b5b828204905092915050565b620006558162000530565b82525050565b60006020820190506200067260008301846200064a565b92915050565b6080516131a6620006a2600039600081816107e701528181610a650152611dbd01526131a66000f3fe60806040526004361061016a5760003560e01c806370a08231116100d1578063bf6a1c0d1161008a578063dd62ed3e11610064578063dd62ed3e146104f1578063e5d51dc71461052e578063eaa4460514610557578063f2fde38b1461058057610171565b8063bf6a1c0d14610486578063cc1776d31461049d578063d7f73858146104c857610171565b806370a0823114610374578063715018a6146103b15780638da5cb5b146103c857806395d89b41146103f3578063a414f3e21461041e578063a9059cbb1461044957610171565b80632d34b9ed116101235780632d34b9ed14610288578063313ce567146102b157806349bd5a5e146102dc5780634f7041a5146103075780635080c835146103325780636cae5a691461034957610171565b806306fdde0314610176578063095ea7b3146101a157806318160ddd146101de578063230b33501461020957806323b872dd1461023457806328176f891461027157610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105a9565b604051610198919061224b565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612306565b6105e6565b6040516101d59190612361565b60405180910390f35b3480156101ea57600080fd5b506101f3610604565b604051610200919061238b565b60405180910390f35b34801561021557600080fd5b5061021e610628565b60405161022b919061238b565b60405180910390f35b34801561024057600080fd5b5061025b600480360381019061025691906123a6565b61062e565b6040516102689190612361565b60405180910390f35b34801561027d57600080fd5b5061028661074e565b005b34801561029457600080fd5b506102af60048036038101906102aa91906123f9565b610874565b005b3480156102bd57600080fd5b506102c6610951565b6040516102d39190612442565b60405180910390f35b3480156102e857600080fd5b506102f161095a565b6040516102fe919061246c565b60405180910390f35b34801561031357600080fd5b5061031c610980565b604051610329919061238b565b60405180910390f35b34801561033e57600080fd5b50610347610986565b005b34801561035557600080fd5b5061035e610a63565b60405161036b919061246c565b60405180910390f35b34801561038057600080fd5b5061039b600480360381019061039691906123f9565b610a87565b6040516103a8919061238b565b60405180910390f35b3480156103bd57600080fd5b506103c6610ad0565b005b3480156103d457600080fd5b506103dd610c23565b6040516103ea919061246c565b60405180910390f35b3480156103ff57600080fd5b50610408610c4c565b604051610415919061224b565b60405180910390f35b34801561042a57600080fd5b50610433610c89565b604051610440919061238b565b60405180910390f35b34801561045557600080fd5b50610470600480360381019061046b9190612306565b610c8f565b60405161047d9190612361565b60405180910390f35b34801561049257600080fd5b5061049b610cad565b005b3480156104a957600080fd5b506104b26111d1565b6040516104bf919061238b565b60405180910390f35b3480156104d457600080fd5b506104ef60048036038101906104ea91906123f9565b6111d7565b005b3480156104fd57600080fd5b5061051860048036038101906105139190612487565b6112b4565b604051610525919061238b565b60405180910390f35b34801561053a57600080fd5b50610555600480360381019061055091906124c7565b61133b565b005b34801561056357600080fd5b5061057e60048036038101906105799190612507565b611431565b005b34801561058c57600080fd5b506105a760048036038101906105a291906123f9565b6114fd565b005b60606040518060400160405280600681526020017f53414b5552410000000000000000000000000000000000000000000000000000815250905090565b60006105fa6105f361159e565b84846115a6565b6001905092915050565b60006012600a6106149190612696565b6305f5e10061062391906126e1565b905090565b60055481565b600061063b84848461176f565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061068661159e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610742578281101561072d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072490612795565b60405180910390fd5b6107418561073961159e565b8584036115a6565b5b60019150509392505050565b61075661159e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107da90612801565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff164760405161082990612852565b60006040518083038185875af1925050503d8060008114610866576040519150601f19603f3d011682016040523d82523d6000602084013e61086b565b606091505b50508091505050565b61087c61159e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610909576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090090612801565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60006012905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b61098e61159e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1290612801565b60405180910390fd5b6012600a610a299190612696565b6305f5e100610a3891906126e1565b6005819055506012600a610a4c9190612696565b6305f5e100610a5b91906126e1565b600681905550565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ad861159e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5c90612801565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f53414b5552410000000000000000000000000000000000000000000000000000815250905090565b60065481565b6000610ca3610c9c61159e565b848461176f565b6001905092915050565b610cb561159e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3990612801565b60405180910390fd5b600b60149054906101000a900460ff1615610d92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d89906128b3565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7891906128e8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2591906128e8565b6040518363ffffffff1660e01b8152600401610f42929190612915565b6020604051808303816000875af1158015610f61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8591906128e8565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061100e30600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610ffa9190612696565b6305f5e10061100991906126e1565b6115a6565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061105730610a87565b600080611062610c23565b426040518863ffffffff1660e01b815260040161108496959493929190612983565b60606040518083038185885af11580156110a2573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110c791906129f9565b505050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611169929190612a4c565b6020604051808303816000875af1158015611188573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ac9190612aa1565b506001600b60146101000a81548160ff02191690831515021790555043600781905550565b60095481565b6111df61159e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461126c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126390612801565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61134361159e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c790612801565b60405180910390fd5b604681836113de9190612ace565b111561141f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141690612b4e565b60405180910390fd5b81600881905550806009819055505050565b61143961159e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bd90612801565b60405180910390fd5b60006114d130610a87565b90506000606482846114e391906126e1565b6114ed9190612b9d565b90506114f881611b7a565b505050565b61150561159e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611592576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158990612801565b60405180910390fd5b61159b81611e4c565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160c90612c40565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611684576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167b90612cd2565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611762919061238b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d590612d64565b60405180910390fd5b60008111611821576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181890612dd0565b60405180910390fd5b600080600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541480156118b057506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15611b6857600b60149054906101000a900460ff16611904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fb90612e3c565b60405180910390fd5b600554821115611949576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194090612ea8565b60405180910390fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119d5575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a3357600654826119e785610a87565b6119f19190612ace565b1115611a32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2990612f14565b60405180910390fd5b5b6003600754611a429190612ace565b431015611a525760419050611b67565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611ab1576008549050611b66565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b65576000611b1130610a87565b90506012600a611b219190612696565b6001611b2d91906126e1565b811115611b5e576000600454905083821115611b47578391505b80821115611b53578091505b611b5c82611b7a565b505b6009549150505b5b5b5b611b7484848484611f78565b50505050565b6000600267ffffffffffffffff811115611b9757611b96612f34565b5b604051908082528060200260200182016040528015611bc55781602001602082028036833780820191505090505b5090503081600081518110611bdd57611bdc612f63565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ca891906128e8565b81600181518110611cbc57611cbb612f63565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d2330600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115a6565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611d87959493929190613050565b600060405180830381600087803b158015611da157600080fd5b505af1158015611db5573d6000803e3d6000fd5b5050505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1647604051611dff90612852565b60006040518083038185875af1925050503d8060008114611e3c576040519150601f19603f3d011682016040523d82523d6000602084013e611e41565b606091505b505080915050505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ebb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb29061311c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600060648284611f8891906126e1565b611f929190612b9d565b905060008184611fa2919061313c565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fef919061313c565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461207d9190612ace565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461210b9190612ace565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121ab919061238b565b60405180910390a3505050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121f55780820151818401526020810190506121da565b60008484015250505050565b6000601f19601f8301169050919050565b600061221d826121bb565b61222781856121c6565b93506122378185602086016121d7565b61224081612201565b840191505092915050565b600060208201905081810360008301526122658184612212565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061229d82612272565b9050919050565b6122ad81612292565b81146122b857600080fd5b50565b6000813590506122ca816122a4565b92915050565b6000819050919050565b6122e3816122d0565b81146122ee57600080fd5b50565b600081359050612300816122da565b92915050565b6000806040838503121561231d5761231c61226d565b5b600061232b858286016122bb565b925050602061233c858286016122f1565b9150509250929050565b60008115159050919050565b61235b81612346565b82525050565b60006020820190506123766000830184612352565b92915050565b612385816122d0565b82525050565b60006020820190506123a0600083018461237c565b92915050565b6000806000606084860312156123bf576123be61226d565b5b60006123cd868287016122bb565b93505060206123de868287016122bb565b92505060406123ef868287016122f1565b9150509250925092565b60006020828403121561240f5761240e61226d565b5b600061241d848285016122bb565b91505092915050565b600060ff82169050919050565b61243c81612426565b82525050565b60006020820190506124576000830184612433565b92915050565b61246681612292565b82525050565b6000602082019050612481600083018461245d565b92915050565b6000806040838503121561249e5761249d61226d565b5b60006124ac858286016122bb565b92505060206124bd858286016122bb565b9150509250929050565b600080604083850312156124de576124dd61226d565b5b60006124ec858286016122f1565b92505060206124fd858286016122f1565b9150509250929050565b60006020828403121561251d5761251c61226d565b5b600061252b848285016122f1565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156125ba5780860481111561259657612595612534565b5b60018516156125a55780820291505b80810290506125b385612563565b945061257a565b94509492505050565b6000826125d3576001905061268f565b816125e1576000905061268f565b81600181146125f7576002811461260157612630565b600191505061268f565b60ff84111561261357612612612534565b5b8360020a91508482111561262a57612629612534565b5b5061268f565b5060208310610133831016604e8410600b84101617156126655782820a9050838111156126605761265f612534565b5b61268f565b6126728484846001612570565b9250905081840481111561268957612688612534565b5b81810290505b9392505050565b60006126a1826122d0565b91506126ac83612426565b92506126d97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846125c3565b905092915050565b60006126ec826122d0565b91506126f7836122d0565b9250828202612705816122d0565b9150828204841483151761271c5761271b612534565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061277f6028836121c6565b915061278a82612723565b604082019050919050565b600060208201905081810360008301526127ae81612772565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006127eb6020836121c6565b91506127f6826127b5565b602082019050919050565b6000602082019050818103600083015261281a816127de565b9050919050565b600081905092915050565b50565b600061283c600083612821565b91506128478261282c565b600082019050919050565b600061285d8261282f565b9150819050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061289d6017836121c6565b91506128a882612867565b602082019050919050565b600060208201905081810360008301526128cc81612890565b9050919050565b6000815190506128e2816122a4565b92915050565b6000602082840312156128fe576128fd61226d565b5b600061290c848285016128d3565b91505092915050565b600060408201905061292a600083018561245d565b612937602083018461245d565b9392505050565b6000819050919050565b6000819050919050565b600061296d6129686129638461293e565b612948565b6122d0565b9050919050565b61297d81612952565b82525050565b600060c082019050612998600083018961245d565b6129a5602083018861237c565b6129b26040830187612974565b6129bf6060830186612974565b6129cc608083018561245d565b6129d960a083018461237c565b979650505050505050565b6000815190506129f3816122da565b92915050565b600080600060608486031215612a1257612a1161226d565b5b6000612a20868287016129e4565b9350506020612a31868287016129e4565b9250506040612a42868287016129e4565b9150509250925092565b6000604082019050612a61600083018561245d565b612a6e602083018461237c565b9392505050565b612a7e81612346565b8114612a8957600080fd5b50565b600081519050612a9b81612a75565b92915050565b600060208284031215612ab757612ab661226d565b5b6000612ac584828501612a8c565b91505092915050565b6000612ad9826122d0565b9150612ae4836122d0565b9250828201905080821115612afc57612afb612534565b5b92915050565b7f54617820746f6f20686967680000000000000000000000000000000000000000600082015250565b6000612b38600c836121c6565b9150612b4382612b02565b602082019050919050565b60006020820190508181036000830152612b6781612b2b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612ba8826122d0565b9150612bb3836122d0565b925082612bc357612bc2612b6e565b5b828204905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612c2a6024836121c6565b9150612c3582612bce565b604082019050919050565b60006020820190508181036000830152612c5981612c1d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612cbc6022836121c6565b9150612cc782612c60565b604082019050919050565b60006020820190508181036000830152612ceb81612caf565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612d4e6025836121c6565b9150612d5982612cf2565b604082019050919050565b60006020820190508181036000830152612d7d81612d41565b9050919050565b7f45524332303a206e6f20746f6b656e73207472616e7366657272656400000000600082015250565b6000612dba601c836121c6565b9150612dc582612d84565b602082019050919050565b60006020820190508181036000830152612de981612dad565b9050919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000612e266010836121c6565b9150612e3182612df0565b602082019050919050565b60006020820190508181036000830152612e5581612e19565b9050919050565b7f4d6178547820456e61626c6564206174206c61756e6368000000000000000000600082015250565b6000612e926017836121c6565b9150612e9d82612e5c565b602082019050919050565b60006020820190508181036000830152612ec181612e85565b9050919050565b7f4d617857616c6c657420456e61626c6564206174206c61756e63680000000000600082015250565b6000612efe601b836121c6565b9150612f0982612ec8565b602082019050919050565b60006020820190508181036000830152612f2d81612ef1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612fc781612292565b82525050565b6000612fd98383612fbe565b60208301905092915050565b6000602082019050919050565b6000612ffd82612f92565b6130078185612f9d565b935061301283612fae565b8060005b8381101561304357815161302a8882612fcd565b975061303583612fe5565b925050600181019050613016565b5085935050505092915050565b600060a082019050613065600083018861237c565b6130726020830187612974565b81810360408301526130848186612ff2565b9050613093606083018561245d565b6130a0608083018461237c565b9695505050505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006131066026836121c6565b9150613111826130aa565b604082019050919050565b60006020820190508181036000830152613135816130f9565b9050919050565b6000613147826122d0565b9150613152836122d0565b925082820390508181111561316a57613169612534565b5b9291505056fea26469706673582212201a07f990359b88c313c88e0b3ae9351c397a2e5eb790aa852330f5bb9a8344b964736f6c63430008130033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c806370a08231116100d1578063bf6a1c0d1161008a578063dd62ed3e11610064578063dd62ed3e146104f1578063e5d51dc71461052e578063eaa4460514610557578063f2fde38b1461058057610171565b8063bf6a1c0d14610486578063cc1776d31461049d578063d7f73858146104c857610171565b806370a0823114610374578063715018a6146103b15780638da5cb5b146103c857806395d89b41146103f3578063a414f3e21461041e578063a9059cbb1461044957610171565b80632d34b9ed116101235780632d34b9ed14610288578063313ce567146102b157806349bd5a5e146102dc5780634f7041a5146103075780635080c835146103325780636cae5a691461034957610171565b806306fdde0314610176578063095ea7b3146101a157806318160ddd146101de578063230b33501461020957806323b872dd1461023457806328176f891461027157610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105a9565b604051610198919061224b565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612306565b6105e6565b6040516101d59190612361565b60405180910390f35b3480156101ea57600080fd5b506101f3610604565b604051610200919061238b565b60405180910390f35b34801561021557600080fd5b5061021e610628565b60405161022b919061238b565b60405180910390f35b34801561024057600080fd5b5061025b600480360381019061025691906123a6565b61062e565b6040516102689190612361565b60405180910390f35b34801561027d57600080fd5b5061028661074e565b005b34801561029457600080fd5b506102af60048036038101906102aa91906123f9565b610874565b005b3480156102bd57600080fd5b506102c6610951565b6040516102d39190612442565b60405180910390f35b3480156102e857600080fd5b506102f161095a565b6040516102fe919061246c565b60405180910390f35b34801561031357600080fd5b5061031c610980565b604051610329919061238b565b60405180910390f35b34801561033e57600080fd5b50610347610986565b005b34801561035557600080fd5b5061035e610a63565b60405161036b919061246c565b60405180910390f35b34801561038057600080fd5b5061039b600480360381019061039691906123f9565b610a87565b6040516103a8919061238b565b60405180910390f35b3480156103bd57600080fd5b506103c6610ad0565b005b3480156103d457600080fd5b506103dd610c23565b6040516103ea919061246c565b60405180910390f35b3480156103ff57600080fd5b50610408610c4c565b604051610415919061224b565b60405180910390f35b34801561042a57600080fd5b50610433610c89565b604051610440919061238b565b60405180910390f35b34801561045557600080fd5b50610470600480360381019061046b9190612306565b610c8f565b60405161047d9190612361565b60405180910390f35b34801561049257600080fd5b5061049b610cad565b005b3480156104a957600080fd5b506104b26111d1565b6040516104bf919061238b565b60405180910390f35b3480156104d457600080fd5b506104ef60048036038101906104ea91906123f9565b6111d7565b005b3480156104fd57600080fd5b5061051860048036038101906105139190612487565b6112b4565b604051610525919061238b565b60405180910390f35b34801561053a57600080fd5b50610555600480360381019061055091906124c7565b61133b565b005b34801561056357600080fd5b5061057e60048036038101906105799190612507565b611431565b005b34801561058c57600080fd5b506105a760048036038101906105a291906123f9565b6114fd565b005b60606040518060400160405280600681526020017f53414b5552410000000000000000000000000000000000000000000000000000815250905090565b60006105fa6105f361159e565b84846115a6565b6001905092915050565b60006012600a6106149190612696565b6305f5e10061062391906126e1565b905090565b60055481565b600061063b84848461176f565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061068661159e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610742578281101561072d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072490612795565b60405180910390fd5b6107418561073961159e565b8584036115a6565b5b60019150509392505050565b61075661159e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107da90612801565b60405180910390fd5b60007f000000000000000000000000b63df744bdcaf0a8cfcac6114c427e727065c23b73ffffffffffffffffffffffffffffffffffffffff164760405161082990612852565b60006040518083038185875af1925050503d8060008114610866576040519150601f19603f3d011682016040523d82523d6000602084013e61086b565b606091505b50508091505050565b61087c61159e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610909576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090090612801565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60006012905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b61098e61159e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1290612801565b60405180910390fd5b6012600a610a299190612696565b6305f5e100610a3891906126e1565b6005819055506012600a610a4c9190612696565b6305f5e100610a5b91906126e1565b600681905550565b7f000000000000000000000000b63df744bdcaf0a8cfcac6114c427e727065c23b81565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ad861159e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5c90612801565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f53414b5552410000000000000000000000000000000000000000000000000000815250905090565b60065481565b6000610ca3610c9c61159e565b848461176f565b6001905092915050565b610cb561159e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3990612801565b60405180910390fd5b600b60149054906101000a900460ff1615610d92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d89906128b3565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7891906128e8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2591906128e8565b6040518363ffffffff1660e01b8152600401610f42929190612915565b6020604051808303816000875af1158015610f61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8591906128e8565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061100e30600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610ffa9190612696565b6305f5e10061100991906126e1565b6115a6565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061105730610a87565b600080611062610c23565b426040518863ffffffff1660e01b815260040161108496959493929190612983565b60606040518083038185885af11580156110a2573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110c791906129f9565b505050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611169929190612a4c565b6020604051808303816000875af1158015611188573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ac9190612aa1565b506001600b60146101000a81548160ff02191690831515021790555043600781905550565b60095481565b6111df61159e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461126c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126390612801565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61134361159e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c790612801565b60405180910390fd5b604681836113de9190612ace565b111561141f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141690612b4e565b60405180910390fd5b81600881905550806009819055505050565b61143961159e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bd90612801565b60405180910390fd5b60006114d130610a87565b90506000606482846114e391906126e1565b6114ed9190612b9d565b90506114f881611b7a565b505050565b61150561159e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611592576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158990612801565b60405180910390fd5b61159b81611e4c565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160c90612c40565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611684576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167b90612cd2565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611762919061238b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d590612d64565b60405180910390fd5b60008111611821576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181890612dd0565b60405180910390fd5b600080600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541480156118b057506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15611b6857600b60149054906101000a900460ff16611904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fb90612e3c565b60405180910390fd5b600554821115611949576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194090612ea8565b60405180910390fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119d5575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a3357600654826119e785610a87565b6119f19190612ace565b1115611a32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2990612f14565b60405180910390fd5b5b6003600754611a429190612ace565b431015611a525760419050611b67565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611ab1576008549050611b66565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b65576000611b1130610a87565b90506012600a611b219190612696565b6001611b2d91906126e1565b811115611b5e576000600454905083821115611b47578391505b80821115611b53578091505b611b5c82611b7a565b505b6009549150505b5b5b5b611b7484848484611f78565b50505050565b6000600267ffffffffffffffff811115611b9757611b96612f34565b5b604051908082528060200260200182016040528015611bc55781602001602082028036833780820191505090505b5090503081600081518110611bdd57611bdc612f63565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ca891906128e8565b81600181518110611cbc57611cbb612f63565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d2330600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115a6565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611d87959493929190613050565b600060405180830381600087803b158015611da157600080fd5b505af1158015611db5573d6000803e3d6000fd5b5050505060007f000000000000000000000000b63df744bdcaf0a8cfcac6114c427e727065c23b73ffffffffffffffffffffffffffffffffffffffff1647604051611dff90612852565b60006040518083038185875af1925050503d8060008114611e3c576040519150601f19603f3d011682016040523d82523d6000602084013e611e41565b606091505b505080915050505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ebb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb29061311c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600060648284611f8891906126e1565b611f929190612b9d565b905060008184611fa2919061313c565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fef919061313c565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461207d9190612ace565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461210b9190612ace565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121ab919061238b565b60405180910390a3505050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121f55780820151818401526020810190506121da565b60008484015250505050565b6000601f19601f8301169050919050565b600061221d826121bb565b61222781856121c6565b93506122378185602086016121d7565b61224081612201565b840191505092915050565b600060208201905081810360008301526122658184612212565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061229d82612272565b9050919050565b6122ad81612292565b81146122b857600080fd5b50565b6000813590506122ca816122a4565b92915050565b6000819050919050565b6122e3816122d0565b81146122ee57600080fd5b50565b600081359050612300816122da565b92915050565b6000806040838503121561231d5761231c61226d565b5b600061232b858286016122bb565b925050602061233c858286016122f1565b9150509250929050565b60008115159050919050565b61235b81612346565b82525050565b60006020820190506123766000830184612352565b92915050565b612385816122d0565b82525050565b60006020820190506123a0600083018461237c565b92915050565b6000806000606084860312156123bf576123be61226d565b5b60006123cd868287016122bb565b93505060206123de868287016122bb565b92505060406123ef868287016122f1565b9150509250925092565b60006020828403121561240f5761240e61226d565b5b600061241d848285016122bb565b91505092915050565b600060ff82169050919050565b61243c81612426565b82525050565b60006020820190506124576000830184612433565b92915050565b61246681612292565b82525050565b6000602082019050612481600083018461245d565b92915050565b6000806040838503121561249e5761249d61226d565b5b60006124ac858286016122bb565b92505060206124bd858286016122bb565b9150509250929050565b600080604083850312156124de576124dd61226d565b5b60006124ec858286016122f1565b92505060206124fd858286016122f1565b9150509250929050565b60006020828403121561251d5761251c61226d565b5b600061252b848285016122f1565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156125ba5780860481111561259657612595612534565b5b60018516156125a55780820291505b80810290506125b385612563565b945061257a565b94509492505050565b6000826125d3576001905061268f565b816125e1576000905061268f565b81600181146125f7576002811461260157612630565b600191505061268f565b60ff84111561261357612612612534565b5b8360020a91508482111561262a57612629612534565b5b5061268f565b5060208310610133831016604e8410600b84101617156126655782820a9050838111156126605761265f612534565b5b61268f565b6126728484846001612570565b9250905081840481111561268957612688612534565b5b81810290505b9392505050565b60006126a1826122d0565b91506126ac83612426565b92506126d97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846125c3565b905092915050565b60006126ec826122d0565b91506126f7836122d0565b9250828202612705816122d0565b9150828204841483151761271c5761271b612534565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061277f6028836121c6565b915061278a82612723565b604082019050919050565b600060208201905081810360008301526127ae81612772565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006127eb6020836121c6565b91506127f6826127b5565b602082019050919050565b6000602082019050818103600083015261281a816127de565b9050919050565b600081905092915050565b50565b600061283c600083612821565b91506128478261282c565b600082019050919050565b600061285d8261282f565b9150819050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061289d6017836121c6565b91506128a882612867565b602082019050919050565b600060208201905081810360008301526128cc81612890565b9050919050565b6000815190506128e2816122a4565b92915050565b6000602082840312156128fe576128fd61226d565b5b600061290c848285016128d3565b91505092915050565b600060408201905061292a600083018561245d565b612937602083018461245d565b9392505050565b6000819050919050565b6000819050919050565b600061296d6129686129638461293e565b612948565b6122d0565b9050919050565b61297d81612952565b82525050565b600060c082019050612998600083018961245d565b6129a5602083018861237c565b6129b26040830187612974565b6129bf6060830186612974565b6129cc608083018561245d565b6129d960a083018461237c565b979650505050505050565b6000815190506129f3816122da565b92915050565b600080600060608486031215612a1257612a1161226d565b5b6000612a20868287016129e4565b9350506020612a31868287016129e4565b9250506040612a42868287016129e4565b9150509250925092565b6000604082019050612a61600083018561245d565b612a6e602083018461237c565b9392505050565b612a7e81612346565b8114612a8957600080fd5b50565b600081519050612a9b81612a75565b92915050565b600060208284031215612ab757612ab661226d565b5b6000612ac584828501612a8c565b91505092915050565b6000612ad9826122d0565b9150612ae4836122d0565b9250828201905080821115612afc57612afb612534565b5b92915050565b7f54617820746f6f20686967680000000000000000000000000000000000000000600082015250565b6000612b38600c836121c6565b9150612b4382612b02565b602082019050919050565b60006020820190508181036000830152612b6781612b2b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612ba8826122d0565b9150612bb3836122d0565b925082612bc357612bc2612b6e565b5b828204905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612c2a6024836121c6565b9150612c3582612bce565b604082019050919050565b60006020820190508181036000830152612c5981612c1d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612cbc6022836121c6565b9150612cc782612c60565b604082019050919050565b60006020820190508181036000830152612ceb81612caf565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612d4e6025836121c6565b9150612d5982612cf2565b604082019050919050565b60006020820190508181036000830152612d7d81612d41565b9050919050565b7f45524332303a206e6f20746f6b656e73207472616e7366657272656400000000600082015250565b6000612dba601c836121c6565b9150612dc582612d84565b602082019050919050565b60006020820190508181036000830152612de981612dad565b9050919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000612e266010836121c6565b9150612e3182612df0565b602082019050919050565b60006020820190508181036000830152612e5581612e19565b9050919050565b7f4d6178547820456e61626c6564206174206c61756e6368000000000000000000600082015250565b6000612e926017836121c6565b9150612e9d82612e5c565b602082019050919050565b60006020820190508181036000830152612ec181612e85565b9050919050565b7f4d617857616c6c657420456e61626c6564206174206c61756e63680000000000600082015250565b6000612efe601b836121c6565b9150612f0982612ec8565b602082019050919050565b60006020820190508181036000830152612f2d81612ef1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612fc781612292565b82525050565b6000612fd98383612fbe565b60208301905092915050565b6000602082019050919050565b6000612ffd82612f92565b6130078185612f9d565b935061301283612fae565b8060005b8381101561304357815161302a8882612fcd565b975061303583612fe5565b925050600181019050613016565b5085935050505092915050565b600060a082019050613065600083018861237c565b6130726020830187612974565b81810360408301526130848186612ff2565b9050613093606083018561245d565b6130a0608083018461237c565b9695505050505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006131066026836121c6565b9150613111826130aa565b604082019050919050565b60006020820190508181036000830152613135816130f9565b9050919050565b6000613147826122d0565b9150613152836122d0565b925082820390508181111561316a57613169612534565b5b9291505056fea26469706673582212201a07f990359b88c313c88e0b3ae9351c397a2e5eb790aa852330f5bb9a8344b964736f6c63430008130033

Deployed Bytecode Sourcemap

2955:7490:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4340:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5174:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4617:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3530:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5342:578;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9440:155;;;;;;;;;;;;;:::i;:::-;;6967:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4526:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3890:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3670:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7198:136;;;;;;;;;;;;;:::i;:::-;;3925:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4725:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2009:148;;;;;;;;;;;;;:::i;:::-;;1441:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4431:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3584:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4851:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6273:686;;;;;;;;;;;;;:::i;:::-;;3703:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7081:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5024:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7342:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9604:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1655:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4340:83;4377:13;4410:5;;;;;;;;;;;;;;;;;4403:12;;4340:83;:::o;5174:160::-;5249:4;5265:39;5274:12;:10;:12::i;:::-;5288:7;5297:6;5265:8;:39::i;:::-;5322:4;5315:11;;5174:160;;;;:::o;4617:100::-;4670:7;3270:2;3331;:13;;;;:::i;:::-;3319:9;:25;;;;:::i;:::-;4690:19;;4617:100;:::o;3530:47::-;;;;:::o;5342:578::-;5440:4;5457:36;5467:6;5475:9;5486:6;5457:9;:36::i;:::-;5506:24;5533:11;:19;5545:6;5533:19;;;;;;;;;;;;;;;:33;5553:12;:10;:12::i;:::-;5533:33;;;;;;;;;;;;;;;;5506:60;;5600:17;5580:16;:37;5577:314;;5681:6;5661:16;:26;;5635:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;5807:57;5816:6;5824:12;:10;:12::i;:::-;5857:6;5838:16;:25;5807:8;:57::i;:::-;5577:314;5908:4;5901:11;;;5342:578;;;;;:::o;9440:155::-;1578:12;:10;:12::i;:::-;1568:22;;:6;;;;;;;;;;:22;;;1560:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9499:12:::1;9536:11;:17;;9561:21;9536:51;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9522:65;;;;;9488:107;9440:155::o:0;6967:106::-;1578:12;:10;:12::i;:::-;1568:22;;:6;;;;;;;;;;:22;;;1560:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7064:1:::1;7041:12;:20;7054:6;7041:20;;;;;;;;;;;;;;;:24;;;;6967:106:::0;:::o;4526:83::-;4567:5;3270:2;4585:16;;4526:83;:::o;3890:28::-;;;;;;;;;;;;;:::o;3670:26::-;;;;:::o;7198:136::-;1578:12;:10;:12::i;:::-;1568:22;;:6;;;;;;;;;;:22;;;1560:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3270:2:::1;3331;:13;;;;:::i;:::-;3319:9;:25;;;;:::i;:::-;7254:19;:34;;;;3270:2;3331;:13;;;;:::i;:::-;3319:9;:25;;;;:::i;:::-;7299:12;:27;;;;7198:136::o:0;3925:36::-;;;:::o;4725:118::-;4791:7;4818:8;:17;4827:7;4818:17;;;;;;;;;;;;;;;;4811:24;;4725:118;;;:::o;2009:148::-;1578:12;:10;:12::i;:::-;1568:22;;:6;;;;;;;;;;:22;;;1560:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2116:1:::1;2079:40;;2100:6;::::0;::::1;;;;;;;;2079:40;;;;;;;;;;;;2147:1;2130:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2009:148::o:0;1441:79::-;1479:7;1506:6;;;;;;;;;;;1499:13;;1441:79;:::o;4431:87::-;4470:13;4503:7;;;;;;;;;;;;;;;;;4496:14;;4431:87;:::o;3584:40::-;;;;:::o;4851:165::-;4928:4;4944:42;4954:12;:10;:12::i;:::-;4968:9;4979:6;4944:9;:42::i;:::-;5004:4;4997:11;;4851:165;;;;:::o;6273:686::-;1578:12;:10;:12::i;:::-;1568:22;;:6;;;;;;;;;;:22;;;1560:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6336:6:::1;;;;;;;;;;;6335:7;6327:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;6417;6380:15;;:80;;;;;;;;;;;;;;;;;;6505:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6487:55;;;6551:4;6558:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6487:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6471:13;;:110;;;;;;;;;;;;;;;;;;6592:63;6609:4;6624:15;;;;;;;;;;;3270:2;3331;:13;;;;:::i;:::-;3319:9;:25;;;;:::i;:::-;6592:8;:63::i;:::-;6676:15;;;;;;;;;;;:31;;;6715:21;6746:4;6752:24;6770:4;6752:9;:24::i;:::-;6777:1;6779::::0;6781:7:::1;:5;:7::i;:::-;6789:15;6676:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;6823:13;;;;;;;;;;;6816:29;;;6854:15;;;;;;;;;;;6872:14;6816:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6907:4;6898:6;;:13;;;;;;;;;;;;;;;;;;6939:12;6922:14;:29;;;;6273:686::o:0;3703:27::-;;;;:::o;7081:109::-;1578:12;:10;:12::i;:::-;1568:22;;:6;;;;;;;;;;:22;;;1560:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7181:1:::1;7158:12;:20;7171:6;7158:20;;;;;;;;;;;;;;;:24;;;;7081:109:::0;:::o;5024:142::-;5105:7;5131:11;:18;5143:5;5131:18;;;;;;;;;;;;;;;:27;5150:7;5131:27;;;;;;;;;;;;;;;;5124:34;;5024:142;;;;:::o;7342:211::-;1578:12;:10;:12::i;:::-;1568:22;;:6;;;;;;;;;;:22;;;1560:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7466:2:::1;7452:10;7440:9;:22;;;;:::i;:::-;:28;;7432:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;7505:9;7496:6;:18;;;;7535:10;7525:7;:20;;;;7342:211:::0;;:::o;9604:225::-;1578:12;:10;:12::i;:::-;1568:22;;:6;;;;;;;;;;:22;;;1560:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9677:23:::1;9703:24;9721:4;9703:9;:24::i;:::-;9677:50;;9738:15;9782:3;9765:15;9757:7;:23;;;;:::i;:::-;9756:29;;;;:::i;:::-;9738:47;;9796:25;9813:7;9796:16;:25::i;:::-;9666:163;;9604:225:::0;:::o;1655:109::-;1578:12;:10;:12::i;:::-;1568:22;;:6;;;;;;;;;;:22;;;1560:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1728:28:::1;1747:8;1728:18;:28::i;:::-;1655:109:::0;:::o;316:98::-;369:7;396:10;389:17;;316:98;:::o;5928:335::-;6038:1;6021:19;;:5;:19;;;6013:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6119:1;6100:21;;:7;:21;;;6092:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6201:6;6171:11;:18;6183:5;6171:18;;;;;;;;;;;;;;;:27;6190:7;6171:27;;;;;;;;;;;;;;;:36;;;;6239:7;6223:32;;6232:5;6223:32;;;6248:6;6223:32;;;;;;:::i;:::-;;;;;;;;5928:335;;;:::o;8003:1429::-;8107:1;8091:18;;:4;:18;;;8083:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8179:1;8170:6;:10;8162:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;8224:12;8277:1;8255:12;:18;8268:4;8255:18;;;;;;;;;;;;;;;;:23;:48;;;;;8302:1;8282:12;:16;8295:2;8282:16;;;;;;;;;;;;;;;;:21;8255:48;8251:1125;;;8337:6;;;;;;;;;;;8329:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;8397:19;;8387:6;:29;;8379:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;8469:13;;;;;;;;;;;8463:19;;:2;:19;;;;:44;;;;;8500:6;8486:21;;:2;:21;;;;8463:44;8459:128;;;8543:12;;8533:6;8517:13;8527:2;8517:9;:13::i;:::-;:22;;;;:::i;:::-;:38;;8509:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;8459:128;8638:1;8621:14;;:18;;;;:::i;:::-;8606:12;:33;8602:763;;;8667:2;8660:9;;8602:763;;;8722:13;;;;;;;;;;;8714:21;;:4;:21;;;8710:640;;8767:6;;8760:13;;8710:640;;;8809:13;;;;;;;;;;;8803:19;;:2;:19;;;8799:551;;8847:20;8870:24;8888:4;8870:9;:24::i;:::-;8847:47;;3270:2;3463;:13;;;;:::i;:::-;3459:1;:17;;;;:::i;:::-;8939:12;:32;8935:359;;;9002:12;9017:7;;9002:22;;9070:6;9055:12;:21;9051:48;;;9093:6;9078:21;;9051:48;9166:4;9151:12;:19;9147:44;;;9187:4;9172:19;;9147:44;9240:30;9257:12;9240:16;:30::i;:::-;8973:321;8935:359;9323:7;;9316:14;;8824:526;8799:551;8710:640;8602:763;8251:1125;9386:38;9401:4;9407:2;9411:6;9419:4;9386:14;:38::i;:::-;8072:1360;8003:1429;;;:::o;9837:570::-;9903:21;9941:1;9927:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9903:40;;9972:4;9954;9959:1;9954:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;9998:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9988:4;9993:1;9988:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;10031:62;10048:4;10063:15;;;;;;;;;;;10081:11;10031:8;:62::i;:::-;10104:15;;;;;;;;;;;:66;;;10185:11;10211:1;10227:4;10254;10274:15;10104:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10311:12;10348:11;:17;;10373:21;10348:51;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10334:65;;;;;9892:515;;9837:570;:::o;1772:229::-;1866:1;1846:22;;:8;:22;;;1838:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1956:8;1927:38;;1948:6;;;;;;;;;;1927:38;;;;;;;;;;;;1985:8;1976:6;;:17;;;;;;;;;;;;;;;;;;1772:229;:::o;7561:434::-;7660:17;7698:3;7690:4;7681:6;:13;;;;:::i;:::-;7680:21;;;;:::i;:::-;7660:41;;7712:22;7746:9;7737:6;:18;;;;:::i;:::-;7712:43;;7802:6;7785:8;:14;7794:4;7785:14;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;7768:8;:14;7777:4;7768:14;;;;;;;;;;;;;;;:40;;;;7849:14;7834:8;:12;7843:2;7834:12;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;7819:8;:12;7828:2;7819:12;;;;;;;;;;;;;;;:44;;;;7926:9;7900:8;:23;7917:4;7900:23;;;;;;;;;;;;;;;;:35;;;;:::i;:::-;7874:8;:23;7891:4;7874:23;;;;;;;;;;;;;;;:61;;;;7968:2;7953:34;;7962:4;7953:34;;;7972:14;7953:34;;;;;;:::i;:::-;;;;;;;;7649:346;;7561:434;;;;:::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;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:329::-;4482:6;4531:2;4519:9;4510:7;4506:23;4502:32;4499:119;;;4537:79;;:::i;:::-;4499:119;4657:1;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4628:117;4423:329;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:::-;6088:6;6096;6145:2;6133:9;6124:7;6120:23;6116:32;6113:119;;;6151:79;;:::i;:::-;6113:119;6271:1;6296:53;6341:7;6332:6;6321:9;6317:22;6296:53;:::i;:::-;6286:63;;6242:117;6398:2;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6369:118;6020:474;;;;;:::o;6500:329::-;6559:6;6608:2;6596:9;6587:7;6583:23;6579:32;6576:119;;;6614:79;;:::i;:::-;6576:119;6734:1;6759:53;6804:7;6795:6;6784:9;6780:22;6759:53;:::i;:::-;6749:63;;6705:117;6500:329;;;;:::o;6835:180::-;6883:77;6880:1;6873:88;6980:4;6977:1;6970:15;7004:4;7001:1;6994:15;7021:102;7063:8;7110:5;7107:1;7103:13;7082:34;;7021:102;;;:::o;7129:848::-;7190:5;7197:4;7221:6;7212:15;;7245:5;7236:14;;7259:712;7280:1;7270:8;7267:15;7259:712;;;7375:4;7370:3;7366:14;7360:4;7357:24;7354:50;;;7384:18;;:::i;:::-;7354:50;7434:1;7424:8;7420:16;7417:451;;;7849:4;7842:5;7838:16;7829:25;;7417:451;7899:4;7893;7889:15;7881:23;;7929:32;7952:8;7929:32;:::i;:::-;7917:44;;7259:712;;;7129:848;;;;;;;:::o;7983:1073::-;8037:5;8228:8;8218:40;;8249:1;8240:10;;8251:5;;8218:40;8277:4;8267:36;;8294:1;8285:10;;8296:5;;8267:36;8363:4;8411:1;8406:27;;;;8447:1;8442:191;;;;8356:277;;8406:27;8424:1;8415:10;;8426:5;;;8442:191;8487:3;8477:8;8474:17;8471:43;;;8494:18;;:::i;:::-;8471:43;8543:8;8540:1;8536:16;8527:25;;8578:3;8571:5;8568:14;8565:40;;;8585:18;;:::i;:::-;8565:40;8618:5;;;8356:277;;8742:2;8732:8;8729:16;8723:3;8717:4;8714:13;8710:36;8692:2;8682:8;8679:16;8674:2;8668:4;8665:12;8661:35;8645:111;8642:246;;;8798:8;8792:4;8788:19;8779:28;;8833:3;8826:5;8823:14;8820:40;;;8840:18;;:::i;:::-;8820:40;8873:5;;8642:246;8913:42;8951:3;8941:8;8935:4;8932:1;8913:42;:::i;:::-;8898:57;;;;8987:4;8982:3;8978:14;8971:5;8968:25;8965:51;;;8996:18;;:::i;:::-;8965:51;9045:4;9038:5;9034:16;9025:25;;7983:1073;;;;;;:::o;9062:281::-;9120:5;9144:23;9162:4;9144:23;:::i;:::-;9136:31;;9188:25;9204:8;9188:25;:::i;:::-;9176:37;;9232:104;9269:66;9259:8;9253:4;9232:104;:::i;:::-;9223:113;;9062:281;;;;:::o;9349:410::-;9389:7;9412:20;9430:1;9412:20;:::i;:::-;9407:25;;9446:20;9464:1;9446:20;:::i;:::-;9441:25;;9501:1;9498;9494:9;9523:30;9541:11;9523:30;:::i;:::-;9512:41;;9702:1;9693:7;9689:15;9686:1;9683:22;9663:1;9656:9;9636:83;9613:139;;9732:18;;:::i;:::-;9613:139;9397:362;9349:410;;;;:::o;9765:227::-;9905:34;9901:1;9893:6;9889:14;9882:58;9974:10;9969:2;9961:6;9957:15;9950:35;9765:227;:::o;9998:366::-;10140:3;10161:67;10225:2;10220:3;10161:67;:::i;:::-;10154:74;;10237:93;10326:3;10237:93;:::i;:::-;10355:2;10350:3;10346:12;10339:19;;9998:366;;;:::o;10370:419::-;10536:4;10574:2;10563:9;10559:18;10551:26;;10623:9;10617:4;10613:20;10609:1;10598:9;10594:17;10587:47;10651:131;10777:4;10651:131;:::i;:::-;10643:139;;10370:419;;;:::o;10795:182::-;10935:34;10931:1;10923:6;10919:14;10912:58;10795:182;:::o;10983:366::-;11125:3;11146:67;11210:2;11205:3;11146:67;:::i;:::-;11139:74;;11222:93;11311:3;11222:93;:::i;:::-;11340:2;11335:3;11331:12;11324:19;;10983:366;;;:::o;11355:419::-;11521:4;11559:2;11548:9;11544:18;11536:26;;11608:9;11602:4;11598:20;11594:1;11583:9;11579:17;11572:47;11636:131;11762:4;11636:131;:::i;:::-;11628:139;;11355:419;;;:::o;11780:147::-;11881:11;11918:3;11903:18;;11780:147;;;;:::o;11933:114::-;;:::o;12053:398::-;12212:3;12233:83;12314:1;12309:3;12233:83;:::i;:::-;12226:90;;12325:93;12414:3;12325:93;:::i;:::-;12443:1;12438:3;12434:11;12427:18;;12053:398;;;:::o;12457:379::-;12641:3;12663:147;12806:3;12663:147;:::i;:::-;12656:154;;12827:3;12820:10;;12457:379;;;:::o;12842:173::-;12982:25;12978:1;12970:6;12966:14;12959:49;12842:173;:::o;13021:366::-;13163:3;13184:67;13248:2;13243:3;13184:67;:::i;:::-;13177:74;;13260:93;13349:3;13260:93;:::i;:::-;13378:2;13373:3;13369:12;13362:19;;13021:366;;;:::o;13393:419::-;13559:4;13597:2;13586:9;13582:18;13574:26;;13646:9;13640:4;13636:20;13632:1;13621:9;13617:17;13610:47;13674:131;13800:4;13674:131;:::i;:::-;13666:139;;13393:419;;;:::o;13818:143::-;13875:5;13906:6;13900:13;13891:22;;13922:33;13949:5;13922:33;:::i;:::-;13818:143;;;;:::o;13967:351::-;14037:6;14086:2;14074:9;14065:7;14061:23;14057:32;14054:119;;;14092:79;;:::i;:::-;14054:119;14212:1;14237:64;14293:7;14284:6;14273:9;14269:22;14237:64;:::i;:::-;14227:74;;14183:128;13967:351;;;;:::o;14324:332::-;14445:4;14483:2;14472:9;14468:18;14460:26;;14496:71;14564:1;14553:9;14549:17;14540:6;14496:71;:::i;:::-;14577:72;14645:2;14634:9;14630:18;14621:6;14577:72;:::i;:::-;14324:332;;;;;:::o;14662:85::-;14707:7;14736:5;14725:16;;14662:85;;;:::o;14753:60::-;14781:3;14802:5;14795:12;;14753:60;;;:::o;14819:158::-;14877:9;14910:61;14928:42;14937:32;14963:5;14937:32;:::i;:::-;14928:42;:::i;:::-;14910:61;:::i;:::-;14897:74;;14819:158;;;:::o;14983:147::-;15078:45;15117:5;15078:45;:::i;:::-;15073:3;15066:58;14983:147;;:::o;15136:807::-;15385:4;15423:3;15412:9;15408:19;15400:27;;15437:71;15505:1;15494:9;15490:17;15481:6;15437:71;:::i;:::-;15518:72;15586:2;15575:9;15571:18;15562:6;15518:72;:::i;:::-;15600:80;15676:2;15665:9;15661:18;15652:6;15600:80;:::i;:::-;15690;15766:2;15755:9;15751:18;15742:6;15690:80;:::i;:::-;15780:73;15848:3;15837:9;15833:19;15824:6;15780:73;:::i;:::-;15863;15931:3;15920:9;15916:19;15907:6;15863:73;:::i;:::-;15136:807;;;;;;;;;:::o;15949:143::-;16006:5;16037:6;16031:13;16022:22;;16053:33;16080:5;16053:33;:::i;:::-;15949:143;;;;:::o;16098:663::-;16186:6;16194;16202;16251:2;16239:9;16230:7;16226:23;16222:32;16219:119;;;16257:79;;:::i;:::-;16219:119;16377:1;16402:64;16458:7;16449:6;16438:9;16434:22;16402:64;:::i;:::-;16392:74;;16348:128;16515:2;16541:64;16597:7;16588:6;16577:9;16573:22;16541:64;:::i;:::-;16531:74;;16486:129;16654:2;16680:64;16736:7;16727:6;16716:9;16712:22;16680:64;:::i;:::-;16670:74;;16625:129;16098:663;;;;;:::o;16767:332::-;16888:4;16926:2;16915:9;16911:18;16903:26;;16939:71;17007:1;16996:9;16992:17;16983:6;16939:71;:::i;:::-;17020:72;17088:2;17077:9;17073:18;17064:6;17020:72;:::i;:::-;16767:332;;;;;:::o;17105:116::-;17175:21;17190:5;17175:21;:::i;:::-;17168:5;17165:32;17155:60;;17211:1;17208;17201:12;17155:60;17105:116;:::o;17227:137::-;17281:5;17312:6;17306:13;17297:22;;17328:30;17352:5;17328:30;:::i;:::-;17227:137;;;;:::o;17370:345::-;17437:6;17486:2;17474:9;17465:7;17461:23;17457:32;17454:119;;;17492:79;;:::i;:::-;17454:119;17612:1;17637:61;17690:7;17681:6;17670:9;17666:22;17637:61;:::i;:::-;17627:71;;17583:125;17370:345;;;;:::o;17721:191::-;17761:3;17780:20;17798:1;17780:20;:::i;:::-;17775:25;;17814:20;17832:1;17814:20;:::i;:::-;17809:25;;17857:1;17854;17850:9;17843:16;;17878:3;17875:1;17872:10;17869:36;;;17885:18;;:::i;:::-;17869:36;17721:191;;;;:::o;17918:162::-;18058:14;18054:1;18046:6;18042:14;18035:38;17918:162;:::o;18086:366::-;18228:3;18249:67;18313:2;18308:3;18249:67;:::i;:::-;18242:74;;18325:93;18414:3;18325:93;:::i;:::-;18443:2;18438:3;18434:12;18427:19;;18086:366;;;:::o;18458:419::-;18624:4;18662:2;18651:9;18647:18;18639:26;;18711:9;18705:4;18701:20;18697:1;18686:9;18682:17;18675:47;18739:131;18865:4;18739:131;:::i;:::-;18731:139;;18458:419;;;:::o;18883:180::-;18931:77;18928:1;18921:88;19028:4;19025:1;19018:15;19052:4;19049:1;19042:15;19069:185;19109:1;19126:20;19144:1;19126:20;:::i;:::-;19121:25;;19160:20;19178:1;19160:20;:::i;:::-;19155:25;;19199:1;19189:35;;19204:18;;:::i;:::-;19189:35;19246:1;19243;19239:9;19234:14;;19069:185;;;;:::o;19260:223::-;19400:34;19396:1;19388:6;19384:14;19377:58;19469:6;19464:2;19456:6;19452:15;19445:31;19260:223;:::o;19489:366::-;19631:3;19652:67;19716:2;19711:3;19652:67;:::i;:::-;19645:74;;19728:93;19817:3;19728:93;:::i;:::-;19846:2;19841:3;19837:12;19830:19;;19489:366;;;:::o;19861:419::-;20027:4;20065:2;20054:9;20050:18;20042:26;;20114:9;20108:4;20104:20;20100:1;20089:9;20085:17;20078:47;20142:131;20268:4;20142:131;:::i;:::-;20134:139;;19861:419;;;:::o;20286:221::-;20426:34;20422:1;20414:6;20410:14;20403:58;20495:4;20490:2;20482:6;20478:15;20471:29;20286:221;:::o;20513:366::-;20655:3;20676:67;20740:2;20735:3;20676:67;:::i;:::-;20669:74;;20752:93;20841:3;20752:93;:::i;:::-;20870:2;20865:3;20861:12;20854:19;;20513:366;;;:::o;20885:419::-;21051:4;21089:2;21078:9;21074:18;21066:26;;21138:9;21132:4;21128:20;21124:1;21113:9;21109:17;21102:47;21166:131;21292:4;21166:131;:::i;:::-;21158:139;;20885:419;;;:::o;21310:224::-;21450:34;21446:1;21438:6;21434:14;21427:58;21519:7;21514:2;21506:6;21502:15;21495:32;21310:224;:::o;21540:366::-;21682:3;21703:67;21767:2;21762:3;21703:67;:::i;:::-;21696:74;;21779:93;21868:3;21779:93;:::i;:::-;21897:2;21892:3;21888:12;21881:19;;21540:366;;;:::o;21912:419::-;22078:4;22116:2;22105:9;22101:18;22093:26;;22165:9;22159:4;22155:20;22151:1;22140:9;22136:17;22129:47;22193:131;22319:4;22193:131;:::i;:::-;22185:139;;21912:419;;;:::o;22337:178::-;22477:30;22473:1;22465:6;22461:14;22454:54;22337:178;:::o;22521:366::-;22663:3;22684:67;22748:2;22743:3;22684:67;:::i;:::-;22677:74;;22760:93;22849:3;22760:93;:::i;:::-;22878:2;22873:3;22869:12;22862:19;;22521:366;;;:::o;22893:419::-;23059:4;23097:2;23086:9;23082:18;23074:26;;23146:9;23140:4;23136:20;23132:1;23121:9;23117:17;23110:47;23174:131;23300:4;23174:131;:::i;:::-;23166:139;;22893:419;;;:::o;23318:166::-;23458:18;23454:1;23446:6;23442:14;23435:42;23318:166;:::o;23490:366::-;23632:3;23653:67;23717:2;23712:3;23653:67;:::i;:::-;23646:74;;23729:93;23818:3;23729:93;:::i;:::-;23847:2;23842:3;23838:12;23831:19;;23490:366;;;:::o;23862:419::-;24028:4;24066:2;24055:9;24051:18;24043:26;;24115:9;24109:4;24105:20;24101:1;24090:9;24086:17;24079:47;24143:131;24269:4;24143:131;:::i;:::-;24135:139;;23862:419;;;:::o;24287:173::-;24427:25;24423:1;24415:6;24411:14;24404:49;24287:173;:::o;24466:366::-;24608:3;24629:67;24693:2;24688:3;24629:67;:::i;:::-;24622:74;;24705:93;24794:3;24705:93;:::i;:::-;24823:2;24818:3;24814:12;24807:19;;24466:366;;;:::o;24838:419::-;25004:4;25042:2;25031:9;25027:18;25019:26;;25091:9;25085:4;25081:20;25077:1;25066:9;25062:17;25055:47;25119:131;25245:4;25119:131;:::i;:::-;25111:139;;24838:419;;;:::o;25263:177::-;25403:29;25399:1;25391:6;25387:14;25380:53;25263:177;:::o;25446:366::-;25588:3;25609:67;25673:2;25668:3;25609:67;:::i;:::-;25602:74;;25685:93;25774:3;25685:93;:::i;:::-;25803:2;25798:3;25794:12;25787:19;;25446:366;;;:::o;25818:419::-;25984:4;26022:2;26011:9;26007:18;25999:26;;26071:9;26065:4;26061:20;26057:1;26046:9;26042:17;26035:47;26099:131;26225:4;26099:131;:::i;:::-;26091:139;;25818:419;;;:::o;26243:180::-;26291:77;26288:1;26281:88;26388:4;26385:1;26378:15;26412:4;26409:1;26402:15;26429:180;26477:77;26474:1;26467:88;26574:4;26571:1;26564:15;26598:4;26595:1;26588:15;26615:114;26682:6;26716:5;26710:12;26700:22;;26615:114;;;:::o;26735:184::-;26834:11;26868:6;26863:3;26856:19;26908:4;26903:3;26899:14;26884:29;;26735:184;;;;:::o;26925:132::-;26992:4;27015:3;27007:11;;27045:4;27040:3;27036:14;27028:22;;26925:132;;;:::o;27063:108::-;27140:24;27158:5;27140:24;:::i;:::-;27135:3;27128:37;27063:108;;:::o;27177:179::-;27246:10;27267:46;27309:3;27301:6;27267:46;:::i;:::-;27345:4;27340:3;27336:14;27322:28;;27177:179;;;;:::o;27362:113::-;27432:4;27464;27459:3;27455:14;27447:22;;27362:113;;;:::o;27511:732::-;27630:3;27659:54;27707:5;27659:54;:::i;:::-;27729:86;27808:6;27803:3;27729:86;:::i;:::-;27722:93;;27839:56;27889:5;27839:56;:::i;:::-;27918:7;27949:1;27934:284;27959:6;27956:1;27953:13;27934:284;;;28035:6;28029:13;28062:63;28121:3;28106:13;28062:63;:::i;:::-;28055:70;;28148:60;28201:6;28148:60;:::i;:::-;28138:70;;27994:224;27981:1;27978;27974:9;27969:14;;27934:284;;;27938:14;28234:3;28227:10;;27635:608;;;27511:732;;;;:::o;28249:831::-;28512:4;28550:3;28539:9;28535:19;28527:27;;28564:71;28632:1;28621:9;28617:17;28608:6;28564:71;:::i;:::-;28645:80;28721:2;28710:9;28706:18;28697:6;28645:80;:::i;:::-;28772:9;28766:4;28762:20;28757:2;28746:9;28742:18;28735:48;28800:108;28903:4;28894:6;28800:108;:::i;:::-;28792:116;;28918:72;28986:2;28975:9;28971:18;28962:6;28918:72;:::i;:::-;29000:73;29068:3;29057:9;29053:19;29044:6;29000:73;:::i;:::-;28249:831;;;;;;;;:::o;29086:225::-;29226:34;29222:1;29214:6;29210:14;29203:58;29295:8;29290:2;29282:6;29278:15;29271:33;29086:225;:::o;29317:366::-;29459:3;29480:67;29544:2;29539:3;29480:67;:::i;:::-;29473:74;;29556:93;29645:3;29556:93;:::i;:::-;29674:2;29669:3;29665:12;29658:19;;29317:366;;;:::o;29689:419::-;29855:4;29893:2;29882:9;29878:18;29870:26;;29942:9;29936:4;29932:20;29928:1;29917:9;29913:17;29906:47;29970:131;30096:4;29970:131;:::i;:::-;29962:139;;29689:419;;;:::o;30114:194::-;30154:4;30174:20;30192:1;30174:20;:::i;:::-;30169:25;;30208:20;30226:1;30208:20;:::i;:::-;30203:25;;30252:1;30249;30245:9;30237:17;;30276:1;30270:4;30267:11;30264:37;;;30281:18;;:::i;:::-;30264:37;30114:194;;;;:::o

Swarm Source

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