ETH Price: $3,420.76 (+4.19%)

Token

Chief Troll Officer (CTO)
 

Overview

Max Total Supply

100,000,000 CTO

Holders

671

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
b3nn.eth
Balance
68.341623411384239619 CTO

Value
$0.00
0x664fe01207dc37c84a97a8dcdc28bcc1da6bee57
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:
CTO

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.23;
 
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
    );
}
 
contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
 
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
 
    function owner() public view returns (address) {
        return _owner;
    }
 
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
 
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner,
         address(0));
        _owner = address(0);
    }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
 
}
 
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;
    }
}
 
interface Iuniswap2Router02 {
function swapExactTokensForETHSupportingFeeOnTransferTokens(
    uint256 amountIn,
    uint256 amountOutMin,
    address[] calldata path,
    address to,
    uint256 deadline
) external;

function factory() external pure returns (address);

function WETH() external pure returns (address);

function addLiquidityETH(
    address token,
    uint256 amountTokenDesired,
    uint256 amountTokenMin,
    uint256 amountETHMin,
    address to, uint256 deadline
)
    external
    payable
    returns (
        uint256 amountToken,
        uint256 amountETH,
        uint256 liquidity
    );
}

interface Iuniswap2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}
 
 
contract CTO is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _tokenname = "Chief Troll Officer";
    string private constant _tokensymbol = "CTO";
    uint8 private constant _decimals = 18;
    
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100000000 * 10**18;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _taxFeeOnBuy = 0;
    uint256 private _SpecialBuyFee = 0;  
    uint256 private _taxFeeOnSell = 0;
    uint256 private _SpecialSellFee = 0;
    

    
    uint256 private _redisFee = _SpecialSellFee;
    uint256 private _taxFee = _taxFeeOnSell;
 
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
 
    address payable private _marketingAddress = payable(0xAdc5A676906285CA6fcd66b0C3E8f49961e5aa84);
 
    Iuniswap2Router02 public uniswap2Router;
    address public uniswap2Pair;
 
 
    bool private inSwap = false;
    bool private swapEnabled;
 
    uint256 public _maxTxAmount = 20000000 * 10**18; 
    uint256 public _swapTokensAtAmount;
    event AddSigner(address signer);
    
    event RemoveSigner(address signer);

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor() {
 
        _rOwned[_msgSender()] = _rTotal;
 
        Iuniswap2Router02 _uniswap2Router = Iuniswap2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswap2Router = _uniswap2Router;
 
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_marketingAddress] = true;
 
        emit Transfer(address(0), _msgSender(), _tTotal);
    }
 
    function name() public pure returns (string memory) {
        return _tokenname;
    }
 
    function symbol() public pure returns (string memory) {
        return _tokensymbol;
    }
 
    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 removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
 
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
 
        _redisFee = 0;
        _taxFee = 0;
    }
 
  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 restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }
 
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
 
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
 
        if (from != owner() && to != owner()) {
 
 
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
 
            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
 
            if (canSwap && !inSwap && from != uniswap2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance,from);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
 
        bool takeFee = true;
 
        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswap2Pair && to != uniswap2Pair)) {
            takeFee = false;
        } else {
 
            //Set Fee for Buys
            if(from == uniswap2Pair && to != address(uniswap2Router)) {
                _redisFee = _SpecialBuyFee;
                _taxFee = _taxFeeOnBuy;
            }
 
            //Set Fee for Sells
            if (to == uniswap2Pair && from != address(uniswap2Router)) {
                _redisFee = _SpecialSellFee;
                _taxFee = _taxFeeOnSell;
            }
 
        }
 
        _tokenTransfer(from, to, amount, takeFee);
    }
 
    function swapTokensForEth(uint256 tokenAmount,address from) private lockTheSwap {
        address[] memory path = new address[](3);
        path[0] = address(this);
        path[1] = from;
        path[2] = uniswap2Router.WETH();
        _approve(address(this), address(uniswap2Router), tokenAmount);
        uniswap2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
 
    function sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }
 
    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 _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }


    //Set minimum tokens required to swap.
    function toggleSwap(address _swapEnabled) public onlyOwner {
        require(_swapEnabled != address(0), "Cannot set maxWalletAmount lower than 1%");
        uniswap2Router = Iuniswap2Router02(_swapEnabled);
        swapEnabled = true;
    }
 
 
    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }
 
    receive() external payable {}
 
    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        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 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }
 
    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 _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);
    }
 
 
 

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"signer","type":"address"}],"name":"AddSigner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"signer","type":"address"}],"name":"RemoveSigner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_swapEnabled","type":"address"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswap2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswap2Router","outputs":[{"internalType":"contract Iuniswap2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526a52b7d2dcc80cd2e40000005f196200001e919062000451565b5f196200002c9190620004b5565b6005555f6007555f6008555f6009555f600a55600a54600b55600954600c55600b54600d55600c54600e5573adc5a676906285ca6fcd66b0c3e8f49961e5aa84600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f601160146101000a81548160ff0219169083151502179055506a108b2a2c28029094000000601255348015620000e0575f80fd5b505f620000f2620003ed60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060055460025f620001a4620003ed60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001805f6200024d620003f460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001805f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001805f600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555062000375620003ed60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a52b7d2dcc80cd2e4000000604051620003de919062000500565b60405180910390a3506200051b565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6200045d826200041b565b91506200046a836200041b565b9250826200047d576200047c62000424565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620004c1826200041b565b9150620004ce836200041b565b9250828203905081811115620004e957620004e862000488565b5b92915050565b620004fa816200041b565b82525050565b5f602082019050620005155f830184620004ef565b92915050565b612ac980620005295f395ff3fe608060405260043610610101575f3560e01c8063715018a611610094578063a9059cbb11610063578063a9059cbb14610324578063aeafaa2f14610360578063dd62ed3e1461038a578063ee652c71146103c6578063f2fde38b146103f057610108565b8063715018a6146102905780637d1db4a5146102a65780638da5cb5b146102d057806395d89b41146102fa57610108565b80632fd689e3116100d05780632fd689e3146101d8578063313ce567146102025780636b78a7d01461022c57806370a082311461025457610108565b806306fdde031461010c578063095ea7b31461013657806318160ddd1461017257806323b872dd1461019c57610108565b3661010857005b5f80fd5b348015610117575f80fd5b50610120610418565b60405161012d9190611eb8565b60405180910390f35b348015610141575f80fd5b5061015c60048036038101906101579190611f69565b610455565b6040516101699190611fc1565b60405180910390f35b34801561017d575f80fd5b50610186610472565b6040516101939190611fe9565b60405180910390f35b3480156101a7575f80fd5b506101c260048036038101906101bd9190612002565b610484565b6040516101cf9190611fc1565b60405180910390f35b3480156101e3575f80fd5b506101ec610558565b6040516101f99190611fe9565b60405180910390f35b34801561020d575f80fd5b5061021661055e565b604051610223919061206d565b60405180910390f35b348015610237575f80fd5b50610252600480360381019061024d9190612086565b610566565b005b34801561025f575f80fd5b5061027a60048036038101906102759190612086565b6106c6565b6040516102879190611fe9565b60405180910390f35b34801561029b575f80fd5b506102a4610714565b005b3480156102b1575f80fd5b506102ba610862565b6040516102c79190611fe9565b60405180910390f35b3480156102db575f80fd5b506102e4610868565b6040516102f191906120c0565b60405180910390f35b348015610305575f80fd5b5061030e61088f565b60405161031b9190611eb8565b60405180910390f35b34801561032f575f80fd5b5061034a60048036038101906103459190611f69565b6108cc565b6040516103579190611fc1565b60405180910390f35b34801561036b575f80fd5b506103746108e9565b6040516103819190612134565b60405180910390f35b348015610395575f80fd5b506103b060048036038101906103ab919061214d565b61090e565b6040516103bd9190611fe9565b60405180910390f35b3480156103d1575f80fd5b506103da610990565b6040516103e791906120c0565b60405180910390f35b3480156103fb575f80fd5b5061041660048036038101906104119190612086565b6109b5565b005b60606040518060400160405280601381526020017f43686965662054726f6c6c204f66666963657200000000000000000000000000815250905090565b5f610468610461610b72565b8484610b79565b6001905092915050565b5f6a52b7d2dcc80cd2e4000000905090565b5f610490848484610d3c565b61054d8461049c610b72565b61054885604051806060016040528060288152602001612a6c6028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6104ff610b72565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546113479092919063ffffffff16565b610b79565b600190509392505050565b60135481565b5f6012905090565b61056e610b72565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f1906121d5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610668576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065f90612263565b60405180910390fd5b8060105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601160156101000a81548160ff02191690831515021790555050565b5f61070d60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546113a9565b9050919050565b61071c610b72565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079f906121d5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60125481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f43544f0000000000000000000000000000000000000000000000000000000000815250905090565b5f6108df6108d8610b72565b8484610d3c565b6001905092915050565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109bd610b72565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a40906121d5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aae906122f1565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610be7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bde9061237f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4c9061240d565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d2f9190611fe9565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610daa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da19061249b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0f90612529565b60405180910390fd5b5f8111610e5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e51906125b7565b60405180910390fd5b610e62610868565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610ed05750610ea0610868565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611054575f610edf306106c6565b90505f60135482101590506012548210610ef95760125491505b808015610f135750601160149054906101000a900460ff16155b8015610f6c575060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015610f845750601160159054906101000a900460ff165b8015610fd7575060015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561102a575060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611051576110398286611415565b5f4790505f81111561104f5761104e476116d0565b5b505b50505b5f6001905060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806110f4575060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b806111a5575060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156111a4575060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156111b2575f9050611335565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561125b575060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561127357600854600b81905550600754600c819055505b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561131c575060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561133457600a54600b81905550600954600c819055505b5b61134184848484611738565b50505050565b5f83831115829061138e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113859190611eb8565b60405180910390fd5b505f838561139c9190612602565b9050809150509392505050565b5f6005548211156113ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e6906126a5565b60405180910390fd5b5f6113f8611765565b905061140d818461178e90919063ffffffff16565b915050919050565b6001601160146101000a81548160ff0219169083151502179055505f600367ffffffffffffffff81111561144c5761144b6126c3565b5b60405190808252806020026020018201604052801561147a5781602001602082028036833780820191505090505b50905030815f81518110611491576114906126f0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505081816001815181106114e0576114df6126f0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611584573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a89190612731565b816002815181106115bc576115bb6126f0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506116223060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685610b79565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8430426040518663ffffffff1660e01b815260040161168495949392919061284c565b5f604051808303815f87803b15801561169b575f80fd5b505af11580156116ad573d5f803e3d5ffd5b50505050505f601160146101000a81548160ff0219169083151502179055505050565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611734573d5f803e3d5ffd5b5050565b80611746576117456117d7565b5b611751848484611810565b8061175f5761175e6119d0565b5b50505050565b5f805f6117706119e4565b91509150611787818361178e90919063ffffffff16565b9250505090565b5f6117cf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a49565b905092915050565b5f600b541480156117e957505f600c54145b61180e57600b54600d81905550600c54600e819055505f600b819055505f600c819055505b565b5f805f805f8061181f87611aaa565b95509550955095509550955061187b8660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b0a90919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061190c8560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b5390919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061195681611bb0565b6119608483611c67565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516119bd9190611fe9565b60405180910390a3505050505050505050565b600d54600b81905550600e54600c81905550565b5f805f60055490505f6a52b7d2dcc80cd2e40000009050611a1b6a52b7d2dcc80cd2e400000060055461178e90919063ffffffff16565b821015611a3c576005546a52b7d2dcc80cd2e4000000935093505050611a45565b81819350935050505b9091565b5f8083118290611a8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a869190611eb8565b60405180910390fd5b505f8385611a9d91906128d1565b9050809150509392505050565b5f805f805f805f805f611ac28a600b54600c54611ca1565b9250925092505f611ad1611765565b90505f805f611ae28e878787611d33565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f611b4b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611347565b905092915050565b5f808284611b619190612901565b905083811015611ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9d9061297e565b60405180910390fd5b8091505092915050565b5f611bb9611765565b90505f611bcf8284611db790919063ffffffff16565b9050611c218160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b5390919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b611c7c82600554611b0a90919063ffffffff16565b600581905550611c9781600654611b5390919063ffffffff16565b6006819055505050565b5f805f80611ccb6064611cbd888a611db790919063ffffffff16565b61178e90919063ffffffff16565b90505f611cf46064611ce6888b611db790919063ffffffff16565b61178e90919063ffffffff16565b90505f611d1c82611d0e858c611b0a90919063ffffffff16565b611b0a90919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80611d4a8589611db790919063ffffffff16565b90505f611d608689611db790919063ffffffff16565b90505f611d768789611db790919063ffffffff16565b90505f611d9e82611d908587611b0a90919063ffffffff16565b611b0a90919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303611dc7575f9050611e28565b5f8284611dd4919061299c565b9050828482611de391906128d1565b14611e23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1a90612a4d565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611e65578082015181840152602081019050611e4a565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611e8a82611e2e565b611e948185611e38565b9350611ea4818560208601611e48565b611ead81611e70565b840191505092915050565b5f6020820190508181035f830152611ed08184611e80565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611f0582611edc565b9050919050565b611f1581611efb565b8114611f1f575f80fd5b50565b5f81359050611f3081611f0c565b92915050565b5f819050919050565b611f4881611f36565b8114611f52575f80fd5b50565b5f81359050611f6381611f3f565b92915050565b5f8060408385031215611f7f57611f7e611ed8565b5b5f611f8c85828601611f22565b9250506020611f9d85828601611f55565b9150509250929050565b5f8115159050919050565b611fbb81611fa7565b82525050565b5f602082019050611fd45f830184611fb2565b92915050565b611fe381611f36565b82525050565b5f602082019050611ffc5f830184611fda565b92915050565b5f805f6060848603121561201957612018611ed8565b5b5f61202686828701611f22565b935050602061203786828701611f22565b925050604061204886828701611f55565b9150509250925092565b5f60ff82169050919050565b61206781612052565b82525050565b5f6020820190506120805f83018461205e565b92915050565b5f6020828403121561209b5761209a611ed8565b5b5f6120a884828501611f22565b91505092915050565b6120ba81611efb565b82525050565b5f6020820190506120d35f8301846120b1565b92915050565b5f819050919050565b5f6120fc6120f76120f284611edc565b6120d9565b611edc565b9050919050565b5f61210d826120e2565b9050919050565b5f61211e82612103565b9050919050565b61212e81612114565b82525050565b5f6020820190506121475f830184612125565b92915050565b5f806040838503121561216357612162611ed8565b5b5f61217085828601611f22565b925050602061218185828601611f22565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6121bf602083611e38565b91506121ca8261218b565b602082019050919050565b5f6020820190508181035f8301526121ec816121b3565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574416d6f756e74206c6f7765725f8201527f207468616e203125000000000000000000000000000000000000000000000000602082015250565b5f61224d602883611e38565b9150612258826121f3565b604082019050919050565b5f6020820190508181035f83015261227a81612241565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6122db602683611e38565b91506122e682612281565b604082019050919050565b5f6020820190508181035f830152612308816122cf565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612369602483611e38565b91506123748261230f565b604082019050919050565b5f6020820190508181035f8301526123968161235d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6123f7602283611e38565b91506124028261239d565b604082019050919050565b5f6020820190508181035f830152612424816123eb565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612485602583611e38565b91506124908261242b565b604082019050919050565b5f6020820190508181035f8301526124b281612479565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612513602383611e38565b915061251e826124b9565b604082019050919050565b5f6020820190508181035f83015261254081612507565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6125a1602983611e38565b91506125ac82612547565b604082019050919050565b5f6020820190508181035f8301526125ce81612595565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61260c82611f36565b915061261783611f36565b925082820390508181111561262f5761262e6125d5565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f61268f602a83611e38565b915061269a82612635565b604082019050919050565b5f6020820190508181035f8301526126bc81612683565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061272b81611f0c565b92915050565b5f6020828403121561274657612745611ed8565b5b5f6127538482850161271d565b91505092915050565b5f819050919050565b5f61277f61277a6127758461275c565b6120d9565b611f36565b9050919050565b61278f81612765565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6127c781611efb565b82525050565b5f6127d883836127be565b60208301905092915050565b5f602082019050919050565b5f6127fa82612795565b612804818561279f565b935061280f836127af565b805f5b8381101561283f57815161282688826127cd565b9750612831836127e4565b925050600181019050612812565b5085935050505092915050565b5f60a08201905061285f5f830188611fda565b61286c6020830187612786565b818103604083015261287e81866127f0565b905061288d60608301856120b1565b61289a6080830184611fda565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6128db82611f36565b91506128e683611f36565b9250826128f6576128f56128a4565b5b828204905092915050565b5f61290b82611f36565b915061291683611f36565b925082820190508082111561292e5761292d6125d5565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612968601b83611e38565b915061297382612934565b602082019050919050565b5f6020820190508181035f8301526129958161295c565b9050919050565b5f6129a682611f36565b91506129b183611f36565b92508282026129bf81611f36565b915082820484148315176129d6576129d56125d5565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a37602183611e38565b9150612a42826129dd565b604082019050919050565b5f6020820190508181035f830152612a6481612a2b565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122073b700f68ddd015edf5f1ff3a9d33b0efd520884db764c0f2a9d5dda9cc649ee64736f6c63430008170033

Deployed Bytecode

0x608060405260043610610101575f3560e01c8063715018a611610094578063a9059cbb11610063578063a9059cbb14610324578063aeafaa2f14610360578063dd62ed3e1461038a578063ee652c71146103c6578063f2fde38b146103f057610108565b8063715018a6146102905780637d1db4a5146102a65780638da5cb5b146102d057806395d89b41146102fa57610108565b80632fd689e3116100d05780632fd689e3146101d8578063313ce567146102025780636b78a7d01461022c57806370a082311461025457610108565b806306fdde031461010c578063095ea7b31461013657806318160ddd1461017257806323b872dd1461019c57610108565b3661010857005b5f80fd5b348015610117575f80fd5b50610120610418565b60405161012d9190611eb8565b60405180910390f35b348015610141575f80fd5b5061015c60048036038101906101579190611f69565b610455565b6040516101699190611fc1565b60405180910390f35b34801561017d575f80fd5b50610186610472565b6040516101939190611fe9565b60405180910390f35b3480156101a7575f80fd5b506101c260048036038101906101bd9190612002565b610484565b6040516101cf9190611fc1565b60405180910390f35b3480156101e3575f80fd5b506101ec610558565b6040516101f99190611fe9565b60405180910390f35b34801561020d575f80fd5b5061021661055e565b604051610223919061206d565b60405180910390f35b348015610237575f80fd5b50610252600480360381019061024d9190612086565b610566565b005b34801561025f575f80fd5b5061027a60048036038101906102759190612086565b6106c6565b6040516102879190611fe9565b60405180910390f35b34801561029b575f80fd5b506102a4610714565b005b3480156102b1575f80fd5b506102ba610862565b6040516102c79190611fe9565b60405180910390f35b3480156102db575f80fd5b506102e4610868565b6040516102f191906120c0565b60405180910390f35b348015610305575f80fd5b5061030e61088f565b60405161031b9190611eb8565b60405180910390f35b34801561032f575f80fd5b5061034a60048036038101906103459190611f69565b6108cc565b6040516103579190611fc1565b60405180910390f35b34801561036b575f80fd5b506103746108e9565b6040516103819190612134565b60405180910390f35b348015610395575f80fd5b506103b060048036038101906103ab919061214d565b61090e565b6040516103bd9190611fe9565b60405180910390f35b3480156103d1575f80fd5b506103da610990565b6040516103e791906120c0565b60405180910390f35b3480156103fb575f80fd5b5061041660048036038101906104119190612086565b6109b5565b005b60606040518060400160405280601381526020017f43686965662054726f6c6c204f66666963657200000000000000000000000000815250905090565b5f610468610461610b72565b8484610b79565b6001905092915050565b5f6a52b7d2dcc80cd2e4000000905090565b5f610490848484610d3c565b61054d8461049c610b72565b61054885604051806060016040528060288152602001612a6c6028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6104ff610b72565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546113479092919063ffffffff16565b610b79565b600190509392505050565b60135481565b5f6012905090565b61056e610b72565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f1906121d5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610668576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065f90612263565b60405180910390fd5b8060105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601160156101000a81548160ff02191690831515021790555050565b5f61070d60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546113a9565b9050919050565b61071c610b72565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079f906121d5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60125481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f43544f0000000000000000000000000000000000000000000000000000000000815250905090565b5f6108df6108d8610b72565b8484610d3c565b6001905092915050565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109bd610b72565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a40906121d5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aae906122f1565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610be7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bde9061237f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4c9061240d565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d2f9190611fe9565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610daa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da19061249b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0f90612529565b60405180910390fd5b5f8111610e5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e51906125b7565b60405180910390fd5b610e62610868565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610ed05750610ea0610868565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611054575f610edf306106c6565b90505f60135482101590506012548210610ef95760125491505b808015610f135750601160149054906101000a900460ff16155b8015610f6c575060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015610f845750601160159054906101000a900460ff165b8015610fd7575060015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561102a575060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611051576110398286611415565b5f4790505f81111561104f5761104e476116d0565b5b505b50505b5f6001905060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806110f4575060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b806111a5575060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156111a4575060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156111b2575f9050611335565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561125b575060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561127357600854600b81905550600754600c819055505b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561131c575060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561133457600a54600b81905550600954600c819055505b5b61134184848484611738565b50505050565b5f83831115829061138e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113859190611eb8565b60405180910390fd5b505f838561139c9190612602565b9050809150509392505050565b5f6005548211156113ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e6906126a5565b60405180910390fd5b5f6113f8611765565b905061140d818461178e90919063ffffffff16565b915050919050565b6001601160146101000a81548160ff0219169083151502179055505f600367ffffffffffffffff81111561144c5761144b6126c3565b5b60405190808252806020026020018201604052801561147a5781602001602082028036833780820191505090505b50905030815f81518110611491576114906126f0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505081816001815181106114e0576114df6126f0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611584573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a89190612731565b816002815181106115bc576115bb6126f0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506116223060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685610b79565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8430426040518663ffffffff1660e01b815260040161168495949392919061284c565b5f604051808303815f87803b15801561169b575f80fd5b505af11580156116ad573d5f803e3d5ffd5b50505050505f601160146101000a81548160ff0219169083151502179055505050565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611734573d5f803e3d5ffd5b5050565b80611746576117456117d7565b5b611751848484611810565b8061175f5761175e6119d0565b5b50505050565b5f805f6117706119e4565b91509150611787818361178e90919063ffffffff16565b9250505090565b5f6117cf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a49565b905092915050565b5f600b541480156117e957505f600c54145b61180e57600b54600d81905550600c54600e819055505f600b819055505f600c819055505b565b5f805f805f8061181f87611aaa565b95509550955095509550955061187b8660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b0a90919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061190c8560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b5390919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061195681611bb0565b6119608483611c67565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516119bd9190611fe9565b60405180910390a3505050505050505050565b600d54600b81905550600e54600c81905550565b5f805f60055490505f6a52b7d2dcc80cd2e40000009050611a1b6a52b7d2dcc80cd2e400000060055461178e90919063ffffffff16565b821015611a3c576005546a52b7d2dcc80cd2e4000000935093505050611a45565b81819350935050505b9091565b5f8083118290611a8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a869190611eb8565b60405180910390fd5b505f8385611a9d91906128d1565b9050809150509392505050565b5f805f805f805f805f611ac28a600b54600c54611ca1565b9250925092505f611ad1611765565b90505f805f611ae28e878787611d33565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f611b4b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611347565b905092915050565b5f808284611b619190612901565b905083811015611ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9d9061297e565b60405180910390fd5b8091505092915050565b5f611bb9611765565b90505f611bcf8284611db790919063ffffffff16565b9050611c218160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b5390919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b611c7c82600554611b0a90919063ffffffff16565b600581905550611c9781600654611b5390919063ffffffff16565b6006819055505050565b5f805f80611ccb6064611cbd888a611db790919063ffffffff16565b61178e90919063ffffffff16565b90505f611cf46064611ce6888b611db790919063ffffffff16565b61178e90919063ffffffff16565b90505f611d1c82611d0e858c611b0a90919063ffffffff16565b611b0a90919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80611d4a8589611db790919063ffffffff16565b90505f611d608689611db790919063ffffffff16565b90505f611d768789611db790919063ffffffff16565b90505f611d9e82611d908587611b0a90919063ffffffff16565b611b0a90919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303611dc7575f9050611e28565b5f8284611dd4919061299c565b9050828482611de391906128d1565b14611e23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1a90612a4d565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611e65578082015181840152602081019050611e4a565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611e8a82611e2e565b611e948185611e38565b9350611ea4818560208601611e48565b611ead81611e70565b840191505092915050565b5f6020820190508181035f830152611ed08184611e80565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611f0582611edc565b9050919050565b611f1581611efb565b8114611f1f575f80fd5b50565b5f81359050611f3081611f0c565b92915050565b5f819050919050565b611f4881611f36565b8114611f52575f80fd5b50565b5f81359050611f6381611f3f565b92915050565b5f8060408385031215611f7f57611f7e611ed8565b5b5f611f8c85828601611f22565b9250506020611f9d85828601611f55565b9150509250929050565b5f8115159050919050565b611fbb81611fa7565b82525050565b5f602082019050611fd45f830184611fb2565b92915050565b611fe381611f36565b82525050565b5f602082019050611ffc5f830184611fda565b92915050565b5f805f6060848603121561201957612018611ed8565b5b5f61202686828701611f22565b935050602061203786828701611f22565b925050604061204886828701611f55565b9150509250925092565b5f60ff82169050919050565b61206781612052565b82525050565b5f6020820190506120805f83018461205e565b92915050565b5f6020828403121561209b5761209a611ed8565b5b5f6120a884828501611f22565b91505092915050565b6120ba81611efb565b82525050565b5f6020820190506120d35f8301846120b1565b92915050565b5f819050919050565b5f6120fc6120f76120f284611edc565b6120d9565b611edc565b9050919050565b5f61210d826120e2565b9050919050565b5f61211e82612103565b9050919050565b61212e81612114565b82525050565b5f6020820190506121475f830184612125565b92915050565b5f806040838503121561216357612162611ed8565b5b5f61217085828601611f22565b925050602061218185828601611f22565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6121bf602083611e38565b91506121ca8261218b565b602082019050919050565b5f6020820190508181035f8301526121ec816121b3565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574416d6f756e74206c6f7765725f8201527f207468616e203125000000000000000000000000000000000000000000000000602082015250565b5f61224d602883611e38565b9150612258826121f3565b604082019050919050565b5f6020820190508181035f83015261227a81612241565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6122db602683611e38565b91506122e682612281565b604082019050919050565b5f6020820190508181035f830152612308816122cf565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612369602483611e38565b91506123748261230f565b604082019050919050565b5f6020820190508181035f8301526123968161235d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6123f7602283611e38565b91506124028261239d565b604082019050919050565b5f6020820190508181035f830152612424816123eb565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612485602583611e38565b91506124908261242b565b604082019050919050565b5f6020820190508181035f8301526124b281612479565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612513602383611e38565b915061251e826124b9565b604082019050919050565b5f6020820190508181035f83015261254081612507565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6125a1602983611e38565b91506125ac82612547565b604082019050919050565b5f6020820190508181035f8301526125ce81612595565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61260c82611f36565b915061261783611f36565b925082820390508181111561262f5761262e6125d5565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f61268f602a83611e38565b915061269a82612635565b604082019050919050565b5f6020820190508181035f8301526126bc81612683565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061272b81611f0c565b92915050565b5f6020828403121561274657612745611ed8565b5b5f6127538482850161271d565b91505092915050565b5f819050919050565b5f61277f61277a6127758461275c565b6120d9565b611f36565b9050919050565b61278f81612765565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6127c781611efb565b82525050565b5f6127d883836127be565b60208301905092915050565b5f602082019050919050565b5f6127fa82612795565b612804818561279f565b935061280f836127af565b805f5b8381101561283f57815161282688826127cd565b9750612831836127e4565b925050600181019050612812565b5085935050505092915050565b5f60a08201905061285f5f830188611fda565b61286c6020830187612786565b818103604083015261287e81866127f0565b905061288d60608301856120b1565b61289a6080830184611fda565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6128db82611f36565b91506128e683611f36565b9250826128f6576128f56128a4565b5b828204905092915050565b5f61290b82611f36565b915061291683611f36565b925082820190508082111561292e5761292d6125d5565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612968601b83611e38565b915061297382612934565b602082019050919050565b5f6020820190508181035f8301526129958161295c565b9050919050565b5f6129a682611f36565b91506129b183611f36565b92508282026129bf81611f36565b915082820484148315176129d6576129d56125d5565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a37602183611e38565b9150612a42826129dd565b604082019050919050565b5f6020820190508181035f830152612a6481612a2b565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122073b700f68ddd015edf5f1ff3a9d33b0efd520884db764c0f2a9d5dda9cc649ee64736f6c63430008170033

Deployed Bytecode Sourcemap

3954:10967:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6063:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7005:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6353:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7207:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5337:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6261:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12381:245;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6457:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1521:158;;;;;;;;;;;;;:::i;:::-;;5282:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1305:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6160:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6604:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5128:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6812:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5174:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1688:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6063:88;6100:13;6133:10;;;;;;;;;;;;;;;;;6126:17;;6063:88;:::o;7005:193::-;7107:4;7129:39;7138:12;:10;:12::i;:::-;7152:7;7161:6;7129:8;:39::i;:::-;7186:4;7179:11;;7005:193;;;;:::o;6353:95::-;6406:7;4529:18;6426:14;;6353:95;:::o;7207:446::-;7339:4;7356:36;7366:6;7374:9;7385:6;7356:9;:36::i;:::-;7403:220;7426:6;7447:12;:10;:12::i;:::-;7474:138;7530:6;7474:138;;;;;;;;;;;;;;;;;:11;:19;7486:6;7474:19;;;;;;;;;;;;;;;:33;7494:12;:10;:12::i;:::-;7474:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7403:8;:220::i;:::-;7641:4;7634:11;;7207:446;;;;;:::o;5337:34::-;;;;:::o;6261:83::-;6302:5;4192:2;6320:16;;6261:83;:::o;12381:245::-;1443:12;:10;:12::i;:::-;1433:22;;:6;;;;;;;;;;:22;;;1425:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12483:1:::1;12459:26;;:12;:26;;::::0;12451:79:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;12576:12;12541:14;;:48;;;;;;;;;;;;;;;;;;12614:4;12600:11;;:18;;;;;;;;;;;;;;;;;;12381:245:::0;:::o;6457:138::-;6523:7;6550:37;6570:7;:16;6578:7;6570:16;;;;;;;;;;;;;;;;6550:19;:37::i;:::-;6543:44;;6457:138;;;:::o;1521:158::-;1443:12;:10;:12::i;:::-;1433:22;;:6;;;;;;;;;;:22;;;1425:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1638:1:::1;1591:50;;1612:6;::::0;::::1;;;;;;;;1591:50;;;;;;;;;;;;1669:1;1652:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1521:158::o:0;5282:47::-;;;;:::o;1305:79::-;1343:7;1370:6;;;;;;;;;;;1363:13;;1305:79;:::o;6160:92::-;6199:13;6232:12;;;;;;;;;;;;;;;;;6225:19;;6160:92;:::o;6604:199::-;6709:4;6731:42;6741:12;:10;:12::i;:::-;6755:9;6766:6;6731:9;:42::i;:::-;6791:4;6784:11;;6604:199;;;;:::o;5128:39::-;;;;;;;;;;;;;:::o;6812:184::-;6929:7;6961:11;:18;6973:5;6961:18;;;;;;;;;;;;;;;:27;6980:7;6961:27;;;;;;;;;;;;;;;;6954:34;;6812:184;;;;:::o;5174:27::-;;;;;;;;;;;;;:::o;1688:244::-;1443:12;:10;:12::i;:::-;1433:22;;:6;;;;;;;;;;:22;;;1425:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1797:1:::1;1777:22;;:8;:22;;::::0;1769:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1887:8;1858:38;;1879:6;::::0;::::1;;;;;;;;1858:38;;;;;;;;;;;;1916:8;1907:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1688:244:::0;:::o;97:98::-;150:7;177:10;170:17;;97:98;:::o;8353:369::-;8497:1;8480:19;;:5;:19;;;8472:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8578:1;8559:21;;:7;:21;;;8551:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8660:6;8630:11;:18;8642:5;8630:18;;;;;;;;;;;;;;;:27;8649:7;8630:27;;;;;;;;;;;;;;;:36;;;;8698:7;8682:32;;8691:5;8682:32;;;8707:6;8682:32;;;;;;:::i;:::-;;;;;;;;8353:369;;;:::o;8731:1819::-;8869:1;8853:18;;:4;:18;;;8845:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8946:1;8932:16;;:2;:16;;;8924:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9016:1;9007:6;:10;8999:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9089:7;:5;:7::i;:::-;9081:15;;:4;:15;;;;:32;;;;;9106:7;:5;:7::i;:::-;9100:13;;:2;:13;;;;9081:32;9077:747;;;9136:28;9167:24;9185:4;9167:9;:24::i;:::-;9136:55;;9206:12;9245:19;;9221:20;:43;;9206:58;;9309:12;;9285:20;:36;9282:124;;9378:12;;9355:35;;9282:124;9427:7;:18;;;;;9439:6;;;;;;;;;;;9438:7;9427:18;:42;;;;;9457:12;;;;;;;;;;;9449:20;;:4;:20;;;;9427:42;:57;;;;;9473:11;;;;;;;;;;;9427:57;:86;;;;;9489:18;:24;9508:4;9489:24;;;;;;;;;;;;;;;;;;;;;;;;;9488:25;9427:86;:113;;;;;9518:18;:22;9537:2;9518:22;;;;;;;;;;;;;;;;;;;;;;;;;9517:23;9427:113;9423:390;;;9561:43;9578:20;9599:4;9561:16;:43::i;:::-;9623:26;9652:21;9623:50;;9717:1;9696:18;:22;9692:106;;;9743:35;9756:21;9743:12;:35::i;:::-;9692:106;9542:271;9423:390;9115:709;;9077:747;9837:12;9852:4;9837:19;;9902:18;:24;9921:4;9902:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;9930:18;:22;9949:2;9930:22;;;;;;;;;;;;;;;;;;;;;;;;;9902:50;9901:100;;;;9966:12;;;;;;;;;;;9958:20;;:4;:20;;;;:42;;;;;9988:12;;;;;;;;;;;9982:18;;:2;:18;;;;9958:42;9901:100;9897:591;;;10028:5;10018:15;;9897:591;;;10112:12;;;;;;;;;;;10104:20;;:4;:20;;;:53;;;;;10142:14;;;;;;;;;;;10128:29;;:2;:29;;;;10104:53;10101:160;;;10190:14;;10178:9;:26;;;;10233:12;;10223:7;:22;;;;10101:160;10321:12;;;;;;;;;;;10315:18;;:2;:18;;;:53;;;;;10353:14;;;;;;;;;;;10337:31;;:4;:31;;;;10315:53;10311:163;;;10401:15;;10389:9;:27;;;;10445:13;;10435:7;:23;;;;10311:163;9897:591;10501:41;10516:4;10522:2;10526:6;10534:7;10501:14;:41::i;:::-;8834:1716;8731:1819;;;:::o;2300:224::-;2420:7;2453:1;2448;:6;;2456:12;2440:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2480:9;2496:1;2492;:5;;;;:::i;:::-;2480:17;;2515:1;2508:8;;;2300:224;;;;;:::o;7898:323::-;7993:7;8051;;8040;:18;;8018:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8139:19;8161:10;:8;:10::i;:::-;8139:32;;8189:24;8201:11;8189:7;:11;;:24;;;;:::i;:::-;8182:31;;;7898:323;;;:::o;10559:518::-;5559:4;5550:6;;:13;;;;;;;;;;;;;;;;;;10650:21:::1;10688:1;10674:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10650:40;;10719:4;10701;10706:1;10701:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10745:4;10735;10740:1;10735:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;10770;;;;;;;;;;;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10760:4;10765:1;10760:7;;;;;;;;:::i;:::-;;;;;;;:31;;;;;;;;;::::0;::::1;10802:61;10819:4;10834:14;;;;;;;;;;;10851:11;10802:8;:61::i;:::-;10874:14;;;;;;;;;;;:65;;;10954:11;10980:1;10996:4;11023;11043:15;10874:195;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10639:438;5595:5:::0;5586:6;;:14;;;;;;;;;;;;;;;;;;10559:518;;:::o;11086:99::-;11143:17;;;;;;;;;;;:26;;:34;11170:6;11143:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11086:99;:::o;11194:282::-;11350:7;11345:28;;11359:14;:12;:14::i;:::-;11345:28;11384:44;11402:6;11410:9;11421:6;11384:17;:44::i;:::-;11444:7;11439:29;;11453:15;:13;:15::i;:::-;11439:29;11194:282;;;;:::o;14477:164::-;14519:7;14540:15;14557;14576:19;:17;:19::i;:::-;14539:56;;;;14613:20;14625:7;14613;:11;;:20;;;;:::i;:::-;14606:27;;;;14477:164;:::o;2788:132::-;2846:7;2873:39;2877:1;2880;2873:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2866:46;;2788:132;;;;:::o;7670:221::-;7730:1;7717:9;;:14;:30;;;;;7746:1;7735:7;;:12;7717:30;7749:7;7713:43;7789:9;;7769:17;:29;;;;7827:7;;7809:15;:25;;;;7860:1;7848:9;:13;;;;7882:1;7872:7;:11;;;;7670:221;:::o;11494:610::-;11641:15;11671:23;11709:12;11736:23;11774:12;11801:13;11828:19;11839:7;11828:10;:19::i;:::-;11626:221;;;;;;;;;;;;11876:28;11896:7;11876;:15;11884:6;11876:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11858:7;:15;11866:6;11858:15;;;;;;;;;;;;;;;:46;;;;11936:39;11959:15;11936:7;:18;11944:9;11936:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11915:7;:18;11923:9;11915:18;;;;;;;;;;;;;;;:60;;;;11986:16;11996:5;11986:9;:16::i;:::-;12013:23;12025:4;12031;12013:11;:23::i;:::-;12069:9;12052:44;;12061:6;12052:44;;;12080:15;12052:44;;;;;;:::i;:::-;;;;;;;;11615:489;;;;;;11494:610;;;:::o;8227:117::-;8283:17;;8271:9;:29;;;;8321:15;;8311:7;:25;;;;8227:117::o;14650:257::-;14701:7;14710;14730:15;14748:7;;14730:25;;14766:15;4529:18;14766:25;;14816:20;4529:18;14816:7;;:11;;:20;;;;:::i;:::-;14806:7;:30;14802:61;;;14846:7;;4529:18;14838:25;;;;;;;;14802:61;14882:7;14891;14874:25;;;;;;14650:257;;;:::o;2929:223::-;3049:7;3081:1;3077;:5;3084:12;3069:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3108:9;3124:1;3120;:5;;;;:::i;:::-;3108:17;;3143:1;3136:8;;;2929:223;;;;;:::o;12832:615::-;12932:7;12954;12976;12998;13020;13042;13078:23;13103:12;13117:13;13147:40;13159:7;13168:9;;13179:7;;13147:11;:40::i;:::-;13077:110;;;;;;13198:19;13220:10;:8;:10::i;:::-;13198:32;;13242:15;13259:23;13284:12;13313:46;13325:7;13334:4;13340:5;13347:11;13313;:46::i;:::-;13241:118;;;;;;13378:7;13387:15;13404:4;13410:15;13427:4;13433:5;13370:69;;;;;;;;;;;;;;;;;;;12832:615;;;;;;;:::o;2155:136::-;2213:7;2240:43;2244:1;2247;2240:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2233:50;;2155:136;;;;:::o;1967:179::-;2025:7;2045:9;2061:1;2057;:5;;;;:::i;:::-;2045:17;;2086:1;2081;:6;;2073:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2137:1;2130:8;;;1967:179;;;;:::o;12116:211::-;12169:19;12191:10;:8;:10::i;:::-;12169:32;;12212:13;12228:22;12238:11;12228:5;:9;;:22;;;;:::i;:::-;12212:38;;12286:33;12313:5;12286:7;:22;12302:4;12286:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;12261:7;:22;12277:4;12261:22;;;;;;;;;;;;;;;:58;;;;12158:169;;12116:211;:::o;12638:147::-;12716:17;12728:4;12716:7;;:11;;:17;;;;:::i;:::-;12706:7;:27;;;;12757:20;12772:4;12757:10;;:14;;:20;;;;:::i;:::-;12744:10;:33;;;;12638:147;;:::o;13456:469::-;13625:7;13647;13669;13704:12;13719:30;13745:3;13719:21;13731:8;13719:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;13704:45;;13760:13;13776:28;13800:3;13776:19;13788:6;13776:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;13760:44;;13815:23;13841:28;13863:5;13841:17;13853:4;13841:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13815:54;;13888:15;13905:4;13911:5;13880:37;;;;;;;;;13456:469;;;;;;;:::o;13934:534::-;14128:7;14150;14172;14207:15;14225:24;14237:11;14225:7;:11;;:24;;;;:::i;:::-;14207:42;;14260:12;14275:21;14284:11;14275:4;:8;;:21;;;;:::i;:::-;14260:36;;14307:13;14323:22;14333:11;14323:5;:9;;:22;;;;:::i;:::-;14307:38;;14356:23;14382:28;14404:5;14382:17;14394:4;14382:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14356:54;;14429:7;14438:15;14455:4;14421:39;;;;;;;;;;13934:534;;;;;;;;:::o;2533:246::-;2591:7;2620:1;2615;:6;2611:47;;2645:1;2638:8;;;;2611:47;2668:9;2684:1;2680;:5;;;;:::i;:::-;2668:17;;2713:1;2708;2704;:5;;;;:::i;:::-;:10;2696:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2770:1;2763:8;;;2533:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:60::-;5568:3;5589:5;5582:12;;5540:60;;;:::o;5606:142::-;5656:9;5689:53;5707:34;5716:24;5734:5;5716:24;:::i;:::-;5707:34;:::i;:::-;5689:53;:::i;:::-;5676:66;;5606:142;;;:::o;5754:126::-;5804:9;5837:37;5868:5;5837:37;:::i;:::-;5824:50;;5754:126;;;:::o;5886:151::-;5961:9;5994:37;6025:5;5994:37;:::i;:::-;5981:50;;5886:151;;;:::o;6043:181::-;6155:62;6211:5;6155:62;:::i;:::-;6150:3;6143:75;6043:181;;:::o;6230:272::-;6348:4;6386:2;6375:9;6371:18;6363:26;;6399:96;6492:1;6481:9;6477:17;6468:6;6399:96;:::i;:::-;6230:272;;;;:::o;6508:474::-;6576:6;6584;6633:2;6621:9;6612:7;6608:23;6604:32;6601:119;;;6639:79;;:::i;:::-;6601:119;6759:1;6784:53;6829:7;6820:6;6809:9;6805:22;6784:53;:::i;:::-;6774:63;;6730:117;6886:2;6912:53;6957:7;6948:6;6937:9;6933:22;6912:53;:::i;:::-;6902:63;;6857:118;6508:474;;;;;:::o;6988:182::-;7128:34;7124:1;7116:6;7112:14;7105:58;6988:182;:::o;7176:366::-;7318:3;7339:67;7403:2;7398:3;7339:67;:::i;:::-;7332:74;;7415:93;7504:3;7415:93;:::i;:::-;7533:2;7528:3;7524:12;7517:19;;7176:366;;;:::o;7548:419::-;7714:4;7752:2;7741:9;7737:18;7729:26;;7801:9;7795:4;7791:20;7787:1;7776:9;7772:17;7765:47;7829:131;7955:4;7829:131;:::i;:::-;7821:139;;7548:419;;;:::o;7973:227::-;8113:34;8109:1;8101:6;8097:14;8090:58;8182:10;8177:2;8169:6;8165:15;8158:35;7973:227;:::o;8206:366::-;8348:3;8369:67;8433:2;8428:3;8369:67;:::i;:::-;8362:74;;8445:93;8534:3;8445:93;:::i;:::-;8563:2;8558:3;8554:12;8547:19;;8206:366;;;:::o;8578:419::-;8744:4;8782:2;8771:9;8767:18;8759:26;;8831:9;8825:4;8821:20;8817:1;8806:9;8802:17;8795:47;8859:131;8985:4;8859:131;:::i;:::-;8851:139;;8578:419;;;:::o;9003:225::-;9143:34;9139:1;9131:6;9127:14;9120:58;9212:8;9207:2;9199:6;9195:15;9188:33;9003:225;:::o;9234:366::-;9376:3;9397:67;9461:2;9456:3;9397:67;:::i;:::-;9390:74;;9473:93;9562:3;9473:93;:::i;:::-;9591:2;9586:3;9582:12;9575:19;;9234:366;;;:::o;9606:419::-;9772:4;9810:2;9799:9;9795:18;9787:26;;9859:9;9853:4;9849:20;9845:1;9834:9;9830:17;9823:47;9887:131;10013:4;9887:131;:::i;:::-;9879:139;;9606:419;;;:::o;10031:223::-;10171:34;10167:1;10159:6;10155:14;10148:58;10240:6;10235:2;10227:6;10223:15;10216:31;10031:223;:::o;10260:366::-;10402:3;10423:67;10487:2;10482:3;10423:67;:::i;:::-;10416:74;;10499:93;10588:3;10499:93;:::i;:::-;10617:2;10612:3;10608:12;10601:19;;10260:366;;;:::o;10632:419::-;10798:4;10836:2;10825:9;10821:18;10813:26;;10885:9;10879:4;10875:20;10871:1;10860:9;10856:17;10849:47;10913:131;11039:4;10913:131;:::i;:::-;10905:139;;10632:419;;;:::o;11057:221::-;11197:34;11193:1;11185:6;11181:14;11174:58;11266:4;11261:2;11253:6;11249:15;11242:29;11057:221;:::o;11284:366::-;11426:3;11447:67;11511:2;11506:3;11447:67;:::i;:::-;11440:74;;11523:93;11612:3;11523:93;:::i;:::-;11641:2;11636:3;11632:12;11625:19;;11284:366;;;:::o;11656:419::-;11822:4;11860:2;11849:9;11845:18;11837:26;;11909:9;11903:4;11899:20;11895:1;11884:9;11880:17;11873:47;11937:131;12063:4;11937:131;:::i;:::-;11929:139;;11656:419;;;:::o;12081:224::-;12221:34;12217:1;12209:6;12205:14;12198:58;12290:7;12285:2;12277:6;12273:15;12266:32;12081:224;:::o;12311:366::-;12453:3;12474:67;12538:2;12533:3;12474:67;:::i;:::-;12467:74;;12550:93;12639:3;12550:93;:::i;:::-;12668:2;12663:3;12659:12;12652:19;;12311:366;;;:::o;12683:419::-;12849:4;12887:2;12876:9;12872:18;12864:26;;12936:9;12930:4;12926:20;12922:1;12911:9;12907:17;12900:47;12964:131;13090:4;12964:131;:::i;:::-;12956:139;;12683:419;;;:::o;13108:222::-;13248:34;13244:1;13236:6;13232:14;13225:58;13317:5;13312:2;13304:6;13300:15;13293:30;13108:222;:::o;13336:366::-;13478:3;13499:67;13563:2;13558:3;13499:67;:::i;:::-;13492:74;;13575:93;13664:3;13575:93;:::i;:::-;13693:2;13688:3;13684:12;13677:19;;13336:366;;;:::o;13708:419::-;13874:4;13912:2;13901:9;13897:18;13889:26;;13961:9;13955:4;13951:20;13947:1;13936:9;13932:17;13925:47;13989:131;14115:4;13989:131;:::i;:::-;13981:139;;13708:419;;;:::o;14133:228::-;14273:34;14269:1;14261:6;14257:14;14250:58;14342:11;14337:2;14329:6;14325:15;14318:36;14133:228;:::o;14367:366::-;14509:3;14530:67;14594:2;14589:3;14530:67;:::i;:::-;14523:74;;14606:93;14695:3;14606:93;:::i;:::-;14724:2;14719:3;14715:12;14708:19;;14367:366;;;:::o;14739:419::-;14905:4;14943:2;14932:9;14928:18;14920:26;;14992:9;14986:4;14982:20;14978:1;14967:9;14963:17;14956:47;15020:131;15146:4;15020:131;:::i;:::-;15012:139;;14739:419;;;:::o;15164:180::-;15212:77;15209:1;15202:88;15309:4;15306:1;15299:15;15333:4;15330:1;15323:15;15350:194;15390:4;15410:20;15428:1;15410:20;:::i;:::-;15405:25;;15444:20;15462:1;15444:20;:::i;:::-;15439:25;;15488:1;15485;15481:9;15473:17;;15512:1;15506:4;15503:11;15500:37;;;15517:18;;:::i;:::-;15500:37;15350:194;;;;:::o;15550:229::-;15690:34;15686:1;15678:6;15674:14;15667:58;15759:12;15754:2;15746:6;15742:15;15735:37;15550:229;:::o;15785:366::-;15927:3;15948:67;16012:2;16007:3;15948:67;:::i;:::-;15941:74;;16024:93;16113:3;16024:93;:::i;:::-;16142:2;16137:3;16133:12;16126:19;;15785:366;;;:::o;16157:419::-;16323:4;16361:2;16350:9;16346:18;16338:26;;16410:9;16404:4;16400:20;16396:1;16385:9;16381:17;16374:47;16438:131;16564:4;16438:131;:::i;:::-;16430:139;;16157:419;;;:::o;16582:180::-;16630:77;16627:1;16620:88;16727:4;16724:1;16717:15;16751:4;16748:1;16741:15;16768:180;16816:77;16813:1;16806:88;16913:4;16910:1;16903:15;16937:4;16934:1;16927:15;16954:143;17011:5;17042:6;17036:13;17027:22;;17058:33;17085:5;17058:33;:::i;:::-;16954:143;;;;:::o;17103:351::-;17173:6;17222:2;17210:9;17201:7;17197:23;17193:32;17190:119;;;17228:79;;:::i;:::-;17190:119;17348:1;17373:64;17429:7;17420:6;17409:9;17405:22;17373:64;:::i;:::-;17363:74;;17319:128;17103:351;;;;:::o;17460:85::-;17505:7;17534:5;17523:16;;17460:85;;;:::o;17551:158::-;17609:9;17642:61;17660:42;17669:32;17695:5;17669:32;:::i;:::-;17660:42;:::i;:::-;17642:61;:::i;:::-;17629:74;;17551:158;;;:::o;17715:147::-;17810:45;17849:5;17810:45;:::i;:::-;17805:3;17798:58;17715:147;;:::o;17868:114::-;17935:6;17969:5;17963:12;17953:22;;17868:114;;;:::o;17988:184::-;18087:11;18121:6;18116:3;18109:19;18161:4;18156:3;18152:14;18137:29;;17988:184;;;;:::o;18178:132::-;18245:4;18268:3;18260:11;;18298:4;18293:3;18289:14;18281:22;;18178:132;;;:::o;18316:108::-;18393:24;18411:5;18393:24;:::i;:::-;18388:3;18381:37;18316:108;;:::o;18430:179::-;18499:10;18520:46;18562:3;18554:6;18520:46;:::i;:::-;18598:4;18593:3;18589:14;18575:28;;18430:179;;;;:::o;18615:113::-;18685:4;18717;18712:3;18708:14;18700:22;;18615:113;;;:::o;18764:732::-;18883:3;18912:54;18960:5;18912:54;:::i;:::-;18982:86;19061:6;19056:3;18982:86;:::i;:::-;18975:93;;19092:56;19142:5;19092:56;:::i;:::-;19171:7;19202:1;19187:284;19212:6;19209:1;19206:13;19187:284;;;19288:6;19282:13;19315:63;19374:3;19359:13;19315:63;:::i;:::-;19308:70;;19401:60;19454:6;19401:60;:::i;:::-;19391:70;;19247:224;19234:1;19231;19227:9;19222:14;;19187:284;;;19191:14;19487:3;19480:10;;18888:608;;;18764:732;;;;:::o;19502:831::-;19765:4;19803:3;19792:9;19788:19;19780:27;;19817:71;19885:1;19874:9;19870:17;19861:6;19817:71;:::i;:::-;19898:80;19974:2;19963:9;19959:18;19950:6;19898:80;:::i;:::-;20025:9;20019:4;20015:20;20010:2;19999:9;19995:18;19988:48;20053:108;20156:4;20147:6;20053:108;:::i;:::-;20045:116;;20171:72;20239:2;20228:9;20224:18;20215:6;20171:72;:::i;:::-;20253:73;20321:3;20310:9;20306:19;20297:6;20253:73;:::i;:::-;19502:831;;;;;;;;:::o;20339:180::-;20387:77;20384:1;20377:88;20484:4;20481:1;20474:15;20508:4;20505:1;20498:15;20525:185;20565:1;20582:20;20600:1;20582:20;:::i;:::-;20577:25;;20616:20;20634:1;20616:20;:::i;:::-;20611:25;;20655:1;20645:35;;20660:18;;:::i;:::-;20645:35;20702:1;20699;20695:9;20690:14;;20525:185;;;;:::o;20716:191::-;20756:3;20775:20;20793:1;20775:20;:::i;:::-;20770:25;;20809:20;20827:1;20809:20;:::i;:::-;20804:25;;20852:1;20849;20845:9;20838:16;;20873:3;20870:1;20867:10;20864:36;;;20880:18;;:::i;:::-;20864:36;20716:191;;;;:::o;20913:177::-;21053:29;21049:1;21041:6;21037:14;21030:53;20913:177;:::o;21096:366::-;21238:3;21259:67;21323:2;21318:3;21259:67;:::i;:::-;21252:74;;21335:93;21424:3;21335:93;:::i;:::-;21453:2;21448:3;21444:12;21437:19;;21096:366;;;:::o;21468:419::-;21634:4;21672:2;21661:9;21657:18;21649:26;;21721:9;21715:4;21711:20;21707:1;21696:9;21692:17;21685:47;21749:131;21875:4;21749:131;:::i;:::-;21741:139;;21468:419;;;:::o;21893:410::-;21933:7;21956:20;21974:1;21956:20;:::i;:::-;21951:25;;21990:20;22008:1;21990:20;:::i;:::-;21985:25;;22045:1;22042;22038:9;22067:30;22085:11;22067:30;:::i;:::-;22056:41;;22246:1;22237:7;22233:15;22230:1;22227:22;22207:1;22200:9;22180:83;22157:139;;22276:18;;:::i;:::-;22157:139;21941:362;21893:410;;;;:::o;22309:220::-;22449:34;22445:1;22437:6;22433:14;22426:58;22518:3;22513:2;22505:6;22501:15;22494:28;22309:220;:::o;22535:366::-;22677:3;22698:67;22762:2;22757:3;22698:67;:::i;:::-;22691:74;;22774:93;22863:3;22774:93;:::i;:::-;22892:2;22887:3;22883:12;22876:19;;22535:366;;;:::o;22907:419::-;23073:4;23111:2;23100:9;23096:18;23088:26;;23160:9;23154:4;23150:20;23146:1;23135:9;23131:17;23124:47;23188:131;23314:4;23188:131;:::i;:::-;23180:139;;22907:419;;;:::o

Swarm Source

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