ETH Price: $2,517.36 (+2.58%)

Token

MADGROK.AI (MADGROK)
 

Overview

Max Total Supply

420,690,000,000 MADGROK

Holders

47

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
azan.eth
Balance
0.00000007 MADGROK

Value
$0.00
0x292c41ec15c8d9cdcae2b069c822b7ab1324a0c1
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:
MadGrok

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

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

// https://madgrok.ai
// https://twitter.com/madgrokai
// https://t.me/madgrokportal

// SPDX-License-Identifier: MIT


pragma solidity 0.8.19;

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

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

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 MadGrok 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;

    /// initial buy, sell fee till first 10 buys
    uint256 private _initialBuyTax=15;
    uint256 private _initialSellTax=30;

    ///final buy, sell fee
    uint256 private _finalBuyTax=3;
    uint256 private _finalSellTax=3;

    /// fee split info
    uint256 private _marketingFee = 2; 
    uint256 private _lpFee = 1;
    
    ///after how many buy sell should redue to final tax
    uint256 private _reduceBuyTaxAt=15;
    uint256 private _reduceSellTaxAt=15;
    uint256 private _preventSwapBefore=10;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 420690000000 * 10**_decimals; // 420690 million max supply
    string private constant _name = "MADGROK.AI" ;
    string private constant _symbol = "MADGROK" ;
    uint256 public _maxTxAmount = 8413800000 * 10**_decimals; // 2% of the supply
    uint256 public _maxWalletSize = 8413800000 * 10**_decimals; // 2% of the supply
    uint256 public _taxSwapThreshold= 84138000 * 10**_decimals; // 0.1%
    uint256 public _maxTaxSwap= 8413800000 * 10**_decimals; // 2% of supply

    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() && from != address(this)) {
            

            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.");
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
                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) {
                swapAndLiquify(min(amount,min(contractTokenBalance,_maxTaxSwap)));
            }
        }

        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 swapAndLiquify (uint256 tokens) private lockTheSwap {
      uint256 lpTokens = (tokens * _lpFee) / 2;
      uint256 swapTokens = tokens - lpTokens;
      swapTokensForEth (swapTokens);
      uint256 ethBalance = address(this).balance;
      uint256 marketingPart = (ethBalance * _marketingFee) / (_marketingFee + _lpFee);
      if(marketingPart > 0){
      (bool success,) = _taxWallet.call{value: marketingPart}("");
      if (success && lpTokens > 0){
      addLiquidity(lpTokens, address(this).balance);
       }
      }
    }

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

    function addLiquidity (uint256 tokens, uint256 eth) private {
        uint256 allowedTokens = allowance(address(this), address(uniswapV2Router));
        if(allowedTokens < tokens){
         _approve(address(this), address(uniswapV2Router), ~uint256(0));
        }
        uniswapV2Router.addLiquidityETH{value: eth}(
            address(this),
            tokens,
            0,
            0,
            _taxWallet,
            block.timestamp);
    }

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


    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 marketingFee, uint256 liquidityFee) external onlyOwner{
      uint256 totalFee = marketingFee + liquidityFee;
      require(totalFee<=_finalBuyTax &&totalFee <=_finalSellTax);
      _marketingFee = marketingFee;
      _lpFee = liquidityFee;
      _finalBuyTax= totalFee;
      _finalSellTax= totalFee;
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapAndLiquify(tokenBalance);
        }
      
    }
}

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":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"liquidityFee","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":[],"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"}]

60806040526001600560006101000a81548160ff021916908315150217905550600f600655601e600755600360085560036009556002600a556001600b55600f600c55600f600d55600a600e556000600f556009600a6200006191906200063d565b6401f58066406200007391906200068e565b6010556009600a6200008691906200063d565b6401f58066406200009891906200068e565b6011556009600a620000ab91906200063d565b630503d810620000bc91906200068e565b6012556009600a620000cf91906200063d565b6401f5806640620000e191906200068e565b60135560006015806101000a81548160ff0219169083151502179055506000601560166101000a81548160ff0219169083151502179055503480156200012657600080fd5b506000620001396200047260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001e76200047260201b60201c565b600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200023791906200063d565b6461f313f8806200024991906200068e565b600160006200025d6200047260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002b16200047a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003e46200047260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200044391906200063d565b6461f313f8806200045591906200068e565b604051620004649190620006ea565b60405180910390a362000707565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200053157808604811115620005095762000508620004a3565b5b6001851615620005195780820291505b80810290506200052985620004d2565b9450620004e9565b94509492505050565b6000826200054c57600190506200061f565b816200055c57600090506200061f565b81600181146200057557600281146200058057620005b6565b60019150506200061f565b60ff841115620005955762000594620004a3565b5b8360020a915084821115620005af57620005ae620004a3565b5b506200061f565b5060208310610133831016604e8410600b8410161715620005f05782820a905083811115620005ea57620005e9620004a3565b5b6200061f565b620005ff8484846001620004df565b92509050818404811115620006195762000618620004a3565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200064a8262000626565b9150620006578362000630565b9250620006867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200053a565b905092915050565b60006200069b8262000626565b9150620006a88362000626565b9250828202620006b88162000626565b91508282048414831517620006d257620006d1620004a3565b5b5092915050565b620006e48162000626565b82525050565b6000602082019050620007016000830184620006d9565b92915050565b6134b580620007176000396000f3fe6080604052600436106101235760003560e01c8063751039fc116100a0578063a9059cbb11610064578063a9059cbb146103ac578063bf474bed146103e9578063c876d0b914610414578063c9567bf91461043f578063dd62ed3e146104565761012a565b8063751039fc146102e95780637d1db4a5146103005780638da5cb5b1461032b5780638f9a55c01461035657806395d89b41146103815761012a565b8063313ce567116100e7578063313ce5671461022a57806351bc3c851461025557806370a082311461026c578063715018a6146102a957806372333356146102c05761012a565b806306fdde031461012f578063095ea7b31461015a5780630faee56f1461019757806318160ddd146101c257806323b872dd146101ed5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b50610144610493565b60405161015191906123ef565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c91906124aa565b6104d0565b60405161018e9190612505565b60405180910390f35b3480156101a357600080fd5b506101ac6104ee565b6040516101b9919061252f565b60405180910390f35b3480156101ce57600080fd5b506101d76104f4565b6040516101e4919061252f565b60405180910390f35b3480156101f957600080fd5b50610214600480360381019061020f919061254a565b610519565b6040516102219190612505565b60405180910390f35b34801561023657600080fd5b5061023f6105f2565b60405161024c91906125b9565b60405180910390f35b34801561026157600080fd5b5061026a6105fb565b005b34801561027857600080fd5b50610293600480360381019061028e91906125d4565b61067f565b6040516102a0919061252f565b60405180910390f35b3480156102b557600080fd5b506102be6106c8565b005b3480156102cc57600080fd5b506102e760048036038101906102e29190612601565b61081b565b005b3480156102f557600080fd5b506102fe6108fe565b005b34801561030c57600080fd5b50610315610a4c565b604051610322919061252f565b60405180910390f35b34801561033757600080fd5b50610340610a52565b60405161034d9190612650565b60405180910390f35b34801561036257600080fd5b5061036b610a7b565b604051610378919061252f565b60405180910390f35b34801561038d57600080fd5b50610396610a81565b6040516103a391906123ef565b60405180910390f35b3480156103b857600080fd5b506103d360048036038101906103ce91906124aa565b610abe565b6040516103e09190612505565b60405180910390f35b3480156103f557600080fd5b506103fe610adc565b60405161040b919061252f565b60405180910390f35b34801561042057600080fd5b50610429610ae2565b6040516104369190612505565b60405180910390f35b34801561044b57600080fd5b50610454610af5565b005b34801561046257600080fd5b5061047d6004803603810190610478919061266b565b61102e565b60405161048a919061252f565b60405180910390f35b60606040518060400160405280600a81526020017f4d414447524f4b2e414900000000000000000000000000000000000000000000815250905090565b60006104e46104dd6110b5565b84846110bd565b6001905092915050565b60135481565b60006009600a610504919061280d565b6461f313f8806105149190612858565b905090565b6000610526848484611286565b6105e7846105326110b5565b6105e28560405180606001604052806028815260200161345860289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105986110b5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c3b9092919063ffffffff16565b6110bd565b600190509392505050565b60006009905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661063c6110b5565b73ffffffffffffffffffffffffffffffffffffffff161461065c57600080fd5b60006106673061067f565b9050600081111561067c5761067b81611c9f565b5b50565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6106d06110b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461075d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610754906128e6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108236110b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a7906128e6565b60405180910390fd5b600081836108be9190612906565b905060085481111580156108d457506009548111155b6108dd57600080fd5b82600a8190555081600b819055508060088190555080600981905550505050565b6109066110b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098a906128e6565b60405180910390fd5b6009600a6109a1919061280d565b6461f313f8806109b19190612858565b6010819055506009600a6109c5919061280d565b6461f313f8806109d59190612858565b6011819055506000600560006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a25919061280d565b6461f313f880610a359190612858565b604051610a42919061252f565b60405180910390a1565b60105481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600781526020017f4d414447524f4b00000000000000000000000000000000000000000000000000815250905090565b6000610ad2610acb6110b5565b8484611286565b6001905092915050565b60125481565b600560009054906101000a900460ff1681565b610afd6110b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b81906128e6565b60405180910390fd5b601560149054906101000a900460ff1615610bda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd190612986565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c7930601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610c64919061280d565b6461f313f880610c749190612858565b6110bd565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ce6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0a91906129bb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db791906129bb565b6040518363ffffffff1660e01b8152600401610dd49291906129e8565b6020604051808303816000875af1158015610df3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1791906129bb565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610ea03061067f565b600080610eab610a52565b426040518863ffffffff1660e01b8152600401610ecd96959493929190612a56565b60606040518083038185885af1158015610eeb573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f109190612acc565b505050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610fb2929190612b1f565b6020604051808303816000875af1158015610fd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff59190612b74565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361112c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112390612c13565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361119b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119290612ca5565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611279919061252f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ec90612d37565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611364576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135b90612dc9565b60405180910390fd5b600081116113a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139e90612e5b565b60405180910390fd5b60006113b1610a52565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561141f57506113ef610a52565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561145757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561197e57600560009054906101000a900460ff16156115e957601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561151d5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156115e85743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106115a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159a90612f13565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116945750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116ea5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117e357601054821115611734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172b90612f7f565b60405180910390fd5b6117706064611762600c54600f541161174f57600654611753565b6008545b85611df890919063ffffffff16565b611e7290919063ffffffff16565b90506011548261177f8561067f565b6117899190612906565b11156117ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c190612feb565b60405180910390fd5b600f60008154809291906117dd9061300b565b91905055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561186c57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118b0576118ad606461189f600d54600f541161188c57600754611890565b6009545b85611df890919063ffffffff16565b611e7290919063ffffffff16565b90505b60006118bb3061067f565b905060158054906101000a900460ff161580156119255750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561193d5750601560169054906101000a900460ff165b801561194a575060125481115b80156119595750600e54600f54115b1561197c5761197b6119768461197184601354611ebc565b611ebc565b611c9f565b5b505b6000811115611a82576119d981600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ed590919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a79919061252f565b60405180910390a35b611ad482600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f3390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b7b611b2d8284611f3390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ed590919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611c208486611f3390919063ffffffff16565b604051611c2d919061252f565b60405180910390a350505050565b6000838311158290611c83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7a91906123ef565b60405180910390fd5b5060008385611c929190613053565b9050809150509392505050565b60016015806101000a81548160ff02191690831515021790555060006002600b5483611ccb9190612858565b611cd591906130b6565b905060008183611ce59190613053565b9050611cf081611f7d565b60004790506000600b54600a54611d079190612906565b600a5483611d159190612858565b611d1f91906130b6565b90506000811115611dd7576000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611d7290613118565b60006040518083038185875af1925050503d8060008114611daf576040519150601f19603f3d011682016040523d82523d6000602084013e611db4565b606091505b50509050808015611dc55750600085115b15611dd557611dd485476121c0565b5b505b5050505060006015806101000a81548160ff02191690831515021790555050565b6000808303611e0a5760009050611e6c565b60008284611e189190612858565b9050828482611e2791906130b6565b14611e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5e9061319f565b60405180910390fd5b809150505b92915050565b6000611eb483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122fc565b905092915050565b6000818311611ecb5782611ecd565b815b905092915050565b6000808284611ee49190612906565b905083811015611f29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f209061320b565b60405180910390fd5b8091505092915050565b6000611f7583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c3b565b905092915050565b6000600267ffffffffffffffff811115611f9a57611f9961322b565b5b604051908082528060200260200182016040528015611fc85781602001602082028036833780820191505090505b5090503081600081518110611fe057611fdf61325a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612087573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ab91906129bb565b816001815181106120bf576120be61325a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061212630601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110bd565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161218a959493929190613347565b600060405180830381600087803b1580156121a457600080fd5b505af11580156121b8573d6000803e3d6000fd5b505050505050565b60006121ee30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661102e565b9050828110156122285761222730601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000196110bd565b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719833086600080600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016122b1969594939291906133f6565b60606040518083038185885af11580156122cf573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122f49190612acc565b505050505050565b60008083118290612343576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233a91906123ef565b60405180910390fd5b506000838561235291906130b6565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561239957808201518184015260208101905061237e565b60008484015250505050565b6000601f19601f8301169050919050565b60006123c18261235f565b6123cb818561236a565b93506123db81856020860161237b565b6123e4816123a5565b840191505092915050565b6000602082019050818103600083015261240981846123b6565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061244182612416565b9050919050565b61245181612436565b811461245c57600080fd5b50565b60008135905061246e81612448565b92915050565b6000819050919050565b61248781612474565b811461249257600080fd5b50565b6000813590506124a48161247e565b92915050565b600080604083850312156124c1576124c0612411565b5b60006124cf8582860161245f565b92505060206124e085828601612495565b9150509250929050565b60008115159050919050565b6124ff816124ea565b82525050565b600060208201905061251a60008301846124f6565b92915050565b61252981612474565b82525050565b60006020820190506125446000830184612520565b92915050565b60008060006060848603121561256357612562612411565b5b60006125718682870161245f565b93505060206125828682870161245f565b925050604061259386828701612495565b9150509250925092565b600060ff82169050919050565b6125b38161259d565b82525050565b60006020820190506125ce60008301846125aa565b92915050565b6000602082840312156125ea576125e9612411565b5b60006125f88482850161245f565b91505092915050565b6000806040838503121561261857612617612411565b5b600061262685828601612495565b925050602061263785828601612495565b9150509250929050565b61264a81612436565b82525050565b60006020820190506126656000830184612641565b92915050565b6000806040838503121561268257612681612411565b5b60006126908582860161245f565b92505060206126a18582860161245f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156127315780860481111561270d5761270c6126ab565b5b600185161561271c5780820291505b808102905061272a856126da565b94506126f1565b94509492505050565b60008261274a5760019050612806565b816127585760009050612806565b816001811461276e5760028114612778576127a7565b6001915050612806565b60ff84111561278a576127896126ab565b5b8360020a9150848211156127a1576127a06126ab565b5b50612806565b5060208310610133831016604e8410600b84101617156127dc5782820a9050838111156127d7576127d66126ab565b5b612806565b6127e984848460016126e7565b92509050818404811115612800576127ff6126ab565b5b81810290505b9392505050565b600061281882612474565b91506128238361259d565b92506128507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461273a565b905092915050565b600061286382612474565b915061286e83612474565b925082820261287c81612474565b91508282048414831517612893576128926126ab565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006128d060208361236a565b91506128db8261289a565b602082019050919050565b600060208201905081810360008301526128ff816128c3565b9050919050565b600061291182612474565b915061291c83612474565b9250828201905080821115612934576129336126ab565b5b92915050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061297060178361236a565b915061297b8261293a565b602082019050919050565b6000602082019050818103600083015261299f81612963565b9050919050565b6000815190506129b581612448565b92915050565b6000602082840312156129d1576129d0612411565b5b60006129df848285016129a6565b91505092915050565b60006040820190506129fd6000830185612641565b612a0a6020830184612641565b9392505050565b6000819050919050565b6000819050919050565b6000612a40612a3b612a3684612a11565b612a1b565b612474565b9050919050565b612a5081612a25565b82525050565b600060c082019050612a6b6000830189612641565b612a786020830188612520565b612a856040830187612a47565b612a926060830186612a47565b612a9f6080830185612641565b612aac60a0830184612520565b979650505050505050565b600081519050612ac68161247e565b92915050565b600080600060608486031215612ae557612ae4612411565b5b6000612af386828701612ab7565b9350506020612b0486828701612ab7565b9250506040612b1586828701612ab7565b9150509250925092565b6000604082019050612b346000830185612641565b612b416020830184612520565b9392505050565b612b51816124ea565b8114612b5c57600080fd5b50565b600081519050612b6e81612b48565b92915050565b600060208284031215612b8a57612b89612411565b5b6000612b9884828501612b5f565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612bfd60248361236a565b9150612c0882612ba1565b604082019050919050565b60006020820190508181036000830152612c2c81612bf0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c8f60228361236a565b9150612c9a82612c33565b604082019050919050565b60006020820190508181036000830152612cbe81612c82565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612d2160258361236a565b9150612d2c82612cc5565b604082019050919050565b60006020820190508181036000830152612d5081612d14565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612db360238361236a565b9150612dbe82612d57565b604082019050919050565b60006020820190508181036000830152612de281612da6565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612e4560298361236a565b9150612e5082612de9565b604082019050919050565b60006020820190508181036000830152612e7481612e38565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000612efd60498361236a565b9150612f0882612e7b565b606082019050919050565b60006020820190508181036000830152612f2c81612ef0565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612f6960198361236a565b9150612f7482612f33565b602082019050919050565b60006020820190508181036000830152612f9881612f5c565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612fd5601a8361236a565b9150612fe082612f9f565b602082019050919050565b6000602082019050818103600083015261300481612fc8565b9050919050565b600061301682612474565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613048576130476126ab565b5b600182019050919050565b600061305e82612474565b915061306983612474565b9250828203905081811115613081576130806126ab565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006130c182612474565b91506130cc83612474565b9250826130dc576130db613087565b5b828204905092915050565b600081905092915050565b50565b60006131026000836130e7565b915061310d826130f2565b600082019050919050565b6000613123826130f5565b9150819050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061318960218361236a565b91506131948261312d565b604082019050919050565b600060208201905081810360008301526131b88161317c565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006131f5601b8361236a565b9150613200826131bf565b602082019050919050565b60006020820190508181036000830152613224816131e8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132be81612436565b82525050565b60006132d083836132b5565b60208301905092915050565b6000602082019050919050565b60006132f482613289565b6132fe8185613294565b9350613309836132a5565b8060005b8381101561333a57815161332188826132c4565b975061332c836132dc565b92505060018101905061330d565b5085935050505092915050565b600060a08201905061335c6000830188612520565b6133696020830187612a47565b818103604083015261337b81866132e9565b905061338a6060830185612641565b6133976080830184612520565b9695505050505050565b60006133bc6133b76133b284612416565b612a1b565b612416565b9050919050565b60006133ce826133a1565b9050919050565b60006133e0826133c3565b9050919050565b6133f0816133d5565b82525050565b600060c08201905061340b6000830189612641565b6134186020830188612520565b6134256040830187612a47565b6134326060830186612a47565b61343f60808301856133e7565b61344c60a0830184612520565b97965050505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122061e5623b19b0d5e55fdbd1eb4677c54f2944255272711a015ece2ea45c49eb2464736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101235760003560e01c8063751039fc116100a0578063a9059cbb11610064578063a9059cbb146103ac578063bf474bed146103e9578063c876d0b914610414578063c9567bf91461043f578063dd62ed3e146104565761012a565b8063751039fc146102e95780637d1db4a5146103005780638da5cb5b1461032b5780638f9a55c01461035657806395d89b41146103815761012a565b8063313ce567116100e7578063313ce5671461022a57806351bc3c851461025557806370a082311461026c578063715018a6146102a957806372333356146102c05761012a565b806306fdde031461012f578063095ea7b31461015a5780630faee56f1461019757806318160ddd146101c257806323b872dd146101ed5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b50610144610493565b60405161015191906123ef565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c91906124aa565b6104d0565b60405161018e9190612505565b60405180910390f35b3480156101a357600080fd5b506101ac6104ee565b6040516101b9919061252f565b60405180910390f35b3480156101ce57600080fd5b506101d76104f4565b6040516101e4919061252f565b60405180910390f35b3480156101f957600080fd5b50610214600480360381019061020f919061254a565b610519565b6040516102219190612505565b60405180910390f35b34801561023657600080fd5b5061023f6105f2565b60405161024c91906125b9565b60405180910390f35b34801561026157600080fd5b5061026a6105fb565b005b34801561027857600080fd5b50610293600480360381019061028e91906125d4565b61067f565b6040516102a0919061252f565b60405180910390f35b3480156102b557600080fd5b506102be6106c8565b005b3480156102cc57600080fd5b506102e760048036038101906102e29190612601565b61081b565b005b3480156102f557600080fd5b506102fe6108fe565b005b34801561030c57600080fd5b50610315610a4c565b604051610322919061252f565b60405180910390f35b34801561033757600080fd5b50610340610a52565b60405161034d9190612650565b60405180910390f35b34801561036257600080fd5b5061036b610a7b565b604051610378919061252f565b60405180910390f35b34801561038d57600080fd5b50610396610a81565b6040516103a391906123ef565b60405180910390f35b3480156103b857600080fd5b506103d360048036038101906103ce91906124aa565b610abe565b6040516103e09190612505565b60405180910390f35b3480156103f557600080fd5b506103fe610adc565b60405161040b919061252f565b60405180910390f35b34801561042057600080fd5b50610429610ae2565b6040516104369190612505565b60405180910390f35b34801561044b57600080fd5b50610454610af5565b005b34801561046257600080fd5b5061047d6004803603810190610478919061266b565b61102e565b60405161048a919061252f565b60405180910390f35b60606040518060400160405280600a81526020017f4d414447524f4b2e414900000000000000000000000000000000000000000000815250905090565b60006104e46104dd6110b5565b84846110bd565b6001905092915050565b60135481565b60006009600a610504919061280d565b6461f313f8806105149190612858565b905090565b6000610526848484611286565b6105e7846105326110b5565b6105e28560405180606001604052806028815260200161345860289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105986110b5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c3b9092919063ffffffff16565b6110bd565b600190509392505050565b60006009905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661063c6110b5565b73ffffffffffffffffffffffffffffffffffffffff161461065c57600080fd5b60006106673061067f565b9050600081111561067c5761067b81611c9f565b5b50565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6106d06110b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461075d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610754906128e6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108236110b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a7906128e6565b60405180910390fd5b600081836108be9190612906565b905060085481111580156108d457506009548111155b6108dd57600080fd5b82600a8190555081600b819055508060088190555080600981905550505050565b6109066110b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098a906128e6565b60405180910390fd5b6009600a6109a1919061280d565b6461f313f8806109b19190612858565b6010819055506009600a6109c5919061280d565b6461f313f8806109d59190612858565b6011819055506000600560006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a25919061280d565b6461f313f880610a359190612858565b604051610a42919061252f565b60405180910390a1565b60105481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600781526020017f4d414447524f4b00000000000000000000000000000000000000000000000000815250905090565b6000610ad2610acb6110b5565b8484611286565b6001905092915050565b60125481565b600560009054906101000a900460ff1681565b610afd6110b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b81906128e6565b60405180910390fd5b601560149054906101000a900460ff1615610bda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd190612986565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c7930601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610c64919061280d565b6461f313f880610c749190612858565b6110bd565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ce6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0a91906129bb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db791906129bb565b6040518363ffffffff1660e01b8152600401610dd49291906129e8565b6020604051808303816000875af1158015610df3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1791906129bb565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610ea03061067f565b600080610eab610a52565b426040518863ffffffff1660e01b8152600401610ecd96959493929190612a56565b60606040518083038185885af1158015610eeb573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f109190612acc565b505050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610fb2929190612b1f565b6020604051808303816000875af1158015610fd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff59190612b74565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361112c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112390612c13565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361119b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119290612ca5565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611279919061252f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ec90612d37565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611364576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135b90612dc9565b60405180910390fd5b600081116113a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139e90612e5b565b60405180910390fd5b60006113b1610a52565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561141f57506113ef610a52565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561145757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561197e57600560009054906101000a900460ff16156115e957601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561151d5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156115e85743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106115a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159a90612f13565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116945750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116ea5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117e357601054821115611734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172b90612f7f565b60405180910390fd5b6117706064611762600c54600f541161174f57600654611753565b6008545b85611df890919063ffffffff16565b611e7290919063ffffffff16565b90506011548261177f8561067f565b6117899190612906565b11156117ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c190612feb565b60405180910390fd5b600f60008154809291906117dd9061300b565b91905055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561186c57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118b0576118ad606461189f600d54600f541161188c57600754611890565b6009545b85611df890919063ffffffff16565b611e7290919063ffffffff16565b90505b60006118bb3061067f565b905060158054906101000a900460ff161580156119255750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561193d5750601560169054906101000a900460ff165b801561194a575060125481115b80156119595750600e54600f54115b1561197c5761197b6119768461197184601354611ebc565b611ebc565b611c9f565b5b505b6000811115611a82576119d981600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ed590919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a79919061252f565b60405180910390a35b611ad482600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f3390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b7b611b2d8284611f3390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ed590919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611c208486611f3390919063ffffffff16565b604051611c2d919061252f565b60405180910390a350505050565b6000838311158290611c83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7a91906123ef565b60405180910390fd5b5060008385611c929190613053565b9050809150509392505050565b60016015806101000a81548160ff02191690831515021790555060006002600b5483611ccb9190612858565b611cd591906130b6565b905060008183611ce59190613053565b9050611cf081611f7d565b60004790506000600b54600a54611d079190612906565b600a5483611d159190612858565b611d1f91906130b6565b90506000811115611dd7576000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611d7290613118565b60006040518083038185875af1925050503d8060008114611daf576040519150601f19603f3d011682016040523d82523d6000602084013e611db4565b606091505b50509050808015611dc55750600085115b15611dd557611dd485476121c0565b5b505b5050505060006015806101000a81548160ff02191690831515021790555050565b6000808303611e0a5760009050611e6c565b60008284611e189190612858565b9050828482611e2791906130b6565b14611e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5e9061319f565b60405180910390fd5b809150505b92915050565b6000611eb483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122fc565b905092915050565b6000818311611ecb5782611ecd565b815b905092915050565b6000808284611ee49190612906565b905083811015611f29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f209061320b565b60405180910390fd5b8091505092915050565b6000611f7583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c3b565b905092915050565b6000600267ffffffffffffffff811115611f9a57611f9961322b565b5b604051908082528060200260200182016040528015611fc85781602001602082028036833780820191505090505b5090503081600081518110611fe057611fdf61325a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612087573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ab91906129bb565b816001815181106120bf576120be61325a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061212630601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110bd565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161218a959493929190613347565b600060405180830381600087803b1580156121a457600080fd5b505af11580156121b8573d6000803e3d6000fd5b505050505050565b60006121ee30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661102e565b9050828110156122285761222730601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000196110bd565b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719833086600080600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016122b1969594939291906133f6565b60606040518083038185885af11580156122cf573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122f49190612acc565b505050505050565b60008083118290612343576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233a91906123ef565b60405180910390fd5b506000838561235291906130b6565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561239957808201518184015260208101905061237e565b60008484015250505050565b6000601f19601f8301169050919050565b60006123c18261235f565b6123cb818561236a565b93506123db81856020860161237b565b6123e4816123a5565b840191505092915050565b6000602082019050818103600083015261240981846123b6565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061244182612416565b9050919050565b61245181612436565b811461245c57600080fd5b50565b60008135905061246e81612448565b92915050565b6000819050919050565b61248781612474565b811461249257600080fd5b50565b6000813590506124a48161247e565b92915050565b600080604083850312156124c1576124c0612411565b5b60006124cf8582860161245f565b92505060206124e085828601612495565b9150509250929050565b60008115159050919050565b6124ff816124ea565b82525050565b600060208201905061251a60008301846124f6565b92915050565b61252981612474565b82525050565b60006020820190506125446000830184612520565b92915050565b60008060006060848603121561256357612562612411565b5b60006125718682870161245f565b93505060206125828682870161245f565b925050604061259386828701612495565b9150509250925092565b600060ff82169050919050565b6125b38161259d565b82525050565b60006020820190506125ce60008301846125aa565b92915050565b6000602082840312156125ea576125e9612411565b5b60006125f88482850161245f565b91505092915050565b6000806040838503121561261857612617612411565b5b600061262685828601612495565b925050602061263785828601612495565b9150509250929050565b61264a81612436565b82525050565b60006020820190506126656000830184612641565b92915050565b6000806040838503121561268257612681612411565b5b60006126908582860161245f565b92505060206126a18582860161245f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156127315780860481111561270d5761270c6126ab565b5b600185161561271c5780820291505b808102905061272a856126da565b94506126f1565b94509492505050565b60008261274a5760019050612806565b816127585760009050612806565b816001811461276e5760028114612778576127a7565b6001915050612806565b60ff84111561278a576127896126ab565b5b8360020a9150848211156127a1576127a06126ab565b5b50612806565b5060208310610133831016604e8410600b84101617156127dc5782820a9050838111156127d7576127d66126ab565b5b612806565b6127e984848460016126e7565b92509050818404811115612800576127ff6126ab565b5b81810290505b9392505050565b600061281882612474565b91506128238361259d565b92506128507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461273a565b905092915050565b600061286382612474565b915061286e83612474565b925082820261287c81612474565b91508282048414831517612893576128926126ab565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006128d060208361236a565b91506128db8261289a565b602082019050919050565b600060208201905081810360008301526128ff816128c3565b9050919050565b600061291182612474565b915061291c83612474565b9250828201905080821115612934576129336126ab565b5b92915050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061297060178361236a565b915061297b8261293a565b602082019050919050565b6000602082019050818103600083015261299f81612963565b9050919050565b6000815190506129b581612448565b92915050565b6000602082840312156129d1576129d0612411565b5b60006129df848285016129a6565b91505092915050565b60006040820190506129fd6000830185612641565b612a0a6020830184612641565b9392505050565b6000819050919050565b6000819050919050565b6000612a40612a3b612a3684612a11565b612a1b565b612474565b9050919050565b612a5081612a25565b82525050565b600060c082019050612a6b6000830189612641565b612a786020830188612520565b612a856040830187612a47565b612a926060830186612a47565b612a9f6080830185612641565b612aac60a0830184612520565b979650505050505050565b600081519050612ac68161247e565b92915050565b600080600060608486031215612ae557612ae4612411565b5b6000612af386828701612ab7565b9350506020612b0486828701612ab7565b9250506040612b1586828701612ab7565b9150509250925092565b6000604082019050612b346000830185612641565b612b416020830184612520565b9392505050565b612b51816124ea565b8114612b5c57600080fd5b50565b600081519050612b6e81612b48565b92915050565b600060208284031215612b8a57612b89612411565b5b6000612b9884828501612b5f565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612bfd60248361236a565b9150612c0882612ba1565b604082019050919050565b60006020820190508181036000830152612c2c81612bf0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c8f60228361236a565b9150612c9a82612c33565b604082019050919050565b60006020820190508181036000830152612cbe81612c82565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612d2160258361236a565b9150612d2c82612cc5565b604082019050919050565b60006020820190508181036000830152612d5081612d14565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612db360238361236a565b9150612dbe82612d57565b604082019050919050565b60006020820190508181036000830152612de281612da6565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612e4560298361236a565b9150612e5082612de9565b604082019050919050565b60006020820190508181036000830152612e7481612e38565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000612efd60498361236a565b9150612f0882612e7b565b606082019050919050565b60006020820190508181036000830152612f2c81612ef0565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612f6960198361236a565b9150612f7482612f33565b602082019050919050565b60006020820190508181036000830152612f9881612f5c565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612fd5601a8361236a565b9150612fe082612f9f565b602082019050919050565b6000602082019050818103600083015261300481612fc8565b9050919050565b600061301682612474565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613048576130476126ab565b5b600182019050919050565b600061305e82612474565b915061306983612474565b9250828203905081811115613081576130806126ab565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006130c182612474565b91506130cc83612474565b9250826130dc576130db613087565b5b828204905092915050565b600081905092915050565b50565b60006131026000836130e7565b915061310d826130f2565b600082019050919050565b6000613123826130f5565b9150819050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061318960218361236a565b91506131948261312d565b604082019050919050565b600060208201905081810360008301526131b88161317c565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006131f5601b8361236a565b9150613200826131bf565b602082019050919050565b60006020820190508181036000830152613224816131e8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132be81612436565b82525050565b60006132d083836132b5565b60208301905092915050565b6000602082019050919050565b60006132f482613289565b6132fe8185613294565b9350613309836132a5565b8060005b8381101561333a57815161332188826132c4565b975061332c836132dc565b92505060018101905061330d565b5085935050505092915050565b600060a08201905061335c6000830188612520565b6133696020830187612a47565b818103604083015261337b81866132e9565b905061338a6060830185612641565b6133976080830184612520565b9695505050505050565b60006133bc6133b76133b284612416565b612a1b565b612416565b9050919050565b60006133ce826133a1565b9050919050565b60006133e0826133c3565b9050919050565b6133f0816133d5565b82525050565b600060c08201905061340b6000830189612641565b6134186020830188612520565b6134256040830187612a47565b6134326060830186612a47565b61343f60808301856133e7565b61344c60a0830184612520565b97965050505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122061e5623b19b0d5e55fdbd1eb4677c54f2944255272711a015ece2ea45c49eb2464736f6c63430008130033

Deployed Bytecode Sourcemap

3636:9275:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5862:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6695:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5119:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6139:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6864:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6048:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12680:228;;;;;;;;;;;;;:::i;:::-;;6242:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2717:148;;;;;;;;;;;;;:::i;:::-;;12294:341;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11403:196;;;;;;;;;;;;;:::i;:::-;;4878:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2503:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4961:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5953:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6369:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5046:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3981:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11609:671;;;;;;;;;;;;;:::i;:::-;;6544:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5862:83;5899:13;5932:5;;;;;;;;;;;;;;;;;5925:12;;5862:83;:::o;6695:161::-;6770:4;6787:39;6796:12;:10;:12::i;:::-;6810:7;6819:6;6787:8;:39::i;:::-;6844:4;6837:11;;6695:161;;;;:::o;5119:54::-;;;;:::o;6139:95::-;6192:7;4668:1;4726:2;:13;;;;:::i;:::-;4711:12;:28;;;;:::i;:::-;6212:14;;6139:95;:::o;6864:313::-;6962:4;6979:36;6989:6;6997:9;7008:6;6979:9;:36::i;:::-;7026:121;7035:6;7043:12;:10;:12::i;:::-;7057:89;7095:6;7057:89;;;;;;;;;;;;;;;;;:11;:19;7069:6;7057:19;;;;;;;;;;;;;;;:33;7077:12;:10;:12::i;:::-;7057:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7026:8;:121::i;:::-;7165:4;7158:11;;6864:313;;;;;:::o;6048:83::-;6089:5;4668:1;6107:16;;6048:83;:::o;12680:228::-;12744:10;;;;;;;;;;;12730:24;;:12;:10;:12::i;:::-;:24;;;12722:33;;;;;;12766:20;12787:24;12805:4;12787:9;:24::i;:::-;12766:45;;12838:1;12825:12;:14;12822:71;;;12853:28;12868:12;12853:14;:28::i;:::-;12822:71;12711:197;12680:228::o;6242:119::-;6308:7;6335:9;:18;6345:7;6335:18;;;;;;;;;;;;;;;;6328:25;;6242:119;;;:::o;2717:148::-;2640:12;:10;:12::i;:::-;2630:22;;:6;;;;;;;;;;:22;;;2622:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2824:1:::1;2787:40;;2808:6;::::0;::::1;;;;;;;;2787:40;;;;;;;;;;;;2855:1;2838:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2717:148::o:0;12294:341::-;2640:12;:10;:12::i;:::-;2630:22;;:6;;;;;;;;;;:22;;;2622:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12384:16:::1;12418:12;12403;:27;;;;:::i;:::-;12384:46;;12457:12;;12447:8;:22;;:49;;;;;12483:13;;12472:8;:24;;12447:49;12439:58;;;::::0;::::1;;12522:12;12506:13;:28;;;;12552:12;12543:6;:21;;;;12587:8;12573:12;:22;;;;12619:8;12604:13;:23;;;;12375:260;12294:341:::0;;:::o;11403:196::-;2640:12;:10;:12::i;:::-;2630:22;;:6;;;;;;;;;;:22;;;2622:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4668:1:::1;4726:2;:13;;;;:::i;:::-;4711:12;:28;;;;:::i;:::-;11456:12;:22;;;;4668:1;4726:2;:13;;;;:::i;:::-;4711:12;:28;;;;:::i;:::-;11489:14;:22;;;;11543:5;11522:20;;:26;;;;;;;;;;;;;;;;;;11564:27;4668:1;4726:2;:13;;;;:::i;:::-;4711:12;:28;;;;:::i;:::-;11564:27;;;;;;:::i;:::-;;;;;;;;11403:196::o:0;4878:56::-;;;;:::o;2503:79::-;2541:7;2568:6;;;;;;;;;;;2561:13;;2503:79;:::o;4961:58::-;;;;:::o;5953:87::-;5992:13;6025:7;;;;;;;;;;;;;;;;;6018:14;;5953:87;:::o;6369:167::-;6447:4;6464:42;6474:12;:10;:12::i;:::-;6488:9;6499:6;6464:9;:42::i;:::-;6524:4;6517:11;;6369:167;;;;:::o;5046:58::-;;;;:::o;3981:39::-;;;;;;;;;;;;;:::o;11609:671::-;2640:12;:10;:12::i;:::-;2630:22;;:6;;;;;;;;;;:22;;;2622:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11673:11:::1;;;;;;;;;;;11672:12;11664:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11759:42;11722:15;;:80;;;;;;;;;;;;;;;;;;11813:58;11830:4;11845:15;;;;;;;;;;;4668:1;4726:2;:13;;;;:::i;:::-;4711:12;:28;;;;:::i;:::-;11813:8;:58::i;:::-;11916:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11898:55;;;11962:4;11969:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11898:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11882:13;;:110;;;;;;;;;;;;;;;;;;12003:15;;;;;;;;;;;:31;;;12042:21;12073:4;12079:24;12097:4;12079:9;:24::i;:::-;12104:1;12106::::0;12108:7:::1;:5;:7::i;:::-;12116:15;12003:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12150:13;;;;;;;;;;;12143:29;;;12181:15;;;;;;;;;;;12199:14;12143:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12239:4;12225:11;;:18;;;;;;;;;;;;;;;;;;12268:4;12254:11;;:18;;;;;;;;;;;;;;;;;;11609:671::o:0;6544:143::-;6625:7;6652:11;:18;6664:5;6652:18;;;;;;;;;;;;;;;:27;6671:7;6652:27;;;;;;;;;;;;;;;;6645:34;;6544:143;;;;:::o;258:98::-;311:7;338:10;331:17;;258:98;:::o;7185:335::-;7295:1;7278:19;;:5;:19;;;7270:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7376:1;7357:21;;:7;:21;;;7349:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7458:6;7428:11;:18;7440:5;7428:18;;;;;;;;;;;;;;;:27;7447:7;7428:27;;;;;;;;;;;;;;;:36;;;;7496:7;7480:32;;7489:5;7480:32;;;7505:6;7480:32;;;;;;:::i;:::-;;;;;;;;7185:335;;;:::o;7528:2247::-;7632:1;7616:18;;:4;:18;;;7608:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7709:1;7695:16;;:2;:16;;;7687:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7779:1;7770:6;:10;7762:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7837:17;7879:7;:5;:7::i;:::-;7871:15;;:4;:15;;;;:32;;;;;7896:7;:5;:7::i;:::-;7890:13;;:2;:13;;;;7871:32;:57;;;;;7923:4;7907:21;;:4;:21;;;;7871:57;7867:1552;;;7965:20;;;;;;;;;;;7961:508;;;8026:15;;;;;;;;;;;8012:30;;:2;:30;;;;:62;;;;;8060:13;;;;;;;;;;;8046:28;;:2;:28;;;;8012:62;8008:444;;;8210:12;8137:28;:39;8166:9;8137:39;;;;;;;;;;;;;;;;:85;8101:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;8418:12;8376:28;:39;8405:9;8376:39;;;;;;;;;;;;;;;:54;;;;8008:444;7961:508;8497:13;;;;;;;;;;;8489:21;;:4;:21;;;:55;;;;;8528:15;;;;;;;;;;;8514:30;;:2;:30;;;;8489:55;:83;;;;;8550:18;:22;8569:2;8550:22;;;;;;;;;;;;;;;;;;;;;;;;;8548:24;8489:83;8485:420;;;8612:12;;8602:6;:22;;8594:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8685:76;8757:3;8685:67;8707:15;;8697:9;;:25;8696:55;;8737:14;;8696:55;;;8724:12;;8696:55;8685:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8673:88;;8814:14;;8804:6;8788:13;8798:2;8788:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8780:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8878:9;;:11;;;;;;;;;:::i;:::-;;;;;;8485:420;8930:13;;;;;;;;;;;8924:19;;:2;:19;;;:43;;;;;8962:4;8947:20;;:4;:20;;;;8924:43;8921:174;;;9000:79;9075:3;9000:70;9022:16;;9012:9;;:26;9011:58;;9054:15;;9011:58;;;9040:13;;9011:58;9000:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8988:91;;8921:174;9111:28;9142:24;9160:4;9142:9;:24::i;:::-;9111:55;;9186:6;;;;;;;;;;9185:7;:32;;;;;9204:13;;;;;;;;;;;9196:21;;:2;:21;;;9185:32;:47;;;;;9221:11;;;;;;;;;;;9185:47;:89;;;;;9257:17;;9236:20;:38;9185:89;:121;;;;;9288:18;;9278:9;;:28;9185:121;9181:227;;;9327:65;9342:49;9346:6;9353:37;9357:20;9378:11;;9353:3;:37::i;:::-;9342:3;:49::i;:::-;9327:14;:65::i;:::-;9181:227;7930:1489;7867:1552;9444:1;9434:9;:11;9431:161;;;9484:39;9513:9;9484;:24;9502:4;9484:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9459:9;:24;9477:4;9459:24;;;;;;;;;;;;;;;:64;;;;9564:4;9541:39;;9550:4;9541:39;;;9570:9;9541:39;;;;;;:::i;:::-;;;;;;;;9431:161;9618:27;9638:6;9618:9;:15;9628:4;9618:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9602:9;:15;9612:4;9602:15;;;;;;;;;;;;;;;:43;;;;9670:40;9688:21;9699:9;9688:6;:10;;:21;;;;:::i;:::-;9670:9;:13;9680:2;9670:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9656:9;:13;9666:2;9656:13;;;;;;;;;;;;;;;:54;;;;9741:2;9726:41;;9735:4;9726:41;;;9745:21;9756:9;9745:6;:10;;:21;;;;:::i;:::-;9726:41;;;;;;:::i;:::-;;;;;;;;7597:2178;7528:2247;;;:::o;1395:190::-;1481:7;1514:1;1509;:6;;1517:12;1501:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1541:9;1557:1;1553;:5;;;;:::i;:::-;1541:17;;1576:1;1569:8;;;1395:190;;;;;:::o;9891:550::-;5480:4;5471:6;;:13;;;;;;;;;;;;;;;;;;9961:16:::1;10000:1;9990:6;;9981;:15;;;;:::i;:::-;9980:21;;;;:::i;:::-;9961:40;;10010:18;10040:8;10031:6;:17;;;;:::i;:::-;10010:38;;10057:29;10075:10;10057:16;:29::i;:::-;10095:18;10116:21;10095:42;;10146:21;10218:6;;10202:13;;:22;;;;:::i;:::-;10184:13;;10171:10;:26;;;;:::i;:::-;10170:55;;;;:::i;:::-;10146:79;;10253:1;10237:13;:17;10234:200;;;10265:12;10282:10;;;;;;;;;;;:15;;10305:13;10282:41;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10264:59;;;10336:7;:23;;;;;10358:1;10347:8;:12;10336:23;10332:93;;;10369:45;10382:8;10392:21;10369:12;:45::i;:::-;10332:93;10255:179;10234:200;9952:489;;;;5516:5:::0;5507:6;;:14;;;;;;;;;;;;;;;;;;9891:550;:::o;1593:246::-;1651:7;1680:1;1675;:6;1671:47;;1705:1;1698:8;;;;1671:47;1728:9;1744:1;1740;:5;;;;:::i;:::-;1728:17;;1773:1;1768;1764;:5;;;;:::i;:::-;:10;1756:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1830:1;1823:8;;;1593:246;;;;;:::o;1847:132::-;1905:7;1932:39;1936:1;1939;1932:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1925:46;;1847:132;;;;:::o;9785:98::-;9842:7;9869:1;9867;:3;9866:9;;9874:1;9866:9;;;9872:1;9866:9;9859:16;;9785:98;;;;:::o;1064:179::-;1122:7;1142:9;1158:1;1154;:5;;;;:::i;:::-;1142:17;;1183:1;1178;:6;;1170:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1234:1;1227:8;;;1064:179;;;;:::o;1251:136::-;1309:7;1336:43;1340:1;1343;1336:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1329:50;;1251:136;;;;:::o;10449:472::-;10516:21;10554:1;10540:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10516:40;;10585:4;10567;10572:1;10567:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;10611:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10601:4;10606:1;10601:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;10644:62;10661:4;10676:15;;;;;;;;;;;10694:11;10644:8;:62::i;:::-;10717:15;;;;;;;;;;;:66;;;10798:11;10824:1;10840:4;10867;10887:15;10717:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10505:416;10449:472;:::o;10929:466::-;11000:21;11024:50;11042:4;11057:15;;;;;;;;;;;11024:9;:50::i;:::-;11000:74;;11104:6;11088:13;:22;11085:112;;;11123:62;11140:4;11155:15;;;;;;;;;;;11182:1;11173:11;11123:8;:62::i;:::-;11085:112;11207:15;;;;;;;;;;;:31;;;11246:3;11273:4;11293:6;11314:1;11330;11346:10;;;;;;;;;;;11371:15;11207:180;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10989:406;10929:466;;:::o;1987:189::-;2073:7;2105:1;2101;:5;2108:12;2093:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2132:9;2148:1;2144;:5;;;;:::i;:::-;2132:17;;2167:1;2160:8;;;1987: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:474::-;6088:6;6096;6145:2;6133:9;6124:7;6120:23;6116:32;6113:119;;;6151:79;;:::i;:::-;6113:119;6271:1;6296:53;6341:7;6332:6;6321:9;6317:22;6296:53;:::i;:::-;6286:63;;6242:117;6398:2;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6369:118;6020:474;;;;;:::o;6500:180::-;6548:77;6545:1;6538:88;6645:4;6642:1;6635:15;6669:4;6666:1;6659:15;6686:102;6728:8;6775:5;6772:1;6768:13;6747:34;;6686:102;;;:::o;6794:848::-;6855:5;6862:4;6886:6;6877:15;;6910:5;6901:14;;6924:712;6945:1;6935:8;6932:15;6924:712;;;7040:4;7035:3;7031:14;7025:4;7022:24;7019:50;;;7049:18;;:::i;:::-;7019:50;7099:1;7089:8;7085:16;7082:451;;;7514:4;7507:5;7503:16;7494:25;;7082:451;7564:4;7558;7554:15;7546:23;;7594:32;7617:8;7594:32;:::i;:::-;7582:44;;6924:712;;;6794:848;;;;;;;:::o;7648:1073::-;7702:5;7893:8;7883:40;;7914:1;7905:10;;7916:5;;7883:40;7942:4;7932:36;;7959:1;7950:10;;7961:5;;7932:36;8028:4;8076:1;8071:27;;;;8112:1;8107:191;;;;8021:277;;8071:27;8089:1;8080:10;;8091:5;;;8107:191;8152:3;8142:8;8139:17;8136:43;;;8159:18;;:::i;:::-;8136:43;8208:8;8205:1;8201:16;8192:25;;8243:3;8236:5;8233:14;8230:40;;;8250:18;;:::i;:::-;8230:40;8283:5;;;8021:277;;8407:2;8397:8;8394:16;8388:3;8382:4;8379:13;8375:36;8357:2;8347:8;8344:16;8339:2;8333:4;8330:12;8326:35;8310:111;8307:246;;;8463:8;8457:4;8453:19;8444:28;;8498:3;8491:5;8488:14;8485:40;;;8505:18;;:::i;:::-;8485:40;8538:5;;8307:246;8578:42;8616:3;8606:8;8600:4;8597:1;8578:42;:::i;:::-;8563:57;;;;8652:4;8647:3;8643:14;8636:5;8633:25;8630:51;;;8661:18;;:::i;:::-;8630:51;8710:4;8703:5;8699:16;8690:25;;7648:1073;;;;;;:::o;8727:281::-;8785:5;8809:23;8827:4;8809:23;:::i;:::-;8801:31;;8853:25;8869:8;8853:25;:::i;:::-;8841:37;;8897:104;8934:66;8924:8;8918:4;8897:104;:::i;:::-;8888:113;;8727:281;;;;:::o;9014:410::-;9054:7;9077:20;9095:1;9077:20;:::i;:::-;9072:25;;9111:20;9129:1;9111:20;:::i;:::-;9106:25;;9166:1;9163;9159:9;9188:30;9206:11;9188:30;:::i;:::-;9177:41;;9367:1;9358:7;9354:15;9351:1;9348:22;9328:1;9321:9;9301:83;9278:139;;9397:18;;:::i;:::-;9278:139;9062:362;9014:410;;;;:::o;9430:182::-;9570:34;9566:1;9558:6;9554:14;9547:58;9430:182;:::o;9618:366::-;9760:3;9781:67;9845:2;9840:3;9781:67;:::i;:::-;9774:74;;9857:93;9946:3;9857:93;:::i;:::-;9975:2;9970:3;9966:12;9959:19;;9618:366;;;:::o;9990:419::-;10156:4;10194:2;10183:9;10179:18;10171:26;;10243:9;10237:4;10233:20;10229:1;10218:9;10214:17;10207:47;10271:131;10397:4;10271:131;:::i;:::-;10263:139;;9990:419;;;:::o;10415:191::-;10455:3;10474:20;10492:1;10474:20;:::i;:::-;10469:25;;10508:20;10526:1;10508:20;:::i;:::-;10503:25;;10551:1;10548;10544:9;10537:16;;10572:3;10569:1;10566:10;10563:36;;;10579:18;;:::i;:::-;10563:36;10415:191;;;;:::o;10612:173::-;10752:25;10748:1;10740:6;10736:14;10729:49;10612:173;:::o;10791:366::-;10933:3;10954:67;11018:2;11013:3;10954:67;:::i;:::-;10947:74;;11030:93;11119:3;11030:93;:::i;:::-;11148:2;11143:3;11139:12;11132:19;;10791:366;;;:::o;11163:419::-;11329:4;11367:2;11356:9;11352:18;11344:26;;11416:9;11410:4;11406:20;11402:1;11391:9;11387:17;11380:47;11444:131;11570:4;11444:131;:::i;:::-;11436:139;;11163:419;;;:::o;11588:143::-;11645:5;11676:6;11670:13;11661:22;;11692:33;11719:5;11692:33;:::i;:::-;11588:143;;;;:::o;11737:351::-;11807:6;11856:2;11844:9;11835:7;11831:23;11827:32;11824:119;;;11862:79;;:::i;:::-;11824:119;11982:1;12007:64;12063:7;12054:6;12043:9;12039:22;12007:64;:::i;:::-;11997:74;;11953:128;11737:351;;;;:::o;12094:332::-;12215:4;12253:2;12242:9;12238:18;12230:26;;12266:71;12334:1;12323:9;12319:17;12310:6;12266:71;:::i;:::-;12347:72;12415:2;12404:9;12400:18;12391:6;12347:72;:::i;:::-;12094:332;;;;;:::o;12432:85::-;12477:7;12506:5;12495:16;;12432:85;;;:::o;12523:60::-;12551:3;12572:5;12565:12;;12523:60;;;:::o;12589:158::-;12647:9;12680:61;12698:42;12707:32;12733:5;12707:32;:::i;:::-;12698:42;:::i;:::-;12680:61;:::i;:::-;12667:74;;12589:158;;;:::o;12753:147::-;12848:45;12887:5;12848:45;:::i;:::-;12843:3;12836:58;12753:147;;:::o;12906:807::-;13155:4;13193:3;13182:9;13178:19;13170:27;;13207:71;13275:1;13264:9;13260:17;13251:6;13207:71;:::i;:::-;13288:72;13356:2;13345:9;13341:18;13332:6;13288:72;:::i;:::-;13370:80;13446:2;13435:9;13431:18;13422:6;13370:80;:::i;:::-;13460;13536:2;13525:9;13521:18;13512:6;13460:80;:::i;:::-;13550:73;13618:3;13607:9;13603:19;13594:6;13550:73;:::i;:::-;13633;13701:3;13690:9;13686:19;13677:6;13633:73;:::i;:::-;12906:807;;;;;;;;;:::o;13719:143::-;13776:5;13807:6;13801:13;13792:22;;13823:33;13850:5;13823:33;:::i;:::-;13719:143;;;;:::o;13868:663::-;13956:6;13964;13972;14021:2;14009:9;14000:7;13996:23;13992:32;13989:119;;;14027:79;;:::i;:::-;13989:119;14147:1;14172:64;14228:7;14219:6;14208:9;14204:22;14172:64;:::i;:::-;14162:74;;14118:128;14285:2;14311:64;14367:7;14358:6;14347:9;14343:22;14311:64;:::i;:::-;14301:74;;14256:129;14424:2;14450:64;14506:7;14497:6;14486:9;14482:22;14450:64;:::i;:::-;14440:74;;14395:129;13868:663;;;;;:::o;14537:332::-;14658:4;14696:2;14685:9;14681:18;14673:26;;14709:71;14777:1;14766:9;14762:17;14753:6;14709:71;:::i;:::-;14790:72;14858:2;14847:9;14843:18;14834:6;14790:72;:::i;:::-;14537:332;;;;;:::o;14875:116::-;14945:21;14960:5;14945:21;:::i;:::-;14938:5;14935:32;14925:60;;14981:1;14978;14971:12;14925:60;14875:116;:::o;14997:137::-;15051:5;15082:6;15076:13;15067:22;;15098:30;15122:5;15098:30;:::i;:::-;14997:137;;;;:::o;15140:345::-;15207:6;15256:2;15244:9;15235:7;15231:23;15227:32;15224:119;;;15262:79;;:::i;:::-;15224:119;15382:1;15407:61;15460:7;15451:6;15440:9;15436:22;15407:61;:::i;:::-;15397:71;;15353:125;15140:345;;;;:::o;15491:223::-;15631:34;15627:1;15619:6;15615:14;15608:58;15700:6;15695:2;15687:6;15683:15;15676:31;15491:223;:::o;15720:366::-;15862:3;15883:67;15947:2;15942:3;15883:67;:::i;:::-;15876:74;;15959:93;16048:3;15959:93;:::i;:::-;16077:2;16072:3;16068:12;16061:19;;15720:366;;;:::o;16092:419::-;16258:4;16296:2;16285:9;16281:18;16273:26;;16345:9;16339:4;16335:20;16331:1;16320:9;16316:17;16309:47;16373:131;16499:4;16373:131;:::i;:::-;16365:139;;16092:419;;;:::o;16517:221::-;16657:34;16653:1;16645:6;16641:14;16634:58;16726:4;16721:2;16713:6;16709:15;16702:29;16517:221;:::o;16744:366::-;16886:3;16907:67;16971:2;16966:3;16907:67;:::i;:::-;16900:74;;16983:93;17072:3;16983:93;:::i;:::-;17101:2;17096:3;17092:12;17085:19;;16744:366;;;:::o;17116:419::-;17282:4;17320:2;17309:9;17305:18;17297:26;;17369:9;17363:4;17359:20;17355:1;17344:9;17340:17;17333:47;17397:131;17523:4;17397:131;:::i;:::-;17389:139;;17116:419;;;:::o;17541:224::-;17681:34;17677:1;17669:6;17665:14;17658:58;17750:7;17745:2;17737:6;17733:15;17726:32;17541:224;:::o;17771:366::-;17913:3;17934:67;17998:2;17993:3;17934:67;:::i;:::-;17927:74;;18010:93;18099:3;18010:93;:::i;:::-;18128:2;18123:3;18119:12;18112:19;;17771:366;;;:::o;18143:419::-;18309:4;18347:2;18336:9;18332:18;18324:26;;18396:9;18390:4;18386:20;18382:1;18371:9;18367:17;18360:47;18424:131;18550:4;18424:131;:::i;:::-;18416:139;;18143:419;;;:::o;18568:222::-;18708:34;18704:1;18696:6;18692:14;18685:58;18777:5;18772:2;18764:6;18760:15;18753:30;18568:222;:::o;18796:366::-;18938:3;18959:67;19023:2;19018:3;18959:67;:::i;:::-;18952:74;;19035:93;19124:3;19035:93;:::i;:::-;19153:2;19148:3;19144:12;19137:19;;18796:366;;;:::o;19168:419::-;19334:4;19372:2;19361:9;19357:18;19349:26;;19421:9;19415:4;19411:20;19407:1;19396:9;19392:17;19385:47;19449:131;19575:4;19449:131;:::i;:::-;19441:139;;19168:419;;;:::o;19593:228::-;19733:34;19729:1;19721:6;19717:14;19710:58;19802:11;19797:2;19789:6;19785:15;19778:36;19593:228;:::o;19827:366::-;19969:3;19990:67;20054:2;20049:3;19990:67;:::i;:::-;19983:74;;20066:93;20155:3;20066:93;:::i;:::-;20184:2;20179:3;20175:12;20168:19;;19827:366;;;:::o;20199:419::-;20365:4;20403:2;20392:9;20388:18;20380:26;;20452:9;20446:4;20442:20;20438:1;20427:9;20423:17;20416:47;20480:131;20606:4;20480:131;:::i;:::-;20472:139;;20199:419;;;:::o;20624:297::-;20764:34;20760:1;20752:6;20748:14;20741:58;20833:34;20828:2;20820:6;20816:15;20809:59;20902:11;20897:2;20889:6;20885:15;20878:36;20624:297;:::o;20927:366::-;21069:3;21090:67;21154:2;21149:3;21090:67;:::i;:::-;21083:74;;21166:93;21255:3;21166:93;:::i;:::-;21284:2;21279:3;21275:12;21268:19;;20927:366;;;:::o;21299:419::-;21465:4;21503:2;21492:9;21488:18;21480:26;;21552:9;21546:4;21542:20;21538:1;21527:9;21523:17;21516:47;21580:131;21706:4;21580:131;:::i;:::-;21572:139;;21299:419;;;:::o;21724:175::-;21864:27;21860:1;21852:6;21848:14;21841:51;21724:175;:::o;21905:366::-;22047:3;22068:67;22132:2;22127:3;22068:67;:::i;:::-;22061:74;;22144:93;22233:3;22144:93;:::i;:::-;22262:2;22257:3;22253:12;22246:19;;21905:366;;;:::o;22277:419::-;22443:4;22481:2;22470:9;22466:18;22458:26;;22530:9;22524:4;22520:20;22516:1;22505:9;22501:17;22494:47;22558:131;22684:4;22558:131;:::i;:::-;22550:139;;22277:419;;;:::o;22702:176::-;22842:28;22838:1;22830:6;22826:14;22819:52;22702:176;:::o;22884:366::-;23026:3;23047:67;23111:2;23106:3;23047:67;:::i;:::-;23040:74;;23123:93;23212:3;23123:93;:::i;:::-;23241:2;23236:3;23232:12;23225:19;;22884:366;;;:::o;23256:419::-;23422:4;23460:2;23449:9;23445:18;23437:26;;23509:9;23503:4;23499:20;23495:1;23484:9;23480:17;23473:47;23537:131;23663:4;23537:131;:::i;:::-;23529:139;;23256:419;;;:::o;23681:233::-;23720:3;23743:24;23761:5;23743:24;:::i;:::-;23734:33;;23789:66;23782:5;23779:77;23776:103;;23859:18;;:::i;:::-;23776:103;23906:1;23899:5;23895:13;23888:20;;23681:233;;;:::o;23920:194::-;23960:4;23980:20;23998:1;23980:20;:::i;:::-;23975:25;;24014:20;24032:1;24014:20;:::i;:::-;24009:25;;24058:1;24055;24051:9;24043:17;;24082:1;24076:4;24073:11;24070:37;;;24087:18;;:::i;:::-;24070:37;23920:194;;;;:::o;24120:180::-;24168:77;24165:1;24158:88;24265:4;24262:1;24255:15;24289:4;24286:1;24279:15;24306:185;24346:1;24363:20;24381:1;24363:20;:::i;:::-;24358:25;;24397:20;24415:1;24397:20;:::i;:::-;24392:25;;24436:1;24426:35;;24441:18;;:::i;:::-;24426:35;24483:1;24480;24476:9;24471:14;;24306:185;;;;:::o;24497:147::-;24598:11;24635:3;24620:18;;24497:147;;;;:::o;24650:114::-;;:::o;24770:398::-;24929:3;24950:83;25031:1;25026:3;24950:83;:::i;:::-;24943:90;;25042:93;25131:3;25042:93;:::i;:::-;25160:1;25155:3;25151:11;25144:18;;24770:398;;;:::o;25174:379::-;25358:3;25380:147;25523:3;25380:147;:::i;:::-;25373:154;;25544:3;25537:10;;25174:379;;;:::o;25559:220::-;25699:34;25695:1;25687:6;25683:14;25676:58;25768:3;25763:2;25755:6;25751:15;25744:28;25559:220;:::o;25785:366::-;25927:3;25948:67;26012:2;26007:3;25948:67;:::i;:::-;25941:74;;26024:93;26113:3;26024:93;:::i;:::-;26142:2;26137:3;26133:12;26126:19;;25785:366;;;:::o;26157:419::-;26323:4;26361:2;26350:9;26346:18;26338:26;;26410:9;26404:4;26400:20;26396:1;26385:9;26381:17;26374:47;26438:131;26564:4;26438:131;:::i;:::-;26430:139;;26157:419;;;:::o;26582:177::-;26722:29;26718:1;26710:6;26706:14;26699:53;26582:177;:::o;26765:366::-;26907:3;26928:67;26992:2;26987:3;26928:67;:::i;:::-;26921:74;;27004:93;27093:3;27004:93;:::i;:::-;27122:2;27117:3;27113:12;27106:19;;26765:366;;;:::o;27137:419::-;27303:4;27341:2;27330:9;27326:18;27318:26;;27390:9;27384:4;27380:20;27376:1;27365:9;27361:17;27354:47;27418:131;27544:4;27418:131;:::i;:::-;27410:139;;27137:419;;;:::o;27562:180::-;27610:77;27607:1;27600:88;27707:4;27704:1;27697:15;27731:4;27728:1;27721:15;27748:180;27796:77;27793:1;27786:88;27893:4;27890:1;27883:15;27917:4;27914:1;27907:15;27934:114;28001:6;28035:5;28029:12;28019:22;;27934:114;;;:::o;28054:184::-;28153:11;28187:6;28182:3;28175:19;28227:4;28222:3;28218:14;28203:29;;28054:184;;;;:::o;28244:132::-;28311:4;28334:3;28326:11;;28364:4;28359:3;28355:14;28347:22;;28244:132;;;:::o;28382:108::-;28459:24;28477:5;28459:24;:::i;:::-;28454:3;28447:37;28382:108;;:::o;28496:179::-;28565:10;28586:46;28628:3;28620:6;28586:46;:::i;:::-;28664:4;28659:3;28655:14;28641:28;;28496:179;;;;:::o;28681:113::-;28751:4;28783;28778:3;28774:14;28766:22;;28681:113;;;:::o;28830:732::-;28949:3;28978:54;29026:5;28978:54;:::i;:::-;29048:86;29127:6;29122:3;29048:86;:::i;:::-;29041:93;;29158:56;29208:5;29158:56;:::i;:::-;29237:7;29268:1;29253:284;29278:6;29275:1;29272:13;29253:284;;;29354:6;29348:13;29381:63;29440:3;29425:13;29381:63;:::i;:::-;29374:70;;29467:60;29520:6;29467:60;:::i;:::-;29457:70;;29313:224;29300:1;29297;29293:9;29288:14;;29253:284;;;29257:14;29553:3;29546:10;;28954:608;;;28830:732;;;;:::o;29568:831::-;29831:4;29869:3;29858:9;29854:19;29846:27;;29883:71;29951:1;29940:9;29936:17;29927:6;29883:71;:::i;:::-;29964:80;30040:2;30029:9;30025:18;30016:6;29964:80;:::i;:::-;30091:9;30085:4;30081:20;30076:2;30065:9;30061:18;30054:48;30119:108;30222:4;30213:6;30119:108;:::i;:::-;30111:116;;30237:72;30305:2;30294:9;30290:18;30281:6;30237:72;:::i;:::-;30319:73;30387:3;30376:9;30372:19;30363:6;30319:73;:::i;:::-;29568:831;;;;;;;;:::o;30405:142::-;30455:9;30488:53;30506:34;30515:24;30533:5;30515:24;:::i;:::-;30506:34;:::i;:::-;30488:53;:::i;:::-;30475:66;;30405:142;;;:::o;30553:126::-;30603:9;30636:37;30667:5;30636:37;:::i;:::-;30623:50;;30553:126;;;:::o;30685:134::-;30743:9;30776:37;30807:5;30776:37;:::i;:::-;30763:50;;30685:134;;;:::o;30825:147::-;30920:45;30959:5;30920:45;:::i;:::-;30915:3;30908:58;30825:147;;:::o;30978:823::-;31235:4;31273:3;31262:9;31258:19;31250:27;;31287:71;31355:1;31344:9;31340:17;31331:6;31287:71;:::i;:::-;31368:72;31436:2;31425:9;31421:18;31412:6;31368:72;:::i;:::-;31450:80;31526:2;31515:9;31511:18;31502:6;31450:80;:::i;:::-;31540;31616:2;31605:9;31601:18;31592:6;31540:80;:::i;:::-;31630:81;31706:3;31695:9;31691:19;31682:6;31630:81;:::i;:::-;31721:73;31789:3;31778:9;31774:19;31765:6;31721:73;:::i;:::-;30978:823;;;;;;;;;:::o

Swarm Source

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