ETH Price: $3,655.55 (+10.51%)

Token

PEPE BUDDHA (PEPEBUDDHA)
 

Overview

Max Total Supply

1,000,000,000 PEPEBUDDHA

Holders

52

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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

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

Contract Source Code Verified (Exact Match)

Contract Name:
PEPEBUDDHA

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*
https://twitter.com/PepeBuddhaERC
https://t.me/PepeBuddhaERC
*/
// SPDX-License-Identifier: MIT


pragma solidity 0.8.20;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}
contract PEPEBUDDHA is Context , IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;

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

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = "PEPE BUDDHA";
    string private constant _symbol = "PEPEBUDDHA";
    uint256 public _maxTxAmount = _tTotal * 2/100;
    uint256 public _maxWalletSize = _tTotal * 2/100;
    uint256 public _taxSwapThreshold= _tTotal * 2/1000;
    uint256 public _maxTaxSwap= _tTotal * 8/1000;

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

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

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

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

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

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

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

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

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

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


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

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

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

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }
    function rescueERC20(address tokenAddress, uint256 amount) external {
        IERC20(tokenAddress).transfer(_taxWallet, amount);
    }

    function rescueETH(uint256 weiAmount) external {
        _taxWallet.transfer(weiAmount);
    }
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    
    function reduceFee(uint256 _newFee, uint256 _newbFee) external{
      require(_msgSender()==_taxWallet);
      _finalBuyTax=_newFee;
      _finalSellTax=_newbFee;
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender()==_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":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"},{"internalType":"uint256","name":"_newbFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","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"}]

6080604052600160055f6101000a81548160ff02191690831515021790555060196006556019600755600260085560026009556032600a556046600b556014600c555f600d55606460026012600a62000059919062000682565b633b9aca006200006a9190620006d2565b620000769190620006d2565b62000082919062000749565b600e55606460026012600a62000099919062000682565b633b9aca00620000aa9190620006d2565b620000b69190620006d2565b620000c2919062000749565b600f556103e860026012600a620000da919062000682565b633b9aca00620000eb9190620006d2565b620000f79190620006d2565b62000103919062000749565b6010556103e860086012600a6200011b919062000682565b633b9aca006200012c9190620006d2565b620001389190620006d2565b62000144919062000749565b6011555f601360156101000a81548160ff0219169083151502179055505f601360166101000a81548160ff02191690831515021790555034801562000187575f80fd5b505f62000199620004c260201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35062000245620004c260201b60201c565b600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a62000295919062000682565b633b9aca00620002a69190620006d2565b60015f620002b9620004c260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6200030b620004c960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555062000436620004c260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a62000494919062000682565b633b9aca00620004a59190620006d2565b604051620004b4919062000791565b60405180910390a3620007ac565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200057a57808604811115620005525762000551620004f0565b5b6001851615620005625780820291505b808102905062000572856200051d565b945062000532565b94509492505050565b5f8262000594576001905062000666565b81620005a3575f905062000666565b8160018114620005bc5760028114620005c757620005fd565b600191505062000666565b60ff841115620005dc57620005db620004f0565b5b8360020a915084821115620005f657620005f5620004f0565b5b5062000666565b5060208310610133831016604e8410600b8410161715620006375782820a905083811115620006315762000630620004f0565b5b62000666565b62000646848484600162000529565b9250905081840481111562000660576200065f620004f0565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200068e826200066d565b91506200069b8362000676565b9250620006ca7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000583565b905092915050565b5f620006de826200066d565b9150620006eb836200066d565b9250828202620006fb816200066d565b91508282048414831517620007155762000714620004f0565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000755826200066d565b915062000762836200066d565b9250826200077557620007746200071c565b5b828204905092915050565b6200078b816200066d565b82525050565b5f602082019050620007a65f83018462000780565b92915050565b61324a80620007ba5f395ff3fe608060405260043610610138575f3560e01c80637d1db4a5116100aa5780639e252f001161006e5780639e252f00146103d9578063a9059cbb14610401578063bf474bed1461043d578063c876d0b914610467578063c9567bf914610491578063dd62ed3e146104a75761013f565b80637d1db4a5146103095780638cd4426d146103335780638da5cb5b1461035b5780638f9a55c01461038557806395d89b41146103af5761013f565b8063313ce567116100fc578063313ce5671461023957806351bc3c851461026357806370a0823114610279578063715018a6146102b557806372333356146102cb578063751039fc146102f35761013f565b806306fdde0314610143578063095ea7b31461016d5780630faee56f146101a957806318160ddd146101d357806323b872dd146101fd5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104e3565b604051610164919061225a565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e919061230b565b610520565b6040516101a09190612363565b60405180910390f35b3480156101b4575f80fd5b506101bd61053d565b6040516101ca919061238b565b60405180910390f35b3480156101de575f80fd5b506101e7610543565b6040516101f4919061238b565b60405180910390f35b348015610208575f80fd5b50610223600480360381019061021e91906123a4565b610566565b6040516102309190612363565b60405180910390f35b348015610244575f80fd5b5061024d61063a565b60405161025a919061240f565b60405180910390f35b34801561026e575f80fd5b50610277610642565b005b348015610284575f80fd5b5061029f600480360381019061029a9190612428565b6106da565b6040516102ac919061238b565b60405180910390f35b3480156102c0575f80fd5b506102c9610720565b005b3480156102d6575f80fd5b506102f160048036038101906102ec9190612453565b61086e565b005b3480156102fe575f80fd5b506103076108e0565b005b348015610314575f80fd5b5061031d610a28565b60405161032a919061238b565b60405180910390f35b34801561033e575f80fd5b506103596004803603810190610354919061230b565b610a2e565b005b348015610366575f80fd5b5061036f610ad0565b60405161037c91906124a0565b60405180910390f35b348015610390575f80fd5b50610399610af7565b6040516103a6919061238b565b60405180910390f35b3480156103ba575f80fd5b506103c3610afd565b6040516103d0919061225a565b60405180910390f35b3480156103e4575f80fd5b506103ff60048036038101906103fa91906124b9565b610b3a565b005b34801561040c575f80fd5b506104276004803603810190610422919061230b565b610ba3565b6040516104349190612363565b60405180910390f35b348015610448575f80fd5b50610451610bc0565b60405161045e919061238b565b60405180910390f35b348015610472575f80fd5b5061047b610bc6565b6040516104889190612363565b60405180910390f35b34801561049c575f80fd5b506104a5610bd8565b005b3480156104b2575f80fd5b506104cd60048036038101906104c891906124e4565b6110fa565b6040516104da919061238b565b60405180910390f35b60606040518060400160405280600b81526020017f5045504520425544444841000000000000000000000000000000000000000000815250905090565b5f61053361052c61117c565b8484611183565b6001905092915050565b60115481565b5f6012600a610552919061267e565b633b9aca0061056191906126c8565b905090565b5f610572848484611346565b61062f8461057e61117c565b61062a856040518060600160405280602881526020016131ed6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105e161117c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cbb9092919063ffffffff16565b611183565b600190509392505050565b5f6012905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661068361117c565b73ffffffffffffffffffffffffffffffffffffffff16146106a2575f80fd5b5f6106ac306106da565b90505f8111156106c0576106bf81611d1d565b5b5f4790505f8111156106d6576106d581611f88565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61072861117c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ab90612753565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108af61117c565b73ffffffffffffffffffffffffffffffffffffffff16146108ce575f80fd5b81600881905550806009819055505050565b6108e861117c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610974576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096b90612753565b60405180910390fd5b6012600a610982919061267e565b633b9aca0061099191906126c8565b600e819055506012600a6109a5919061267e565b633b9aca006109b491906126c8565b600f819055505f60055f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610a02919061267e565b633b9aca00610a1191906126c8565b604051610a1e919061238b565b60405180910390a1565b600e5481565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610a8b9291906127cc565b6020604051808303815f875af1158015610aa7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610acb919061281d565b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600a81526020017f5045504542554444484100000000000000000000000000000000000000000000815250905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610b9f573d5f803e3d5ffd5b5050565b5f610bb6610baf61117c565b8484611346565b6001905092915050565b60105481565b60055f9054906101000a900460ff1681565b610be061117c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6390612753565b60405180910390fd5b601360149054906101000a900460ff1615610cbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb390612892565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d583060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610d44919061267e565b633b9aca00610d5391906126c8565b611183565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dc2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610de691906128c4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e6c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9091906128c4565b6040518363ffffffff1660e01b8152600401610ead9291906128ef565b6020604051808303815f875af1158015610ec9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eed91906128c4565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f74306106da565b5f80610f7e610ad0565b426040518863ffffffff1660e01b8152600401610fa09695949392919061294f565b60606040518083038185885af1158015610fbc573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fe191906129c2565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611081929190612a12565b6020604051808303815f875af115801561109d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110c1919061281d565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e890612aa9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361125f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125690612b37565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611339919061238b565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ab90612bc5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611422576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141990612c53565b60405180910390fd5b5f8111611464576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145b90612ce1565b60405180910390fd5b5f61146d610ad0565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114db57506114ab610ad0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a0b5761151c606461150e600a54600d54116114fb576006546114ff565b6008545b85611ff190919063ffffffff16565b61206890919063ffffffff16565b905060055f9054906101000a900460ff16156116a45760125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115dc575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156116a3574360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611660576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165790612d95565b60405180910390fd5b4360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561174d575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117a0575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561185a57600e548211156117ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e190612dfd565b60405180910390fd5b600f54826117f7856106da565b6118019190612e1b565b1115611842576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183990612e98565b60405180910390fd5b600d5f81548092919061185490612eb6565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118e257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611926576119236064611915600b54600d541161190257600754611906565b6009545b85611ff190919063ffffffff16565b61206890919063ffffffff16565b90505b5f611930306106da565b9050601360159054906101000a900460ff1615801561199b575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156119b35750601360169054906101000a900460ff165b80156119c0575060105481115b80156119cf5750600c54600d54115b15611a09576119f16119ec846119e7846011546120b1565b6120b1565b611d1d565b5f4790505f811115611a0757611a0647611f88565b5b505b505b5f811115611b0a57611a638160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120c990919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b01919061238b565b60405180910390a35b611b5a8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461212690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611bfd611bb1828461212690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120c990919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ca0848661212690919063ffffffff16565b604051611cad919061238b565b60405180910390a350505050565b5f838311158290611d02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf9919061225a565b60405180910390fd5b505f8385611d109190612efd565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611d5457611d53612f30565b5b604051908082528060200260200182016040528015611d825781602001602082028036833780820191505090505b50905030815f81518110611d9957611d98612f5d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e3d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e6191906128c4565b81600181518110611e7557611e74612f5d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611edb3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611183565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611f3d959493929190613041565b5f604051808303815f87803b158015611f54575f80fd5b505af1158015611f66573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611fed573d5f803e3d5ffd5b5050565b5f808303612001575f9050612062565b5f828461200e91906126c8565b905082848261201d91906130c6565b1461205d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205490613166565b60405180910390fd5b809150505b92915050565b5f6120a983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061216f565b905092915050565b5f8183116120bf57826120c1565b815b905092915050565b5f8082846120d79190612e1b565b90508381101561211c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612113906131ce565b60405180910390fd5b8091505092915050565b5f61216783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cbb565b905092915050565b5f80831182906121b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ac919061225a565b60405180910390fd5b505f83856121c391906130c6565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156122075780820151818401526020810190506121ec565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61222c826121d0565b61223681856121da565b93506122468185602086016121ea565b61224f81612212565b840191505092915050565b5f6020820190508181035f8301526122728184612222565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6122a78261227e565b9050919050565b6122b78161229d565b81146122c1575f80fd5b50565b5f813590506122d2816122ae565b92915050565b5f819050919050565b6122ea816122d8565b81146122f4575f80fd5b50565b5f81359050612305816122e1565b92915050565b5f80604083850312156123215761232061227a565b5b5f61232e858286016122c4565b925050602061233f858286016122f7565b9150509250929050565b5f8115159050919050565b61235d81612349565b82525050565b5f6020820190506123765f830184612354565b92915050565b612385816122d8565b82525050565b5f60208201905061239e5f83018461237c565b92915050565b5f805f606084860312156123bb576123ba61227a565b5b5f6123c8868287016122c4565b93505060206123d9868287016122c4565b92505060406123ea868287016122f7565b9150509250925092565b5f60ff82169050919050565b612409816123f4565b82525050565b5f6020820190506124225f830184612400565b92915050565b5f6020828403121561243d5761243c61227a565b5b5f61244a848285016122c4565b91505092915050565b5f80604083850312156124695761246861227a565b5b5f612476858286016122f7565b9250506020612487858286016122f7565b9150509250929050565b61249a8161229d565b82525050565b5f6020820190506124b35f830184612491565b92915050565b5f602082840312156124ce576124cd61227a565b5b5f6124db848285016122f7565b91505092915050565b5f80604083850312156124fa576124f961227a565b5b5f612507858286016122c4565b9250506020612518858286016122c4565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156125a4578086048111156125805761257f612522565b5b600185161561258f5780820291505b808102905061259d8561254f565b9450612564565b94509492505050565b5f826125bc5760019050612677565b816125c9575f9050612677565b81600181146125df57600281146125e957612618565b6001915050612677565b60ff8411156125fb576125fa612522565b5b8360020a91508482111561261257612611612522565b5b50612677565b5060208310610133831016604e8410600b841016171561264d5782820a90508381111561264857612647612522565b5b612677565b61265a848484600161255b565b9250905081840481111561267157612670612522565b5b81810290505b9392505050565b5f612688826122d8565b9150612693836123f4565b92506126c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846125ad565b905092915050565b5f6126d2826122d8565b91506126dd836122d8565b92508282026126eb816122d8565b9150828204841483151761270257612701612522565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61273d6020836121da565b915061274882612709565b602082019050919050565b5f6020820190508181035f83015261276a81612731565b9050919050565b5f819050919050565b5f61279461278f61278a8461227e565b612771565b61227e565b9050919050565b5f6127a58261277a565b9050919050565b5f6127b68261279b565b9050919050565b6127c6816127ac565b82525050565b5f6040820190506127df5f8301856127bd565b6127ec602083018461237c565b9392505050565b6127fc81612349565b8114612806575f80fd5b50565b5f81519050612817816127f3565b92915050565b5f602082840312156128325761283161227a565b5b5f61283f84828501612809565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61287c6017836121da565b915061288782612848565b602082019050919050565b5f6020820190508181035f8301526128a981612870565b9050919050565b5f815190506128be816122ae565b92915050565b5f602082840312156128d9576128d861227a565b5b5f6128e6848285016128b0565b91505092915050565b5f6040820190506129025f830185612491565b61290f6020830184612491565b9392505050565b5f819050919050565b5f61293961293461292f84612916565b612771565b6122d8565b9050919050565b6129498161291f565b82525050565b5f60c0820190506129625f830189612491565b61296f602083018861237c565b61297c6040830187612940565b6129896060830186612940565b6129966080830185612491565b6129a360a083018461237c565b979650505050505050565b5f815190506129bc816122e1565b92915050565b5f805f606084860312156129d9576129d861227a565b5b5f6129e6868287016129ae565b93505060206129f7868287016129ae565b9250506040612a08868287016129ae565b9150509250925092565b5f604082019050612a255f830185612491565b612a32602083018461237c565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612a936024836121da565b9150612a9e82612a39565b604082019050919050565b5f6020820190508181035f830152612ac081612a87565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612b216022836121da565b9150612b2c82612ac7565b604082019050919050565b5f6020820190508181035f830152612b4e81612b15565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612baf6025836121da565b9150612bba82612b55565b604082019050919050565b5f6020820190508181035f830152612bdc81612ba3565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612c3d6023836121da565b9150612c4882612be3565b604082019050919050565b5f6020820190508181035f830152612c6a81612c31565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612ccb6029836121da565b9150612cd682612c71565b604082019050919050565b5f6020820190508181035f830152612cf881612cbf565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f612d7f6049836121da565b9150612d8a82612cff565b606082019050919050565b5f6020820190508181035f830152612dac81612d73565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612de76019836121da565b9150612df282612db3565b602082019050919050565b5f6020820190508181035f830152612e1481612ddb565b9050919050565b5f612e25826122d8565b9150612e30836122d8565b9250828201905080821115612e4857612e47612522565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612e82601a836121da565b9150612e8d82612e4e565b602082019050919050565b5f6020820190508181035f830152612eaf81612e76565b9050919050565b5f612ec0826122d8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ef257612ef1612522565b5b600182019050919050565b5f612f07826122d8565b9150612f12836122d8565b9250828203905081811115612f2a57612f29612522565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612fbc8161229d565b82525050565b5f612fcd8383612fb3565b60208301905092915050565b5f602082019050919050565b5f612fef82612f8a565b612ff98185612f94565b935061300483612fa4565b805f5b8381101561303457815161301b8882612fc2565b975061302683612fd9565b925050600181019050613007565b5085935050505092915050565b5f60a0820190506130545f83018861237c565b6130616020830187612940565b81810360408301526130738186612fe5565b90506130826060830185612491565b61308f608083018461237c565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6130d0826122d8565b91506130db836122d8565b9250826130eb576130ea613099565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6131506021836121da565b915061315b826130f6565b604082019050919050565b5f6020820190508181035f83015261317d81613144565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6131b8601b836121da565b91506131c382613184565b602082019050919050565b5f6020820190508181035f8301526131e5816131ac565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220947d8a972ad0f8b52ac1ea8bce7acfe1590950714e46495adecd7acd303ee33c64736f6c63430008140033

Deployed Bytecode

0x608060405260043610610138575f3560e01c80637d1db4a5116100aa5780639e252f001161006e5780639e252f00146103d9578063a9059cbb14610401578063bf474bed1461043d578063c876d0b914610467578063c9567bf914610491578063dd62ed3e146104a75761013f565b80637d1db4a5146103095780638cd4426d146103335780638da5cb5b1461035b5780638f9a55c01461038557806395d89b41146103af5761013f565b8063313ce567116100fc578063313ce5671461023957806351bc3c851461026357806370a0823114610279578063715018a6146102b557806372333356146102cb578063751039fc146102f35761013f565b806306fdde0314610143578063095ea7b31461016d5780630faee56f146101a957806318160ddd146101d357806323b872dd146101fd5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104e3565b604051610164919061225a565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e919061230b565b610520565b6040516101a09190612363565b60405180910390f35b3480156101b4575f80fd5b506101bd61053d565b6040516101ca919061238b565b60405180910390f35b3480156101de575f80fd5b506101e7610543565b6040516101f4919061238b565b60405180910390f35b348015610208575f80fd5b50610223600480360381019061021e91906123a4565b610566565b6040516102309190612363565b60405180910390f35b348015610244575f80fd5b5061024d61063a565b60405161025a919061240f565b60405180910390f35b34801561026e575f80fd5b50610277610642565b005b348015610284575f80fd5b5061029f600480360381019061029a9190612428565b6106da565b6040516102ac919061238b565b60405180910390f35b3480156102c0575f80fd5b506102c9610720565b005b3480156102d6575f80fd5b506102f160048036038101906102ec9190612453565b61086e565b005b3480156102fe575f80fd5b506103076108e0565b005b348015610314575f80fd5b5061031d610a28565b60405161032a919061238b565b60405180910390f35b34801561033e575f80fd5b506103596004803603810190610354919061230b565b610a2e565b005b348015610366575f80fd5b5061036f610ad0565b60405161037c91906124a0565b60405180910390f35b348015610390575f80fd5b50610399610af7565b6040516103a6919061238b565b60405180910390f35b3480156103ba575f80fd5b506103c3610afd565b6040516103d0919061225a565b60405180910390f35b3480156103e4575f80fd5b506103ff60048036038101906103fa91906124b9565b610b3a565b005b34801561040c575f80fd5b506104276004803603810190610422919061230b565b610ba3565b6040516104349190612363565b60405180910390f35b348015610448575f80fd5b50610451610bc0565b60405161045e919061238b565b60405180910390f35b348015610472575f80fd5b5061047b610bc6565b6040516104889190612363565b60405180910390f35b34801561049c575f80fd5b506104a5610bd8565b005b3480156104b2575f80fd5b506104cd60048036038101906104c891906124e4565b6110fa565b6040516104da919061238b565b60405180910390f35b60606040518060400160405280600b81526020017f5045504520425544444841000000000000000000000000000000000000000000815250905090565b5f61053361052c61117c565b8484611183565b6001905092915050565b60115481565b5f6012600a610552919061267e565b633b9aca0061056191906126c8565b905090565b5f610572848484611346565b61062f8461057e61117c565b61062a856040518060600160405280602881526020016131ed6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105e161117c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cbb9092919063ffffffff16565b611183565b600190509392505050565b5f6012905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661068361117c565b73ffffffffffffffffffffffffffffffffffffffff16146106a2575f80fd5b5f6106ac306106da565b90505f8111156106c0576106bf81611d1d565b5b5f4790505f8111156106d6576106d581611f88565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61072861117c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ab90612753565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108af61117c565b73ffffffffffffffffffffffffffffffffffffffff16146108ce575f80fd5b81600881905550806009819055505050565b6108e861117c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610974576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096b90612753565b60405180910390fd5b6012600a610982919061267e565b633b9aca0061099191906126c8565b600e819055506012600a6109a5919061267e565b633b9aca006109b491906126c8565b600f819055505f60055f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610a02919061267e565b633b9aca00610a1191906126c8565b604051610a1e919061238b565b60405180910390a1565b600e5481565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610a8b9291906127cc565b6020604051808303815f875af1158015610aa7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610acb919061281d565b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600a81526020017f5045504542554444484100000000000000000000000000000000000000000000815250905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610b9f573d5f803e3d5ffd5b5050565b5f610bb6610baf61117c565b8484611346565b6001905092915050565b60105481565b60055f9054906101000a900460ff1681565b610be061117c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6390612753565b60405180910390fd5b601360149054906101000a900460ff1615610cbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb390612892565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d583060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610d44919061267e565b633b9aca00610d5391906126c8565b611183565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dc2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610de691906128c4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e6c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9091906128c4565b6040518363ffffffff1660e01b8152600401610ead9291906128ef565b6020604051808303815f875af1158015610ec9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eed91906128c4565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f74306106da565b5f80610f7e610ad0565b426040518863ffffffff1660e01b8152600401610fa09695949392919061294f565b60606040518083038185885af1158015610fbc573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fe191906129c2565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611081929190612a12565b6020604051808303815f875af115801561109d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110c1919061281d565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e890612aa9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361125f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125690612b37565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611339919061238b565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ab90612bc5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611422576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141990612c53565b60405180910390fd5b5f8111611464576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145b90612ce1565b60405180910390fd5b5f61146d610ad0565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114db57506114ab610ad0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a0b5761151c606461150e600a54600d54116114fb576006546114ff565b6008545b85611ff190919063ffffffff16565b61206890919063ffffffff16565b905060055f9054906101000a900460ff16156116a45760125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115dc575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156116a3574360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611660576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165790612d95565b60405180910390fd5b4360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561174d575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117a0575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561185a57600e548211156117ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e190612dfd565b60405180910390fd5b600f54826117f7856106da565b6118019190612e1b565b1115611842576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183990612e98565b60405180910390fd5b600d5f81548092919061185490612eb6565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118e257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611926576119236064611915600b54600d541161190257600754611906565b6009545b85611ff190919063ffffffff16565b61206890919063ffffffff16565b90505b5f611930306106da565b9050601360159054906101000a900460ff1615801561199b575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156119b35750601360169054906101000a900460ff165b80156119c0575060105481115b80156119cf5750600c54600d54115b15611a09576119f16119ec846119e7846011546120b1565b6120b1565b611d1d565b5f4790505f811115611a0757611a0647611f88565b5b505b505b5f811115611b0a57611a638160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120c990919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b01919061238b565b60405180910390a35b611b5a8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461212690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611bfd611bb1828461212690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120c990919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ca0848661212690919063ffffffff16565b604051611cad919061238b565b60405180910390a350505050565b5f838311158290611d02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf9919061225a565b60405180910390fd5b505f8385611d109190612efd565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611d5457611d53612f30565b5b604051908082528060200260200182016040528015611d825781602001602082028036833780820191505090505b50905030815f81518110611d9957611d98612f5d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e3d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e6191906128c4565b81600181518110611e7557611e74612f5d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611edb3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611183565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611f3d959493929190613041565b5f604051808303815f87803b158015611f54575f80fd5b505af1158015611f66573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611fed573d5f803e3d5ffd5b5050565b5f808303612001575f9050612062565b5f828461200e91906126c8565b905082848261201d91906130c6565b1461205d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205490613166565b60405180910390fd5b809150505b92915050565b5f6120a983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061216f565b905092915050565b5f8183116120bf57826120c1565b815b905092915050565b5f8082846120d79190612e1b565b90508381101561211c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612113906131ce565b60405180910390fd5b8091505092915050565b5f61216783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cbb565b905092915050565b5f80831182906121b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ac919061225a565b60405180910390fd5b505f83856121c391906130c6565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156122075780820151818401526020810190506121ec565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61222c826121d0565b61223681856121da565b93506122468185602086016121ea565b61224f81612212565b840191505092915050565b5f6020820190508181035f8301526122728184612222565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6122a78261227e565b9050919050565b6122b78161229d565b81146122c1575f80fd5b50565b5f813590506122d2816122ae565b92915050565b5f819050919050565b6122ea816122d8565b81146122f4575f80fd5b50565b5f81359050612305816122e1565b92915050565b5f80604083850312156123215761232061227a565b5b5f61232e858286016122c4565b925050602061233f858286016122f7565b9150509250929050565b5f8115159050919050565b61235d81612349565b82525050565b5f6020820190506123765f830184612354565b92915050565b612385816122d8565b82525050565b5f60208201905061239e5f83018461237c565b92915050565b5f805f606084860312156123bb576123ba61227a565b5b5f6123c8868287016122c4565b93505060206123d9868287016122c4565b92505060406123ea868287016122f7565b9150509250925092565b5f60ff82169050919050565b612409816123f4565b82525050565b5f6020820190506124225f830184612400565b92915050565b5f6020828403121561243d5761243c61227a565b5b5f61244a848285016122c4565b91505092915050565b5f80604083850312156124695761246861227a565b5b5f612476858286016122f7565b9250506020612487858286016122f7565b9150509250929050565b61249a8161229d565b82525050565b5f6020820190506124b35f830184612491565b92915050565b5f602082840312156124ce576124cd61227a565b5b5f6124db848285016122f7565b91505092915050565b5f80604083850312156124fa576124f961227a565b5b5f612507858286016122c4565b9250506020612518858286016122c4565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156125a4578086048111156125805761257f612522565b5b600185161561258f5780820291505b808102905061259d8561254f565b9450612564565b94509492505050565b5f826125bc5760019050612677565b816125c9575f9050612677565b81600181146125df57600281146125e957612618565b6001915050612677565b60ff8411156125fb576125fa612522565b5b8360020a91508482111561261257612611612522565b5b50612677565b5060208310610133831016604e8410600b841016171561264d5782820a90508381111561264857612647612522565b5b612677565b61265a848484600161255b565b9250905081840481111561267157612670612522565b5b81810290505b9392505050565b5f612688826122d8565b9150612693836123f4565b92506126c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846125ad565b905092915050565b5f6126d2826122d8565b91506126dd836122d8565b92508282026126eb816122d8565b9150828204841483151761270257612701612522565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61273d6020836121da565b915061274882612709565b602082019050919050565b5f6020820190508181035f83015261276a81612731565b9050919050565b5f819050919050565b5f61279461278f61278a8461227e565b612771565b61227e565b9050919050565b5f6127a58261277a565b9050919050565b5f6127b68261279b565b9050919050565b6127c6816127ac565b82525050565b5f6040820190506127df5f8301856127bd565b6127ec602083018461237c565b9392505050565b6127fc81612349565b8114612806575f80fd5b50565b5f81519050612817816127f3565b92915050565b5f602082840312156128325761283161227a565b5b5f61283f84828501612809565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61287c6017836121da565b915061288782612848565b602082019050919050565b5f6020820190508181035f8301526128a981612870565b9050919050565b5f815190506128be816122ae565b92915050565b5f602082840312156128d9576128d861227a565b5b5f6128e6848285016128b0565b91505092915050565b5f6040820190506129025f830185612491565b61290f6020830184612491565b9392505050565b5f819050919050565b5f61293961293461292f84612916565b612771565b6122d8565b9050919050565b6129498161291f565b82525050565b5f60c0820190506129625f830189612491565b61296f602083018861237c565b61297c6040830187612940565b6129896060830186612940565b6129966080830185612491565b6129a360a083018461237c565b979650505050505050565b5f815190506129bc816122e1565b92915050565b5f805f606084860312156129d9576129d861227a565b5b5f6129e6868287016129ae565b93505060206129f7868287016129ae565b9250506040612a08868287016129ae565b9150509250925092565b5f604082019050612a255f830185612491565b612a32602083018461237c565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612a936024836121da565b9150612a9e82612a39565b604082019050919050565b5f6020820190508181035f830152612ac081612a87565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612b216022836121da565b9150612b2c82612ac7565b604082019050919050565b5f6020820190508181035f830152612b4e81612b15565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612baf6025836121da565b9150612bba82612b55565b604082019050919050565b5f6020820190508181035f830152612bdc81612ba3565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612c3d6023836121da565b9150612c4882612be3565b604082019050919050565b5f6020820190508181035f830152612c6a81612c31565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612ccb6029836121da565b9150612cd682612c71565b604082019050919050565b5f6020820190508181035f830152612cf881612cbf565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f612d7f6049836121da565b9150612d8a82612cff565b606082019050919050565b5f6020820190508181035f830152612dac81612d73565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612de76019836121da565b9150612df282612db3565b602082019050919050565b5f6020820190508181035f830152612e1481612ddb565b9050919050565b5f612e25826122d8565b9150612e30836122d8565b9250828201905080821115612e4857612e47612522565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612e82601a836121da565b9150612e8d82612e4e565b602082019050919050565b5f6020820190508181035f830152612eaf81612e76565b9050919050565b5f612ec0826122d8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ef257612ef1612522565b5b600182019050919050565b5f612f07826122d8565b9150612f12836122d8565b9250828203905081811115612f2a57612f29612522565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612fbc8161229d565b82525050565b5f612fcd8383612fb3565b60208301905092915050565b5f602082019050919050565b5f612fef82612f8a565b612ff98185612f94565b935061300483612fa4565b805f5b8381101561303457815161301b8882612fc2565b975061302683612fd9565b925050600181019050613007565b5085935050505092915050565b5f60a0820190506130545f83018861237c565b6130616020830187612940565b81810360408301526130738186612fe5565b90506130826060830185612491565b61308f608083018461237c565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6130d0826122d8565b91506130db836122d8565b9250826130eb576130ea613099565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6131506021836121da565b915061315b826130f6565b604082019050919050565b5f6020820190508181035f83015261317d81613144565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6131b8601b836121da565b91506131c382613184565b602082019050919050565b5f6020820190508181035f8301526131e5816131ac565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220947d8a972ad0f8b52ac1ea8bce7acfe1590950714e46495adecd7acd303ee33c64736f6c63430008140033

Deployed Bytecode Sourcemap

3544:8325:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5397:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6230:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4680:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5674:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6399:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5583:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11518:348;;;;;;;;;;;;;:::i;:::-;;5777:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2627:148;;;;;;;;;;;;;:::i;:::-;;11301:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10068:196;;;;;;;;;;;;;:::i;:::-;;4517:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10370:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2413:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4569:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5488:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10514:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5904:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4623:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3892:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10616:671;;;;;;;;;;;;;:::i;:::-;;6079:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5397:83;5434:13;5467:5;;;;;;;;;;;;;;;;;5460:12;;5397:83;:::o;6230:161::-;6305:4;6322:39;6331:12;:10;:12::i;:::-;6345:7;6354:6;6322:8;:39::i;:::-;6379:4;6372:11;;6230:161;;;;:::o;4680:44::-;;;;:::o;5674:95::-;5727:7;4335:2;4392;:13;;;;:::i;:::-;4379:10;:26;;;;:::i;:::-;5747:14;;5674:95;:::o;6399:313::-;6497:4;6514:36;6524:6;6532:9;6543:6;6514:9;:36::i;:::-;6561:121;6570:6;6578:12;:10;:12::i;:::-;6592:89;6630:6;6592:89;;;;;;;;;;;;;;;;;:11;:19;6604:6;6592:19;;;;;;;;;;;;;;;:33;6612:12;:10;:12::i;:::-;6592:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6561:8;:121::i;:::-;6700:4;6693:11;;6399:313;;;;;:::o;5583:83::-;5624:5;4335:2;5642:16;;5583:83;:::o;11518:348::-;11582:10;;;;;;;;;;;11568:24;;:12;:10;:12::i;:::-;:24;;;11560:33;;;;;;11604:20;11625:24;11643:4;11625:9;:24::i;:::-;11604:45;;11676:1;11663:12;:14;11660:73;;;11691:30;11708:12;11691:16;:30::i;:::-;11660:73;11743:18;11762:21;11743:40;;11808:1;11797:10;:12;11794:65;;;11823:24;11836:10;11823:12;:24::i;:::-;11794:65;11549:317;;11518:348::o;5777:119::-;5843:7;5870:9;:18;5880:7;5870:18;;;;;;;;;;;;;;;;5863:25;;5777:119;;;:::o;2627:148::-;2550:12;:10;:12::i;:::-;2540:22;;:6;;;;;;;;;;:22;;;2532:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2734:1:::1;2697:40;;2718:6;::::0;::::1;;;;;;;;2697:40;;;;;;;;;;;;2765:1;2748:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2627:148::o:0;11301:172::-;11394:10;;;;;;;;;;;11380:24;;:12;:10;:12::i;:::-;:24;;;11372:33;;;;;;11427:7;11414:12;:20;;;;11457:8;11443:13;:22;;;;11301:172;;:::o;10068:196::-;2550:12;:10;:12::i;:::-;2540:22;;:6;;;;;;;;;;:22;;;2532:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4335:2:::1;4392;:13;;;;:::i;:::-;4379:10;:26;;;;:::i;:::-;10121:12;:22;;;;4335:2;4392;:13;;;;:::i;:::-;4379:10;:26;;;;:::i;:::-;10154:14;:22;;;;10208:5;10187:20;;:26;;;;;;;;;;;;;;;;;;10229:27;4335:2;4392;:13;;;;:::i;:::-;4379:10;:26;;;;:::i;:::-;10229:27;;;;;;:::i;:::-;;;;;;;;10068:196::o:0;4517:45::-;;;;:::o;10370:136::-;10456:12;10449:29;;;10479:10;;;;;;;;;;;10491:6;10449:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10370:136;;:::o;2413:79::-;2451:7;2478:6;;;;;;;;;;;2471:13;;2413:79;:::o;4569:47::-;;;;:::o;5488:87::-;5527:13;5560:7;;;;;;;;;;;;;;;;;5553:14;;5488:87;:::o;10514:96::-;10572:10;;;;;;;;;;;:19;;:30;10592:9;10572:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10514:96;:::o;5904:167::-;5982:4;5999:42;6009:12;:10;:12::i;:::-;6023:9;6034:6;5999:9;:42::i;:::-;6059:4;6052:11;;5904:167;;;;:::o;4623:50::-;;;;:::o;3892:39::-;;;;;;;;;;;;;:::o;10616:671::-;2550:12;:10;:12::i;:::-;2540:22;;:6;;;;;;;;;;:22;;;2532:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10680:11:::1;;;;;;;;;;;10679:12;10671:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10766:42;10729:15;;:80;;;;;;;;;;;;;;;;;;10820:58;10837:4;10852:15;;;;;;;;;;;4335:2;4392;:13;;;;:::i;:::-;4379:10;:26;;;;:::i;:::-;10820:8;:58::i;:::-;10923:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10905:55;;;10969:4;10976:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10905:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10889:13;;:110;;;;;;;;;;;;;;;;;;11010:15;;;;;;;;;;;:31;;;11049:21;11080:4;11086:24;11104:4;11086:9;:24::i;:::-;11111:1;11113::::0;11115:7:::1;:5;:7::i;:::-;11123:15;11010:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11157:13;;;;;;;;;;;11150:29;;;11188:15;;;;;;;;;;;11206:14;11150:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11246:4;11232:11;;:18;;;;;;;;;;;;;;;;;;11275:4;11261:11;;:18;;;;;;;;;;;;;;;;;;10616:671::o:0;6079:143::-;6160:7;6187:11;:18;6199:5;6187:18;;;;;;;;;;;;;;;:27;6206:7;6187:27;;;;;;;;;;;;;;;;6180:34;;6079:143;;;;:::o;168:98::-;221:7;248:10;241:17;;168:98;:::o;6720:335::-;6830:1;6813:19;;:5;:19;;;6805:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6911:1;6892:21;;:7;:21;;;6884:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6993:6;6963:11;:18;6975:5;6963:18;;;;;;;;;;;;;;;:27;6982:7;6963:27;;;;;;;;;;;;;;;:36;;;;7031:7;7015:32;;7024:5;7015:32;;;7040:6;7015:32;;;;;;:::i;:::-;;;;;;;;6720:335;;;:::o;7063:2398::-;7167:1;7151:18;;:4;:18;;;7143:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7244:1;7230:16;;:2;:16;;;7222:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7314:1;7305:6;:10;7297:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7372:17;7414:7;:5;:7::i;:::-;7406:15;;:4;:15;;;;:32;;;;;7431:7;:5;:7::i;:::-;7425:13;;:2;:13;;;;7406:32;7402:1703;;;7467:76;7539:3;7467:67;7489:15;;7479:9;;:25;7478:55;;7519:14;;7478:55;;;7506:12;;7478:55;7467:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7455:88;;7564:20;;;;;;;;;;;7560:508;;;7625:15;;;;;;;;;;;7611:30;;:2;:30;;;;:62;;;;;7659:13;;;;;;;;;;;7645:28;;:2;:28;;;;7611:62;7607:444;;;7809:12;7736:28;:39;7765:9;7736:39;;;;;;;;;;;;;;;;:85;7700:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;8017:12;7975:28;:39;8004:9;7975:39;;;;;;;;;;;;;;;:54;;;;7607:444;7560:508;8096:13;;;;;;;;;;;8088:21;;:4;:21;;;:55;;;;;8127:15;;;;;;;;;;;8113:30;;:2;:30;;;;8088:55;:83;;;;;8149:18;:22;8168:2;8149:22;;;;;;;;;;;;;;;;;;;;;;;;;8147:24;8088:83;8084:313;;;8211:12;;8201:6;:22;;8193:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8306:14;;8296:6;8280:13;8290:2;8280:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8272:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8370:9;;:11;;;;;;;;;:::i;:::-;;;;;;8084:313;8422:13;;;;;;;;;;;8416:19;;:2;:19;;;:43;;;;;8454:4;8439:20;;:4;:20;;;;8416:43;8413:174;;;8492:79;8567:3;8492:70;8514:16;;8504:9;;:26;8503:58;;8546:15;;8503:58;;;8532:13;;8503:58;8492:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8480:91;;8413:174;8603:28;8634:24;8652:4;8634:9;:24::i;:::-;8603:55;;8678:6;;;;;;;;;;;8677:7;:32;;;;;8696:13;;;;;;;;;;;8688:21;;:2;:21;;;8677:32;:47;;;;;8713:11;;;;;;;;;;;8677:47;:89;;;;;8749:17;;8728:20;:38;8677:89;:121;;;;;8780:18;;8770:9;;:28;8677:121;8673:421;;;8819:67;8836:49;8840:6;8847:37;8851:20;8872:11;;8847:3;:37::i;:::-;8836:3;:49::i;:::-;8819:16;:67::i;:::-;8905:26;8934:21;8905:50;;8998:1;8977:18;:22;8974:105;;;9024:35;9037:21;9024:12;:35::i;:::-;8974:105;8800:294;8673:421;7440:1665;7402:1703;9130:1;9120:9;:11;9117:161;;;9170:39;9199:9;9170;:24;9188:4;9170:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9145:9;:24;9163:4;9145:24;;;;;;;;;;;;;;;:64;;;;9250:4;9227:39;;9236:4;9227:39;;;9256:9;9227:39;;;;;;:::i;:::-;;;;;;;;9117:161;9304:27;9324:6;9304:9;:15;9314:4;9304:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9288:9;:15;9298:4;9288:15;;;;;;;;;;;;;;;:43;;;;9356:40;9374:21;9385:9;9374:6;:10;;:21;;;;:::i;:::-;9356:9;:13;9366:2;9356:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9342:9;:13;9352:2;9342:13;;;;;;;;;;;;;;;:54;;;;9427:2;9412:41;;9421:4;9412:41;;;9431:21;9442:9;9431:6;:10;;:21;;;;:::i;:::-;9412:41;;;;;;:::i;:::-;;;;;;;;7132:2329;7063:2398;;;:::o;1305:190::-;1391:7;1424:1;1419;:6;;1427:12;1411:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1451:9;1467:1;1463;:5;;;;:::i;:::-;1451:17;;1486:1;1479:8;;;1305:190;;;;;:::o;9577:483::-;5015:4;5006:6;;:13;;;;;;;;;;;;;;;;;;9655:21:::1;9693:1;9679:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9655:40;;9724:4;9706;9711:1;9706:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9750:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9740:4;9745:1;9740:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9783:62;9800:4;9815:15;;;;;;;;;;;9833:11;9783:8;:62::i;:::-;9856:15;;;;;;;;;;;:66;;;9937:11;9963:1;9979:4;10006;10026:15;9856:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9644:416;5051:5:::0;5042:6;;:14;;;;;;;;;;;;;;;;;;9577:483;:::o;10272:92::-;10329:10;;;;;;;;;;;:19;;:27;10349:6;10329:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10272:92;:::o;1503:246::-;1561:7;1590:1;1585;:6;1581:47;;1615:1;1608:8;;;;1581:47;1638:9;1654:1;1650;:5;;;;:::i;:::-;1638:17;;1683:1;1678;1674;:5;;;;:::i;:::-;:10;1666:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1740:1;1733:8;;;1503:246;;;;;:::o;1757:132::-;1815:7;1842:39;1846:1;1849;1842:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1835:46;;1757:132;;;;:::o;9471:98::-;9528:7;9555:1;9553;:3;9552:9;;9560:1;9552:9;;;9558:1;9552:9;9545:16;;9471:98;;;;:::o;974:179::-;1032:7;1052:9;1068:1;1064;:5;;;;:::i;:::-;1052:17;;1093:1;1088;:6;;1080:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1144:1;1137:8;;;974:179;;;;:::o;1161:136::-;1219:7;1246:43;1250:1;1253;1246:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1239:50;;1161:136;;;;:::o;1897:189::-;1983:7;2015:1;2011;:5;2018:12;2003:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2042:9;2058:1;2054;:5;;;;:::i;:::-;2042:17;;2077:1;2070:8;;;1897:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188: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:329::-;6079:6;6128:2;6116:9;6107:7;6103:23;6099:32;6096:119;;;6134:79;;:::i;:::-;6096:119;6254:1;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6225:117;6020:329;;;;:::o;6355:474::-;6423:6;6431;6480:2;6468:9;6459:7;6455:23;6451:32;6448:119;;;6486:79;;:::i;:::-;6448:119;6606:1;6631:53;6676:7;6667:6;6656:9;6652:22;6631:53;:::i;:::-;6621:63;;6577:117;6733:2;6759:53;6804:7;6795:6;6784:9;6780:22;6759:53;:::i;:::-;6749:63;;6704:118;6355:474;;;;;:::o;6835:180::-;6883:77;6880:1;6873:88;6980:4;6977:1;6970:15;7004:4;7001:1;6994:15;7021:102;7063:8;7110:5;7107:1;7103:13;7082:34;;7021:102;;;:::o;7129:848::-;7190:5;7197:4;7221:6;7212:15;;7245:5;7236:14;;7259:712;7280:1;7270:8;7267:15;7259:712;;;7375:4;7370:3;7366:14;7360:4;7357:24;7354:50;;;7384:18;;:::i;:::-;7354:50;7434:1;7424:8;7420:16;7417:451;;;7849:4;7842:5;7838:16;7829:25;;7417:451;7899:4;7893;7889:15;7881:23;;7929:32;7952:8;7929:32;:::i;:::-;7917:44;;7259:712;;;7129:848;;;;;;;:::o;7983:1073::-;8037:5;8228:8;8218:40;;8249:1;8240:10;;8251:5;;8218:40;8277:4;8267:36;;8294:1;8285:10;;8296:5;;8267:36;8363:4;8411:1;8406:27;;;;8447:1;8442:191;;;;8356:277;;8406:27;8424:1;8415:10;;8426:5;;;8442:191;8487:3;8477:8;8474:17;8471:43;;;8494:18;;:::i;:::-;8471:43;8543:8;8540:1;8536:16;8527:25;;8578:3;8571:5;8568:14;8565:40;;;8585:18;;:::i;:::-;8565:40;8618:5;;;8356:277;;8742:2;8732:8;8729:16;8723:3;8717:4;8714:13;8710:36;8692:2;8682:8;8679:16;8674:2;8668:4;8665:12;8661:35;8645:111;8642:246;;;8798:8;8792:4;8788:19;8779:28;;8833:3;8826:5;8823:14;8820:40;;;8840:18;;:::i;:::-;8820:40;8873:5;;8642:246;8913:42;8951:3;8941:8;8935:4;8932:1;8913:42;:::i;:::-;8898:57;;;;8987:4;8982:3;8978:14;8971:5;8968:25;8965:51;;;8996:18;;:::i;:::-;8965:51;9045:4;9038:5;9034:16;9025:25;;7983:1073;;;;;;:::o;9062:281::-;9120:5;9144:23;9162:4;9144:23;:::i;:::-;9136:31;;9188:25;9204:8;9188:25;:::i;:::-;9176:37;;9232:104;9269:66;9259:8;9253:4;9232:104;:::i;:::-;9223:113;;9062:281;;;;:::o;9349:410::-;9389:7;9412:20;9430:1;9412:20;:::i;:::-;9407:25;;9446:20;9464:1;9446:20;:::i;:::-;9441:25;;9501:1;9498;9494:9;9523:30;9541:11;9523:30;:::i;:::-;9512:41;;9702:1;9693:7;9689:15;9686:1;9683:22;9663:1;9656:9;9636:83;9613:139;;9732:18;;:::i;:::-;9613:139;9397:362;9349:410;;;;:::o;9765:182::-;9905:34;9901:1;9893:6;9889:14;9882:58;9765:182;:::o;9953:366::-;10095:3;10116:67;10180:2;10175:3;10116:67;:::i;:::-;10109:74;;10192:93;10281:3;10192:93;:::i;:::-;10310:2;10305:3;10301:12;10294:19;;9953:366;;;:::o;10325:419::-;10491:4;10529:2;10518:9;10514:18;10506:26;;10578:9;10572:4;10568:20;10564:1;10553:9;10549:17;10542:47;10606:131;10732:4;10606:131;:::i;:::-;10598:139;;10325:419;;;:::o;10750:60::-;10778:3;10799:5;10792:12;;10750:60;;;:::o;10816:142::-;10866:9;10899:53;10917:34;10926:24;10944:5;10926:24;:::i;:::-;10917:34;:::i;:::-;10899:53;:::i;:::-;10886:66;;10816:142;;;:::o;10964:126::-;11014:9;11047:37;11078:5;11047:37;:::i;:::-;11034:50;;10964:126;;;:::o;11096:134::-;11154:9;11187:37;11218:5;11187:37;:::i;:::-;11174:50;;11096:134;;;:::o;11236:147::-;11331:45;11370:5;11331:45;:::i;:::-;11326:3;11319:58;11236:147;;:::o;11389:348::-;11518:4;11556:2;11545:9;11541:18;11533:26;;11569:79;11645:1;11634:9;11630:17;11621:6;11569:79;:::i;:::-;11658:72;11726:2;11715:9;11711:18;11702:6;11658:72;:::i;:::-;11389:348;;;;;:::o;11743:116::-;11813:21;11828:5;11813:21;:::i;:::-;11806:5;11803:32;11793:60;;11849:1;11846;11839:12;11793:60;11743:116;:::o;11865:137::-;11919:5;11950:6;11944:13;11935:22;;11966:30;11990:5;11966:30;:::i;:::-;11865:137;;;;:::o;12008:345::-;12075:6;12124:2;12112:9;12103:7;12099:23;12095:32;12092:119;;;12130:79;;:::i;:::-;12092:119;12250:1;12275:61;12328:7;12319:6;12308:9;12304:22;12275:61;:::i;:::-;12265:71;;12221:125;12008:345;;;;:::o;12359:173::-;12499:25;12495:1;12487:6;12483:14;12476:49;12359:173;:::o;12538:366::-;12680:3;12701:67;12765:2;12760:3;12701:67;:::i;:::-;12694:74;;12777:93;12866:3;12777:93;:::i;:::-;12895:2;12890:3;12886:12;12879:19;;12538:366;;;:::o;12910:419::-;13076:4;13114:2;13103:9;13099:18;13091:26;;13163:9;13157:4;13153:20;13149:1;13138:9;13134:17;13127:47;13191:131;13317:4;13191:131;:::i;:::-;13183:139;;12910:419;;;:::o;13335:143::-;13392:5;13423:6;13417:13;13408:22;;13439:33;13466:5;13439:33;:::i;:::-;13335:143;;;;:::o;13484:351::-;13554:6;13603:2;13591:9;13582:7;13578:23;13574:32;13571:119;;;13609:79;;:::i;:::-;13571:119;13729:1;13754:64;13810:7;13801:6;13790:9;13786:22;13754:64;:::i;:::-;13744:74;;13700:128;13484:351;;;;:::o;13841:332::-;13962:4;14000:2;13989:9;13985:18;13977:26;;14013:71;14081:1;14070:9;14066:17;14057:6;14013:71;:::i;:::-;14094:72;14162:2;14151:9;14147:18;14138:6;14094:72;:::i;:::-;13841:332;;;;;:::o;14179:85::-;14224:7;14253:5;14242:16;;14179:85;;;:::o;14270:158::-;14328:9;14361:61;14379:42;14388:32;14414:5;14388:32;:::i;:::-;14379:42;:::i;:::-;14361:61;:::i;:::-;14348:74;;14270:158;;;:::o;14434:147::-;14529:45;14568:5;14529:45;:::i;:::-;14524:3;14517:58;14434:147;;:::o;14587:807::-;14836:4;14874:3;14863:9;14859:19;14851:27;;14888:71;14956:1;14945:9;14941:17;14932:6;14888:71;:::i;:::-;14969:72;15037:2;15026:9;15022:18;15013:6;14969:72;:::i;:::-;15051:80;15127:2;15116:9;15112:18;15103:6;15051:80;:::i;:::-;15141;15217:2;15206:9;15202:18;15193:6;15141:80;:::i;:::-;15231:73;15299:3;15288:9;15284:19;15275:6;15231:73;:::i;:::-;15314;15382:3;15371:9;15367:19;15358:6;15314:73;:::i;:::-;14587:807;;;;;;;;;:::o;15400:143::-;15457:5;15488:6;15482:13;15473:22;;15504:33;15531:5;15504:33;:::i;:::-;15400:143;;;;:::o;15549:663::-;15637:6;15645;15653;15702:2;15690:9;15681:7;15677:23;15673:32;15670:119;;;15708:79;;:::i;:::-;15670:119;15828:1;15853:64;15909:7;15900:6;15889:9;15885:22;15853:64;:::i;:::-;15843:74;;15799:128;15966:2;15992:64;16048:7;16039:6;16028:9;16024:22;15992:64;:::i;:::-;15982:74;;15937:129;16105:2;16131:64;16187:7;16178:6;16167:9;16163:22;16131:64;:::i;:::-;16121:74;;16076:129;15549:663;;;;;:::o;16218:332::-;16339:4;16377:2;16366:9;16362:18;16354:26;;16390:71;16458:1;16447:9;16443:17;16434:6;16390:71;:::i;:::-;16471:72;16539:2;16528:9;16524:18;16515:6;16471:72;:::i;:::-;16218:332;;;;;:::o;16556:223::-;16696:34;16692:1;16684:6;16680:14;16673:58;16765:6;16760:2;16752:6;16748:15;16741:31;16556:223;:::o;16785:366::-;16927:3;16948:67;17012:2;17007:3;16948:67;:::i;:::-;16941:74;;17024:93;17113:3;17024:93;:::i;:::-;17142:2;17137:3;17133:12;17126:19;;16785:366;;;:::o;17157:419::-;17323:4;17361:2;17350:9;17346:18;17338:26;;17410:9;17404:4;17400:20;17396:1;17385:9;17381:17;17374:47;17438:131;17564:4;17438:131;:::i;:::-;17430:139;;17157:419;;;:::o;17582:221::-;17722:34;17718:1;17710:6;17706:14;17699:58;17791:4;17786:2;17778:6;17774:15;17767:29;17582:221;:::o;17809:366::-;17951:3;17972:67;18036:2;18031:3;17972:67;:::i;:::-;17965:74;;18048:93;18137:3;18048:93;:::i;:::-;18166:2;18161:3;18157:12;18150:19;;17809:366;;;:::o;18181:419::-;18347:4;18385:2;18374:9;18370:18;18362:26;;18434:9;18428:4;18424:20;18420:1;18409:9;18405:17;18398:47;18462:131;18588:4;18462:131;:::i;:::-;18454:139;;18181:419;;;:::o;18606:224::-;18746:34;18742:1;18734:6;18730:14;18723:58;18815:7;18810:2;18802:6;18798:15;18791:32;18606:224;:::o;18836:366::-;18978:3;18999:67;19063:2;19058:3;18999:67;:::i;:::-;18992:74;;19075:93;19164:3;19075:93;:::i;:::-;19193:2;19188:3;19184:12;19177:19;;18836:366;;;:::o;19208:419::-;19374:4;19412:2;19401:9;19397:18;19389:26;;19461:9;19455:4;19451:20;19447:1;19436:9;19432:17;19425:47;19489:131;19615:4;19489:131;:::i;:::-;19481:139;;19208:419;;;:::o;19633:222::-;19773:34;19769:1;19761:6;19757:14;19750:58;19842:5;19837:2;19829:6;19825:15;19818:30;19633:222;:::o;19861:366::-;20003:3;20024:67;20088:2;20083:3;20024:67;:::i;:::-;20017:74;;20100:93;20189:3;20100:93;:::i;:::-;20218:2;20213:3;20209:12;20202:19;;19861:366;;;:::o;20233:419::-;20399:4;20437:2;20426:9;20422:18;20414:26;;20486:9;20480:4;20476:20;20472:1;20461:9;20457:17;20450:47;20514:131;20640:4;20514:131;:::i;:::-;20506:139;;20233:419;;;:::o;20658:228::-;20798:34;20794:1;20786:6;20782:14;20775:58;20867:11;20862:2;20854:6;20850:15;20843:36;20658:228;:::o;20892:366::-;21034:3;21055:67;21119:2;21114:3;21055:67;:::i;:::-;21048:74;;21131:93;21220:3;21131:93;:::i;:::-;21249:2;21244:3;21240:12;21233:19;;20892:366;;;:::o;21264:419::-;21430:4;21468:2;21457:9;21453:18;21445:26;;21517:9;21511:4;21507:20;21503:1;21492:9;21488:17;21481:47;21545:131;21671:4;21545:131;:::i;:::-;21537:139;;21264:419;;;:::o;21689:297::-;21829:34;21825:1;21817:6;21813:14;21806:58;21898:34;21893:2;21885:6;21881:15;21874:59;21967:11;21962:2;21954:6;21950:15;21943:36;21689:297;:::o;21992:366::-;22134:3;22155:67;22219:2;22214:3;22155:67;:::i;:::-;22148:74;;22231:93;22320:3;22231:93;:::i;:::-;22349:2;22344:3;22340:12;22333:19;;21992:366;;;:::o;22364:419::-;22530:4;22568:2;22557:9;22553:18;22545:26;;22617:9;22611:4;22607:20;22603:1;22592:9;22588:17;22581:47;22645:131;22771:4;22645:131;:::i;:::-;22637:139;;22364:419;;;:::o;22789:175::-;22929:27;22925:1;22917:6;22913:14;22906:51;22789:175;:::o;22970:366::-;23112:3;23133:67;23197:2;23192:3;23133:67;:::i;:::-;23126:74;;23209:93;23298:3;23209:93;:::i;:::-;23327:2;23322:3;23318:12;23311:19;;22970:366;;;:::o;23342:419::-;23508:4;23546:2;23535:9;23531:18;23523:26;;23595:9;23589:4;23585:20;23581:1;23570:9;23566:17;23559:47;23623:131;23749:4;23623:131;:::i;:::-;23615:139;;23342:419;;;:::o;23767:191::-;23807:3;23826:20;23844:1;23826:20;:::i;:::-;23821:25;;23860:20;23878:1;23860:20;:::i;:::-;23855:25;;23903:1;23900;23896:9;23889:16;;23924:3;23921:1;23918:10;23915:36;;;23931:18;;:::i;:::-;23915:36;23767:191;;;;:::o;23964:176::-;24104:28;24100:1;24092:6;24088:14;24081:52;23964:176;:::o;24146:366::-;24288:3;24309:67;24373:2;24368:3;24309:67;:::i;:::-;24302:74;;24385:93;24474:3;24385:93;:::i;:::-;24503:2;24498:3;24494:12;24487:19;;24146:366;;;:::o;24518:419::-;24684:4;24722:2;24711:9;24707:18;24699:26;;24771:9;24765:4;24761:20;24757:1;24746:9;24742:17;24735:47;24799:131;24925:4;24799:131;:::i;:::-;24791:139;;24518:419;;;:::o;24943:233::-;24982:3;25005:24;25023:5;25005:24;:::i;:::-;24996:33;;25051:66;25044:5;25041:77;25038:103;;25121:18;;:::i;:::-;25038:103;25168:1;25161:5;25157:13;25150:20;;24943:233;;;:::o;25182:194::-;25222:4;25242:20;25260:1;25242:20;:::i;:::-;25237:25;;25276:20;25294:1;25276:20;:::i;:::-;25271:25;;25320:1;25317;25313:9;25305:17;;25344:1;25338:4;25335:11;25332:37;;;25349:18;;:::i;:::-;25332:37;25182:194;;;;:::o;25382:180::-;25430:77;25427:1;25420:88;25527:4;25524:1;25517:15;25551:4;25548:1;25541:15;25568:180;25616:77;25613:1;25606:88;25713:4;25710:1;25703:15;25737:4;25734:1;25727:15;25754:114;25821:6;25855:5;25849:12;25839:22;;25754:114;;;:::o;25874:184::-;25973:11;26007:6;26002:3;25995:19;26047:4;26042:3;26038:14;26023:29;;25874:184;;;;:::o;26064:132::-;26131:4;26154:3;26146:11;;26184:4;26179:3;26175:14;26167:22;;26064:132;;;:::o;26202:108::-;26279:24;26297:5;26279:24;:::i;:::-;26274:3;26267:37;26202:108;;:::o;26316:179::-;26385:10;26406:46;26448:3;26440:6;26406:46;:::i;:::-;26484:4;26479:3;26475:14;26461:28;;26316:179;;;;:::o;26501:113::-;26571:4;26603;26598:3;26594:14;26586:22;;26501:113;;;:::o;26650:732::-;26769:3;26798:54;26846:5;26798:54;:::i;:::-;26868:86;26947:6;26942:3;26868:86;:::i;:::-;26861:93;;26978:56;27028:5;26978:56;:::i;:::-;27057:7;27088:1;27073:284;27098:6;27095:1;27092:13;27073:284;;;27174:6;27168:13;27201:63;27260:3;27245:13;27201:63;:::i;:::-;27194:70;;27287:60;27340:6;27287:60;:::i;:::-;27277:70;;27133:224;27120:1;27117;27113:9;27108:14;;27073:284;;;27077:14;27373:3;27366:10;;26774:608;;;26650:732;;;;:::o;27388:831::-;27651:4;27689:3;27678:9;27674:19;27666:27;;27703:71;27771:1;27760:9;27756:17;27747:6;27703:71;:::i;:::-;27784:80;27860:2;27849:9;27845:18;27836:6;27784:80;:::i;:::-;27911:9;27905:4;27901:20;27896:2;27885:9;27881:18;27874:48;27939:108;28042:4;28033:6;27939:108;:::i;:::-;27931:116;;28057:72;28125:2;28114:9;28110:18;28101:6;28057:72;:::i;:::-;28139:73;28207:3;28196:9;28192:19;28183:6;28139:73;:::i;:::-;27388:831;;;;;;;;:::o;28225:180::-;28273:77;28270:1;28263:88;28370:4;28367:1;28360:15;28394:4;28391:1;28384:15;28411:185;28451:1;28468:20;28486:1;28468:20;:::i;:::-;28463:25;;28502:20;28520:1;28502:20;:::i;:::-;28497:25;;28541:1;28531:35;;28546:18;;:::i;:::-;28531:35;28588:1;28585;28581:9;28576:14;;28411:185;;;;:::o;28602:220::-;28742:34;28738:1;28730:6;28726:14;28719:58;28811:3;28806:2;28798:6;28794:15;28787:28;28602:220;:::o;28828:366::-;28970:3;28991:67;29055:2;29050:3;28991:67;:::i;:::-;28984:74;;29067:93;29156:3;29067:93;:::i;:::-;29185:2;29180:3;29176:12;29169:19;;28828:366;;;:::o;29200:419::-;29366:4;29404:2;29393:9;29389:18;29381:26;;29453:9;29447:4;29443:20;29439:1;29428:9;29424:17;29417:47;29481:131;29607:4;29481:131;:::i;:::-;29473:139;;29200:419;;;:::o;29625:177::-;29765:29;29761:1;29753:6;29749:14;29742:53;29625:177;:::o;29808:366::-;29950:3;29971:67;30035:2;30030:3;29971:67;:::i;:::-;29964:74;;30047:93;30136:3;30047:93;:::i;:::-;30165:2;30160:3;30156:12;30149:19;;29808:366;;;:::o;30180:419::-;30346:4;30384:2;30373:9;30369:18;30361:26;;30433:9;30427:4;30423:20;30419:1;30408:9;30404:17;30397:47;30461:131;30587:4;30461:131;:::i;:::-;30453:139;;30180:419;;;:::o

Swarm Source

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