ETH Price: $3,407.33 (-1.61%)
Gas: 11 Gwei

Token

Zion Wallet (ZION)
 

Overview

Max Total Supply

100,000,000 ZION

Holders

1,910

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
759.401620068585480204 ZION

Value
$0.00
0xeafc1d81d788a575b0fc05e0dc1a413a2cc6a252
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:
Zion

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-03-11
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.24;

/*


███████╗██╗ ██████╗ ███╗   ██╗    ██╗    ██╗ █████╗ ██╗     ██╗     ███████╗████████╗
╚══███╔╝██║██╔═══██╗████╗  ██║    ██║    ██║██╔══██╗██║     ██║     ██╔════╝╚══██╔══╝
  ███╔╝ ██║██║   ██║██╔██╗ ██║    ██║ █╗ ██║███████║██║     ██║     █████╗     ██║   
 ███╔╝  ██║██║   ██║██║╚██╗██║    ██║███╗██║██╔══██║██║     ██║     ██╔══╝     ██║   
███████╗██║╚██████╔╝██║ ╚████║    ╚███╔███╔╝██║  ██║███████╗███████╗███████╗   ██║   
╚══════╝╚═╝ ╚═════╝ ╚═╝  ╚═══╝     ╚══╝╚══╝ ╚═╝  ╚═╝╚══════╝╚══════╝╚══════╝   ╚═╝   
                                                                                                           

Website: zionwallets.com
Telegram: t.me/ZionWallet
Linktree: Linktr.ee/zionwallet
X/Twitter: x.com/ZionWallet
*/

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

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

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

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

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

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

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

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

}

abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

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

contract Zion is Context, IERC20, Ownable {
    using SafeMath for uint256;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _isExcludedFromFee;

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 100000000 * 10**_decimals; 
    string private constant _name = unicode"Zion Wallet";  
    string private constant _symbol = unicode"ZION"; 
    uint256 public _taxSwapThreshold= 100000 * 10**_decimals;
    uint256 public antiWhaleLimit = 2000000 * 10 ** decimals();

    uint256 public _buyFee = 0; //Buy tax
    uint256 public _sellFee = 0; // Sell tax
    uint256 public _transferFee = 2; //Transfer tax

    address payable public feeCollectorWallet = payable(0xDeb5c5401f8f0f74616D095C472FbD2178B8ccf6);

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

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

    constructor () {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // mainnet router address
       // IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1); //testnet router
        // Create a uniswap pair for this new token
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        // set the rest of the contract variables
        uniswapV2Router = _uniswapV2Router;

        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[feeCollectorWallet] = true;

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

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

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

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

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

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

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

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

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

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

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

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

            if(to != uniswapV2Pair){
               require(balanceOf(to) + amount <= antiWhaleLimit, "Exceeds the antiWhaleLimit.");
            }

            if(_transferFee > 0) {
            if(to != uniswapV2Pair && from != uniswapV2Pair) {
                taxAmount = amount.mul(_transferFee).div(100);
            }
            }

            if(_buyFee > 0) {
            if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
                taxAmount = amount.mul(_buyFee).div(100);
            }
            }

            if(_sellFee > 0) {
            if(to == uniswapV2Pair){
                taxAmount = amount.mul(_sellFee).div(100);
            }
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

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


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

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        if(tokenAmount==0){return;}
        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
        );
    }

    function sendETHToFee(uint256 amount) private {
       (bool callSuccess, ) = payable(feeCollectorWallet).call{value: amount}("");
        require(callSuccess, "Call failed");
    }


    receive() external payable {}

    function manualSwap() external {
        require(_msgSender()==feeCollectorWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }

    function changeAntiWhaleLimit(uint256 _maxLimit) public onlyOwner{
        require(_maxLimit > totalSupply().div(200),"Limit too less");
        antiWhaleLimit = _maxLimit;
    }

    function changeBuyTaxes(uint256 _fee) public onlyOwner {
        _buyFee = _fee;
    }

    function changeSellTaxes(uint256 _fee) public onlyOwner {
        _sellFee = _fee;
    }

    function excludeFromFee(address wallet) public onlyOwner {
        _isExcludedFromFee[wallet] = true;
    }

    function subjectToFee(address wallet) public onlyOwner {
        _isExcludedFromFee[wallet] = false;
    }
    
    }

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_transferFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"name":"antiWhaleLimit","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":[{"internalType":"uint256","name":"_maxLimit","type":"uint256"}],"name":"changeAntiWhaleLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"changeBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"changeSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeCollectorWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"subjectToFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526012600a620000149190620007d6565b620186a062000024919062000826565b600455620000376200054d60201b60201c565b600a620000459190620007d6565b621e848062000055919062000826565b6005555f6006555f600755600260085573deb5c5401f8f0f74616d095c472fbd2178b8ccf660095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600b60146101000a81548160ff0219169083151502179055506001600b60156101000a81548160ff021916908315150217905550348015620000fa575f80fd5b506200011b6200010f6200055560201b60201c565b6200055c60201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200017d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a39190620008d5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000209573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200022f9190620008d5565b6040518363ffffffff1660e01b81526004016200024e92919062000916565b6020604051808303815f875af11580156200026b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002919190620008d5565b600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620003209190620007d6565b6305f5e10062000331919062000826565b60015f620003446200055560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620003966200061d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620004c06200055560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a6200051e9190620007d6565b6305f5e1006200052f919062000826565b6040516200053e919062000952565b60405180910390a3506200096d565b5f6012905090565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620006ce57808604811115620006a657620006a562000644565b5b6001851615620006b65780820291505b8081029050620006c68562000671565b945062000686565b94509492505050565b5f82620006e85760019050620007ba565b81620006f7575f9050620007ba565b81600181146200071057600281146200071b5762000751565b6001915050620007ba565b60ff84111562000730576200072f62000644565b5b8360020a9150848211156200074a576200074962000644565b5b50620007ba565b5060208310610133831016604e8410600b84101617156200078b5782820a90508381111562000785576200078462000644565b5b620007ba565b6200079a84848460016200067d565b92509050818404811115620007b457620007b362000644565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620007e282620007c1565b9150620007ef83620007ca565b92506200081e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620006d7565b905092915050565b5f6200083282620007c1565b91506200083f83620007c1565b92508282026200084f81620007c1565b9150828204841483151762000869576200086862000644565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200089f8262000874565b9050919050565b620008b18162000893565b8114620008bc575f80fd5b50565b5f81519050620008cf81620008a6565b92915050565b5f60208284031215620008ed57620008ec62000870565b5b5f620008fc84828501620008bf565b91505092915050565b620009108162000893565b82525050565b5f6040820190506200092b5f83018562000905565b6200093a602083018462000905565b9392505050565b6200094c81620007c1565b82525050565b5f602082019050620009675f83018462000941565b92915050565b612a56806200097b5f395ff3fe608060405260043610610169575f3560e01c8063590f897e116100d057806393d89a0c11610089578063a9059cbb11610063578063a9059cbb146104fc578063bf474bed14610538578063dd62ed3e14610562578063f2fde38b1461059e57610170565b806393d89a0c1461048257806395d89b41146104aa578063a3cdf023146104d457610170565b8063590f897e1461037857806370a08231146103a2578063715018a6146103de578063768dc710146103f45780638da5cb5b1461043057806393114b1d1461045a57610170565b806323b872dd1161012257806323b872dd14610280578063313ce567146102bc5780633df9a8d2146102e657806340b9a54b14610310578063437823ec1461033a57806351bc3c851461036257610170565b806306fdde0314610174578063095ea7b31461019e5780631234f868146101da57806318160ddd146102045780631e0117bd1461022e5780631fafa8bc1461025657610170565b3661017057005b5f80fd5b34801561017f575f80fd5b506101886105c6565b6040516101959190611c76565b60405180910390f35b3480156101a9575f80fd5b506101c460048036038101906101bf9190611d27565b610603565b6040516101d19190611d7f565b60405180910390f35b3480156101e5575f80fd5b506101ee610620565b6040516101fb9190611da7565b60405180910390f35b34801561020f575f80fd5b50610218610626565b6040516102259190611da7565b60405180910390f35b348015610239575f80fd5b50610254600480360381019061024f9190611dc0565b610649565b005b348015610261575f80fd5b5061026a6106a8565b6040516102779190611e0b565b60405180910390f35b34801561028b575f80fd5b506102a660048036038101906102a19190611e24565b6106cd565b6040516102b39190611d7f565b60405180910390f35b3480156102c7575f80fd5b506102d06107a1565b6040516102dd9190611e8f565b60405180910390f35b3480156102f1575f80fd5b506102fa6107a9565b6040516103079190611da7565b60405180910390f35b34801561031b575f80fd5b506103246107af565b6040516103319190611da7565b60405180910390f35b348015610345575f80fd5b50610360600480360381019061035b9190611dc0565b6107b5565b005b34801561036d575f80fd5b50610376610815565b005b348015610383575f80fd5b5061038c6108ac565b6040516103999190611da7565b60405180910390f35b3480156103ad575f80fd5b506103c860048036038101906103c39190611dc0565b6108b2565b6040516103d59190611da7565b60405180910390f35b3480156103e9575f80fd5b506103f26108f8565b005b3480156103ff575f80fd5b5061041a60048036038101906104159190611dc0565b61090b565b6040516104279190611d7f565b60405180910390f35b34801561043b575f80fd5b50610444610928565b6040516104519190611eb7565b60405180910390f35b348015610465575f80fd5b50610480600480360381019061047b9190611ed0565b61094f565b005b34801561048d575f80fd5b506104a860048036038101906104a39190611ed0565b6109bd565b005b3480156104b5575f80fd5b506104be6109cf565b6040516104cb9190611c76565b60405180910390f35b3480156104df575f80fd5b506104fa60048036038101906104f59190611ed0565b610a0c565b005b348015610507575f80fd5b50610522600480360381019061051d9190611d27565b610a1e565b60405161052f9190611d7f565b60405180910390f35b348015610543575f80fd5b5061054c610a3b565b6040516105599190611da7565b60405180910390f35b34801561056d575f80fd5b5061058860048036038101906105839190611efb565b610a41565b6040516105959190611da7565b60405180910390f35b3480156105a9575f80fd5b506105c460048036038101906105bf9190611dc0565b610ac3565b005b60606040518060400160405280600b81526020017f5a696f6e2057616c6c6574000000000000000000000000000000000000000000815250905090565b5f61061661060f610b45565b8484610b4c565b6001905092915050565b60055481565b5f6012600a6106359190612095565b6305f5e10061064491906120df565b905090565b610651610d0f565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6106d9848484610d8d565b610796846106e5610b45565b610791856040518060600160405280602881526020016129f96028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610748610b45565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546115c19092919063ffffffff16565b610b4c565b600190509392505050565b5f6012905090565b60085481565b60065481565b6107bd610d0f565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610855610b45565b73ffffffffffffffffffffffffffffffffffffffff1614610874575f80fd5b5f61087e306108b2565b90505f8111156108925761089181611623565b5b5f4790505f8111156108a8576108a781611897565b5b5050565b60075481565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610900610d0f565b6109095f611964565b565b6003602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610957610d0f565b61097260c8610964610626565b611a2590919063ffffffff16565b81116109b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109aa9061216a565b60405180910390fd5b8060058190555050565b6109c5610d0f565b8060078190555050565b60606040518060400160405280600481526020017f5a494f4e00000000000000000000000000000000000000000000000000000000815250905090565b610a14610d0f565b8060068190555050565b5f610a31610a2a610b45565b8484610d8d565b6001905092915050565b60045481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610acb610d0f565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b30906121f8565b60405180910390fd5b610b4281611964565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610bba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb190612286565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1f90612314565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d029190611da7565b60405180910390a3505050565b610d17610b45565b73ffffffffffffffffffffffffffffffffffffffff16610d35610928565b73ffffffffffffffffffffffffffffffffffffffff1614610d8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d829061237c565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610dfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df29061240a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6090612498565b60405180910390fd5b5f8111610eab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea290612526565b60405180910390fd5b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015610f4a575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561131157600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610ffc5760055482610fb0856108b2565b610fba9190612544565b1115610ffb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff2906125c1565b60405180910390fd5b5b5f60085411156110e157600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156110b05750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156110e0576110dd60646110cf60085485611a6e90919063ffffffff16565b611a2590919063ffffffff16565b90505b5b5f60065411156111c557600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156111945750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156111c4576111c160646111b360065485611a6e90919063ffffffff16565b611a2590919063ffffffff16565b90505b5b5f600754111561124f57600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361124e5761124b606461123d60075485611a6e90919063ffffffff16565b611a2590919063ffffffff16565b90505b5b5f611259306108b2565b9050600b60149054906101000a900460ff161580156112c45750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156112dc5750600b60159054906101000a900460ff165b80156112e9575060045481115b1561130f576112f781611623565b5f4790505f81111561130d5761130c47611897565b5b505b505b5f811115611410576113698160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ae590919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114079190611da7565b60405180910390a35b6114608260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b4290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506115036114b78284611b4290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ae590919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6115a68486611b4290919063ffffffff16565b6040516115b39190611da7565b60405180910390a350505050565b5f838311158290611608576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ff9190611c76565b60405180910390fd5b505f838561161691906125df565b9050809150509392505050565b6001600b60146101000a81548160ff0219169083151502179055505f81031561187a575f600267ffffffffffffffff81111561166257611661612612565b5b6040519080825280602002602001820160405280156116905781602001602082028036833780820191505090505b50905030815f815181106116a7576116a661263f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561174b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061176f9190612680565b816001815181106117835761178261263f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506117e930600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610b4c565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161184b9594939291906127a4565b5f604051808303815f87803b158015611862575f80fd5b505af1158015611874573d5f803e3d5ffd5b50505050505b5f600b60146101000a81548160ff02191690831515021790555050565b5f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516118dd90612829565b5f6040518083038185875af1925050503d805f8114611917576040519150601f19603f3d011682016040523d82523d5f602084013e61191c565b606091505b5050905080611960576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195790612887565b60405180910390fd5b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f611a6683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b8b565b905092915050565b5f808303611a7e575f9050611adf565b5f8284611a8b91906120df565b9050828482611a9a91906128d2565b14611ada576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad190612972565b60405180910390fd5b809150505b92915050565b5f808284611af39190612544565b905083811015611b38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2f906129da565b60405180910390fd5b8091505092915050565b5f611b8383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115c1565b905092915050565b5f8083118290611bd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc89190611c76565b60405180910390fd5b505f8385611bdf91906128d2565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611c23578082015181840152602081019050611c08565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611c4882611bec565b611c528185611bf6565b9350611c62818560208601611c06565b611c6b81611c2e565b840191505092915050565b5f6020820190508181035f830152611c8e8184611c3e565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611cc382611c9a565b9050919050565b611cd381611cb9565b8114611cdd575f80fd5b50565b5f81359050611cee81611cca565b92915050565b5f819050919050565b611d0681611cf4565b8114611d10575f80fd5b50565b5f81359050611d2181611cfd565b92915050565b5f8060408385031215611d3d57611d3c611c96565b5b5f611d4a85828601611ce0565b9250506020611d5b85828601611d13565b9150509250929050565b5f8115159050919050565b611d7981611d65565b82525050565b5f602082019050611d925f830184611d70565b92915050565b611da181611cf4565b82525050565b5f602082019050611dba5f830184611d98565b92915050565b5f60208284031215611dd557611dd4611c96565b5b5f611de284828501611ce0565b91505092915050565b5f611df582611c9a565b9050919050565b611e0581611deb565b82525050565b5f602082019050611e1e5f830184611dfc565b92915050565b5f805f60608486031215611e3b57611e3a611c96565b5b5f611e4886828701611ce0565b9350506020611e5986828701611ce0565b9250506040611e6a86828701611d13565b9150509250925092565b5f60ff82169050919050565b611e8981611e74565b82525050565b5f602082019050611ea25f830184611e80565b92915050565b611eb181611cb9565b82525050565b5f602082019050611eca5f830184611ea8565b92915050565b5f60208284031215611ee557611ee4611c96565b5b5f611ef284828501611d13565b91505092915050565b5f8060408385031215611f1157611f10611c96565b5b5f611f1e85828601611ce0565b9250506020611f2f85828601611ce0565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115611fbb57808604811115611f9757611f96611f39565b5b6001851615611fa65780820291505b8081029050611fb485611f66565b9450611f7b565b94509492505050565b5f82611fd3576001905061208e565b81611fe0575f905061208e565b8160018114611ff657600281146120005761202f565b600191505061208e565b60ff84111561201257612011611f39565b5b8360020a91508482111561202957612028611f39565b5b5061208e565b5060208310610133831016604e8410600b84101617156120645782820a90508381111561205f5761205e611f39565b5b61208e565b6120718484846001611f72565b9250905081840481111561208857612087611f39565b5b81810290505b9392505050565b5f61209f82611cf4565b91506120aa83611e74565b92506120d77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611fc4565b905092915050565b5f6120e982611cf4565b91506120f483611cf4565b925082820261210281611cf4565b9150828204841483151761211957612118611f39565b5b5092915050565b7f4c696d697420746f6f206c6573730000000000000000000000000000000000005f82015250565b5f612154600e83611bf6565b915061215f82612120565b602082019050919050565b5f6020820190508181035f83015261218181612148565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6121e2602683611bf6565b91506121ed82612188565b604082019050919050565b5f6020820190508181035f83015261220f816121d6565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612270602483611bf6565b915061227b82612216565b604082019050919050565b5f6020820190508181035f83015261229d81612264565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6122fe602283611bf6565b9150612309826122a4565b604082019050919050565b5f6020820190508181035f83015261232b816122f2565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612366602083611bf6565b915061237182612332565b602082019050919050565b5f6020820190508181035f8301526123938161235a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6123f4602583611bf6565b91506123ff8261239a565b604082019050919050565b5f6020820190508181035f830152612421816123e8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612482602383611bf6565b915061248d82612428565b604082019050919050565b5f6020820190508181035f8301526124af81612476565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612510602983611bf6565b915061251b826124b6565b604082019050919050565b5f6020820190508181035f83015261253d81612504565b9050919050565b5f61254e82611cf4565b915061255983611cf4565b925082820190508082111561257157612570611f39565b5b92915050565b7f457863656564732074686520616e74695768616c654c696d69742e00000000005f82015250565b5f6125ab601b83611bf6565b91506125b682612577565b602082019050919050565b5f6020820190508181035f8301526125d88161259f565b9050919050565b5f6125e982611cf4565b91506125f483611cf4565b925082820390508181111561260c5761260b611f39565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061267a81611cca565b92915050565b5f6020828403121561269557612694611c96565b5b5f6126a28482850161266c565b91505092915050565b5f819050919050565b5f819050919050565b5f6126d76126d26126cd846126ab565b6126b4565b611cf4565b9050919050565b6126e7816126bd565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61271f81611cb9565b82525050565b5f6127308383612716565b60208301905092915050565b5f602082019050919050565b5f612752826126ed565b61275c81856126f7565b935061276783612707565b805f5b8381101561279757815161277e8882612725565b97506127898361273c565b92505060018101905061276a565b5085935050505092915050565b5f60a0820190506127b75f830188611d98565b6127c460208301876126de565b81810360408301526127d68186612748565b90506127e56060830185611ea8565b6127f26080830184611d98565b9695505050505050565b5f81905092915050565b50565b5f6128145f836127fc565b915061281f82612806565b5f82019050919050565b5f61283382612809565b9150819050919050565b7f43616c6c206661696c65640000000000000000000000000000000000000000005f82015250565b5f612871600b83611bf6565b915061287c8261283d565b602082019050919050565b5f6020820190508181035f83015261289e81612865565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6128dc82611cf4565b91506128e783611cf4565b9250826128f7576128f66128a5565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61295c602183611bf6565b915061296782612902565b604082019050919050565b5f6020820190508181035f83015261298981612950565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6129c4601b83611bf6565b91506129cf82612990565b602082019050919050565b5f6020820190508181035f8301526129f1816129b8565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220989c33cf60129324a1ebe3dc4a4603b2e7aeb78314285db0483c128a33554e8f64736f6c63430008180033

Deployed Bytecode

0x608060405260043610610169575f3560e01c8063590f897e116100d057806393d89a0c11610089578063a9059cbb11610063578063a9059cbb146104fc578063bf474bed14610538578063dd62ed3e14610562578063f2fde38b1461059e57610170565b806393d89a0c1461048257806395d89b41146104aa578063a3cdf023146104d457610170565b8063590f897e1461037857806370a08231146103a2578063715018a6146103de578063768dc710146103f45780638da5cb5b1461043057806393114b1d1461045a57610170565b806323b872dd1161012257806323b872dd14610280578063313ce567146102bc5780633df9a8d2146102e657806340b9a54b14610310578063437823ec1461033a57806351bc3c851461036257610170565b806306fdde0314610174578063095ea7b31461019e5780631234f868146101da57806318160ddd146102045780631e0117bd1461022e5780631fafa8bc1461025657610170565b3661017057005b5f80fd5b34801561017f575f80fd5b506101886105c6565b6040516101959190611c76565b60405180910390f35b3480156101a9575f80fd5b506101c460048036038101906101bf9190611d27565b610603565b6040516101d19190611d7f565b60405180910390f35b3480156101e5575f80fd5b506101ee610620565b6040516101fb9190611da7565b60405180910390f35b34801561020f575f80fd5b50610218610626565b6040516102259190611da7565b60405180910390f35b348015610239575f80fd5b50610254600480360381019061024f9190611dc0565b610649565b005b348015610261575f80fd5b5061026a6106a8565b6040516102779190611e0b565b60405180910390f35b34801561028b575f80fd5b506102a660048036038101906102a19190611e24565b6106cd565b6040516102b39190611d7f565b60405180910390f35b3480156102c7575f80fd5b506102d06107a1565b6040516102dd9190611e8f565b60405180910390f35b3480156102f1575f80fd5b506102fa6107a9565b6040516103079190611da7565b60405180910390f35b34801561031b575f80fd5b506103246107af565b6040516103319190611da7565b60405180910390f35b348015610345575f80fd5b50610360600480360381019061035b9190611dc0565b6107b5565b005b34801561036d575f80fd5b50610376610815565b005b348015610383575f80fd5b5061038c6108ac565b6040516103999190611da7565b60405180910390f35b3480156103ad575f80fd5b506103c860048036038101906103c39190611dc0565b6108b2565b6040516103d59190611da7565b60405180910390f35b3480156103e9575f80fd5b506103f26108f8565b005b3480156103ff575f80fd5b5061041a60048036038101906104159190611dc0565b61090b565b6040516104279190611d7f565b60405180910390f35b34801561043b575f80fd5b50610444610928565b6040516104519190611eb7565b60405180910390f35b348015610465575f80fd5b50610480600480360381019061047b9190611ed0565b61094f565b005b34801561048d575f80fd5b506104a860048036038101906104a39190611ed0565b6109bd565b005b3480156104b5575f80fd5b506104be6109cf565b6040516104cb9190611c76565b60405180910390f35b3480156104df575f80fd5b506104fa60048036038101906104f59190611ed0565b610a0c565b005b348015610507575f80fd5b50610522600480360381019061051d9190611d27565b610a1e565b60405161052f9190611d7f565b60405180910390f35b348015610543575f80fd5b5061054c610a3b565b6040516105599190611da7565b60405180910390f35b34801561056d575f80fd5b5061058860048036038101906105839190611efb565b610a41565b6040516105959190611da7565b60405180910390f35b3480156105a9575f80fd5b506105c460048036038101906105bf9190611dc0565b610ac3565b005b60606040518060400160405280600b81526020017f5a696f6e2057616c6c6574000000000000000000000000000000000000000000815250905090565b5f61061661060f610b45565b8484610b4c565b6001905092915050565b60055481565b5f6012600a6106359190612095565b6305f5e10061064491906120df565b905090565b610651610d0f565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6106d9848484610d8d565b610796846106e5610b45565b610791856040518060600160405280602881526020016129f96028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610748610b45565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546115c19092919063ffffffff16565b610b4c565b600190509392505050565b5f6012905090565b60085481565b60065481565b6107bd610d0f565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610855610b45565b73ffffffffffffffffffffffffffffffffffffffff1614610874575f80fd5b5f61087e306108b2565b90505f8111156108925761089181611623565b5b5f4790505f8111156108a8576108a781611897565b5b5050565b60075481565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610900610d0f565b6109095f611964565b565b6003602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610957610d0f565b61097260c8610964610626565b611a2590919063ffffffff16565b81116109b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109aa9061216a565b60405180910390fd5b8060058190555050565b6109c5610d0f565b8060078190555050565b60606040518060400160405280600481526020017f5a494f4e00000000000000000000000000000000000000000000000000000000815250905090565b610a14610d0f565b8060068190555050565b5f610a31610a2a610b45565b8484610d8d565b6001905092915050565b60045481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610acb610d0f565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b30906121f8565b60405180910390fd5b610b4281611964565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610bba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb190612286565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1f90612314565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d029190611da7565b60405180910390a3505050565b610d17610b45565b73ffffffffffffffffffffffffffffffffffffffff16610d35610928565b73ffffffffffffffffffffffffffffffffffffffff1614610d8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d829061237c565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610dfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df29061240a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6090612498565b60405180910390fd5b5f8111610eab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea290612526565b60405180910390fd5b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015610f4a575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561131157600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610ffc5760055482610fb0856108b2565b610fba9190612544565b1115610ffb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff2906125c1565b60405180910390fd5b5b5f60085411156110e157600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156110b05750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156110e0576110dd60646110cf60085485611a6e90919063ffffffff16565b611a2590919063ffffffff16565b90505b5b5f60065411156111c557600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156111945750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156111c4576111c160646111b360065485611a6e90919063ffffffff16565b611a2590919063ffffffff16565b90505b5b5f600754111561124f57600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361124e5761124b606461123d60075485611a6e90919063ffffffff16565b611a2590919063ffffffff16565b90505b5b5f611259306108b2565b9050600b60149054906101000a900460ff161580156112c45750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156112dc5750600b60159054906101000a900460ff165b80156112e9575060045481115b1561130f576112f781611623565b5f4790505f81111561130d5761130c47611897565b5b505b505b5f811115611410576113698160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ae590919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114079190611da7565b60405180910390a35b6114608260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b4290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506115036114b78284611b4290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ae590919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6115a68486611b4290919063ffffffff16565b6040516115b39190611da7565b60405180910390a350505050565b5f838311158290611608576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ff9190611c76565b60405180910390fd5b505f838561161691906125df565b9050809150509392505050565b6001600b60146101000a81548160ff0219169083151502179055505f81031561187a575f600267ffffffffffffffff81111561166257611661612612565b5b6040519080825280602002602001820160405280156116905781602001602082028036833780820191505090505b50905030815f815181106116a7576116a661263f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561174b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061176f9190612680565b816001815181106117835761178261263f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506117e930600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610b4c565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161184b9594939291906127a4565b5f604051808303815f87803b158015611862575f80fd5b505af1158015611874573d5f803e3d5ffd5b50505050505b5f600b60146101000a81548160ff02191690831515021790555050565b5f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516118dd90612829565b5f6040518083038185875af1925050503d805f8114611917576040519150601f19603f3d011682016040523d82523d5f602084013e61191c565b606091505b5050905080611960576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195790612887565b60405180910390fd5b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f611a6683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b8b565b905092915050565b5f808303611a7e575f9050611adf565b5f8284611a8b91906120df565b9050828482611a9a91906128d2565b14611ada576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad190612972565b60405180910390fd5b809150505b92915050565b5f808284611af39190612544565b905083811015611b38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2f906129da565b60405180910390fd5b8091505092915050565b5f611b8383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115c1565b905092915050565b5f8083118290611bd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc89190611c76565b60405180910390fd5b505f8385611bdf91906128d2565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611c23578082015181840152602081019050611c08565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611c4882611bec565b611c528185611bf6565b9350611c62818560208601611c06565b611c6b81611c2e565b840191505092915050565b5f6020820190508181035f830152611c8e8184611c3e565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611cc382611c9a565b9050919050565b611cd381611cb9565b8114611cdd575f80fd5b50565b5f81359050611cee81611cca565b92915050565b5f819050919050565b611d0681611cf4565b8114611d10575f80fd5b50565b5f81359050611d2181611cfd565b92915050565b5f8060408385031215611d3d57611d3c611c96565b5b5f611d4a85828601611ce0565b9250506020611d5b85828601611d13565b9150509250929050565b5f8115159050919050565b611d7981611d65565b82525050565b5f602082019050611d925f830184611d70565b92915050565b611da181611cf4565b82525050565b5f602082019050611dba5f830184611d98565b92915050565b5f60208284031215611dd557611dd4611c96565b5b5f611de284828501611ce0565b91505092915050565b5f611df582611c9a565b9050919050565b611e0581611deb565b82525050565b5f602082019050611e1e5f830184611dfc565b92915050565b5f805f60608486031215611e3b57611e3a611c96565b5b5f611e4886828701611ce0565b9350506020611e5986828701611ce0565b9250506040611e6a86828701611d13565b9150509250925092565b5f60ff82169050919050565b611e8981611e74565b82525050565b5f602082019050611ea25f830184611e80565b92915050565b611eb181611cb9565b82525050565b5f602082019050611eca5f830184611ea8565b92915050565b5f60208284031215611ee557611ee4611c96565b5b5f611ef284828501611d13565b91505092915050565b5f8060408385031215611f1157611f10611c96565b5b5f611f1e85828601611ce0565b9250506020611f2f85828601611ce0565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115611fbb57808604811115611f9757611f96611f39565b5b6001851615611fa65780820291505b8081029050611fb485611f66565b9450611f7b565b94509492505050565b5f82611fd3576001905061208e565b81611fe0575f905061208e565b8160018114611ff657600281146120005761202f565b600191505061208e565b60ff84111561201257612011611f39565b5b8360020a91508482111561202957612028611f39565b5b5061208e565b5060208310610133831016604e8410600b84101617156120645782820a90508381111561205f5761205e611f39565b5b61208e565b6120718484846001611f72565b9250905081840481111561208857612087611f39565b5b81810290505b9392505050565b5f61209f82611cf4565b91506120aa83611e74565b92506120d77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611fc4565b905092915050565b5f6120e982611cf4565b91506120f483611cf4565b925082820261210281611cf4565b9150828204841483151761211957612118611f39565b5b5092915050565b7f4c696d697420746f6f206c6573730000000000000000000000000000000000005f82015250565b5f612154600e83611bf6565b915061215f82612120565b602082019050919050565b5f6020820190508181035f83015261218181612148565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6121e2602683611bf6565b91506121ed82612188565b604082019050919050565b5f6020820190508181035f83015261220f816121d6565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612270602483611bf6565b915061227b82612216565b604082019050919050565b5f6020820190508181035f83015261229d81612264565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6122fe602283611bf6565b9150612309826122a4565b604082019050919050565b5f6020820190508181035f83015261232b816122f2565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612366602083611bf6565b915061237182612332565b602082019050919050565b5f6020820190508181035f8301526123938161235a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6123f4602583611bf6565b91506123ff8261239a565b604082019050919050565b5f6020820190508181035f830152612421816123e8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612482602383611bf6565b915061248d82612428565b604082019050919050565b5f6020820190508181035f8301526124af81612476565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612510602983611bf6565b915061251b826124b6565b604082019050919050565b5f6020820190508181035f83015261253d81612504565b9050919050565b5f61254e82611cf4565b915061255983611cf4565b925082820190508082111561257157612570611f39565b5b92915050565b7f457863656564732074686520616e74695768616c654c696d69742e00000000005f82015250565b5f6125ab601b83611bf6565b91506125b682612577565b602082019050919050565b5f6020820190508181035f8301526125d88161259f565b9050919050565b5f6125e982611cf4565b91506125f483611cf4565b925082820390508181111561260c5761260b611f39565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061267a81611cca565b92915050565b5f6020828403121561269557612694611c96565b5b5f6126a28482850161266c565b91505092915050565b5f819050919050565b5f819050919050565b5f6126d76126d26126cd846126ab565b6126b4565b611cf4565b9050919050565b6126e7816126bd565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61271f81611cb9565b82525050565b5f6127308383612716565b60208301905092915050565b5f602082019050919050565b5f612752826126ed565b61275c81856126f7565b935061276783612707565b805f5b8381101561279757815161277e8882612725565b97506127898361273c565b92505060018101905061276a565b5085935050505092915050565b5f60a0820190506127b75f830188611d98565b6127c460208301876126de565b81810360408301526127d68186612748565b90506127e56060830185611ea8565b6127f26080830184611d98565b9695505050505050565b5f81905092915050565b50565b5f6128145f836127fc565b915061281f82612806565b5f82019050919050565b5f61283382612809565b9150819050919050565b7f43616c6c206661696c65640000000000000000000000000000000000000000005f82015250565b5f612871600b83611bf6565b915061287c8261283d565b602082019050919050565b5f6020820190508181035f83015261289e81612865565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6128dc82611cf4565b91506128e783611cf4565b9250826128f7576128f66128a5565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61295c602183611bf6565b915061296782612902565b604082019050919050565b5f6020820190508181035f83015261298981612950565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6129c4601b83611bf6565b91506129cf82612990565b602082019050919050565b5f6020820190508181035f8301526129f1816129b8565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220989c33cf60129324a1ebe3dc4a4603b2e7aeb78314285db0483c128a33554e8f64736f6c63430008180033

Deployed Bytecode Sourcemap

6321:7425:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8302:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9135:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6885:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8579:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13625:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7096:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9304:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8488:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7041:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6952:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13508:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12761:356;;;;;;;;;;;;;:::i;:::-;;6995:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8682:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4742:103;;;;;;;;;;;;;:::i;:::-;;6534:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4101:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13125:181;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13410:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8393:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13314:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8809:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6822:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8984:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5000:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8302:83;8339:13;8372:5;;;;;;;;;;;;;;;;;8365:12;;8302:83;:::o;9135:161::-;9210:4;9227:39;9236:12;:10;:12::i;:::-;9250:7;9259:6;9227:8;:39::i;:::-;9284:4;9277:11;;9135:161;;;;:::o;6885:58::-;;;;:::o;8579:95::-;8632:7;6629:2;6685;:13;;;;:::i;:::-;6673:9;:25;;;;:::i;:::-;8652:14;;8579:95;:::o;13625:108::-;3987:13;:11;:13::i;:::-;13720:5:::1;13691:18;:26;13710:6;13691:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;13625:108:::0;:::o;7096:95::-;;;;;;;;;;;;;:::o;9304:313::-;9402:4;9419:36;9429:6;9437:9;9448:6;9419:9;:36::i;:::-;9466:121;9475:6;9483:12;:10;:12::i;:::-;9497:89;9535:6;9497:89;;;;;;;;;;;;;;;;;:11;:19;9509:6;9497:19;;;;;;;;;;;;;;;:33;9517:12;:10;:12::i;:::-;9497:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;9466:8;:121::i;:::-;9605:4;9598:11;;9304:313;;;;;:::o;8488:83::-;8529:5;6629:2;8547:16;;8488:83;:::o;7041:31::-;;;;:::o;6952:26::-;;;;:::o;13508:109::-;3987:13;:11;:13::i;:::-;13605:4:::1;13576:18;:26;13595:6;13576:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;13508:109:::0;:::o;12761:356::-;12825:18;;;;;;;;;;;12811:32;;:12;:10;:12::i;:::-;:32;;;12803:41;;;;;;12855:20;12876:24;12894:4;12876:9;:24::i;:::-;12855:45;;12927:1;12914:12;:14;12911:73;;;12942:30;12959:12;12942:16;:30::i;:::-;12911:73;12994:18;13013:21;12994:40;;13059:1;13048:10;:12;13045:65;;;13074:24;13087:10;13074:12;:24::i;:::-;13045:65;12792:325;;12761:356::o;6995:27::-;;;;:::o;8682:119::-;8748:7;8775:9;:18;8785:7;8775:18;;;;;;;;;;;;;;;;8768:25;;8682:119;;;:::o;4742:103::-;3987:13;:11;:13::i;:::-;4807:30:::1;4834:1;4807:18;:30::i;:::-;4742:103::o:0;6534:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;4101:87::-;4147:7;4174:6;;;;;;;;;;;4167:13;;4101:87;:::o;13125:181::-;3987:13;:11;:13::i;:::-;13221:22:::1;13239:3;13221:13;:11;:13::i;:::-;:17;;:22;;;;:::i;:::-;13209:9;:34;13201:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;13289:9;13272:14;:26;;;;13125:181:::0;:::o;13410:90::-;3987:13;:11;:13::i;:::-;13488:4:::1;13477:8;:15;;;;13410:90:::0;:::o;8393:87::-;8432:13;8465:7;;;;;;;;;;;;;;;;;8458:14;;8393:87;:::o;13314:88::-;3987:13;:11;:13::i;:::-;13390:4:::1;13380:7;:14;;;;13314:88:::0;:::o;8809:167::-;8887:4;8904:42;8914:12;:10;:12::i;:::-;8928:9;8939:6;8904:9;:42::i;:::-;8964:4;8957:11;;8809:167;;;;:::o;6822:56::-;;;;:::o;8984:143::-;9065:7;9092:11;:18;9104:5;9092:18;;;;;;;;;;;;;;;:27;9111:7;9092:27;;;;;;;;;;;;;;;;9085:34;;8984:143;;;;:::o;5000:201::-;3987:13;:11;:13::i;:::-;5109:1:::1;5089:22;;:8;:22;;::::0;5081:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;5165:28;5184:8;5165:18;:28::i;:::-;5000:201:::0;:::o;1604:98::-;1657:7;1684:10;1677:17;;1604:98;:::o;9625:335::-;9735:1;9718:19;;:5;:19;;;9710:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9816:1;9797:21;;:7;:21;;;9789:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9898:6;9868:11;:18;9880:5;9868:18;;;;;;;;;;;;;;;:27;9887:7;9868:27;;;;;;;;;;;;;;;:36;;;;9936:7;9920:32;;9929:5;9920:32;;;9945:6;9920:32;;;;;;:::i;:::-;;;;;;;;9625:335;;;:::o;4266:132::-;4341:12;:10;:12::i;:::-;4330:23;;:7;:5;:7::i;:::-;:23;;;4322:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4266:132::o;9968:1918::-;10072:1;10056:18;;:4;:18;;;10048:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10149:1;10135:16;;:2;:16;;;10127:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10219:1;10210:6;:10;10202:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10277:17;10312:18;:24;10331:4;10312:24;;;;;;;;;;;;;;;;;;;;;;;;;10311:25;:52;;;;;10341:18;:22;10360:2;10341:22;;;;;;;;;;;;;;;;;;;;;;;;;10340:23;10311:52;10307:1223;;;10391:13;;;;;;;;;;;10385:19;;:2;:19;;;10382:137;;10457:14;;10447:6;10431:13;10441:2;10431:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;10423:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;10382:137;10553:1;10538:12;;:16;10535:180;;;10580:13;;;;;;;;;;;10574:19;;:2;:19;;;;:44;;;;;10605:13;;;;;;;;;;;10597:21;;:4;:21;;;;10574:44;10571:129;;;10651:33;10680:3;10651:24;10662:12;;10651:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;10639:45;;10571:129;10535:180;10744:1;10734:7;;:11;10731:182;;;10774:13;;;;;;;;;;;10766:21;;:4;:21;;;:55;;;;;10805:15;;;;;;;;;;;10791:30;;:2;:30;;;;10766:55;10762:136;;;10854:28;10878:3;10854:19;10865:7;;10854:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;10842:40;;10762:136;10731:182;10943:1;10932:8;;:12;10929:146;;;10970:13;;;;;;;;;;;10964:19;;:2;:19;;;10961:99;;11015:29;11040:3;11015:20;11026:8;;11015:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;11003:41;;10961:99;10929:146;11091:28;11122:24;11140:4;11122:9;:24::i;:::-;11091:55;;11166:6;;;;;;;;;;;11165:7;:30;;;;;11182:13;;;;;;;;;;;11176:19;;:2;:19;;;11165:30;:45;;;;;11199:11;;;;;;;;;;;11165:45;:87;;;;;11235:17;;11214:20;:38;11165:87;11161:358;;;11273:38;11290:20;11273:16;:38::i;:::-;11330:26;11359:21;11330:50;;11423:1;11402:18;:22;11399:105;;;11449:35;11462:21;11449:12;:35::i;:::-;11399:105;11254:265;11161:358;10365:1165;10307:1223;11555:1;11545:9;:11;11542:161;;;11595:39;11624:9;11595;:24;11613:4;11595:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;11570:9;:24;11588:4;11570:24;;;;;;;;;;;;;;;:64;;;;11675:4;11652:39;;11661:4;11652:39;;;11681:9;11652:39;;;;;;:::i;:::-;;;;;;;;11542:161;11729:27;11749:6;11729:9;:15;11739:4;11729:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;11713:9;:15;11723:4;11713:15;;;;;;;;;;;;;;;:43;;;;11781:40;11799:21;11810:9;11799:6;:10;;:21;;;;:::i;:::-;11781:9;:13;11791:2;11781:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;11767:9;:13;11777:2;11767:13;;;;;;;;;;;;;;;:54;;;;11852:2;11837:41;;11846:4;11837:41;;;11856:21;11867:9;11856:6;:10;;:21;;;;:::i;:::-;11837:41;;;;;;:::i;:::-;;;;;;;;10037:1849;9968:1918;;;:::o;2741:190::-;2827:7;2860:1;2855;:6;;2863:12;2847:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2887:9;2903:1;2899;:5;;;;:::i;:::-;2887:17;;2922:1;2915:8;;;2741:190;;;;;:::o;12002:520::-;7400:4;7391:6;;:13;;;;;;;;;;;;;;;;;;12096:1:::1;12083:11;:14:::0;12080:27;12099:7:::1;12080:27;12117:21;12155:1;12141:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12117:40;;12186:4;12168;12173:1;12168:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12212:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12202:4;12207:1;12202:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12245:62;12262:4;12277:15;;;;;;;;;;;12295:11;12245:8;:62::i;:::-;12318:15;;;;;;;;;;;:66;;;12399:11;12425:1;12441:4;12468;12488:15;12318:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12069:453;7415:1;7436:5:::0;7427:6;;:14;;;;;;;;;;;;;;;;;;12002:520;:::o;12530:184::-;12587:16;12617:18;;;;;;;;;;;12609:32;;12649:6;12609:51;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12586:74;;;12679:11;12671:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;12576:138;12530:184;:::o;5361:191::-;5435:16;5454:6;;;;;;;;;;;5435:25;;5480:8;5471:6;;:17;;;;;;;;;;;;;;;;;;5535:8;5504:40;;5525:8;5504:40;;;;;;;;;;;;5424:128;5361:191;:::o;3193:132::-;3251:7;3278:39;3282:1;3285;3278:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3271:46;;3193:132;;;;:::o;2939:246::-;2997:7;3026:1;3021;:6;3017:47;;3051:1;3044:8;;;;3017:47;3074:9;3090:1;3086;:5;;;;:::i;:::-;3074:17;;3119:1;3114;3110;:5;;;;:::i;:::-;:10;3102:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3176:1;3169:8;;;2939:246;;;;;:::o;2410:179::-;2468:7;2488:9;2504:1;2500;:5;;;;:::i;:::-;2488:17;;2529:1;2524;:6;;2516:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2580:1;2573:8;;;2410:179;;;;:::o;2597:136::-;2655:7;2682:43;2686:1;2689;2682:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2675:50;;2597:136;;;;:::o;3333:189::-;3419:7;3451:1;3447;:5;3454:12;3439:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3478:9;3494:1;3490;:5;;;;:::i;:::-;3478:17;;3513:1;3506:8;;;3333:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;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:329::-;3857:6;3906:2;3894:9;3885:7;3881:23;3877:32;3874:119;;;3912:79;;:::i;:::-;3874:119;4032:1;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4003:117;3798:329;;;;:::o;4133:104::-;4178:7;4207:24;4225:5;4207:24;:::i;:::-;4196:35;;4133:104;;;:::o;4243:142::-;4346:32;4372:5;4346:32;:::i;:::-;4341:3;4334:45;4243:142;;:::o;4391:254::-;4500:4;4538:2;4527:9;4523:18;4515:26;;4551:87;4635:1;4624:9;4620:17;4611:6;4551:87;:::i;:::-;4391:254;;;;:::o;4651:619::-;4728:6;4736;4744;4793:2;4781:9;4772:7;4768:23;4764:32;4761:119;;;4799:79;;:::i;:::-;4761:119;4919:1;4944:53;4989:7;4980:6;4969:9;4965:22;4944:53;:::i;:::-;4934:63;;4890:117;5046:2;5072:53;5117:7;5108:6;5097:9;5093:22;5072:53;:::i;:::-;5062:63;;5017:118;5174:2;5200:53;5245:7;5236:6;5225:9;5221:22;5200:53;:::i;:::-;5190:63;;5145:118;4651:619;;;;;:::o;5276:86::-;5311:7;5351:4;5344:5;5340:16;5329:27;;5276:86;;;:::o;5368:112::-;5451:22;5467:5;5451:22;:::i;:::-;5446:3;5439:35;5368:112;;:::o;5486:214::-;5575:4;5613:2;5602:9;5598:18;5590:26;;5626:67;5690:1;5679:9;5675:17;5666:6;5626:67;:::i;:::-;5486:214;;;;:::o;5706:118::-;5793:24;5811:5;5793:24;:::i;:::-;5788:3;5781:37;5706:118;;:::o;5830:222::-;5923:4;5961:2;5950:9;5946:18;5938:26;;5974:71;6042:1;6031:9;6027:17;6018:6;5974:71;:::i;:::-;5830:222;;;;:::o;6058:329::-;6117:6;6166:2;6154:9;6145:7;6141:23;6137:32;6134:119;;;6172:79;;:::i;:::-;6134:119;6292:1;6317:53;6362:7;6353:6;6342:9;6338:22;6317:53;:::i;:::-;6307:63;;6263:117;6058:329;;;;:::o;6393:474::-;6461:6;6469;6518:2;6506:9;6497:7;6493:23;6489:32;6486:119;;;6524:79;;:::i;:::-;6486:119;6644:1;6669:53;6714:7;6705:6;6694:9;6690:22;6669:53;:::i;:::-;6659:63;;6615:117;6771:2;6797:53;6842:7;6833:6;6822:9;6818:22;6797:53;:::i;:::-;6787:63;;6742:118;6393:474;;;;;:::o;6873:180::-;6921:77;6918:1;6911:88;7018:4;7015:1;7008:15;7042:4;7039:1;7032:15;7059:102;7101:8;7148:5;7145:1;7141:13;7120:34;;7059:102;;;:::o;7167:848::-;7228:5;7235:4;7259:6;7250:15;;7283:5;7274:14;;7297:712;7318:1;7308:8;7305:15;7297:712;;;7413:4;7408:3;7404:14;7398:4;7395:24;7392:50;;;7422:18;;:::i;:::-;7392:50;7472:1;7462:8;7458:16;7455:451;;;7887:4;7880:5;7876:16;7867:25;;7455:451;7937:4;7931;7927:15;7919:23;;7967:32;7990:8;7967:32;:::i;:::-;7955:44;;7297:712;;;7167:848;;;;;;;:::o;8021:1073::-;8075:5;8266:8;8256:40;;8287:1;8278:10;;8289:5;;8256:40;8315:4;8305:36;;8332:1;8323:10;;8334:5;;8305:36;8401:4;8449:1;8444:27;;;;8485:1;8480:191;;;;8394:277;;8444:27;8462:1;8453:10;;8464:5;;;8480:191;8525:3;8515:8;8512:17;8509:43;;;8532:18;;:::i;:::-;8509:43;8581:8;8578:1;8574:16;8565:25;;8616:3;8609:5;8606:14;8603:40;;;8623:18;;:::i;:::-;8603:40;8656:5;;;8394:277;;8780:2;8770:8;8767:16;8761:3;8755:4;8752:13;8748:36;8730:2;8720:8;8717:16;8712:2;8706:4;8703:12;8699:35;8683:111;8680:246;;;8836:8;8830:4;8826:19;8817:28;;8871:3;8864:5;8861:14;8858:40;;;8878:18;;:::i;:::-;8858:40;8911:5;;8680:246;8951:42;8989:3;8979:8;8973:4;8970:1;8951:42;:::i;:::-;8936:57;;;;9025:4;9020:3;9016:14;9009:5;9006:25;9003:51;;;9034:18;;:::i;:::-;9003:51;9083:4;9076:5;9072:16;9063:25;;8021:1073;;;;;;:::o;9100:281::-;9158:5;9182:23;9200:4;9182:23;:::i;:::-;9174:31;;9226:25;9242:8;9226:25;:::i;:::-;9214:37;;9270:104;9307:66;9297:8;9291:4;9270:104;:::i;:::-;9261:113;;9100:281;;;;:::o;9387:410::-;9427:7;9450:20;9468:1;9450:20;:::i;:::-;9445:25;;9484:20;9502:1;9484:20;:::i;:::-;9479:25;;9539:1;9536;9532:9;9561:30;9579:11;9561:30;:::i;:::-;9550:41;;9740:1;9731:7;9727:15;9724:1;9721:22;9701:1;9694:9;9674:83;9651:139;;9770:18;;:::i;:::-;9651:139;9435:362;9387:410;;;;:::o;9803:164::-;9943:16;9939:1;9931:6;9927:14;9920:40;9803:164;:::o;9973:366::-;10115:3;10136:67;10200:2;10195:3;10136:67;:::i;:::-;10129:74;;10212:93;10301:3;10212:93;:::i;:::-;10330:2;10325:3;10321:12;10314:19;;9973:366;;;:::o;10345:419::-;10511:4;10549:2;10538:9;10534:18;10526:26;;10598:9;10592:4;10588:20;10584:1;10573:9;10569:17;10562:47;10626:131;10752:4;10626:131;:::i;:::-;10618:139;;10345:419;;;:::o;10770:225::-;10910:34;10906:1;10898:6;10894:14;10887:58;10979:8;10974:2;10966:6;10962:15;10955:33;10770:225;:::o;11001:366::-;11143:3;11164:67;11228:2;11223:3;11164:67;:::i;:::-;11157:74;;11240:93;11329:3;11240:93;:::i;:::-;11358:2;11353:3;11349:12;11342:19;;11001:366;;;:::o;11373:419::-;11539:4;11577:2;11566:9;11562:18;11554:26;;11626:9;11620:4;11616:20;11612:1;11601:9;11597:17;11590:47;11654:131;11780:4;11654:131;:::i;:::-;11646:139;;11373:419;;;:::o;11798:223::-;11938:34;11934:1;11926:6;11922:14;11915:58;12007:6;12002:2;11994:6;11990:15;11983:31;11798:223;:::o;12027:366::-;12169:3;12190:67;12254:2;12249:3;12190:67;:::i;:::-;12183:74;;12266:93;12355:3;12266:93;:::i;:::-;12384:2;12379:3;12375:12;12368:19;;12027:366;;;:::o;12399:419::-;12565:4;12603:2;12592:9;12588:18;12580:26;;12652:9;12646:4;12642:20;12638:1;12627:9;12623:17;12616:47;12680:131;12806:4;12680:131;:::i;:::-;12672:139;;12399:419;;;:::o;12824:221::-;12964:34;12960:1;12952:6;12948:14;12941:58;13033:4;13028:2;13020:6;13016:15;13009:29;12824:221;:::o;13051:366::-;13193:3;13214:67;13278:2;13273:3;13214:67;:::i;:::-;13207:74;;13290:93;13379:3;13290:93;:::i;:::-;13408:2;13403:3;13399:12;13392:19;;13051:366;;;:::o;13423:419::-;13589:4;13627:2;13616:9;13612:18;13604:26;;13676:9;13670:4;13666:20;13662:1;13651:9;13647:17;13640:47;13704:131;13830:4;13704:131;:::i;:::-;13696:139;;13423:419;;;:::o;13848:182::-;13988:34;13984:1;13976:6;13972:14;13965:58;13848:182;:::o;14036:366::-;14178:3;14199:67;14263:2;14258:3;14199:67;:::i;:::-;14192:74;;14275:93;14364:3;14275:93;:::i;:::-;14393:2;14388:3;14384:12;14377:19;;14036:366;;;:::o;14408:419::-;14574:4;14612:2;14601:9;14597:18;14589:26;;14661:9;14655:4;14651:20;14647:1;14636:9;14632:17;14625:47;14689:131;14815:4;14689:131;:::i;:::-;14681:139;;14408:419;;;:::o;14833:224::-;14973:34;14969:1;14961:6;14957:14;14950:58;15042:7;15037:2;15029:6;15025:15;15018:32;14833:224;:::o;15063:366::-;15205:3;15226:67;15290:2;15285:3;15226:67;:::i;:::-;15219:74;;15302:93;15391:3;15302:93;:::i;:::-;15420:2;15415:3;15411:12;15404:19;;15063:366;;;:::o;15435:419::-;15601:4;15639:2;15628:9;15624:18;15616:26;;15688:9;15682:4;15678:20;15674:1;15663:9;15659:17;15652:47;15716:131;15842:4;15716:131;:::i;:::-;15708:139;;15435:419;;;:::o;15860:222::-;16000:34;15996:1;15988:6;15984:14;15977:58;16069:5;16064:2;16056:6;16052:15;16045:30;15860:222;:::o;16088:366::-;16230:3;16251:67;16315:2;16310:3;16251:67;:::i;:::-;16244:74;;16327:93;16416:3;16327:93;:::i;:::-;16445:2;16440:3;16436:12;16429:19;;16088:366;;;:::o;16460:419::-;16626:4;16664:2;16653:9;16649:18;16641:26;;16713:9;16707:4;16703:20;16699:1;16688:9;16684:17;16677:47;16741:131;16867:4;16741:131;:::i;:::-;16733:139;;16460:419;;;:::o;16885:228::-;17025:34;17021:1;17013:6;17009:14;17002:58;17094:11;17089:2;17081:6;17077:15;17070:36;16885:228;:::o;17119:366::-;17261:3;17282:67;17346:2;17341:3;17282:67;:::i;:::-;17275:74;;17358:93;17447:3;17358:93;:::i;:::-;17476:2;17471:3;17467:12;17460:19;;17119:366;;;:::o;17491:419::-;17657:4;17695:2;17684:9;17680:18;17672:26;;17744:9;17738:4;17734:20;17730:1;17719:9;17715:17;17708:47;17772:131;17898:4;17772:131;:::i;:::-;17764:139;;17491:419;;;:::o;17916:191::-;17956:3;17975:20;17993:1;17975:20;:::i;:::-;17970:25;;18009:20;18027:1;18009:20;:::i;:::-;18004:25;;18052:1;18049;18045:9;18038:16;;18073:3;18070:1;18067:10;18064:36;;;18080:18;;:::i;:::-;18064:36;17916:191;;;;:::o;18113:177::-;18253:29;18249:1;18241:6;18237:14;18230:53;18113:177;:::o;18296:366::-;18438:3;18459:67;18523:2;18518:3;18459:67;:::i;:::-;18452:74;;18535:93;18624:3;18535:93;:::i;:::-;18653:2;18648:3;18644:12;18637:19;;18296:366;;;:::o;18668:419::-;18834:4;18872:2;18861:9;18857:18;18849:26;;18921:9;18915:4;18911:20;18907:1;18896:9;18892:17;18885:47;18949:131;19075:4;18949:131;:::i;:::-;18941:139;;18668:419;;;:::o;19093:194::-;19133:4;19153:20;19171:1;19153:20;:::i;:::-;19148:25;;19187:20;19205:1;19187:20;:::i;:::-;19182:25;;19231:1;19228;19224:9;19216:17;;19255:1;19249:4;19246:11;19243:37;;;19260:18;;:::i;:::-;19243:37;19093:194;;;;:::o;19293:180::-;19341:77;19338:1;19331:88;19438:4;19435:1;19428:15;19462:4;19459:1;19452:15;19479:180;19527:77;19524:1;19517:88;19624:4;19621:1;19614:15;19648:4;19645:1;19638:15;19665:143;19722:5;19753:6;19747:13;19738:22;;19769:33;19796:5;19769:33;:::i;:::-;19665:143;;;;:::o;19814:351::-;19884:6;19933:2;19921:9;19912:7;19908:23;19904:32;19901:119;;;19939:79;;:::i;:::-;19901:119;20059:1;20084:64;20140:7;20131:6;20120:9;20116:22;20084:64;:::i;:::-;20074:74;;20030:128;19814:351;;;;:::o;20171:85::-;20216:7;20245:5;20234:16;;20171:85;;;:::o;20262:60::-;20290:3;20311:5;20304:12;;20262:60;;;:::o;20328:158::-;20386:9;20419:61;20437:42;20446:32;20472:5;20446:32;:::i;:::-;20437:42;:::i;:::-;20419:61;:::i;:::-;20406:74;;20328:158;;;:::o;20492:147::-;20587:45;20626:5;20587:45;:::i;:::-;20582:3;20575:58;20492:147;;:::o;20645:114::-;20712:6;20746:5;20740:12;20730:22;;20645:114;;;:::o;20765:184::-;20864:11;20898:6;20893:3;20886:19;20938:4;20933:3;20929:14;20914:29;;20765:184;;;;:::o;20955:132::-;21022:4;21045:3;21037:11;;21075:4;21070:3;21066:14;21058:22;;20955:132;;;:::o;21093:108::-;21170:24;21188:5;21170:24;:::i;:::-;21165:3;21158:37;21093:108;;:::o;21207:179::-;21276:10;21297:46;21339:3;21331:6;21297:46;:::i;:::-;21375:4;21370:3;21366:14;21352:28;;21207:179;;;;:::o;21392:113::-;21462:4;21494;21489:3;21485:14;21477:22;;21392:113;;;:::o;21541:732::-;21660:3;21689:54;21737:5;21689:54;:::i;:::-;21759:86;21838:6;21833:3;21759:86;:::i;:::-;21752:93;;21869:56;21919:5;21869:56;:::i;:::-;21948:7;21979:1;21964:284;21989:6;21986:1;21983:13;21964:284;;;22065:6;22059:13;22092:63;22151:3;22136:13;22092:63;:::i;:::-;22085:70;;22178:60;22231:6;22178:60;:::i;:::-;22168:70;;22024:224;22011:1;22008;22004:9;21999:14;;21964:284;;;21968:14;22264:3;22257:10;;21665:608;;;21541:732;;;;:::o;22279:831::-;22542:4;22580:3;22569:9;22565:19;22557:27;;22594:71;22662:1;22651:9;22647:17;22638:6;22594:71;:::i;:::-;22675:80;22751:2;22740:9;22736:18;22727:6;22675:80;:::i;:::-;22802:9;22796:4;22792:20;22787:2;22776:9;22772:18;22765:48;22830:108;22933:4;22924:6;22830:108;:::i;:::-;22822:116;;22948:72;23016:2;23005:9;23001:18;22992:6;22948:72;:::i;:::-;23030:73;23098:3;23087:9;23083:19;23074:6;23030:73;:::i;:::-;22279:831;;;;;;;;:::o;23116:147::-;23217:11;23254:3;23239:18;;23116:147;;;;:::o;23269:114::-;;:::o;23389:398::-;23548:3;23569:83;23650:1;23645:3;23569:83;:::i;:::-;23562:90;;23661:93;23750:3;23661:93;:::i;:::-;23779:1;23774:3;23770:11;23763:18;;23389:398;;;:::o;23793:379::-;23977:3;23999:147;24142:3;23999:147;:::i;:::-;23992:154;;24163:3;24156:10;;23793:379;;;:::o;24178:161::-;24318:13;24314:1;24306:6;24302:14;24295:37;24178:161;:::o;24345:366::-;24487:3;24508:67;24572:2;24567:3;24508:67;:::i;:::-;24501:74;;24584:93;24673:3;24584:93;:::i;:::-;24702:2;24697:3;24693:12;24686:19;;24345:366;;;:::o;24717:419::-;24883:4;24921:2;24910:9;24906:18;24898:26;;24970:9;24964:4;24960:20;24956:1;24945:9;24941:17;24934:47;24998:131;25124:4;24998:131;:::i;:::-;24990:139;;24717:419;;;:::o;25142:180::-;25190:77;25187:1;25180:88;25287:4;25284:1;25277:15;25311:4;25308:1;25301:15;25328:185;25368:1;25385:20;25403:1;25385:20;:::i;:::-;25380:25;;25419:20;25437:1;25419:20;:::i;:::-;25414:25;;25458:1;25448:35;;25463:18;;:::i;:::-;25448:35;25505:1;25502;25498:9;25493:14;;25328:185;;;;:::o;25519:220::-;25659:34;25655:1;25647:6;25643:14;25636:58;25728:3;25723:2;25715:6;25711:15;25704:28;25519:220;:::o;25745:366::-;25887:3;25908:67;25972:2;25967:3;25908:67;:::i;:::-;25901:74;;25984:93;26073:3;25984:93;:::i;:::-;26102:2;26097:3;26093:12;26086:19;;25745:366;;;:::o;26117:419::-;26283:4;26321:2;26310:9;26306:18;26298:26;;26370:9;26364:4;26360:20;26356:1;26345:9;26341:17;26334:47;26398:131;26524:4;26398:131;:::i;:::-;26390:139;;26117:419;;;:::o;26542:177::-;26682:29;26678:1;26670:6;26666:14;26659:53;26542:177;:::o;26725:366::-;26867:3;26888:67;26952:2;26947:3;26888:67;:::i;:::-;26881:74;;26964:93;27053:3;26964:93;:::i;:::-;27082:2;27077:3;27073:12;27066:19;;26725:366;;;:::o;27097:419::-;27263:4;27301:2;27290:9;27286:18;27278:26;;27350:9;27344:4;27340:20;27336:1;27325:9;27321:17;27314:47;27378:131;27504:4;27378:131;:::i;:::-;27370:139;;27097:419;;;:::o

Swarm Source

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