ETH Price: $3,466.79 (-1.14%)
Gas: 2 Gwei

Token

WISP THE CAT (WISP)
 

Overview

Max Total Supply

1,000,000,000,000 WISP

Holders

141

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,887,687,550 WISP

Value
$0.00
0x7046517af490ea1899b0f0e5b6d7b016c22aad07
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:
WISP

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: UNLICENSED
/*
    Telegram:   https://t.me/WISPTHECATerc
    WISPsite:   https://wispthecattoken.xyz/
    Twitter:    https://twitter.com/Wispthecaterc
*/             
// ##########(*#((*####%%%#%%%%%#%#%%%%%&%%#((/(/%&#%%&&%%%%%(((#(//((///**/*.**/#*
// #######*#####**.,/(#/(%#%%#***,**/#%%/((*/,,.,*,*/((//(%#((#%#%#(/(*,,*..,,,*,#%
// @#((/(((//(/(#(,...,/(//#*(/(*/,..*................,,.*/#%%@#/...........,*(%%##
// @@&##########//,,,,,......,.,,............  ...........*,./.......,,*****,(#%%((
// @@@%###########(*,,*,,,,..............     ...................,*****,******##/*,
// @@@@%###(######((*,*,*,,*,.........  ......... ...............,*,*,//*,,,*/****%
// @@@@&#(((/**,,*//*/,,,,,,,...................................,,,,,.,,.,,,,,/####
// @@@&&######((###(//.....,,,...................................,,,,,,,,,,,,,,/(&&
// @@@&&%%##((##(,,***,,,*,,,,......................................,,,,.,**/((#%&%
// &@@&&&#%(#/((#(#(/((,,.,,........................,,,,,.,,............,,,,,,/**&@
// &&&&&%&&#((####(/,,,,.........,,,**,,,,,......,,,,**/((&&(//*,.......,,,,***((%%
// &&&&&&#%%#(###(./*,,.......,*#(%&&(//*,.......,,,*/(,(&&&&&,.    ..,,,*,,,,(/(((
// &&&&%%&&%####/*#(,,,.........,,&&&#*,***.,.,,,,,,((*,......   .......,*/*/*/#%#&
// &%%%&&&&%###((**,****,,....... ....*/*/,*#&**(*...,,*,,,..........,,,,*//((%%%%&
// %&&&&%%%#####%#,***,,,,,......,,,***,,,,,,,*(***,,,,,,,,,..,,,,,,,,.,,*/(%#((#%%
// %%%%########@%&&///***,,,,,.,****,,,,,,,**(@@&(**,*,,,,,..,...,,,,,,,,*/((#%&&&&
// ###((#####&@@@/******,,,,,,,,,,,.,,,,****&&&@@&%#*,,,,.,.,.,.,.......,**(##%#%&@
// ########%@&@/********,*,,..,,..,,,,,,,,/&%#%###(#(/***,,................,*((#%#&
// /(#####&@@%********,,,,.......,,,,,,*,,*/(******//,,,,...... ............,*/%##%
// (((/(#@@@/****,*,***,,............,,.....,,,,,,,,,,,*,.......,.....,...,,,*##@@@
// ####&&@/**,,,*,,,,**,,....... ....,,,....,...,..,,,***,...........,..,,,,**/(#@@
// ##%@@&****,,,,,,,****,,.....,.....,****/(**,,,***,////,,..,*,,,,,******/((**#%%@
// (&&@/***,,,,,,,,,******,,...,..,,,*//***********/**////*,****,,,*/#(((/#(**/#&%@
// &&%****,,,,,,,,,,,**********,**((*//*/**********/////(/(((/*/(/####(((*****##&&&
// @/***,,,,,,,,,,,,,,,,***************(****//////////((((((((/((((****,,,.,*/%&&&&
// ***,,,,,,,,,,,,,,,,,,,,,,,*****/**/**//////(/((((((((((///**,,,,,......,*(%&&&@@
// ,,,,,,,,,,,,,,,,,,,,,,,,*,*******////(((((((((///////***,,,,,..........*/(%&@@@@
// ,,,,,,,,,,,,,,,,,,,,,,*******////(((((((((/*******,*****,,,...........,//#&@@@@@
// ,,,,,,,,,,,,,,,,,,,*******//////((((((//**,,,,,,,,*,**/**,,,....,....,,((%&@@@@@
// ,,,,,,,,,,,,,,************//////(////**,,,,,,,,,,,**,**/*,,,....,,,**//(&%&&@@@@
// ,,,,,,,,,,,*************//////(/((/*,,.........,,,***,**/*,,,,,,**/(&@&@@@@@@@@@
// ,,,,,,,,,*****/*////////////////*,,............,,,,,,,*/*,,,,***/#&&&&@@@@@@@@@@
// ,,,,,,*****////////////////**,,,..............,..,,,,,,,***//(#&@@@@@@@@@@@@@@@@
// ,,****////////////////**,,,......................,,,,,,,,**((*(%#@@@@@@@@@@@@@@@
// ****/*//////%%#(//*,,................................,,,,,,,,***%&@@@@@@@@@@@@@@
// *////////###(/**,,............................................,*(%&&@@@@@@@@@@@@
// ////(((&%#(*,,,...............................................,*##&@&@@@@@@@@@@@
// ((((%&&%%/*,,,...............................................,,,(%%(@@@@@@@@@@@@                                                                           
pragma solidity 0.8.18;

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

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

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

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

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

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

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

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

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

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

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

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

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

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 WISP is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable _devWallet;

    uint256 private _initialBuyTax = 23;
    uint256 private _initialSellTax = 23;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 19;
    uint256 private _reduceSellTaxAt = 19;
    uint256 private _preventSwapBefore = 19;
    uint256 private _buyCount = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000000 * 10 **_decimals;
    string private constant _name = unicode"WISP THE CAT";
    string private constant _symbol = unicode"WISP";
    uint256 public _maxTxAmount = 20000000000 * 10 **_decimals;
    uint256 public _maxWalletSize = 20000000000 * 10 **_decimals;
    uint256 public _taxSwapThreshold = 15500000000 * 10 **_decimals;
    uint256 public _maxTaxSwap= 15500000000 * 10 **_decimals;

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

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _devWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_devWallet] = 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 (from != owner() && to != owner()) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                      require(_holderLastTransferTimestamp[tx.origin] < block.number, "_transfer:: Transfer Delay enabled. Only one purchase per block allowed.");
                      _holderLastTransferTimestamp[tx.origin] = block.number;
                  }
              }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
                swapTokensForEth(min(amount, min(contractTokenBalance,_maxTaxSwap)));
                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 {
        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 openTrading() external onlyOwner() {
        require(!tradingOpen, "Trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

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


         function transferWISP(address tokenAddress, uint256 amount) external onlyOwner {
        IERC20 token = IERC20(tokenAddress);
        require(token.transfer(_devWallet, amount), "Token transfer failed");
    }
      function removeTransferDelay() external onlyOwner {
        transferDelayEnabled = false;
    }


     function sendETHToFee(uint256 amount) private {
        _devWallet.transfer(amount);
    }
    
    receive() external payable {}

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

    function transferETHToDev() external onlyOwner() {
        require(address(this).balance > 0, "No ETH to transfer");
        _devWallet.transfer(address(this).balance);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","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":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTransferDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"transferETHToDev","outputs":[],"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":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferWISP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526001600560006101000a81548160ff02191690831515021790555060176006556017600755600060085560006009556013600a556013600b556013600c556000600d556009600a62000057919062000635565b6404a817c80062000069919062000686565b600e556009600a6200007c919062000635565b6404a817c8006200008e919062000686565b600f556009600a620000a1919062000635565b64039bdf3b00620000b3919062000686565b6010556009600a620000c6919062000635565b64039bdf3b00620000d8919062000686565b6011556000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff0219169083151502179055503480156200011e57600080fd5b506000620001316200046a60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001df6200046a60201b60201c565b600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200022f919062000635565b64e8d4a5100062000241919062000686565b60016000620002556200046a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002a96200047260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003dc6200046a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200043b919062000635565b64e8d4a510006200044d919062000686565b6040516200045c9190620006e2565b60405180910390a3620006ff565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000529578086048111156200050157620005006200049b565b5b6001851615620005115780820291505b80810290506200052185620004ca565b9450620004e1565b94509492505050565b60008262000544576001905062000617565b8162000554576000905062000617565b81600181146200056d57600281146200057857620005ae565b600191505062000617565b60ff8411156200058d576200058c6200049b565b5b8360020a915084821115620005a757620005a66200049b565b5b5062000617565b5060208310610133831016604e8410600b8410161715620005e85782820a905083811115620005e257620005e16200049b565b5b62000617565b620005f78484846001620004d7565b925090508184048111156200061157620006106200049b565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000642826200061e565b91506200064f8362000628565b92506200067e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000532565b905092915050565b600062000693826200061e565b9150620006a0836200061e565b9250828202620006b0816200061e565b91508282048414831517620006ca57620006c96200049b565b5b5092915050565b620006dc816200061e565b82525050565b6000602082019050620006f96000830184620006d1565b92915050565b613591806200070f6000396000f3fe6080604052600436106101395760003560e01c80637d1db4a5116100ab578063bf474bed1161006f578063bf474bed146103ed578063c876d0b914610418578063c9567bf914610443578063dd62ed3e1461045a578063e11d5be314610497578063f8686f07146104c057610140565b80637d1db4a5146103045780638da5cb5b1461032f5780638f9a55c01461035a57806395d89b4114610385578063a9059cbb146103b057610140565b8063313ce567116100fd578063313ce5671461024057806351bc3c851461026b578063692cda7a1461028257806370a0823114610299578063715018a6146102d6578063751039fc146102ed57610140565b806306fdde0314610145578063095ea7b3146101705780630faee56f146101ad57806318160ddd146101d857806323b872dd1461020357610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104d7565b60405161016791906124b1565b60405180910390f35b34801561017c57600080fd5b506101976004803603810190610192919061256c565b610514565b6040516101a491906125c7565b60405180910390f35b3480156101b957600080fd5b506101c2610532565b6040516101cf91906125f1565b60405180910390f35b3480156101e457600080fd5b506101ed610538565b6040516101fa91906125f1565b60405180910390f35b34801561020f57600080fd5b5061022a6004803603810190610225919061260c565b61055d565b60405161023791906125c7565b60405180910390f35b34801561024c57600080fd5b50610255610636565b604051610262919061267b565b60405180910390f35b34801561027757600080fd5b5061028061063f565b005b34801561028e57600080fd5b506102976106dc565b005b3480156102a557600080fd5b506102c060048036038101906102bb9190612696565b61081f565b6040516102cd91906125f1565b60405180910390f35b3480156102e257600080fd5b506102eb610868565b005b3480156102f957600080fd5b506103026109bb565b005b34801561031057600080fd5b50610319610aee565b60405161032691906125f1565b60405180910390f35b34801561033b57600080fd5b50610344610af4565b60405161035191906126d2565b60405180910390f35b34801561036657600080fd5b5061036f610b1d565b60405161037c91906125f1565b60405180910390f35b34801561039157600080fd5b5061039a610b23565b6040516103a791906124b1565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d2919061256c565b610b60565b6040516103e491906125c7565b60405180910390f35b3480156103f957600080fd5b50610402610b7e565b60405161040f91906125f1565b60405180910390f35b34801561042457600080fd5b5061042d610b84565b60405161043a91906125c7565b60405180910390f35b34801561044f57600080fd5b50610458610b97565b005b34801561046657600080fd5b50610481600480360381019061047c91906126ed565b6110d0565b60405161048e91906125f1565b60405180910390f35b3480156104a357600080fd5b506104be60048036038101906104b9919061256c565b611157565b005b3480156104cc57600080fd5b506104d56112d5565b005b60606040518060400160405280600c81526020017f5749535020544845204341540000000000000000000000000000000000000000815250905090565b6000610528610521611387565b848461138f565b6001905092915050565b60115481565b60006009600a610548919061288f565b64e8d4a5100061055891906128da565b905090565b600061056a848484611558565b61062b84610576611387565b6106268560405180606001604052806028815260200161353460289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105dc611387565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ef09092919063ffffffff16565b61138f565b600190509392505050565b60006009905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610680611387565b73ffffffffffffffffffffffffffffffffffffffff16146106a057600080fd5b60006106ab3061081f565b905060008111156106c0576106bf81611f54565b5b600047905060008111156106d8576106d7816121cd565b5b5050565b6106e4611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610771576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076890612968565b60405180910390fd5b600047116107b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ab906129d4565b60405180910390fd5b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561081c573d6000803e3d6000fd5b50565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610870611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f490612968565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109c3611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4790612968565b60405180910390fd5b6009600a610a5e919061288f565b64e8d4a51000610a6e91906128da565b600e819055506009600a610a82919061288f565b64e8d4a51000610a9291906128da565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610ac7919061288f565b64e8d4a51000610ad791906128da565b604051610ae491906125f1565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600481526020017f5749535000000000000000000000000000000000000000000000000000000000815250905090565b6000610b74610b6d611387565b8484611558565b6001905092915050565b60105481565b600560009054906101000a900460ff1681565b610b9f611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2390612968565b60405180910390fd5b601360149054906101000a900460ff1615610c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7390612a40565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d1b30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d06919061288f565b64e8d4a51000610d1691906128da565b61138f565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dac9190612a75565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e599190612a75565b6040518363ffffffff1660e01b8152600401610e76929190612aa2565b6020604051808303816000875af1158015610e95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb99190612a75565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f423061081f565b600080610f4d610af4565b426040518863ffffffff1660e01b8152600401610f6f96959493929190612b10565b60606040518083038185885af1158015610f8d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fb29190612b86565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611054929190612bd9565b6020604051808303816000875af1158015611073573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110979190612c2e565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61115f611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e390612968565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b815260040161124e929190612cb0565b6020604051808303816000875af115801561126d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112919190612c2e565b6112d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c790612d25565b60405180910390fd5b505050565b6112dd611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461136a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136190612968565b60405180910390fd5b6000600560006101000a81548160ff021916908315150217905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f590612db7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361146d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146490612e49565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161154b91906125f1565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115be90612edb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162d90612f6d565b60405180910390fd5b60008111611679576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167090612fff565b60405180910390fd5b6000611683610af4565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116f157506116c1610af4565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c33576117326064611724600a54600d541161171157600654611715565b6008545b8561223990919063ffffffff16565b6122b390919063ffffffff16565b9050600560009054906101000a900460ff16156118c157601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117f55750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118c05743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061187b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611872906130b7565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561196c5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119c25750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a7d57600e54821115611a0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0390613123565b60405180910390fd5b600f5482611a198561081f565b611a239190613143565b1115611a64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5b906131c3565b60405180910390fd5b600d6000815480929190611a77906131e3565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b0657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b4a57611b476064611b39600b54600d5411611b2657600754611b2a565b6009545b8561223990919063ffffffff16565b6122b390919063ffffffff16565b90505b6000611b553061081f565b9050601360159054906101000a900460ff16158015611bc15750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611bd95750601360169054906101000a900460ff165b8015611be6575060105481115b8015611bf55750600c54600d54115b15611c3157611c17611c1284611c0d846011546122fd565b6122fd565b611f54565b60004790506000811115611c2f57611c2e476121cd565b5b505b505b6000811115611d3757611c8e81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461231690919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d2e91906125f1565b60405180910390a35b611d8982600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237490919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e30611de2828461237490919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461231690919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ed5848661237490919063ffffffff16565b604051611ee291906125f1565b60405180910390a350505050565b6000838311158290611f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2f91906124b1565b60405180910390fd5b5060008385611f47919061322b565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f8c57611f8b61325f565b5b604051908082528060200260200182016040528015611fba5781602001602082028036833780820191505090505b5090503081600081518110611fd257611fd161328e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612079573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209d9190612a75565b816001815181106120b1576120b061328e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061211830601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461138f565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161217c95949392919061337b565b600060405180830381600087803b15801561219657600080fd5b505af11580156121aa573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612235573d6000803e3d6000fd5b5050565b600080830361224b57600090506122ad565b6000828461225991906128da565b90508284826122689190613404565b146122a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229f906134a7565b60405180910390fd5b809150505b92915050565b60006122f583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123be565b905092915050565b600081831161230c578261230e565b815b905092915050565b60008082846123259190613143565b90508381101561236a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236190613513565b60405180910390fd5b8091505092915050565b60006123b683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ef0565b905092915050565b60008083118290612405576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fc91906124b1565b60405180910390fd5b50600083856124149190613404565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561245b578082015181840152602081019050612440565b60008484015250505050565b6000601f19601f8301169050919050565b600061248382612421565b61248d818561242c565b935061249d81856020860161243d565b6124a681612467565b840191505092915050565b600060208201905081810360008301526124cb8184612478565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612503826124d8565b9050919050565b612513816124f8565b811461251e57600080fd5b50565b6000813590506125308161250a565b92915050565b6000819050919050565b61254981612536565b811461255457600080fd5b50565b60008135905061256681612540565b92915050565b60008060408385031215612583576125826124d3565b5b600061259185828601612521565b92505060206125a285828601612557565b9150509250929050565b60008115159050919050565b6125c1816125ac565b82525050565b60006020820190506125dc60008301846125b8565b92915050565b6125eb81612536565b82525050565b600060208201905061260660008301846125e2565b92915050565b600080600060608486031215612625576126246124d3565b5b600061263386828701612521565b935050602061264486828701612521565b925050604061265586828701612557565b9150509250925092565b600060ff82169050919050565b6126758161265f565b82525050565b6000602082019050612690600083018461266c565b92915050565b6000602082840312156126ac576126ab6124d3565b5b60006126ba84828501612521565b91505092915050565b6126cc816124f8565b82525050565b60006020820190506126e760008301846126c3565b92915050565b60008060408385031215612704576127036124d3565b5b600061271285828601612521565b925050602061272385828601612521565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156127b35780860481111561278f5761278e61272d565b5b600185161561279e5780820291505b80810290506127ac8561275c565b9450612773565b94509492505050565b6000826127cc5760019050612888565b816127da5760009050612888565b81600181146127f057600281146127fa57612829565b6001915050612888565b60ff84111561280c5761280b61272d565b5b8360020a9150848211156128235761282261272d565b5b50612888565b5060208310610133831016604e8410600b841016171561285e5782820a9050838111156128595761285861272d565b5b612888565b61286b8484846001612769565b925090508184048111156128825761288161272d565b5b81810290505b9392505050565b600061289a82612536565b91506128a58361265f565b92506128d27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846127bc565b905092915050565b60006128e582612536565b91506128f083612536565b92508282026128fe81612536565b915082820484148315176129155761291461272d565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061295260208361242c565b915061295d8261291c565b602082019050919050565b6000602082019050818103600083015261298181612945565b9050919050565b7f4e6f2045544820746f207472616e736665720000000000000000000000000000600082015250565b60006129be60128361242c565b91506129c982612988565b602082019050919050565b600060208201905081810360008301526129ed816129b1565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612a2a60178361242c565b9150612a35826129f4565b602082019050919050565b60006020820190508181036000830152612a5981612a1d565b9050919050565b600081519050612a6f8161250a565b92915050565b600060208284031215612a8b57612a8a6124d3565b5b6000612a9984828501612a60565b91505092915050565b6000604082019050612ab760008301856126c3565b612ac460208301846126c3565b9392505050565b6000819050919050565b6000819050919050565b6000612afa612af5612af084612acb565b612ad5565b612536565b9050919050565b612b0a81612adf565b82525050565b600060c082019050612b2560008301896126c3565b612b3260208301886125e2565b612b3f6040830187612b01565b612b4c6060830186612b01565b612b5960808301856126c3565b612b6660a08301846125e2565b979650505050505050565b600081519050612b8081612540565b92915050565b600080600060608486031215612b9f57612b9e6124d3565b5b6000612bad86828701612b71565b9350506020612bbe86828701612b71565b9250506040612bcf86828701612b71565b9150509250925092565b6000604082019050612bee60008301856126c3565b612bfb60208301846125e2565b9392505050565b612c0b816125ac565b8114612c1657600080fd5b50565b600081519050612c2881612c02565b92915050565b600060208284031215612c4457612c436124d3565b5b6000612c5284828501612c19565b91505092915050565b6000612c76612c71612c6c846124d8565b612ad5565b6124d8565b9050919050565b6000612c8882612c5b565b9050919050565b6000612c9a82612c7d565b9050919050565b612caa81612c8f565b82525050565b6000604082019050612cc56000830185612ca1565b612cd260208301846125e2565b9392505050565b7f546f6b656e207472616e73666572206661696c65640000000000000000000000600082015250565b6000612d0f60158361242c565b9150612d1a82612cd9565b602082019050919050565b60006020820190508181036000830152612d3e81612d02565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612da160248361242c565b9150612dac82612d45565b604082019050919050565b60006020820190508181036000830152612dd081612d94565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e3360228361242c565b9150612e3e82612dd7565b604082019050919050565b60006020820190508181036000830152612e6281612e26565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612ec560258361242c565b9150612ed082612e69565b604082019050919050565b60006020820190508181036000830152612ef481612eb8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612f5760238361242c565b9150612f6282612efb565b604082019050919050565b60006020820190508181036000830152612f8681612f4a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612fe960298361242c565b9150612ff482612f8d565b604082019050919050565b6000602082019050818103600083015261301881612fdc565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e204f6e6c79206f6e652070757263686173652070657220626c6f636b2060208201527f616c6c6f7765642e000000000000000000000000000000000000000000000000604082015250565b60006130a160488361242c565b91506130ac8261301f565b606082019050919050565b600060208201905081810360008301526130d081613094565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061310d60198361242c565b9150613118826130d7565b602082019050919050565b6000602082019050818103600083015261313c81613100565b9050919050565b600061314e82612536565b915061315983612536565b92508282019050808211156131715761317061272d565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006131ad601a8361242c565b91506131b882613177565b602082019050919050565b600060208201905081810360008301526131dc816131a0565b9050919050565b60006131ee82612536565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132205761321f61272d565b5b600182019050919050565b600061323682612536565b915061324183612536565b92508282039050818111156132595761325861272d565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132f2816124f8565b82525050565b600061330483836132e9565b60208301905092915050565b6000602082019050919050565b6000613328826132bd565b61333281856132c8565b935061333d836132d9565b8060005b8381101561336e57815161335588826132f8565b975061336083613310565b925050600181019050613341565b5085935050505092915050565b600060a08201905061339060008301886125e2565b61339d6020830187612b01565b81810360408301526133af818661331d565b90506133be60608301856126c3565b6133cb60808301846125e2565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061340f82612536565b915061341a83612536565b92508261342a576134296133d5565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061349160218361242c565b915061349c82613435565b604082019050919050565b600060208201905081810360008301526134c081613484565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006134fd601b8361242c565b9150613508826134c7565b602082019050919050565b6000602082019050818103600083015261352c816134f0565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122028448bb3f3221bf16e73e319b1cef7d0ca4db3a07050d24d1e7a39b5d7e5abae64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101395760003560e01c80637d1db4a5116100ab578063bf474bed1161006f578063bf474bed146103ed578063c876d0b914610418578063c9567bf914610443578063dd62ed3e1461045a578063e11d5be314610497578063f8686f07146104c057610140565b80637d1db4a5146103045780638da5cb5b1461032f5780638f9a55c01461035a57806395d89b4114610385578063a9059cbb146103b057610140565b8063313ce567116100fd578063313ce5671461024057806351bc3c851461026b578063692cda7a1461028257806370a0823114610299578063715018a6146102d6578063751039fc146102ed57610140565b806306fdde0314610145578063095ea7b3146101705780630faee56f146101ad57806318160ddd146101d857806323b872dd1461020357610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104d7565b60405161016791906124b1565b60405180910390f35b34801561017c57600080fd5b506101976004803603810190610192919061256c565b610514565b6040516101a491906125c7565b60405180910390f35b3480156101b957600080fd5b506101c2610532565b6040516101cf91906125f1565b60405180910390f35b3480156101e457600080fd5b506101ed610538565b6040516101fa91906125f1565b60405180910390f35b34801561020f57600080fd5b5061022a6004803603810190610225919061260c565b61055d565b60405161023791906125c7565b60405180910390f35b34801561024c57600080fd5b50610255610636565b604051610262919061267b565b60405180910390f35b34801561027757600080fd5b5061028061063f565b005b34801561028e57600080fd5b506102976106dc565b005b3480156102a557600080fd5b506102c060048036038101906102bb9190612696565b61081f565b6040516102cd91906125f1565b60405180910390f35b3480156102e257600080fd5b506102eb610868565b005b3480156102f957600080fd5b506103026109bb565b005b34801561031057600080fd5b50610319610aee565b60405161032691906125f1565b60405180910390f35b34801561033b57600080fd5b50610344610af4565b60405161035191906126d2565b60405180910390f35b34801561036657600080fd5b5061036f610b1d565b60405161037c91906125f1565b60405180910390f35b34801561039157600080fd5b5061039a610b23565b6040516103a791906124b1565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d2919061256c565b610b60565b6040516103e491906125c7565b60405180910390f35b3480156103f957600080fd5b50610402610b7e565b60405161040f91906125f1565b60405180910390f35b34801561042457600080fd5b5061042d610b84565b60405161043a91906125c7565b60405180910390f35b34801561044f57600080fd5b50610458610b97565b005b34801561046657600080fd5b50610481600480360381019061047c91906126ed565b6110d0565b60405161048e91906125f1565b60405180910390f35b3480156104a357600080fd5b506104be60048036038101906104b9919061256c565b611157565b005b3480156104cc57600080fd5b506104d56112d5565b005b60606040518060400160405280600c81526020017f5749535020544845204341540000000000000000000000000000000000000000815250905090565b6000610528610521611387565b848461138f565b6001905092915050565b60115481565b60006009600a610548919061288f565b64e8d4a5100061055891906128da565b905090565b600061056a848484611558565b61062b84610576611387565b6106268560405180606001604052806028815260200161353460289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105dc611387565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ef09092919063ffffffff16565b61138f565b600190509392505050565b60006009905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610680611387565b73ffffffffffffffffffffffffffffffffffffffff16146106a057600080fd5b60006106ab3061081f565b905060008111156106c0576106bf81611f54565b5b600047905060008111156106d8576106d7816121cd565b5b5050565b6106e4611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610771576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076890612968565b60405180910390fd5b600047116107b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ab906129d4565b60405180910390fd5b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561081c573d6000803e3d6000fd5b50565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610870611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f490612968565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109c3611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4790612968565b60405180910390fd5b6009600a610a5e919061288f565b64e8d4a51000610a6e91906128da565b600e819055506009600a610a82919061288f565b64e8d4a51000610a9291906128da565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610ac7919061288f565b64e8d4a51000610ad791906128da565b604051610ae491906125f1565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600481526020017f5749535000000000000000000000000000000000000000000000000000000000815250905090565b6000610b74610b6d611387565b8484611558565b6001905092915050565b60105481565b600560009054906101000a900460ff1681565b610b9f611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2390612968565b60405180910390fd5b601360149054906101000a900460ff1615610c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7390612a40565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d1b30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d06919061288f565b64e8d4a51000610d1691906128da565b61138f565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dac9190612a75565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e599190612a75565b6040518363ffffffff1660e01b8152600401610e76929190612aa2565b6020604051808303816000875af1158015610e95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb99190612a75565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f423061081f565b600080610f4d610af4565b426040518863ffffffff1660e01b8152600401610f6f96959493929190612b10565b60606040518083038185885af1158015610f8d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fb29190612b86565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611054929190612bd9565b6020604051808303816000875af1158015611073573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110979190612c2e565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61115f611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e390612968565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b815260040161124e929190612cb0565b6020604051808303816000875af115801561126d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112919190612c2e565b6112d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c790612d25565b60405180910390fd5b505050565b6112dd611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461136a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136190612968565b60405180910390fd5b6000600560006101000a81548160ff021916908315150217905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f590612db7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361146d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146490612e49565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161154b91906125f1565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115be90612edb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162d90612f6d565b60405180910390fd5b60008111611679576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167090612fff565b60405180910390fd5b6000611683610af4565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116f157506116c1610af4565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c33576117326064611724600a54600d541161171157600654611715565b6008545b8561223990919063ffffffff16565b6122b390919063ffffffff16565b9050600560009054906101000a900460ff16156118c157601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117f55750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118c05743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061187b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611872906130b7565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561196c5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119c25750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a7d57600e54821115611a0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0390613123565b60405180910390fd5b600f5482611a198561081f565b611a239190613143565b1115611a64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5b906131c3565b60405180910390fd5b600d6000815480929190611a77906131e3565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b0657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b4a57611b476064611b39600b54600d5411611b2657600754611b2a565b6009545b8561223990919063ffffffff16565b6122b390919063ffffffff16565b90505b6000611b553061081f565b9050601360159054906101000a900460ff16158015611bc15750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611bd95750601360169054906101000a900460ff165b8015611be6575060105481115b8015611bf55750600c54600d54115b15611c3157611c17611c1284611c0d846011546122fd565b6122fd565b611f54565b60004790506000811115611c2f57611c2e476121cd565b5b505b505b6000811115611d3757611c8e81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461231690919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d2e91906125f1565b60405180910390a35b611d8982600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237490919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e30611de2828461237490919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461231690919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ed5848661237490919063ffffffff16565b604051611ee291906125f1565b60405180910390a350505050565b6000838311158290611f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2f91906124b1565b60405180910390fd5b5060008385611f47919061322b565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f8c57611f8b61325f565b5b604051908082528060200260200182016040528015611fba5781602001602082028036833780820191505090505b5090503081600081518110611fd257611fd161328e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612079573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209d9190612a75565b816001815181106120b1576120b061328e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061211830601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461138f565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161217c95949392919061337b565b600060405180830381600087803b15801561219657600080fd5b505af11580156121aa573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612235573d6000803e3d6000fd5b5050565b600080830361224b57600090506122ad565b6000828461225991906128da565b90508284826122689190613404565b146122a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229f906134a7565b60405180910390fd5b809150505b92915050565b60006122f583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123be565b905092915050565b600081831161230c578261230e565b815b905092915050565b60008082846123259190613143565b90508381101561236a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236190613513565b60405180910390fd5b8091505092915050565b60006123b683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ef0565b905092915050565b60008083118290612405576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fc91906124b1565b60405180910390fd5b50600083856124149190613404565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561245b578082015181840152602081019050612440565b60008484015250505050565b6000601f19601f8301169050919050565b600061248382612421565b61248d818561242c565b935061249d81856020860161243d565b6124a681612467565b840191505092915050565b600060208201905081810360008301526124cb8184612478565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612503826124d8565b9050919050565b612513816124f8565b811461251e57600080fd5b50565b6000813590506125308161250a565b92915050565b6000819050919050565b61254981612536565b811461255457600080fd5b50565b60008135905061256681612540565b92915050565b60008060408385031215612583576125826124d3565b5b600061259185828601612521565b92505060206125a285828601612557565b9150509250929050565b60008115159050919050565b6125c1816125ac565b82525050565b60006020820190506125dc60008301846125b8565b92915050565b6125eb81612536565b82525050565b600060208201905061260660008301846125e2565b92915050565b600080600060608486031215612625576126246124d3565b5b600061263386828701612521565b935050602061264486828701612521565b925050604061265586828701612557565b9150509250925092565b600060ff82169050919050565b6126758161265f565b82525050565b6000602082019050612690600083018461266c565b92915050565b6000602082840312156126ac576126ab6124d3565b5b60006126ba84828501612521565b91505092915050565b6126cc816124f8565b82525050565b60006020820190506126e760008301846126c3565b92915050565b60008060408385031215612704576127036124d3565b5b600061271285828601612521565b925050602061272385828601612521565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156127b35780860481111561278f5761278e61272d565b5b600185161561279e5780820291505b80810290506127ac8561275c565b9450612773565b94509492505050565b6000826127cc5760019050612888565b816127da5760009050612888565b81600181146127f057600281146127fa57612829565b6001915050612888565b60ff84111561280c5761280b61272d565b5b8360020a9150848211156128235761282261272d565b5b50612888565b5060208310610133831016604e8410600b841016171561285e5782820a9050838111156128595761285861272d565b5b612888565b61286b8484846001612769565b925090508184048111156128825761288161272d565b5b81810290505b9392505050565b600061289a82612536565b91506128a58361265f565b92506128d27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846127bc565b905092915050565b60006128e582612536565b91506128f083612536565b92508282026128fe81612536565b915082820484148315176129155761291461272d565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061295260208361242c565b915061295d8261291c565b602082019050919050565b6000602082019050818103600083015261298181612945565b9050919050565b7f4e6f2045544820746f207472616e736665720000000000000000000000000000600082015250565b60006129be60128361242c565b91506129c982612988565b602082019050919050565b600060208201905081810360008301526129ed816129b1565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612a2a60178361242c565b9150612a35826129f4565b602082019050919050565b60006020820190508181036000830152612a5981612a1d565b9050919050565b600081519050612a6f8161250a565b92915050565b600060208284031215612a8b57612a8a6124d3565b5b6000612a9984828501612a60565b91505092915050565b6000604082019050612ab760008301856126c3565b612ac460208301846126c3565b9392505050565b6000819050919050565b6000819050919050565b6000612afa612af5612af084612acb565b612ad5565b612536565b9050919050565b612b0a81612adf565b82525050565b600060c082019050612b2560008301896126c3565b612b3260208301886125e2565b612b3f6040830187612b01565b612b4c6060830186612b01565b612b5960808301856126c3565b612b6660a08301846125e2565b979650505050505050565b600081519050612b8081612540565b92915050565b600080600060608486031215612b9f57612b9e6124d3565b5b6000612bad86828701612b71565b9350506020612bbe86828701612b71565b9250506040612bcf86828701612b71565b9150509250925092565b6000604082019050612bee60008301856126c3565b612bfb60208301846125e2565b9392505050565b612c0b816125ac565b8114612c1657600080fd5b50565b600081519050612c2881612c02565b92915050565b600060208284031215612c4457612c436124d3565b5b6000612c5284828501612c19565b91505092915050565b6000612c76612c71612c6c846124d8565b612ad5565b6124d8565b9050919050565b6000612c8882612c5b565b9050919050565b6000612c9a82612c7d565b9050919050565b612caa81612c8f565b82525050565b6000604082019050612cc56000830185612ca1565b612cd260208301846125e2565b9392505050565b7f546f6b656e207472616e73666572206661696c65640000000000000000000000600082015250565b6000612d0f60158361242c565b9150612d1a82612cd9565b602082019050919050565b60006020820190508181036000830152612d3e81612d02565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612da160248361242c565b9150612dac82612d45565b604082019050919050565b60006020820190508181036000830152612dd081612d94565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e3360228361242c565b9150612e3e82612dd7565b604082019050919050565b60006020820190508181036000830152612e6281612e26565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612ec560258361242c565b9150612ed082612e69565b604082019050919050565b60006020820190508181036000830152612ef481612eb8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612f5760238361242c565b9150612f6282612efb565b604082019050919050565b60006020820190508181036000830152612f8681612f4a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612fe960298361242c565b9150612ff482612f8d565b604082019050919050565b6000602082019050818103600083015261301881612fdc565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e204f6e6c79206f6e652070757263686173652070657220626c6f636b2060208201527f616c6c6f7765642e000000000000000000000000000000000000000000000000604082015250565b60006130a160488361242c565b91506130ac8261301f565b606082019050919050565b600060208201905081810360008301526130d081613094565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061310d60198361242c565b9150613118826130d7565b602082019050919050565b6000602082019050818103600083015261313c81613100565b9050919050565b600061314e82612536565b915061315983612536565b92508282019050808211156131715761317061272d565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006131ad601a8361242c565b91506131b882613177565b602082019050919050565b600060208201905081810360008301526131dc816131a0565b9050919050565b60006131ee82612536565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132205761321f61272d565b5b600182019050919050565b600061323682612536565b915061324183612536565b92508282039050818111156132595761325861272d565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132f2816124f8565b82525050565b600061330483836132e9565b60208301905092915050565b6000602082019050919050565b6000613328826132bd565b61333281856132c8565b935061333d836132d9565b8060005b8381101561336e57815161335588826132f8565b975061336083613310565b925050600181019050613341565b5085935050505092915050565b600060a08201905061339060008301886125e2565b61339d6020830187612b01565b81810360408301526133af818661331d565b90506133be60608301856126c3565b6133cb60808301846125e2565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061340f82612536565b915061341a83612536565b92508261342a576134296133d5565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061349160218361242c565b915061349c82613435565b604082019050919050565b600060208201905081810360008301526134c081613484565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006134fd601b8361242c565b9150613508826134c7565b602082019050919050565b6000602082019050818103600083015261352c816134f0565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122028448bb3f3221bf16e73e319b1cef7d0ca4db3a07050d24d1e7a39b5d7e5abae64736f6c63430008120033

Deployed Bytecode Sourcemap

6941:8359:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8858:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9691:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8129:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9135:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9860:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9044:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14764:348;;;;;;;;;;;;;:::i;:::-;;15120:177;;;;;;;;;;;;;:::i;:::-;;9238:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6024:148;;;;;;;;;;;;;:::i;:::-;;14118:162;;;;;;;;;;;;;:::i;:::-;;7927:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5810:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7992:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8949:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9365:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8059:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7282:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13434:672;;;;;;;;;;;;;:::i;:::-;;9540:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14295:212;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14515:97;;;;;;;;;;;;;:::i;:::-;;8858:83;8895:13;8928:5;;;;;;;;;;;;;;;;;8921:12;;8858:83;:::o;9691:161::-;9766:4;9783:39;9792:12;:10;:12::i;:::-;9806:7;9815:6;9783:8;:39::i;:::-;9840:4;9833:11;;9691:161;;;;:::o;8129:56::-;;;;:::o;9135:95::-;9188:7;7733:1;7792:2;:14;;;;:::i;:::-;7776:13;:30;;;;:::i;:::-;9208:14;;9135:95;:::o;9860:313::-;9958:4;9975:36;9985:6;9993:9;10004:6;9975:9;:36::i;:::-;10022:121;10031:6;10039:12;:10;:12::i;:::-;10053:89;10091:6;10053:89;;;;;;;;;;;;;;;;;:11;:19;10065:6;10053:19;;;;;;;;;;;;;;;:33;10073:12;:10;:12::i;:::-;10053:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;10022:8;:121::i;:::-;10161:4;10154:11;;9860:313;;;;;:::o;9044:83::-;9085:5;7733:1;9103:16;;9044:83;:::o;14764:348::-;14828:10;;;;;;;;;;;14814:24;;:12;:10;:12::i;:::-;:24;;;14806:33;;;;;;14850:20;14871:24;14889:4;14871:9;:24::i;:::-;14850:45;;14922:1;14909:12;:14;14906:73;;;14937:30;14954:12;14937:16;:30::i;:::-;14906:73;14989:18;15008:21;14989:40;;15054:1;15043:10;:12;15040:65;;;15069:24;15082:10;15069:12;:24::i;:::-;15040:65;14795:317;;14764:348::o;15120:177::-;5947:12;:10;:12::i;:::-;5937:22;;:6;;;;;;;;;;:22;;;5929:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15212:1:::1;15188:21;:25;15180:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;15247:10;;;;;;;;;;;:19;;:42;15267:21;15247:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;15120:177::o:0;9238:119::-;9304:7;9331:9;:18;9341:7;9331:18;;;;;;;;;;;;;;;;9324:25;;9238:119;;;:::o;6024:148::-;5947:12;:10;:12::i;:::-;5937:22;;:6;;;;;;;;;;:22;;;5929:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6131:1:::1;6094:40;;6115:6;::::0;::::1;;;;;;;;6094:40;;;;;;;;;;;;6162:1;6145:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;6024:148::o:0;14118:162::-;5947:12;:10;:12::i;:::-;5937:22;;:6;;;;;;;;;;:22;;;5929:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7733:1:::1;7792:2;:14;;;;:::i;:::-;7776:13;:30;;;;:::i;:::-;14172:12;:22;;;;7733:1;7792:2;:14;;;;:::i;:::-;7776:13;:30;;;;:::i;:::-;14205:14;:24;;;;14245:27;7733:1;7792:2;:14;;;;:::i;:::-;7776:13;:30;;;;:::i;:::-;14245:27;;;;;;:::i;:::-;;;;;;;;14118:162::o:0;7927:58::-;;;;:::o;5810:79::-;5848:7;5875:6;;;;;;;;;;;5868:13;;5810:79;:::o;7992:60::-;;;;:::o;8949:87::-;8988:13;9021:7;;;;;;;;;;;;;;;;;9014:14;;8949:87;:::o;9365:167::-;9443:4;9460:42;9470:12;:10;:12::i;:::-;9484:9;9495:6;9460:9;:42::i;:::-;9520:4;9513:11;;9365:167;;;;:::o;8059:63::-;;;;:::o;7282:39::-;;;;;;;;;;;;;:::o;13434:672::-;5947:12;:10;:12::i;:::-;5937:22;;:6;;;;;;;;;;:22;;;5929:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13498:11:::1;;;;;;;;;;;13497:12;13489:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;13585:42;13548:15;;:80;;;;;;;;;;;;;;;;;;13639:58;13656:4;13671:15;;;;;;;;;;;7733:1;7792:2;:14;;;;:::i;:::-;7776:13;:30;;;;:::i;:::-;13639:8;:58::i;:::-;13742:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13724:55;;;13788:4;13795:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13724:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13708:13;;:110;;;;;;;;;;;;;;;;;;13829:15;;;;;;;;;;;:31;;;13868:21;13899:4;13905:24;13923:4;13905:9;:24::i;:::-;13930:1;13932::::0;13934:7:::1;:5;:7::i;:::-;13942:15;13829:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13976:13;;;;;;;;;;;13969:29;;;14007:15;;;;;;;;;;;14025:14;13969:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14065:4;14051:11;;:18;;;;;;;;;;;;;;;;;;14094:4;14080:11;;:18;;;;;;;;;;;;;;;;;;13434:672::o:0;9540:143::-;9621:7;9648:11;:18;9660:5;9648:18;;;;;;;;;;;;;;;:27;9667:7;9648:27;;;;;;;;;;;;;;;;9641:34;;9540:143;;;;:::o;14295:212::-;5947:12;:10;:12::i;:::-;5937:22;;:6;;;;;;;;;;:22;;;5929:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14385:12:::1;14407;14385:35;;14439:5;:14;;;14454:10;;;;;;;;;;;14466:6;14439:34;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14431:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14374:133;14295:212:::0;;:::o;14515:97::-;5947:12;:10;:12::i;:::-;5937:22;;:6;;;;;;;;;;:22;;;5929:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14599:5:::1;14576:20;;:28;;;;;;;;;;;;;;;;;;14515:97::o:0;3567:98::-;3620:7;3647:10;3640:17;;3567:98;:::o;10181:335::-;10291:1;10274:19;;:5;:19;;;10266:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10372:1;10353:21;;:7;:21;;;10345:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10454:6;10424:11;:18;10436:5;10424:18;;;;;;;;;;;;;;;:27;10443:7;10424:27;;;;;;;;;;;;;;;:36;;;;10492:7;10476:32;;10485:5;10476:32;;;10501:6;10476:32;;;;;;:::i;:::-;;;;;;;;10181:335;;;:::o;10524:2296::-;10628:1;10612:18;;:4;:18;;;10604:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10705:1;10691:16;;:2;:16;;;10683:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10775:1;10766:6;:10;10758:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10833:17;10877:7;:5;:7::i;:::-;10869:15;;:4;:15;;;;:32;;;;;10894:7;:5;:7::i;:::-;10888:13;;:2;:13;;;;10869:32;10865:1597;;;10930:76;11002:3;10930:67;10952:15;;10942:9;;:25;10941:55;;10982:14;;10941:55;;;10969:12;;10941:55;10930:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;10918:88;;11027:20;;;;;;;;;;;11023:397;;;11088:15;;;;;;;;;;;11074:30;;:2;:30;;;;:62;;;;;11122:13;;;;;;;;;;;11108:28;;:2;:28;;;;11074:62;11070:333;;;11213:12;11171:28;:39;11200:9;11171:39;;;;;;;;;;;;;;;;:54;11163:139;;;;;;;;;;;;:::i;:::-;;;;;;;;;11369:12;11327:28;:39;11356:9;11327:39;;;;;;;;;;;;;;;:54;;;;11070:333;11023:397;11448:13;;;;;;;;;;;11440:21;;:4;:21;;;:55;;;;;11479:15;;;;;;;;;;;11465:30;;:2;:30;;;;11440:55;:83;;;;;11501:18;:22;11520:2;11501:22;;;;;;;;;;;;;;;;;;;;;;;;;11499:24;11440:83;11436:313;;;11563:12;;11553:6;:22;;11545:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;11658:14;;11648:6;11632:13;11642:2;11632:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;11624:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;11722:9;;:11;;;;;;;;;:::i;:::-;;;;;;11436:313;11774:13;;;;;;;;;;;11768:19;;:2;:19;;;:43;;;;;11806:4;11791:20;;:4;:20;;;;11768:43;11765:174;;;11844:79;11919:3;11844:70;11866:16;;11856:9;;:26;11855:58;;11898:15;;11855:58;;;11884:13;;11855:58;11844:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;11832:91;;11765:174;11955:28;11986:24;12004:4;11986:9;:24::i;:::-;11955:55;;12030:6;;;;;;;;;;;12029:7;:32;;;;;12048:13;;;;;;;;;;;12040:21;;:2;:21;;;12029:32;:47;;;;;12065:11;;;;;;;;;;;12029:47;:91;;;;;12103:17;;12080:20;:40;12029:91;:125;;;;;12136:18;;12124:9;;:30;12029:125;12025:426;;;12175:68;12192:50;12196:6;12204:37;12208:20;12229:11;;12204:3;:37::i;:::-;12192:3;:50::i;:::-;12175:16;:68::i;:::-;12262:26;12291:21;12262:50;;12355:1;12334:18;:22;12331:105;;;12381:35;12394:21;12381:12;:35::i;:::-;12331:105;12156:295;12025:426;10903:1559;10865:1597;12487:1;12477:9;:11;12474:163;;;12528:39;12557:9;12528;:24;12546:4;12528:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;12503:9;:24;12521:4;12503:24;;;;;;;;;;;;;;;:64;;;;12608:4;12585:40;;12594:4;12585:40;;;12615:9;12585:40;;;;;;:::i;:::-;;;;;;;;12474:163;12663:27;12683:6;12663:9;:15;12673:4;12663:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;12647:9;:15;12657:4;12647:15;;;;;;;;;;;;;;;:43;;;;12715:40;12733:21;12744:9;12733:6;:10;;:21;;;;:::i;:::-;12715:9;:13;12725:2;12715:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;12701:9;:13;12711:2;12701:13;;;;;;;;;;;;;;;:54;;;;12786:2;12771:41;;12780:4;12771:41;;;12790:21;12801:9;12790:6;:10;;:21;;;;:::i;:::-;12771:41;;;;;;:::i;:::-;;;;;;;;10593:2227;10524:2296;;;:::o;4704:190::-;4790:7;4823:1;4818;:6;;4826:12;4810:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4850:9;4866:1;4862;:5;;;;:::i;:::-;4850:17;;4885:1;4878:8;;;4704:190;;;;;:::o;12936:483::-;8476:4;8467:6;;:13;;;;;;;;;;;;;;;;;;13014:21:::1;13052:1;13038:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13014:40;;13083:4;13065;13070:1;13065:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13109:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13099:4;13104:1;13099:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;13142:62;13159:4;13174:15;;;;;;;;;;;13192:11;13142:8;:62::i;:::-;13215:15;;;;;;;;;;;:66;;;13296:11;13322:1;13338:4;13365;13385:15;13215:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13003:416;8512:5:::0;8503:6;;:14;;;;;;;;;;;;;;;;;;12936:483;:::o;14623:92::-;14680:10;;;;;;;;;;;:19;;:27;14700:6;14680:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14623:92;:::o;4902:246::-;4960:7;4989:1;4984;:6;4980:47;;5014:1;5007:8;;;;4980:47;5037:9;5053:1;5049;:5;;;;:::i;:::-;5037:17;;5082:1;5077;5073;:5;;;;:::i;:::-;:10;5065:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;5139:1;5132:8;;;4902:246;;;;;:::o;5156:132::-;5214:7;5241:39;5245:1;5248;5241:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;5234:46;;5156:132;;;;:::o;12830:98::-;12887:7;12914:1;12912;:3;12911:9;;12919:1;12911:9;;;12917:1;12911:9;12904:16;;12830:98;;;;:::o;4373:179::-;4431:7;4451:9;4467:1;4463;:5;;;;:::i;:::-;4451:17;;4492:1;4487;:6;;4479:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4543:1;4536:8;;;4373:179;;;;:::o;4560:136::-;4618:7;4645:43;4649:1;4652;4645:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4638:50;;4560:136;;;;:::o;5296:189::-;5382:7;5414:1;5410;:5;5417:12;5402:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5441:9;5457:1;5453;:5;;;;:::i;:::-;5441:17;;5476:1;5469:8;;;5296: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:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::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:180::-;6068:77;6065:1;6058:88;6165:4;6162:1;6155:15;6189:4;6186:1;6179:15;6206:102;6248:8;6295:5;6292:1;6288:13;6267:34;;6206:102;;;:::o;6314:848::-;6375:5;6382:4;6406:6;6397:15;;6430:5;6421:14;;6444:712;6465:1;6455:8;6452:15;6444:712;;;6560:4;6555:3;6551:14;6545:4;6542:24;6539:50;;;6569:18;;:::i;:::-;6539:50;6619:1;6609:8;6605:16;6602:451;;;7034:4;7027:5;7023:16;7014:25;;6602:451;7084:4;7078;7074:15;7066:23;;7114:32;7137:8;7114:32;:::i;:::-;7102:44;;6444:712;;;6314:848;;;;;;;:::o;7168:1073::-;7222:5;7413:8;7403:40;;7434:1;7425:10;;7436:5;;7403:40;7462:4;7452:36;;7479:1;7470:10;;7481:5;;7452:36;7548:4;7596:1;7591:27;;;;7632:1;7627:191;;;;7541:277;;7591:27;7609:1;7600:10;;7611:5;;;7627:191;7672:3;7662:8;7659:17;7656:43;;;7679:18;;:::i;:::-;7656:43;7728:8;7725:1;7721:16;7712:25;;7763:3;7756:5;7753:14;7750:40;;;7770:18;;:::i;:::-;7750:40;7803:5;;;7541:277;;7927:2;7917:8;7914:16;7908:3;7902:4;7899:13;7895:36;7877:2;7867:8;7864:16;7859:2;7853:4;7850:12;7846:35;7830:111;7827:246;;;7983:8;7977:4;7973:19;7964:28;;8018:3;8011:5;8008:14;8005:40;;;8025:18;;:::i;:::-;8005:40;8058:5;;7827:246;8098:42;8136:3;8126:8;8120:4;8117:1;8098:42;:::i;:::-;8083:57;;;;8172:4;8167:3;8163:14;8156:5;8153:25;8150:51;;;8181:18;;:::i;:::-;8150:51;8230:4;8223:5;8219:16;8210:25;;7168:1073;;;;;;:::o;8247:281::-;8305:5;8329:23;8347:4;8329:23;:::i;:::-;8321:31;;8373:25;8389:8;8373:25;:::i;:::-;8361:37;;8417:104;8454:66;8444:8;8438:4;8417:104;:::i;:::-;8408:113;;8247:281;;;;:::o;8534:410::-;8574:7;8597:20;8615:1;8597:20;:::i;:::-;8592:25;;8631:20;8649:1;8631:20;:::i;:::-;8626:25;;8686:1;8683;8679:9;8708:30;8726:11;8708:30;:::i;:::-;8697:41;;8887:1;8878:7;8874:15;8871:1;8868:22;8848:1;8841:9;8821:83;8798:139;;8917:18;;:::i;:::-;8798:139;8582:362;8534:410;;;;:::o;8950:182::-;9090:34;9086:1;9078:6;9074:14;9067:58;8950:182;:::o;9138:366::-;9280:3;9301:67;9365:2;9360:3;9301:67;:::i;:::-;9294:74;;9377:93;9466:3;9377:93;:::i;:::-;9495:2;9490:3;9486:12;9479:19;;9138:366;;;:::o;9510:419::-;9676:4;9714:2;9703:9;9699:18;9691:26;;9763:9;9757:4;9753:20;9749:1;9738:9;9734:17;9727:47;9791:131;9917:4;9791:131;:::i;:::-;9783:139;;9510:419;;;:::o;9935:168::-;10075:20;10071:1;10063:6;10059:14;10052:44;9935:168;:::o;10109:366::-;10251:3;10272:67;10336:2;10331:3;10272:67;:::i;:::-;10265:74;;10348:93;10437:3;10348:93;:::i;:::-;10466:2;10461:3;10457:12;10450:19;;10109:366;;;:::o;10481:419::-;10647:4;10685:2;10674:9;10670:18;10662:26;;10734:9;10728:4;10724:20;10720:1;10709:9;10705:17;10698:47;10762:131;10888:4;10762:131;:::i;:::-;10754:139;;10481:419;;;:::o;10906:173::-;11046:25;11042:1;11034:6;11030:14;11023:49;10906:173;:::o;11085:366::-;11227:3;11248:67;11312:2;11307:3;11248:67;:::i;:::-;11241:74;;11324:93;11413:3;11324:93;:::i;:::-;11442:2;11437:3;11433:12;11426:19;;11085:366;;;:::o;11457:419::-;11623:4;11661:2;11650:9;11646:18;11638:26;;11710:9;11704:4;11700:20;11696:1;11685:9;11681:17;11674:47;11738:131;11864:4;11738:131;:::i;:::-;11730:139;;11457:419;;;:::o;11882:143::-;11939:5;11970:6;11964:13;11955:22;;11986:33;12013:5;11986:33;:::i;:::-;11882:143;;;;:::o;12031:351::-;12101:6;12150:2;12138:9;12129:7;12125:23;12121:32;12118:119;;;12156:79;;:::i;:::-;12118:119;12276:1;12301:64;12357:7;12348:6;12337:9;12333:22;12301:64;:::i;:::-;12291:74;;12247:128;12031:351;;;;:::o;12388:332::-;12509:4;12547:2;12536:9;12532:18;12524:26;;12560:71;12628:1;12617:9;12613:17;12604:6;12560:71;:::i;:::-;12641:72;12709:2;12698:9;12694:18;12685:6;12641:72;:::i;:::-;12388:332;;;;;:::o;12726:85::-;12771:7;12800:5;12789:16;;12726:85;;;:::o;12817:60::-;12845:3;12866:5;12859:12;;12817:60;;;:::o;12883:158::-;12941:9;12974:61;12992:42;13001:32;13027:5;13001:32;:::i;:::-;12992:42;:::i;:::-;12974:61;:::i;:::-;12961:74;;12883:158;;;:::o;13047:147::-;13142:45;13181:5;13142:45;:::i;:::-;13137:3;13130:58;13047:147;;:::o;13200:807::-;13449:4;13487:3;13476:9;13472:19;13464:27;;13501:71;13569:1;13558:9;13554:17;13545:6;13501:71;:::i;:::-;13582:72;13650:2;13639:9;13635:18;13626:6;13582:72;:::i;:::-;13664:80;13740:2;13729:9;13725:18;13716:6;13664:80;:::i;:::-;13754;13830:2;13819:9;13815:18;13806:6;13754:80;:::i;:::-;13844:73;13912:3;13901:9;13897:19;13888:6;13844:73;:::i;:::-;13927;13995:3;13984:9;13980:19;13971:6;13927:73;:::i;:::-;13200:807;;;;;;;;;:::o;14013:143::-;14070:5;14101:6;14095:13;14086:22;;14117:33;14144:5;14117:33;:::i;:::-;14013:143;;;;:::o;14162:663::-;14250:6;14258;14266;14315:2;14303:9;14294:7;14290:23;14286:32;14283:119;;;14321:79;;:::i;:::-;14283:119;14441:1;14466:64;14522:7;14513:6;14502:9;14498:22;14466:64;:::i;:::-;14456:74;;14412:128;14579:2;14605:64;14661:7;14652:6;14641:9;14637:22;14605:64;:::i;:::-;14595:74;;14550:129;14718:2;14744:64;14800:7;14791:6;14780:9;14776:22;14744:64;:::i;:::-;14734:74;;14689:129;14162:663;;;;;:::o;14831:332::-;14952:4;14990:2;14979:9;14975:18;14967:26;;15003:71;15071:1;15060:9;15056:17;15047:6;15003:71;:::i;:::-;15084:72;15152:2;15141:9;15137:18;15128:6;15084:72;:::i;:::-;14831:332;;;;;:::o;15169:116::-;15239:21;15254:5;15239:21;:::i;:::-;15232:5;15229:32;15219:60;;15275:1;15272;15265:12;15219:60;15169:116;:::o;15291:137::-;15345:5;15376:6;15370:13;15361:22;;15392:30;15416:5;15392:30;:::i;:::-;15291:137;;;;:::o;15434:345::-;15501:6;15550:2;15538:9;15529:7;15525:23;15521:32;15518:119;;;15556:79;;:::i;:::-;15518:119;15676:1;15701:61;15754:7;15745:6;15734:9;15730:22;15701:61;:::i;:::-;15691:71;;15647:125;15434:345;;;;:::o;15785:142::-;15835:9;15868:53;15886:34;15895:24;15913:5;15895:24;:::i;:::-;15886:34;:::i;:::-;15868:53;:::i;:::-;15855:66;;15785:142;;;:::o;15933:126::-;15983:9;16016:37;16047:5;16016:37;:::i;:::-;16003:50;;15933:126;;;:::o;16065:134::-;16123:9;16156:37;16187:5;16156:37;:::i;:::-;16143:50;;16065:134;;;:::o;16205:147::-;16300:45;16339:5;16300:45;:::i;:::-;16295:3;16288:58;16205:147;;:::o;16358:348::-;16487:4;16525:2;16514:9;16510:18;16502:26;;16538:79;16614:1;16603:9;16599:17;16590:6;16538:79;:::i;:::-;16627:72;16695:2;16684:9;16680:18;16671:6;16627:72;:::i;:::-;16358:348;;;;;:::o;16712:171::-;16852:23;16848:1;16840:6;16836:14;16829:47;16712:171;:::o;16889:366::-;17031:3;17052:67;17116:2;17111:3;17052:67;:::i;:::-;17045:74;;17128:93;17217:3;17128:93;:::i;:::-;17246:2;17241:3;17237:12;17230:19;;16889:366;;;:::o;17261:419::-;17427:4;17465:2;17454:9;17450:18;17442:26;;17514:9;17508:4;17504:20;17500:1;17489:9;17485:17;17478:47;17542:131;17668:4;17542:131;:::i;:::-;17534:139;;17261:419;;;:::o;17686:223::-;17826:34;17822:1;17814:6;17810:14;17803:58;17895:6;17890:2;17882:6;17878:15;17871:31;17686:223;:::o;17915:366::-;18057:3;18078:67;18142:2;18137:3;18078:67;:::i;:::-;18071:74;;18154:93;18243:3;18154:93;:::i;:::-;18272:2;18267:3;18263:12;18256:19;;17915:366;;;:::o;18287:419::-;18453:4;18491:2;18480:9;18476:18;18468:26;;18540:9;18534:4;18530:20;18526:1;18515:9;18511:17;18504:47;18568:131;18694:4;18568:131;:::i;:::-;18560:139;;18287:419;;;:::o;18712:221::-;18852:34;18848:1;18840:6;18836:14;18829:58;18921:4;18916:2;18908:6;18904:15;18897:29;18712:221;:::o;18939:366::-;19081:3;19102:67;19166:2;19161:3;19102:67;:::i;:::-;19095:74;;19178:93;19267:3;19178:93;:::i;:::-;19296:2;19291:3;19287:12;19280:19;;18939:366;;;:::o;19311:419::-;19477:4;19515:2;19504:9;19500:18;19492:26;;19564:9;19558:4;19554:20;19550:1;19539:9;19535:17;19528:47;19592:131;19718:4;19592:131;:::i;:::-;19584:139;;19311:419;;;:::o;19736:224::-;19876:34;19872:1;19864:6;19860:14;19853:58;19945:7;19940:2;19932:6;19928:15;19921:32;19736:224;:::o;19966:366::-;20108:3;20129:67;20193:2;20188:3;20129:67;:::i;:::-;20122:74;;20205:93;20294:3;20205:93;:::i;:::-;20323:2;20318:3;20314:12;20307:19;;19966:366;;;:::o;20338:419::-;20504:4;20542:2;20531:9;20527:18;20519:26;;20591:9;20585:4;20581:20;20577:1;20566:9;20562:17;20555:47;20619:131;20745:4;20619:131;:::i;:::-;20611:139;;20338:419;;;:::o;20763:222::-;20903:34;20899:1;20891:6;20887:14;20880:58;20972:5;20967:2;20959:6;20955:15;20948:30;20763:222;:::o;20991:366::-;21133:3;21154:67;21218:2;21213:3;21154:67;:::i;:::-;21147:74;;21230:93;21319:3;21230:93;:::i;:::-;21348:2;21343:3;21339:12;21332:19;;20991:366;;;:::o;21363:419::-;21529:4;21567:2;21556:9;21552:18;21544:26;;21616:9;21610:4;21606:20;21602:1;21591:9;21587:17;21580:47;21644:131;21770:4;21644:131;:::i;:::-;21636:139;;21363:419;;;:::o;21788:228::-;21928:34;21924:1;21916:6;21912:14;21905:58;21997:11;21992:2;21984:6;21980:15;21973:36;21788:228;:::o;22022:366::-;22164:3;22185:67;22249:2;22244:3;22185:67;:::i;:::-;22178:74;;22261:93;22350:3;22261:93;:::i;:::-;22379:2;22374:3;22370:12;22363:19;;22022:366;;;:::o;22394:419::-;22560:4;22598:2;22587:9;22583:18;22575:26;;22647:9;22641:4;22637:20;22633:1;22622:9;22618:17;22611:47;22675:131;22801:4;22675:131;:::i;:::-;22667:139;;22394:419;;;:::o;22819:296::-;22959:34;22955:1;22947:6;22943:14;22936:58;23028:34;23023:2;23015:6;23011:15;23004:59;23097:10;23092:2;23084:6;23080:15;23073:35;22819:296;:::o;23121:366::-;23263:3;23284:67;23348:2;23343:3;23284:67;:::i;:::-;23277:74;;23360:93;23449:3;23360:93;:::i;:::-;23478:2;23473:3;23469:12;23462:19;;23121:366;;;:::o;23493:419::-;23659:4;23697:2;23686:9;23682:18;23674:26;;23746:9;23740:4;23736:20;23732:1;23721:9;23717:17;23710:47;23774:131;23900:4;23774:131;:::i;:::-;23766:139;;23493:419;;;:::o;23918:175::-;24058:27;24054:1;24046:6;24042:14;24035:51;23918:175;:::o;24099:366::-;24241:3;24262:67;24326:2;24321:3;24262:67;:::i;:::-;24255:74;;24338:93;24427:3;24338:93;:::i;:::-;24456:2;24451:3;24447:12;24440:19;;24099:366;;;:::o;24471:419::-;24637:4;24675:2;24664:9;24660:18;24652:26;;24724:9;24718:4;24714:20;24710:1;24699:9;24695:17;24688:47;24752:131;24878:4;24752:131;:::i;:::-;24744:139;;24471:419;;;:::o;24896:191::-;24936:3;24955:20;24973:1;24955:20;:::i;:::-;24950:25;;24989:20;25007:1;24989:20;:::i;:::-;24984:25;;25032:1;25029;25025:9;25018:16;;25053:3;25050:1;25047:10;25044:36;;;25060:18;;:::i;:::-;25044:36;24896:191;;;;:::o;25093:176::-;25233:28;25229:1;25221:6;25217:14;25210:52;25093:176;:::o;25275:366::-;25417:3;25438:67;25502:2;25497:3;25438:67;:::i;:::-;25431:74;;25514:93;25603:3;25514:93;:::i;:::-;25632:2;25627:3;25623:12;25616:19;;25275:366;;;:::o;25647:419::-;25813:4;25851:2;25840:9;25836:18;25828:26;;25900:9;25894:4;25890:20;25886:1;25875:9;25871:17;25864:47;25928:131;26054:4;25928:131;:::i;:::-;25920:139;;25647:419;;;:::o;26072:233::-;26111:3;26134:24;26152:5;26134:24;:::i;:::-;26125:33;;26180:66;26173:5;26170:77;26167:103;;26250:18;;:::i;:::-;26167:103;26297:1;26290:5;26286:13;26279:20;;26072:233;;;:::o;26311:194::-;26351:4;26371:20;26389:1;26371:20;:::i;:::-;26366:25;;26405:20;26423:1;26405:20;:::i;:::-;26400:25;;26449:1;26446;26442:9;26434:17;;26473:1;26467:4;26464:11;26461:37;;;26478:18;;:::i;:::-;26461:37;26311:194;;;;:::o;26511:180::-;26559:77;26556:1;26549:88;26656:4;26653:1;26646:15;26680:4;26677:1;26670:15;26697:180;26745:77;26742:1;26735:88;26842:4;26839:1;26832:15;26866:4;26863:1;26856:15;26883:114;26950:6;26984:5;26978:12;26968:22;;26883:114;;;:::o;27003:184::-;27102:11;27136:6;27131:3;27124:19;27176:4;27171:3;27167:14;27152:29;;27003:184;;;;:::o;27193:132::-;27260:4;27283:3;27275:11;;27313:4;27308:3;27304:14;27296:22;;27193:132;;;:::o;27331:108::-;27408:24;27426:5;27408:24;:::i;:::-;27403:3;27396:37;27331:108;;:::o;27445:179::-;27514:10;27535:46;27577:3;27569:6;27535:46;:::i;:::-;27613:4;27608:3;27604:14;27590:28;;27445:179;;;;:::o;27630:113::-;27700:4;27732;27727:3;27723:14;27715:22;;27630:113;;;:::o;27779:732::-;27898:3;27927:54;27975:5;27927:54;:::i;:::-;27997:86;28076:6;28071:3;27997:86;:::i;:::-;27990:93;;28107:56;28157:5;28107:56;:::i;:::-;28186:7;28217:1;28202:284;28227:6;28224:1;28221:13;28202:284;;;28303:6;28297:13;28330:63;28389:3;28374:13;28330:63;:::i;:::-;28323:70;;28416:60;28469:6;28416:60;:::i;:::-;28406:70;;28262:224;28249:1;28246;28242:9;28237:14;;28202:284;;;28206:14;28502:3;28495:10;;27903:608;;;27779:732;;;;:::o;28517:831::-;28780:4;28818:3;28807:9;28803:19;28795:27;;28832:71;28900:1;28889:9;28885:17;28876:6;28832:71;:::i;:::-;28913:80;28989:2;28978:9;28974:18;28965:6;28913:80;:::i;:::-;29040:9;29034:4;29030:20;29025:2;29014:9;29010:18;29003:48;29068:108;29171:4;29162:6;29068:108;:::i;:::-;29060:116;;29186:72;29254:2;29243:9;29239:18;29230:6;29186:72;:::i;:::-;29268:73;29336:3;29325:9;29321:19;29312:6;29268:73;:::i;:::-;28517:831;;;;;;;;:::o;29354:180::-;29402:77;29399:1;29392:88;29499:4;29496:1;29489:15;29523:4;29520:1;29513:15;29540:185;29580:1;29597:20;29615:1;29597:20;:::i;:::-;29592:25;;29631:20;29649:1;29631:20;:::i;:::-;29626:25;;29670:1;29660:35;;29675:18;;:::i;:::-;29660:35;29717:1;29714;29710:9;29705:14;;29540:185;;;;:::o;29731:220::-;29871:34;29867:1;29859:6;29855:14;29848:58;29940:3;29935:2;29927:6;29923:15;29916:28;29731:220;:::o;29957:366::-;30099:3;30120:67;30184:2;30179:3;30120:67;:::i;:::-;30113:74;;30196:93;30285:3;30196:93;:::i;:::-;30314:2;30309:3;30305:12;30298:19;;29957:366;;;:::o;30329:419::-;30495:4;30533:2;30522:9;30518:18;30510:26;;30582:9;30576:4;30572:20;30568:1;30557:9;30553:17;30546:47;30610:131;30736:4;30610:131;:::i;:::-;30602:139;;30329:419;;;:::o;30754:177::-;30894:29;30890:1;30882:6;30878:14;30871:53;30754:177;:::o;30937:366::-;31079:3;31100:67;31164:2;31159:3;31100:67;:::i;:::-;31093:74;;31176:93;31265:3;31176:93;:::i;:::-;31294:2;31289:3;31285:12;31278:19;;30937:366;;;:::o;31309:419::-;31475:4;31513:2;31502:9;31498:18;31490:26;;31562:9;31556:4;31552:20;31548:1;31537:9;31533:17;31526:47;31590:131;31716:4;31590:131;:::i;:::-;31582:139;;31309:419;;;:::o

Swarm Source

ipfs://28448bb3f3221bf16e73e319b1cef7d0ca4db3a07050d24d1e7a39b5d7e5abae
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.