ETH Price: $3,212.70 (-1.67%)
Gas: 10.5 Gwei

Token

GavCoin (GAV)
 

Overview

Max Total Supply

100,000,000,000 GAV

Holders

101

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000021 GAV

Value
$0.00
0xc33c9692A00608502F84AEEcA2cfeeA887c84Ee8
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:
GavCoin

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*

    
    Telegram :  https://t.me/Gavcoinerc20
    Twitter  :  https://x.com/gavcoinerc20
    Website  :  https://gavcoin.club/



*/
// SPDX-License-Identifier: UNLICENSE
pragma solidity 0.8.26;
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 GavCoin 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;
    address payable private _taxWallet;

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

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100000000000 * 10**_decimals;
    string private constant _name = unicode"GavCoin";
    string private constant _symbol = unicode"GAV";
    uint256 public _maxTxAmount = 1000000000 * 10**_decimals;
    uint256 public _maxWalletSize = 1000000000 *10**_decimals;
    uint256 public _taxSwapThreshold= 1000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 1000000000 * 10**_decimals;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    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 (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) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < 10, "Only 10 sells per block!");
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }
        }

        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;
        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 setFees(uint256 _buy,uint256 _sell) external{
      _finalBuyTax=_buy;
      _finalSellTax=_sell;
    }

    receive() external payable {}

    function manualSend() external {
        require(_msgSender()==_taxWallet);
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
    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":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"setFees","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":[{"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"}]

6080604052601460065560146007555f6008555f6009556019600a556019600b55601e600c555f600d556009600a61003791906105b4565b633b9aca0061004691906105fe565b600e556009600a61005791906105b4565b633b9aca0061006691906105fe565b600f556009600a61007791906105b4565b620f424061008591906105fe565b6010556009600a61009691906105b4565b633b9aca006100a591906105fe565b6011555f601360156101000a81548160ff0219169083151502179055505f601360166101000a81548160ff0219169083151502179055505f6014555f6015553480156100ef575f80fd5b505f6100ff61041560201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506101a961041560201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6101f691906105b4565b64174876e80061020691906105fe565b60015f61021761041560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61026761041c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061038f61041560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6103eb91906105b4565b64174876e8006103fb91906105fe565b604051610408919061064e565b60405180910390a3610667565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156104c5578086048111156104a1576104a0610443565b5b60018516156104b05780820291505b80810290506104be85610470565b9450610485565b94509492505050565b5f826104dd5760019050610598565b816104ea575f9050610598565b8160018114610500576002811461050a57610539565b6001915050610598565b60ff84111561051c5761051b610443565b5b8360020a91508482111561053357610532610443565b5b50610598565b5060208310610133831016604e8410600b841016171561056e5782820a90508381111561056957610568610443565b5b610598565b61057b848484600161047c565b9250905081840481111561059257610591610443565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6105be8261059f565b91506105c9836105a8565b92506105f67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846104ce565b905092915050565b5f6106088261059f565b91506106138361059f565b92508282026106218161059f565b9150828204841483151761063857610637610443565b5b5092915050565b6106488161059f565b82525050565b5f6020820190506106615f83018461063f565b92915050565b6133e3806106745f395ff3fe608060405260043610610143575f3560e01c8063715018a6116100b5578063a9059cbb1161006e578063a9059cbb14610420578063bf474bed1461045c578063c9567bf914610486578063d34628cc1461049c578063dd62ed3e146104c4578063f4293890146105005761014a565b8063715018a61461034c578063751039fc146103625780637d1db4a5146103785780638da5cb5b146103a25780638f9a55c0146103cc57806395d89b41146103f65761014a565b806323b872dd1161010757806323b872dd14610230578063313ce5671461026c57806331c2d847146102965780633bbac579146102be57806351bc3c85146102fa57806370a08231146103105761014a565b806306fdde031461014e578063095ea7b3146101785780630b78f9c0146101b45780630faee56f146101dc57806318160ddd146102065761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b50610162610516565b60405161016f919061237c565b60405180910390f35b348015610183575f80fd5b5061019e6004803603810190610199919061243a565b610553565b6040516101ab9190612492565b60405180910390f35b3480156101bf575f80fd5b506101da60048036038101906101d591906124ab565b610570565b005b3480156101e7575f80fd5b506101f0610582565b6040516101fd91906124f8565b60405180910390f35b348015610211575f80fd5b5061021a610588565b60405161022791906124f8565b60405180910390f35b34801561023b575f80fd5b5061025660048036038101906102519190612511565b6105ac565b6040516102639190612492565b60405180910390f35b348015610277575f80fd5b50610280610680565b60405161028d919061257c565b60405180910390f35b3480156102a1575f80fd5b506102bc60048036038101906102b791906126d5565b610688565b005b3480156102c9575f80fd5b506102e460048036038101906102df919061271c565b6107a6565b6040516102f19190612492565b60405180910390f35b348015610305575f80fd5b5061030e6107f8565b005b34801561031b575f80fd5b506103366004803603810190610331919061271c565b61088f565b60405161034391906124f8565b60405180910390f35b348015610357575f80fd5b506103606108d5565b005b34801561036d575f80fd5b50610376610a23565b005b348015610383575f80fd5b5061038c610b55565b60405161039991906124f8565b60405180910390f35b3480156103ad575f80fd5b506103b6610b5b565b6040516103c39190612756565b60405180910390f35b3480156103d7575f80fd5b506103e0610b82565b6040516103ed91906124f8565b60405180910390f35b348015610401575f80fd5b5061040a610b88565b604051610417919061237c565b60405180910390f35b34801561042b575f80fd5b506104466004803603810190610441919061243a565b610bc5565b6040516104539190612492565b60405180910390f35b348015610467575f80fd5b50610470610be2565b60405161047d91906124f8565b60405180910390f35b348015610491575f80fd5b5061049a610be8565b005b3480156104a7575f80fd5b506104c260048036038101906104bd91906126d5565b61110b565b005b3480156104cf575f80fd5b506104ea60048036038101906104e5919061276f565b61122a565b6040516104f791906124f8565b60405180910390f35b34801561050b575f80fd5b506105146112ac565b005b60606040518060400160405280600781526020017f476176436f696e00000000000000000000000000000000000000000000000000815250905090565b5f61056661055f611324565b848461132b565b6001905092915050565b81600881905550806009819055505050565b60115481565b5f6009600a6105979190612909565b64174876e8006105a79190612953565b905090565b5f6105b88484846114ee565b610675846105c4611324565b610670856040518060600160405280602881526020016133866028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610627611324565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611df89092919063ffffffff16565b61132b565b600190509392505050565b5f6009905090565b610690611324565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461071c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610713906129de565b60405180910390fd5b5f5b81518110156107a2575f60045f84848151811061073e5761073d6129fc565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061071e565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610838611324565b73ffffffffffffffffffffffffffffffffffffffff1614610857575f80fd5b5f6108613061088f565b90505f8111156108755761087481611e5a565b5b5f4790505f81111561088b5761088a816120c5565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108dd611324565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610969576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610960906129de565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a2b611324565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aae906129de565b60405180910390fd5b6009600a610ac59190612909565b64174876e800610ad59190612953565b600e819055506009600a610ae99190612909565b64174876e800610af99190612953565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610b2e9190612909565b64174876e800610b3e9190612953565b604051610b4b91906124f8565b60405180910390a1565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600381526020017f4741560000000000000000000000000000000000000000000000000000000000815250905090565b5f610bd8610bd1611324565b84846114ee565b6001905092915050565b60105481565b610bf0611324565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c73906129de565b60405180910390fd5b601360149054906101000a900460ff1615610ccc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc390612a73565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d693060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d549190612909565b64174876e800610d649190612953565b61132b565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df79190612aa5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea19190612aa5565b6040518363ffffffff1660e01b8152600401610ebe929190612ad0565b6020604051808303815f875af1158015610eda573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610efe9190612aa5565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f853061088f565b5f80610f8f610b5b565b426040518863ffffffff1660e01b8152600401610fb196959493929190612b39565b60606040518083038185885af1158015610fcd573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ff29190612bac565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611092929190612bfc565b6020604051808303815f875af11580156110ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110d29190612c4d565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b611113611324565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461119f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611196906129de565b60405180910390fd5b5f5b815181101561122657600160045f8484815181106111c2576111c16129fc565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506111a1565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112ec611324565b73ffffffffffffffffffffffffffffffffffffffff161461130b575f80fd5b5f4790505f81111561132157611320816120c5565b5b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611399576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139090612ce8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611407576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fe90612d76565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114e191906124f8565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361155c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155390612e04565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c190612e92565b60405180910390fd5b5f811161160c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160390612f20565b60405180910390fd5b5f611615610b5b565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116835750611653610b5b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b485760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611726575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b61172e575f80fd5b61176a606461175c600a54600d54116117495760065461174d565b6008545b8561212d90919063ffffffff16565b6121a490919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611815575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611868575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561192257600e548211156118b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a990612f88565b60405180910390fd5b600f54826118bf8561088f565b6118c99190612fa6565b111561190a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190190613023565b60405180910390fd5b600d5f81548092919061191c90613041565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119aa57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119ee576119eb60646119dd600b54600d54116119ca576007546119ce565b6009545b8561212d90919063ffffffff16565b6121a490919063ffffffff16565b90505b5f6119f83061088f565b9050601360159054906101000a900460ff16158015611a63575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a7b5750601360169054906101000a900460ff165b8015611a88575060105481115b8015611a975750600c54600d54115b15611b4657601554431115611aae575f6014819055505b600a60145410611af3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aea906130d2565b60405180910390fd5b611b10611b0b84611b06846011546121ed565b6121ed565b611e5a565b5f4790505f811115611b2657611b25476120c5565b5b60145f815480929190611b3890613041565b919050555043601581905550505b505b5f811115611c4757611ba08160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461220590919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c3e91906124f8565b60405180910390a35b611c978260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461226290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d3a611cee828461226290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461220590919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ddd848661226290919063ffffffff16565b604051611dea91906124f8565b60405180910390a350505050565b5f838311158290611e3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e36919061237c565b60405180910390fd5b505f8385611e4d91906130f0565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611e9157611e90612599565b5b604051908082528060200260200182016040528015611ebf5781602001602082028036833780820191505090505b50905030815f81518110611ed657611ed56129fc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f7a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f9e9190612aa5565b81600181518110611fb257611fb16129fc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120183060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461132b565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161207a9594939291906131da565b5f604051808303815f87803b158015612091575f80fd5b505af11580156120a3573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612129573d5f803e3d5ffd5b5050565b5f80830361213d575f905061219e565b5f828461214a9190612953565b9050828482612159919061325f565b14612199576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612190906132ff565b60405180910390fd5b809150505b92915050565b5f6121e583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122ab565b905092915050565b5f8183116121fb57826121fd565b815b905092915050565b5f8082846122139190612fa6565b905083811015612258576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224f90613367565b60405180910390fd5b8091505092915050565b5f6122a383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611df8565b905092915050565b5f80831182906122f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e8919061237c565b60405180910390fd5b505f83856122ff919061325f565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61234e8261230c565b6123588185612316565b9350612368818560208601612326565b61237181612334565b840191505092915050565b5f6020820190508181035f8301526123948184612344565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6123d6826123ad565b9050919050565b6123e6816123cc565b81146123f0575f80fd5b50565b5f81359050612401816123dd565b92915050565b5f819050919050565b61241981612407565b8114612423575f80fd5b50565b5f8135905061243481612410565b92915050565b5f80604083850312156124505761244f6123a5565b5b5f61245d858286016123f3565b925050602061246e85828601612426565b9150509250929050565b5f8115159050919050565b61248c81612478565b82525050565b5f6020820190506124a55f830184612483565b92915050565b5f80604083850312156124c1576124c06123a5565b5b5f6124ce85828601612426565b92505060206124df85828601612426565b9150509250929050565b6124f281612407565b82525050565b5f60208201905061250b5f8301846124e9565b92915050565b5f805f60608486031215612528576125276123a5565b5b5f612535868287016123f3565b9350506020612546868287016123f3565b925050604061255786828701612426565b9150509250925092565b5f60ff82169050919050565b61257681612561565b82525050565b5f60208201905061258f5f83018461256d565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6125cf82612334565b810181811067ffffffffffffffff821117156125ee576125ed612599565b5b80604052505050565b5f61260061239c565b905061260c82826125c6565b919050565b5f67ffffffffffffffff82111561262b5761262a612599565b5b602082029050602081019050919050565b5f80fd5b5f61265261264d84612611565b6125f7565b905080838252602082019050602084028301858111156126755761267461263c565b5b835b8181101561269e578061268a88826123f3565b845260208401935050602081019050612677565b5050509392505050565b5f82601f8301126126bc576126bb612595565b5b81356126cc848260208601612640565b91505092915050565b5f602082840312156126ea576126e96123a5565b5b5f82013567ffffffffffffffff811115612707576127066123a9565b5b612713848285016126a8565b91505092915050565b5f60208284031215612731576127306123a5565b5b5f61273e848285016123f3565b91505092915050565b612750816123cc565b82525050565b5f6020820190506127695f830184612747565b92915050565b5f8060408385031215612785576127846123a5565b5b5f612792858286016123f3565b92505060206127a3858286016123f3565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561282f5780860481111561280b5761280a6127ad565b5b600185161561281a5780820291505b8081029050612828856127da565b94506127ef565b94509492505050565b5f826128475760019050612902565b81612854575f9050612902565b816001811461286a5760028114612874576128a3565b6001915050612902565b60ff841115612886576128856127ad565b5b8360020a91508482111561289d5761289c6127ad565b5b50612902565b5060208310610133831016604e8410600b84101617156128d85782820a9050838111156128d3576128d26127ad565b5b612902565b6128e584848460016127e6565b925090508184048111156128fc576128fb6127ad565b5b81810290505b9392505050565b5f61291382612407565b915061291e83612561565b925061294b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612838565b905092915050565b5f61295d82612407565b915061296883612407565b925082820261297681612407565b9150828204841483151761298d5761298c6127ad565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6129c8602083612316565b91506129d382612994565b602082019050919050565b5f6020820190508181035f8301526129f5816129bc565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612a5d601783612316565b9150612a6882612a29565b602082019050919050565b5f6020820190508181035f830152612a8a81612a51565b9050919050565b5f81519050612a9f816123dd565b92915050565b5f60208284031215612aba57612ab96123a5565b5b5f612ac784828501612a91565b91505092915050565b5f604082019050612ae35f830185612747565b612af06020830184612747565b9392505050565b5f819050919050565b5f819050919050565b5f612b23612b1e612b1984612af7565b612b00565b612407565b9050919050565b612b3381612b09565b82525050565b5f60c082019050612b4c5f830189612747565b612b5960208301886124e9565b612b666040830187612b2a565b612b736060830186612b2a565b612b806080830185612747565b612b8d60a08301846124e9565b979650505050505050565b5f81519050612ba681612410565b92915050565b5f805f60608486031215612bc357612bc26123a5565b5b5f612bd086828701612b98565b9350506020612be186828701612b98565b9250506040612bf286828701612b98565b9150509250925092565b5f604082019050612c0f5f830185612747565b612c1c60208301846124e9565b9392505050565b612c2c81612478565b8114612c36575f80fd5b50565b5f81519050612c4781612c23565b92915050565b5f60208284031215612c6257612c616123a5565b5b5f612c6f84828501612c39565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612cd2602483612316565b9150612cdd82612c78565b604082019050919050565b5f6020820190508181035f830152612cff81612cc6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d60602283612316565b9150612d6b82612d06565b604082019050919050565b5f6020820190508181035f830152612d8d81612d54565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612dee602583612316565b9150612df982612d94565b604082019050919050565b5f6020820190508181035f830152612e1b81612de2565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612e7c602383612316565b9150612e8782612e22565b604082019050919050565b5f6020820190508181035f830152612ea981612e70565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612f0a602983612316565b9150612f1582612eb0565b604082019050919050565b5f6020820190508181035f830152612f3781612efe565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612f72601983612316565b9150612f7d82612f3e565b602082019050919050565b5f6020820190508181035f830152612f9f81612f66565b9050919050565b5f612fb082612407565b9150612fbb83612407565b9250828201905080821115612fd357612fd26127ad565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f61300d601a83612316565b915061301882612fd9565b602082019050919050565b5f6020820190508181035f83015261303a81613001565b9050919050565b5f61304b82612407565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361307d5761307c6127ad565b5b600182019050919050565b7f4f6e6c792031302073656c6c732070657220626c6f636b2100000000000000005f82015250565b5f6130bc601883612316565b91506130c782613088565b602082019050919050565b5f6020820190508181035f8301526130e9816130b0565b9050919050565b5f6130fa82612407565b915061310583612407565b925082820390508181111561311d5761311c6127ad565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613155816123cc565b82525050565b5f613166838361314c565b60208301905092915050565b5f602082019050919050565b5f61318882613123565b613192818561312d565b935061319d8361313d565b805f5b838110156131cd5781516131b4888261315b565b97506131bf83613172565b9250506001810190506131a0565b5085935050505092915050565b5f60a0820190506131ed5f8301886124e9565b6131fa6020830187612b2a565b818103604083015261320c818661317e565b905061321b6060830185612747565b61322860808301846124e9565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61326982612407565b915061327483612407565b92508261328457613283613232565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132e9602183612316565b91506132f48261328f565b604082019050919050565b5f6020820190508181035f830152613316816132dd565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613351601b83612316565b915061335c8261331d565b602082019050919050565b5f6020820190508181035f83015261337e81613345565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b4966f20cfd13170117b06392b795a7ac325e0f8e5e48c398d3a43360d6d64e964736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610143575f3560e01c8063715018a6116100b5578063a9059cbb1161006e578063a9059cbb14610420578063bf474bed1461045c578063c9567bf914610486578063d34628cc1461049c578063dd62ed3e146104c4578063f4293890146105005761014a565b8063715018a61461034c578063751039fc146103625780637d1db4a5146103785780638da5cb5b146103a25780638f9a55c0146103cc57806395d89b41146103f65761014a565b806323b872dd1161010757806323b872dd14610230578063313ce5671461026c57806331c2d847146102965780633bbac579146102be57806351bc3c85146102fa57806370a08231146103105761014a565b806306fdde031461014e578063095ea7b3146101785780630b78f9c0146101b45780630faee56f146101dc57806318160ddd146102065761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b50610162610516565b60405161016f919061237c565b60405180910390f35b348015610183575f80fd5b5061019e6004803603810190610199919061243a565b610553565b6040516101ab9190612492565b60405180910390f35b3480156101bf575f80fd5b506101da60048036038101906101d591906124ab565b610570565b005b3480156101e7575f80fd5b506101f0610582565b6040516101fd91906124f8565b60405180910390f35b348015610211575f80fd5b5061021a610588565b60405161022791906124f8565b60405180910390f35b34801561023b575f80fd5b5061025660048036038101906102519190612511565b6105ac565b6040516102639190612492565b60405180910390f35b348015610277575f80fd5b50610280610680565b60405161028d919061257c565b60405180910390f35b3480156102a1575f80fd5b506102bc60048036038101906102b791906126d5565b610688565b005b3480156102c9575f80fd5b506102e460048036038101906102df919061271c565b6107a6565b6040516102f19190612492565b60405180910390f35b348015610305575f80fd5b5061030e6107f8565b005b34801561031b575f80fd5b506103366004803603810190610331919061271c565b61088f565b60405161034391906124f8565b60405180910390f35b348015610357575f80fd5b506103606108d5565b005b34801561036d575f80fd5b50610376610a23565b005b348015610383575f80fd5b5061038c610b55565b60405161039991906124f8565b60405180910390f35b3480156103ad575f80fd5b506103b6610b5b565b6040516103c39190612756565b60405180910390f35b3480156103d7575f80fd5b506103e0610b82565b6040516103ed91906124f8565b60405180910390f35b348015610401575f80fd5b5061040a610b88565b604051610417919061237c565b60405180910390f35b34801561042b575f80fd5b506104466004803603810190610441919061243a565b610bc5565b6040516104539190612492565b60405180910390f35b348015610467575f80fd5b50610470610be2565b60405161047d91906124f8565b60405180910390f35b348015610491575f80fd5b5061049a610be8565b005b3480156104a7575f80fd5b506104c260048036038101906104bd91906126d5565b61110b565b005b3480156104cf575f80fd5b506104ea60048036038101906104e5919061276f565b61122a565b6040516104f791906124f8565b60405180910390f35b34801561050b575f80fd5b506105146112ac565b005b60606040518060400160405280600781526020017f476176436f696e00000000000000000000000000000000000000000000000000815250905090565b5f61056661055f611324565b848461132b565b6001905092915050565b81600881905550806009819055505050565b60115481565b5f6009600a6105979190612909565b64174876e8006105a79190612953565b905090565b5f6105b88484846114ee565b610675846105c4611324565b610670856040518060600160405280602881526020016133866028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610627611324565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611df89092919063ffffffff16565b61132b565b600190509392505050565b5f6009905090565b610690611324565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461071c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610713906129de565b60405180910390fd5b5f5b81518110156107a2575f60045f84848151811061073e5761073d6129fc565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061071e565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610838611324565b73ffffffffffffffffffffffffffffffffffffffff1614610857575f80fd5b5f6108613061088f565b90505f8111156108755761087481611e5a565b5b5f4790505f81111561088b5761088a816120c5565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108dd611324565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610969576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610960906129de565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a2b611324565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aae906129de565b60405180910390fd5b6009600a610ac59190612909565b64174876e800610ad59190612953565b600e819055506009600a610ae99190612909565b64174876e800610af99190612953565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610b2e9190612909565b64174876e800610b3e9190612953565b604051610b4b91906124f8565b60405180910390a1565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600381526020017f4741560000000000000000000000000000000000000000000000000000000000815250905090565b5f610bd8610bd1611324565b84846114ee565b6001905092915050565b60105481565b610bf0611324565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c73906129de565b60405180910390fd5b601360149054906101000a900460ff1615610ccc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc390612a73565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d693060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d549190612909565b64174876e800610d649190612953565b61132b565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df79190612aa5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea19190612aa5565b6040518363ffffffff1660e01b8152600401610ebe929190612ad0565b6020604051808303815f875af1158015610eda573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610efe9190612aa5565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f853061088f565b5f80610f8f610b5b565b426040518863ffffffff1660e01b8152600401610fb196959493929190612b39565b60606040518083038185885af1158015610fcd573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ff29190612bac565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611092929190612bfc565b6020604051808303815f875af11580156110ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110d29190612c4d565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b611113611324565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461119f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611196906129de565b60405180910390fd5b5f5b815181101561122657600160045f8484815181106111c2576111c16129fc565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506111a1565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112ec611324565b73ffffffffffffffffffffffffffffffffffffffff161461130b575f80fd5b5f4790505f81111561132157611320816120c5565b5b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611399576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139090612ce8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611407576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fe90612d76565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114e191906124f8565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361155c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155390612e04565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c190612e92565b60405180910390fd5b5f811161160c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160390612f20565b60405180910390fd5b5f611615610b5b565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116835750611653610b5b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b485760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611726575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b61172e575f80fd5b61176a606461175c600a54600d54116117495760065461174d565b6008545b8561212d90919063ffffffff16565b6121a490919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611815575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611868575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561192257600e548211156118b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a990612f88565b60405180910390fd5b600f54826118bf8561088f565b6118c99190612fa6565b111561190a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190190613023565b60405180910390fd5b600d5f81548092919061191c90613041565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119aa57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119ee576119eb60646119dd600b54600d54116119ca576007546119ce565b6009545b8561212d90919063ffffffff16565b6121a490919063ffffffff16565b90505b5f6119f83061088f565b9050601360159054906101000a900460ff16158015611a63575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a7b5750601360169054906101000a900460ff165b8015611a88575060105481115b8015611a975750600c54600d54115b15611b4657601554431115611aae575f6014819055505b600a60145410611af3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aea906130d2565b60405180910390fd5b611b10611b0b84611b06846011546121ed565b6121ed565b611e5a565b5f4790505f811115611b2657611b25476120c5565b5b60145f815480929190611b3890613041565b919050555043601581905550505b505b5f811115611c4757611ba08160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461220590919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c3e91906124f8565b60405180910390a35b611c978260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461226290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d3a611cee828461226290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461220590919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ddd848661226290919063ffffffff16565b604051611dea91906124f8565b60405180910390a350505050565b5f838311158290611e3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e36919061237c565b60405180910390fd5b505f8385611e4d91906130f0565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611e9157611e90612599565b5b604051908082528060200260200182016040528015611ebf5781602001602082028036833780820191505090505b50905030815f81518110611ed657611ed56129fc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f7a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f9e9190612aa5565b81600181518110611fb257611fb16129fc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120183060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461132b565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161207a9594939291906131da565b5f604051808303815f87803b158015612091575f80fd5b505af11580156120a3573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612129573d5f803e3d5ffd5b5050565b5f80830361213d575f905061219e565b5f828461214a9190612953565b9050828482612159919061325f565b14612199576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612190906132ff565b60405180910390fd5b809150505b92915050565b5f6121e583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122ab565b905092915050565b5f8183116121fb57826121fd565b815b905092915050565b5f8082846122139190612fa6565b905083811015612258576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224f90613367565b60405180910390fd5b8091505092915050565b5f6122a383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611df8565b905092915050565b5f80831182906122f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e8919061237c565b60405180910390fd5b505f83856122ff919061325f565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61234e8261230c565b6123588185612316565b9350612368818560208601612326565b61237181612334565b840191505092915050565b5f6020820190508181035f8301526123948184612344565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6123d6826123ad565b9050919050565b6123e6816123cc565b81146123f0575f80fd5b50565b5f81359050612401816123dd565b92915050565b5f819050919050565b61241981612407565b8114612423575f80fd5b50565b5f8135905061243481612410565b92915050565b5f80604083850312156124505761244f6123a5565b5b5f61245d858286016123f3565b925050602061246e85828601612426565b9150509250929050565b5f8115159050919050565b61248c81612478565b82525050565b5f6020820190506124a55f830184612483565b92915050565b5f80604083850312156124c1576124c06123a5565b5b5f6124ce85828601612426565b92505060206124df85828601612426565b9150509250929050565b6124f281612407565b82525050565b5f60208201905061250b5f8301846124e9565b92915050565b5f805f60608486031215612528576125276123a5565b5b5f612535868287016123f3565b9350506020612546868287016123f3565b925050604061255786828701612426565b9150509250925092565b5f60ff82169050919050565b61257681612561565b82525050565b5f60208201905061258f5f83018461256d565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6125cf82612334565b810181811067ffffffffffffffff821117156125ee576125ed612599565b5b80604052505050565b5f61260061239c565b905061260c82826125c6565b919050565b5f67ffffffffffffffff82111561262b5761262a612599565b5b602082029050602081019050919050565b5f80fd5b5f61265261264d84612611565b6125f7565b905080838252602082019050602084028301858111156126755761267461263c565b5b835b8181101561269e578061268a88826123f3565b845260208401935050602081019050612677565b5050509392505050565b5f82601f8301126126bc576126bb612595565b5b81356126cc848260208601612640565b91505092915050565b5f602082840312156126ea576126e96123a5565b5b5f82013567ffffffffffffffff811115612707576127066123a9565b5b612713848285016126a8565b91505092915050565b5f60208284031215612731576127306123a5565b5b5f61273e848285016123f3565b91505092915050565b612750816123cc565b82525050565b5f6020820190506127695f830184612747565b92915050565b5f8060408385031215612785576127846123a5565b5b5f612792858286016123f3565b92505060206127a3858286016123f3565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561282f5780860481111561280b5761280a6127ad565b5b600185161561281a5780820291505b8081029050612828856127da565b94506127ef565b94509492505050565b5f826128475760019050612902565b81612854575f9050612902565b816001811461286a5760028114612874576128a3565b6001915050612902565b60ff841115612886576128856127ad565b5b8360020a91508482111561289d5761289c6127ad565b5b50612902565b5060208310610133831016604e8410600b84101617156128d85782820a9050838111156128d3576128d26127ad565b5b612902565b6128e584848460016127e6565b925090508184048111156128fc576128fb6127ad565b5b81810290505b9392505050565b5f61291382612407565b915061291e83612561565b925061294b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612838565b905092915050565b5f61295d82612407565b915061296883612407565b925082820261297681612407565b9150828204841483151761298d5761298c6127ad565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6129c8602083612316565b91506129d382612994565b602082019050919050565b5f6020820190508181035f8301526129f5816129bc565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612a5d601783612316565b9150612a6882612a29565b602082019050919050565b5f6020820190508181035f830152612a8a81612a51565b9050919050565b5f81519050612a9f816123dd565b92915050565b5f60208284031215612aba57612ab96123a5565b5b5f612ac784828501612a91565b91505092915050565b5f604082019050612ae35f830185612747565b612af06020830184612747565b9392505050565b5f819050919050565b5f819050919050565b5f612b23612b1e612b1984612af7565b612b00565b612407565b9050919050565b612b3381612b09565b82525050565b5f60c082019050612b4c5f830189612747565b612b5960208301886124e9565b612b666040830187612b2a565b612b736060830186612b2a565b612b806080830185612747565b612b8d60a08301846124e9565b979650505050505050565b5f81519050612ba681612410565b92915050565b5f805f60608486031215612bc357612bc26123a5565b5b5f612bd086828701612b98565b9350506020612be186828701612b98565b9250506040612bf286828701612b98565b9150509250925092565b5f604082019050612c0f5f830185612747565b612c1c60208301846124e9565b9392505050565b612c2c81612478565b8114612c36575f80fd5b50565b5f81519050612c4781612c23565b92915050565b5f60208284031215612c6257612c616123a5565b5b5f612c6f84828501612c39565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612cd2602483612316565b9150612cdd82612c78565b604082019050919050565b5f6020820190508181035f830152612cff81612cc6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d60602283612316565b9150612d6b82612d06565b604082019050919050565b5f6020820190508181035f830152612d8d81612d54565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612dee602583612316565b9150612df982612d94565b604082019050919050565b5f6020820190508181035f830152612e1b81612de2565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612e7c602383612316565b9150612e8782612e22565b604082019050919050565b5f6020820190508181035f830152612ea981612e70565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612f0a602983612316565b9150612f1582612eb0565b604082019050919050565b5f6020820190508181035f830152612f3781612efe565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612f72601983612316565b9150612f7d82612f3e565b602082019050919050565b5f6020820190508181035f830152612f9f81612f66565b9050919050565b5f612fb082612407565b9150612fbb83612407565b9250828201905080821115612fd357612fd26127ad565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f61300d601a83612316565b915061301882612fd9565b602082019050919050565b5f6020820190508181035f83015261303a81613001565b9050919050565b5f61304b82612407565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361307d5761307c6127ad565b5b600182019050919050565b7f4f6e6c792031302073656c6c732070657220626c6f636b2100000000000000005f82015250565b5f6130bc601883612316565b91506130c782613088565b602082019050919050565b5f6020820190508181035f8301526130e9816130b0565b9050919050565b5f6130fa82612407565b915061310583612407565b925082820390508181111561311d5761311c6127ad565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613155816123cc565b82525050565b5f613166838361314c565b60208301905092915050565b5f602082019050919050565b5f61318882613123565b613192818561312d565b935061319d8361313d565b805f5b838110156131cd5781516131b4888261315b565b97506131bf83613172565b9250506001810190506131a0565b5085935050505092915050565b5f60a0820190506131ed5f8301886124e9565b6131fa6020830187612b2a565b818103604083015261320c818661317e565b905061321b6060830185612747565b61322860808301846124e9565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61326982612407565b915061327483612407565b92508261328457613283613232565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132e9602183612316565b91506132f48261328f565b604082019050919050565b5f6020820190508181035f830152613316816132dd565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613351601b83612316565b915061335c8261331d565b602082019050919050565b5f6020820190508181035f83015261337e81613345565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b4966f20cfd13170117b06392b795a7ac325e0f8e5e48c398d3a43360d6d64e964736f6c634300081a0033

Deployed Bytecode Sourcemap

3619:8463:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5516:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6349:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11356:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4711:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5793:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6518:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5702:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10410:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10580:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11731:348;;;;;;;;;;;;;:::i;:::-;;5896:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2700:148;;;;;;;;;;;;;:::i;:::-;;9971:159;;;;;;;;;;;;;:::i;:::-;;4520:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2486:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4583:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5607:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6023:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4647:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10671:671;;;;;;;;;;;;;:::i;:::-;;10238:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6198:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11516:209;;;;;;;;;;;;;:::i;:::-;;5516:83;5553:13;5586:5;;;;;;;;;;;;;;;;;5579:12;;5516:83;:::o;6349:161::-;6424:4;6441:39;6450:12;:10;:12::i;:::-;6464:7;6473:6;6441:8;:39::i;:::-;6498:4;6491:11;;6349:161;;;;:::o;11356:115::-;11431:4;11418:12;:17;;;;11458:5;11444:13;:19;;;;11356:115;;:::o;4711:54::-;;;;:::o;5793:95::-;5846:7;4334:1;4392:2;:13;;;;:::i;:::-;4377:12;:28;;;;:::i;:::-;5866:14;;5793:95;:::o;6518:313::-;6616:4;6633:36;6643:6;6651:9;6662:6;6633:9;:36::i;:::-;6680:121;6689:6;6697:12;:10;:12::i;:::-;6711:89;6749:6;6711:89;;;;;;;;;;;;;;;;;:11;:19;6723:6;6711:19;;;;;;;;;;;;;;;:33;6731:12;:10;:12::i;:::-;6711:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6680:8;:121::i;:::-;6819:4;6812:11;;6518:313;;;;;:::o;5702:83::-;5743:5;4334:1;5761:16;;5702:83;:::o;10410:162::-;2623:12;:10;:12::i;:::-;2613:22;;:6;;;;;;;;;;:22;;;2605:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10483:6:::1;10478:87;10499:6;:13;10495:1;:17;10478:87;;;10550:5;10532:4;:15;10537:6;10544:1;10537:9;;;;;;;;:::i;:::-;;;;;;;;10532:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10514:3;;;;;;;10478:87;;;;10410:162:::0;:::o;10580:83::-;10627:4;10648;:7;10653:1;10648:7;;;;;;;;;;;;;;;;;;;;;;;;;10641:14;;10580:83;;;:::o;11731:348::-;11795:10;;;;;;;;;;;11781:24;;:12;:10;:12::i;:::-;:24;;;11773:33;;;;;;11817:20;11838:24;11856:4;11838:9;:24::i;:::-;11817:45;;11889:1;11876:12;:14;11873:73;;;11904:30;11921:12;11904:16;:30::i;:::-;11873:73;11956:18;11975:21;11956:40;;12021:1;12010:10;:12;12007:65;;;12036:24;12049:10;12036:12;:24::i;:::-;12007:65;11762:317;;11731:348::o;5896:119::-;5962:7;5989:9;:18;5999:7;5989:18;;;;;;;;;;;;;;;;5982:25;;5896:119;;;:::o;2700:148::-;2623:12;:10;:12::i;:::-;2613:22;;:6;;;;;;;;;;:22;;;2605:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2807:1:::1;2770:40;;2791:6;::::0;::::1;;;;;;;;2770:40;;;;;;;;;;;;2838:1;2821:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2700:148::o:0;9971:159::-;2623:12;:10;:12::i;:::-;2613:22;;:6;;;;;;;;;;:22;;;2605:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4334:1:::1;4392:2;:13;;;;:::i;:::-;4377:12;:28;;;;:::i;:::-;10024:12;:22;;;;4334:1;4392:2;:13;;;;:::i;:::-;4377:12;:28;;;;:::i;:::-;10057:14;:22;;;;10095:27;4334:1;4392:2;:13;;;;:::i;:::-;4377:12;:28;;;;:::i;:::-;10095:27;;;;;;:::i;:::-;;;;;;;;9971:159::o:0;4520:56::-;;;;:::o;2486:79::-;2524:7;2551:6;;;;;;;;;;;2544:13;;2486:79;:::o;4583:57::-;;;;:::o;5607:87::-;5646:13;5679:7;;;;;;;;;;;;;;;;;5672:14;;5607:87;:::o;6023:167::-;6101:4;6118:42;6128:12;:10;:12::i;:::-;6142:9;6153:6;6118:9;:42::i;:::-;6178:4;6171:11;;6023:167;;;;:::o;4647:57::-;;;;:::o;10671:671::-;2623:12;:10;:12::i;:::-;2613:22;;:6;;;;;;;;;;:22;;;2605:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10735:11:::1;;;;;;;;;;;10734:12;10726:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10821:42;10784:15;;:80;;;;;;;;;;;;;;;;;;10875:58;10892:4;10907:15;;;;;;;;;;;4334:1;4392:2;:13;;;;:::i;:::-;4377:12;:28;;;;:::i;:::-;10875:8;:58::i;:::-;10978:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10960:55;;;11024:4;11031:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10960:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10944:13;;:110;;;;;;;;;;;;;;;;;;11065:15;;;;;;;;;;;:31;;;11104:21;11135:4;11141:24;11159:4;11141:9;:24::i;:::-;11166:1;11168::::0;11170:7:::1;:5;:7::i;:::-;11178:15;11065:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11212:13;;;;;;;;;;;11205:29;;;11243:15;;;;;;;;;;;11261:14;11205:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11301:4;11287:11;;:18;;;;;;;;;;;;;;;;;;11330:4;11316:11;;:18;;;;;;;;;;;;;;;;;;10671:671::o:0;10238:164::-;2623:12;:10;:12::i;:::-;2613:22;;:6;;;;;;;;;;:22;;;2605:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10312:6:::1;10307:88;10328:5;:12;10324:1;:16;10307:88;;;10379:4;10362;:14;10367:5;10373:1;10367:8;;;;;;;;:::i;:::-;;;;;;;;10362:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10342:3;;;;;;;10307:88;;;;10238:164:::0;:::o;6198:143::-;6279:7;6306:11;:18;6318:5;6306:18;;;;;;;;;;;;;;;:27;6325:7;6306:27;;;;;;;;;;;;;;;;6299:34;;6198:143;;;;:::o;11516:209::-;11580:10;;;;;;;;;;;11566:24;;:12;:10;:12::i;:::-;:24;;;11558:33;;;;;;11602:18;11621:21;11602:40;;11667:1;11656:10;:12;11653:65;;;11682:24;11695:10;11682:12;:24::i;:::-;11653:65;11547:178;11516:209::o;245:98::-;298:7;325:10;318:17;;245:98;:::o;6839:335::-;6949:1;6932:19;;:5;:19;;;6924:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7030:1;7011:21;;:7;:21;;;7003:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7112:6;7082:11;:18;7094:5;7082:18;;;;;;;;;;;;;;;:27;7101:7;7082:27;;;;;;;;;;;;;;;:36;;;;7150:7;7134:32;;7143:5;7134:32;;;7159:6;7134:32;;;;;;:::i;:::-;;;;;;;;6839:335;;;:::o;7182:2182::-;7286:1;7270:18;;:4;:18;;;7262:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7363:1;7349:16;;:2;:16;;;7341:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7433:1;7424:6;:10;7416:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7491:17;7533:7;:5;:7::i;:::-;7525:15;;:4;:15;;;;:32;;;;;7550:7;:5;:7::i;:::-;7544:13;;:2;:13;;;;7525:32;7521:1487;;;7583:4;:10;7588:4;7583:10;;;;;;;;;;;;;;;;;;;;;;;;;7582:11;:24;;;;;7598:4;:8;7603:2;7598:8;;;;;;;;;;;;;;;;;;;;;;;;;7597:9;7582:24;7574:33;;;;;;7634:76;7706:3;7634:67;7656:15;;7646:9;;:25;7645:55;;7686:14;;7645:55;;;7673:12;;7645:55;7634:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7622:88;;7739:13;;;;;;;;;;;7731:21;;:4;:21;;;:55;;;;;7770:15;;;;;;;;;;;7756:30;;:2;:30;;;;7731:55;:83;;;;;7792:18;:22;7811:2;7792:22;;;;;;;;;;;;;;;;;;;;;;;;;7790:24;7731:83;7727:313;;;7854:12;;7844:6;:22;;7836:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7949:14;;7939:6;7923:13;7933:2;7923:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7915:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8013:9;;:11;;;;;;;;;:::i;:::-;;;;;;7727:313;8065:13;;;;;;;;;;;8059:19;;:2;:19;;;:43;;;;;8097:4;8082:20;;:4;:20;;;;8059:43;8056:174;;;8135:79;8210:3;8135:70;8157:16;;8147:9;;:26;8146:58;;8189:15;;8146:58;;;8175:13;;8146:58;8135:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8123:91;;8056:174;8246:28;8277:24;8295:4;8277:9;:24::i;:::-;8246:55;;8321:6;;;;;;;;;;;8320:7;:30;;;;;8337:13;;;;;;;;;;;8331:19;;:2;:19;;;8320:30;:45;;;;;8354:11;;;;;;;;;;;8320:45;:89;;;;;8392:17;;8369:20;:40;8320:89;:123;;;;;8425:18;;8413:9;;:30;8320:123;8316:681;;;8483:13;;8468:12;:28;8464:90;;;8533:1;8521:9;:13;;;;8464:90;8592:2;8580:9;;:14;8572:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;8642:69;8659:51;8663:6;8671:38;8675:20;8697:11;;8671:3;:38::i;:::-;8659:3;:51::i;:::-;8642:16;:69::i;:::-;8730:26;8759:21;8730:50;;8824:1;8803:18;:22;8799:106;;;8850:35;8863:21;8850:12;:35::i;:::-;8799:106;8923:9;;:11;;;;;;;;;:::i;:::-;;;;;;8969:12;8953:13;:28;;;;8445:552;8316:681;7559:1449;7521:1487;9033:1;9023:9;:11;9020:161;;;9073:39;9102:9;9073;:24;9091:4;9073:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9048:9;:24;9066:4;9048:24;;;;;;;;;;;;;;;:64;;;;9153:4;9130:39;;9139:4;9130:39;;;9159:9;9130:39;;;;;;:::i;:::-;;;;;;;;9020:161;9207:27;9227:6;9207:9;:15;9217:4;9207:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9191:9;:15;9201:4;9191:15;;;;;;;;;;;;;;;:43;;;;9259:40;9277:21;9288:9;9277:6;:10;;:21;;;;:::i;:::-;9259:9;:13;9269:2;9259:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9245:9;:13;9255:2;9245:13;;;;;;;;;;;;;;;:54;;;;9330:2;9315:41;;9324:4;9315:41;;;9334:21;9345:9;9334:6;:10;;:21;;;;:::i;:::-;9315:41;;;;;;:::i;:::-;;;;;;;;7251:2113;7182:2182;;;:::o;1378:190::-;1464:7;1497:1;1492;:6;;1500:12;1484:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1524:9;1540:1;1536;:5;;;;:::i;:::-;1524:17;;1559:1;1552:8;;;1378:190;;;;;:::o;9480:483::-;5134:4;5125:6;;:13;;;;;;;;;;;;;;;;;;9558:21:::1;9596:1;9582:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9558:40;;9627:4;9609;9614:1;9609:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9653:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9643:4;9648:1;9643:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9686:62;9703:4;9718:15;;;;;;;;;;;9736:11;9686:8;:62::i;:::-;9759:15;;;;;;;;;;;:66;;;9840:11;9866:1;9882:4;9909;9929:15;9759:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9547:416;5170:5:::0;5161:6;;:14;;;;;;;;;;;;;;;;;;9480:483;:::o;10138:92::-;10195:10;;;;;;;;;;;:19;;:27;10215:6;10195:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10138:92;:::o;1576:246::-;1634:7;1663:1;1658;:6;1654:47;;1688:1;1681:8;;;;1654:47;1711:9;1727:1;1723;:5;;;;:::i;:::-;1711:17;;1756:1;1751;1747;:5;;;;:::i;:::-;:10;1739:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1813:1;1806:8;;;1576:246;;;;;:::o;1830:132::-;1888:7;1915:39;1919:1;1922;1915:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1908:46;;1830:132;;;;:::o;9374:98::-;9431:7;9458:1;9456;:3;9455:9;;9463:1;9455:9;;;9461:1;9455:9;9448:16;;9374:98;;;;:::o;1047:179::-;1105:7;1125:9;1141:1;1137;:5;;;;:::i;:::-;1125:17;;1166:1;1161;:6;;1153:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1217:1;1210:8;;;1047:179;;;;:::o;1234:136::-;1292:7;1319:43;1323:1;1326;1319:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1312:50;;1234:136;;;;:::o;1970:189::-;2056:7;2088:1;2084;:5;2091:12;2076:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2115:9;2131:1;2127;:5;;;;:::i;:::-;2115:17;;2150:1;2143:8;;;1970:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1242:75::-;1275:6;1308:2;1302:9;1292:19;;1242:75;:::o;1323:117::-;1432:1;1429;1422:12;1446:117;1555:1;1552;1545:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:474::-;3407:6;3415;3464:2;3452:9;3443:7;3439:23;3435:32;3432:119;;;3470:79;;:::i;:::-;3432:119;3590:1;3615:53;3660:7;3651:6;3640:9;3636:22;3615:53;:::i;:::-;3605:63;;3561:117;3717:2;3743:53;3788:7;3779:6;3768:9;3764:22;3743:53;:::i;:::-;3733:63;;3688:118;3339:474;;;;;:::o;3819:118::-;3906:24;3924:5;3906:24;:::i;:::-;3901:3;3894:37;3819:118;;:::o;3943:222::-;4036:4;4074:2;4063:9;4059:18;4051:26;;4087:71;4155:1;4144:9;4140:17;4131:6;4087:71;:::i;:::-;3943:222;;;;:::o;4171:619::-;4248:6;4256;4264;4313:2;4301:9;4292:7;4288:23;4284:32;4281:119;;;4319:79;;:::i;:::-;4281:119;4439:1;4464:53;4509:7;4500:6;4489:9;4485:22;4464:53;:::i;:::-;4454:63;;4410:117;4566:2;4592:53;4637:7;4628:6;4617:9;4613:22;4592:53;:::i;:::-;4582:63;;4537:118;4694:2;4720:53;4765:7;4756:6;4745:9;4741:22;4720:53;:::i;:::-;4710:63;;4665:118;4171:619;;;;;:::o;4796:86::-;4831:7;4871:4;4864:5;4860:16;4849:27;;4796:86;;;:::o;4888:112::-;4971:22;4987:5;4971:22;:::i;:::-;4966:3;4959:35;4888:112;;:::o;5006:214::-;5095:4;5133:2;5122:9;5118:18;5110:26;;5146:67;5210:1;5199:9;5195:17;5186:6;5146:67;:::i;:::-;5006:214;;;;:::o;5226:117::-;5335:1;5332;5325:12;5349:180;5397:77;5394:1;5387:88;5494:4;5491:1;5484:15;5518:4;5515:1;5508:15;5535:281;5618:27;5640:4;5618:27;:::i;:::-;5610:6;5606:40;5748:6;5736:10;5733:22;5712:18;5700:10;5697:34;5694:62;5691:88;;;5759:18;;:::i;:::-;5691:88;5799:10;5795:2;5788:22;5578:238;5535:281;;:::o;5822:129::-;5856:6;5883:20;;:::i;:::-;5873:30;;5912:33;5940:4;5932:6;5912:33;:::i;:::-;5822:129;;;:::o;5957:311::-;6034:4;6124:18;6116:6;6113:30;6110:56;;;6146:18;;:::i;:::-;6110:56;6196:4;6188:6;6184:17;6176:25;;6256:4;6250;6246:15;6238:23;;5957:311;;;:::o;6274:117::-;6383:1;6380;6373:12;6414:710;6510:5;6535:81;6551:64;6608:6;6551:64;:::i;:::-;6535:81;:::i;:::-;6526:90;;6636:5;6665:6;6658:5;6651:21;6699:4;6692:5;6688:16;6681:23;;6752:4;6744:6;6740:17;6732:6;6728:30;6781:3;6773:6;6770:15;6767:122;;;6800:79;;:::i;:::-;6767:122;6915:6;6898:220;6932:6;6927:3;6924:15;6898:220;;;7007:3;7036:37;7069:3;7057:10;7036:37;:::i;:::-;7031:3;7024:50;7103:4;7098:3;7094:14;7087:21;;6974:144;6958:4;6953:3;6949:14;6942:21;;6898:220;;;6902:21;6516:608;;6414:710;;;;;:::o;7147:370::-;7218:5;7267:3;7260:4;7252:6;7248:17;7244:27;7234:122;;7275:79;;:::i;:::-;7234:122;7392:6;7379:20;7417:94;7507:3;7499:6;7492:4;7484:6;7480:17;7417:94;:::i;:::-;7408:103;;7224:293;7147:370;;;;:::o;7523:539::-;7607:6;7656:2;7644:9;7635:7;7631:23;7627:32;7624:119;;;7662:79;;:::i;:::-;7624:119;7810:1;7799:9;7795:17;7782:31;7840:18;7832:6;7829:30;7826:117;;;7862:79;;:::i;:::-;7826:117;7967:78;8037:7;8028:6;8017:9;8013:22;7967:78;:::i;:::-;7957:88;;7753:302;7523:539;;;;:::o;8068:329::-;8127:6;8176:2;8164:9;8155:7;8151:23;8147:32;8144:119;;;8182:79;;:::i;:::-;8144:119;8302:1;8327:53;8372:7;8363:6;8352:9;8348:22;8327:53;:::i;:::-;8317:63;;8273:117;8068:329;;;;:::o;8403:118::-;8490:24;8508:5;8490:24;:::i;:::-;8485:3;8478:37;8403:118;;:::o;8527:222::-;8620:4;8658:2;8647:9;8643:18;8635:26;;8671:71;8739:1;8728:9;8724:17;8715:6;8671:71;:::i;:::-;8527:222;;;;:::o;8755:474::-;8823:6;8831;8880:2;8868:9;8859:7;8855:23;8851:32;8848:119;;;8886:79;;:::i;:::-;8848:119;9006:1;9031:53;9076:7;9067:6;9056:9;9052:22;9031:53;:::i;:::-;9021:63;;8977:117;9133:2;9159:53;9204:7;9195:6;9184:9;9180:22;9159:53;:::i;:::-;9149:63;;9104:118;8755:474;;;;;:::o;9235:180::-;9283:77;9280:1;9273:88;9380:4;9377:1;9370:15;9404:4;9401:1;9394:15;9421:102;9463:8;9510:5;9507:1;9503:13;9482:34;;9421:102;;;:::o;9529:848::-;9590:5;9597:4;9621:6;9612:15;;9645:5;9636:14;;9659:712;9680:1;9670:8;9667:15;9659:712;;;9775:4;9770:3;9766:14;9760:4;9757:24;9754:50;;;9784:18;;:::i;:::-;9754:50;9834:1;9824:8;9820:16;9817:451;;;10249:4;10242:5;10238:16;10229:25;;9817:451;10299:4;10293;10289:15;10281:23;;10329:32;10352:8;10329:32;:::i;:::-;10317:44;;9659:712;;;9529:848;;;;;;;:::o;10383:1073::-;10437:5;10628:8;10618:40;;10649:1;10640:10;;10651:5;;10618:40;10677:4;10667:36;;10694:1;10685:10;;10696:5;;10667:36;10763:4;10811:1;10806:27;;;;10847:1;10842:191;;;;10756:277;;10806:27;10824:1;10815:10;;10826:5;;;10842:191;10887:3;10877:8;10874:17;10871:43;;;10894:18;;:::i;:::-;10871:43;10943:8;10940:1;10936:16;10927:25;;10978:3;10971:5;10968:14;10965:40;;;10985:18;;:::i;:::-;10965:40;11018:5;;;10756:277;;11142:2;11132:8;11129:16;11123:3;11117:4;11114:13;11110:36;11092:2;11082:8;11079:16;11074:2;11068:4;11065:12;11061:35;11045:111;11042:246;;;11198:8;11192:4;11188:19;11179:28;;11233:3;11226:5;11223:14;11220:40;;;11240:18;;:::i;:::-;11220:40;11273:5;;11042:246;11313:42;11351:3;11341:8;11335:4;11332:1;11313:42;:::i;:::-;11298:57;;;;11387:4;11382:3;11378:14;11371:5;11368:25;11365:51;;;11396:18;;:::i;:::-;11365:51;11445:4;11438:5;11434:16;11425:25;;10383:1073;;;;;;:::o;11462:281::-;11520:5;11544:23;11562:4;11544:23;:::i;:::-;11536:31;;11588:25;11604:8;11588:25;:::i;:::-;11576:37;;11632:104;11669:66;11659:8;11653:4;11632:104;:::i;:::-;11623:113;;11462:281;;;;:::o;11749:410::-;11789:7;11812:20;11830:1;11812:20;:::i;:::-;11807:25;;11846:20;11864:1;11846:20;:::i;:::-;11841:25;;11901:1;11898;11894:9;11923:30;11941:11;11923:30;:::i;:::-;11912:41;;12102:1;12093:7;12089:15;12086:1;12083:22;12063:1;12056:9;12036:83;12013:139;;12132:18;;:::i;:::-;12013:139;11797:362;11749:410;;;;:::o;12165:182::-;12305:34;12301:1;12293:6;12289:14;12282:58;12165:182;:::o;12353:366::-;12495:3;12516:67;12580:2;12575:3;12516:67;:::i;:::-;12509:74;;12592:93;12681:3;12592:93;:::i;:::-;12710:2;12705:3;12701:12;12694:19;;12353:366;;;:::o;12725:419::-;12891:4;12929:2;12918:9;12914:18;12906:26;;12978:9;12972:4;12968:20;12964:1;12953:9;12949:17;12942:47;13006:131;13132:4;13006:131;:::i;:::-;12998:139;;12725:419;;;:::o;13150:180::-;13198:77;13195:1;13188:88;13295:4;13292:1;13285:15;13319:4;13316:1;13309:15;13336:173;13476:25;13472:1;13464:6;13460:14;13453:49;13336:173;:::o;13515:366::-;13657:3;13678:67;13742:2;13737:3;13678:67;:::i;:::-;13671:74;;13754:93;13843:3;13754:93;:::i;:::-;13872:2;13867:3;13863:12;13856:19;;13515:366;;;:::o;13887:419::-;14053:4;14091:2;14080:9;14076:18;14068:26;;14140:9;14134:4;14130:20;14126:1;14115:9;14111:17;14104:47;14168:131;14294:4;14168:131;:::i;:::-;14160:139;;13887:419;;;:::o;14312:143::-;14369:5;14400:6;14394:13;14385:22;;14416:33;14443:5;14416:33;:::i;:::-;14312:143;;;;:::o;14461:351::-;14531:6;14580:2;14568:9;14559:7;14555:23;14551:32;14548:119;;;14586:79;;:::i;:::-;14548:119;14706:1;14731:64;14787:7;14778:6;14767:9;14763:22;14731:64;:::i;:::-;14721:74;;14677:128;14461:351;;;;:::o;14818:332::-;14939:4;14977:2;14966:9;14962:18;14954:26;;14990:71;15058:1;15047:9;15043:17;15034:6;14990:71;:::i;:::-;15071:72;15139:2;15128:9;15124:18;15115:6;15071:72;:::i;:::-;14818:332;;;;;:::o;15156:85::-;15201:7;15230:5;15219:16;;15156:85;;;:::o;15247:60::-;15275:3;15296:5;15289:12;;15247:60;;;:::o;15313:158::-;15371:9;15404:61;15422:42;15431:32;15457:5;15431:32;:::i;:::-;15422:42;:::i;:::-;15404:61;:::i;:::-;15391:74;;15313:158;;;:::o;15477:147::-;15572:45;15611:5;15572:45;:::i;:::-;15567:3;15560:58;15477:147;;:::o;15630:807::-;15879:4;15917:3;15906:9;15902:19;15894:27;;15931:71;15999:1;15988:9;15984:17;15975:6;15931:71;:::i;:::-;16012:72;16080:2;16069:9;16065:18;16056:6;16012:72;:::i;:::-;16094:80;16170:2;16159:9;16155:18;16146:6;16094:80;:::i;:::-;16184;16260:2;16249:9;16245:18;16236:6;16184:80;:::i;:::-;16274:73;16342:3;16331:9;16327:19;16318:6;16274:73;:::i;:::-;16357;16425:3;16414:9;16410:19;16401:6;16357:73;:::i;:::-;15630:807;;;;;;;;;:::o;16443:143::-;16500:5;16531:6;16525:13;16516:22;;16547:33;16574:5;16547:33;:::i;:::-;16443:143;;;;:::o;16592:663::-;16680:6;16688;16696;16745:2;16733:9;16724:7;16720:23;16716:32;16713:119;;;16751:79;;:::i;:::-;16713:119;16871:1;16896:64;16952:7;16943:6;16932:9;16928:22;16896:64;:::i;:::-;16886:74;;16842:128;17009:2;17035:64;17091:7;17082:6;17071:9;17067:22;17035:64;:::i;:::-;17025:74;;16980:129;17148:2;17174:64;17230:7;17221:6;17210:9;17206:22;17174:64;:::i;:::-;17164:74;;17119:129;16592:663;;;;;:::o;17261:332::-;17382:4;17420:2;17409:9;17405:18;17397:26;;17433:71;17501:1;17490:9;17486:17;17477:6;17433:71;:::i;:::-;17514:72;17582:2;17571:9;17567:18;17558:6;17514:72;:::i;:::-;17261:332;;;;;:::o;17599:116::-;17669:21;17684:5;17669:21;:::i;:::-;17662:5;17659:32;17649:60;;17705:1;17702;17695:12;17649:60;17599:116;:::o;17721:137::-;17775:5;17806:6;17800:13;17791:22;;17822:30;17846:5;17822:30;:::i;:::-;17721:137;;;;:::o;17864:345::-;17931:6;17980:2;17968:9;17959:7;17955:23;17951:32;17948:119;;;17986:79;;:::i;:::-;17948:119;18106:1;18131:61;18184:7;18175:6;18164:9;18160:22;18131:61;:::i;:::-;18121:71;;18077:125;17864:345;;;;:::o;18215:223::-;18355:34;18351:1;18343:6;18339:14;18332:58;18424:6;18419:2;18411:6;18407:15;18400:31;18215:223;:::o;18444:366::-;18586:3;18607:67;18671:2;18666:3;18607:67;:::i;:::-;18600:74;;18683:93;18772:3;18683:93;:::i;:::-;18801:2;18796:3;18792:12;18785:19;;18444:366;;;:::o;18816:419::-;18982:4;19020:2;19009:9;19005:18;18997:26;;19069:9;19063:4;19059:20;19055:1;19044:9;19040:17;19033:47;19097:131;19223:4;19097:131;:::i;:::-;19089:139;;18816:419;;;:::o;19241:221::-;19381:34;19377:1;19369:6;19365:14;19358:58;19450:4;19445:2;19437:6;19433:15;19426:29;19241:221;:::o;19468:366::-;19610:3;19631:67;19695:2;19690:3;19631:67;:::i;:::-;19624:74;;19707:93;19796:3;19707:93;:::i;:::-;19825:2;19820:3;19816:12;19809:19;;19468:366;;;:::o;19840:419::-;20006:4;20044:2;20033:9;20029:18;20021:26;;20093:9;20087:4;20083:20;20079:1;20068:9;20064:17;20057:47;20121:131;20247:4;20121:131;:::i;:::-;20113:139;;19840:419;;;:::o;20265:224::-;20405:34;20401:1;20393:6;20389:14;20382:58;20474:7;20469:2;20461:6;20457:15;20450:32;20265:224;:::o;20495:366::-;20637:3;20658:67;20722:2;20717:3;20658:67;:::i;:::-;20651:74;;20734:93;20823:3;20734:93;:::i;:::-;20852:2;20847:3;20843:12;20836:19;;20495:366;;;:::o;20867:419::-;21033:4;21071:2;21060:9;21056:18;21048:26;;21120:9;21114:4;21110:20;21106:1;21095:9;21091:17;21084:47;21148:131;21274:4;21148:131;:::i;:::-;21140:139;;20867:419;;;:::o;21292:222::-;21432:34;21428:1;21420:6;21416:14;21409:58;21501:5;21496:2;21488:6;21484:15;21477:30;21292:222;:::o;21520:366::-;21662:3;21683:67;21747:2;21742:3;21683:67;:::i;:::-;21676:74;;21759:93;21848:3;21759:93;:::i;:::-;21877:2;21872:3;21868:12;21861:19;;21520:366;;;:::o;21892:419::-;22058:4;22096:2;22085:9;22081:18;22073:26;;22145:9;22139:4;22135:20;22131:1;22120:9;22116:17;22109:47;22173:131;22299:4;22173:131;:::i;:::-;22165:139;;21892:419;;;:::o;22317:228::-;22457:34;22453:1;22445:6;22441:14;22434:58;22526:11;22521:2;22513:6;22509:15;22502:36;22317:228;:::o;22551:366::-;22693:3;22714:67;22778:2;22773:3;22714:67;:::i;:::-;22707:74;;22790:93;22879:3;22790:93;:::i;:::-;22908:2;22903:3;22899:12;22892:19;;22551:366;;;:::o;22923:419::-;23089:4;23127:2;23116:9;23112:18;23104:26;;23176:9;23170:4;23166:20;23162:1;23151:9;23147:17;23140:47;23204:131;23330:4;23204:131;:::i;:::-;23196:139;;22923:419;;;:::o;23348:175::-;23488:27;23484:1;23476:6;23472:14;23465:51;23348:175;:::o;23529:366::-;23671:3;23692:67;23756:2;23751:3;23692:67;:::i;:::-;23685:74;;23768:93;23857:3;23768:93;:::i;:::-;23886:2;23881:3;23877:12;23870:19;;23529:366;;;:::o;23901:419::-;24067:4;24105:2;24094:9;24090:18;24082:26;;24154:9;24148:4;24144:20;24140:1;24129:9;24125:17;24118:47;24182:131;24308:4;24182:131;:::i;:::-;24174:139;;23901:419;;;:::o;24326:191::-;24366:3;24385:20;24403:1;24385:20;:::i;:::-;24380:25;;24419:20;24437:1;24419:20;:::i;:::-;24414:25;;24462:1;24459;24455:9;24448:16;;24483:3;24480:1;24477:10;24474:36;;;24490:18;;:::i;:::-;24474:36;24326:191;;;;:::o;24523:176::-;24663:28;24659:1;24651:6;24647:14;24640:52;24523:176;:::o;24705:366::-;24847:3;24868:67;24932:2;24927:3;24868:67;:::i;:::-;24861:74;;24944:93;25033:3;24944:93;:::i;:::-;25062:2;25057:3;25053:12;25046:19;;24705:366;;;:::o;25077:419::-;25243:4;25281:2;25270:9;25266:18;25258:26;;25330:9;25324:4;25320:20;25316:1;25305:9;25301:17;25294:47;25358:131;25484:4;25358:131;:::i;:::-;25350:139;;25077:419;;;:::o;25502:233::-;25541:3;25564:24;25582:5;25564:24;:::i;:::-;25555:33;;25610:66;25603:5;25600:77;25597:103;;25680:18;;:::i;:::-;25597:103;25727:1;25720:5;25716:13;25709:20;;25502:233;;;:::o;25741:174::-;25881:26;25877:1;25869:6;25865:14;25858:50;25741:174;:::o;25921:366::-;26063:3;26084:67;26148:2;26143:3;26084:67;:::i;:::-;26077:74;;26160:93;26249:3;26160:93;:::i;:::-;26278:2;26273:3;26269:12;26262:19;;25921:366;;;:::o;26293:419::-;26459:4;26497:2;26486:9;26482:18;26474:26;;26546:9;26540:4;26536:20;26532:1;26521:9;26517:17;26510:47;26574:131;26700:4;26574:131;:::i;:::-;26566:139;;26293:419;;;:::o;26718:194::-;26758:4;26778:20;26796:1;26778:20;:::i;:::-;26773:25;;26812:20;26830:1;26812:20;:::i;:::-;26807:25;;26856:1;26853;26849:9;26841:17;;26880:1;26874:4;26871:11;26868:37;;;26885:18;;:::i;:::-;26868:37;26718:194;;;;:::o;26918:114::-;26985:6;27019:5;27013:12;27003:22;;26918:114;;;:::o;27038:184::-;27137:11;27171:6;27166:3;27159:19;27211:4;27206:3;27202:14;27187:29;;27038:184;;;;:::o;27228:132::-;27295:4;27318:3;27310:11;;27348:4;27343:3;27339:14;27331:22;;27228:132;;;:::o;27366:108::-;27443:24;27461:5;27443:24;:::i;:::-;27438:3;27431:37;27366:108;;:::o;27480:179::-;27549:10;27570:46;27612:3;27604:6;27570:46;:::i;:::-;27648:4;27643:3;27639:14;27625:28;;27480:179;;;;:::o;27665:113::-;27735:4;27767;27762:3;27758:14;27750:22;;27665:113;;;:::o;27814:732::-;27933:3;27962:54;28010:5;27962:54;:::i;:::-;28032:86;28111:6;28106:3;28032:86;:::i;:::-;28025:93;;28142:56;28192:5;28142:56;:::i;:::-;28221:7;28252:1;28237:284;28262:6;28259:1;28256:13;28237:284;;;28338:6;28332:13;28365:63;28424:3;28409:13;28365:63;:::i;:::-;28358:70;;28451:60;28504:6;28451:60;:::i;:::-;28441:70;;28297:224;28284:1;28281;28277:9;28272:14;;28237:284;;;28241:14;28537:3;28530:10;;27938:608;;;27814:732;;;;:::o;28552:831::-;28815:4;28853:3;28842:9;28838:19;28830:27;;28867:71;28935:1;28924:9;28920:17;28911:6;28867:71;:::i;:::-;28948:80;29024:2;29013:9;29009:18;29000:6;28948:80;:::i;:::-;29075:9;29069:4;29065:20;29060:2;29049:9;29045:18;29038:48;29103:108;29206:4;29197:6;29103:108;:::i;:::-;29095:116;;29221:72;29289:2;29278:9;29274:18;29265:6;29221:72;:::i;:::-;29303:73;29371:3;29360:9;29356:19;29347:6;29303:73;:::i;:::-;28552:831;;;;;;;;:::o;29389:180::-;29437:77;29434:1;29427:88;29534:4;29531:1;29524:15;29558:4;29555:1;29548:15;29575:185;29615:1;29632:20;29650:1;29632:20;:::i;:::-;29627:25;;29666:20;29684:1;29666:20;:::i;:::-;29661:25;;29705:1;29695:35;;29710:18;;:::i;:::-;29695:35;29752:1;29749;29745:9;29740:14;;29575:185;;;;:::o;29766:220::-;29906:34;29902:1;29894:6;29890:14;29883:58;29975:3;29970:2;29962:6;29958:15;29951:28;29766:220;:::o;29992:366::-;30134:3;30155:67;30219:2;30214:3;30155:67;:::i;:::-;30148:74;;30231:93;30320:3;30231:93;:::i;:::-;30349:2;30344:3;30340:12;30333:19;;29992:366;;;:::o;30364:419::-;30530:4;30568:2;30557:9;30553:18;30545:26;;30617:9;30611:4;30607:20;30603:1;30592:9;30588:17;30581:47;30645:131;30771:4;30645:131;:::i;:::-;30637:139;;30364:419;;;:::o;30789:177::-;30929:29;30925:1;30917:6;30913:14;30906:53;30789:177;:::o;30972:366::-;31114:3;31135:67;31199:2;31194:3;31135:67;:::i;:::-;31128:74;;31211:93;31300:3;31211:93;:::i;:::-;31329:2;31324:3;31320:12;31313:19;;30972:366;;;:::o;31344:419::-;31510:4;31548:2;31537:9;31533:18;31525:26;;31597:9;31591:4;31587:20;31583:1;31572:9;31568:17;31561:47;31625:131;31751:4;31625:131;:::i;:::-;31617:139;;31344:419;;;:::o

Swarm Source

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