ETH Price: $3,407.39 (+1.12%)

Token

TAIYO (TAIYO)
 

Overview

Max Total Supply

100,000,000,000,000 TAIYO

Holders

876 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
268,636.879004561 TAIYO

Value
$0.00
0x159a389519ee2d5d1c7850ab019c32d1bd1d9aa7
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Taiyo’s fiery and restless energy is a reflection of Taiyo’s home: the sun.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
TAIYO

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-07-20
*/

/*

TAIYO (TAIYO)

Website: https://tsukiverse.com
Telegram: https://t.me/TsukiInu
Twitter: https://twitter.com/missiontsuki

*/

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

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

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 IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}

interface IUniswapV2Router02 {
    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
        );
}

contract TAIYO is Context, IERC20, Ownable {
    using SafeMath for uint256;

    string private constant _name = "TAIYO";
    string private constant _symbol = "TAIYO";
    uint8 private constant _decimals = 9;

    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 = 100000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _taiyor = 2;
    uint256 private _taiyot = 12;
    uint256 private _previoustaiyor = _taiyor;
    uint256 private _previoustaiyot = _taiyot;
    mapping(address => bool) private bots;
    mapping(address => uint256) private cooldown;
    address payable private _teamAddress;
    address payable private _marketingFunds;
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
    uint256 public _maxTxAmount = 500000000000 * 10**9;

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

    constructor(address payable addr1, address payable addr2) {
        _teamAddress = addr1;
        _marketingFunds = addr2;
        _rOwned[_msgSender()] = _rTotal;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_teamAddress] = true;
        _isExcludedFromFee[_marketingFunds] = 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 (_taiyor == 0 && _taiyot == 0) return;
    
        _previoustaiyor = _taiyor;
        _previoustaiyot = _taiyot;
        
        _taiyor = 0;
        _taiyot = 0;
    }

    function restoreAllFee() private {
        _taiyor = _previoustaiyor;
        _taiyot = _previoustaiyot;
    }

    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()) {
            
            //Trade start check
            if (from == uniswapV2Pair || to == uniswapV2Pair) { 
                require(tradingOpen, "Trading is not enabled yet");
            }
              
            require(amount <= _maxTxAmount);
            require(!bots[from] && !bots[to]);
            
            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
            
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                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 {
        _teamAddress.transfer(amount.div(2));
        _marketingFunds.transfer(amount.div(2));
    }

    function launchTaiyo() external onlyOwner() {
        require(!tradingOpen, "trading is already started");
        tradingOpen = true;
    }

    function manualswap() external {
        require(_msgSender() == _teamAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _teamAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

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

    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

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

    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, _taiyor, _taiyot);
        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 taiyor,
        uint256 taiyot
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(taiyor).div(100);
        uint256 tTeam = tAmount.mul(taiyot).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);
    }

    function setMaxTxPercent(uint256 maxTxPercent) external onlyOwner() {
        require(maxTxPercent > 0, "Amount must be greater than 0");
        _maxTxAmount = _tTotal.mul(maxTxPercent).div(10**2);
        emit MaxTxAmountUpdated(_maxTxAmount);
    }
    
    function modtaiyor(uint256 taiyor) external onlyOwner() {
        require(taiyor >= 0 && taiyor <= 25, 'taiyor should be in 0 - 25');
        _taiyor = taiyor;
    }

    function modtaiyot(uint256 taiyot) external onlyOwner() {
        require(taiyot >= 0 && taiyot <= 25, 'taiyot should be in 0 - 25');
        _taiyot = taiyot;
    }
 
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"addr1","type":"address"},{"internalType":"address payable","name":"addr2","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","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":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"launchTaiyo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taiyor","type":"uint256"}],"name":"modtaiyor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taiyot","type":"uint256"}],"name":"modtaiyot","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTxPercent","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"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405269152d02c7e14af68000006000196200001e919062000880565b6000196200002d9190620007f3565b6006556002600855600c600955600854600a55600954600b556000601160156101000a81548160ff0219169083151502179055506001601160166101000a81548160ff021916908315150217905550681b1ae4d6e2ef5000006012553480156200009657600080fd5b5060405162003bfd38038062003bfd8339818101604052810190620000bc919062000740565b6000620000ce620006af60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506006546002600062000205620006af60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002e457600080fd5b505afa158015620002f9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031f91906200070e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200038257600080fd5b505afa15801562000397573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003bd91906200070e565b6040518363ffffffff1660e01b8152600401620003dc929190620007a9565b602060405180830381600087803b158015620003f757600080fd5b505af11580156200040c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200043291906200070e565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005600062000488620006b760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000635620006af60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69152d02c7e14af68000006040516200069e9190620007d6565b60405180910390a35050506200094f565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050620006f1816200091b565b92915050565b600081519050620007088162000935565b92915050565b60006020828403121562000727576200072662000916565b5b60006200073784828501620006e0565b91505092915050565b600080604083850312156200075a576200075962000916565b5b60006200076a85828601620006f7565b92505060206200077d85828601620006f7565b9150509250929050565b62000792816200082e565b82525050565b620007a38162000876565b82525050565b6000604082019050620007c0600083018562000787565b620007cf602083018462000787565b9392505050565b6000602082019050620007ed600083018462000798565b92915050565b6000620008008262000876565b91506200080d8362000876565b925082821015620008235762000822620008b8565b5b828203905092915050565b60006200083b8262000856565b9050919050565b60006200084f8262000856565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006200088d8262000876565b91506200089a8362000876565b925082620008ad57620008ac620008e7565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b62000926816200082e565b81146200093257600080fd5b50565b620009408162000842565b81146200094c57600080fd5b50565b61329e806200095f6000396000f3fe6080604052600436106101385760003560e01c80636fc3eaec116100ab57806395d89b411161006f57806395d89b41146103e8578063a9059cbb14610413578063ab7b576014610450578063c3c8cd8014610479578063d543dbeb14610490578063dd62ed3e146104b95761013f565b80636fc3eaec1461032757806370a082311461033e578063715018a61461037b5780637d1db4a5146103925780638da5cb5b146103bd5761013f565b80632152c6d9116100fd5780632152c6d91461022b57806323b872dd14610242578063313ce5671461027f57806344426f6e146102aa57806349bd5a5e146102d35780636b999053146102fe5761013f565b8062b8cf2a1461014457806306fdde031461016d578063095ea7b3146101985780631694505e146101d557806318160ddd146102005761013f565b3661013f57005b600080fd5b34801561015057600080fd5b5061016b600480360381019061016691906124bb565b6104f6565b005b34801561017957600080fd5b50610182610620565b60405161018f9190612884565b60405180910390f35b3480156101a457600080fd5b506101bf60048036038101906101ba919061247b565b61065d565b6040516101cc919061284e565b60405180910390f35b3480156101e157600080fd5b506101ea61067b565b6040516101f79190612869565b60405180910390f35b34801561020c57600080fd5b506102156106a1565b6040516102229190612a66565b60405180910390f35b34801561023757600080fd5b506102406106b3565b005b34801561024e57600080fd5b5061026960048036038101906102649190612428565b6107b5565b604051610276919061284e565b60405180910390f35b34801561028b57600080fd5b5061029461088e565b6040516102a19190612adb565b60405180910390f35b3480156102b657600080fd5b506102d160048036038101906102cc9190612504565b610897565b005b3480156102df57600080fd5b506102e8610987565b6040516102f59190612833565b60405180910390f35b34801561030a57600080fd5b506103256004803603810190610320919061238e565b6109ad565b005b34801561033357600080fd5b5061033c610a9d565b005b34801561034a57600080fd5b506103656004803603810190610360919061238e565b610b0f565b6040516103729190612a66565b60405180910390f35b34801561038757600080fd5b50610390610b60565b005b34801561039e57600080fd5b506103a7610cb3565b6040516103b49190612a66565b60405180910390f35b3480156103c957600080fd5b506103d2610cb9565b6040516103df9190612833565b60405180910390f35b3480156103f457600080fd5b506103fd610ce2565b60405161040a9190612884565b60405180910390f35b34801561041f57600080fd5b5061043a6004803603810190610435919061247b565b610d1f565b604051610447919061284e565b60405180910390f35b34801561045c57600080fd5b5061047760048036038101906104729190612504565b610d3d565b005b34801561048557600080fd5b5061048e610e2d565b005b34801561049c57600080fd5b506104b760048036038101906104b29190612504565b610ea7565b005b3480156104c557600080fd5b506104e060048036038101906104db91906123e8565b610ff1565b6040516104ed9190612a66565b60405180910390f35b6104fe611078565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461058b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610582906129a6565b60405180910390fd5b60005b815181101561061c576001600c60008484815181106105b0576105af612e47565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061061490612da0565b91505061058e565b5050565b60606040518060400160405280600581526020017f544149594f000000000000000000000000000000000000000000000000000000815250905090565b600061067161066a611078565b8484611080565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600069152d02c7e14af6800000905090565b6106bb611078565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073f906129a6565b60405180910390fd5b601160149054906101000a900460ff1615610798576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078f906128c6565b60405180910390fd5b6001601160146101000a81548160ff021916908315150217905550565b60006107c284848461124b565b610883846107ce611078565b61087e8560405180606001604052806028815260200161324160289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610834611078565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461172f9092919063ffffffff16565b611080565b600190509392505050565b60006009905090565b61089f611078565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461092c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610923906129a6565b60405180910390fd5b6000811015801561093e575060198111155b61097d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610974906129e6565b60405180910390fd5b8060098190555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109b5611078565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a39906129a6565b60405180910390fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ade611078565b73ffffffffffffffffffffffffffffffffffffffff1614610afe57600080fd5b6000479050610b0c81611793565b50565b6000610b59600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461188e565b9050919050565b610b68611078565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bec906129a6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60125481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f544149594f000000000000000000000000000000000000000000000000000000815250905090565b6000610d33610d2c611078565b848461124b565b6001905092915050565b610d45611078565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc9906129a6565b60405180910390fd5b60008110158015610de4575060198111155b610e23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1a90612a26565b60405180910390fd5b8060088190555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e6e611078565b73ffffffffffffffffffffffffffffffffffffffff1614610e8e57600080fd5b6000610e9930610b0f565b9050610ea4816118fc565b50565b610eaf611078565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f33906129a6565b60405180910390fd5b60008111610f7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7690612966565b60405180910390fd5b610faf6064610fa18369152d02c7e14af6800000611b8490919063ffffffff16565b611bff90919063ffffffff16565b6012819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf601254604051610fe69190612a66565b60405180910390a150565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156110f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e790612a46565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611160576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115790612926565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161123e9190612a66565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b290612a06565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561132b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611322906128a6565b60405180910390fd5b6000811161136e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611365906129c6565b60405180910390fd5b611376610cb9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113e457506113b4610cb9565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561166c57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806114925750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156114e757601160149054906101000a900460ff166114e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114dd906128e6565b60405180910390fd5b5b6012548111156114f657600080fd5b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561159a5750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6115a357600080fd5b60006115ae30610b0f565b905060125481106115bf5760125490505b601160159054906101000a900460ff1615801561162a5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156116425750601160169054906101000a900460ff165b1561166a57611650816118fc565b600047905060008111156116685761166747611793565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117135750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561171d57600090505b61172984848484611c49565b50505050565b6000838311158290611777576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176e9190612884565b60405180910390fd5b50600083856117869190612c7d565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6117e3600284611bff90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561180e573d6000803e3d6000fd5b50600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61185f600284611bff90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561188a573d6000803e3d6000fd5b5050565b60006006548211156118d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cc90612906565b60405180910390fd5b60006118df611c76565b90506118f48184611bff90919063ffffffff16565b915050919050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561193457611933612e76565b5b6040519080825280602002602001820160405280156119625781602001602082028036833780820191505090505b509050308160008151811061197a57611979612e47565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611a1c57600080fd5b505afa158015611a30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a5491906123bb565b81600181518110611a6857611a67612e47565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611acf30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611080565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611b33959493929190612a81565b600060405180830381600087803b158015611b4d57600080fd5b505af1158015611b61573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b600080831415611b975760009050611bf9565b60008284611ba59190612c23565b9050828482611bb49190612bf2565b14611bf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611beb90612986565b60405180910390fd5b809150505b92915050565b6000611c4183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ca1565b905092915050565b80611c5757611c56611d04565b5b611c62848484611d47565b80611c7057611c6f611f12565b5b50505050565b6000806000611c83611f26565b91509150611c9a8183611bff90919063ffffffff16565b9250505090565b60008083118290611ce8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cdf9190612884565b60405180910390fd5b5060008385611cf79190612bf2565b9050809150509392505050565b6000600854148015611d1857506000600954145b15611d2257611d45565b600854600a81905550600954600b81905550600060088190555060006009819055505b565b600080600080600080611d5987611f8b565b955095509550955095509550611db786600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ff390919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e4c85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203d90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e988161209b565b611ea28483612158565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611eff9190612a66565b60405180910390a3505050505050505050565b600a54600881905550600b54600981905550565b60008060006006549050600069152d02c7e14af68000009050611f5e69152d02c7e14af6800000600654611bff90919063ffffffff16565b821015611f7e5760065469152d02c7e14af6800000935093505050611f87565b81819350935050505b9091565b6000806000806000806000806000611fa88a600854600954612192565b9250925092506000611fb8611c76565b90506000806000611fcb8e878787612228565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061203583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061172f565b905092915050565b600080828461204c9190612b9c565b905083811015612091576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208890612946565b60405180910390fd5b8091505092915050565b60006120a5611c76565b905060006120bc8284611b8490919063ffffffff16565b905061211081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203d90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61216d82600654611ff390919063ffffffff16565b6006819055506121888160075461203d90919063ffffffff16565b6007819055505050565b6000806000806121be60646121b0888a611b8490919063ffffffff16565b611bff90919063ffffffff16565b905060006121e860646121da888b611b8490919063ffffffff16565b611bff90919063ffffffff16565b9050600061221182612203858c611ff390919063ffffffff16565b611ff390919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806122418589611b8490919063ffffffff16565b905060006122588689611b8490919063ffffffff16565b9050600061226f8789611b8490919063ffffffff16565b905060006122988261228a8587611ff390919063ffffffff16565b611ff390919063ffffffff16565b9050838184965096509650505050509450945094915050565b60006122c46122bf84612b1b565b612af6565b905080838252602082019050828560208602820111156122e7576122e6612eaa565b5b60005b8581101561231757816122fd8882612321565b8452602084019350602083019250506001810190506122ea565b5050509392505050565b60008135905061233081613212565b92915050565b60008151905061234581613212565b92915050565b600082601f8301126123605761235f612ea5565b5b81356123708482602086016122b1565b91505092915050565b60008135905061238881613229565b92915050565b6000602082840312156123a4576123a3612eb4565b5b60006123b284828501612321565b91505092915050565b6000602082840312156123d1576123d0612eb4565b5b60006123df84828501612336565b91505092915050565b600080604083850312156123ff576123fe612eb4565b5b600061240d85828601612321565b925050602061241e85828601612321565b9150509250929050565b60008060006060848603121561244157612440612eb4565b5b600061244f86828701612321565b935050602061246086828701612321565b925050604061247186828701612379565b9150509250925092565b6000806040838503121561249257612491612eb4565b5b60006124a085828601612321565b92505060206124b185828601612379565b9150509250929050565b6000602082840312156124d1576124d0612eb4565b5b600082013567ffffffffffffffff8111156124ef576124ee612eaf565b5b6124fb8482850161234b565b91505092915050565b60006020828403121561251a57612519612eb4565b5b600061252884828501612379565b91505092915050565b600061253d8383612549565b60208301905092915050565b61255281612cb1565b82525050565b61256181612cb1565b82525050565b600061257282612b57565b61257c8185612b7a565b935061258783612b47565b8060005b838110156125b857815161259f8882612531565b97506125aa83612b6d565b92505060018101905061258b565b5085935050505092915050565b6125ce81612cc3565b82525050565b6125dd81612d06565b82525050565b6125ec81612d2a565b82525050565b60006125fd82612b62565b6126078185612b8b565b9350612617818560208601612d3c565b61262081612eb9565b840191505092915050565b6000612638602383612b8b565b915061264382612eca565b604082019050919050565b600061265b601a83612b8b565b915061266682612f19565b602082019050919050565b600061267e601a83612b8b565b915061268982612f42565b602082019050919050565b60006126a1602a83612b8b565b91506126ac82612f6b565b604082019050919050565b60006126c4602283612b8b565b91506126cf82612fba565b604082019050919050565b60006126e7601b83612b8b565b91506126f282613009565b602082019050919050565b600061270a601d83612b8b565b915061271582613032565b602082019050919050565b600061272d602183612b8b565b91506127388261305b565b604082019050919050565b6000612750602083612b8b565b915061275b826130aa565b602082019050919050565b6000612773602983612b8b565b915061277e826130d3565b604082019050919050565b6000612796601a83612b8b565b91506127a182613122565b602082019050919050565b60006127b9602583612b8b565b91506127c48261314b565b604082019050919050565b60006127dc601a83612b8b565b91506127e78261319a565b602082019050919050565b60006127ff602483612b8b565b915061280a826131c3565b604082019050919050565b61281e81612cef565b82525050565b61282d81612cf9565b82525050565b60006020820190506128486000830184612558565b92915050565b600060208201905061286360008301846125c5565b92915050565b600060208201905061287e60008301846125d4565b92915050565b6000602082019050818103600083015261289e81846125f2565b905092915050565b600060208201905081810360008301526128bf8161262b565b9050919050565b600060208201905081810360008301526128df8161264e565b9050919050565b600060208201905081810360008301526128ff81612671565b9050919050565b6000602082019050818103600083015261291f81612694565b9050919050565b6000602082019050818103600083015261293f816126b7565b9050919050565b6000602082019050818103600083015261295f816126da565b9050919050565b6000602082019050818103600083015261297f816126fd565b9050919050565b6000602082019050818103600083015261299f81612720565b9050919050565b600060208201905081810360008301526129bf81612743565b9050919050565b600060208201905081810360008301526129df81612766565b9050919050565b600060208201905081810360008301526129ff81612789565b9050919050565b60006020820190508181036000830152612a1f816127ac565b9050919050565b60006020820190508181036000830152612a3f816127cf565b9050919050565b60006020820190508181036000830152612a5f816127f2565b9050919050565b6000602082019050612a7b6000830184612815565b92915050565b600060a082019050612a966000830188612815565b612aa360208301876125e3565b8181036040830152612ab58186612567565b9050612ac46060830185612558565b612ad16080830184612815565b9695505050505050565b6000602082019050612af06000830184612824565b92915050565b6000612b00612b11565b9050612b0c8282612d6f565b919050565b6000604051905090565b600067ffffffffffffffff821115612b3657612b35612e76565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612ba782612cef565b9150612bb283612cef565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612be757612be6612de9565b5b828201905092915050565b6000612bfd82612cef565b9150612c0883612cef565b925082612c1857612c17612e18565b5b828204905092915050565b6000612c2e82612cef565b9150612c3983612cef565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c7257612c71612de9565b5b828202905092915050565b6000612c8882612cef565b9150612c9383612cef565b925082821015612ca657612ca5612de9565b5b828203905092915050565b6000612cbc82612ccf565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612d1182612d18565b9050919050565b6000612d2382612ccf565b9050919050565b6000612d3582612cef565b9050919050565b60005b83811015612d5a578082015181840152602081019050612d3f565b83811115612d69576000848401525b50505050565b612d7882612eb9565b810181811067ffffffffffffffff82111715612d9757612d96612e76565b5b80604052505050565b6000612dab82612cef565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612dde57612ddd612de9565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c72656164792073746172746564000000000000600082015250565b7f54726164696e67206973206e6f7420656e61626c656420796574000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f746169796f742073686f756c6420626520696e2030202d203235000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f746169796f722073686f756c6420626520696e2030202d203235000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61321b81612cb1565b811461322657600080fd5b50565b61323281612cef565b811461323d57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220599d9ea71dbb764dd8801a212f59381d578bfbd17799aba0dabf4d3e16f8f17164736f6c63430008060033000000000000000000000000c8fa891f71d2360ebfee1b461ab8b96d0682682b000000000000000000000000abdd53b76fcae82822c8f0a7f62face60a5ea9fb

Deployed Bytecode

0x6080604052600436106101385760003560e01c80636fc3eaec116100ab57806395d89b411161006f57806395d89b41146103e8578063a9059cbb14610413578063ab7b576014610450578063c3c8cd8014610479578063d543dbeb14610490578063dd62ed3e146104b95761013f565b80636fc3eaec1461032757806370a082311461033e578063715018a61461037b5780637d1db4a5146103925780638da5cb5b146103bd5761013f565b80632152c6d9116100fd5780632152c6d91461022b57806323b872dd14610242578063313ce5671461027f57806344426f6e146102aa57806349bd5a5e146102d35780636b999053146102fe5761013f565b8062b8cf2a1461014457806306fdde031461016d578063095ea7b3146101985780631694505e146101d557806318160ddd146102005761013f565b3661013f57005b600080fd5b34801561015057600080fd5b5061016b600480360381019061016691906124bb565b6104f6565b005b34801561017957600080fd5b50610182610620565b60405161018f9190612884565b60405180910390f35b3480156101a457600080fd5b506101bf60048036038101906101ba919061247b565b61065d565b6040516101cc919061284e565b60405180910390f35b3480156101e157600080fd5b506101ea61067b565b6040516101f79190612869565b60405180910390f35b34801561020c57600080fd5b506102156106a1565b6040516102229190612a66565b60405180910390f35b34801561023757600080fd5b506102406106b3565b005b34801561024e57600080fd5b5061026960048036038101906102649190612428565b6107b5565b604051610276919061284e565b60405180910390f35b34801561028b57600080fd5b5061029461088e565b6040516102a19190612adb565b60405180910390f35b3480156102b657600080fd5b506102d160048036038101906102cc9190612504565b610897565b005b3480156102df57600080fd5b506102e8610987565b6040516102f59190612833565b60405180910390f35b34801561030a57600080fd5b506103256004803603810190610320919061238e565b6109ad565b005b34801561033357600080fd5b5061033c610a9d565b005b34801561034a57600080fd5b506103656004803603810190610360919061238e565b610b0f565b6040516103729190612a66565b60405180910390f35b34801561038757600080fd5b50610390610b60565b005b34801561039e57600080fd5b506103a7610cb3565b6040516103b49190612a66565b60405180910390f35b3480156103c957600080fd5b506103d2610cb9565b6040516103df9190612833565b60405180910390f35b3480156103f457600080fd5b506103fd610ce2565b60405161040a9190612884565b60405180910390f35b34801561041f57600080fd5b5061043a6004803603810190610435919061247b565b610d1f565b604051610447919061284e565b60405180910390f35b34801561045c57600080fd5b5061047760048036038101906104729190612504565b610d3d565b005b34801561048557600080fd5b5061048e610e2d565b005b34801561049c57600080fd5b506104b760048036038101906104b29190612504565b610ea7565b005b3480156104c557600080fd5b506104e060048036038101906104db91906123e8565b610ff1565b6040516104ed9190612a66565b60405180910390f35b6104fe611078565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461058b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610582906129a6565b60405180910390fd5b60005b815181101561061c576001600c60008484815181106105b0576105af612e47565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061061490612da0565b91505061058e565b5050565b60606040518060400160405280600581526020017f544149594f000000000000000000000000000000000000000000000000000000815250905090565b600061067161066a611078565b8484611080565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600069152d02c7e14af6800000905090565b6106bb611078565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073f906129a6565b60405180910390fd5b601160149054906101000a900460ff1615610798576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078f906128c6565b60405180910390fd5b6001601160146101000a81548160ff021916908315150217905550565b60006107c284848461124b565b610883846107ce611078565b61087e8560405180606001604052806028815260200161324160289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610834611078565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461172f9092919063ffffffff16565b611080565b600190509392505050565b60006009905090565b61089f611078565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461092c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610923906129a6565b60405180910390fd5b6000811015801561093e575060198111155b61097d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610974906129e6565b60405180910390fd5b8060098190555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109b5611078565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a39906129a6565b60405180910390fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ade611078565b73ffffffffffffffffffffffffffffffffffffffff1614610afe57600080fd5b6000479050610b0c81611793565b50565b6000610b59600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461188e565b9050919050565b610b68611078565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bec906129a6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60125481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f544149594f000000000000000000000000000000000000000000000000000000815250905090565b6000610d33610d2c611078565b848461124b565b6001905092915050565b610d45611078565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc9906129a6565b60405180910390fd5b60008110158015610de4575060198111155b610e23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1a90612a26565b60405180910390fd5b8060088190555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e6e611078565b73ffffffffffffffffffffffffffffffffffffffff1614610e8e57600080fd5b6000610e9930610b0f565b9050610ea4816118fc565b50565b610eaf611078565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f33906129a6565b60405180910390fd5b60008111610f7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7690612966565b60405180910390fd5b610faf6064610fa18369152d02c7e14af6800000611b8490919063ffffffff16565b611bff90919063ffffffff16565b6012819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf601254604051610fe69190612a66565b60405180910390a150565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156110f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e790612a46565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611160576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115790612926565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161123e9190612a66565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b290612a06565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561132b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611322906128a6565b60405180910390fd5b6000811161136e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611365906129c6565b60405180910390fd5b611376610cb9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113e457506113b4610cb9565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561166c57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806114925750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156114e757601160149054906101000a900460ff166114e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114dd906128e6565b60405180910390fd5b5b6012548111156114f657600080fd5b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561159a5750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6115a357600080fd5b60006115ae30610b0f565b905060125481106115bf5760125490505b601160159054906101000a900460ff1615801561162a5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156116425750601160169054906101000a900460ff165b1561166a57611650816118fc565b600047905060008111156116685761166747611793565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117135750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561171d57600090505b61172984848484611c49565b50505050565b6000838311158290611777576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176e9190612884565b60405180910390fd5b50600083856117869190612c7d565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6117e3600284611bff90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561180e573d6000803e3d6000fd5b50600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61185f600284611bff90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561188a573d6000803e3d6000fd5b5050565b60006006548211156118d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cc90612906565b60405180910390fd5b60006118df611c76565b90506118f48184611bff90919063ffffffff16565b915050919050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561193457611933612e76565b5b6040519080825280602002602001820160405280156119625781602001602082028036833780820191505090505b509050308160008151811061197a57611979612e47565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611a1c57600080fd5b505afa158015611a30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a5491906123bb565b81600181518110611a6857611a67612e47565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611acf30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611080565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611b33959493929190612a81565b600060405180830381600087803b158015611b4d57600080fd5b505af1158015611b61573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b600080831415611b975760009050611bf9565b60008284611ba59190612c23565b9050828482611bb49190612bf2565b14611bf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611beb90612986565b60405180910390fd5b809150505b92915050565b6000611c4183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ca1565b905092915050565b80611c5757611c56611d04565b5b611c62848484611d47565b80611c7057611c6f611f12565b5b50505050565b6000806000611c83611f26565b91509150611c9a8183611bff90919063ffffffff16565b9250505090565b60008083118290611ce8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cdf9190612884565b60405180910390fd5b5060008385611cf79190612bf2565b9050809150509392505050565b6000600854148015611d1857506000600954145b15611d2257611d45565b600854600a81905550600954600b81905550600060088190555060006009819055505b565b600080600080600080611d5987611f8b565b955095509550955095509550611db786600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ff390919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e4c85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203d90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e988161209b565b611ea28483612158565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611eff9190612a66565b60405180910390a3505050505050505050565b600a54600881905550600b54600981905550565b60008060006006549050600069152d02c7e14af68000009050611f5e69152d02c7e14af6800000600654611bff90919063ffffffff16565b821015611f7e5760065469152d02c7e14af6800000935093505050611f87565b81819350935050505b9091565b6000806000806000806000806000611fa88a600854600954612192565b9250925092506000611fb8611c76565b90506000806000611fcb8e878787612228565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061203583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061172f565b905092915050565b600080828461204c9190612b9c565b905083811015612091576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208890612946565b60405180910390fd5b8091505092915050565b60006120a5611c76565b905060006120bc8284611b8490919063ffffffff16565b905061211081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203d90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61216d82600654611ff390919063ffffffff16565b6006819055506121888160075461203d90919063ffffffff16565b6007819055505050565b6000806000806121be60646121b0888a611b8490919063ffffffff16565b611bff90919063ffffffff16565b905060006121e860646121da888b611b8490919063ffffffff16565b611bff90919063ffffffff16565b9050600061221182612203858c611ff390919063ffffffff16565b611ff390919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806122418589611b8490919063ffffffff16565b905060006122588689611b8490919063ffffffff16565b9050600061226f8789611b8490919063ffffffff16565b905060006122988261228a8587611ff390919063ffffffff16565b611ff390919063ffffffff16565b9050838184965096509650505050509450945094915050565b60006122c46122bf84612b1b565b612af6565b905080838252602082019050828560208602820111156122e7576122e6612eaa565b5b60005b8581101561231757816122fd8882612321565b8452602084019350602083019250506001810190506122ea565b5050509392505050565b60008135905061233081613212565b92915050565b60008151905061234581613212565b92915050565b600082601f8301126123605761235f612ea5565b5b81356123708482602086016122b1565b91505092915050565b60008135905061238881613229565b92915050565b6000602082840312156123a4576123a3612eb4565b5b60006123b284828501612321565b91505092915050565b6000602082840312156123d1576123d0612eb4565b5b60006123df84828501612336565b91505092915050565b600080604083850312156123ff576123fe612eb4565b5b600061240d85828601612321565b925050602061241e85828601612321565b9150509250929050565b60008060006060848603121561244157612440612eb4565b5b600061244f86828701612321565b935050602061246086828701612321565b925050604061247186828701612379565b9150509250925092565b6000806040838503121561249257612491612eb4565b5b60006124a085828601612321565b92505060206124b185828601612379565b9150509250929050565b6000602082840312156124d1576124d0612eb4565b5b600082013567ffffffffffffffff8111156124ef576124ee612eaf565b5b6124fb8482850161234b565b91505092915050565b60006020828403121561251a57612519612eb4565b5b600061252884828501612379565b91505092915050565b600061253d8383612549565b60208301905092915050565b61255281612cb1565b82525050565b61256181612cb1565b82525050565b600061257282612b57565b61257c8185612b7a565b935061258783612b47565b8060005b838110156125b857815161259f8882612531565b97506125aa83612b6d565b92505060018101905061258b565b5085935050505092915050565b6125ce81612cc3565b82525050565b6125dd81612d06565b82525050565b6125ec81612d2a565b82525050565b60006125fd82612b62565b6126078185612b8b565b9350612617818560208601612d3c565b61262081612eb9565b840191505092915050565b6000612638602383612b8b565b915061264382612eca565b604082019050919050565b600061265b601a83612b8b565b915061266682612f19565b602082019050919050565b600061267e601a83612b8b565b915061268982612f42565b602082019050919050565b60006126a1602a83612b8b565b91506126ac82612f6b565b604082019050919050565b60006126c4602283612b8b565b91506126cf82612fba565b604082019050919050565b60006126e7601b83612b8b565b91506126f282613009565b602082019050919050565b600061270a601d83612b8b565b915061271582613032565b602082019050919050565b600061272d602183612b8b565b91506127388261305b565b604082019050919050565b6000612750602083612b8b565b915061275b826130aa565b602082019050919050565b6000612773602983612b8b565b915061277e826130d3565b604082019050919050565b6000612796601a83612b8b565b91506127a182613122565b602082019050919050565b60006127b9602583612b8b565b91506127c48261314b565b604082019050919050565b60006127dc601a83612b8b565b91506127e78261319a565b602082019050919050565b60006127ff602483612b8b565b915061280a826131c3565b604082019050919050565b61281e81612cef565b82525050565b61282d81612cf9565b82525050565b60006020820190506128486000830184612558565b92915050565b600060208201905061286360008301846125c5565b92915050565b600060208201905061287e60008301846125d4565b92915050565b6000602082019050818103600083015261289e81846125f2565b905092915050565b600060208201905081810360008301526128bf8161262b565b9050919050565b600060208201905081810360008301526128df8161264e565b9050919050565b600060208201905081810360008301526128ff81612671565b9050919050565b6000602082019050818103600083015261291f81612694565b9050919050565b6000602082019050818103600083015261293f816126b7565b9050919050565b6000602082019050818103600083015261295f816126da565b9050919050565b6000602082019050818103600083015261297f816126fd565b9050919050565b6000602082019050818103600083015261299f81612720565b9050919050565b600060208201905081810360008301526129bf81612743565b9050919050565b600060208201905081810360008301526129df81612766565b9050919050565b600060208201905081810360008301526129ff81612789565b9050919050565b60006020820190508181036000830152612a1f816127ac565b9050919050565b60006020820190508181036000830152612a3f816127cf565b9050919050565b60006020820190508181036000830152612a5f816127f2565b9050919050565b6000602082019050612a7b6000830184612815565b92915050565b600060a082019050612a966000830188612815565b612aa360208301876125e3565b8181036040830152612ab58186612567565b9050612ac46060830185612558565b612ad16080830184612815565b9695505050505050565b6000602082019050612af06000830184612824565b92915050565b6000612b00612b11565b9050612b0c8282612d6f565b919050565b6000604051905090565b600067ffffffffffffffff821115612b3657612b35612e76565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612ba782612cef565b9150612bb283612cef565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612be757612be6612de9565b5b828201905092915050565b6000612bfd82612cef565b9150612c0883612cef565b925082612c1857612c17612e18565b5b828204905092915050565b6000612c2e82612cef565b9150612c3983612cef565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c7257612c71612de9565b5b828202905092915050565b6000612c8882612cef565b9150612c9383612cef565b925082821015612ca657612ca5612de9565b5b828203905092915050565b6000612cbc82612ccf565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612d1182612d18565b9050919050565b6000612d2382612ccf565b9050919050565b6000612d3582612cef565b9050919050565b60005b83811015612d5a578082015181840152602081019050612d3f565b83811115612d69576000848401525b50505050565b612d7882612eb9565b810181811067ffffffffffffffff82111715612d9757612d96612e76565b5b80604052505050565b6000612dab82612cef565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612dde57612ddd612de9565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c72656164792073746172746564000000000000600082015250565b7f54726164696e67206973206e6f7420656e61626c656420796574000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f746169796f742073686f756c6420626520696e2030202d203235000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f746169796f722073686f756c6420626520696e2030202d203235000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61321b81612cb1565b811461322657600080fd5b50565b61323281612cef565b811461323d57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220599d9ea71dbb764dd8801a212f59381d578bfbd17799aba0dabf4d3e16f8f17164736f6c63430008060033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000c8fa891f71d2360ebfee1b461ab8b96d0682682b000000000000000000000000abdd53b76fcae82822c8f0a7f62face60a5ea9fb

-----Decoded View---------------
Arg [0] : addr1 (address): 0xc8fa891F71D2360EbFEE1b461AB8b96d0682682B
Arg [1] : addr2 (address): 0xabDd53b76fCae82822C8f0a7F62FacE60A5EA9fb

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000c8fa891f71d2360ebfee1b461ab8b96d0682682b
Arg [1] : 000000000000000000000000abdd53b76fcae82822c8f0a7f62face60a5ea9fb


Deployed Bytecode Sourcemap

3956:11776:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11424:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6104:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7029:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4964:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6381:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10874:143;;;;;;;;;;;;;:::i;:::-;;7230:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6290:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15558:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5012:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11601:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11225:191;;;;;;;;;;;;;:::i;:::-;;6484:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1697:148;;;;;;;;;;;;;:::i;:::-;;5150:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1483:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6195:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6630:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15382:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11025:192;;;;;;;;;;;;;:::i;:::-;;15115:255;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6837:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11424:169;1620:12;:10;:12::i;:::-;1610:22;;:6;;;;;;;;;;:22;;;1602:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11500:9:::1;11495:91;11519:5;:12;11515:1;:16;11495:91;;;11570:4;11553;:14;11558:5;11564:1;11558:8;;;;;;;;:::i;:::-;;;;;;;;11553:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11533:3;;;;;:::i;:::-;;;;11495:91;;;;11424:169:::0;:::o;6104:83::-;6141:13;6174:5;;;;;;;;;;;;;;;;;6167:12;;6104:83;:::o;7029:193::-;7131:4;7153:39;7162:12;:10;:12::i;:::-;7176:7;7185:6;7153:8;:39::i;:::-;7210:4;7203:11;;7029:193;;;;:::o;4964:41::-;;;;;;;;;;;;;:::o;6381:95::-;6434:7;4496:23;6454:14;;6381:95;:::o;10874:143::-;1620:12;:10;:12::i;:::-;1610:22;;:6;;;;;;;;;;:22;;;1602:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10938:11:::1;;;;;;;;;;;10937:12;10929:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;11005:4;10991:11;;:18;;;;;;;;;;;;;;;;;;10874:143::o:0;7230:446::-;7362:4;7379:36;7389:6;7397:9;7408:6;7379:9;:36::i;:::-;7426:220;7449:6;7470:12;:10;:12::i;:::-;7497:138;7553:6;7497:138;;;;;;;;;;;;;;;;;:11;:19;7509:6;7497:19;;;;;;;;;;;;;;;:33;7517:12;:10;:12::i;:::-;7497:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7426:8;:220::i;:::-;7664:4;7657:11;;7230:446;;;;;:::o;6290:83::-;6331:5;4170:1;6349:16;;6290:83;:::o;15558:168::-;1620:12;:10;:12::i;:::-;1610:22;;:6;;;;;;;;;;:22;;;1602:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15643:1:::1;15633:6;:11;;:27;;;;;15658:2;15648:6;:12;;15633:27;15625:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;15712:6;15702:7;:16;;;;15558:168:::0;:::o;5012:28::-;;;;;;;;;;;;;:::o;11601:92::-;1620:12;:10;:12::i;:::-;1610:22;;:6;;;;;;;;;;:22;;;1602:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11680:5:::1;11665:4;:12;11670:6;11665:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;11601:92:::0;:::o;11225:191::-;11291:12;;;;;;;;;;;11275:28;;:12;:10;:12::i;:::-;:28;;;11267:37;;;;;;11315:26;11344:21;11315:50;;11376:32;11389:18;11376:12;:32::i;:::-;11256:160;11225:191::o;6484:138::-;6550:7;6577:37;6597:7;:16;6605:7;6597:16;;;;;;;;;;;;;;;;6577:19;:37::i;:::-;6570:44;;6484:138;;;:::o;1697:148::-;1620:12;:10;:12::i;:::-;1610:22;;:6;;;;;;;;;;:22;;;1602:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1804:1:::1;1767:40;;1788:6;::::0;::::1;;;;;;;;1767:40;;;;;;;;;;;;1835:1;1818:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1697:148::o:0;5150:50::-;;;;:::o;1483:79::-;1521:7;1548:6;;;;;;;;;;;1541:13;;1483:79;:::o;6195:87::-;6234:13;6267:7;;;;;;;;;;;;;;;;;6260:14;;6195:87;:::o;6630:199::-;6735:4;6757:42;6767:12;:10;:12::i;:::-;6781:9;6792:6;6757:9;:42::i;:::-;6817:4;6810:11;;6630:199;;;;:::o;15382:168::-;1620:12;:10;:12::i;:::-;1610:22;;:6;;;;;;;;;;:22;;;1602:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15467:1:::1;15457:6;:11;;:27;;;;;15482:2;15472:6;:12;;15457:27;15449:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;15536:6;15526:7;:16;;;;15382:168:::0;:::o;11025:192::-;11091:12;;;;;;;;;;;11075:28;;:12;:10;:12::i;:::-;:28;;;11067:37;;;;;;11115:23;11141:24;11159:4;11141:9;:24::i;:::-;11115:50;;11176:33;11193:15;11176:16;:33::i;:::-;11056:161;11025:192::o;15115:255::-;1620:12;:10;:12::i;:::-;1610:22;;:6;;;;;;;;;;:22;;;1602:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15217:1:::1;15202:12;:16;15194:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;15278:36;15308:5;15278:25;15290:12;4496:23;15278:11;;:25;;;;:::i;:::-;:29;;:36;;;;:::i;:::-;15263:12;:51;;;;15330:32;15349:12;;15330:32;;;;;;:::i;:::-;;;;;;;;15115:255:::0;:::o;6837:184::-;6954:7;6986:11;:18;6998:5;6986:18;;;;;;;;;;;;;;;:27;7005:7;6986:27;;;;;;;;;;;;;;;;6979:34;;6837:184;;;;:::o;242:98::-;295:7;322:10;315:17;;242:98;:::o;8367:369::-;8511:1;8494:19;;:5;:19;;;;8486:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8592:1;8573:21;;:7;:21;;;;8565:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8674:6;8644:11;:18;8656:5;8644:18;;;;;;;;;;;;;;;:27;8663:7;8644:27;;;;;;;;;;;;;;;:36;;;;8712:7;8696:32;;8705:5;8696:32;;;8721:6;8696:32;;;;;;:::i;:::-;;;;;;;;8367:369;;;:::o;8744:1472::-;8882:1;8866:18;;:4;:18;;;;8858:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8959:1;8945:16;;:2;:16;;;;8937:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9029:1;9020:6;:10;9012:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9101:7;:5;:7::i;:::-;9093:15;;:4;:15;;;;:32;;;;;9118:7;:5;:7::i;:::-;9112:13;;:2;:13;;;;9093:32;9089:926;;;9201:13;;;;;;;;;;;9193:21;;:4;:21;;;:44;;;;9224:13;;;;;;;;;;;9218:19;;:2;:19;;;9193:44;9189:136;;;9267:11;;;;;;;;;;;9259:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;9189:136;9373:12;;9363:6;:22;;9355:31;;;;;;9410:4;:10;9415:4;9410:10;;;;;;;;;;;;;;;;;;;;;;;;;9409:11;:24;;;;;9425:4;:8;9430:2;9425:8;;;;;;;;;;;;;;;;;;;;;;;;;9424:9;9409:24;9401:33;;;;;;9463:28;9494:24;9512:4;9494:9;:24::i;:::-;9463:55;;9560:12;;9536:20;:36;9533:124;;9629:12;;9606:35;;9533:124;9690:6;;;;;;;;;;;9689:7;:32;;;;;9708:13;;;;;;;;;;;9700:21;;:4;:21;;;;9689:32;:47;;;;;9725:11;;;;;;;;;;;9689:47;9685:319;;;9757:38;9774:20;9757:16;:38::i;:::-;9814:26;9843:21;9814:50;;9908:1;9887:18;:22;9883:106;;;9934:35;9947:21;9934:12;:35::i;:::-;9883:106;9738:266;9685:319;9127:888;9089:926;10025:12;10040:4;10025:19;;10061:18;:24;10080:4;10061:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10089:18;:22;10108:2;10089:22;;;;;;;;;;;;;;;;;;;;;;;;;10061:50;10057:98;;;10138:5;10128:15;;10057:98;10167:41;10182:4;10188:2;10192:6;10200:7;10167:14;:41::i;:::-;8847:1369;8744:1472;;;:::o;2207:224::-;2327:7;2360:1;2355;:6;;2363:12;2347:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2387:9;2403:1;2399;:5;;;;:::i;:::-;2387:17;;2422:1;2415:8;;;2207:224;;;;;:::o;10715:151::-;10772:12;;;;;;;;;;;:21;;:36;10794:13;10805:1;10794:6;:10;;:13;;;;:::i;:::-;10772:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10819:15;;;;;;;;;;;:24;;:39;10844:13;10855:1;10844:6;:10;;:13;;;;:::i;:::-;10819:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10715:151;:::o;7684:323::-;7779:7;7837;;7826;:18;;7804:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;7925:19;7947:10;:8;:10::i;:::-;7925:32;;7975:24;7987:11;7975:7;:11;;:24;;;;:::i;:::-;7968:31;;;7684:323;;;:::o;10224:483::-;5303:4;5294:6;;:13;;;;;;;;;;;;;;;;;;10302:21:::1;10340:1;10326:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10302:40;;10371:4;10353;10358:1;10353:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10397:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10387:4;10392:1;10387:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10430:62;10447:4;10462:15;;;;;;;;;;;10480:11;10430:8;:62::i;:::-;10503:15;;;;;;;;;;;:66;;;10584:11;10610:1;10626:4;10653;10673:15;10503:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10291:416;5339:5:::0;5330:6;;:14;;;;;;;;;;;;;;;;;;10224:483;:::o;2439:246::-;2497:7;2526:1;2521;:6;2517:47;;;2551:1;2544:8;;;;2517:47;2574:9;2590:1;2586;:5;;;;:::i;:::-;2574:17;;2619:1;2614;2610;:5;;;;:::i;:::-;:10;2602:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2676:1;2669:8;;;2439:246;;;;;:::o;2693:132::-;2751:7;2778:39;2782:1;2785;2778:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2771:46;;2693:132;;;;:::o;11701:282::-;11857:7;11852:28;;11866:14;:12;:14::i;:::-;11852:28;11891:44;11909:6;11917:9;11928:6;11891:17;:44::i;:::-;11951:7;11946:29;;11960:15;:13;:15::i;:::-;11946:29;11701:282;;;;:::o;14670:166::-;14712:7;14733:15;14750;14769:19;:17;:19::i;:::-;14732:56;;;;14808:20;14820:7;14808;:11;;:20;;;;:::i;:::-;14801:27;;;;14670:166;:::o;2833:223::-;2953:7;2985:1;2981;:5;2988:12;2973:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3012:9;3028:1;3024;:5;;;;:::i;:::-;3012:17;;3047:1;3040:8;;;2833:223;;;;;:::o;8015:::-;8073:1;8062:7;;:12;:28;;;;;8089:1;8078:7;;:12;8062:28;8058:41;;;8092:7;;8058:41;8133:7;;8115:15;:25;;;;8169:7;;8151:15;:25;;;;8207:1;8197:7;:11;;;;8229:1;8219:7;:11;;;;8015:223;:::o;11991:610::-;12138:15;12168:23;12206:12;12233:23;12271:12;12298:13;12325:19;12336:7;12325:10;:19::i;:::-;12123:221;;;;;;;;;;;;12373:28;12393:7;12373;:15;12381:6;12373:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;12355:7;:15;12363:6;12355:15;;;;;;;;;;;;;;;:46;;;;12433:39;12456:15;12433:7;:18;12441:9;12433:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;12412:7;:18;12420:9;12412:18;;;;;;;;;;;;;;;:60;;;;12483:16;12493:5;12483:9;:16::i;:::-;12510:23;12522:4;12528;12510:11;:23::i;:::-;12566:9;12549:44;;12558:6;12549:44;;;12577:15;12549:44;;;;;;:::i;:::-;;;;;;;;12112:489;;;;;;11991:610;;;:::o;8246:113::-;8300:15;;8290:7;:25;;;;8336:15;;8326:7;:25;;;;8246:113::o;14844:263::-;14895:7;14904;14924:15;14942:7;;14924:25;;14960:15;4496:23;14960:25;;15010:20;4496:23;15010:7;;:11;;:20;;;;:::i;:::-;15000:7;:30;14996:61;;;15040:7;;4496:23;15032:25;;;;;;;;14996:61;15082:7;15091;15074:25;;;;;;14844:263;;;:::o;13020:623::-;13120:7;13142;13164;13186;13208;13230;13266:23;13291:12;13305:13;13335:38;13347:7;13356;;13365;;13335:11;:38::i;:::-;13265:108;;;;;;13384:19;13406:10;:8;:10::i;:::-;13384:32;;13428:15;13445:23;13470:12;13499:46;13511:7;13520:4;13526:5;13533:11;13499;:46::i;:::-;13427:118;;;;;;13574:7;13583:15;13600:4;13606:15;13623:4;13629:5;13566:69;;;;;;;;;;;;;;;;;;;13020:623;;;;;;;:::o;2063:136::-;2121:7;2148:43;2152:1;2155;2148:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2141:50;;2063:136;;;;:::o;1876:179::-;1934:7;1954:9;1970:1;1966;:5;;;;:::i;:::-;1954:17;;1995:1;1990;:6;;1982:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2046:1;2039:8;;;1876:179;;;;:::o;12609:211::-;12662:19;12684:10;:8;:10::i;:::-;12662:32;;12705:13;12721:22;12731:11;12721:5;:9;;:22;;;;:::i;:::-;12705:38;;12779:33;12806:5;12779:7;:22;12795:4;12779:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;12754:7;:22;12770:4;12754:22;;;;;;;;;;;;;;;:58;;;;12651:169;;12609:211;:::o;12828:147::-;12906:17;12918:4;12906:7;;:11;;:17;;;;:::i;:::-;12896:7;:27;;;;12947:20;12962:4;12947:10;;:14;;:20;;;;:::i;:::-;12934:10;:33;;;;12828:147;;:::o;13651:467::-;13818:7;13840;13862;13897:12;13912:28;13936:3;13912:19;13924:6;13912:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;13897:43;;13951:13;13967:28;13991:3;13967:19;13979:6;13967:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;13951:44;;14006:23;14032:28;14054:5;14032:17;14044:4;14032:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14006:54;;14081:15;14098:4;14104:5;14073:37;;;;;;;;;13651:467;;;;;;;:::o;14126:536::-;14320:7;14342;14364;14399:15;14417:24;14429:11;14417:7;:11;;:24;;;;:::i;:::-;14399:42;;14452:12;14467:21;14476:11;14467:4;:8;;:21;;;;:::i;:::-;14452:36;;14499:13;14515:22;14525:11;14515:5;:9;;:22;;;;:::i;:::-;14499:38;;14548:23;14574:28;14596:5;14574:17;14586:4;14574:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14548:54;;14623:7;14632:15;14649:4;14615:39;;;;;;;;;;14126:536;;;;;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;404:79;;:::i;:::-;350:2;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;;;;;;:::o;752:139::-;798:5;836:6;823:20;814:29;;852:33;879:5;852:33;:::i;:::-;804:87;;;;:::o;897:143::-;954:5;985:6;979:13;970:22;;1001:33;1028:5;1001:33;:::i;:::-;960:80;;;;:::o;1063:370::-;1134:5;1183:3;1176:4;1168:6;1164:17;1160:27;1150:2;;1191:79;;:::i;:::-;1150:2;1308:6;1295:20;1333:94;1423:3;1415:6;1408:4;1400:6;1396:17;1333:94;:::i;:::-;1324:103;;1140:293;;;;;:::o;1439:139::-;1485:5;1523:6;1510:20;1501:29;;1539:33;1566:5;1539:33;:::i;:::-;1491:87;;;;:::o;1584:329::-;1643:6;1692:2;1680:9;1671:7;1667:23;1663:32;1660:2;;;1698:79;;:::i;:::-;1660:2;1818:1;1843:53;1888:7;1879:6;1868:9;1864:22;1843:53;:::i;:::-;1833:63;;1789:117;1650:263;;;;:::o;1919:351::-;1989:6;2038:2;2026:9;2017:7;2013:23;2009:32;2006:2;;;2044:79;;:::i;:::-;2006:2;2164:1;2189:64;2245:7;2236:6;2225:9;2221:22;2189:64;:::i;:::-;2179:74;;2135:128;1996:274;;;;:::o;2276:474::-;2344:6;2352;2401:2;2389:9;2380:7;2376:23;2372:32;2369:2;;;2407:79;;:::i;:::-;2369:2;2527:1;2552:53;2597:7;2588:6;2577:9;2573:22;2552:53;:::i;:::-;2542:63;;2498:117;2654:2;2680:53;2725:7;2716:6;2705:9;2701:22;2680:53;:::i;:::-;2670:63;;2625:118;2359:391;;;;;:::o;2756:619::-;2833:6;2841;2849;2898:2;2886:9;2877:7;2873:23;2869:32;2866:2;;;2904:79;;:::i;:::-;2866:2;3024:1;3049:53;3094:7;3085:6;3074:9;3070:22;3049:53;:::i;:::-;3039:63;;2995:117;3151:2;3177:53;3222:7;3213:6;3202:9;3198:22;3177:53;:::i;:::-;3167:63;;3122:118;3279:2;3305:53;3350:7;3341:6;3330:9;3326:22;3305:53;:::i;:::-;3295:63;;3250:118;2856:519;;;;;:::o;3381:474::-;3449:6;3457;3506:2;3494:9;3485:7;3481:23;3477:32;3474:2;;;3512:79;;:::i;:::-;3474:2;3632:1;3657:53;3702:7;3693:6;3682:9;3678:22;3657:53;:::i;:::-;3647:63;;3603:117;3759:2;3785:53;3830:7;3821:6;3810:9;3806:22;3785:53;:::i;:::-;3775:63;;3730:118;3464:391;;;;;:::o;3861:539::-;3945:6;3994:2;3982:9;3973:7;3969:23;3965:32;3962:2;;;4000:79;;:::i;:::-;3962:2;4148:1;4137:9;4133:17;4120:31;4178:18;4170:6;4167:30;4164:2;;;4200:79;;:::i;:::-;4164:2;4305:78;4375:7;4366:6;4355:9;4351:22;4305:78;:::i;:::-;4295:88;;4091:302;3952:448;;;;:::o;4406:329::-;4465:6;4514:2;4502:9;4493:7;4489:23;4485:32;4482:2;;;4520:79;;:::i;:::-;4482:2;4640:1;4665:53;4710:7;4701:6;4690:9;4686:22;4665:53;:::i;:::-;4655:63;;4611:117;4472:263;;;;:::o;4741:179::-;4810:10;4831:46;4873:3;4865:6;4831:46;:::i;:::-;4909:4;4904:3;4900:14;4886:28;;4821:99;;;;:::o;4926:108::-;5003:24;5021:5;5003:24;:::i;:::-;4998:3;4991:37;4981:53;;:::o;5040:118::-;5127:24;5145:5;5127:24;:::i;:::-;5122:3;5115:37;5105:53;;:::o;5194:732::-;5313:3;5342:54;5390:5;5342:54;:::i;:::-;5412:86;5491:6;5486:3;5412:86;:::i;:::-;5405:93;;5522:56;5572:5;5522:56;:::i;:::-;5601:7;5632:1;5617:284;5642:6;5639:1;5636:13;5617:284;;;5718:6;5712:13;5745:63;5804:3;5789:13;5745:63;:::i;:::-;5738:70;;5831:60;5884:6;5831:60;:::i;:::-;5821:70;;5677:224;5664:1;5661;5657:9;5652:14;;5617:284;;;5621:14;5917:3;5910:10;;5318:608;;;;;;;:::o;5932:109::-;6013:21;6028:5;6013:21;:::i;:::-;6008:3;6001:34;5991:50;;:::o;6047:183::-;6160:63;6217:5;6160:63;:::i;:::-;6155:3;6148:76;6138:92;;:::o;6236:147::-;6331:45;6370:5;6331:45;:::i;:::-;6326:3;6319:58;6309:74;;:::o;6389:364::-;6477:3;6505:39;6538:5;6505:39;:::i;:::-;6560:71;6624:6;6619:3;6560:71;:::i;:::-;6553:78;;6640:52;6685:6;6680:3;6673:4;6666:5;6662:16;6640:52;:::i;:::-;6717:29;6739:6;6717:29;:::i;:::-;6712:3;6708:39;6701:46;;6481:272;;;;;:::o;6759:366::-;6901:3;6922:67;6986:2;6981:3;6922:67;:::i;:::-;6915:74;;6998:93;7087:3;6998:93;:::i;:::-;7116:2;7111:3;7107:12;7100:19;;6905:220;;;:::o;7131:366::-;7273:3;7294:67;7358:2;7353:3;7294:67;:::i;:::-;7287:74;;7370:93;7459:3;7370:93;:::i;:::-;7488:2;7483:3;7479:12;7472:19;;7277:220;;;:::o;7503:366::-;7645:3;7666:67;7730:2;7725:3;7666:67;:::i;:::-;7659:74;;7742:93;7831:3;7742:93;:::i;:::-;7860:2;7855:3;7851:12;7844:19;;7649:220;;;:::o;7875:366::-;8017:3;8038:67;8102:2;8097:3;8038:67;:::i;:::-;8031:74;;8114:93;8203:3;8114:93;:::i;:::-;8232:2;8227:3;8223:12;8216:19;;8021:220;;;:::o;8247:366::-;8389:3;8410:67;8474:2;8469:3;8410:67;:::i;:::-;8403:74;;8486:93;8575:3;8486:93;:::i;:::-;8604:2;8599:3;8595:12;8588:19;;8393:220;;;:::o;8619:366::-;8761:3;8782:67;8846:2;8841:3;8782:67;:::i;:::-;8775:74;;8858:93;8947:3;8858:93;:::i;:::-;8976:2;8971:3;8967:12;8960:19;;8765:220;;;:::o;8991:366::-;9133:3;9154:67;9218:2;9213:3;9154:67;:::i;:::-;9147:74;;9230:93;9319:3;9230:93;:::i;:::-;9348:2;9343:3;9339:12;9332:19;;9137:220;;;:::o;9363:366::-;9505:3;9526:67;9590:2;9585:3;9526:67;:::i;:::-;9519:74;;9602:93;9691:3;9602:93;:::i;:::-;9720:2;9715:3;9711:12;9704:19;;9509:220;;;:::o;9735:366::-;9877:3;9898:67;9962:2;9957:3;9898:67;:::i;:::-;9891:74;;9974:93;10063:3;9974:93;:::i;:::-;10092:2;10087:3;10083:12;10076:19;;9881:220;;;:::o;10107:366::-;10249:3;10270:67;10334:2;10329:3;10270:67;:::i;:::-;10263:74;;10346:93;10435:3;10346:93;:::i;:::-;10464:2;10459:3;10455:12;10448:19;;10253:220;;;:::o;10479:366::-;10621:3;10642:67;10706:2;10701:3;10642:67;:::i;:::-;10635:74;;10718:93;10807:3;10718:93;:::i;:::-;10836:2;10831:3;10827:12;10820:19;;10625:220;;;:::o;10851:366::-;10993:3;11014:67;11078:2;11073:3;11014:67;:::i;:::-;11007:74;;11090:93;11179:3;11090:93;:::i;:::-;11208:2;11203:3;11199:12;11192:19;;10997:220;;;:::o;11223:366::-;11365:3;11386:67;11450:2;11445:3;11386:67;:::i;:::-;11379:74;;11462:93;11551:3;11462:93;:::i;:::-;11580:2;11575:3;11571:12;11564:19;;11369:220;;;:::o;11595:366::-;11737:3;11758:67;11822:2;11817:3;11758:67;:::i;:::-;11751:74;;11834:93;11923:3;11834:93;:::i;:::-;11952:2;11947:3;11943:12;11936:19;;11741:220;;;:::o;11967:118::-;12054:24;12072:5;12054:24;:::i;:::-;12049:3;12042:37;12032:53;;:::o;12091:112::-;12174:22;12190:5;12174:22;:::i;:::-;12169:3;12162:35;12152:51;;:::o;12209:222::-;12302:4;12340:2;12329:9;12325:18;12317:26;;12353:71;12421:1;12410:9;12406:17;12397:6;12353:71;:::i;:::-;12307:124;;;;:::o;12437:210::-;12524:4;12562:2;12551:9;12547:18;12539:26;;12575:65;12637:1;12626:9;12622:17;12613:6;12575:65;:::i;:::-;12529:118;;;;:::o;12653:274::-;12772:4;12810:2;12799:9;12795:18;12787:26;;12823:97;12917:1;12906:9;12902:17;12893:6;12823:97;:::i;:::-;12777:150;;;;:::o;12933:313::-;13046:4;13084:2;13073:9;13069:18;13061:26;;13133:9;13127:4;13123:20;13119:1;13108:9;13104:17;13097:47;13161:78;13234:4;13225:6;13161:78;:::i;:::-;13153:86;;13051:195;;;;:::o;13252:419::-;13418:4;13456:2;13445:9;13441:18;13433:26;;13505:9;13499:4;13495:20;13491:1;13480:9;13476:17;13469:47;13533:131;13659:4;13533:131;:::i;:::-;13525:139;;13423:248;;;:::o;13677:419::-;13843:4;13881:2;13870:9;13866:18;13858:26;;13930:9;13924:4;13920:20;13916:1;13905:9;13901:17;13894:47;13958:131;14084:4;13958:131;:::i;:::-;13950:139;;13848:248;;;:::o;14102:419::-;14268:4;14306:2;14295:9;14291:18;14283:26;;14355:9;14349:4;14345:20;14341:1;14330:9;14326:17;14319:47;14383:131;14509:4;14383:131;:::i;:::-;14375:139;;14273:248;;;:::o;14527:419::-;14693:4;14731:2;14720:9;14716:18;14708:26;;14780:9;14774:4;14770:20;14766:1;14755:9;14751:17;14744:47;14808:131;14934:4;14808:131;:::i;:::-;14800:139;;14698:248;;;:::o;14952:419::-;15118:4;15156:2;15145:9;15141:18;15133:26;;15205:9;15199:4;15195:20;15191:1;15180:9;15176:17;15169:47;15233:131;15359:4;15233:131;:::i;:::-;15225:139;;15123:248;;;:::o;15377:419::-;15543:4;15581:2;15570:9;15566:18;15558:26;;15630:9;15624:4;15620:20;15616:1;15605:9;15601:17;15594:47;15658:131;15784:4;15658:131;:::i;:::-;15650:139;;15548:248;;;:::o;15802:419::-;15968:4;16006:2;15995:9;15991:18;15983:26;;16055:9;16049:4;16045:20;16041:1;16030:9;16026:17;16019:47;16083:131;16209:4;16083:131;:::i;:::-;16075:139;;15973:248;;;:::o;16227:419::-;16393:4;16431:2;16420:9;16416:18;16408:26;;16480:9;16474:4;16470:20;16466:1;16455:9;16451:17;16444:47;16508:131;16634:4;16508:131;:::i;:::-;16500:139;;16398:248;;;:::o;16652:419::-;16818:4;16856:2;16845:9;16841:18;16833:26;;16905:9;16899:4;16895:20;16891:1;16880:9;16876:17;16869:47;16933:131;17059:4;16933:131;:::i;:::-;16925:139;;16823:248;;;:::o;17077:419::-;17243:4;17281:2;17270:9;17266:18;17258:26;;17330:9;17324:4;17320:20;17316:1;17305:9;17301:17;17294:47;17358:131;17484:4;17358:131;:::i;:::-;17350:139;;17248:248;;;:::o;17502:419::-;17668:4;17706:2;17695:9;17691:18;17683:26;;17755:9;17749:4;17745:20;17741:1;17730:9;17726:17;17719:47;17783:131;17909:4;17783:131;:::i;:::-;17775:139;;17673:248;;;:::o;17927:419::-;18093:4;18131:2;18120:9;18116:18;18108:26;;18180:9;18174:4;18170:20;18166:1;18155:9;18151:17;18144:47;18208:131;18334:4;18208:131;:::i;:::-;18200:139;;18098:248;;;:::o;18352:419::-;18518:4;18556:2;18545:9;18541:18;18533:26;;18605:9;18599:4;18595:20;18591:1;18580:9;18576:17;18569:47;18633:131;18759:4;18633:131;:::i;:::-;18625:139;;18523:248;;;:::o;18777:419::-;18943:4;18981:2;18970:9;18966:18;18958:26;;19030:9;19024:4;19020:20;19016:1;19005:9;19001:17;18994:47;19058:131;19184:4;19058:131;:::i;:::-;19050:139;;18948:248;;;:::o;19202:222::-;19295:4;19333:2;19322:9;19318:18;19310:26;;19346:71;19414:1;19403:9;19399:17;19390:6;19346:71;:::i;:::-;19300:124;;;;:::o;19430:831::-;19693:4;19731:3;19720:9;19716:19;19708:27;;19745:71;19813:1;19802:9;19798:17;19789:6;19745:71;:::i;:::-;19826:80;19902:2;19891:9;19887:18;19878:6;19826:80;:::i;:::-;19953:9;19947:4;19943:20;19938:2;19927:9;19923:18;19916:48;19981:108;20084:4;20075:6;19981:108;:::i;:::-;19973:116;;20099:72;20167:2;20156:9;20152:18;20143:6;20099:72;:::i;:::-;20181:73;20249:3;20238:9;20234:19;20225:6;20181:73;:::i;:::-;19698:563;;;;;;;;:::o;20267:214::-;20356:4;20394:2;20383:9;20379:18;20371:26;;20407:67;20471:1;20460:9;20456:17;20447:6;20407:67;:::i;:::-;20361:120;;;;:::o;20487:129::-;20521:6;20548:20;;:::i;:::-;20538:30;;20577:33;20605:4;20597:6;20577:33;:::i;:::-;20528:88;;;:::o;20622:75::-;20655:6;20688:2;20682:9;20672:19;;20662:35;:::o;20703:311::-;20780:4;20870:18;20862:6;20859:30;20856:2;;;20892:18;;:::i;:::-;20856:2;20942:4;20934:6;20930:17;20922:25;;21002:4;20996;20992:15;20984:23;;20785:229;;;:::o;21020:132::-;21087:4;21110:3;21102:11;;21140:4;21135:3;21131:14;21123:22;;21092:60;;;:::o;21158:114::-;21225:6;21259:5;21253:12;21243:22;;21232:40;;;:::o;21278:99::-;21330:6;21364:5;21358:12;21348:22;;21337:40;;;:::o;21383:113::-;21453:4;21485;21480:3;21476:14;21468:22;;21458:38;;;:::o;21502:184::-;21601:11;21635:6;21630:3;21623:19;21675:4;21670:3;21666:14;21651:29;;21613:73;;;;:::o;21692:169::-;21776:11;21810:6;21805:3;21798:19;21850:4;21845:3;21841:14;21826:29;;21788:73;;;;:::o;21867:305::-;21907:3;21926:20;21944:1;21926:20;:::i;:::-;21921:25;;21960:20;21978:1;21960:20;:::i;:::-;21955:25;;22114:1;22046:66;22042:74;22039:1;22036:81;22033:2;;;22120:18;;:::i;:::-;22033:2;22164:1;22161;22157:9;22150:16;;21911:261;;;;:::o;22178:185::-;22218:1;22235:20;22253:1;22235:20;:::i;:::-;22230:25;;22269:20;22287:1;22269:20;:::i;:::-;22264:25;;22308:1;22298:2;;22313:18;;:::i;:::-;22298:2;22355:1;22352;22348:9;22343:14;;22220:143;;;;:::o;22369:348::-;22409:7;22432:20;22450:1;22432:20;:::i;:::-;22427:25;;22466:20;22484:1;22466:20;:::i;:::-;22461:25;;22654:1;22586:66;22582:74;22579:1;22576:81;22571:1;22564:9;22557:17;22553:105;22550:2;;;22661:18;;:::i;:::-;22550:2;22709:1;22706;22702:9;22691:20;;22417:300;;;;:::o;22723:191::-;22763:4;22783:20;22801:1;22783:20;:::i;:::-;22778:25;;22817:20;22835:1;22817:20;:::i;:::-;22812:25;;22856:1;22853;22850:8;22847:2;;;22861:18;;:::i;:::-;22847:2;22906:1;22903;22899:9;22891:17;;22768:146;;;;:::o;22920:96::-;22957:7;22986:24;23004:5;22986:24;:::i;:::-;22975:35;;22965:51;;;:::o;23022:90::-;23056:7;23099:5;23092:13;23085:21;23074:32;;23064:48;;;:::o;23118:126::-;23155:7;23195:42;23188:5;23184:54;23173:65;;23163:81;;;:::o;23250:77::-;23287:7;23316:5;23305:16;;23295:32;;;:::o;23333:86::-;23368:7;23408:4;23401:5;23397:16;23386:27;;23376:43;;;:::o;23425:178::-;23501:9;23534:63;23591:5;23534:63;:::i;:::-;23521:76;;23511:92;;;:::o;23609:139::-;23685:9;23718:24;23736:5;23718:24;:::i;:::-;23705:37;;23695:53;;;:::o;23754:121::-;23812:9;23845:24;23863:5;23845:24;:::i;:::-;23832:37;;23822:53;;;:::o;23881:307::-;23949:1;23959:113;23973:6;23970:1;23967:13;23959:113;;;24058:1;24053:3;24049:11;24043:18;24039:1;24034:3;24030:11;24023:39;23995:2;23992:1;23988:10;23983:15;;23959:113;;;24090:6;24087:1;24084:13;24081:2;;;24170:1;24161:6;24156:3;24152:16;24145:27;24081:2;23930:258;;;;:::o;24194:281::-;24277:27;24299:4;24277:27;:::i;:::-;24269:6;24265:40;24407:6;24395:10;24392:22;24371:18;24359:10;24356:34;24353:62;24350:2;;;24418:18;;:::i;:::-;24350:2;24458:10;24454:2;24447:22;24237:238;;;:::o;24481:233::-;24520:3;24543:24;24561:5;24543:24;:::i;:::-;24534:33;;24589:66;24582:5;24579:77;24576:2;;;24659:18;;:::i;:::-;24576:2;24706:1;24699:5;24695:13;24688:20;;24524:190;;;:::o;24720:180::-;24768:77;24765:1;24758:88;24865:4;24862:1;24855:15;24889:4;24886:1;24879:15;24906:180;24954:77;24951:1;24944:88;25051:4;25048:1;25041:15;25075:4;25072:1;25065:15;25092:180;25140:77;25137:1;25130:88;25237:4;25234:1;25227:15;25261:4;25258:1;25251:15;25278:180;25326:77;25323:1;25316:88;25423:4;25420:1;25413:15;25447:4;25444:1;25437:15;25464:117;25573:1;25570;25563:12;25587:117;25696:1;25693;25686:12;25710:117;25819:1;25816;25809:12;25833:117;25942:1;25939;25932:12;25956:102;25997:6;26048:2;26044:7;26039:2;26032:5;26028:14;26024:28;26014:38;;26004:54;;;:::o;26064:222::-;26204:34;26200:1;26192:6;26188:14;26181:58;26273:5;26268:2;26260:6;26256:15;26249:30;26170:116;:::o;26292:176::-;26432:28;26428:1;26420:6;26416:14;26409:52;26398:70;:::o;26474:176::-;26614:28;26610:1;26602:6;26598:14;26591:52;26580:70;:::o;26656:229::-;26796:34;26792:1;26784:6;26780:14;26773:58;26865:12;26860:2;26852:6;26848:15;26841:37;26762:123;:::o;26891:221::-;27031:34;27027:1;27019:6;27015:14;27008:58;27100:4;27095:2;27087:6;27083:15;27076:29;26997:115;:::o;27118:177::-;27258:29;27254:1;27246:6;27242:14;27235:53;27224:71;:::o;27301:179::-;27441:31;27437:1;27429:6;27425:14;27418:55;27407:73;:::o;27486:220::-;27626:34;27622:1;27614:6;27610:14;27603:58;27695:3;27690:2;27682:6;27678:15;27671:28;27592:114;:::o;27712:182::-;27852:34;27848:1;27840:6;27836:14;27829:58;27818:76;:::o;27900:228::-;28040:34;28036:1;28028:6;28024:14;28017:58;28109:11;28104:2;28096:6;28092:15;28085:36;28006:122;:::o;28134:176::-;28274:28;28270:1;28262:6;28258:14;28251:52;28240:70;:::o;28316:224::-;28456:34;28452:1;28444:6;28440:14;28433:58;28525:7;28520:2;28512:6;28508:15;28501:32;28422:118;:::o;28546:176::-;28686:28;28682:1;28674:6;28670:14;28663:52;28652:70;:::o;28728:223::-;28868:34;28864:1;28856:6;28852:14;28845:58;28937:6;28932:2;28924:6;28920:15;28913:31;28834:117;:::o;28957:122::-;29030:24;29048:5;29030:24;:::i;:::-;29023:5;29020:35;29010:2;;29069:1;29066;29059:12;29010:2;29000:79;:::o;29085:122::-;29158:24;29176:5;29158:24;:::i;:::-;29151:5;29148:35;29138:2;;29197:1;29194;29187:12;29138:2;29128:79;:::o

Swarm Source

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