ETH Price: $2,446.85 (+1.91%)

Token

HEDZ By Matt Furie (HEDZ)
 

Overview

Max Total Supply

1,000,000,000 HEDZ

Holders

113

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
18,060,493.629794065 HEDZ

Value
$0.00
0x804e197afe806eee62580f5d49800dcc55d792f9
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:
HEDZ

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**
// SPDX-License-Identifier: UNLICENSED

Hedz is a collection of 1,000 NFTs from the illustrious creator of Pepe the frog, Matt Furie. 

Telegram: https://t.me/HedzByMattFurie
Web: https://HedzByMattFurie.com/
Twitter: https://twitter.com/HedzByMattFurie
*/
pragma solidity 0.8.7;
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 HEDZ 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 => bool) private bots;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=22;
    uint256 private _initialSellTax=22;
    uint256 private _finalBuyTax=1;
    uint256 private _finalSellTax=1;
    uint256 private _reduceBuyTaxAt=20;
    uint256 private _reduceSellTaxAt=20;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"HEDZ By Matt Furie ";
    string private constant _symbol = unicode"HEDZ";
    uint256 public _maxTxAmount = 10000000 * 10**_decimals;
    uint256 public _maxWalletSize = 10000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 1000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 10000000 * 10**_decimals;

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

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

    constructor () {
        _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()) {
            require(!bots[from] && !bots[to]);
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

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

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

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

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

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


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

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

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

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

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }
    }

    function isBot(address a) public view returns (bool){
      return bots[a];
    }

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

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

    receive() external payable {}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"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"}]

60806040526001600660006101000a81548160ff0219169083151502179055506016600755601660085560016009556001600a556014600b556014600c556014600d556000600e556009600a6200005791906200051a565b6298968062000067919062000657565b600f556009600a6200007a91906200051a565b629896806200008a919062000657565b6010556009600a6200009d91906200051a565b620f4240620000ad919062000657565b6011556009600a620000c091906200051a565b62989680620000d0919062000657565b6012556000601460156101000a81548160ff0219169083151502179055506000601460166101000a81548160ff0219169083151502179055503480156200011657600080fd5b506000620001296200046060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001d76200046060201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200022791906200051a565b633b9aca0062000238919062000657565b600160006200024c6200046060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002a06200046860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003d36200046060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200043291906200051a565b633b9aca0062000443919062000657565b604051620004529190620004a2565b60405180910390a36200070b565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200049c81620006b8565b82525050565b6000602082019050620004b9600083018462000491565b92915050565b6000808291508390505b60018511156200051157808604811115620004e957620004e8620006cf565b5b6001851615620004f95780820291505b80810290506200050985620006fe565b9450620004c9565b94509492505050565b60006200052782620006b8565b91506200053483620006c2565b9250620005637fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200056b565b905092915050565b6000826200057d576001905062000650565b816200058d576000905062000650565b8160018114620005a65760028114620005b157620005e7565b600191505062000650565b60ff841115620005c657620005c5620006cf565b5b8360020a915084821115620005e057620005df620006cf565b5b5062000650565b5060208310610133831016604e8410600b8410161715620006215782820a9050838111156200061b576200061a620006cf565b5b62000650565b620006308484846001620004bf565b925090508184048111156200064a5762000649620006cf565b5b81810290505b9392505050565b60006200066482620006b8565b91506200067183620006b8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620006ad57620006ac620006cf565b5b828202905092915050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b613751806200071b6000396000f3fe6080604052600436106101445760003560e01c8063751039fc116100b6578063bf474bed1161006f578063bf474bed14610447578063c876d0b914610472578063c9567bf91461049d578063d34628cc146104b4578063dd62ed3e146104dd578063ec1f3f631461051a5761014b565b8063751039fc146103475780637d1db4a51461035e5780638da5cb5b146103895780638f9a55c0146103b457806395d89b41146103df578063a9059cbb1461040a5761014b565b8063313ce56711610108578063313ce5671461024b57806331c2d847146102765780633bbac5791461029f57806351bc3c85146102dc57806370a08231146102f3578063715018a6146103305761014b565b806306fdde0314610150578063095ea7b31461017b5780630faee56f146101b857806318160ddd146101e357806323b872dd1461020e5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610543565b6040516101729190612c32565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190612766565b610580565b6040516101af9190612c17565b60405180910390f35b3480156101c457600080fd5b506101cd61059e565b6040516101da9190612dd4565b60405180910390f35b3480156101ef57600080fd5b506101f86105a4565b6040516102059190612dd4565b60405180910390f35b34801561021a57600080fd5b5061023560048036038101906102309190612713565b6105c8565b6040516102429190612c17565b60405180910390f35b34801561025757600080fd5b506102606106a1565b60405161026d9190612e49565b60405180910390f35b34801561028257600080fd5b5061029d600480360381019061029891906127a6565b6106aa565b005b3480156102ab57600080fd5b506102c660048036038101906102c19190612679565b6107d4565b6040516102d39190612c17565b60405180910390f35b3480156102e857600080fd5b506102f161082a565b005b3480156102ff57600080fd5b5061031a60048036038101906103159190612679565b6108c7565b6040516103279190612dd4565b60405180910390f35b34801561033c57600080fd5b50610345610910565b005b34801561035357600080fd5b5061035c610a63565b005b34801561036a57600080fd5b50610373610bae565b6040516103809190612dd4565b60405180910390f35b34801561039557600080fd5b5061039e610bb4565b6040516103ab9190612b49565b60405180910390f35b3480156103c057600080fd5b506103c9610bdd565b6040516103d69190612dd4565b60405180910390f35b3480156103eb57600080fd5b506103f4610be3565b6040516104019190612c32565b60405180910390f35b34801561041657600080fd5b50610431600480360381019061042c9190612766565b610c20565b60405161043e9190612c17565b60405180910390f35b34801561045357600080fd5b5061045c610c3e565b6040516104699190612dd4565b60405180910390f35b34801561047e57600080fd5b50610487610c44565b6040516104949190612c17565b60405180910390f35b3480156104a957600080fd5b506104b2610c57565b005b3480156104c057600080fd5b506104db60048036038101906104d691906127a6565b6111d7565b005b3480156104e957600080fd5b5061050460048036038101906104ff91906126d3565b611301565b6040516105119190612dd4565b60405180910390f35b34801561052657600080fd5b50610541600480360381019061053c919061281c565b611388565b005b60606040518060400160405280601381526020017f4845445a204279204d6174742046757269652000000000000000000000000000815250905090565b600061059461058d611417565b848461141f565b6001905092915050565b60125481565b60006009600a6105b49190612fe4565b633b9aca006105c39190613102565b905090565b60006105d58484846115ea565b610696846105e1611417565b610691856040518060600160405280602881526020016136f460289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610647611417565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120319092919063ffffffff16565b61141f565b600190509392505050565b60006009905090565b6106b2611417565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461073f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073690612d14565b60405180910390fd5b60005b81518110156107d05760006004600084848151811061076457610763613302565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806107c89061325b565b915050610742565b5050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661086b611417565b73ffffffffffffffffffffffffffffffffffffffff161461088b57600080fd5b6000610896306108c7565b905060008111156108ab576108aa81612095565b5b600047905060008111156108c3576108c28161231d565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610918611417565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099c90612d14565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a6b611417565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aef90612d14565b60405180910390fd5b6009600a610b069190612fe4565b633b9aca00610b159190613102565b600f819055506009600a610b299190612fe4565b633b9aca00610b389190613102565b6010819055506000600660006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610b889190612fe4565b633b9aca00610b979190613102565b604051610ba49190612dd4565b60405180910390a1565b600f5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600481526020017f4845445a00000000000000000000000000000000000000000000000000000000815250905090565b6000610c34610c2d611417565b84846115ea565b6001905092915050565b60115481565b600660009054906101000a900460ff1681565b610c5f611417565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce390612d14565b60405180910390fd5b60148054906101000a900460ff1615610d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3190612db4565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610dd830601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610dc49190612fe4565b633b9aca00610dd39190613102565b61141f565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610e4057600080fd5b505afa158015610e54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7891906126a6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610efc57600080fd5b505afa158015610f10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3491906126a6565b6040518363ffffffff1660e01b8152600401610f51929190612b64565b602060405180830381600087803b158015610f6b57600080fd5b505af1158015610f7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa391906126a6565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061102c306108c7565b600080611037610bb4565b426040518863ffffffff1660e01b815260040161105996959493929190612bb6565b6060604051808303818588803b15801561107257600080fd5b505af1158015611086573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110ab9190612849565b505050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161114d929190612b8d565b602060405180830381600087803b15801561116757600080fd5b505af115801561117b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119f91906127ef565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b6111df611417565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461126c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126390612d14565b60405180910390fd5b60005b81518110156112fd5760016004600084848151811061129157611290613302565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806112f59061325b565b91505061126f565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113c9611417565b73ffffffffffffffffffffffffffffffffffffffff16146113e957600080fd5b60095481111580156113fd5750600a548111155b61140657600080fd5b8060098190555080600a8190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561148f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148690612d94565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f690612c94565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115dd9190612dd4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561165a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165190612d54565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c190612c54565b60405180910390fd5b6000811161170d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170490612d34565b60405180910390fd5b6000611717610bb4565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117855750611755610bb4565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d7457600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561182e5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61183757600080fd5b6118736064611865600b54600e541161185257600754611856565b6009545b8561238990919063ffffffff16565b61240490919063ffffffff16565b9050600660009054906101000a900460ff1615611a0257601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119365750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a015743600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106119bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b390612cd4565b60405180910390fd5b43600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611aad5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b035750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611bbe57600f54821115611b4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4490612c74565b60405180910390fd5b60105482611b5a856108c7565b611b649190612f0a565b1115611ba5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9c90612d74565b60405180910390fd5b600e6000815480929190611bb89061325b565b91905055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c4757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611c8b57611c886064611c7a600c54600e5411611c6757600854611c6b565b600a545b8561238990919063ffffffff16565b61240490919063ffffffff16565b90505b6000611c96306108c7565b9050601460159054906101000a900460ff16158015611d025750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611d1a5750601460169054906101000a900460ff165b8015611d27575060115481115b8015611d365750600d54600e54115b15611d7257611d58611d5384611d4e8460125461244e565b61244e565b612095565b60004790506000811115611d7057611d6f4761231d565b5b505b505b6000811115611e7857611dcf81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246790919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e6f9190612dd4565b60405180910390a35b611eca82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f71611f2382846124c590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246790919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61201684866124c590919063ffffffff16565b6040516120239190612dd4565b60405180910390a350505050565b6000838311158290612079576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120709190612c32565b60405180910390fd5b5060008385612088919061315c565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156120cd576120cc613331565b5b6040519080825280602002602001820160405280156120fb5781602001602082028036833780820191505090505b509050308160008151811061211357612112613302565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156121b557600080fd5b505afa1580156121c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ed91906126a6565b8160018151811061220157612200613302565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061226830601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461141f565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122cc959493929190612def565b600060405180830381600087803b1580156122e657600080fd5b505af11580156122fa573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612385573d6000803e3d6000fd5b5050565b60008083141561239c57600090506123fe565b600082846123aa9190613102565b90508284826123b99190612f60565b146123f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f090612cf4565b60405180910390fd5b809150505b92915050565b600061244683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061250f565b905092915050565b600081831161245d578261245f565b815b905092915050565b60008082846124769190612f0a565b9050838110156124bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b290612cb4565b60405180910390fd5b8091505092915050565b600061250783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612031565b905092915050565b60008083118290612556576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254d9190612c32565b60405180910390fd5b50600083856125659190612f60565b9050809150509392505050565b600061258561258084612e89565b612e64565b905080838252602082019050828560208602820111156125a8576125a7613365565b5b60005b858110156125d857816125be88826125e2565b8452602084019350602083019250506001810190506125ab565b5050509392505050565b6000813590506125f1816136ae565b92915050565b600081519050612606816136ae565b92915050565b600082601f83011261262157612620613360565b5b8135612631848260208601612572565b91505092915050565b600081519050612649816136c5565b92915050565b60008135905061265e816136dc565b92915050565b600081519050612673816136dc565b92915050565b60006020828403121561268f5761268e61336f565b5b600061269d848285016125e2565b91505092915050565b6000602082840312156126bc576126bb61336f565b5b60006126ca848285016125f7565b91505092915050565b600080604083850312156126ea576126e961336f565b5b60006126f8858286016125e2565b9250506020612709858286016125e2565b9150509250929050565b60008060006060848603121561272c5761272b61336f565b5b600061273a868287016125e2565b935050602061274b868287016125e2565b925050604061275c8682870161264f565b9150509250925092565b6000806040838503121561277d5761277c61336f565b5b600061278b858286016125e2565b925050602061279c8582860161264f565b9150509250929050565b6000602082840312156127bc576127bb61336f565b5b600082013567ffffffffffffffff8111156127da576127d961336a565b5b6127e68482850161260c565b91505092915050565b6000602082840312156128055761280461336f565b5b60006128138482850161263a565b91505092915050565b6000602082840312156128325761283161336f565b5b60006128408482850161264f565b91505092915050565b6000806000606084860312156128625761286161336f565b5b600061287086828701612664565b935050602061288186828701612664565b925050604061289286828701612664565b9150509250925092565b60006128a883836128b4565b60208301905092915050565b6128bd81613190565b82525050565b6128cc81613190565b82525050565b60006128dd82612ec5565b6128e78185612ee8565b93506128f283612eb5565b8060005b8381101561292357815161290a888261289c565b975061291583612edb565b9250506001810190506128f6565b5085935050505092915050565b612939816131a2565b82525050565b612948816131e5565b82525050565b600061295982612ed0565b6129638185612ef9565b93506129738185602086016131f7565b61297c81613374565b840191505092915050565b6000612994602383612ef9565b915061299f82613392565b604082019050919050565b60006129b7601983612ef9565b91506129c2826133e1565b602082019050919050565b60006129da602283612ef9565b91506129e58261340a565b604082019050919050565b60006129fd601b83612ef9565b9150612a0882613459565b602082019050919050565b6000612a20604983612ef9565b9150612a2b82613482565b606082019050919050565b6000612a43602183612ef9565b9150612a4e826134f7565b604082019050919050565b6000612a66602083612ef9565b9150612a7182613546565b602082019050919050565b6000612a89602983612ef9565b9150612a948261356f565b604082019050919050565b6000612aac602583612ef9565b9150612ab7826135be565b604082019050919050565b6000612acf601a83612ef9565b9150612ada8261360d565b602082019050919050565b6000612af2602483612ef9565b9150612afd82613636565b604082019050919050565b6000612b15601783612ef9565b9150612b2082613685565b602082019050919050565b612b34816131ce565b82525050565b612b43816131d8565b82525050565b6000602082019050612b5e60008301846128c3565b92915050565b6000604082019050612b7960008301856128c3565b612b8660208301846128c3565b9392505050565b6000604082019050612ba260008301856128c3565b612baf6020830184612b2b565b9392505050565b600060c082019050612bcb60008301896128c3565b612bd86020830188612b2b565b612be5604083018761293f565b612bf2606083018661293f565b612bff60808301856128c3565b612c0c60a0830184612b2b565b979650505050505050565b6000602082019050612c2c6000830184612930565b92915050565b60006020820190508181036000830152612c4c818461294e565b905092915050565b60006020820190508181036000830152612c6d81612987565b9050919050565b60006020820190508181036000830152612c8d816129aa565b9050919050565b60006020820190508181036000830152612cad816129cd565b9050919050565b60006020820190508181036000830152612ccd816129f0565b9050919050565b60006020820190508181036000830152612ced81612a13565b9050919050565b60006020820190508181036000830152612d0d81612a36565b9050919050565b60006020820190508181036000830152612d2d81612a59565b9050919050565b60006020820190508181036000830152612d4d81612a7c565b9050919050565b60006020820190508181036000830152612d6d81612a9f565b9050919050565b60006020820190508181036000830152612d8d81612ac2565b9050919050565b60006020820190508181036000830152612dad81612ae5565b9050919050565b60006020820190508181036000830152612dcd81612b08565b9050919050565b6000602082019050612de96000830184612b2b565b92915050565b600060a082019050612e046000830188612b2b565b612e11602083018761293f565b8181036040830152612e2381866128d2565b9050612e3260608301856128c3565b612e3f6080830184612b2b565b9695505050505050565b6000602082019050612e5e6000830184612b3a565b92915050565b6000612e6e612e7f565b9050612e7a828261322a565b919050565b6000604051905090565b600067ffffffffffffffff821115612ea457612ea3613331565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612f15826131ce565b9150612f20836131ce565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612f5557612f546132a4565b5b828201905092915050565b6000612f6b826131ce565b9150612f76836131ce565b925082612f8657612f856132d3565b5b828204905092915050565b6000808291508390505b6001851115612fdb57808604811115612fb757612fb66132a4565b5b6001851615612fc65780820291505b8081029050612fd485613385565b9450612f9b565b94509492505050565b6000612fef826131ce565b9150612ffa836131d8565b92506130277fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461302f565b905092915050565b60008261303f57600190506130fb565b8161304d57600090506130fb565b8160018114613063576002811461306d5761309c565b60019150506130fb565b60ff84111561307f5761307e6132a4565b5b8360020a915084821115613096576130956132a4565b5b506130fb565b5060208310610133831016604e8410600b84101617156130d15782820a9050838111156130cc576130cb6132a4565b5b6130fb565b6130de8484846001612f91565b925090508184048111156130f5576130f46132a4565b5b81810290505b9392505050565b600061310d826131ce565b9150613118836131ce565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613151576131506132a4565b5b828202905092915050565b6000613167826131ce565b9150613172836131ce565b925082821015613185576131846132a4565b5b828203905092915050565b600061319b826131ae565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006131f0826131ce565b9050919050565b60005b838110156132155780820151818401526020810190506131fa565b83811115613224576000848401525b50505050565b61323382613374565b810181811067ffffffffffffffff8211171561325257613251613331565b5b80604052505050565b6000613266826131ce565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613299576132986132a4565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6136b781613190565b81146136c257600080fd5b50565b6136ce816131a2565b81146136d957600080fd5b50565b6136e5816131ce565b81146136f057600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ea2548722a9d7bb6aab44babb788cb7ef88327bbf6f2698c73699eec8d163ed964736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101445760003560e01c8063751039fc116100b6578063bf474bed1161006f578063bf474bed14610447578063c876d0b914610472578063c9567bf91461049d578063d34628cc146104b4578063dd62ed3e146104dd578063ec1f3f631461051a5761014b565b8063751039fc146103475780637d1db4a51461035e5780638da5cb5b146103895780638f9a55c0146103b457806395d89b41146103df578063a9059cbb1461040a5761014b565b8063313ce56711610108578063313ce5671461024b57806331c2d847146102765780633bbac5791461029f57806351bc3c85146102dc57806370a08231146102f3578063715018a6146103305761014b565b806306fdde0314610150578063095ea7b31461017b5780630faee56f146101b857806318160ddd146101e357806323b872dd1461020e5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610543565b6040516101729190612c32565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190612766565b610580565b6040516101af9190612c17565b60405180910390f35b3480156101c457600080fd5b506101cd61059e565b6040516101da9190612dd4565b60405180910390f35b3480156101ef57600080fd5b506101f86105a4565b6040516102059190612dd4565b60405180910390f35b34801561021a57600080fd5b5061023560048036038101906102309190612713565b6105c8565b6040516102429190612c17565b60405180910390f35b34801561025757600080fd5b506102606106a1565b60405161026d9190612e49565b60405180910390f35b34801561028257600080fd5b5061029d600480360381019061029891906127a6565b6106aa565b005b3480156102ab57600080fd5b506102c660048036038101906102c19190612679565b6107d4565b6040516102d39190612c17565b60405180910390f35b3480156102e857600080fd5b506102f161082a565b005b3480156102ff57600080fd5b5061031a60048036038101906103159190612679565b6108c7565b6040516103279190612dd4565b60405180910390f35b34801561033c57600080fd5b50610345610910565b005b34801561035357600080fd5b5061035c610a63565b005b34801561036a57600080fd5b50610373610bae565b6040516103809190612dd4565b60405180910390f35b34801561039557600080fd5b5061039e610bb4565b6040516103ab9190612b49565b60405180910390f35b3480156103c057600080fd5b506103c9610bdd565b6040516103d69190612dd4565b60405180910390f35b3480156103eb57600080fd5b506103f4610be3565b6040516104019190612c32565b60405180910390f35b34801561041657600080fd5b50610431600480360381019061042c9190612766565b610c20565b60405161043e9190612c17565b60405180910390f35b34801561045357600080fd5b5061045c610c3e565b6040516104699190612dd4565b60405180910390f35b34801561047e57600080fd5b50610487610c44565b6040516104949190612c17565b60405180910390f35b3480156104a957600080fd5b506104b2610c57565b005b3480156104c057600080fd5b506104db60048036038101906104d691906127a6565b6111d7565b005b3480156104e957600080fd5b5061050460048036038101906104ff91906126d3565b611301565b6040516105119190612dd4565b60405180910390f35b34801561052657600080fd5b50610541600480360381019061053c919061281c565b611388565b005b60606040518060400160405280601381526020017f4845445a204279204d6174742046757269652000000000000000000000000000815250905090565b600061059461058d611417565b848461141f565b6001905092915050565b60125481565b60006009600a6105b49190612fe4565b633b9aca006105c39190613102565b905090565b60006105d58484846115ea565b610696846105e1611417565b610691856040518060600160405280602881526020016136f460289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610647611417565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120319092919063ffffffff16565b61141f565b600190509392505050565b60006009905090565b6106b2611417565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461073f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073690612d14565b60405180910390fd5b60005b81518110156107d05760006004600084848151811061076457610763613302565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806107c89061325b565b915050610742565b5050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661086b611417565b73ffffffffffffffffffffffffffffffffffffffff161461088b57600080fd5b6000610896306108c7565b905060008111156108ab576108aa81612095565b5b600047905060008111156108c3576108c28161231d565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610918611417565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099c90612d14565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a6b611417565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aef90612d14565b60405180910390fd5b6009600a610b069190612fe4565b633b9aca00610b159190613102565b600f819055506009600a610b299190612fe4565b633b9aca00610b389190613102565b6010819055506000600660006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610b889190612fe4565b633b9aca00610b979190613102565b604051610ba49190612dd4565b60405180910390a1565b600f5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600481526020017f4845445a00000000000000000000000000000000000000000000000000000000815250905090565b6000610c34610c2d611417565b84846115ea565b6001905092915050565b60115481565b600660009054906101000a900460ff1681565b610c5f611417565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce390612d14565b60405180910390fd5b60148054906101000a900460ff1615610d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3190612db4565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610dd830601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610dc49190612fe4565b633b9aca00610dd39190613102565b61141f565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610e4057600080fd5b505afa158015610e54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7891906126a6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610efc57600080fd5b505afa158015610f10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3491906126a6565b6040518363ffffffff1660e01b8152600401610f51929190612b64565b602060405180830381600087803b158015610f6b57600080fd5b505af1158015610f7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa391906126a6565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061102c306108c7565b600080611037610bb4565b426040518863ffffffff1660e01b815260040161105996959493929190612bb6565b6060604051808303818588803b15801561107257600080fd5b505af1158015611086573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110ab9190612849565b505050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161114d929190612b8d565b602060405180830381600087803b15801561116757600080fd5b505af115801561117b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119f91906127ef565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b6111df611417565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461126c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126390612d14565b60405180910390fd5b60005b81518110156112fd5760016004600084848151811061129157611290613302565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806112f59061325b565b91505061126f565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113c9611417565b73ffffffffffffffffffffffffffffffffffffffff16146113e957600080fd5b60095481111580156113fd5750600a548111155b61140657600080fd5b8060098190555080600a8190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561148f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148690612d94565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f690612c94565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115dd9190612dd4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561165a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165190612d54565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c190612c54565b60405180910390fd5b6000811161170d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170490612d34565b60405180910390fd5b6000611717610bb4565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117855750611755610bb4565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d7457600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561182e5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61183757600080fd5b6118736064611865600b54600e541161185257600754611856565b6009545b8561238990919063ffffffff16565b61240490919063ffffffff16565b9050600660009054906101000a900460ff1615611a0257601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119365750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a015743600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106119bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b390612cd4565b60405180910390fd5b43600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611aad5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b035750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611bbe57600f54821115611b4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4490612c74565b60405180910390fd5b60105482611b5a856108c7565b611b649190612f0a565b1115611ba5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9c90612d74565b60405180910390fd5b600e6000815480929190611bb89061325b565b91905055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c4757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611c8b57611c886064611c7a600c54600e5411611c6757600854611c6b565b600a545b8561238990919063ffffffff16565b61240490919063ffffffff16565b90505b6000611c96306108c7565b9050601460159054906101000a900460ff16158015611d025750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611d1a5750601460169054906101000a900460ff165b8015611d27575060115481115b8015611d365750600d54600e54115b15611d7257611d58611d5384611d4e8460125461244e565b61244e565b612095565b60004790506000811115611d7057611d6f4761231d565b5b505b505b6000811115611e7857611dcf81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246790919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e6f9190612dd4565b60405180910390a35b611eca82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f71611f2382846124c590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246790919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61201684866124c590919063ffffffff16565b6040516120239190612dd4565b60405180910390a350505050565b6000838311158290612079576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120709190612c32565b60405180910390fd5b5060008385612088919061315c565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156120cd576120cc613331565b5b6040519080825280602002602001820160405280156120fb5781602001602082028036833780820191505090505b509050308160008151811061211357612112613302565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156121b557600080fd5b505afa1580156121c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ed91906126a6565b8160018151811061220157612200613302565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061226830601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461141f565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122cc959493929190612def565b600060405180830381600087803b1580156122e657600080fd5b505af11580156122fa573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612385573d6000803e3d6000fd5b5050565b60008083141561239c57600090506123fe565b600082846123aa9190613102565b90508284826123b99190612f60565b146123f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f090612cf4565b60405180910390fd5b809150505b92915050565b600061244683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061250f565b905092915050565b600081831161245d578261245f565b815b905092915050565b60008082846124769190612f0a565b9050838110156124bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b290612cb4565b60405180910390fd5b8091505092915050565b600061250783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612031565b905092915050565b60008083118290612556576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254d9190612c32565b60405180910390fd5b50600083856125659190612f60565b9050809150509392505050565b600061258561258084612e89565b612e64565b905080838252602082019050828560208602820111156125a8576125a7613365565b5b60005b858110156125d857816125be88826125e2565b8452602084019350602083019250506001810190506125ab565b5050509392505050565b6000813590506125f1816136ae565b92915050565b600081519050612606816136ae565b92915050565b600082601f83011261262157612620613360565b5b8135612631848260208601612572565b91505092915050565b600081519050612649816136c5565b92915050565b60008135905061265e816136dc565b92915050565b600081519050612673816136dc565b92915050565b60006020828403121561268f5761268e61336f565b5b600061269d848285016125e2565b91505092915050565b6000602082840312156126bc576126bb61336f565b5b60006126ca848285016125f7565b91505092915050565b600080604083850312156126ea576126e961336f565b5b60006126f8858286016125e2565b9250506020612709858286016125e2565b9150509250929050565b60008060006060848603121561272c5761272b61336f565b5b600061273a868287016125e2565b935050602061274b868287016125e2565b925050604061275c8682870161264f565b9150509250925092565b6000806040838503121561277d5761277c61336f565b5b600061278b858286016125e2565b925050602061279c8582860161264f565b9150509250929050565b6000602082840312156127bc576127bb61336f565b5b600082013567ffffffffffffffff8111156127da576127d961336a565b5b6127e68482850161260c565b91505092915050565b6000602082840312156128055761280461336f565b5b60006128138482850161263a565b91505092915050565b6000602082840312156128325761283161336f565b5b60006128408482850161264f565b91505092915050565b6000806000606084860312156128625761286161336f565b5b600061287086828701612664565b935050602061288186828701612664565b925050604061289286828701612664565b9150509250925092565b60006128a883836128b4565b60208301905092915050565b6128bd81613190565b82525050565b6128cc81613190565b82525050565b60006128dd82612ec5565b6128e78185612ee8565b93506128f283612eb5565b8060005b8381101561292357815161290a888261289c565b975061291583612edb565b9250506001810190506128f6565b5085935050505092915050565b612939816131a2565b82525050565b612948816131e5565b82525050565b600061295982612ed0565b6129638185612ef9565b93506129738185602086016131f7565b61297c81613374565b840191505092915050565b6000612994602383612ef9565b915061299f82613392565b604082019050919050565b60006129b7601983612ef9565b91506129c2826133e1565b602082019050919050565b60006129da602283612ef9565b91506129e58261340a565b604082019050919050565b60006129fd601b83612ef9565b9150612a0882613459565b602082019050919050565b6000612a20604983612ef9565b9150612a2b82613482565b606082019050919050565b6000612a43602183612ef9565b9150612a4e826134f7565b604082019050919050565b6000612a66602083612ef9565b9150612a7182613546565b602082019050919050565b6000612a89602983612ef9565b9150612a948261356f565b604082019050919050565b6000612aac602583612ef9565b9150612ab7826135be565b604082019050919050565b6000612acf601a83612ef9565b9150612ada8261360d565b602082019050919050565b6000612af2602483612ef9565b9150612afd82613636565b604082019050919050565b6000612b15601783612ef9565b9150612b2082613685565b602082019050919050565b612b34816131ce565b82525050565b612b43816131d8565b82525050565b6000602082019050612b5e60008301846128c3565b92915050565b6000604082019050612b7960008301856128c3565b612b8660208301846128c3565b9392505050565b6000604082019050612ba260008301856128c3565b612baf6020830184612b2b565b9392505050565b600060c082019050612bcb60008301896128c3565b612bd86020830188612b2b565b612be5604083018761293f565b612bf2606083018661293f565b612bff60808301856128c3565b612c0c60a0830184612b2b565b979650505050505050565b6000602082019050612c2c6000830184612930565b92915050565b60006020820190508181036000830152612c4c818461294e565b905092915050565b60006020820190508181036000830152612c6d81612987565b9050919050565b60006020820190508181036000830152612c8d816129aa565b9050919050565b60006020820190508181036000830152612cad816129cd565b9050919050565b60006020820190508181036000830152612ccd816129f0565b9050919050565b60006020820190508181036000830152612ced81612a13565b9050919050565b60006020820190508181036000830152612d0d81612a36565b9050919050565b60006020820190508181036000830152612d2d81612a59565b9050919050565b60006020820190508181036000830152612d4d81612a7c565b9050919050565b60006020820190508181036000830152612d6d81612a9f565b9050919050565b60006020820190508181036000830152612d8d81612ac2565b9050919050565b60006020820190508181036000830152612dad81612ae5565b9050919050565b60006020820190508181036000830152612dcd81612b08565b9050919050565b6000602082019050612de96000830184612b2b565b92915050565b600060a082019050612e046000830188612b2b565b612e11602083018761293f565b8181036040830152612e2381866128d2565b9050612e3260608301856128c3565b612e3f6080830184612b2b565b9695505050505050565b6000602082019050612e5e6000830184612b3a565b92915050565b6000612e6e612e7f565b9050612e7a828261322a565b919050565b6000604051905090565b600067ffffffffffffffff821115612ea457612ea3613331565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612f15826131ce565b9150612f20836131ce565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612f5557612f546132a4565b5b828201905092915050565b6000612f6b826131ce565b9150612f76836131ce565b925082612f8657612f856132d3565b5b828204905092915050565b6000808291508390505b6001851115612fdb57808604811115612fb757612fb66132a4565b5b6001851615612fc65780820291505b8081029050612fd485613385565b9450612f9b565b94509492505050565b6000612fef826131ce565b9150612ffa836131d8565b92506130277fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461302f565b905092915050565b60008261303f57600190506130fb565b8161304d57600090506130fb565b8160018114613063576002811461306d5761309c565b60019150506130fb565b60ff84111561307f5761307e6132a4565b5b8360020a915084821115613096576130956132a4565b5b506130fb565b5060208310610133831016604e8410600b84101617156130d15782820a9050838111156130cc576130cb6132a4565b5b6130fb565b6130de8484846001612f91565b925090508184048111156130f5576130f46132a4565b5b81810290505b9392505050565b600061310d826131ce565b9150613118836131ce565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613151576131506132a4565b5b828202905092915050565b6000613167826131ce565b9150613172836131ce565b925082821015613185576131846132a4565b5b828203905092915050565b600061319b826131ae565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006131f0826131ce565b9050919050565b60005b838110156132155780820151818401526020810190506131fa565b83811115613224576000848401525b50505050565b61323382613374565b810181811067ffffffffffffffff8211171561325257613251613331565b5b80604052505050565b6000613266826131ce565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613299576132986132a4565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6136b781613190565b81146136c257600080fd5b50565b6136ce816131a2565b81146136d957600080fd5b50565b6136e5816131ce565b81146136f057600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ea2548722a9d7bb6aab44babb788cb7ef88327bbf6f2698c73699eec8d163ed964736f6c63430008070033

Deployed Bytecode Sourcemap

3705:8694:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5644:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6477:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4919:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5921:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6646:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5830:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10839:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11009:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12048:348;;;;;;;;;;;;;:::i;:::-;;6024:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2786:148;;;;;;;;;;;;;:::i;:::-;;10363:196;;;;;;;;;;;;;:::i;:::-;;4731:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2572:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4792:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5735:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6151:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4855:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4091:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11100:671;;;;;;;;;;;;;:::i;:::-;;10667:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6326:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11785:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5644:83;5681:13;5714:5;;;;;;;;;;;;;;;;;5707:12;;5644:83;:::o;6477:161::-;6552:4;6569:39;6578:12;:10;:12::i;:::-;6592:7;6601:6;6569:8;:39::i;:::-;6626:4;6619:11;;6477:161;;;;:::o;4919:52::-;;;;:::o;5921:95::-;5974:7;4534:1;4590:2;:13;;;;:::i;:::-;4577:10;:26;;;;:::i;:::-;5994:14;;5921:95;:::o;6646:313::-;6744:4;6761:36;6771:6;6779:9;6790:6;6761:9;:36::i;:::-;6808:121;6817:6;6825:12;:10;:12::i;:::-;6839:89;6877:6;6839:89;;;;;;;;;;;;;;;;;:11;:19;6851:6;6839:19;;;;;;;;;;;;;;;:33;6859:12;:10;:12::i;:::-;6839:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6808:8;:121::i;:::-;6947:4;6940:11;;6646:313;;;;;:::o;5830:83::-;5871:5;4534:1;5889:16;;5830:83;:::o;10839:162::-;2709:12;:10;:12::i;:::-;2699:22;;:6;;;;;;;;;;:22;;;2691:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10912:6:::1;10907:87;10928:6;:13;10924:1;:17;10907:87;;;10979:5;10961:4;:15;10966:6;10973:1;10966:9;;;;;;;;:::i;:::-;;;;;;;;10961:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10943:3;;;;;:::i;:::-;;;;10907:87;;;;10839:162:::0;:::o;11009:83::-;11056:4;11077;:7;11082:1;11077:7;;;;;;;;;;;;;;;;;;;;;;;;;11070:14;;11009:83;;;:::o;12048:348::-;12112:10;;;;;;;;;;;12098:24;;:12;:10;:12::i;:::-;:24;;;12090:33;;;;;;12134:20;12155:24;12173:4;12155:9;:24::i;:::-;12134:45;;12206:1;12193:12;:14;12190:73;;;12221:30;12238:12;12221:16;:30::i;:::-;12190:73;12273:18;12292:21;12273:40;;12338:1;12327:10;:12;12324:65;;;12353:24;12366:10;12353:12;:24::i;:::-;12324:65;12079:317;;12048:348::o;6024:119::-;6090:7;6117:9;:18;6127:7;6117:18;;;;;;;;;;;;;;;;6110:25;;6024:119;;;:::o;2786:148::-;2709:12;:10;:12::i;:::-;2699:22;;:6;;;;;;;;;;:22;;;2691:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2893:1:::1;2856:40;;2877:6;::::0;::::1;;;;;;;;2856:40;;;;;;;;;;;;2924:1;2907:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2786:148::o:0;10363:196::-;2709:12;:10;:12::i;:::-;2699:22;;:6;;;;;;;;;;:22;;;2691:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4534:1:::1;4590:2;:13;;;;:::i;:::-;4577:10;:26;;;;:::i;:::-;10416:12;:22;;;;4534:1;4590:2;:13;;;;:::i;:::-;4577:10;:26;;;;:::i;:::-;10449:14;:22;;;;10503:5;10482:20;;:26;;;;;;;;;;;;;;;;;;10524:27;4534:1;4590:2;:13;;;;:::i;:::-;4577:10;:26;;;;:::i;:::-;10524:27;;;;;;:::i;:::-;;;;;;;;10363:196::o:0;4731:54::-;;;;:::o;2572:79::-;2610:7;2637:6;;;;;;;;;;;2630:13;;2572:79;:::o;4792:56::-;;;;:::o;5735:87::-;5774:13;5807:7;;;;;;;;;;;;;;;;;5800:14;;5735:87;:::o;6151:167::-;6229:4;6246:42;6256:12;:10;:12::i;:::-;6270:9;6281:6;6246:9;:42::i;:::-;6306:4;6299:11;;6151:167;;;;:::o;4855:57::-;;;;:::o;4091:39::-;;;;;;;;;;;;;:::o;11100:671::-;2709:12;:10;:12::i;:::-;2699:22;;:6;;;;;;;;;;:22;;;2691:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11164:11:::1;::::0;::::1;;;;;;;;11163:12;11155:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11250:42;11213:15;;:80;;;;;;;;;;;;;;;;;;11304:58;11321:4;11336:15;;;;;;;;;;;4534:1;4590:2;:13;;;;:::i;:::-;4577:10;:26;;;;:::i;:::-;11304:8;:58::i;:::-;11407:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11389:55;;;11453:4;11460:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11389:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11373:13;;:110;;;;;;;;;;;;;;;;;;11494:15;;;;;;;;;;;:31;;;11533:21;11564:4;11570:24;11588:4;11570:9;:24::i;:::-;11595:1;11597::::0;11599:7:::1;:5;:7::i;:::-;11607:15;11494:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11641:13;;;;;;;;;;;11634:29;;;11672:15;;;;;;;;;;;11690:14;11634:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11730:4;11716:11;;:18;;;;;;;;;;;;;;;;;;11759:4;11745:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11100:671::o:0;10667:164::-;2709:12;:10;:12::i;:::-;2699:22;;:6;;;;;;;;;;:22;;;2691:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10741:6:::1;10736:88;10757:5;:12;10753:1;:16;10736:88;;;10808:4;10791;:14;10796:5;10802:1;10796:8;;;;;;;;:::i;:::-;;;;;;;;10791:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10771:3;;;;;:::i;:::-;;;;10736:88;;;;10667:164:::0;:::o;6326:143::-;6407:7;6434:11;:18;6446:5;6434:18;;;;;;;;;;;;;;;:27;6453:7;6434:27;;;;;;;;;;;;;;;;6427:34;;6326:143;;;;:::o;11785:218::-;11860:10;;;;;;;;;;;11846:24;;:12;:10;:12::i;:::-;:24;;;11838:33;;;;;;11897:12;;11888:7;:21;;:47;;;;;11922:13;;11913:7;:22;;11888:47;11880:56;;;;;;11958:7;11945:12;:20;;;;11988:7;11974:13;:21;;;;11785:218;:::o;327:98::-;380:7;407:10;400:17;;327:98;:::o;6967:335::-;7077:1;7060:19;;:5;:19;;;;7052:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7158:1;7139:21;;:7;:21;;;;7131:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7240:6;7210:11;:18;7222:5;7210:18;;;;;;;;;;;;;;;:27;7229:7;7210:27;;;;;;;;;;;;;;;:36;;;;7278:7;7262:32;;7271:5;7262:32;;;7287:6;7262:32;;;;;;:::i;:::-;;;;;;;;6967:335;;;:::o;7310:2446::-;7414:1;7398:18;;:4;:18;;;;7390:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7491:1;7477:16;;:2;:16;;;;7469:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7561:1;7552:6;:10;7544:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7619:17;7661:7;:5;:7::i;:::-;7653:15;;:4;:15;;;;:32;;;;;7678:7;:5;:7::i;:::-;7672:13;;:2;:13;;;;7653:32;7649:1751;;;7711:4;:10;7716:4;7711:10;;;;;;;;;;;;;;;;;;;;;;;;;7710:11;:24;;;;;7726:4;:8;7731:2;7726:8;;;;;;;;;;;;;;;;;;;;;;;;;7725:9;7710:24;7702:33;;;;;;7762:76;7834:3;7762:67;7784:15;;7774:9;;:25;7773:55;;7814:14;;7773:55;;;7801:12;;7773:55;7762:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7750:88;;7859:20;;;;;;;;;;;7855:508;;;7920:15;;;;;;;;;;;7906:30;;:2;:30;;;;:62;;;;;7954:13;;;;;;;;;;;7940:28;;:2;:28;;;;7906:62;7902:444;;;8104:12;8031:28;:39;8060:9;8031:39;;;;;;;;;;;;;;;;:85;7995:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;8312:12;8270:28;:39;8299:9;8270:39;;;;;;;;;;;;;;;:54;;;;7902:444;7855:508;8391:13;;;;;;;;;;;8383:21;;:4;:21;;;:55;;;;;8422:15;;;;;;;;;;;8408:30;;:2;:30;;;;8383:55;:83;;;;;8444:18;:22;8463:2;8444:22;;;;;;;;;;;;;;;;;;;;;;;;;8442:24;8383:83;8379:313;;;8506:12;;8496:6;:22;;8488:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8601:14;;8591:6;8575:13;8585:2;8575:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8567:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8665:9;;:11;;;;;;;;;:::i;:::-;;;;;;8379:313;8717:13;;;;;;;;;;;8711:19;;:2;:19;;;:43;;;;;8749:4;8734:20;;:4;:20;;;;8711:43;8708:174;;;8787:79;8862:3;8787:70;8809:16;;8799:9;;:26;8798:58;;8841:15;;8798:58;;;8827:13;;8798:58;8787:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8775:91;;8708:174;8898:28;8929:24;8947:4;8929:9;:24::i;:::-;8898:55;;8973:6;;;;;;;;;;;8972:7;:32;;;;;8991:13;;;;;;;;;;;8983:21;;:2;:21;;;8972:32;:47;;;;;9008:11;;;;;;;;;;;8972:47;:89;;;;;9044:17;;9023:20;:38;8972:89;:121;;;;;9075:18;;9065:9;;:28;8972:121;8968:421;;;9114:67;9131:49;9135:6;9142:37;9146:20;9167:11;;9142:3;:37::i;:::-;9131:3;:49::i;:::-;9114:16;:67::i;:::-;9200:26;9229:21;9200:50;;9293:1;9272:18;:22;9269:105;;;9319:35;9332:21;9319:12;:35::i;:::-;9269:105;9095:294;8968:421;7687:1713;7649:1751;9425:1;9415:9;:11;9412:161;;;9465:39;9494:9;9465;:24;9483:4;9465:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9440:9;:24;9458:4;9440:24;;;;;;;;;;;;;;;:64;;;;9545:4;9522:39;;9531:4;9522:39;;;9551:9;9522:39;;;;;;:::i;:::-;;;;;;;;9412:161;9599:27;9619:6;9599:9;:15;9609:4;9599:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9583:9;:15;9593:4;9583:15;;;;;;;;;;;;;;;:43;;;;9651:40;9669:21;9680:9;9669:6;:10;;:21;;;;:::i;:::-;9651:9;:13;9661:2;9651:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9637:9;:13;9647:2;9637:13;;;;;;;;;;;;;;;:54;;;;9722:2;9707:41;;9716:4;9707:41;;;9726:21;9737:9;9726:6;:10;;:21;;;;:::i;:::-;9707:41;;;;;;:::i;:::-;;;;;;;;7379:2377;7310:2446;;;:::o;1464:190::-;1550:7;1583:1;1578;:6;;1586:12;1570:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1610:9;1626:1;1622;:5;;;;:::i;:::-;1610:17;;1645:1;1638:8;;;1464:190;;;;;:::o;9872:483::-;5262:4;5253:6;;:13;;;;;;;;;;;;;;;;;;9950:21:::1;9988:1;9974:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9950:40;;10019:4;10001;10006:1;10001:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10045:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10035:4;10040:1;10035:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10078:62;10095:4;10110:15;;;;;;;;;;;10128:11;10078:8;:62::i;:::-;10151:15;;;;;;;;;;;:66;;;10232:11;10258:1;10274:4;10301;10321:15;10151:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9939:416;5298:5:::0;5289:6;;:14;;;;;;;;;;;;;;;;;;9872:483;:::o;10567:92::-;10624:10;;;;;;;;;;;:19;;:27;10644:6;10624:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10567:92;:::o;1662:246::-;1720:7;1749:1;1744;:6;1740:47;;;1774:1;1767:8;;;;1740:47;1797:9;1813:1;1809;:5;;;;:::i;:::-;1797:17;;1842:1;1837;1833;:5;;;;:::i;:::-;:10;1825:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1899:1;1892:8;;;1662:246;;;;;:::o;1916:132::-;1974:7;2001:39;2005:1;2008;2001:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1994:46;;1916:132;;;;:::o;9766:98::-;9823:7;9850:1;9848;:3;9847:9;;9855:1;9847:9;;;9853:1;9847:9;9840:16;;9766:98;;;;:::o;1133:179::-;1191:7;1211:9;1227:1;1223;:5;;;;:::i;:::-;1211:17;;1252:1;1247;:6;;1239:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1303:1;1296:8;;;1133:179;;;;:::o;1320:136::-;1378:7;1405:43;1409:1;1412;1405:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1398:50;;1320:136;;;;:::o;2056:189::-;2142:7;2174:1;2170;:5;2177:12;2162:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2201:9;2217:1;2213;:5;;;;:::i;:::-;2201:17;;2236:1;2229:8;;;2056:189;;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;752:139::-;798:5;836:6;823:20;814:29;;852:33;879:5;852:33;:::i;:::-;752:139;;;;:::o;897:143::-;954:5;985:6;979:13;970:22;;1001:33;1028:5;1001:33;:::i;:::-;897:143;;;;:::o;1063:370::-;1134:5;1183:3;1176:4;1168:6;1164:17;1160:27;1150:122;;1191:79;;:::i;:::-;1150:122;1308:6;1295:20;1333:94;1423:3;1415:6;1408:4;1400:6;1396:17;1333:94;:::i;:::-;1324:103;;1140:293;1063:370;;;;:::o;1439:137::-;1493:5;1524:6;1518:13;1509:22;;1540:30;1564:5;1540:30;:::i;:::-;1439:137;;;;:::o;1582:139::-;1628:5;1666:6;1653:20;1644:29;;1682:33;1709:5;1682:33;:::i;:::-;1582:139;;;;:::o;1727:143::-;1784:5;1815:6;1809:13;1800:22;;1831:33;1858:5;1831:33;:::i;:::-;1727:143;;;;:::o;1876:329::-;1935:6;1984:2;1972:9;1963:7;1959:23;1955:32;1952:119;;;1990:79;;:::i;:::-;1952:119;2110:1;2135:53;2180:7;2171:6;2160:9;2156:22;2135:53;:::i;:::-;2125:63;;2081:117;1876:329;;;;:::o;2211:351::-;2281:6;2330:2;2318:9;2309:7;2305:23;2301:32;2298:119;;;2336:79;;:::i;:::-;2298:119;2456:1;2481:64;2537:7;2528:6;2517:9;2513:22;2481:64;:::i;:::-;2471:74;;2427:128;2211:351;;;;:::o;2568:474::-;2636:6;2644;2693:2;2681:9;2672:7;2668:23;2664:32;2661:119;;;2699:79;;:::i;:::-;2661:119;2819:1;2844:53;2889:7;2880:6;2869:9;2865:22;2844:53;:::i;:::-;2834:63;;2790:117;2946:2;2972:53;3017:7;3008:6;2997:9;2993:22;2972:53;:::i;:::-;2962:63;;2917:118;2568:474;;;;;:::o;3048:619::-;3125:6;3133;3141;3190:2;3178:9;3169:7;3165:23;3161:32;3158:119;;;3196:79;;:::i;:::-;3158:119;3316:1;3341:53;3386:7;3377:6;3366:9;3362:22;3341:53;:::i;:::-;3331:63;;3287:117;3443:2;3469:53;3514:7;3505:6;3494:9;3490:22;3469:53;:::i;:::-;3459:63;;3414:118;3571:2;3597:53;3642:7;3633:6;3622:9;3618:22;3597:53;:::i;:::-;3587:63;;3542:118;3048:619;;;;;:::o;3673:474::-;3741:6;3749;3798:2;3786:9;3777:7;3773:23;3769:32;3766:119;;;3804:79;;:::i;:::-;3766:119;3924:1;3949:53;3994:7;3985:6;3974:9;3970:22;3949:53;:::i;:::-;3939:63;;3895:117;4051:2;4077:53;4122:7;4113:6;4102:9;4098:22;4077:53;:::i;:::-;4067:63;;4022:118;3673:474;;;;;:::o;4153:539::-;4237:6;4286:2;4274:9;4265:7;4261:23;4257:32;4254:119;;;4292:79;;:::i;:::-;4254:119;4440:1;4429:9;4425:17;4412:31;4470:18;4462:6;4459:30;4456:117;;;4492:79;;:::i;:::-;4456:117;4597:78;4667:7;4658:6;4647:9;4643:22;4597:78;:::i;:::-;4587:88;;4383:302;4153:539;;;;:::o;4698:345::-;4765:6;4814:2;4802:9;4793:7;4789:23;4785:32;4782:119;;;4820:79;;:::i;:::-;4782:119;4940:1;4965:61;5018:7;5009:6;4998:9;4994:22;4965:61;:::i;:::-;4955:71;;4911:125;4698:345;;;;:::o;5049:329::-;5108:6;5157:2;5145:9;5136:7;5132:23;5128:32;5125:119;;;5163:79;;:::i;:::-;5125:119;5283:1;5308:53;5353:7;5344:6;5333:9;5329:22;5308:53;:::i;:::-;5298:63;;5254:117;5049:329;;;;:::o;5384:663::-;5472:6;5480;5488;5537:2;5525:9;5516:7;5512:23;5508:32;5505:119;;;5543:79;;:::i;:::-;5505:119;5663:1;5688:64;5744:7;5735:6;5724:9;5720:22;5688:64;:::i;:::-;5678:74;;5634:128;5801:2;5827:64;5883:7;5874:6;5863:9;5859:22;5827:64;:::i;:::-;5817:74;;5772:129;5940:2;5966:64;6022:7;6013:6;6002:9;5998:22;5966:64;:::i;:::-;5956:74;;5911:129;5384:663;;;;;:::o;6053:179::-;6122:10;6143:46;6185:3;6177:6;6143:46;:::i;:::-;6221:4;6216:3;6212:14;6198:28;;6053:179;;;;:::o;6238:108::-;6315:24;6333:5;6315:24;:::i;:::-;6310:3;6303:37;6238:108;;:::o;6352:118::-;6439:24;6457:5;6439:24;:::i;:::-;6434:3;6427:37;6352:118;;:::o;6506:732::-;6625:3;6654:54;6702:5;6654:54;:::i;:::-;6724:86;6803:6;6798:3;6724:86;:::i;:::-;6717:93;;6834:56;6884:5;6834:56;:::i;:::-;6913:7;6944:1;6929:284;6954:6;6951:1;6948:13;6929:284;;;7030:6;7024:13;7057:63;7116:3;7101:13;7057:63;:::i;:::-;7050:70;;7143:60;7196:6;7143:60;:::i;:::-;7133:70;;6989:224;6976:1;6973;6969:9;6964:14;;6929:284;;;6933:14;7229:3;7222:10;;6630:608;;;6506:732;;;;:::o;7244:109::-;7325:21;7340:5;7325:21;:::i;:::-;7320:3;7313:34;7244:109;;:::o;7359:147::-;7454:45;7493:5;7454:45;:::i;:::-;7449:3;7442:58;7359:147;;:::o;7512:364::-;7600:3;7628:39;7661:5;7628:39;:::i;:::-;7683:71;7747:6;7742:3;7683:71;:::i;:::-;7676:78;;7763:52;7808:6;7803:3;7796:4;7789:5;7785:16;7763:52;:::i;:::-;7840:29;7862:6;7840:29;:::i;:::-;7835:3;7831:39;7824:46;;7604:272;7512:364;;;;:::o;7882:366::-;8024:3;8045:67;8109:2;8104:3;8045:67;:::i;:::-;8038:74;;8121:93;8210:3;8121:93;:::i;:::-;8239:2;8234:3;8230:12;8223:19;;7882:366;;;:::o;8254:::-;8396:3;8417:67;8481:2;8476:3;8417:67;:::i;:::-;8410:74;;8493:93;8582:3;8493:93;:::i;:::-;8611:2;8606:3;8602:12;8595:19;;8254:366;;;:::o;8626:::-;8768:3;8789:67;8853:2;8848:3;8789:67;:::i;:::-;8782:74;;8865:93;8954:3;8865:93;:::i;:::-;8983:2;8978:3;8974:12;8967:19;;8626:366;;;:::o;8998:::-;9140:3;9161:67;9225:2;9220:3;9161:67;:::i;:::-;9154:74;;9237:93;9326:3;9237:93;:::i;:::-;9355:2;9350:3;9346:12;9339:19;;8998:366;;;:::o;9370:::-;9512:3;9533:67;9597:2;9592:3;9533:67;:::i;:::-;9526:74;;9609:93;9698:3;9609:93;:::i;:::-;9727:2;9722:3;9718:12;9711:19;;9370:366;;;:::o;9742:::-;9884:3;9905:67;9969:2;9964:3;9905:67;:::i;:::-;9898:74;;9981:93;10070:3;9981:93;:::i;:::-;10099:2;10094:3;10090:12;10083:19;;9742:366;;;:::o;10114:::-;10256:3;10277:67;10341:2;10336:3;10277:67;:::i;:::-;10270:74;;10353:93;10442:3;10353:93;:::i;:::-;10471:2;10466:3;10462:12;10455:19;;10114:366;;;:::o;10486:::-;10628:3;10649:67;10713:2;10708:3;10649:67;:::i;:::-;10642:74;;10725:93;10814:3;10725:93;:::i;:::-;10843:2;10838:3;10834:12;10827:19;;10486:366;;;:::o;10858:::-;11000:3;11021:67;11085:2;11080:3;11021:67;:::i;:::-;11014:74;;11097:93;11186:3;11097:93;:::i;:::-;11215:2;11210:3;11206:12;11199:19;;10858:366;;;:::o;11230:::-;11372:3;11393:67;11457:2;11452:3;11393:67;:::i;:::-;11386:74;;11469:93;11558:3;11469:93;:::i;:::-;11587:2;11582:3;11578:12;11571:19;;11230:366;;;:::o;11602:::-;11744:3;11765:67;11829:2;11824:3;11765:67;:::i;:::-;11758:74;;11841:93;11930:3;11841:93;:::i;:::-;11959:2;11954:3;11950:12;11943:19;;11602:366;;;:::o;11974:::-;12116:3;12137:67;12201:2;12196:3;12137:67;:::i;:::-;12130:74;;12213:93;12302:3;12213:93;:::i;:::-;12331:2;12326:3;12322:12;12315:19;;11974:366;;;:::o;12346:118::-;12433:24;12451:5;12433:24;:::i;:::-;12428:3;12421:37;12346:118;;:::o;12470:112::-;12553:22;12569:5;12553:22;:::i;:::-;12548:3;12541:35;12470:112;;:::o;12588:222::-;12681:4;12719:2;12708:9;12704:18;12696:26;;12732:71;12800:1;12789:9;12785:17;12776:6;12732:71;:::i;:::-;12588:222;;;;:::o;12816:332::-;12937:4;12975:2;12964:9;12960:18;12952:26;;12988:71;13056:1;13045:9;13041:17;13032:6;12988:71;:::i;:::-;13069:72;13137:2;13126:9;13122:18;13113:6;13069:72;:::i;:::-;12816:332;;;;;:::o;13154:::-;13275:4;13313:2;13302:9;13298:18;13290:26;;13326:71;13394:1;13383:9;13379:17;13370:6;13326:71;:::i;:::-;13407:72;13475:2;13464:9;13460:18;13451:6;13407:72;:::i;:::-;13154:332;;;;;:::o;13492:807::-;13741:4;13779:3;13768:9;13764:19;13756:27;;13793:71;13861:1;13850:9;13846:17;13837:6;13793:71;:::i;:::-;13874:72;13942:2;13931:9;13927:18;13918:6;13874:72;:::i;:::-;13956:80;14032:2;14021:9;14017:18;14008:6;13956:80;:::i;:::-;14046;14122:2;14111:9;14107:18;14098:6;14046:80;:::i;:::-;14136:73;14204:3;14193:9;14189:19;14180:6;14136:73;:::i;:::-;14219;14287:3;14276:9;14272:19;14263:6;14219:73;:::i;:::-;13492:807;;;;;;;;;:::o;14305:210::-;14392:4;14430:2;14419:9;14415:18;14407:26;;14443:65;14505:1;14494:9;14490:17;14481:6;14443:65;:::i;:::-;14305:210;;;;:::o;14521:313::-;14634:4;14672:2;14661:9;14657:18;14649:26;;14721:9;14715:4;14711:20;14707:1;14696:9;14692:17;14685:47;14749:78;14822:4;14813:6;14749:78;:::i;:::-;14741:86;;14521:313;;;;:::o;14840:419::-;15006:4;15044:2;15033:9;15029:18;15021:26;;15093:9;15087:4;15083:20;15079:1;15068:9;15064:17;15057:47;15121:131;15247:4;15121:131;:::i;:::-;15113:139;;14840:419;;;:::o;15265:::-;15431:4;15469:2;15458:9;15454:18;15446:26;;15518:9;15512:4;15508:20;15504:1;15493:9;15489:17;15482:47;15546:131;15672:4;15546:131;:::i;:::-;15538:139;;15265:419;;;:::o;15690:::-;15856:4;15894:2;15883:9;15879:18;15871:26;;15943:9;15937:4;15933:20;15929:1;15918:9;15914:17;15907:47;15971:131;16097:4;15971:131;:::i;:::-;15963:139;;15690:419;;;:::o;16115:::-;16281:4;16319:2;16308:9;16304:18;16296:26;;16368:9;16362:4;16358:20;16354:1;16343:9;16339:17;16332:47;16396:131;16522:4;16396:131;:::i;:::-;16388:139;;16115:419;;;:::o;16540:::-;16706:4;16744:2;16733:9;16729:18;16721:26;;16793:9;16787:4;16783:20;16779:1;16768:9;16764:17;16757:47;16821:131;16947:4;16821:131;:::i;:::-;16813:139;;16540:419;;;:::o;16965:::-;17131:4;17169:2;17158:9;17154:18;17146:26;;17218:9;17212:4;17208:20;17204:1;17193:9;17189:17;17182:47;17246:131;17372:4;17246:131;:::i;:::-;17238:139;;16965:419;;;:::o;17390:::-;17556:4;17594:2;17583:9;17579:18;17571:26;;17643:9;17637:4;17633:20;17629:1;17618:9;17614:17;17607:47;17671:131;17797:4;17671:131;:::i;:::-;17663:139;;17390:419;;;:::o;17815:::-;17981:4;18019:2;18008:9;18004:18;17996:26;;18068:9;18062:4;18058:20;18054:1;18043:9;18039:17;18032:47;18096:131;18222:4;18096:131;:::i;:::-;18088:139;;17815:419;;;:::o;18240:::-;18406:4;18444:2;18433:9;18429:18;18421:26;;18493:9;18487:4;18483:20;18479:1;18468:9;18464:17;18457:47;18521:131;18647:4;18521:131;:::i;:::-;18513:139;;18240:419;;;:::o;18665:::-;18831:4;18869:2;18858:9;18854:18;18846:26;;18918:9;18912:4;18908:20;18904:1;18893:9;18889:17;18882:47;18946:131;19072:4;18946:131;:::i;:::-;18938:139;;18665:419;;;:::o;19090:::-;19256:4;19294:2;19283:9;19279:18;19271:26;;19343:9;19337:4;19333:20;19329:1;19318:9;19314:17;19307:47;19371:131;19497:4;19371:131;:::i;:::-;19363:139;;19090:419;;;:::o;19515:::-;19681:4;19719:2;19708:9;19704:18;19696:26;;19768:9;19762:4;19758:20;19754:1;19743:9;19739:17;19732:47;19796:131;19922:4;19796:131;:::i;:::-;19788:139;;19515:419;;;:::o;19940:222::-;20033:4;20071:2;20060:9;20056:18;20048:26;;20084:71;20152:1;20141:9;20137:17;20128:6;20084:71;:::i;:::-;19940:222;;;;:::o;20168:831::-;20431:4;20469:3;20458:9;20454:19;20446:27;;20483:71;20551:1;20540:9;20536:17;20527:6;20483:71;:::i;:::-;20564:80;20640:2;20629:9;20625:18;20616:6;20564:80;:::i;:::-;20691:9;20685:4;20681:20;20676:2;20665:9;20661:18;20654:48;20719:108;20822:4;20813:6;20719:108;:::i;:::-;20711:116;;20837:72;20905:2;20894:9;20890:18;20881:6;20837:72;:::i;:::-;20919:73;20987:3;20976:9;20972:19;20963:6;20919:73;:::i;:::-;20168:831;;;;;;;;:::o;21005:214::-;21094:4;21132:2;21121:9;21117:18;21109:26;;21145:67;21209:1;21198:9;21194:17;21185:6;21145:67;:::i;:::-;21005:214;;;;:::o;21225:129::-;21259:6;21286:20;;:::i;:::-;21276:30;;21315:33;21343:4;21335:6;21315:33;:::i;:::-;21225:129;;;:::o;21360:75::-;21393:6;21426:2;21420:9;21410:19;;21360:75;:::o;21441:311::-;21518:4;21608:18;21600:6;21597:30;21594:56;;;21630:18;;:::i;:::-;21594:56;21680:4;21672:6;21668:17;21660:25;;21740:4;21734;21730:15;21722:23;;21441:311;;;:::o;21758:132::-;21825:4;21848:3;21840:11;;21878:4;21873:3;21869:14;21861:22;;21758:132;;;:::o;21896:114::-;21963:6;21997:5;21991:12;21981:22;;21896:114;;;:::o;22016:99::-;22068:6;22102:5;22096:12;22086:22;;22016:99;;;:::o;22121:113::-;22191:4;22223;22218:3;22214:14;22206:22;;22121:113;;;:::o;22240:184::-;22339:11;22373:6;22368:3;22361:19;22413:4;22408:3;22404:14;22389:29;;22240:184;;;;:::o;22430:169::-;22514:11;22548:6;22543:3;22536:19;22588:4;22583:3;22579:14;22564:29;;22430:169;;;;:::o;22605:305::-;22645:3;22664:20;22682:1;22664:20;:::i;:::-;22659:25;;22698:20;22716:1;22698:20;:::i;:::-;22693:25;;22852:1;22784:66;22780:74;22777:1;22774:81;22771:107;;;22858:18;;:::i;:::-;22771:107;22902:1;22899;22895:9;22888:16;;22605:305;;;;:::o;22916:185::-;22956:1;22973:20;22991:1;22973:20;:::i;:::-;22968:25;;23007:20;23025:1;23007:20;:::i;:::-;23002:25;;23046:1;23036:35;;23051:18;;:::i;:::-;23036:35;23093:1;23090;23086:9;23081:14;;22916:185;;;;:::o;23107:848::-;23168:5;23175:4;23199:6;23190:15;;23223:5;23214:14;;23237:712;23258:1;23248:8;23245:15;23237:712;;;23353:4;23348:3;23344:14;23338:4;23335:24;23332:50;;;23362:18;;:::i;:::-;23332:50;23412:1;23402:8;23398:16;23395:451;;;23827:4;23820:5;23816:16;23807:25;;23395:451;23877:4;23871;23867:15;23859:23;;23907:32;23930:8;23907:32;:::i;:::-;23895:44;;23237:712;;;23107:848;;;;;;;:::o;23961:281::-;24019:5;24043:23;24061:4;24043:23;:::i;:::-;24035:31;;24087:25;24103:8;24087:25;:::i;:::-;24075:37;;24131:104;24168:66;24158:8;24152:4;24131:104;:::i;:::-;24122:113;;23961:281;;;;:::o;24248:1073::-;24302:5;24493:8;24483:40;;24514:1;24505:10;;24516:5;;24483:40;24542:4;24532:36;;24559:1;24550:10;;24561:5;;24532:36;24628:4;24676:1;24671:27;;;;24712:1;24707:191;;;;24621:277;;24671:27;24689:1;24680:10;;24691:5;;;24707:191;24752:3;24742:8;24739:17;24736:43;;;24759:18;;:::i;:::-;24736:43;24808:8;24805:1;24801:16;24792:25;;24843:3;24836:5;24833:14;24830:40;;;24850:18;;:::i;:::-;24830:40;24883:5;;;24621:277;;25007:2;24997:8;24994:16;24988:3;24982:4;24979:13;24975:36;24957:2;24947:8;24944:16;24939:2;24933:4;24930:12;24926:35;24910:111;24907:246;;;25063:8;25057:4;25053:19;25044:28;;25098:3;25091:5;25088:14;25085:40;;;25105:18;;:::i;:::-;25085:40;25138:5;;24907:246;25178:42;25216:3;25206:8;25200:4;25197:1;25178:42;:::i;:::-;25163:57;;;;25252:4;25247:3;25243:14;25236:5;25233:25;25230:51;;;25261:18;;:::i;:::-;25230:51;25310:4;25303:5;25299:16;25290:25;;24248:1073;;;;;;:::o;25327:348::-;25367:7;25390:20;25408:1;25390:20;:::i;:::-;25385:25;;25424:20;25442:1;25424:20;:::i;:::-;25419:25;;25612:1;25544:66;25540:74;25537:1;25534:81;25529:1;25522:9;25515:17;25511:105;25508:131;;;25619:18;;:::i;:::-;25508:131;25667:1;25664;25660:9;25649:20;;25327:348;;;;:::o;25681:191::-;25721:4;25741:20;25759:1;25741:20;:::i;:::-;25736:25;;25775:20;25793:1;25775:20;:::i;:::-;25770:25;;25814:1;25811;25808:8;25805:34;;;25819:18;;:::i;:::-;25805:34;25864:1;25861;25857:9;25849:17;;25681:191;;;;:::o;25878:96::-;25915:7;25944:24;25962:5;25944:24;:::i;:::-;25933:35;;25878:96;;;:::o;25980:90::-;26014:7;26057:5;26050:13;26043:21;26032:32;;25980:90;;;:::o;26076:126::-;26113:7;26153:42;26146:5;26142:54;26131:65;;26076:126;;;:::o;26208:77::-;26245:7;26274:5;26263:16;;26208:77;;;:::o;26291:86::-;26326:7;26366:4;26359:5;26355:16;26344:27;;26291:86;;;:::o;26383:121::-;26441:9;26474:24;26492:5;26474:24;:::i;:::-;26461:37;;26383:121;;;:::o;26510:307::-;26578:1;26588:113;26602:6;26599:1;26596:13;26588:113;;;26687:1;26682:3;26678:11;26672:18;26668:1;26663:3;26659:11;26652:39;26624:2;26621:1;26617:10;26612:15;;26588:113;;;26719:6;26716:1;26713:13;26710:101;;;26799:1;26790:6;26785:3;26781:16;26774:27;26710:101;26559:258;26510:307;;;:::o;26823:281::-;26906:27;26928:4;26906:27;:::i;:::-;26898:6;26894:40;27036:6;27024:10;27021:22;27000:18;26988:10;26985:34;26982:62;26979:88;;;27047:18;;:::i;:::-;26979:88;27087:10;27083:2;27076:22;26866:238;26823:281;;:::o;27110:233::-;27149:3;27172:24;27190:5;27172:24;:::i;:::-;27163:33;;27218:66;27211:5;27208:77;27205:103;;;27288:18;;:::i;:::-;27205:103;27335:1;27328:5;27324:13;27317:20;;27110:233;;;:::o;27349:180::-;27397:77;27394:1;27387:88;27494:4;27491:1;27484:15;27518:4;27515:1;27508:15;27535:180;27583:77;27580:1;27573:88;27680:4;27677:1;27670:15;27704:4;27701:1;27694:15;27721:180;27769:77;27766:1;27759:88;27866:4;27863:1;27856:15;27890:4;27887:1;27880:15;27907:180;27955:77;27952:1;27945:88;28052:4;28049:1;28042:15;28076:4;28073:1;28066:15;28093:117;28202:1;28199;28192:12;28216:117;28325:1;28322;28315:12;28339:117;28448:1;28445;28438:12;28462:117;28571:1;28568;28561:12;28585:102;28626:6;28677:2;28673:7;28668:2;28661:5;28657:14;28653:28;28643:38;;28585:102;;;:::o;28693:::-;28735:8;28782:5;28779:1;28775:13;28754:34;;28693:102;;;:::o;28801:222::-;28941:34;28937:1;28929:6;28925:14;28918:58;29010:5;29005:2;28997:6;28993:15;28986:30;28801:222;:::o;29029:175::-;29169:27;29165:1;29157:6;29153:14;29146:51;29029:175;:::o;29210:221::-;29350:34;29346:1;29338:6;29334:14;29327:58;29419:4;29414:2;29406:6;29402:15;29395:29;29210:221;:::o;29437:177::-;29577:29;29573:1;29565:6;29561:14;29554:53;29437:177;:::o;29620:297::-;29760:34;29756:1;29748:6;29744:14;29737:58;29829:34;29824:2;29816:6;29812:15;29805:59;29898:11;29893:2;29885:6;29881:15;29874:36;29620:297;:::o;29923:220::-;30063:34;30059:1;30051:6;30047:14;30040:58;30132:3;30127:2;30119:6;30115:15;30108:28;29923:220;:::o;30149:182::-;30289:34;30285:1;30277:6;30273:14;30266:58;30149:182;:::o;30337:228::-;30477:34;30473:1;30465:6;30461:14;30454:58;30546:11;30541:2;30533:6;30529:15;30522:36;30337:228;:::o;30571:224::-;30711:34;30707:1;30699:6;30695:14;30688:58;30780:7;30775:2;30767:6;30763:15;30756:32;30571:224;:::o;30801:176::-;30941:28;30937:1;30929:6;30925:14;30918:52;30801:176;:::o;30983:223::-;31123:34;31119:1;31111:6;31107:14;31100:58;31192:6;31187:2;31179:6;31175:15;31168:31;30983:223;:::o;31212:173::-;31352:25;31348:1;31340:6;31336:14;31329:49;31212:173;:::o;31391:122::-;31464:24;31482:5;31464:24;:::i;:::-;31457:5;31454:35;31444:63;;31503:1;31500;31493:12;31444:63;31391:122;:::o;31519:116::-;31589:21;31604:5;31589:21;:::i;:::-;31582:5;31579:32;31569:60;;31625:1;31622;31615:12;31569:60;31519:116;:::o;31641:122::-;31714:24;31732:5;31714:24;:::i;:::-;31707:5;31704:35;31694:63;;31753:1;31750;31743:12;31694:63;31641:122;:::o

Swarm Source

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