ETH Price: $3,390.29 (+1.26%)

Token

Good Girl (GG)
 

Overview

Max Total Supply

100,000,000,000,000,000 GG

Holders

54

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
258,700,592,338.55329732 GG

Value
$0.00
0x8befea5d8f2534142d570950fa8a6b3685d3f69c
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:
GoodGirl

Compiler Version
v0.8.5+commit.a4f2e591

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-11-12
*/

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

pragma solidity ^0.8.4;

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

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

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    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 GoodGirl is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100000000000 * 10**6 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    string private constant _name = unicode"Good Girl";
    string private constant _symbol = unicode"GG";
    
    uint8 private constant _decimals = 9;
    uint256 private _taxFee = 1;
    uint256 private _teamFee = 8;
    uint256 private _previousTaxFee = _taxFee;
    uint256 private _previousteamFee = _teamFee;
    address payable private w1;
    address payable private w2;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen = false;
    bool private inSwap = false;
    bool public limit = true;


    event MaxBuyAmountUpdated(uint _maxBuyAmount);
    event CooldownEnabledUpdated(bool _cooldown);
    event FeeMultiplierUpdated(uint _multiplier);
    event FeeRateUpdated(uint _rate);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
        constructor () {
        w1 = payable(0xE18fD80C724366c3a5c125dbD4cf35A4E5F1f736);
        w2 = payable(0x8559e0A859aDD7C1Bd8D33455a1648789432Ed3a);
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[w1] = true;
        _isExcludedFromFee[w2] = 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 tokenFromReflection(_rOwned[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 tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if(_taxFee == 0 && _teamFee == 0) return;
        _previousTaxFee = _taxFee;
        _previousteamFee = _teamFee;
        _taxFee = 0;
        _teamFee = 0;
    }
    
    function restoreAllFee() private {
        _taxFee = _previousTaxFee;
        _teamFee = _previousteamFee;
    }

    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 liftLimit() public onlyOwner(){
        require(limit == true, 'limit is already false');
            limit = false;
    }
    
    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");

    
        if(limit == true && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]){
            if(to != uniswapV2Pair && from == uniswapV2Pair){
                require(((balanceOf(to).add(amount)) <= 200000000000 * 10**4 * 10**9));
            }
            require(amount <= 100000000000 * 10**4 * 10**9, 'Transfer amount must be less');
            }

            uint256 contractTokenBalance = balanceOf(address(this));

            if(!inSwap && from != uniswapV2Pair && tradingOpen) {
                if(contractTokenBalance > 0) {
                    if(contractTokenBalance > balanceOf(uniswapV2Pair).mul(5).div(100)) {
                        contractTokenBalance = balanceOf(uniswapV2Pair).mul(5).div(100);
                    }
                    swapTokensForEth(contractTokenBalance);
                }
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        
        bool takeFee = true;

        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
            takeFee = false;
        }
        
        _tokenTransfer(from,to,amount,takeFee);
    }

    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 sendETHToFee(uint256 amount) private {
        w1.transfer(amount.div(2));
        w2.transfer(amount.div(2));
    }
    
    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        if(!takeFee)
            removeAllFee();
        _transferStandard(sender, recipient, amount);
        if(!takeFee)
            restoreAllFee();
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 

        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _taxFee, _teamFee);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if(rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);

        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _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);
        tradingOpen = true;
    }
    
    function setMarketingWallet(address payable _w1) external {
        require(_msgSender() == w1);
        w1 = _w1;
        _isExcludedFromFee[w1] = true;
    }

    function excludeFromFee(address payable ad) external {
        require(_msgSender() == w1);
        _isExcludedFromFee[ad] = true;
    }
    
    function includeToFee(address payable ad) external {
        require(_msgSender() == w1);
        _isExcludedFromFee[ad] = false;
    }

    function setTeamFee(uint256 team) external {
        require(_msgSender() == w1);
        require(team <= 10);
        _teamFee = team;
    }
        
    function setTaxFee(uint256 tax) external {
        require(_msgSender() == w1);
        require(tax <= 1);
        _taxFee = tax;
    }
 
    function manualswap() external {
        require(_msgSender() == w1);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == w1);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

}

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":"bool","name":"_cooldown","type":"bool"}],"name":"CooldownEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_multiplier","type":"uint256"}],"name":"FeeMultiplierUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_rate","type":"uint256"}],"name":"FeeRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxBuyAmount","type":"uint256"}],"name":"MaxBuyAmountUpdated","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":[{"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 payable","name":"ad","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"ad","type":"address"}],"name":"includeToFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"liftLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limit","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_w1","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tax","type":"uint256"}],"name":"setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"team","type":"uint256"}],"name":"setTeamFee","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"}]

60806040526a52b7d2dcc80cd2e40000006000196200001f919062000534565b6000196200002e9190620004ef565b60065560016008556008600955600854600a55600954600b556000600f60146101000a81548160ff0219169083151502179055506000600f60156101000a81548160ff0219169083151502179055506001600f60166101000a81548160ff021916908315150217905550348015620000a557600080fd5b506000620000b86200049060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073e18fd80c724366c3a5c125dbd4cf35a4e5f1f736600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550738559e0a859add7c1bd8d33455a1648789432ed3a600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065460026000620002176200049060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600560006200026b6200049860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004186200049060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a52b7d2dcc80cd2e4000000604051620004829190620004d2565b60405180910390a3620005ca565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620004cc816200052a565b82525050565b6000602082019050620004e96000830184620004c1565b92915050565b6000620004fc826200052a565b915062000509836200052a565b9250828210156200051f576200051e6200056c565b5b828203905092915050565b6000819050919050565b600062000541826200052a565b91506200054e836200052a565b9250826200056157620005606200059b565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6134e080620005da6000396000f3fe60806040526004361061012e5760003560e01c80638da5cb5b116100ab578063c4081a4c1161006f578063c4081a4c146103c7578063c9567bf9146103f0578063cf0848f714610407578063dd62ed3e14610430578063e6ec64ec1461046d578063ec3db0f01461049657610135565b80638da5cb5b146102f257806395d89b411461031d578063a4d66daf14610348578063a9059cbb14610373578063c3c8cd80146103b057610135565b8063437823ec116100f2578063437823ec146102355780635d098b381461025e5780636fc3eaec1461028757806370a082311461029e578063715018a6146102db57610135565b806306fdde031461013a578063095ea7b31461016557806318160ddd146101a257806323b872dd146101cd578063313ce5671461020a57610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104ad565b60405161015c9190612c16565b60405180910390f35b34801561017157600080fd5b5061018c60048036038101906101879190612793565b6104ea565b6040516101999190612bfb565b60405180910390f35b3480156101ae57600080fd5b506101b7610508565b6040516101c49190612db8565b60405180910390f35b3480156101d957600080fd5b506101f460048036038101906101ef9190612740565b61051b565b6040516102019190612bfb565b60405180910390f35b34801561021657600080fd5b5061021f6105f4565b60405161022c9190612e2d565b60405180910390f35b34801561024157600080fd5b5061025c600480360381019061025791906126d3565b6105fd565b005b34801561026a57600080fd5b50610285600480360381019061028091906126d3565b6106b9565b005b34801561029357600080fd5b5061029c6107d8565b005b3480156102aa57600080fd5b506102c560048036038101906102c09190612679565b61084a565b6040516102d29190612db8565b60405180910390f35b3480156102e757600080fd5b506102f061089b565b005b3480156102fe57600080fd5b506103076109ee565b6040516103149190612b2d565b60405180910390f35b34801561032957600080fd5b50610332610a17565b60405161033f9190612c16565b60405180910390f35b34801561035457600080fd5b5061035d610a54565b60405161036a9190612bfb565b60405180910390f35b34801561037f57600080fd5b5061039a60048036038101906103959190612793565b610a67565b6040516103a79190612bfb565b60405180910390f35b3480156103bc57600080fd5b506103c5610a85565b005b3480156103d357600080fd5b506103ee60048036038101906103e99190612800565b610aff565b005b3480156103fc57600080fd5b50610405610b78565b005b34801561041357600080fd5b5061042e600480360381019061042991906126d3565b611091565b005b34801561043c57600080fd5b5061045760048036038101906104529190612700565b61114d565b6040516104649190612db8565b60405180910390f35b34801561047957600080fd5b50610494600480360381019061048f9190612800565b6111d4565b005b3480156104a257600080fd5b506104ab61124d565b005b60606040518060400160405280600981526020017f476f6f64204769726c0000000000000000000000000000000000000000000000815250905090565b60006104fe6104f7611355565b848461135d565b6001905092915050565b60006a52b7d2dcc80cd2e4000000905090565b6000610528848484611528565b6105e984610534611355565b6105e48560405180606001604052806028815260200161348360289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061059a611355565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a769092919063ffffffff16565b61135d565b600190509392505050565b60006009905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661063e611355565b73ffffffffffffffffffffffffffffffffffffffff161461065e57600080fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106fa611355565b73ffffffffffffffffffffffffffffffffffffffff161461071a57600080fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610819611355565b73ffffffffffffffffffffffffffffffffffffffff161461083957600080fd5b600047905061084781611ada565b50565b6000610894600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bd5565b9050919050565b6108a3611355565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610930576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092790612d18565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600281526020017f4747000000000000000000000000000000000000000000000000000000000000815250905090565b600f60169054906101000a900460ff1681565b6000610a7b610a74611355565b8484611528565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ac6611355565b73ffffffffffffffffffffffffffffffffffffffff1614610ae657600080fd5b6000610af13061084a565b9050610afc81611c43565b50565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b40611355565b73ffffffffffffffffffffffffffffffffffffffff1614610b6057600080fd5b6001811115610b6e57600080fd5b8060088190555050565b610b80611355565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0490612d18565b60405180910390fd5b600f60149054906101000a900460ff1615610c5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5490612d98565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cef30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166a52b7d2dcc80cd2e400000061135d565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d3557600080fd5b505afa158015610d49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6d91906126a6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610dcf57600080fd5b505afa158015610de3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0791906126a6565b6040518363ffffffff1660e01b8152600401610e24929190612b48565b602060405180830381600087803b158015610e3e57600080fd5b505af1158015610e52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7691906126a6565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610eff3061084a565b600080610f0a6109ee565b426040518863ffffffff1660e01b8152600401610f2c96959493929190612b9a565b6060604051808303818588803b158015610f4557600080fd5b505af1158015610f59573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f7e919061282d565b505050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611020929190612b71565b602060405180830381600087803b15801561103a57600080fd5b505af115801561104e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107291906127d3565b506001600f60146101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110d2611355565b73ffffffffffffffffffffffffffffffffffffffff16146110f257600080fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611215611355565b73ffffffffffffffffffffffffffffffffffffffff161461123557600080fd5b600a81111561124357600080fd5b8060098190555050565b611255611355565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d990612d18565b60405180910390fd5b60011515600f60169054906101000a900460ff16151514611338576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132f90612c58565b60405180910390fd5b6000600f60166101000a81548160ff021916908315150217905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c490612d78565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561143d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143490612c98565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161151b9190612db8565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611598576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158f90612d58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611608576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ff90612c38565b60405180910390fd5b6000811161164b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164290612d38565b60405180910390fd5b60011515600f60169054906101000a900460ff1615151480156116b85750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561170e5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561184457600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156117be5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156117f6576a01a784379d99db420000006117ea826117dc8561084a565b611ecb90919063ffffffff16565b11156117f557600080fd5b5b69d3c21bcecceda1000000811115611843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183a90612cd8565b60405180910390fd5b5b600061184f3061084a565b9050600f60159054906101000a900460ff161580156118bc5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156118d45750600f60149054906101000a900460ff165b156119b25760008111156119985761193360646119256005611917600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661084a565b611f2990919063ffffffff16565b611fa490919063ffffffff16565b81111561198e5761198b606461197d600561196f600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661084a565b611f2990919063ffffffff16565b611fa490919063ffffffff16565b90505b61199781611c43565b5b600047905060008111156119b0576119af47611ada565b5b505b600060019050600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a595750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611a6357600090505b611a6f85858584611fee565b5050505050565b6000838311158290611abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab59190612c16565b60405180910390fd5b5060008385611acd9190612f7e565b9050809150509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611b2a600284611fa490919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611b55573d6000803e3d6000fd5b50600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611ba6600284611fa490919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611bd1573d6000803e3d6000fd5b5050565b6000600654821115611c1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1390612c78565b60405180910390fd5b6000611c2661201b565b9050611c3b8184611fa490919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c7b57611c7a6130eb565b5b604051908082528060200260200182016040528015611ca95781602001602082028036833780820191505090505b5090503081600081518110611cc157611cc06130bc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611d6357600080fd5b505afa158015611d77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d9b91906126a6565b81600181518110611daf57611dae6130bc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e1630600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461135d565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e7a959493929190612dd3565b600060405180830381600087803b158015611e9457600080fd5b505af1158015611ea8573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b6000808284611eda9190612e9d565b905083811015611f1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1690612cb8565b60405180910390fd5b8091505092915050565b600080831415611f3c5760009050611f9e565b60008284611f4a9190612f24565b9050828482611f599190612ef3565b14611f99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9090612cf8565b60405180910390fd5b809150505b92915050565b6000611fe683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612046565b905092915050565b80611ffc57611ffb6120a9565b5b6120078484846120ec565b80612015576120146122b7565b5b50505050565b60008060006120286122cb565b9150915061203f8183611fa490919063ffffffff16565b9250505090565b6000808311829061208d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120849190612c16565b60405180910390fd5b506000838561209c9190612ef3565b9050809150509392505050565b60006008541480156120bd57506000600954145b156120c7576120ea565b600854600a81905550600954600b81905550600060088190555060006009819055505b565b6000806000806000806120fe87612333565b95509550955095509550955061215c86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461239b90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121f185600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ecb90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061223d816123e5565b61224784836124a2565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516122a49190612db8565b60405180910390a3505050505050505050565b600a54600881905550600b54600981905550565b6000806000600654905060006a52b7d2dcc80cd2e400000090506123056a52b7d2dcc80cd2e4000000600654611fa490919063ffffffff16565b821015612326576006546a52b7d2dcc80cd2e400000093509350505061232f565b81819350935050505b9091565b60008060008060008060008060006123508a6008546009546124dc565b925092509250600061236061201b565b905060008060006123738e878787612572565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006123dd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a76565b905092915050565b60006123ef61201b565b905060006124068284611f2990919063ffffffff16565b905061245a81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ecb90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6124b78260065461239b90919063ffffffff16565b6006819055506124d281600754611ecb90919063ffffffff16565b6007819055505050565b60008060008061250860646124fa888a611f2990919063ffffffff16565b611fa490919063ffffffff16565b905060006125326064612524888b611f2990919063ffffffff16565b611fa490919063ffffffff16565b9050600061255b8261254d858c61239b90919063ffffffff16565b61239b90919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061258b8589611f2990919063ffffffff16565b905060006125a28689611f2990919063ffffffff16565b905060006125b98789611f2990919063ffffffff16565b905060006125e2826125d4858761239b90919063ffffffff16565b61239b90919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008135905061260a81613426565b92915050565b60008151905061261f81613426565b92915050565b6000813590506126348161343d565b92915050565b60008151905061264981613454565b92915050565b60008135905061265e8161346b565b92915050565b6000815190506126738161346b565b92915050565b60006020828403121561268f5761268e61311a565b5b600061269d848285016125fb565b91505092915050565b6000602082840312156126bc576126bb61311a565b5b60006126ca84828501612610565b91505092915050565b6000602082840312156126e9576126e861311a565b5b60006126f784828501612625565b91505092915050565b600080604083850312156127175761271661311a565b5b6000612725858286016125fb565b9250506020612736858286016125fb565b9150509250929050565b6000806000606084860312156127595761275861311a565b5b6000612767868287016125fb565b9350506020612778868287016125fb565b92505060406127898682870161264f565b9150509250925092565b600080604083850312156127aa576127a961311a565b5b60006127b8858286016125fb565b92505060206127c98582860161264f565b9150509250929050565b6000602082840312156127e9576127e861311a565b5b60006127f78482850161263a565b91505092915050565b6000602082840312156128165761281561311a565b5b60006128248482850161264f565b91505092915050565b6000806000606084860312156128465761284561311a565b5b600061285486828701612664565b935050602061286586828701612664565b925050604061287686828701612664565b9150509250925092565b600061288c8383612898565b60208301905092915050565b6128a181612fb2565b82525050565b6128b081612fb2565b82525050565b60006128c182612e58565b6128cb8185612e7b565b93506128d683612e48565b8060005b838110156129075781516128ee8882612880565b97506128f983612e6e565b9250506001810190506128da565b5085935050505092915050565b61291d81612fd6565b82525050565b61292c81613019565b82525050565b600061293d82612e63565b6129478185612e8c565b935061295781856020860161302b565b6129608161311f565b840191505092915050565b6000612978602383612e8c565b915061298382613130565b604082019050919050565b600061299b601683612e8c565b91506129a68261317f565b602082019050919050565b60006129be602a83612e8c565b91506129c9826131a8565b604082019050919050565b60006129e1602283612e8c565b91506129ec826131f7565b604082019050919050565b6000612a04601b83612e8c565b9150612a0f82613246565b602082019050919050565b6000612a27601c83612e8c565b9150612a328261326f565b602082019050919050565b6000612a4a602183612e8c565b9150612a5582613298565b604082019050919050565b6000612a6d602083612e8c565b9150612a78826132e7565b602082019050919050565b6000612a90602983612e8c565b9150612a9b82613310565b604082019050919050565b6000612ab3602583612e8c565b9150612abe8261335f565b604082019050919050565b6000612ad6602483612e8c565b9150612ae1826133ae565b604082019050919050565b6000612af9601783612e8c565b9150612b04826133fd565b602082019050919050565b612b1881613002565b82525050565b612b278161300c565b82525050565b6000602082019050612b4260008301846128a7565b92915050565b6000604082019050612b5d60008301856128a7565b612b6a60208301846128a7565b9392505050565b6000604082019050612b8660008301856128a7565b612b936020830184612b0f565b9392505050565b600060c082019050612baf60008301896128a7565b612bbc6020830188612b0f565b612bc96040830187612923565b612bd66060830186612923565b612be360808301856128a7565b612bf060a0830184612b0f565b979650505050505050565b6000602082019050612c106000830184612914565b92915050565b60006020820190508181036000830152612c308184612932565b905092915050565b60006020820190508181036000830152612c518161296b565b9050919050565b60006020820190508181036000830152612c718161298e565b9050919050565b60006020820190508181036000830152612c91816129b1565b9050919050565b60006020820190508181036000830152612cb1816129d4565b9050919050565b60006020820190508181036000830152612cd1816129f7565b9050919050565b60006020820190508181036000830152612cf181612a1a565b9050919050565b60006020820190508181036000830152612d1181612a3d565b9050919050565b60006020820190508181036000830152612d3181612a60565b9050919050565b60006020820190508181036000830152612d5181612a83565b9050919050565b60006020820190508181036000830152612d7181612aa6565b9050919050565b60006020820190508181036000830152612d9181612ac9565b9050919050565b60006020820190508181036000830152612db181612aec565b9050919050565b6000602082019050612dcd6000830184612b0f565b92915050565b600060a082019050612de86000830188612b0f565b612df56020830187612923565b8181036040830152612e0781866128b6565b9050612e1660608301856128a7565b612e236080830184612b0f565b9695505050505050565b6000602082019050612e426000830184612b1e565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612ea882613002565b9150612eb383613002565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612ee857612ee761305e565b5b828201905092915050565b6000612efe82613002565b9150612f0983613002565b925082612f1957612f1861308d565b5b828204905092915050565b6000612f2f82613002565b9150612f3a83613002565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612f7357612f7261305e565b5b828202905092915050565b6000612f8982613002565b9150612f9483613002565b925082821015612fa757612fa661305e565b5b828203905092915050565b6000612fbd82612fe2565b9050919050565b6000612fcf82612fe2565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061302482613002565b9050919050565b60005b8381101561304957808201518184015260208101905061302e565b83811115613058576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f6c696d697420697320616c72656164792066616c736500000000000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5472616e7366657220616d6f756e74206d757374206265206c65737300000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b61342f81612fb2565b811461343a57600080fd5b50565b61344681612fc4565b811461345157600080fd5b50565b61345d81612fd6565b811461346857600080fd5b50565b61347481613002565b811461347f57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203325a6010d885aba49b58dd3b088812b0a1cc3f3ad6346f83234c124b4435d6f64736f6c63430008050033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c80638da5cb5b116100ab578063c4081a4c1161006f578063c4081a4c146103c7578063c9567bf9146103f0578063cf0848f714610407578063dd62ed3e14610430578063e6ec64ec1461046d578063ec3db0f01461049657610135565b80638da5cb5b146102f257806395d89b411461031d578063a4d66daf14610348578063a9059cbb14610373578063c3c8cd80146103b057610135565b8063437823ec116100f2578063437823ec146102355780635d098b381461025e5780636fc3eaec1461028757806370a082311461029e578063715018a6146102db57610135565b806306fdde031461013a578063095ea7b31461016557806318160ddd146101a257806323b872dd146101cd578063313ce5671461020a57610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104ad565b60405161015c9190612c16565b60405180910390f35b34801561017157600080fd5b5061018c60048036038101906101879190612793565b6104ea565b6040516101999190612bfb565b60405180910390f35b3480156101ae57600080fd5b506101b7610508565b6040516101c49190612db8565b60405180910390f35b3480156101d957600080fd5b506101f460048036038101906101ef9190612740565b61051b565b6040516102019190612bfb565b60405180910390f35b34801561021657600080fd5b5061021f6105f4565b60405161022c9190612e2d565b60405180910390f35b34801561024157600080fd5b5061025c600480360381019061025791906126d3565b6105fd565b005b34801561026a57600080fd5b50610285600480360381019061028091906126d3565b6106b9565b005b34801561029357600080fd5b5061029c6107d8565b005b3480156102aa57600080fd5b506102c560048036038101906102c09190612679565b61084a565b6040516102d29190612db8565b60405180910390f35b3480156102e757600080fd5b506102f061089b565b005b3480156102fe57600080fd5b506103076109ee565b6040516103149190612b2d565b60405180910390f35b34801561032957600080fd5b50610332610a17565b60405161033f9190612c16565b60405180910390f35b34801561035457600080fd5b5061035d610a54565b60405161036a9190612bfb565b60405180910390f35b34801561037f57600080fd5b5061039a60048036038101906103959190612793565b610a67565b6040516103a79190612bfb565b60405180910390f35b3480156103bc57600080fd5b506103c5610a85565b005b3480156103d357600080fd5b506103ee60048036038101906103e99190612800565b610aff565b005b3480156103fc57600080fd5b50610405610b78565b005b34801561041357600080fd5b5061042e600480360381019061042991906126d3565b611091565b005b34801561043c57600080fd5b5061045760048036038101906104529190612700565b61114d565b6040516104649190612db8565b60405180910390f35b34801561047957600080fd5b50610494600480360381019061048f9190612800565b6111d4565b005b3480156104a257600080fd5b506104ab61124d565b005b60606040518060400160405280600981526020017f476f6f64204769726c0000000000000000000000000000000000000000000000815250905090565b60006104fe6104f7611355565b848461135d565b6001905092915050565b60006a52b7d2dcc80cd2e4000000905090565b6000610528848484611528565b6105e984610534611355565b6105e48560405180606001604052806028815260200161348360289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061059a611355565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a769092919063ffffffff16565b61135d565b600190509392505050565b60006009905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661063e611355565b73ffffffffffffffffffffffffffffffffffffffff161461065e57600080fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106fa611355565b73ffffffffffffffffffffffffffffffffffffffff161461071a57600080fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610819611355565b73ffffffffffffffffffffffffffffffffffffffff161461083957600080fd5b600047905061084781611ada565b50565b6000610894600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bd5565b9050919050565b6108a3611355565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610930576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092790612d18565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600281526020017f4747000000000000000000000000000000000000000000000000000000000000815250905090565b600f60169054906101000a900460ff1681565b6000610a7b610a74611355565b8484611528565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ac6611355565b73ffffffffffffffffffffffffffffffffffffffff1614610ae657600080fd5b6000610af13061084a565b9050610afc81611c43565b50565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b40611355565b73ffffffffffffffffffffffffffffffffffffffff1614610b6057600080fd5b6001811115610b6e57600080fd5b8060088190555050565b610b80611355565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0490612d18565b60405180910390fd5b600f60149054906101000a900460ff1615610c5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5490612d98565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cef30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166a52b7d2dcc80cd2e400000061135d565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d3557600080fd5b505afa158015610d49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6d91906126a6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610dcf57600080fd5b505afa158015610de3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0791906126a6565b6040518363ffffffff1660e01b8152600401610e24929190612b48565b602060405180830381600087803b158015610e3e57600080fd5b505af1158015610e52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7691906126a6565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610eff3061084a565b600080610f0a6109ee565b426040518863ffffffff1660e01b8152600401610f2c96959493929190612b9a565b6060604051808303818588803b158015610f4557600080fd5b505af1158015610f59573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f7e919061282d565b505050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611020929190612b71565b602060405180830381600087803b15801561103a57600080fd5b505af115801561104e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107291906127d3565b506001600f60146101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110d2611355565b73ffffffffffffffffffffffffffffffffffffffff16146110f257600080fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611215611355565b73ffffffffffffffffffffffffffffffffffffffff161461123557600080fd5b600a81111561124357600080fd5b8060098190555050565b611255611355565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d990612d18565b60405180910390fd5b60011515600f60169054906101000a900460ff16151514611338576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132f90612c58565b60405180910390fd5b6000600f60166101000a81548160ff021916908315150217905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c490612d78565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561143d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143490612c98565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161151b9190612db8565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611598576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158f90612d58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611608576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ff90612c38565b60405180910390fd5b6000811161164b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164290612d38565b60405180910390fd5b60011515600f60169054906101000a900460ff1615151480156116b85750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561170e5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561184457600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156117be5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156117f6576a01a784379d99db420000006117ea826117dc8561084a565b611ecb90919063ffffffff16565b11156117f557600080fd5b5b69d3c21bcecceda1000000811115611843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183a90612cd8565b60405180910390fd5b5b600061184f3061084a565b9050600f60159054906101000a900460ff161580156118bc5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156118d45750600f60149054906101000a900460ff165b156119b25760008111156119985761193360646119256005611917600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661084a565b611f2990919063ffffffff16565b611fa490919063ffffffff16565b81111561198e5761198b606461197d600561196f600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661084a565b611f2990919063ffffffff16565b611fa490919063ffffffff16565b90505b61199781611c43565b5b600047905060008111156119b0576119af47611ada565b5b505b600060019050600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a595750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611a6357600090505b611a6f85858584611fee565b5050505050565b6000838311158290611abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab59190612c16565b60405180910390fd5b5060008385611acd9190612f7e565b9050809150509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611b2a600284611fa490919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611b55573d6000803e3d6000fd5b50600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611ba6600284611fa490919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611bd1573d6000803e3d6000fd5b5050565b6000600654821115611c1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1390612c78565b60405180910390fd5b6000611c2661201b565b9050611c3b8184611fa490919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c7b57611c7a6130eb565b5b604051908082528060200260200182016040528015611ca95781602001602082028036833780820191505090505b5090503081600081518110611cc157611cc06130bc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611d6357600080fd5b505afa158015611d77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d9b91906126a6565b81600181518110611daf57611dae6130bc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e1630600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461135d565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e7a959493929190612dd3565b600060405180830381600087803b158015611e9457600080fd5b505af1158015611ea8573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b6000808284611eda9190612e9d565b905083811015611f1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1690612cb8565b60405180910390fd5b8091505092915050565b600080831415611f3c5760009050611f9e565b60008284611f4a9190612f24565b9050828482611f599190612ef3565b14611f99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9090612cf8565b60405180910390fd5b809150505b92915050565b6000611fe683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612046565b905092915050565b80611ffc57611ffb6120a9565b5b6120078484846120ec565b80612015576120146122b7565b5b50505050565b60008060006120286122cb565b9150915061203f8183611fa490919063ffffffff16565b9250505090565b6000808311829061208d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120849190612c16565b60405180910390fd5b506000838561209c9190612ef3565b9050809150509392505050565b60006008541480156120bd57506000600954145b156120c7576120ea565b600854600a81905550600954600b81905550600060088190555060006009819055505b565b6000806000806000806120fe87612333565b95509550955095509550955061215c86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461239b90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121f185600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ecb90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061223d816123e5565b61224784836124a2565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516122a49190612db8565b60405180910390a3505050505050505050565b600a54600881905550600b54600981905550565b6000806000600654905060006a52b7d2dcc80cd2e400000090506123056a52b7d2dcc80cd2e4000000600654611fa490919063ffffffff16565b821015612326576006546a52b7d2dcc80cd2e400000093509350505061232f565b81819350935050505b9091565b60008060008060008060008060006123508a6008546009546124dc565b925092509250600061236061201b565b905060008060006123738e878787612572565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006123dd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a76565b905092915050565b60006123ef61201b565b905060006124068284611f2990919063ffffffff16565b905061245a81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ecb90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6124b78260065461239b90919063ffffffff16565b6006819055506124d281600754611ecb90919063ffffffff16565b6007819055505050565b60008060008061250860646124fa888a611f2990919063ffffffff16565b611fa490919063ffffffff16565b905060006125326064612524888b611f2990919063ffffffff16565b611fa490919063ffffffff16565b9050600061255b8261254d858c61239b90919063ffffffff16565b61239b90919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061258b8589611f2990919063ffffffff16565b905060006125a28689611f2990919063ffffffff16565b905060006125b98789611f2990919063ffffffff16565b905060006125e2826125d4858761239b90919063ffffffff16565b61239b90919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008135905061260a81613426565b92915050565b60008151905061261f81613426565b92915050565b6000813590506126348161343d565b92915050565b60008151905061264981613454565b92915050565b60008135905061265e8161346b565b92915050565b6000815190506126738161346b565b92915050565b60006020828403121561268f5761268e61311a565b5b600061269d848285016125fb565b91505092915050565b6000602082840312156126bc576126bb61311a565b5b60006126ca84828501612610565b91505092915050565b6000602082840312156126e9576126e861311a565b5b60006126f784828501612625565b91505092915050565b600080604083850312156127175761271661311a565b5b6000612725858286016125fb565b9250506020612736858286016125fb565b9150509250929050565b6000806000606084860312156127595761275861311a565b5b6000612767868287016125fb565b9350506020612778868287016125fb565b92505060406127898682870161264f565b9150509250925092565b600080604083850312156127aa576127a961311a565b5b60006127b8858286016125fb565b92505060206127c98582860161264f565b9150509250929050565b6000602082840312156127e9576127e861311a565b5b60006127f78482850161263a565b91505092915050565b6000602082840312156128165761281561311a565b5b60006128248482850161264f565b91505092915050565b6000806000606084860312156128465761284561311a565b5b600061285486828701612664565b935050602061286586828701612664565b925050604061287686828701612664565b9150509250925092565b600061288c8383612898565b60208301905092915050565b6128a181612fb2565b82525050565b6128b081612fb2565b82525050565b60006128c182612e58565b6128cb8185612e7b565b93506128d683612e48565b8060005b838110156129075781516128ee8882612880565b97506128f983612e6e565b9250506001810190506128da565b5085935050505092915050565b61291d81612fd6565b82525050565b61292c81613019565b82525050565b600061293d82612e63565b6129478185612e8c565b935061295781856020860161302b565b6129608161311f565b840191505092915050565b6000612978602383612e8c565b915061298382613130565b604082019050919050565b600061299b601683612e8c565b91506129a68261317f565b602082019050919050565b60006129be602a83612e8c565b91506129c9826131a8565b604082019050919050565b60006129e1602283612e8c565b91506129ec826131f7565b604082019050919050565b6000612a04601b83612e8c565b9150612a0f82613246565b602082019050919050565b6000612a27601c83612e8c565b9150612a328261326f565b602082019050919050565b6000612a4a602183612e8c565b9150612a5582613298565b604082019050919050565b6000612a6d602083612e8c565b9150612a78826132e7565b602082019050919050565b6000612a90602983612e8c565b9150612a9b82613310565b604082019050919050565b6000612ab3602583612e8c565b9150612abe8261335f565b604082019050919050565b6000612ad6602483612e8c565b9150612ae1826133ae565b604082019050919050565b6000612af9601783612e8c565b9150612b04826133fd565b602082019050919050565b612b1881613002565b82525050565b612b278161300c565b82525050565b6000602082019050612b4260008301846128a7565b92915050565b6000604082019050612b5d60008301856128a7565b612b6a60208301846128a7565b9392505050565b6000604082019050612b8660008301856128a7565b612b936020830184612b0f565b9392505050565b600060c082019050612baf60008301896128a7565b612bbc6020830188612b0f565b612bc96040830187612923565b612bd66060830186612923565b612be360808301856128a7565b612bf060a0830184612b0f565b979650505050505050565b6000602082019050612c106000830184612914565b92915050565b60006020820190508181036000830152612c308184612932565b905092915050565b60006020820190508181036000830152612c518161296b565b9050919050565b60006020820190508181036000830152612c718161298e565b9050919050565b60006020820190508181036000830152612c91816129b1565b9050919050565b60006020820190508181036000830152612cb1816129d4565b9050919050565b60006020820190508181036000830152612cd1816129f7565b9050919050565b60006020820190508181036000830152612cf181612a1a565b9050919050565b60006020820190508181036000830152612d1181612a3d565b9050919050565b60006020820190508181036000830152612d3181612a60565b9050919050565b60006020820190508181036000830152612d5181612a83565b9050919050565b60006020820190508181036000830152612d7181612aa6565b9050919050565b60006020820190508181036000830152612d9181612ac9565b9050919050565b60006020820190508181036000830152612db181612aec565b9050919050565b6000602082019050612dcd6000830184612b0f565b92915050565b600060a082019050612de86000830188612b0f565b612df56020830187612923565b8181036040830152612e0781866128b6565b9050612e1660608301856128a7565b612e236080830184612b0f565b9695505050505050565b6000602082019050612e426000830184612b1e565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612ea882613002565b9150612eb383613002565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612ee857612ee761305e565b5b828201905092915050565b6000612efe82613002565b9150612f0983613002565b925082612f1957612f1861308d565b5b828204905092915050565b6000612f2f82613002565b9150612f3a83613002565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612f7357612f7261305e565b5b828202905092915050565b6000612f8982613002565b9150612f9483613002565b925082821015612fa757612fa661305e565b5b828203905092915050565b6000612fbd82612fe2565b9050919050565b6000612fcf82612fe2565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061302482613002565b9050919050565b60005b8381101561304957808201518184015260208101905061302e565b83811115613058576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f6c696d697420697320616c72656164792066616c736500000000000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5472616e7366657220616d6f756e74206d757374206265206c65737300000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b61342f81612fb2565b811461343a57600080fd5b50565b61344681612fc4565b811461345157600080fd5b50565b61345d81612fd6565b811461346857600080fd5b50565b61347481613002565b811461347f57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203325a6010d885aba49b58dd3b088812b0a1cc3f3ad6346f83234c124b4435d6f64736f6c63430008050033

Deployed Bytecode Sourcemap

3838:11261:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5696:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6548:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5973:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6717:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5882:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14113:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13942:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14913:181;;;;;;;;;;;;;:::i;:::-;;6076:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2917:148;;;;;;;;;;;;;:::i;:::-;;2703:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5787:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4924:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6222:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14719:182;;;;;;;;;;;;;:::i;:::-;;14571:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13221:709;;;;;;;;;;;;;:::i;:::-;;14264:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6397:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14410:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7994:134;;;;;;;;;;;;;:::i;:::-;;5696:83;5733:13;5766:5;;;;;;;;;;;;;;;;;5759:12;;5696:83;:::o;6548:161::-;6623:4;6640:39;6649:12;:10;:12::i;:::-;6663:7;6672:6;6640:8;:39::i;:::-;6697:4;6690:11;;6548:161;;;;:::o;5973:95::-;6026:7;4245:28;6046:14;;5973:95;:::o;6717:313::-;6815:4;6832:36;6842:6;6850:9;6861:6;6832:9;:36::i;:::-;6879:121;6888:6;6896:12;:10;:12::i;:::-;6910:89;6948:6;6910:89;;;;;;;;;;;;;;;;;:11;:19;6922:6;6910:19;;;;;;;;;;;;;;;:33;6930:12;:10;:12::i;:::-;6910:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6879:8;:121::i;:::-;7018:4;7011:11;;6717:313;;;;;:::o;5882:83::-;5923:5;4525:1;5941:16;;5882:83;:::o;14113:139::-;14201:2;;;;;;;;;;;14185:18;;:12;:10;:12::i;:::-;:18;;;14177:27;;;;;;14240:4;14215:18;:22;14234:2;14215:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;14113:139;:::o;13942:163::-;14035:2;;;;;;;;;;;14019:18;;:12;:10;:12::i;:::-;:18;;;14011:27;;;;;;14054:3;14049:2;;:8;;;;;;;;;;;;;;;;;;14093:4;14068:18;:22;14087:2;;;;;;;;;;;14068:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;13942:163;:::o;14913:181::-;14979:2;;;;;;;;;;;14963:18;;:12;:10;:12::i;:::-;:18;;;14955:27;;;;;;14993:26;15022:21;14993:50;;15054:32;15067:18;15054:12;:32::i;:::-;14944:150;14913:181::o;6076:138::-;6142:7;6169:37;6189:7;:16;6197:7;6189:16;;;;;;;;;;;;;;;;6169:19;:37::i;:::-;6162:44;;6076:138;;;:::o;2917:148::-;2840:12;:10;:12::i;:::-;2830:22;;:6;;;;;;;;;;:22;;;2822:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3024:1:::1;2987:40;;3008:6;::::0;::::1;;;;;;;;2987:40;;;;;;;;;;;;3055:1;3038:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2917:148::o:0;2703:79::-;2741:7;2768:6;;;;;;;;;;;2761:13;;2703:79;:::o;5787:87::-;5826:13;5859:7;;;;;;;;;;;;;;;;;5852:14;;5787:87;:::o;4924:24::-;;;;;;;;;;;;;:::o;6222:167::-;6300:4;6317:42;6327:12;:10;:12::i;:::-;6341:9;6352:6;6317:9;:42::i;:::-;6377:4;6370:11;;6222:167;;;;:::o;14719:182::-;14785:2;;;;;;;;;;;14769:18;;:12;:10;:12::i;:::-;:18;;;14761:27;;;;;;14799:23;14825:24;14843:4;14825:9;:24::i;:::-;14799:50;;14860:33;14877:15;14860:16;:33::i;:::-;14750:151;14719:182::o;14571:139::-;14647:2;;;;;;;;;;;14631:18;;:12;:10;:12::i;:::-;:18;;;14623:27;;;;;;14676:1;14669:3;:8;;14661:17;;;;;;14699:3;14689:7;:13;;;;14571:139;:::o;13221:709::-;2840:12;:10;:12::i;:::-;2830:22;;:6;;;;;;;;;;:22;;;2822:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13285:11:::1;;;;;;;;;;;13284:12;13276:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;13334:35;13391:42;13334:100;;13463:16;13445:15;;:34;;;;;;;;;;;;;;;;;;13490:58;13507:4;13522:15;;;;;;;;;;;4245:28;13490:8;:58::i;:::-;13593:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13575:56;;;13640:4;13647:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13575:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13559:13;;:112;;;;;;;;;;;;;;;;;;13682:15;;;;;;;;;;;:31;;;13721:21;13752:4;13758:24;13776:4;13758:9;:24::i;:::-;13783:1;13785::::0;13787:7:::1;:5;:7::i;:::-;13795:15;13682:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13829:13;;;;;;;;;;;13822:29;;;13860:15;;;;;;;;;;;13878:14;13822:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13918:4;13904:11;;:18;;;;;;;;;;;;;;;;;;13265:665;13221:709::o:0;14264:138::-;14350:2;;;;;;;;;;;14334:18;;:12;:10;:12::i;:::-;:18;;;14326:27;;;;;;14389:5;14364:18;:22;14383:2;14364:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;14264:138;:::o;6397:143::-;6478:7;6505:11;:18;6517:5;6505:18;;;;;;;;;;;;;;;:27;6524:7;6505:27;;;;;;;;;;;;;;;;6498:34;;6397:143;;;;:::o;14410:145::-;14488:2;;;;;;;;;;;14472:18;;:12;:10;:12::i;:::-;:18;;;14464:27;;;;;;14518:2;14510:4;:10;;14502:19;;;;;;14543:4;14532:8;:15;;;;14410:145;:::o;7994:134::-;2840:12;:10;:12::i;:::-;2830:22;;:6;;;;;;;;;;:22;;;2822:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8061:4:::1;8052:13;;:5;;;;;;;;;;;:13;;;8044:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;8115:5;8107;;:13;;;;;;;;;;;;;;;;;;7994:134::o:0;112:98::-;165:7;192:10;185:17;;112:98;:::o;7645:335::-;7755:1;7738:19;;:5;:19;;;;7730:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7836:1;7817:21;;:7;:21;;;;7809:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7918:6;7888:11;:18;7900:5;7888:18;;;;;;;;;;;;;;;:27;7907:7;7888:27;;;;;;;;;;;;;;;:36;;;;7956:7;7940:32;;7949:5;7940:32;;;7965:6;7940:32;;;;;;:::i;:::-;;;;;;;;7645:335;;;:::o;8140:1561::-;8244:1;8228:18;;:4;:18;;;;8220:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8321:1;8307:16;;:2;:16;;;;8299:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8391:1;8382:6;:10;8374:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8469:4;8460:13;;:5;;;;;;;;;;;:13;;;:42;;;;;8478:18;:24;8497:4;8478:24;;;;;;;;;;;;;;;;;;;;;;;;;8477:25;8460:42;:69;;;;;8507:18;:22;8526:2;8507:22;;;;;;;;;;;;;;;;;;;;;;;;;8506:23;8460:69;8457:350;;;8554:13;;;;;;;;;;;8548:19;;:2;:19;;;;:44;;;;;8579:13;;;;;;;;;;;8571:21;;:4;:21;;;8548:44;8545:153;;;8652:28;8622:25;8640:6;8622:13;8632:2;8622:9;:13::i;:::-;:17;;:25;;;;:::i;:::-;8621:59;;8612:70;;;;;;8545:153;8730:28;8720:6;:38;;8712:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8457:350;8823:28;8854:24;8872:4;8854:9;:24::i;:::-;8823:55;;8899:6;;;;;;;;;;;8898:7;:32;;;;;8917:13;;;;;;;;;;;8909:21;;:4;:21;;;;8898:32;:47;;;;;8934:11;;;;;;;;;;;8898:47;8895:592;;;8992:1;8969:20;:24;8966:314;;;9044:40;9080:3;9044:31;9073:1;9044:24;9054:13;;;;;;;;;;;9044:9;:24::i;:::-;:28;;:31;;;;:::i;:::-;:35;;:40;;;;:::i;:::-;9021:20;:63;9018:182;;;9136:40;9172:3;9136:31;9165:1;9136:24;9146:13;;;;;;;;;;;9136:9;:24::i;:::-;:28;;:31;;;;:::i;:::-;:35;;:40;;;;:::i;:::-;9113:63;;9018:182;9222:38;9239:20;9222:16;:38::i;:::-;8966:314;9298:26;9327:21;9298:50;;9391:1;9370:18;:22;9367:105;;;9417:35;9430:21;9417:12;:35::i;:::-;9367:105;8947:540;8895:592;9507:12;9522:4;9507:19;;9542:18;:24;9561:4;9542:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;9570:18;:22;9589:2;9570:22;;;;;;;;;;;;;;;;;;;;;;;;;9542:50;9539:96;;;9618:5;9608:15;;9539:96;9655:38;9670:4;9675:2;9678:6;9685:7;9655:14;:38::i;:::-;8209:1492;;8140:1561;;;:::o;1249:190::-;1335:7;1368:1;1363;:6;;1371:12;1355:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1395:9;1411:1;1407;:5;;;;:::i;:::-;1395:17;;1430:1;1423:8;;;1249:190;;;;;:::o;10208:128::-;10265:2;;;;;;;;;;;:11;;:26;10277:13;10288:1;10277:6;:10;;:13;;;;:::i;:::-;10265:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10302:2;;;;;;;;;;;:11;;:26;10314:13;10325:1;10314:6;:10;;:13;;;;:::i;:::-;10302:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10208:128;:::o;7038:254::-;7105:7;7144;;7133;:18;;7125:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7209:19;7232:10;:8;:10::i;:::-;7209:33;;7260:24;7272:11;7260:7;:11;;:24;;;;:::i;:::-;7253:31;;;7038:254;;;:::o;9709:483::-;5195:4;5186:6;;:13;;;;;;;;;;;;;;;;;;9787:21:::1;9825:1;9811:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9787:40;;9856:4;9838;9843:1;9838:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9882:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9872:4;9877:1;9872:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9915:62;9932:4;9947:15;;;;;;;;;;;9965:11;9915:8;:62::i;:::-;9988:15;;;;;;;;;;;:66;;;10069:11;10095:1;10111:4;10138;10158:15;9988:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9776:416;5231:5:::0;5222:6;;:14;;;;;;;;;;;;;;;;;;9709:483;:::o;918:179::-;976:7;996:9;1012:1;1008;:5;;;;:::i;:::-;996:17;;1037:1;1032;:6;;1024:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1088:1;1081:8;;;918:179;;;;:::o;1447:245::-;1505:7;1533:1;1528;:6;1525:46;;;1558:1;1551:8;;;;1525:46;1581:9;1597:1;1593;:5;;;;:::i;:::-;1581:17;;1626:1;1621;1617;:5;;;;:::i;:::-;:10;1609:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1683:1;1676:8;;;1447:245;;;;;:::o;1700:132::-;1758:7;1785:39;1789:1;1792;1785:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1778:46;;1700:132;;;;:::o;10348:263::-;10460:7;10456:40;;10482:14;:12;:14::i;:::-;10456:40;10507:44;10525:6;10533:9;10544:6;10507:17;:44::i;:::-;10566:7;10562:41;;10588:15;:13;:15::i;:::-;10562:41;10348:263;;;;:::o;11952:163::-;11993:7;12014:15;12031;12050:19;:17;:19::i;:::-;12013:56;;;;12087:20;12099:7;12087;:11;;:20;;;;:::i;:::-;12080:27;;;;11952:163;:::o;1840:189::-;1926:7;1958:1;1954;:5;1961:12;1946:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1985:9;2001:1;1997;:5;;;;:::i;:::-;1985:17;;2020:1;2013:8;;;1840:189;;;;;:::o;7300:210::-;7357:1;7346:7;;:12;:29;;;;;7374:1;7362:8;;:13;7346:29;7343:41;;;7377:7;;7343:41;7412:7;;7394:15;:25;;;;7449:8;;7430:16;:27;;;;7478:1;7468:7;:11;;;;7501:1;7490:8;:12;;;;7300:210;:::o;10619:490::-;10718:15;10735:23;10760:12;10774:23;10799:12;10813:13;10830:19;10841:7;10830:10;:19::i;:::-;10717:132;;;;;;;;;;;;10878:28;10898:7;10878;:15;10886:6;10878:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;10860:7;:15;10868:6;10860:15;;;;;;;;;;;;;;;:46;;;;10938:39;10961:15;10938:7;:18;10946:9;10938:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;10917:7;:18;10925:9;10917:18;;;;;;;;;;;;;;;:60;;;;10991:16;11001:5;10991:9;:16::i;:::-;11018:23;11030:4;11036;11018:11;:23::i;:::-;11074:9;11057:44;;11066:6;11057:44;;;11085:15;11057:44;;;;;;:::i;:::-;;;;;;;;10706:403;;;;;;10619:490;;;:::o;7522:115::-;7576:15;;7566:7;:25;;;;7613:16;;7602:8;:27;;;;7522:115::o;12123:255::-;12173:7;12182;12202:15;12220:7;;12202:25;;12238:15;4245:28;12238:25;;12287:20;4245:28;12287:7;;:11;;:20;;;;:::i;:::-;12277:7;:30;12274:60;;;12317:7;;4245:28;12309:25;;;;;;;;12274:60;12353:7;12362;12345:25;;;;;;12123:255;;;:::o;11117:468::-;11176:7;11185;11194;11203;11212;11221;11242:23;11267:12;11281:13;11298:39;11310:7;11319;;11328:8;;11298:11;:39::i;:::-;11241:96;;;;;;11348:19;11371:10;:8;:10::i;:::-;11348:33;;11393:15;11410:23;11435:12;11451:46;11463:7;11472:4;11478:5;11485:11;11451;:46::i;:::-;11392:105;;;;;;11516:7;11525:15;11542:4;11548:15;11565:4;11571:5;11508:69;;;;;;;;;;;;;;;;;;;11117:468;;;;;;;:::o;1105:136::-;1163:7;1190:43;1194:1;1197;1190:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1183:50;;1105:136;;;;:::o;12803:214::-;12856:19;12879:10;:8;:10::i;:::-;12856:33;;12900:13;12916:22;12926:11;12916:5;:9;;:22;;;;:::i;:::-;12900:38;;12976:33;13003:5;12976:7;:22;12992:4;12976:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;12951:7;:22;12967:4;12951:22;;;;;;;;;;;;;;;:58;;;;12845:172;;12803:214;:::o;13025:147::-;13103:17;13115:4;13103:7;;:11;;:17;;;;:::i;:::-;13093:7;:27;;;;13144:20;13159:4;13144:10;;:14;;:20;;;;:::i;:::-;13131:10;:33;;;;13025:147;;:::o;11593:351::-;11686:7;11695;11704;11724:12;11739:28;11763:3;11739:19;11751:6;11739:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;11724:43;;11778:13;11794:29;11819:3;11794:20;11806:7;11794;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;11778:45;;11834:23;11860:28;11882:5;11860:17;11872:4;11860:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;11834:54;;11907:15;11924:4;11930:5;11899:37;;;;;;;;;11593:351;;;;;;;:::o;12386:409::-;12496:7;12505;12514;12534:15;12552:24;12564:11;12552:7;:11;;:24;;;;:::i;:::-;12534:42;;12587:12;12602:21;12611:11;12602:4;:8;;:21;;;;:::i;:::-;12587:36;;12634:13;12650:22;12660:11;12650:5;:9;;:22;;;;:::i;:::-;12634:38;;12683:23;12709:28;12731:5;12709:17;12721:4;12709:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12683:54;;12756:7;12765:15;12782:4;12748:39;;;;;;;;;;12386:409;;;;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:155::-;355:5;393:6;380:20;371:29;;409:41;444:5;409:41;:::i;:::-;361:95;;;;:::o;462:137::-;516:5;547:6;541:13;532:22;;563:30;587:5;563:30;:::i;:::-;522:77;;;;:::o;605:139::-;651:5;689:6;676:20;667:29;;705:33;732:5;705:33;:::i;:::-;657:87;;;;:::o;750:143::-;807:5;838:6;832:13;823:22;;854:33;881:5;854:33;:::i;:::-;813:80;;;;:::o;899:329::-;958:6;1007:2;995:9;986:7;982:23;978:32;975:2;;;1013:79;;:::i;:::-;975:2;1133:1;1158:53;1203:7;1194:6;1183:9;1179:22;1158:53;:::i;:::-;1148:63;;1104:117;965:263;;;;:::o;1234:351::-;1304:6;1353:2;1341:9;1332:7;1328:23;1324:32;1321:2;;;1359:79;;:::i;:::-;1321:2;1479:1;1504:64;1560:7;1551:6;1540:9;1536:22;1504:64;:::i;:::-;1494:74;;1450:128;1311:274;;;;:::o;1591:345::-;1658:6;1707:2;1695:9;1686:7;1682:23;1678:32;1675:2;;;1713:79;;:::i;:::-;1675:2;1833:1;1858:61;1911:7;1902:6;1891:9;1887:22;1858:61;:::i;:::-;1848:71;;1804:125;1665:271;;;;:::o;1942:474::-;2010:6;2018;2067:2;2055:9;2046:7;2042:23;2038:32;2035:2;;;2073:79;;:::i;:::-;2035:2;2193:1;2218:53;2263:7;2254:6;2243:9;2239:22;2218:53;:::i;:::-;2208:63;;2164:117;2320:2;2346:53;2391:7;2382:6;2371:9;2367:22;2346:53;:::i;:::-;2336:63;;2291:118;2025:391;;;;;:::o;2422:619::-;2499:6;2507;2515;2564:2;2552:9;2543:7;2539:23;2535:32;2532:2;;;2570:79;;:::i;:::-;2532:2;2690:1;2715:53;2760:7;2751:6;2740:9;2736:22;2715:53;:::i;:::-;2705:63;;2661:117;2817:2;2843:53;2888:7;2879:6;2868:9;2864:22;2843:53;:::i;:::-;2833:63;;2788:118;2945:2;2971:53;3016:7;3007:6;2996:9;2992:22;2971:53;:::i;:::-;2961:63;;2916:118;2522:519;;;;;:::o;3047:474::-;3115:6;3123;3172:2;3160:9;3151:7;3147:23;3143:32;3140:2;;;3178:79;;:::i;:::-;3140:2;3298:1;3323:53;3368:7;3359:6;3348:9;3344:22;3323:53;:::i;:::-;3313:63;;3269:117;3425:2;3451:53;3496:7;3487:6;3476:9;3472:22;3451:53;:::i;:::-;3441:63;;3396:118;3130:391;;;;;:::o;3527:345::-;3594:6;3643:2;3631:9;3622:7;3618:23;3614:32;3611:2;;;3649:79;;:::i;:::-;3611:2;3769:1;3794:61;3847:7;3838:6;3827:9;3823:22;3794:61;:::i;:::-;3784:71;;3740:125;3601:271;;;;:::o;3878:329::-;3937:6;3986:2;3974:9;3965:7;3961:23;3957:32;3954:2;;;3992:79;;:::i;:::-;3954:2;4112:1;4137:53;4182:7;4173:6;4162:9;4158:22;4137:53;:::i;:::-;4127:63;;4083:117;3944:263;;;;:::o;4213:663::-;4301:6;4309;4317;4366:2;4354:9;4345:7;4341:23;4337:32;4334:2;;;4372:79;;:::i;:::-;4334:2;4492:1;4517:64;4573:7;4564:6;4553:9;4549:22;4517:64;:::i;:::-;4507:74;;4463:128;4630:2;4656:64;4712:7;4703:6;4692:9;4688:22;4656:64;:::i;:::-;4646:74;;4601:129;4769:2;4795:64;4851:7;4842:6;4831:9;4827:22;4795:64;:::i;:::-;4785:74;;4740:129;4324:552;;;;;:::o;4882:179::-;4951:10;4972:46;5014:3;5006:6;4972:46;:::i;:::-;5050:4;5045:3;5041:14;5027:28;;4962:99;;;;:::o;5067:108::-;5144:24;5162:5;5144:24;:::i;:::-;5139:3;5132:37;5122:53;;:::o;5181:118::-;5268:24;5286:5;5268:24;:::i;:::-;5263:3;5256:37;5246:53;;:::o;5335:732::-;5454:3;5483:54;5531:5;5483:54;:::i;:::-;5553:86;5632:6;5627:3;5553:86;:::i;:::-;5546:93;;5663:56;5713:5;5663:56;:::i;:::-;5742:7;5773:1;5758:284;5783:6;5780:1;5777:13;5758:284;;;5859:6;5853:13;5886:63;5945:3;5930:13;5886:63;:::i;:::-;5879:70;;5972:60;6025:6;5972:60;:::i;:::-;5962:70;;5818:224;5805:1;5802;5798:9;5793:14;;5758:284;;;5762:14;6058:3;6051:10;;5459:608;;;;;;;:::o;6073:109::-;6154:21;6169:5;6154:21;:::i;:::-;6149:3;6142:34;6132:50;;:::o;6188:147::-;6283:45;6322:5;6283:45;:::i;:::-;6278:3;6271:58;6261:74;;:::o;6341:364::-;6429:3;6457:39;6490:5;6457:39;:::i;:::-;6512:71;6576:6;6571:3;6512:71;:::i;:::-;6505:78;;6592:52;6637:6;6632:3;6625:4;6618:5;6614:16;6592:52;:::i;:::-;6669:29;6691:6;6669:29;:::i;:::-;6664:3;6660:39;6653:46;;6433:272;;;;;:::o;6711:366::-;6853:3;6874:67;6938:2;6933:3;6874:67;:::i;:::-;6867:74;;6950:93;7039:3;6950:93;:::i;:::-;7068:2;7063:3;7059:12;7052:19;;6857:220;;;:::o;7083:366::-;7225:3;7246:67;7310:2;7305:3;7246:67;:::i;:::-;7239:74;;7322:93;7411:3;7322:93;:::i;:::-;7440:2;7435:3;7431:12;7424:19;;7229:220;;;:::o;7455:366::-;7597:3;7618:67;7682:2;7677:3;7618:67;:::i;:::-;7611:74;;7694:93;7783:3;7694:93;:::i;:::-;7812:2;7807:3;7803:12;7796:19;;7601:220;;;:::o;7827:366::-;7969:3;7990:67;8054:2;8049:3;7990:67;:::i;:::-;7983:74;;8066:93;8155:3;8066:93;:::i;:::-;8184:2;8179:3;8175:12;8168:19;;7973:220;;;:::o;8199:366::-;8341:3;8362:67;8426:2;8421:3;8362:67;:::i;:::-;8355:74;;8438:93;8527:3;8438:93;:::i;:::-;8556:2;8551:3;8547:12;8540:19;;8345:220;;;:::o;8571:366::-;8713:3;8734:67;8798:2;8793:3;8734:67;:::i;:::-;8727:74;;8810:93;8899:3;8810:93;:::i;:::-;8928:2;8923:3;8919:12;8912:19;;8717:220;;;:::o;8943:366::-;9085:3;9106:67;9170:2;9165:3;9106:67;:::i;:::-;9099:74;;9182:93;9271:3;9182:93;:::i;:::-;9300:2;9295:3;9291:12;9284:19;;9089:220;;;:::o;9315:366::-;9457:3;9478:67;9542:2;9537:3;9478:67;:::i;:::-;9471:74;;9554:93;9643:3;9554:93;:::i;:::-;9672:2;9667:3;9663:12;9656:19;;9461:220;;;:::o;9687:366::-;9829:3;9850:67;9914:2;9909:3;9850:67;:::i;:::-;9843:74;;9926:93;10015:3;9926:93;:::i;:::-;10044:2;10039:3;10035:12;10028:19;;9833:220;;;:::o;10059:366::-;10201:3;10222:67;10286:2;10281:3;10222:67;:::i;:::-;10215:74;;10298:93;10387:3;10298:93;:::i;:::-;10416:2;10411:3;10407:12;10400:19;;10205:220;;;:::o;10431:366::-;10573:3;10594:67;10658:2;10653:3;10594:67;:::i;:::-;10587:74;;10670:93;10759:3;10670:93;:::i;:::-;10788:2;10783:3;10779:12;10772:19;;10577:220;;;:::o;10803:366::-;10945:3;10966:67;11030:2;11025:3;10966:67;:::i;:::-;10959:74;;11042:93;11131:3;11042:93;:::i;:::-;11160:2;11155:3;11151:12;11144:19;;10949:220;;;:::o;11175:118::-;11262:24;11280:5;11262:24;:::i;:::-;11257:3;11250:37;11240:53;;:::o;11299:112::-;11382:22;11398:5;11382:22;:::i;:::-;11377:3;11370:35;11360:51;;:::o;11417:222::-;11510:4;11548:2;11537:9;11533:18;11525:26;;11561:71;11629:1;11618:9;11614:17;11605:6;11561:71;:::i;:::-;11515:124;;;;:::o;11645:332::-;11766:4;11804:2;11793:9;11789:18;11781:26;;11817:71;11885:1;11874:9;11870:17;11861:6;11817:71;:::i;:::-;11898:72;11966:2;11955:9;11951:18;11942:6;11898:72;:::i;:::-;11771:206;;;;;:::o;11983:332::-;12104:4;12142:2;12131:9;12127:18;12119:26;;12155:71;12223:1;12212:9;12208:17;12199:6;12155:71;:::i;:::-;12236:72;12304:2;12293:9;12289:18;12280:6;12236:72;:::i;:::-;12109:206;;;;;:::o;12321:807::-;12570:4;12608:3;12597:9;12593:19;12585:27;;12622:71;12690:1;12679:9;12675:17;12666:6;12622:71;:::i;:::-;12703:72;12771:2;12760:9;12756:18;12747:6;12703:72;:::i;:::-;12785:80;12861:2;12850:9;12846:18;12837:6;12785:80;:::i;:::-;12875;12951:2;12940:9;12936:18;12927:6;12875:80;:::i;:::-;12965:73;13033:3;13022:9;13018:19;13009:6;12965:73;:::i;:::-;13048;13116:3;13105:9;13101:19;13092:6;13048:73;:::i;:::-;12575:553;;;;;;;;;:::o;13134:210::-;13221:4;13259:2;13248:9;13244:18;13236:26;;13272:65;13334:1;13323:9;13319:17;13310:6;13272:65;:::i;:::-;13226:118;;;;:::o;13350:313::-;13463:4;13501:2;13490:9;13486:18;13478:26;;13550:9;13544:4;13540:20;13536:1;13525:9;13521:17;13514:47;13578:78;13651:4;13642:6;13578:78;:::i;:::-;13570:86;;13468:195;;;;:::o;13669:419::-;13835:4;13873:2;13862:9;13858:18;13850:26;;13922:9;13916:4;13912:20;13908:1;13897:9;13893:17;13886:47;13950:131;14076:4;13950:131;:::i;:::-;13942:139;;13840:248;;;:::o;14094:419::-;14260:4;14298:2;14287:9;14283:18;14275:26;;14347:9;14341:4;14337:20;14333:1;14322:9;14318:17;14311:47;14375:131;14501:4;14375:131;:::i;:::-;14367:139;;14265:248;;;:::o;14519:419::-;14685:4;14723:2;14712:9;14708:18;14700:26;;14772:9;14766:4;14762:20;14758:1;14747:9;14743:17;14736:47;14800:131;14926:4;14800:131;:::i;:::-;14792:139;;14690:248;;;:::o;14944:419::-;15110:4;15148:2;15137:9;15133:18;15125:26;;15197:9;15191:4;15187:20;15183:1;15172:9;15168:17;15161:47;15225:131;15351:4;15225:131;:::i;:::-;15217:139;;15115:248;;;:::o;15369:419::-;15535:4;15573:2;15562:9;15558:18;15550:26;;15622:9;15616:4;15612:20;15608:1;15597:9;15593:17;15586:47;15650:131;15776:4;15650:131;:::i;:::-;15642:139;;15540:248;;;:::o;15794:419::-;15960:4;15998:2;15987:9;15983:18;15975:26;;16047:9;16041:4;16037:20;16033:1;16022:9;16018:17;16011:47;16075:131;16201:4;16075:131;:::i;:::-;16067:139;;15965:248;;;:::o;16219:419::-;16385:4;16423:2;16412:9;16408:18;16400:26;;16472:9;16466:4;16462:20;16458:1;16447:9;16443:17;16436:47;16500:131;16626:4;16500:131;:::i;:::-;16492:139;;16390:248;;;:::o;16644:419::-;16810:4;16848:2;16837:9;16833:18;16825:26;;16897:9;16891:4;16887:20;16883:1;16872:9;16868:17;16861:47;16925:131;17051:4;16925:131;:::i;:::-;16917:139;;16815:248;;;:::o;17069:419::-;17235:4;17273:2;17262:9;17258:18;17250:26;;17322:9;17316:4;17312:20;17308:1;17297:9;17293:17;17286:47;17350:131;17476:4;17350:131;:::i;:::-;17342:139;;17240:248;;;:::o;17494:419::-;17660:4;17698:2;17687:9;17683:18;17675:26;;17747:9;17741:4;17737:20;17733:1;17722:9;17718:17;17711:47;17775:131;17901:4;17775:131;:::i;:::-;17767:139;;17665:248;;;:::o;17919:419::-;18085:4;18123:2;18112:9;18108:18;18100:26;;18172:9;18166:4;18162:20;18158:1;18147:9;18143:17;18136:47;18200:131;18326:4;18200:131;:::i;:::-;18192:139;;18090:248;;;:::o;18344:419::-;18510:4;18548:2;18537:9;18533:18;18525:26;;18597:9;18591:4;18587:20;18583:1;18572:9;18568:17;18561:47;18625:131;18751:4;18625:131;:::i;:::-;18617:139;;18515:248;;;:::o;18769:222::-;18862:4;18900:2;18889:9;18885:18;18877:26;;18913:71;18981:1;18970:9;18966:17;18957:6;18913:71;:::i;:::-;18867:124;;;;:::o;18997:831::-;19260:4;19298:3;19287:9;19283:19;19275:27;;19312:71;19380:1;19369:9;19365:17;19356:6;19312:71;:::i;:::-;19393:80;19469:2;19458:9;19454:18;19445:6;19393:80;:::i;:::-;19520:9;19514:4;19510:20;19505:2;19494:9;19490:18;19483:48;19548:108;19651:4;19642:6;19548:108;:::i;:::-;19540:116;;19666:72;19734:2;19723:9;19719:18;19710:6;19666:72;:::i;:::-;19748:73;19816:3;19805:9;19801:19;19792:6;19748:73;:::i;:::-;19265:563;;;;;;;;:::o;19834:214::-;19923:4;19961:2;19950:9;19946:18;19938:26;;19974:67;20038:1;20027:9;20023:17;20014:6;19974:67;:::i;:::-;19928:120;;;;:::o;20135:132::-;20202:4;20225:3;20217:11;;20255:4;20250:3;20246:14;20238:22;;20207:60;;;:::o;20273:114::-;20340:6;20374:5;20368:12;20358:22;;20347:40;;;:::o;20393:99::-;20445:6;20479:5;20473:12;20463:22;;20452:40;;;:::o;20498:113::-;20568:4;20600;20595:3;20591:14;20583:22;;20573:38;;;:::o;20617:184::-;20716:11;20750:6;20745:3;20738:19;20790:4;20785:3;20781:14;20766:29;;20728:73;;;;:::o;20807:169::-;20891:11;20925:6;20920:3;20913:19;20965:4;20960:3;20956:14;20941:29;;20903:73;;;;:::o;20982:305::-;21022:3;21041:20;21059:1;21041:20;:::i;:::-;21036:25;;21075:20;21093:1;21075:20;:::i;:::-;21070:25;;21229:1;21161:66;21157:74;21154:1;21151:81;21148:2;;;21235:18;;:::i;:::-;21148:2;21279:1;21276;21272:9;21265:16;;21026:261;;;;:::o;21293:185::-;21333:1;21350:20;21368:1;21350:20;:::i;:::-;21345:25;;21384:20;21402:1;21384:20;:::i;:::-;21379:25;;21423:1;21413:2;;21428:18;;:::i;:::-;21413:2;21470:1;21467;21463:9;21458:14;;21335:143;;;;:::o;21484:348::-;21524:7;21547:20;21565:1;21547:20;:::i;:::-;21542:25;;21581:20;21599:1;21581:20;:::i;:::-;21576:25;;21769:1;21701:66;21697:74;21694:1;21691:81;21686:1;21679:9;21672:17;21668:105;21665:2;;;21776:18;;:::i;:::-;21665:2;21824:1;21821;21817:9;21806:20;;21532:300;;;;:::o;21838:191::-;21878:4;21898:20;21916:1;21898:20;:::i;:::-;21893:25;;21932:20;21950:1;21932:20;:::i;:::-;21927:25;;21971:1;21968;21965:8;21962:2;;;21976:18;;:::i;:::-;21962:2;22021:1;22018;22014:9;22006:17;;21883:146;;;;:::o;22035:96::-;22072:7;22101:24;22119:5;22101:24;:::i;:::-;22090:35;;22080:51;;;:::o;22137:104::-;22182:7;22211:24;22229:5;22211:24;:::i;:::-;22200:35;;22190:51;;;:::o;22247:90::-;22281:7;22324:5;22317:13;22310:21;22299:32;;22289:48;;;:::o;22343:126::-;22380:7;22420:42;22413:5;22409:54;22398:65;;22388:81;;;:::o;22475:77::-;22512:7;22541:5;22530:16;;22520:32;;;:::o;22558:86::-;22593:7;22633:4;22626:5;22622:16;22611:27;;22601:43;;;:::o;22650:121::-;22708:9;22741:24;22759:5;22741:24;:::i;:::-;22728:37;;22718:53;;;:::o;22777:307::-;22845:1;22855:113;22869:6;22866:1;22863:13;22855:113;;;22954:1;22949:3;22945:11;22939:18;22935:1;22930:3;22926:11;22919:39;22891:2;22888:1;22884:10;22879:15;;22855:113;;;22986:6;22983:1;22980:13;22977:2;;;23066:1;23057:6;23052:3;23048:16;23041:27;22977:2;22826:258;;;;:::o;23090:180::-;23138:77;23135:1;23128:88;23235:4;23232:1;23225:15;23259:4;23256:1;23249:15;23276:180;23324:77;23321:1;23314:88;23421:4;23418:1;23411:15;23445:4;23442:1;23435:15;23462:180;23510:77;23507:1;23500:88;23607:4;23604:1;23597:15;23631:4;23628:1;23621:15;23648:180;23696:77;23693:1;23686:88;23793:4;23790:1;23783:15;23817:4;23814:1;23807:15;23957:117;24066:1;24063;24056:12;24080:102;24121:6;24172:2;24168:7;24163:2;24156:5;24152:14;24148:28;24138:38;;24128:54;;;:::o;24188:222::-;24328:34;24324:1;24316:6;24312:14;24305:58;24397:5;24392:2;24384:6;24380:15;24373:30;24294:116;:::o;24416:172::-;24556:24;24552:1;24544:6;24540:14;24533:48;24522:66;:::o;24594:229::-;24734:34;24730:1;24722:6;24718:14;24711:58;24803:12;24798:2;24790:6;24786:15;24779:37;24700:123;:::o;24829:221::-;24969:34;24965:1;24957:6;24953:14;24946:58;25038:4;25033:2;25025:6;25021:15;25014:29;24935:115;:::o;25056:177::-;25196:29;25192:1;25184:6;25180:14;25173:53;25162:71;:::o;25239:178::-;25379:30;25375:1;25367:6;25363:14;25356:54;25345:72;:::o;25423:220::-;25563:34;25559:1;25551:6;25547:14;25540:58;25632:3;25627:2;25619:6;25615:15;25608:28;25529:114;:::o;25649:182::-;25789:34;25785:1;25777:6;25773:14;25766:58;25755:76;:::o;25837:228::-;25977:34;25973:1;25965:6;25961:14;25954:58;26046:11;26041:2;26033:6;26029:15;26022:36;25943:122;:::o;26071:224::-;26211:34;26207:1;26199:6;26195:14;26188:58;26280:7;26275:2;26267:6;26263:15;26256:32;26177:118;:::o;26301:223::-;26441:34;26437:1;26429:6;26425:14;26418:58;26510:6;26505:2;26497:6;26493:15;26486:31;26407:117;:::o;26530:173::-;26670:25;26666:1;26658:6;26654:14;26647:49;26636:67;:::o;26709:122::-;26782:24;26800:5;26782:24;:::i;:::-;26775:5;26772:35;26762:2;;26821:1;26818;26811:12;26762:2;26752:79;:::o;26837:138::-;26918:32;26944:5;26918:32;:::i;:::-;26911:5;26908:43;26898:2;;26965:1;26962;26955:12;26898:2;26888:87;:::o;26981:116::-;27051:21;27066:5;27051:21;:::i;:::-;27044:5;27041:32;27031:2;;27087:1;27084;27077:12;27031:2;27021:76;:::o;27103:122::-;27176:24;27194:5;27176:24;:::i;:::-;27169:5;27166:35;27156:2;;27215:1;27212;27205:12;27156:2;27146:79;:::o

Swarm Source

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