ETH Price: $3,669.51 (+2.34%)

Token

AUTZ Token (AUTZ)
 

Overview

Max Total Supply

1,000,000,000,000,000 AUTZ

Holders

1,741 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
298,496,697,320.263172387 AUTZ

Value
$0.00
0x8d83b77bc4727979545f19762b972f9d19bf3551
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

A charity-oriented token with the ultimate goal to support autistic children and adults in the spectrum (autism spectrum disorder - ASD).

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
AUTZToken

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-22
*/

/*

%%%%%%%%%%%%%%%%%%%%%
%%% AUTZ TOKEN V2 %%%
%%%%%%%%%%%%%%%%%%%%%

A charity-oriented token with the ultimate goal to support autistic children and adults in the spectrum (autism spectrum disorder - ASD)


Official Website :
------------------
autz.io


Official Social Platforms : 
---------------------------
Telegram : autz.io/telegram
Facebook : autz.io/facebook
Instagram : autz.io/instagram
Twitter : autz.io/twitter


Official Charity Wallet :
------------------------------------------
0x55Abd9020a78B5b493fac811eADCB8D3EDD37B88

*/

// 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 AUTZToken is Context, IERC20, Ownable {
    using SafeMath for uint256;

    string private constant _name = "AUTZ Token";
    string private constant _symbol = "AUTZ";
    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 = 1000000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisT = 1;
    uint256 private _edistT = 10;
    uint256 private _previousredisT = _redisT;
    uint256 private _previousedistT = _edistT;
    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 = 5000000000000 * 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 (_redisT == 0 && _edistT == 0) return;
    
        _previousredisT = _redisT;
        _previousedistT = _edistT;
        
        _redisT = 0;
        _edistT = 0;
    }

    function restoreAllFee() private {
        _redisT = _previousredisT;
        _edistT = _previousedistT;
    }

    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 launchAutz() 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, _redisT, _edistT);
        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 redisT,
        uint256 edistT
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisT).div(100);
        uint256 tTeam = tAmount.mul(edistT).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 modredisT(uint256 redisT) external onlyOwner() {
        require(redisT >= 0 && redisT <= 25, 'redisT should be in 0 - 25');
        _redisT = redisT;
    }

    function modedistT(uint256 edistT) external onlyOwner() {
        require(edistT >= 0 && edistT <= 25, 'edistT should be in 0 - 25');
        _edistT = edistT;
    }
 
}

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":"launchAutz","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":"edistT","type":"uint256"}],"name":"modedistT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisT","type":"uint256"}],"name":"modredisT","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"}]

608060405269d3c21bcecceda10000006000196200001e919062000881565b6000196200002d9190620007f4565b6006556001600855600a600955600854600a55600954600b556000601160156101000a81548160ff0219169083151502179055506001601160166101000a81548160ff02191690831515021790555069010f0cf064dd592000006012553480156200009757600080fd5b5060405162003bfe38038062003bfe8339818101604052810190620000bd919062000741565b6000620000cf620006b060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506006546002600062000206620006b060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002e557600080fd5b505afa158015620002fa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032091906200070f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200038357600080fd5b505afa15801562000398573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003be91906200070f565b6040518363ffffffff1660e01b8152600401620003dd929190620007aa565b602060405180830381600087803b158015620003f857600080fd5b505af11580156200040d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200043391906200070f565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005600062000489620006b860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000636620006b060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69d3c21bcecceda10000006040516200069f9190620007d7565b60405180910390a350505062000950565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050620006f2816200091c565b92915050565b600081519050620007098162000936565b92915050565b60006020828403121562000728576200072762000917565b5b60006200073884828501620006e1565b91505092915050565b600080604083850312156200075b576200075a62000917565b5b60006200076b85828601620006f8565b92505060206200077e85828601620006f8565b9150509250929050565b62000793816200082f565b82525050565b620007a48162000877565b82525050565b6000604082019050620007c1600083018562000788565b620007d0602083018462000788565b9392505050565b6000602082019050620007ee600083018462000799565b92915050565b6000620008018262000877565b91506200080e8362000877565b925082821015620008245762000823620008b9565b5b828203905092915050565b60006200083c8262000857565b9050919050565b6000620008508262000857565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006200088e8262000877565b91506200089b8362000877565b925082620008ae57620008ad620008e8565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b62000927816200082f565b81146200093357600080fd5b50565b620009418162000843565b81146200094d57600080fd5b50565b61329e80620009606000396000f3fe6080604052600436106101385760003560e01c806370a08231116100ab5780638da5cb5b1161006f5780638da5cb5b146103e657806395d89b4114610411578063a9059cbb1461043c578063c3c8cd8014610479578063d543dbeb14610490578063dd62ed3e146104b95761013f565b806370a0823114610315578063715018a61461035257806372c23e75146103695780637d1db4a51461039257806381b517c7146103bd5761013f565b806318160ddd116100fd57806318160ddd1461021757806323b872dd14610242578063313ce5671461027f57806349bd5a5e146102aa5780636b999053146102d55780636fc3eaec146102fe5761013f565b8062b8cf2a1461014457806306fdde031461016d578063095ea7b3146101985780630cd56606146101d55780631694505e146101ec5761013f565b3661013f57005b600080fd5b34801561015057600080fd5b5061016b600480360381019061016691906124bb565b6104f6565b005b34801561017957600080fd5b50610182610620565b60405161018f9190612884565b60405180910390f35b3480156101a457600080fd5b506101bf60048036038101906101ba919061247b565b61065d565b6040516101cc919061284e565b60405180910390f35b3480156101e157600080fd5b506101ea61067b565b005b3480156101f857600080fd5b5061020161077d565b60405161020e9190612869565b60405180910390f35b34801561022357600080fd5b5061022c6107a3565b6040516102399190612a66565b60405180910390f35b34801561024e57600080fd5b5061026960048036038101906102649190612428565b6107b5565b604051610276919061284e565b60405180910390f35b34801561028b57600080fd5b5061029461088e565b6040516102a19190612adb565b60405180910390f35b3480156102b657600080fd5b506102bf610897565b6040516102cc9190612833565b60405180910390f35b3480156102e157600080fd5b506102fc60048036038101906102f7919061238e565b6108bd565b005b34801561030a57600080fd5b506103136109ad565b005b34801561032157600080fd5b5061033c6004803603810190610337919061238e565b610a1f565b6040516103499190612a66565b60405180910390f35b34801561035e57600080fd5b50610367610a70565b005b34801561037557600080fd5b50610390600480360381019061038b9190612504565b610bc3565b005b34801561039e57600080fd5b506103a7610cb3565b6040516103b49190612a66565b60405180910390f35b3480156103c957600080fd5b506103e460048036038101906103df9190612504565b610cb9565b005b3480156103f257600080fd5b506103fb610da9565b6040516104089190612833565b60405180910390f35b34801561041d57600080fd5b50610426610dd2565b6040516104339190612884565b60405180910390f35b34801561044857600080fd5b50610463600480360381019061045e919061247b565b610e0f565b604051610470919061284e565b60405180910390f35b34801561048557600080fd5b5061048e610e2d565b005b34801561049c57600080fd5b506104b760048036038101906104b29190612504565b610ea7565b005b3480156104c557600080fd5b506104e060048036038101906104db91906123e8565b610ff1565b6040516104ed9190612a66565b60405180910390f35b6104fe611078565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461058b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610582906129c6565b60405180910390fd5b60005b815181101561061c576001600c60008484815181106105b0576105af612e47565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061061490612da0565b91505061058e565b5050565b60606040518060400160405280600a81526020017f4155545a20546f6b656e00000000000000000000000000000000000000000000815250905090565b600061067161066a611078565b8484611080565b6001905092915050565b610683611078565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610710576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610707906129c6565b60405180910390fd5b601160149054906101000a900460ff1615610760576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610757906128c6565b60405180910390fd5b6001601160146101000a81548160ff021916908315150217905550565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600069d3c21bcecceda1000000905090565b60006107c284848461124b565b610883846107ce611078565b61087e8560405180606001604052806028815260200161324160289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610834611078565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461172f9092919063ffffffff16565b611080565b600190509392505050565b60006009905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108c5611078565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610952576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610949906129c6565b60405180910390fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109ee611078565b73ffffffffffffffffffffffffffffffffffffffff1614610a0e57600080fd5b6000479050610a1c81611793565b50565b6000610a69600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461188e565b9050919050565b610a78611078565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afc906129c6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610bcb611078565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4f906129c6565b60405180910390fd5b60008110158015610c6a575060198111155b610ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca090612a06565b60405180910390fd5b8060088190555050565b60125481565b610cc1611078565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d45906129c6565b60405180910390fd5b60008110158015610d60575060198111155b610d9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9690612986565b60405180910390fd5b8060098190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4155545a00000000000000000000000000000000000000000000000000000000815250905090565b6000610e23610e1c611078565b848461124b565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e6e611078565b73ffffffffffffffffffffffffffffffffffffffff1614610e8e57600080fd5b6000610e9930610a1f565b9050610ea4816118fc565b50565b610eaf611078565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f33906129c6565b60405180910390fd5b60008111610f7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7690612966565b60405180910390fd5b610faf6064610fa18369d3c21bcecceda1000000611b8490919063ffffffff16565b611bff90919063ffffffff16565b6012819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf601254604051610fe69190612a66565b60405180910390a150565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156110f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e790612a46565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611160576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115790612926565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161123e9190612a66565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b290612a26565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561132b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611322906128a6565b60405180910390fd5b6000811161136e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611365906129e6565b60405180910390fd5b611376610da9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113e457506113b4610da9565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561166c57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806114925750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156114e757601160149054906101000a900460ff166114e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114dd906128e6565b60405180910390fd5b5b6012548111156114f657600080fd5b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561159a5750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6115a357600080fd5b60006115ae30610a1f565b905060125481106115bf5760125490505b601160159054906101000a900460ff1615801561162a5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156116425750601160169054906101000a900460ff165b1561166a57611650816118fc565b600047905060008111156116685761166747611793565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117135750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561171d57600090505b61172984848484611c49565b50505050565b6000838311158290611777576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176e9190612884565b60405180910390fd5b50600083856117869190612c7d565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6117e3600284611bff90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561180e573d6000803e3d6000fd5b50600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61185f600284611bff90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561188a573d6000803e3d6000fd5b5050565b60006006548211156118d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cc90612906565b60405180910390fd5b60006118df611c76565b90506118f48184611bff90919063ffffffff16565b915050919050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561193457611933612e76565b5b6040519080825280602002602001820160405280156119625781602001602082028036833780820191505090505b509050308160008151811061197a57611979612e47565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611a1c57600080fd5b505afa158015611a30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a5491906123bb565b81600181518110611a6857611a67612e47565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611acf30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611080565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611b33959493929190612a81565b600060405180830381600087803b158015611b4d57600080fd5b505af1158015611b61573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b600080831415611b975760009050611bf9565b60008284611ba59190612c23565b9050828482611bb49190612bf2565b14611bf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611beb906129a6565b60405180910390fd5b809150505b92915050565b6000611c4183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ca1565b905092915050565b80611c5757611c56611d04565b5b611c62848484611d47565b80611c7057611c6f611f12565b5b50505050565b6000806000611c83611f26565b91509150611c9a8183611bff90919063ffffffff16565b9250505090565b60008083118290611ce8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cdf9190612884565b60405180910390fd5b5060008385611cf79190612bf2565b9050809150509392505050565b6000600854148015611d1857506000600954145b15611d2257611d45565b600854600a81905550600954600b81905550600060088190555060006009819055505b565b600080600080600080611d5987611f8b565b955095509550955095509550611db786600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ff390919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e4c85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203d90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e988161209b565b611ea28483612158565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611eff9190612a66565b60405180910390a3505050505050505050565b600a54600881905550600b54600981905550565b60008060006006549050600069d3c21bcecceda10000009050611f5e69d3c21bcecceda1000000600654611bff90919063ffffffff16565b821015611f7e5760065469d3c21bcecceda1000000935093505050611f87565b81819350935050505b9091565b6000806000806000806000806000611fa88a600854600954612192565b9250925092506000611fb8611c76565b90506000806000611fcb8e878787612228565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061203583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061172f565b905092915050565b600080828461204c9190612b9c565b905083811015612091576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208890612946565b60405180910390fd5b8091505092915050565b60006120a5611c76565b905060006120bc8284611b8490919063ffffffff16565b905061211081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203d90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61216d82600654611ff390919063ffffffff16565b6006819055506121888160075461203d90919063ffffffff16565b6007819055505050565b6000806000806121be60646121b0888a611b8490919063ffffffff16565b611bff90919063ffffffff16565b905060006121e860646121da888b611b8490919063ffffffff16565b611bff90919063ffffffff16565b9050600061221182612203858c611ff390919063ffffffff16565b611ff390919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806122418589611b8490919063ffffffff16565b905060006122588689611b8490919063ffffffff16565b9050600061226f8789611b8490919063ffffffff16565b905060006122988261228a8587611ff390919063ffffffff16565b611ff390919063ffffffff16565b9050838184965096509650505050509450945094915050565b60006122c46122bf84612b1b565b612af6565b905080838252602082019050828560208602820111156122e7576122e6612eaa565b5b60005b8581101561231757816122fd8882612321565b8452602084019350602083019250506001810190506122ea565b5050509392505050565b60008135905061233081613212565b92915050565b60008151905061234581613212565b92915050565b600082601f8301126123605761235f612ea5565b5b81356123708482602086016122b1565b91505092915050565b60008135905061238881613229565b92915050565b6000602082840312156123a4576123a3612eb4565b5b60006123b284828501612321565b91505092915050565b6000602082840312156123d1576123d0612eb4565b5b60006123df84828501612336565b91505092915050565b600080604083850312156123ff576123fe612eb4565b5b600061240d85828601612321565b925050602061241e85828601612321565b9150509250929050565b60008060006060848603121561244157612440612eb4565b5b600061244f86828701612321565b935050602061246086828701612321565b925050604061247186828701612379565b9150509250925092565b6000806040838503121561249257612491612eb4565b5b60006124a085828601612321565b92505060206124b185828601612379565b9150509250929050565b6000602082840312156124d1576124d0612eb4565b5b600082013567ffffffffffffffff8111156124ef576124ee612eaf565b5b6124fb8482850161234b565b91505092915050565b60006020828403121561251a57612519612eb4565b5b600061252884828501612379565b91505092915050565b600061253d8383612549565b60208301905092915050565b61255281612cb1565b82525050565b61256181612cb1565b82525050565b600061257282612b57565b61257c8185612b7a565b935061258783612b47565b8060005b838110156125b857815161259f8882612531565b97506125aa83612b6d565b92505060018101905061258b565b5085935050505092915050565b6125ce81612cc3565b82525050565b6125dd81612d06565b82525050565b6125ec81612d2a565b82525050565b60006125fd82612b62565b6126078185612b8b565b9350612617818560208601612d3c565b61262081612eb9565b840191505092915050565b6000612638602383612b8b565b915061264382612eca565b604082019050919050565b600061265b601a83612b8b565b915061266682612f19565b602082019050919050565b600061267e601a83612b8b565b915061268982612f42565b602082019050919050565b60006126a1602a83612b8b565b91506126ac82612f6b565b604082019050919050565b60006126c4602283612b8b565b91506126cf82612fba565b604082019050919050565b60006126e7601b83612b8b565b91506126f282613009565b602082019050919050565b600061270a601d83612b8b565b915061271582613032565b602082019050919050565b600061272d601a83612b8b565b91506127388261305b565b602082019050919050565b6000612750602183612b8b565b915061275b82613084565b604082019050919050565b6000612773602083612b8b565b915061277e826130d3565b602082019050919050565b6000612796602983612b8b565b91506127a1826130fc565b604082019050919050565b60006127b9601a83612b8b565b91506127c48261314b565b602082019050919050565b60006127dc602583612b8b565b91506127e782613174565b604082019050919050565b60006127ff602483612b8b565b915061280a826131c3565b604082019050919050565b61281e81612cef565b82525050565b61282d81612cf9565b82525050565b60006020820190506128486000830184612558565b92915050565b600060208201905061286360008301846125c5565b92915050565b600060208201905061287e60008301846125d4565b92915050565b6000602082019050818103600083015261289e81846125f2565b905092915050565b600060208201905081810360008301526128bf8161262b565b9050919050565b600060208201905081810360008301526128df8161264e565b9050919050565b600060208201905081810360008301526128ff81612671565b9050919050565b6000602082019050818103600083015261291f81612694565b9050919050565b6000602082019050818103600083015261293f816126b7565b9050919050565b6000602082019050818103600083015261295f816126da565b9050919050565b6000602082019050818103600083015261297f816126fd565b9050919050565b6000602082019050818103600083015261299f81612720565b9050919050565b600060208201905081810360008301526129bf81612743565b9050919050565b600060208201905081810360008301526129df81612766565b9050919050565b600060208201905081810360008301526129ff81612789565b9050919050565b60006020820190508181036000830152612a1f816127ac565b9050919050565b60006020820190508181036000830152612a3f816127cf565b9050919050565b60006020820190508181036000830152612a5f816127f2565b9050919050565b6000602082019050612a7b6000830184612815565b92915050565b600060a082019050612a966000830188612815565b612aa360208301876125e3565b8181036040830152612ab58186612567565b9050612ac46060830185612558565b612ad16080830184612815565b9695505050505050565b6000602082019050612af06000830184612824565b92915050565b6000612b00612b11565b9050612b0c8282612d6f565b919050565b6000604051905090565b600067ffffffffffffffff821115612b3657612b35612e76565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612ba782612cef565b9150612bb283612cef565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612be757612be6612de9565b5b828201905092915050565b6000612bfd82612cef565b9150612c0883612cef565b925082612c1857612c17612e18565b5b828204905092915050565b6000612c2e82612cef565b9150612c3983612cef565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c7257612c71612de9565b5b828202905092915050565b6000612c8882612cef565b9150612c9383612cef565b925082821015612ca657612ca5612de9565b5b828203905092915050565b6000612cbc82612ccf565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612d1182612d18565b9050919050565b6000612d2382612ccf565b9050919050565b6000612d3582612cef565b9050919050565b60005b83811015612d5a578082015181840152602081019050612d3f565b83811115612d69576000848401525b50505050565b612d7882612eb9565b810181811067ffffffffffffffff82111715612d9757612d96612e76565b5b80604052505050565b6000612dab82612cef565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612dde57612ddd612de9565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c72656164792073746172746564000000000000600082015250565b7f54726164696e67206973206e6f7420656e61626c656420796574000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b7f6564697374542073686f756c6420626520696e2030202d203235000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f7265646973542073686f756c6420626520696e2030202d203235000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61321b81612cb1565b811461322657600080fd5b50565b61323281612cef565b811461323d57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204bec22db79cea0e4e95c43b0669ddaf11b531b699f50ed5d75d5af04c6566aa464736f6c63430008060033000000000000000000000000da9f8363887c112712e53985688513c478706407000000000000000000000000a20d993cbe66404753a4c581dce3cb8be8621d66

Deployed Bytecode

0x6080604052600436106101385760003560e01c806370a08231116100ab5780638da5cb5b1161006f5780638da5cb5b146103e657806395d89b4114610411578063a9059cbb1461043c578063c3c8cd8014610479578063d543dbeb14610490578063dd62ed3e146104b95761013f565b806370a0823114610315578063715018a61461035257806372c23e75146103695780637d1db4a51461039257806381b517c7146103bd5761013f565b806318160ddd116100fd57806318160ddd1461021757806323b872dd14610242578063313ce5671461027f57806349bd5a5e146102aa5780636b999053146102d55780636fc3eaec146102fe5761013f565b8062b8cf2a1461014457806306fdde031461016d578063095ea7b3146101985780630cd56606146101d55780631694505e146101ec5761013f565b3661013f57005b600080fd5b34801561015057600080fd5b5061016b600480360381019061016691906124bb565b6104f6565b005b34801561017957600080fd5b50610182610620565b60405161018f9190612884565b60405180910390f35b3480156101a457600080fd5b506101bf60048036038101906101ba919061247b565b61065d565b6040516101cc919061284e565b60405180910390f35b3480156101e157600080fd5b506101ea61067b565b005b3480156101f857600080fd5b5061020161077d565b60405161020e9190612869565b60405180910390f35b34801561022357600080fd5b5061022c6107a3565b6040516102399190612a66565b60405180910390f35b34801561024e57600080fd5b5061026960048036038101906102649190612428565b6107b5565b604051610276919061284e565b60405180910390f35b34801561028b57600080fd5b5061029461088e565b6040516102a19190612adb565b60405180910390f35b3480156102b657600080fd5b506102bf610897565b6040516102cc9190612833565b60405180910390f35b3480156102e157600080fd5b506102fc60048036038101906102f7919061238e565b6108bd565b005b34801561030a57600080fd5b506103136109ad565b005b34801561032157600080fd5b5061033c6004803603810190610337919061238e565b610a1f565b6040516103499190612a66565b60405180910390f35b34801561035e57600080fd5b50610367610a70565b005b34801561037557600080fd5b50610390600480360381019061038b9190612504565b610bc3565b005b34801561039e57600080fd5b506103a7610cb3565b6040516103b49190612a66565b60405180910390f35b3480156103c957600080fd5b506103e460048036038101906103df9190612504565b610cb9565b005b3480156103f257600080fd5b506103fb610da9565b6040516104089190612833565b60405180910390f35b34801561041d57600080fd5b50610426610dd2565b6040516104339190612884565b60405180910390f35b34801561044857600080fd5b50610463600480360381019061045e919061247b565b610e0f565b604051610470919061284e565b60405180910390f35b34801561048557600080fd5b5061048e610e2d565b005b34801561049c57600080fd5b506104b760048036038101906104b29190612504565b610ea7565b005b3480156104c557600080fd5b506104e060048036038101906104db91906123e8565b610ff1565b6040516104ed9190612a66565b60405180910390f35b6104fe611078565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461058b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610582906129c6565b60405180910390fd5b60005b815181101561061c576001600c60008484815181106105b0576105af612e47565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061061490612da0565b91505061058e565b5050565b60606040518060400160405280600a81526020017f4155545a20546f6b656e00000000000000000000000000000000000000000000815250905090565b600061067161066a611078565b8484611080565b6001905092915050565b610683611078565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610710576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610707906129c6565b60405180910390fd5b601160149054906101000a900460ff1615610760576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610757906128c6565b60405180910390fd5b6001601160146101000a81548160ff021916908315150217905550565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600069d3c21bcecceda1000000905090565b60006107c284848461124b565b610883846107ce611078565b61087e8560405180606001604052806028815260200161324160289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610834611078565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461172f9092919063ffffffff16565b611080565b600190509392505050565b60006009905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108c5611078565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610952576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610949906129c6565b60405180910390fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109ee611078565b73ffffffffffffffffffffffffffffffffffffffff1614610a0e57600080fd5b6000479050610a1c81611793565b50565b6000610a69600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461188e565b9050919050565b610a78611078565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afc906129c6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610bcb611078565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4f906129c6565b60405180910390fd5b60008110158015610c6a575060198111155b610ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca090612a06565b60405180910390fd5b8060088190555050565b60125481565b610cc1611078565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d45906129c6565b60405180910390fd5b60008110158015610d60575060198111155b610d9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9690612986565b60405180910390fd5b8060098190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4155545a00000000000000000000000000000000000000000000000000000000815250905090565b6000610e23610e1c611078565b848461124b565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e6e611078565b73ffffffffffffffffffffffffffffffffffffffff1614610e8e57600080fd5b6000610e9930610a1f565b9050610ea4816118fc565b50565b610eaf611078565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f33906129c6565b60405180910390fd5b60008111610f7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7690612966565b60405180910390fd5b610faf6064610fa18369d3c21bcecceda1000000611b8490919063ffffffff16565b611bff90919063ffffffff16565b6012819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf601254604051610fe69190612a66565b60405180910390a150565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156110f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e790612a46565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611160576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115790612926565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161123e9190612a66565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b290612a26565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561132b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611322906128a6565b60405180910390fd5b6000811161136e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611365906129e6565b60405180910390fd5b611376610da9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113e457506113b4610da9565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561166c57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806114925750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156114e757601160149054906101000a900460ff166114e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114dd906128e6565b60405180910390fd5b5b6012548111156114f657600080fd5b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561159a5750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6115a357600080fd5b60006115ae30610a1f565b905060125481106115bf5760125490505b601160159054906101000a900460ff1615801561162a5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156116425750601160169054906101000a900460ff165b1561166a57611650816118fc565b600047905060008111156116685761166747611793565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117135750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561171d57600090505b61172984848484611c49565b50505050565b6000838311158290611777576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176e9190612884565b60405180910390fd5b50600083856117869190612c7d565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6117e3600284611bff90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561180e573d6000803e3d6000fd5b50600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61185f600284611bff90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561188a573d6000803e3d6000fd5b5050565b60006006548211156118d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cc90612906565b60405180910390fd5b60006118df611c76565b90506118f48184611bff90919063ffffffff16565b915050919050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561193457611933612e76565b5b6040519080825280602002602001820160405280156119625781602001602082028036833780820191505090505b509050308160008151811061197a57611979612e47565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611a1c57600080fd5b505afa158015611a30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a5491906123bb565b81600181518110611a6857611a67612e47565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611acf30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611080565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611b33959493929190612a81565b600060405180830381600087803b158015611b4d57600080fd5b505af1158015611b61573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b600080831415611b975760009050611bf9565b60008284611ba59190612c23565b9050828482611bb49190612bf2565b14611bf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611beb906129a6565b60405180910390fd5b809150505b92915050565b6000611c4183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ca1565b905092915050565b80611c5757611c56611d04565b5b611c62848484611d47565b80611c7057611c6f611f12565b5b50505050565b6000806000611c83611f26565b91509150611c9a8183611bff90919063ffffffff16565b9250505090565b60008083118290611ce8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cdf9190612884565b60405180910390fd5b5060008385611cf79190612bf2565b9050809150509392505050565b6000600854148015611d1857506000600954145b15611d2257611d45565b600854600a81905550600954600b81905550600060088190555060006009819055505b565b600080600080600080611d5987611f8b565b955095509550955095509550611db786600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ff390919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e4c85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203d90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e988161209b565b611ea28483612158565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611eff9190612a66565b60405180910390a3505050505050505050565b600a54600881905550600b54600981905550565b60008060006006549050600069d3c21bcecceda10000009050611f5e69d3c21bcecceda1000000600654611bff90919063ffffffff16565b821015611f7e5760065469d3c21bcecceda1000000935093505050611f87565b81819350935050505b9091565b6000806000806000806000806000611fa88a600854600954612192565b9250925092506000611fb8611c76565b90506000806000611fcb8e878787612228565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061203583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061172f565b905092915050565b600080828461204c9190612b9c565b905083811015612091576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208890612946565b60405180910390fd5b8091505092915050565b60006120a5611c76565b905060006120bc8284611b8490919063ffffffff16565b905061211081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203d90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61216d82600654611ff390919063ffffffff16565b6006819055506121888160075461203d90919063ffffffff16565b6007819055505050565b6000806000806121be60646121b0888a611b8490919063ffffffff16565b611bff90919063ffffffff16565b905060006121e860646121da888b611b8490919063ffffffff16565b611bff90919063ffffffff16565b9050600061221182612203858c611ff390919063ffffffff16565b611ff390919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806122418589611b8490919063ffffffff16565b905060006122588689611b8490919063ffffffff16565b9050600061226f8789611b8490919063ffffffff16565b905060006122988261228a8587611ff390919063ffffffff16565b611ff390919063ffffffff16565b9050838184965096509650505050509450945094915050565b60006122c46122bf84612b1b565b612af6565b905080838252602082019050828560208602820111156122e7576122e6612eaa565b5b60005b8581101561231757816122fd8882612321565b8452602084019350602083019250506001810190506122ea565b5050509392505050565b60008135905061233081613212565b92915050565b60008151905061234581613212565b92915050565b600082601f8301126123605761235f612ea5565b5b81356123708482602086016122b1565b91505092915050565b60008135905061238881613229565b92915050565b6000602082840312156123a4576123a3612eb4565b5b60006123b284828501612321565b91505092915050565b6000602082840312156123d1576123d0612eb4565b5b60006123df84828501612336565b91505092915050565b600080604083850312156123ff576123fe612eb4565b5b600061240d85828601612321565b925050602061241e85828601612321565b9150509250929050565b60008060006060848603121561244157612440612eb4565b5b600061244f86828701612321565b935050602061246086828701612321565b925050604061247186828701612379565b9150509250925092565b6000806040838503121561249257612491612eb4565b5b60006124a085828601612321565b92505060206124b185828601612379565b9150509250929050565b6000602082840312156124d1576124d0612eb4565b5b600082013567ffffffffffffffff8111156124ef576124ee612eaf565b5b6124fb8482850161234b565b91505092915050565b60006020828403121561251a57612519612eb4565b5b600061252884828501612379565b91505092915050565b600061253d8383612549565b60208301905092915050565b61255281612cb1565b82525050565b61256181612cb1565b82525050565b600061257282612b57565b61257c8185612b7a565b935061258783612b47565b8060005b838110156125b857815161259f8882612531565b97506125aa83612b6d565b92505060018101905061258b565b5085935050505092915050565b6125ce81612cc3565b82525050565b6125dd81612d06565b82525050565b6125ec81612d2a565b82525050565b60006125fd82612b62565b6126078185612b8b565b9350612617818560208601612d3c565b61262081612eb9565b840191505092915050565b6000612638602383612b8b565b915061264382612eca565b604082019050919050565b600061265b601a83612b8b565b915061266682612f19565b602082019050919050565b600061267e601a83612b8b565b915061268982612f42565b602082019050919050565b60006126a1602a83612b8b565b91506126ac82612f6b565b604082019050919050565b60006126c4602283612b8b565b91506126cf82612fba565b604082019050919050565b60006126e7601b83612b8b565b91506126f282613009565b602082019050919050565b600061270a601d83612b8b565b915061271582613032565b602082019050919050565b600061272d601a83612b8b565b91506127388261305b565b602082019050919050565b6000612750602183612b8b565b915061275b82613084565b604082019050919050565b6000612773602083612b8b565b915061277e826130d3565b602082019050919050565b6000612796602983612b8b565b91506127a1826130fc565b604082019050919050565b60006127b9601a83612b8b565b91506127c48261314b565b602082019050919050565b60006127dc602583612b8b565b91506127e782613174565b604082019050919050565b60006127ff602483612b8b565b915061280a826131c3565b604082019050919050565b61281e81612cef565b82525050565b61282d81612cf9565b82525050565b60006020820190506128486000830184612558565b92915050565b600060208201905061286360008301846125c5565b92915050565b600060208201905061287e60008301846125d4565b92915050565b6000602082019050818103600083015261289e81846125f2565b905092915050565b600060208201905081810360008301526128bf8161262b565b9050919050565b600060208201905081810360008301526128df8161264e565b9050919050565b600060208201905081810360008301526128ff81612671565b9050919050565b6000602082019050818103600083015261291f81612694565b9050919050565b6000602082019050818103600083015261293f816126b7565b9050919050565b6000602082019050818103600083015261295f816126da565b9050919050565b6000602082019050818103600083015261297f816126fd565b9050919050565b6000602082019050818103600083015261299f81612720565b9050919050565b600060208201905081810360008301526129bf81612743565b9050919050565b600060208201905081810360008301526129df81612766565b9050919050565b600060208201905081810360008301526129ff81612789565b9050919050565b60006020820190508181036000830152612a1f816127ac565b9050919050565b60006020820190508181036000830152612a3f816127cf565b9050919050565b60006020820190508181036000830152612a5f816127f2565b9050919050565b6000602082019050612a7b6000830184612815565b92915050565b600060a082019050612a966000830188612815565b612aa360208301876125e3565b8181036040830152612ab58186612567565b9050612ac46060830185612558565b612ad16080830184612815565b9695505050505050565b6000602082019050612af06000830184612824565b92915050565b6000612b00612b11565b9050612b0c8282612d6f565b919050565b6000604051905090565b600067ffffffffffffffff821115612b3657612b35612e76565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612ba782612cef565b9150612bb283612cef565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612be757612be6612de9565b5b828201905092915050565b6000612bfd82612cef565b9150612c0883612cef565b925082612c1857612c17612e18565b5b828204905092915050565b6000612c2e82612cef565b9150612c3983612cef565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c7257612c71612de9565b5b828202905092915050565b6000612c8882612cef565b9150612c9383612cef565b925082821015612ca657612ca5612de9565b5b828203905092915050565b6000612cbc82612ccf565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612d1182612d18565b9050919050565b6000612d2382612ccf565b9050919050565b6000612d3582612cef565b9050919050565b60005b83811015612d5a578082015181840152602081019050612d3f565b83811115612d69576000848401525b50505050565b612d7882612eb9565b810181811067ffffffffffffffff82111715612d9757612d96612e76565b5b80604052505050565b6000612dab82612cef565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612dde57612ddd612de9565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c72656164792073746172746564000000000000600082015250565b7f54726164696e67206973206e6f7420656e61626c656420796574000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b7f6564697374542073686f756c6420626520696e2030202d203235000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f7265646973542073686f756c6420626520696e2030202d203235000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61321b81612cb1565b811461322657600080fd5b50565b61323281612cef565b811461323d57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204bec22db79cea0e4e95c43b0669ddaf11b531b699f50ed5d75d5af04c6566aa464736f6c63430008060033

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

000000000000000000000000da9f8363887c112712e53985688513c478706407000000000000000000000000a20d993cbe66404753a4c581dce3cb8be8621d66

-----Decoded View---------------
Arg [0] : addr1 (address): 0xDa9f8363887c112712e53985688513c478706407
Arg [1] : addr2 (address): 0xA20d993cbe66404753A4c581dCE3CB8bE8621d66

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000da9f8363887c112712e53985688513c478706407
Arg [1] : 000000000000000000000000a20d993cbe66404753a4c581dce3cb8be8621d66


Deployed Bytecode Sourcemap

4390:11785:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11867:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6548:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7473:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11318:142;;;;;;;;;;;;;:::i;:::-;;5407:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6825:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7674:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6734:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5455:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12044:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11668:191;;;;;;;;;;;;;:::i;:::-;;6928:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2131:148;;;;;;;;;;;;;:::i;:::-;;15825:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5593:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16001:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1917:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6639:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7074:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11468:192;;;;;;;;;;;;;:::i;:::-;;15558:255;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7281:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11867:169;2054:12;:10;:12::i;:::-;2044:22;;:6;;;;;;;;;;:22;;;2036:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11943:9:::1;11938:91;11962:5;:12;11958:1;:16;11938:91;;;12013:4;11996;:14;12001:5;12007:1;12001:8;;;;;;;;:::i;:::-;;;;;;;;11996:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11976:3;;;;;:::i;:::-;;;;11938:91;;;;11867:169:::0;:::o;6548:83::-;6585:13;6618:5;;;;;;;;;;;;;;;;;6611:12;;6548:83;:::o;7473:193::-;7575:4;7597:39;7606:12;:10;:12::i;:::-;7620:7;7629:6;7597:8;:39::i;:::-;7654:4;7647:11;;7473:193;;;;:::o;11318:142::-;2054:12;:10;:12::i;:::-;2044:22;;:6;;;;;;;;;;:22;;;2036:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11381:11:::1;;;;;;;;;;;11380:12;11372:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;11448:4;11434:11;;:18;;;;;;;;;;;;;;;;;;11318:142::o:0;5407:41::-;;;;;;;;;;;;;:::o;6825:95::-;6878:7;4938:24;6898:14;;6825:95;:::o;7674:446::-;7806:4;7823:36;7833:6;7841:9;7852:6;7823:9;:36::i;:::-;7870:220;7893:6;7914:12;:10;:12::i;:::-;7941:138;7997:6;7941:138;;;;;;;;;;;;;;;;;:11;:19;7953:6;7941:19;;;;;;;;;;;;;;;:33;7961:12;:10;:12::i;:::-;7941:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7870:8;:220::i;:::-;8108:4;8101:11;;7674:446;;;;;:::o;6734:83::-;6775:5;4612:1;6793:16;;6734:83;:::o;5455:28::-;;;;;;;;;;;;;:::o;12044:92::-;2054:12;:10;:12::i;:::-;2044:22;;:6;;;;;;;;;;:22;;;2036:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12123:5:::1;12108:4;:12;12113:6;12108:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;12044:92:::0;:::o;11668:191::-;11734:12;;;;;;;;;;;11718:28;;:12;:10;:12::i;:::-;:28;;;11710:37;;;;;;11758:26;11787:21;11758:50;;11819:32;11832:18;11819:12;:32::i;:::-;11699:160;11668:191::o;6928:138::-;6994:7;7021:37;7041:7;:16;7049:7;7041:16;;;;;;;;;;;;;;;;7021:19;:37::i;:::-;7014:44;;6928:138;;;:::o;2131:148::-;2054:12;:10;:12::i;:::-;2044:22;;:6;;;;;;;;;;:22;;;2036:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2238:1:::1;2201:40;;2222:6;::::0;::::1;;;;;;;;2201:40;;;;;;;;;;;;2269:1;2252:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2131:148::o:0;15825:168::-;2054:12;:10;:12::i;:::-;2044:22;;:6;;;;;;;;;;:22;;;2036:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15910:1:::1;15900:6;:11;;:27;;;;;15925:2;15915:6;:12;;15900:27;15892:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;15979:6;15969:7;:16;;;;15825:168:::0;:::o;5593:51::-;;;;:::o;16001:168::-;2054:12;:10;:12::i;:::-;2044:22;;:6;;;;;;;;;;:22;;;2036:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16086:1:::1;16076:6;:11;;:27;;;;;16101:2;16091:6;:12;;16076:27;16068:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;16155:6;16145:7;:16;;;;16001:168:::0;:::o;1917:79::-;1955:7;1982:6;;;;;;;;;;;1975:13;;1917:79;:::o;6639:87::-;6678:13;6711:7;;;;;;;;;;;;;;;;;6704:14;;6639:87;:::o;7074:199::-;7179:4;7201:42;7211:12;:10;:12::i;:::-;7225:9;7236:6;7201:9;:42::i;:::-;7261:4;7254:11;;7074:199;;;;:::o;11468:192::-;11534:12;;;;;;;;;;;11518:28;;:12;:10;:12::i;:::-;:28;;;11510:37;;;;;;11558:23;11584:24;11602:4;11584:9;:24::i;:::-;11558:50;;11619:33;11636:15;11619:16;:33::i;:::-;11499:161;11468:192::o;15558:255::-;2054:12;:10;:12::i;:::-;2044:22;;:6;;;;;;;;;;:22;;;2036:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15660:1:::1;15645:12;:16;15637:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;15721:36;15751:5;15721:25;15733:12;4938:24;15721:11;;:25;;;;:::i;:::-;:29;;:36;;;;:::i;:::-;15706:12;:51;;;;15773:32;15792:12;;15773:32;;;;;;:::i;:::-;;;;;;;;15558:255:::0;:::o;7281:184::-;7398:7;7430:11;:18;7442:5;7430:18;;;;;;;;;;;;;;;:27;7449:7;7430:27;;;;;;;;;;;;;;;;7423:34;;7281:184;;;;:::o;676:98::-;729:7;756:10;749:17;;676:98;:::o;8811:369::-;8955:1;8938:19;;:5;:19;;;;8930:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9036:1;9017:21;;:7;:21;;;;9009:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9118:6;9088:11;:18;9100:5;9088:18;;;;;;;;;;;;;;;:27;9107:7;9088:27;;;;;;;;;;;;;;;:36;;;;9156:7;9140:32;;9149:5;9140:32;;;9165:6;9140:32;;;;;;:::i;:::-;;;;;;;;8811:369;;;:::o;9188:1472::-;9326:1;9310:18;;:4;:18;;;;9302:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9403:1;9389:16;;:2;:16;;;;9381:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9473:1;9464:6;:10;9456:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9545:7;:5;:7::i;:::-;9537:15;;:4;:15;;;;:32;;;;;9562:7;:5;:7::i;:::-;9556:13;;:2;:13;;;;9537:32;9533:926;;;9645:13;;;;;;;;;;;9637:21;;:4;:21;;;:44;;;;9668:13;;;;;;;;;;;9662:19;;:2;:19;;;9637:44;9633:136;;;9711:11;;;;;;;;;;;9703:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;9633:136;9817:12;;9807:6;:22;;9799:31;;;;;;9854:4;:10;9859:4;9854:10;;;;;;;;;;;;;;;;;;;;;;;;;9853:11;:24;;;;;9869:4;:8;9874:2;9869:8;;;;;;;;;;;;;;;;;;;;;;;;;9868:9;9853:24;9845:33;;;;;;9907:28;9938:24;9956:4;9938:9;:24::i;:::-;9907:55;;10004:12;;9980:20;:36;9977:124;;10073:12;;10050:35;;9977:124;10134:6;;;;;;;;;;;10133:7;:32;;;;;10152:13;;;;;;;;;;;10144:21;;:4;:21;;;;10133:32;:47;;;;;10169:11;;;;;;;;;;;10133:47;10129:319;;;10201:38;10218:20;10201:16;:38::i;:::-;10258:26;10287:21;10258:50;;10352:1;10331:18;:22;10327:106;;;10378:35;10391:21;10378:12;:35::i;:::-;10327:106;10182:266;10129:319;9571:888;9533:926;10469:12;10484:4;10469:19;;10505:18;:24;10524:4;10505:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10533:18;:22;10552:2;10533:22;;;;;;;;;;;;;;;;;;;;;;;;;10505:50;10501:98;;;10582:5;10572:15;;10501:98;10611:41;10626:4;10632:2;10636:6;10644:7;10611:14;:41::i;:::-;9291:1369;9188:1472;;;:::o;2641:224::-;2761:7;2794:1;2789;:6;;2797:12;2781:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2821:9;2837:1;2833;:5;;;;:::i;:::-;2821:17;;2856:1;2849:8;;;2641:224;;;;;:::o;11159:151::-;11216:12;;;;;;;;;;;:21;;:36;11238:13;11249:1;11238:6;:10;;:13;;;;:::i;:::-;11216:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11263:15;;;;;;;;;;;:24;;:39;11288:13;11299:1;11288:6;:10;;:13;;;;:::i;:::-;11263:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11159:151;:::o;8128:323::-;8223:7;8281;;8270;:18;;8248:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8369:19;8391:10;:8;:10::i;:::-;8369:32;;8419:24;8431:11;8419:7;:11;;:24;;;;:::i;:::-;8412:31;;;8128:323;;;:::o;10668:483::-;5747:4;5738:6;;:13;;;;;;;;;;;;;;;;;;10746:21:::1;10784:1;10770:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10746:40;;10815:4;10797;10802:1;10797:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10841:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10831:4;10836:1;10831:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10874:62;10891:4;10906:15;;;;;;;;;;;10924:11;10874:8;:62::i;:::-;10947:15;;;;;;;;;;;:66;;;11028:11;11054:1;11070:4;11097;11117:15;10947:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10735:416;5783:5:::0;5774:6;;:14;;;;;;;;;;;;;;;;;;10668:483;:::o;2873:246::-;2931:7;2960:1;2955;:6;2951:47;;;2985:1;2978:8;;;;2951:47;3008:9;3024:1;3020;:5;;;;:::i;:::-;3008:17;;3053:1;3048;3044;:5;;;;:::i;:::-;:10;3036:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3110:1;3103:8;;;2873:246;;;;;:::o;3127:132::-;3185:7;3212:39;3216:1;3219;3212:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3205:46;;3127:132;;;;:::o;12144:282::-;12300:7;12295:28;;12309:14;:12;:14::i;:::-;12295:28;12334:44;12352:6;12360:9;12371:6;12334:17;:44::i;:::-;12394:7;12389:29;;12403:15;:13;:15::i;:::-;12389:29;12144:282;;;;:::o;15113:166::-;15155:7;15176:15;15193;15212:19;:17;:19::i;:::-;15175:56;;;;15251:20;15263:7;15251;:11;;:20;;;;:::i;:::-;15244:27;;;;15113:166;:::o;3267:223::-;3387:7;3419:1;3415;:5;3422:12;3407:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3446:9;3462:1;3458;:5;;;;:::i;:::-;3446:17;;3481:1;3474:8;;;3267:223;;;;;:::o;8459:::-;8517:1;8506:7;;:12;:28;;;;;8533:1;8522:7;;:12;8506:28;8502:41;;;8536:7;;8502:41;8577:7;;8559:15;:25;;;;8613:7;;8595:15;:25;;;;8651:1;8641:7;:11;;;;8673:1;8663:7;:11;;;;8459:223;:::o;12434:610::-;12581:15;12611:23;12649:12;12676:23;12714:12;12741:13;12768:19;12779:7;12768:10;:19::i;:::-;12566:221;;;;;;;;;;;;12816:28;12836:7;12816;:15;12824:6;12816:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;12798:7;:15;12806:6;12798:15;;;;;;;;;;;;;;;:46;;;;12876:39;12899:15;12876:7;:18;12884:9;12876:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;12855:7;:18;12863:9;12855:18;;;;;;;;;;;;;;;:60;;;;12926:16;12936:5;12926:9;:16::i;:::-;12953:23;12965:4;12971;12953:11;:23::i;:::-;13009:9;12992:44;;13001:6;12992:44;;;13020:15;12992:44;;;;;;:::i;:::-;;;;;;;;12555:489;;;;;;12434:610;;;:::o;8690:113::-;8744:15;;8734:7;:25;;;;8780:15;;8770:7;:25;;;;8690:113::o;15287:263::-;15338:7;15347;15367:15;15385:7;;15367:25;;15403:15;4938:24;15403:25;;15453:20;4938:24;15453:7;;:11;;:20;;;;:::i;:::-;15443:7;:30;15439:61;;;15483:7;;4938:24;15475:25;;;;;;;;15439:61;15525:7;15534;15517:25;;;;;;15287:263;;;:::o;13463:623::-;13563:7;13585;13607;13629;13651;13673;13709:23;13734:12;13748:13;13778:38;13790:7;13799;;13808;;13778:11;:38::i;:::-;13708:108;;;;;;13827:19;13849:10;:8;:10::i;:::-;13827:32;;13871:15;13888:23;13913:12;13942:46;13954:7;13963:4;13969:5;13976:11;13942;:46::i;:::-;13870:118;;;;;;14017:7;14026:15;14043:4;14049:15;14066:4;14072:5;14009:69;;;;;;;;;;;;;;;;;;;13463:623;;;;;;;:::o;2497:136::-;2555:7;2582:43;2586:1;2589;2582:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2575:50;;2497:136;;;;:::o;2310:179::-;2368:7;2388:9;2404:1;2400;:5;;;;:::i;:::-;2388:17;;2429:1;2424;:6;;2416:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2480:1;2473:8;;;2310:179;;;;:::o;13052:211::-;13105:19;13127:10;:8;:10::i;:::-;13105:32;;13148:13;13164:22;13174:11;13164:5;:9;;:22;;;;:::i;:::-;13148:38;;13222:33;13249:5;13222:7;:22;13238:4;13222:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;13197:7;:22;13213:4;13197:22;;;;;;;;;;;;;;;:58;;;;13094:169;;13052:211;:::o;13271:147::-;13349:17;13361:4;13349:7;;:11;;:17;;;;:::i;:::-;13339:7;:27;;;;13390:20;13405:4;13390:10;;:14;;:20;;;;:::i;:::-;13377:10;:33;;;;13271:147;;:::o;14094:467::-;14261:7;14283;14305;14340:12;14355:28;14379:3;14355:19;14367:6;14355:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14340:43;;14394:13;14410:28;14434:3;14410:19;14422:6;14410:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14394:44;;14449:23;14475:28;14497:5;14475:17;14487:4;14475:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14449:54;;14524:15;14541:4;14547:5;14516:37;;;;;;;;;14094:467;;;;;;;:::o;14569:536::-;14763:7;14785;14807;14842:15;14860:24;14872:11;14860:7;:11;;:24;;;;:::i;:::-;14842:42;;14895:12;14910:21;14919:11;14910:4;:8;;:21;;;;:::i;:::-;14895:36;;14942:13;14958:22;14968:11;14958:5;:9;;:22;;;;:::i;:::-;14942:38;;14991:23;15017:28;15039:5;15017:17;15029:4;15017:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14991:54;;15066:7;15075:15;15092:4;15058:39;;;;;;;;;;14569: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:176::-;27626:28;27622:1;27614:6;27610:14;27603:52;27592:70;:::o;27668:220::-;27808:34;27804:1;27796:6;27792:14;27785:58;27877:3;27872:2;27864:6;27860:15;27853:28;27774:114;:::o;27894:182::-;28034:34;28030:1;28022:6;28018:14;28011:58;28000:76;:::o;28082:228::-;28222:34;28218:1;28210:6;28206:14;28199:58;28291:11;28286:2;28278:6;28274:15;28267:36;28188:122;:::o;28316:176::-;28456:28;28452:1;28444:6;28440:14;28433:52;28422:70;:::o;28498:224::-;28638:34;28634:1;28626:6;28622:14;28615:58;28707:7;28702:2;28694:6;28690:15;28683:32;28604:118;:::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://4bec22db79cea0e4e95c43b0669ddaf11b531b699f50ed5d75d5af04c6566aa4
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.