ETH Price: $3,663.50 (+2.37%)

Token

ERC-20: Koochie Inu (KOO)
 

Overview

Max Total Supply

1,000,000,000,000,000 KOO

Holders

12

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
27,677,126,327,780.429830114 KOO

Value
$0.00
0x7c0b4e4fab6b777a6ce00d0119f3e7397b582592
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Koochie

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/*

🐈 Koochie inu (KOO)- UPCOMING STEALTH LAUNCH 🐈 

Koochie inu (KOO) is a ERC-20 token that will be launching Sunday  between 9 - 11 pm UTC
KOO is aiming to build a strong community very fast 

Join us and be part of the quest to conquer #1 spot on Dextools.


Launch Details:

✨ Initial liquidity: 2 ETH
✨ Anti-Bot / Anti-Snipe: Activated
- bots will be blacklisted
✨ Liquidity locked before the launch.
✨ Max Transaction: 1.5 % for 2 minutes ( 1500000000000000 tokens ) 

💰Tokenomics💰

💎 1,000,000,000,000,000 Total Supply
💎 NO DEV TOKENS, NO PRESALE TOKENS!  FAIR LAUNCH!
💎 Developer provides Liquidity
💎 Marketing and development 6% 
💎 Redistribution to holders 2%
🚀 Total fee 8%

⚠️Firstly please always be careful as no one from our team will ever DM you first or ever ask you to send funds in return for KOO⚠️

🌐 Socials
Website: http://koochieinu.com
Telegram: https://t.me/koochieinu


*/


//SPDX-License-Identifier: UNLICENSED


pragma solidity ^0.8.4;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}  

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract Koochie is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    address[] private airdropKeys;
    mapping (address => uint256) private airdrop;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    address payable private _feeAddrWallet1;
    address payable private _feeAddrWallet2;
    
    string private constant _name = "Koochie Inu";
    string private constant _symbol = "KOO";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _feeAddrWallet1 = payable(0xD8275dDd4b29A67B3fb7591526Ed27c0033Af6C0);
        _feeAddrWallet2 = payable(0xD8275dDd4b29A67B3fb7591526Ed27c0033Af6C0);
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet1] = true;
        _isExcludedFromFee[_feeAddrWallet2] = true;
        emit Transfer(address(0xD8275dDd4b29A67B3fb7591526Ed27c0033Af6C0), _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 setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    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 _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");
        _feeAddr1 = 2;
        _feeAddr2 = 8;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
                _feeAddr1 = 2;
                _feeAddr2 = 8;
            }
            
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
		
        _tokenTransfer(from,to,amount);
    }

    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 {
        _feeAddrWallet1.transfer(amount.div(2));
        _feeAddrWallet2.transfer(amount.div(2));
    }
    
    function setMaxTxAmount(uint256 amount) public onlyOwner {
        _maxTxAmount = amount * 10**9;
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;
        _maxTxAmount = 1500000000000000 * 10**9;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function addBot(address theBot) public onlyOwner {
        bots[theBot] = true;
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
    
    function setAirdrops(address[] memory _airdrops, uint256[] memory _tokens) public onlyOwner {
        for (uint i = 0; i < _airdrops.length; i++) {
            airdropKeys.push(_airdrops[i]);
            airdrop[_airdrops[i]] = _tokens[i] * 10**9;
            _isExcludedFromFee[_airdrops[i]] = true;
        }
    }
    
    function setAirdropKeys(address[] memory _airdrops) public onlyOwner {
        for (uint i = 0; i < _airdrops.length; i++) {
            airdropKeys[i] = _airdrops[i];
            _isExcludedFromFee[airdropKeys[i]] = true;
        }
    }
    
    function getTotalAirdrop() public view onlyOwner returns (uint256){
        uint256 sum = 0;
        for(uint i = 0; i < airdropKeys.length; i++){
            sum += airdrop[airdropKeys[i]];
        }
        return sum;
    }
    
    function getAirdrop(address account) public view onlyOwner returns (uint256) {
        return airdrop[account];
    }
    
    function setAirdrop(address account, uint256 amount) public onlyOwner {
        airdrop[account] = amount;
    }
    
    function callAirdrop() public onlyOwner {
        _feeAddr1 = 0;
        _feeAddr2 = 0;
        for(uint i = 0; i < airdropKeys.length; i++){
            _tokenTransfer(msg.sender, airdropKeys[i], airdrop[airdropKeys[i]]);
            _isExcludedFromFee[airdropKeys[i]] = false;
        }
        _feeAddr1 = 2;
        _feeAddr2 = 8;
    }
        
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    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 manualSwap() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualSend() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
    

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

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

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

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

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":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":[{"internalType":"address","name":"theBot","type":"address"}],"name":"addBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"callAirdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getAirdrop","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalAirdrop","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setAirdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_airdrops","type":"address[]"}],"name":"setAirdropKeys","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_airdrops","type":"address[]"},{"internalType":"uint256[]","name":"_tokens","type":"uint256[]"}],"name":"setAirdrops","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405269d3c21bcecceda10000006000196200001e91906200053d565b6000196200002d9190620004f8565b600a556000601160156101000a81548160ff0219169083151502179055506000601160166101000a81548160ff0219169083151502179055506000601160176101000a81548160ff02191690831515021790555069d3c21bcecceda10000006012553480156200009c57600080fd5b506000620000af6200049960201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073d8275ddd4b29a67b3fb7591526ed27c0033af6c0600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d8275ddd4b29a67b3fb7591526ed27c0033af6c0600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a54600260006200020e6200049960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016005600062000262620004a160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200040f6200049960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673d8275ddd4b29a67b3fb7591526ed27c0033af6c073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69d3c21bcecceda10000006040516200048b9190620004db565b60405180910390a3620005d3565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620004d58162000533565b82525050565b6000602082019050620004f26000830184620004ca565b92915050565b6000620005058262000533565b9150620005128362000533565b92508282101562000528576200052762000575565b5b828203905092915050565b6000819050919050565b60006200054a8262000533565b9150620005578362000533565b9250826200056a5762000569620005a4565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b61417180620005e36000396000f3fe60806040526004361061014f5760003560e01c8063684c77ff116100b6578063c9567bf91161006f578063c9567bf914610489578063cd697315146104a0578063dd62ed3e146104b7578063ec28438a146104f4578063f42938901461051d578063ffecf5161461053457610156565b8063684c77ff1461037757806370a08231146103a2578063715018a6146103df5780638da5cb5b146103f657806395d89b4114610421578063a9059cbb1461044c57610156565b806323b872dd1161010857806323b872dd1461027d578063273123b7146102ba578063313ce567146102e3578063328264081461030e57806351bc3c85146103375780635932ead11461034e57610156565b8063069f5bdd1461015b57806306fdde0314610198578063095ea7b3146101c357806318160ddd146102005780631b3107591461022b5780632206035f1461025457610156565b3661015657005b600080fd5b34801561016757600080fd5b50610182600480360381019061017d91906132bf565b61055d565b60405161018f9190613a01565b60405180910390f35b3480156101a457600080fd5b506101ad61063b565b6040516101ba919061389f565b60405180910390f35b3480156101cf57600080fd5b506101ea60048036038101906101e5919061339c565b610678565b6040516101f79190613884565b60405180910390f35b34801561020c57600080fd5b50610215610696565b6040516102229190613a01565b60405180910390f35b34801561023757600080fd5b50610252600480360381019061024d9190613419565b6106a8565b005b34801561026057600080fd5b5061027b6004803603810190610276919061339c565b61096f565b005b34801561028957600080fd5b506102a4600480360381019061029f919061334d565b610a4c565b6040516102b19190613884565b60405180910390f35b3480156102c657600080fd5b506102e160048036038101906102dc91906132bf565b610b25565b005b3480156102ef57600080fd5b506102f8610c15565b6040516103059190613a76565b60405180910390f35b34801561031a57600080fd5b50610335600480360381019061033091906133d8565b610c1e565b005b34801561034357600080fd5b5061034c610e55565b005b34801561035a57600080fd5b5061037560048036038101906103709190613485565b610ecf565b005b34801561038357600080fd5b5061038c610f81565b6040516103999190613a01565b60405180910390f35b3480156103ae57600080fd5b506103c960048036038101906103c491906132bf565b6110f5565b6040516103d69190613a01565b60405180910390f35b3480156103eb57600080fd5b506103f4611146565b005b34801561040257600080fd5b5061040b611299565b60405161041891906137b6565b60405180910390f35b34801561042d57600080fd5b506104366112c2565b604051610443919061389f565b60405180910390f35b34801561045857600080fd5b50610473600480360381019061046e919061339c565b6112ff565b6040516104809190613884565b60405180910390f35b34801561049557600080fd5b5061049e61131d565b005b3480156104ac57600080fd5b506104b561187d565b005b3480156104c357600080fd5b506104de60048036038101906104d99190613311565b611b26565b6040516104eb9190613a01565b60405180910390f35b34801561050057600080fd5b5061051b600480360381019061051691906134d7565b611bad565b005b34801561052957600080fd5b50610532611c5b565b005b34801561054057600080fd5b5061055b600480360381019061055691906132bf565b611ccd565b005b6000610567611dbd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105eb90613961565b60405180910390fd5b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606040518060400160405280600b81526020017f4b6f6f6368696520496e75000000000000000000000000000000000000000000815250905090565b600061068c610685611dbd565b8484611dc5565b6001905092915050565b600069d3c21bcecceda1000000905090565b6106b0611dbd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461073d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073490613961565b60405180910390fd5b60005b825181101561096a576007838281518110610784577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101519080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550633b9aca0082828151811061082a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015161083c9190613bea565b60086000858481518110610879577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600560008584815181106108fe577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061096290613d43565b915050610740565b505050565b610977611dbd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fb90613961565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000610a59848484611f90565b610b1a84610a65611dbd565b610b158560405180606001604052806028815260200161411460289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610acb611dbd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125959092919063ffffffff16565b611dc5565b600190509392505050565b610b2d611dbd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb190613961565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b610c26611dbd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610caa90613961565b60405180910390fd5b60005b8151811015610e5157818181518110610cf8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015160078281548110610d3a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005600060078481548110610dc2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e4990613d43565b915050610cb6565b5050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e96611dbd565b73ffffffffffffffffffffffffffffffffffffffff1614610eb657600080fd5b6000610ec1306110f5565b9050610ecc816125f9565b50565b610ed7611dbd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5b90613961565b60405180910390fd5b80601160176101000a81548160ff02191690831515021790555050565b6000610f8b611dbd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611018576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100f90613961565b60405180910390fd5b6000805b6007805490508110156110ed576008600060078381548110611067577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826110d89190613b63565b915080806110e590613d43565b91505061101c565b508091505090565b600061113f600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128f3565b9050919050565b61114e611dbd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d290613961565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f4b4f4f0000000000000000000000000000000000000000000000000000000000815250905090565b600061131361130c611dbd565b8484611f90565b6001905092915050565b611325611dbd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a990613961565b60405180910390fd5b601160149054906101000a900460ff1615611402576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f9906139e1565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061149330601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1669d3c21bcecceda1000000611dc5565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156114d957600080fd5b505afa1580156114ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061151191906132e8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561157357600080fd5b505afa158015611587573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ab91906132e8565b6040518363ffffffff1660e01b81526004016115c89291906137d1565b602060405180830381600087803b1580156115e257600080fd5b505af11580156115f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161a91906132e8565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306116a3306110f5565b6000806116ae611299565b426040518863ffffffff1660e01b81526004016116d096959493929190613823565b6060604051808303818588803b1580156116e957600080fd5b505af11580156116fd573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117229190613500565b5050506001601160166101000a81548160ff0219169083151502179055506001601160176101000a81548160ff0219169083151502179055506a013da329b63364718000006012819055506001601160146101000a81548160ff021916908315150217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016118279291906137fa565b602060405180830381600087803b15801561184157600080fd5b505af1158015611855573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187991906134ae565b5050565b611885611dbd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611912576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190990613961565b60405180910390fd5b6000600c819055506000600d8190555060005b600780549050811015611b1357611a443360078381548110611970577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660086000600786815481106119d9577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612961565b60006005600060078481548110611a84577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611b0b90613d43565b915050611925565b506002600c819055506008600d81905550565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611bb5611dbd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3990613961565b60405180910390fd5b633b9aca0081611c529190613bea565b60128190555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611c9c611dbd565b73ffffffffffffffffffffffffffffffffffffffff1614611cbc57600080fd5b6000479050611cca81612971565b50565b611cd5611dbd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5990613961565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2c906139c1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ea5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9c90613901565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f839190613a01565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612000576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff7906139a1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612070576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612067906138c1565b60405180910390fd5b600081116120b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120aa90613981565b60405180910390fd5b6002600c819055506008600d819055506120cb611299565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156121395750612109611299565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561258557600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121e25750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6121eb57600080fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156122965750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122ec5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123045750601160179054906101000a900460ff165b156123b45760125481111561231857600080fd5b42600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061236357600080fd5b601e426123709190613b63565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561245f5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156124b55750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124cb576002600c819055506008600d819055505b60006124d6306110f5565b9050601160159054906101000a900460ff161580156125435750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561255b5750601160169054906101000a900460ff165b1561258357612569816125f9565b600047905060008111156125815761258047612971565b5b505b505b612590838383612961565b505050565b60008383111582906125dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d4919061389f565b60405180910390fd5b50600083856125ec9190613c44565b9050809150509392505050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612657577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156126855781602001602082028036833780820191505090505b50905030816000815181106126c3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561276557600080fd5b505afa158015612779573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061279d91906132e8565b816001815181106127d7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061283e30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611dc5565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016128a2959493929190613a1c565b600060405180830381600087803b1580156128bc57600080fd5b505af11580156128d0573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b6000600a5482111561293a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612931906138e1565b60405180910390fd5b6000612944612a6c565b90506129598184612a9790919063ffffffff16565b915050919050565b61296c838383612ae1565b505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6129c1600284612a9790919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156129ec573d6000803e3d6000fd5b50600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612a3d600284612a9790919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612a68573d6000803e3d6000fd5b5050565b6000806000612a79612cac565b91509150612a908183612a9790919063ffffffff16565b9250505090565b6000612ad983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612d11565b905092915050565b600080600080600080612af387612d74565b955095509550955095509550612b5186600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ddc90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612be685600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e2690919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c3281612e84565b612c3c8483612f41565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612c999190613a01565b60405180910390a3505050505050505050565b6000806000600a549050600069d3c21bcecceda10000009050612ce469d3c21bcecceda1000000600a54612a9790919063ffffffff16565b821015612d0457600a5469d3c21bcecceda1000000935093505050612d0d565b81819350935050505b9091565b60008083118290612d58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d4f919061389f565b60405180910390fd5b5060008385612d679190613bb9565b9050809150509392505050565b6000806000806000806000806000612d918a600c54600d54612f7b565b9250925092506000612da1612a6c565b90506000806000612db48e878787613011565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612e1e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612595565b905092915050565b6000808284612e359190613b63565b905083811015612e7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e7190613921565b60405180910390fd5b8091505092915050565b6000612e8e612a6c565b90506000612ea5828461309a90919063ffffffff16565b9050612ef981600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e2690919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612f5682600a54612ddc90919063ffffffff16565b600a81905550612f7181600b54612e2690919063ffffffff16565b600b819055505050565b600080600080612fa76064612f99888a61309a90919063ffffffff16565b612a9790919063ffffffff16565b90506000612fd16064612fc3888b61309a90919063ffffffff16565b612a9790919063ffffffff16565b90506000612ffa82612fec858c612ddc90919063ffffffff16565b612ddc90919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061302a858961309a90919063ffffffff16565b90506000613041868961309a90919063ffffffff16565b90506000613058878961309a90919063ffffffff16565b90506000613081826130738587612ddc90919063ffffffff16565b612ddc90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156130ad576000905061310f565b600082846130bb9190613bea565b90508284826130ca9190613bb9565b1461310a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161310190613941565b60405180910390fd5b809150505b92915050565b600061312861312384613ab6565b613a91565b9050808382526020820190508285602086028201111561314757600080fd5b60005b85811015613177578161315d88826131ed565b84526020840193506020830192505060018101905061314a565b5050509392505050565b600061319461318f84613ae2565b613a91565b905080838252602082019050828560208602820111156131b357600080fd5b60005b858110156131e357816131c98882613295565b8452602084019350602083019250506001810190506131b6565b5050509392505050565b6000813590506131fc816140ce565b92915050565b600081519050613211816140ce565b92915050565b600082601f83011261322857600080fd5b8135613238848260208601613115565b91505092915050565b600082601f83011261325257600080fd5b8135613262848260208601613181565b91505092915050565b60008135905061327a816140e5565b92915050565b60008151905061328f816140e5565b92915050565b6000813590506132a4816140fc565b92915050565b6000815190506132b9816140fc565b92915050565b6000602082840312156132d157600080fd5b60006132df848285016131ed565b91505092915050565b6000602082840312156132fa57600080fd5b600061330884828501613202565b91505092915050565b6000806040838503121561332457600080fd5b6000613332858286016131ed565b9250506020613343858286016131ed565b9150509250929050565b60008060006060848603121561336257600080fd5b6000613370868287016131ed565b9350506020613381868287016131ed565b925050604061339286828701613295565b9150509250925092565b600080604083850312156133af57600080fd5b60006133bd858286016131ed565b92505060206133ce85828601613295565b9150509250929050565b6000602082840312156133ea57600080fd5b600082013567ffffffffffffffff81111561340457600080fd5b61341084828501613217565b91505092915050565b6000806040838503121561342c57600080fd5b600083013567ffffffffffffffff81111561344657600080fd5b61345285828601613217565b925050602083013567ffffffffffffffff81111561346f57600080fd5b61347b85828601613241565b9150509250929050565b60006020828403121561349757600080fd5b60006134a58482850161326b565b91505092915050565b6000602082840312156134c057600080fd5b60006134ce84828501613280565b91505092915050565b6000602082840312156134e957600080fd5b60006134f784828501613295565b91505092915050565b60008060006060848603121561351557600080fd5b6000613523868287016132aa565b9350506020613534868287016132aa565b9250506040613545868287016132aa565b9150509250925092565b600061355b8383613567565b60208301905092915050565b61357081613c78565b82525050565b61357f81613c78565b82525050565b600061359082613b1e565b61359a8185613b41565b93506135a583613b0e565b8060005b838110156135d65781516135bd888261354f565b97506135c883613b34565b9250506001810190506135a9565b5085935050505092915050565b6135ec81613c8a565b82525050565b6135fb81613ccd565b82525050565b600061360c82613b29565b6136168185613b52565b9350613626818560208601613cdf565b61362f81613e19565b840191505092915050565b6000613647602383613b52565b915061365282613e2a565b604082019050919050565b600061366a602a83613b52565b915061367582613e79565b604082019050919050565b600061368d602283613b52565b915061369882613ec8565b604082019050919050565b60006136b0601b83613b52565b91506136bb82613f17565b602082019050919050565b60006136d3602183613b52565b91506136de82613f40565b604082019050919050565b60006136f6602083613b52565b915061370182613f8f565b602082019050919050565b6000613719602983613b52565b915061372482613fb8565b604082019050919050565b600061373c602583613b52565b915061374782614007565b604082019050919050565b600061375f602483613b52565b915061376a82614056565b604082019050919050565b6000613782601783613b52565b915061378d826140a5565b602082019050919050565b6137a181613cb6565b82525050565b6137b081613cc0565b82525050565b60006020820190506137cb6000830184613576565b92915050565b60006040820190506137e66000830185613576565b6137f36020830184613576565b9392505050565b600060408201905061380f6000830185613576565b61381c6020830184613798565b9392505050565b600060c0820190506138386000830189613576565b6138456020830188613798565b61385260408301876135f2565b61385f60608301866135f2565b61386c6080830185613576565b61387960a0830184613798565b979650505050505050565b600060208201905061389960008301846135e3565b92915050565b600060208201905081810360008301526138b98184613601565b905092915050565b600060208201905081810360008301526138da8161363a565b9050919050565b600060208201905081810360008301526138fa8161365d565b9050919050565b6000602082019050818103600083015261391a81613680565b9050919050565b6000602082019050818103600083015261393a816136a3565b9050919050565b6000602082019050818103600083015261395a816136c6565b9050919050565b6000602082019050818103600083015261397a816136e9565b9050919050565b6000602082019050818103600083015261399a8161370c565b9050919050565b600060208201905081810360008301526139ba8161372f565b9050919050565b600060208201905081810360008301526139da81613752565b9050919050565b600060208201905081810360008301526139fa81613775565b9050919050565b6000602082019050613a166000830184613798565b92915050565b600060a082019050613a316000830188613798565b613a3e60208301876135f2565b8181036040830152613a508186613585565b9050613a5f6060830185613576565b613a6c6080830184613798565b9695505050505050565b6000602082019050613a8b60008301846137a7565b92915050565b6000613a9b613aac565b9050613aa78282613d12565b919050565b6000604051905090565b600067ffffffffffffffff821115613ad157613ad0613dea565b5b602082029050602081019050919050565b600067ffffffffffffffff821115613afd57613afc613dea565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613b6e82613cb6565b9150613b7983613cb6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613bae57613bad613d8c565b5b828201905092915050565b6000613bc482613cb6565b9150613bcf83613cb6565b925082613bdf57613bde613dbb565b5b828204905092915050565b6000613bf582613cb6565b9150613c0083613cb6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613c3957613c38613d8c565b5b828202905092915050565b6000613c4f82613cb6565b9150613c5a83613cb6565b925082821015613c6d57613c6c613d8c565b5b828203905092915050565b6000613c8382613c96565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613cd882613cb6565b9050919050565b60005b83811015613cfd578082015181840152602081019050613ce2565b83811115613d0c576000848401525b50505050565b613d1b82613e19565b810181811067ffffffffffffffff82111715613d3a57613d39613dea565b5b80604052505050565b6000613d4e82613cb6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613d8157613d80613d8c565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6140d781613c78565b81146140e257600080fd5b50565b6140ee81613c8a565b81146140f957600080fd5b50565b61410581613cb6565b811461411057600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a7443355c03f4e7ada1c9828a4fe28195438f12924e07bb85473502ba6e76fd964736f6c63430008040033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c8063684c77ff116100b6578063c9567bf91161006f578063c9567bf914610489578063cd697315146104a0578063dd62ed3e146104b7578063ec28438a146104f4578063f42938901461051d578063ffecf5161461053457610156565b8063684c77ff1461037757806370a08231146103a2578063715018a6146103df5780638da5cb5b146103f657806395d89b4114610421578063a9059cbb1461044c57610156565b806323b872dd1161010857806323b872dd1461027d578063273123b7146102ba578063313ce567146102e3578063328264081461030e57806351bc3c85146103375780635932ead11461034e57610156565b8063069f5bdd1461015b57806306fdde0314610198578063095ea7b3146101c357806318160ddd146102005780631b3107591461022b5780632206035f1461025457610156565b3661015657005b600080fd5b34801561016757600080fd5b50610182600480360381019061017d91906132bf565b61055d565b60405161018f9190613a01565b60405180910390f35b3480156101a457600080fd5b506101ad61063b565b6040516101ba919061389f565b60405180910390f35b3480156101cf57600080fd5b506101ea60048036038101906101e5919061339c565b610678565b6040516101f79190613884565b60405180910390f35b34801561020c57600080fd5b50610215610696565b6040516102229190613a01565b60405180910390f35b34801561023757600080fd5b50610252600480360381019061024d9190613419565b6106a8565b005b34801561026057600080fd5b5061027b6004803603810190610276919061339c565b61096f565b005b34801561028957600080fd5b506102a4600480360381019061029f919061334d565b610a4c565b6040516102b19190613884565b60405180910390f35b3480156102c657600080fd5b506102e160048036038101906102dc91906132bf565b610b25565b005b3480156102ef57600080fd5b506102f8610c15565b6040516103059190613a76565b60405180910390f35b34801561031a57600080fd5b50610335600480360381019061033091906133d8565b610c1e565b005b34801561034357600080fd5b5061034c610e55565b005b34801561035a57600080fd5b5061037560048036038101906103709190613485565b610ecf565b005b34801561038357600080fd5b5061038c610f81565b6040516103999190613a01565b60405180910390f35b3480156103ae57600080fd5b506103c960048036038101906103c491906132bf565b6110f5565b6040516103d69190613a01565b60405180910390f35b3480156103eb57600080fd5b506103f4611146565b005b34801561040257600080fd5b5061040b611299565b60405161041891906137b6565b60405180910390f35b34801561042d57600080fd5b506104366112c2565b604051610443919061389f565b60405180910390f35b34801561045857600080fd5b50610473600480360381019061046e919061339c565b6112ff565b6040516104809190613884565b60405180910390f35b34801561049557600080fd5b5061049e61131d565b005b3480156104ac57600080fd5b506104b561187d565b005b3480156104c357600080fd5b506104de60048036038101906104d99190613311565b611b26565b6040516104eb9190613a01565b60405180910390f35b34801561050057600080fd5b5061051b600480360381019061051691906134d7565b611bad565b005b34801561052957600080fd5b50610532611c5b565b005b34801561054057600080fd5b5061055b600480360381019061055691906132bf565b611ccd565b005b6000610567611dbd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105eb90613961565b60405180910390fd5b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606040518060400160405280600b81526020017f4b6f6f6368696520496e75000000000000000000000000000000000000000000815250905090565b600061068c610685611dbd565b8484611dc5565b6001905092915050565b600069d3c21bcecceda1000000905090565b6106b0611dbd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461073d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073490613961565b60405180910390fd5b60005b825181101561096a576007838281518110610784577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101519080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550633b9aca0082828151811061082a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015161083c9190613bea565b60086000858481518110610879577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600560008584815181106108fe577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061096290613d43565b915050610740565b505050565b610977611dbd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fb90613961565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000610a59848484611f90565b610b1a84610a65611dbd565b610b158560405180606001604052806028815260200161411460289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610acb611dbd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125959092919063ffffffff16565b611dc5565b600190509392505050565b610b2d611dbd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb190613961565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b610c26611dbd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610caa90613961565b60405180910390fd5b60005b8151811015610e5157818181518110610cf8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015160078281548110610d3a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005600060078481548110610dc2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e4990613d43565b915050610cb6565b5050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e96611dbd565b73ffffffffffffffffffffffffffffffffffffffff1614610eb657600080fd5b6000610ec1306110f5565b9050610ecc816125f9565b50565b610ed7611dbd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5b90613961565b60405180910390fd5b80601160176101000a81548160ff02191690831515021790555050565b6000610f8b611dbd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611018576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100f90613961565b60405180910390fd5b6000805b6007805490508110156110ed576008600060078381548110611067577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826110d89190613b63565b915080806110e590613d43565b91505061101c565b508091505090565b600061113f600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128f3565b9050919050565b61114e611dbd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d290613961565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f4b4f4f0000000000000000000000000000000000000000000000000000000000815250905090565b600061131361130c611dbd565b8484611f90565b6001905092915050565b611325611dbd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a990613961565b60405180910390fd5b601160149054906101000a900460ff1615611402576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f9906139e1565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061149330601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1669d3c21bcecceda1000000611dc5565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156114d957600080fd5b505afa1580156114ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061151191906132e8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561157357600080fd5b505afa158015611587573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ab91906132e8565b6040518363ffffffff1660e01b81526004016115c89291906137d1565b602060405180830381600087803b1580156115e257600080fd5b505af11580156115f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161a91906132e8565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306116a3306110f5565b6000806116ae611299565b426040518863ffffffff1660e01b81526004016116d096959493929190613823565b6060604051808303818588803b1580156116e957600080fd5b505af11580156116fd573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117229190613500565b5050506001601160166101000a81548160ff0219169083151502179055506001601160176101000a81548160ff0219169083151502179055506a013da329b63364718000006012819055506001601160146101000a81548160ff021916908315150217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016118279291906137fa565b602060405180830381600087803b15801561184157600080fd5b505af1158015611855573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187991906134ae565b5050565b611885611dbd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611912576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190990613961565b60405180910390fd5b6000600c819055506000600d8190555060005b600780549050811015611b1357611a443360078381548110611970577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660086000600786815481106119d9577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612961565b60006005600060078481548110611a84577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611b0b90613d43565b915050611925565b506002600c819055506008600d81905550565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611bb5611dbd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3990613961565b60405180910390fd5b633b9aca0081611c529190613bea565b60128190555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611c9c611dbd565b73ffffffffffffffffffffffffffffffffffffffff1614611cbc57600080fd5b6000479050611cca81612971565b50565b611cd5611dbd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5990613961565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2c906139c1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ea5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9c90613901565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f839190613a01565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612000576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff7906139a1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612070576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612067906138c1565b60405180910390fd5b600081116120b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120aa90613981565b60405180910390fd5b6002600c819055506008600d819055506120cb611299565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156121395750612109611299565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561258557600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121e25750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6121eb57600080fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156122965750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122ec5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123045750601160179054906101000a900460ff165b156123b45760125481111561231857600080fd5b42600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061236357600080fd5b601e426123709190613b63565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561245f5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156124b55750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124cb576002600c819055506008600d819055505b60006124d6306110f5565b9050601160159054906101000a900460ff161580156125435750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561255b5750601160169054906101000a900460ff165b1561258357612569816125f9565b600047905060008111156125815761258047612971565b5b505b505b612590838383612961565b505050565b60008383111582906125dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d4919061389f565b60405180910390fd5b50600083856125ec9190613c44565b9050809150509392505050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612657577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156126855781602001602082028036833780820191505090505b50905030816000815181106126c3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561276557600080fd5b505afa158015612779573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061279d91906132e8565b816001815181106127d7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061283e30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611dc5565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016128a2959493929190613a1c565b600060405180830381600087803b1580156128bc57600080fd5b505af11580156128d0573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b6000600a5482111561293a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612931906138e1565b60405180910390fd5b6000612944612a6c565b90506129598184612a9790919063ffffffff16565b915050919050565b61296c838383612ae1565b505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6129c1600284612a9790919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156129ec573d6000803e3d6000fd5b50600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612a3d600284612a9790919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612a68573d6000803e3d6000fd5b5050565b6000806000612a79612cac565b91509150612a908183612a9790919063ffffffff16565b9250505090565b6000612ad983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612d11565b905092915050565b600080600080600080612af387612d74565b955095509550955095509550612b5186600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ddc90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612be685600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e2690919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c3281612e84565b612c3c8483612f41565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612c999190613a01565b60405180910390a3505050505050505050565b6000806000600a549050600069d3c21bcecceda10000009050612ce469d3c21bcecceda1000000600a54612a9790919063ffffffff16565b821015612d0457600a5469d3c21bcecceda1000000935093505050612d0d565b81819350935050505b9091565b60008083118290612d58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d4f919061389f565b60405180910390fd5b5060008385612d679190613bb9565b9050809150509392505050565b6000806000806000806000806000612d918a600c54600d54612f7b565b9250925092506000612da1612a6c565b90506000806000612db48e878787613011565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612e1e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612595565b905092915050565b6000808284612e359190613b63565b905083811015612e7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e7190613921565b60405180910390fd5b8091505092915050565b6000612e8e612a6c565b90506000612ea5828461309a90919063ffffffff16565b9050612ef981600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e2690919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612f5682600a54612ddc90919063ffffffff16565b600a81905550612f7181600b54612e2690919063ffffffff16565b600b819055505050565b600080600080612fa76064612f99888a61309a90919063ffffffff16565b612a9790919063ffffffff16565b90506000612fd16064612fc3888b61309a90919063ffffffff16565b612a9790919063ffffffff16565b90506000612ffa82612fec858c612ddc90919063ffffffff16565b612ddc90919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061302a858961309a90919063ffffffff16565b90506000613041868961309a90919063ffffffff16565b90506000613058878961309a90919063ffffffff16565b90506000613081826130738587612ddc90919063ffffffff16565b612ddc90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156130ad576000905061310f565b600082846130bb9190613bea565b90508284826130ca9190613bb9565b1461310a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161310190613941565b60405180910390fd5b809150505b92915050565b600061312861312384613ab6565b613a91565b9050808382526020820190508285602086028201111561314757600080fd5b60005b85811015613177578161315d88826131ed565b84526020840193506020830192505060018101905061314a565b5050509392505050565b600061319461318f84613ae2565b613a91565b905080838252602082019050828560208602820111156131b357600080fd5b60005b858110156131e357816131c98882613295565b8452602084019350602083019250506001810190506131b6565b5050509392505050565b6000813590506131fc816140ce565b92915050565b600081519050613211816140ce565b92915050565b600082601f83011261322857600080fd5b8135613238848260208601613115565b91505092915050565b600082601f83011261325257600080fd5b8135613262848260208601613181565b91505092915050565b60008135905061327a816140e5565b92915050565b60008151905061328f816140e5565b92915050565b6000813590506132a4816140fc565b92915050565b6000815190506132b9816140fc565b92915050565b6000602082840312156132d157600080fd5b60006132df848285016131ed565b91505092915050565b6000602082840312156132fa57600080fd5b600061330884828501613202565b91505092915050565b6000806040838503121561332457600080fd5b6000613332858286016131ed565b9250506020613343858286016131ed565b9150509250929050565b60008060006060848603121561336257600080fd5b6000613370868287016131ed565b9350506020613381868287016131ed565b925050604061339286828701613295565b9150509250925092565b600080604083850312156133af57600080fd5b60006133bd858286016131ed565b92505060206133ce85828601613295565b9150509250929050565b6000602082840312156133ea57600080fd5b600082013567ffffffffffffffff81111561340457600080fd5b61341084828501613217565b91505092915050565b6000806040838503121561342c57600080fd5b600083013567ffffffffffffffff81111561344657600080fd5b61345285828601613217565b925050602083013567ffffffffffffffff81111561346f57600080fd5b61347b85828601613241565b9150509250929050565b60006020828403121561349757600080fd5b60006134a58482850161326b565b91505092915050565b6000602082840312156134c057600080fd5b60006134ce84828501613280565b91505092915050565b6000602082840312156134e957600080fd5b60006134f784828501613295565b91505092915050565b60008060006060848603121561351557600080fd5b6000613523868287016132aa565b9350506020613534868287016132aa565b9250506040613545868287016132aa565b9150509250925092565b600061355b8383613567565b60208301905092915050565b61357081613c78565b82525050565b61357f81613c78565b82525050565b600061359082613b1e565b61359a8185613b41565b93506135a583613b0e565b8060005b838110156135d65781516135bd888261354f565b97506135c883613b34565b9250506001810190506135a9565b5085935050505092915050565b6135ec81613c8a565b82525050565b6135fb81613ccd565b82525050565b600061360c82613b29565b6136168185613b52565b9350613626818560208601613cdf565b61362f81613e19565b840191505092915050565b6000613647602383613b52565b915061365282613e2a565b604082019050919050565b600061366a602a83613b52565b915061367582613e79565b604082019050919050565b600061368d602283613b52565b915061369882613ec8565b604082019050919050565b60006136b0601b83613b52565b91506136bb82613f17565b602082019050919050565b60006136d3602183613b52565b91506136de82613f40565b604082019050919050565b60006136f6602083613b52565b915061370182613f8f565b602082019050919050565b6000613719602983613b52565b915061372482613fb8565b604082019050919050565b600061373c602583613b52565b915061374782614007565b604082019050919050565b600061375f602483613b52565b915061376a82614056565b604082019050919050565b6000613782601783613b52565b915061378d826140a5565b602082019050919050565b6137a181613cb6565b82525050565b6137b081613cc0565b82525050565b60006020820190506137cb6000830184613576565b92915050565b60006040820190506137e66000830185613576565b6137f36020830184613576565b9392505050565b600060408201905061380f6000830185613576565b61381c6020830184613798565b9392505050565b600060c0820190506138386000830189613576565b6138456020830188613798565b61385260408301876135f2565b61385f60608301866135f2565b61386c6080830185613576565b61387960a0830184613798565b979650505050505050565b600060208201905061389960008301846135e3565b92915050565b600060208201905081810360008301526138b98184613601565b905092915050565b600060208201905081810360008301526138da8161363a565b9050919050565b600060208201905081810360008301526138fa8161365d565b9050919050565b6000602082019050818103600083015261391a81613680565b9050919050565b6000602082019050818103600083015261393a816136a3565b9050919050565b6000602082019050818103600083015261395a816136c6565b9050919050565b6000602082019050818103600083015261397a816136e9565b9050919050565b6000602082019050818103600083015261399a8161370c565b9050919050565b600060208201905081810360008301526139ba8161372f565b9050919050565b600060208201905081810360008301526139da81613752565b9050919050565b600060208201905081810360008301526139fa81613775565b9050919050565b6000602082019050613a166000830184613798565b92915050565b600060a082019050613a316000830188613798565b613a3e60208301876135f2565b8181036040830152613a508186613585565b9050613a5f6060830185613576565b613a6c6080830184613798565b9695505050505050565b6000602082019050613a8b60008301846137a7565b92915050565b6000613a9b613aac565b9050613aa78282613d12565b919050565b6000604051905090565b600067ffffffffffffffff821115613ad157613ad0613dea565b5b602082029050602081019050919050565b600067ffffffffffffffff821115613afd57613afc613dea565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613b6e82613cb6565b9150613b7983613cb6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613bae57613bad613d8c565b5b828201905092915050565b6000613bc482613cb6565b9150613bcf83613cb6565b925082613bdf57613bde613dbb565b5b828204905092915050565b6000613bf582613cb6565b9150613c0083613cb6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613c3957613c38613d8c565b5b828202905092915050565b6000613c4f82613cb6565b9150613c5a83613cb6565b925082821015613c6d57613c6c613d8c565b5b828203905092915050565b6000613c8382613c96565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613cd882613cb6565b9050919050565b60005b83811015613cfd578082015181840152602081019050613ce2565b83811115613d0c576000848401525b50505050565b613d1b82613e19565b810181811067ffffffffffffffff82111715613d3a57613d39613dea565b5b80604052505050565b6000613d4e82613cb6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613d8157613d80613d8c565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6140d781613c78565b81146140e257600080fd5b50565b6140ee81613c8a565b81146140f957600080fd5b50565b61410581613cb6565b811461411057600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a7443355c03f4e7ada1c9828a4fe28195438f12924e07bb85473502ba6e76fd964736f6c63430008040033

Deployed Bytecode Sourcemap

4508:11945:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12662:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6488:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7340:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6765:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11829:322;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12793:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7509:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11729:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6674:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12163:243;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14350:195;;;;;;;;;;;;;:::i;:::-;;7830:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12418:232;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6868:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3587:148;;;;;;;;;;;;;:::i;:::-;;3373:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6579:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7014:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10797:821;;;;;;;;;;;;;:::i;:::-;;12919:349;;;;;;;;;;;;;:::i;:::-;;7189:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10680:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14557:194;;;;;;;;;;;;;:::i;:::-;;11630:87;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12662:119;12730:7;3510:12;:10;:12::i;:::-;3500:22;;:6;;;;;;;;;;:22;;;3492:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12757:7:::1;:16;12765:7;12757:16;;;;;;;;;;;;;;;;12750:23;;12662:119:::0;;;:::o;6488:83::-;6525:13;6558:5;;;;;;;;;;;;;;;;;6551:12;;6488:83;:::o;7340:161::-;7415:4;7432:39;7441:12;:10;:12::i;:::-;7455:7;7464:6;7432:8;:39::i;:::-;7489:4;7482:11;;7340:161;;;;:::o;6765:95::-;6818:7;5095:24;6838:14;;6765:95;:::o;11829:322::-;3510:12;:10;:12::i;:::-;3500:22;;:6;;;;;;;;;;:22;;;3492:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11937:6:::1;11932:212;11953:9;:16;11949:1;:20;11932:212;;;11991:11;12008:9;12018:1;12008:12;;;;;;;;;;;;;;;;;;;;;;11991:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12073:5;12060:7;12068:1;12060:10;;;;;;;;;;;;;;;;;;;;;;:18;;;;:::i;:::-;12036:7;:21;12044:9;12054:1;12044:12;;;;;;;;;;;;;;;;;;;;;;12036:21;;;;;;;;;;;;;;;:42;;;;12128:4;12093:18;:32;12112:9;12122:1;12112:12;;;;;;;;;;;;;;;;;;;;;;12093:32;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;11971:3;;;;;:::i;:::-;;;;11932:212;;;;11829:322:::0;;:::o;12793:114::-;3510:12;:10;:12::i;:::-;3500:22;;:6;;;;;;;;;;:22;;;3492:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12893:6:::1;12874:7;:16;12882:7;12874:16;;;;;;;;;;;;;;;:25;;;;12793:114:::0;;:::o;7509:313::-;7607:4;7624:36;7634:6;7642:9;7653:6;7624:9;:36::i;:::-;7671:121;7680:6;7688:12;:10;:12::i;:::-;7702:89;7740:6;7702:89;;;;;;;;;;;;;;;;;:11;:19;7714:6;7702:19;;;;;;;;;;;;;;;:33;7722:12;:10;:12::i;:::-;7702:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7671:8;:121::i;:::-;7810:4;7803:11;;7509:313;;;;;:::o;11729:88::-;3510:12;:10;:12::i;:::-;3500:22;;:6;;;;;;;;;;:22;;;3492:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11804:5:::1;11789:4;:12;11794:6;11789:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;11729:88:::0;:::o;6674:83::-;6715:5;5516:1;6733:16;;6674:83;:::o;12163:243::-;3510:12;:10;:12::i;:::-;3500:22;;:6;;;;;;;;;;:22;;;3492:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12248:6:::1;12243:156;12264:9;:16;12260:1;:20;12243:156;;;12319:9;12329:1;12319:12;;;;;;;;;;;;;;;;;;;;;;12302:11;12314:1;12302:14;;;;;;;;;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;12383:4;12346:18;:34;12365:11;12377:1;12365:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12346:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;12282:3;;;;;:::i;:::-;;;;12243:156;;;;12163:243:::0;:::o;14350:195::-;14416:15;;;;;;;;;;;14400:31;;:12;:10;:12::i;:::-;:31;;;14392:40;;;;;;14443:23;14469:24;14487:4;14469:9;:24::i;:::-;14443:50;;14504:33;14521:15;14504:16;:33::i;:::-;14350:195;:::o;7830:103::-;3510:12;:10;:12::i;:::-;3500:22;;:6;;;;;;;;;;:22;;;3492:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7920:5:::1;7902:15;;:23;;;;;;;;;;;;;;;;;;7830:103:::0;:::o;12418:232::-;12476:7;3510:12;:10;:12::i;:::-;3500:22;;:6;;;;;;;;;;:22;;;3492:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12495:11:::1;12525:6:::0;12521:101:::1;12541:11;:18;;;;12537:1;:22;12521:101;;;12587:7;:23;12595:11;12607:1;12595:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12587:23;;;;;;;;;;;;;;;;12580:30;;;;;:::i;:::-;;;12561:3;;;;;:::i;:::-;;;;12521:101;;;;12639:3;12632:10;;;12418:232:::0;:::o;6868:138::-;6934:7;6961:37;6981:7;:16;6989:7;6981:16;;;;;;;;;;;;;;;;6961:19;:37::i;:::-;6954:44;;6868:138;;;:::o;3587:148::-;3510:12;:10;:12::i;:::-;3500:22;;:6;;;;;;;;;;:22;;;3492:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3694:1:::1;3657:40;;3678:6;::::0;::::1;;;;;;;;3657:40;;;;;;;;;;;;3725:1;3708:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3587:148::o:0;3373:79::-;3411:7;3438:6;;;;;;;;;;;3431:13;;3373:79;:::o;6579:87::-;6618:13;6651:7;;;;;;;;;;;;;;;;;6644:14;;6579:87;:::o;7014:167::-;7092:4;7109:42;7119:12;:10;:12::i;:::-;7133:9;7144:6;7109:9;:42::i;:::-;7169:4;7162:11;;7014:167;;;;:::o;10797:821::-;3510:12;:10;:12::i;:::-;3500:22;;:6;;;;;;;;;;:22;;;3492:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10861:11:::1;;;;;;;;;;;10860:12;10852:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10910:35;10967:42;10910:100;;11039:16;11021:15;;:34;;;;;;;;;;;;;;;;;;11066:58;11083:4;11098:15;;;;;;;;;;;5095:24;11066:8;:58::i;:::-;11169:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11151:56;;;11216:4;11223:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11151:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11135:13;;:112;;;;;;;;;;;;;;;;;;11258:15;;;;;;;;;;;:31;;;11297:21;11328:4;11334:24;11352:4;11334:9;:24::i;:::-;11359:1;11361::::0;11363:7:::1;:5;:7::i;:::-;11371:15;11258:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11412:4;11398:11;;:18;;;;;;;;;;;;;;;;;;11445:4;11427:15;;:22;;;;;;;;;;;;;;;;;;11475:24;11460:12;:39;;;;11524:4;11510:11;;:18;;;;;;;;;;;;;;;;;;11546:13;;;;;;;;;;;11539:29;;;11577:15;;;;;;;;;;;11595:14;11539:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3570:1;10797:821::o:0;12919:349::-;3510:12;:10;:12::i;:::-;3500:22;;:6;;;;;;;;;;:22;;;3492:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12982:1:::1;12970:9;:13;;;;13006:1;12994:9;:13;;;;13022:6;13018:195;13038:11;:18;;;;13034:1;:22;13018:195;;;13077:67;13092:10;13104:11;13116:1;13104:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13120:7;:23;13128:11;13140:1;13128:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13120:23;;;;;;;;;;;;;;;;13077:14;:67::i;:::-;13196:5;13159:18;:34;13178:11;13190:1;13178:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13159:34;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;13058:3;;;;;:::i;:::-;;;;13018:195;;;;13235:1;13223:9;:13;;;;13259:1;13247:9;:13;;;;12919:349::o:0;7189:143::-;7270:7;7297:11;:18;7309:5;7297:18;;;;;;;;;;;;;;;:27;7316:7;7297:27;;;;;;;;;;;;;;;;7290:34;;7189:143;;;;:::o;10680:105::-;3510:12;:10;:12::i;:::-;3500:22;;:6;;;;;;;;;;:22;;;3492:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10772:5:::1;10763:6;:14;;;;:::i;:::-;10748:12;:29;;;;10680:105:::0;:::o;14557:194::-;14623:15;;;;;;;;;;;14607:31;;:12;:10;:12::i;:::-;:31;;;14599:40;;;;;;14650:26;14679:21;14650:50;;14711:32;14724:18;14711:12;:32::i;:::-;14557:194;:::o;11630:87::-;3510:12;:10;:12::i;:::-;3500:22;;:6;;;;;;;;;;:22;;;3492:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11705:4:::1;11690;:12;11695:6;11690:12;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;11630:87:::0;:::o;1091:98::-;1144:7;1171:10;1164:17;;1091:98;:::o;8203:335::-;8313:1;8296:19;;:5;:19;;;;8288:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8394:1;8375:21;;:7;:21;;;;8367:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8476:6;8446:11;:18;8458:5;8446:18;;;;;;;;;;;;;;;:27;8465:7;8446:27;;;;;;;;;;;;;;;:36;;;;8514:7;8498:32;;8507:5;8498:32;;;8523:6;8498:32;;;;;;:::i;:::-;;;;;;;;8203:335;;;:::o;8546:1461::-;8650:1;8634:18;;:4;:18;;;;8626:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8727:1;8713:16;;:2;:16;;;;8705:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8797:1;8788:6;:10;8780:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8867:1;8855:9;:13;;;;8891:1;8879:9;:13;;;;8915:7;:5;:7::i;:::-;8907:15;;:4;:15;;;;:32;;;;;8932:7;:5;:7::i;:::-;8926:13;;:2;:13;;;;8907:32;8903:1052;;;8965:4;:10;8970:4;8965:10;;;;;;;;;;;;;;;;;;;;;;;;;8964:11;:24;;;;;8980:4;:8;8985:2;8980:8;;;;;;;;;;;;;;;;;;;;;;;;;8979:9;8964:24;8956:33;;;;;;9016:13;;;;;;;;;;;9008:21;;:4;:21;;;:55;;;;;9047:15;;;;;;;;;;;9033:30;;:2;:30;;;;9008:55;:83;;;;;9069:18;:22;9088:2;9069:22;;;;;;;;;;;;;;;;;;;;;;;;;9067:24;9008:83;:102;;;;;9095:15;;;;;;;;;;;9008:102;9004:325;;;9178:12;;9168:6;:22;;9160:31;;;;;;9233:15;9218:8;:12;9227:2;9218:12;;;;;;;;;;;;;;;;:30;9210:39;;;;;;9302:10;9283:15;:30;;;;:::i;:::-;9268:8;:12;9277:2;9268:12;;;;;;;;;;;;;;;:45;;;;9004:325;9367:13;;;;;;;;;;;9361:19;;:2;:19;;;:55;;;;;9400:15;;;;;;;;;;;9384:32;;:4;:32;;;;9361:55;:85;;;;;9422:18;:24;9441:4;9422:24;;;;;;;;;;;;;;;;;;;;;;;;;9420:26;9361:85;9357:171;;;9479:1;9467:9;:13;;;;9511:1;9499:9;:13;;;;9357:171;9556:28;9587:24;9605:4;9587:9;:24::i;:::-;9556:55;;9631:6;;;;;;;;;;;9630:7;:32;;;;;9649:13;;;;;;;;;;;9641:21;;:4;:21;;;;9630:32;:47;;;;;9666:11;;;;;;;;;;;9630:47;9626:318;;;9698:38;9715:20;9698:16;:38::i;:::-;9755:26;9784:21;9755:50;;9848:1;9827:18;:22;9824:105;;;9874:35;9887:21;9874:12;:35::i;:::-;9824:105;9626:318;;8903:1052;;9969:30;9984:4;9989:2;9992:6;9969:14;:30::i;:::-;8546:1461;;;:::o;2228:190::-;2314:7;2347:1;2342;:6;;2350:12;2334:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2374:9;2390:1;2386;:5;;;;:::i;:::-;2374:17;;2409:1;2402:8;;;2228:190;;;;;:::o;10015:483::-;5898:4;5889:6;;:13;;;;;;;;;;;;;;;;;;10093:21:::1;10131:1;10117:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10093:40;;10162:4;10144;10149:1;10144:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;10188:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10178:4;10183:1;10178:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;10221:62;10238:4;10253:15;;;;;;;;;;;10271:11;10221:8;:62::i;:::-;10294:15;;;;;;;;;;;:66;;;10375:11;10401:1;10417:4;10444;10464:15;10294:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5913:1;5934:5:::0;5925:6;;:14;;;;;;;;;;;;;;;;;;10015:483;:::o;7941:254::-;8008:7;8047;;8036;:18;;8028:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;8112:19;8135:10;:8;:10::i;:::-;8112:33;;8163:24;8175:11;8163:7;:11;;:24;;;;:::i;:::-;8156:31;;;7941:254;;;:::o;13284:146::-;13378:44;13396:6;13404:9;13415:6;13378:17;:44::i;:::-;13284:146;;;:::o;10514:154::-;10571:15;;;;;;;;;;;:24;;:39;10596:13;10607:1;10596:6;:10;;:13;;;;:::i;:::-;10571:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10621:15;;;;;;;;;;;:24;;:39;10646:13;10657:1;10646:6;:10;;:13;;;;:::i;:::-;10621:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10514:154;:::o;16017:163::-;16058:7;16079:15;16096;16115:19;:17;:19::i;:::-;16078:56;;;;16152:20;16164:7;16152;:11;;:20;;;;:::i;:::-;16145:27;;;;16017:163;:::o;2680:132::-;2738:7;2765:39;2769:1;2772;2765:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2758:46;;2680:132;;;;:::o;13438:488::-;13537:15;13554:23;13579:12;13593:23;13618:12;13632:13;13649:19;13660:7;13649:10;:19::i;:::-;13536:132;;;;;;;;;;;;13697:28;13717:7;13697;:15;13705:6;13697:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13679:7;:15;13687:6;13679:15;;;;;;;;;;;;;;;:46;;;;13757:39;13780:15;13757:7;:18;13765:9;13757:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13736:7;:18;13744:9;13736:18;;;;;;;;;;;;;;;:60;;;;13808:16;13818:5;13808:9;:16::i;:::-;13835:23;13847:4;13853;13835:11;:23::i;:::-;13891:9;13874:44;;13883:6;13874:44;;;13902:15;13874:44;;;;;;:::i;:::-;;;;;;;;13438:488;;;;;;;;;:::o;16188:262::-;16238:7;16247;16267:15;16285:7;;16267:25;;16303:15;5095:24;16303:25;;16359:20;5095:24;16359:7;;:11;;:20;;;;:::i;:::-;16349:7;:30;16345:61;;;16389:7;;5095:24;16381:25;;;;;;;;16345:61;16425:7;16434;16417:25;;;;;;16188:262;;;:::o;2820:189::-;2906:7;2938:1;2934;:5;2941:12;2926:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2965:9;2981:1;2977;:5;;;;:::i;:::-;2965:17;;3000:1;2993:8;;;2820:189;;;;;:::o;14765:471::-;14824:7;14833;14842;14851;14860;14869;14890:23;14915:12;14929:13;14946:42;14958:7;14967:9;;14978;;14946:11;:42::i;:::-;14889:99;;;;;;14999:19;15022:10;:8;:10::i;:::-;14999:33;;15044:15;15061:23;15086:12;15102:46;15114:7;15123:4;15129:5;15136:11;15102;:46::i;:::-;15043:105;;;;;;15167:7;15176:15;15193:4;15199:15;15216:4;15222:5;15159:69;;;;;;;;;;;;;;;;;;;14765:471;;;;;;;:::o;2084:136::-;2142:7;2169:43;2173:1;2176;2169:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2162:50;;2084:136;;;;:::o;1897:179::-;1955:7;1975:9;1991:1;1987;:5;;;;:::i;:::-;1975:17;;2016:1;2011;:6;;2003:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2067:1;2060:8;;;1897:179;;;;:::o;13934:212::-;13987:19;14010:10;:8;:10::i;:::-;13987:33;;14031:13;14047:22;14057:11;14047:5;:9;;:22;;;;:::i;:::-;14031:38;;14105:33;14132:5;14105:7;:22;14121:4;14105:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14080:7;:22;14096:4;14080:22;;;;;;;;;;;;;;;:58;;;;13934:212;;;:::o;14154:147::-;14232:17;14244:4;14232:7;;:11;;:17;;;;:::i;:::-;14222:7;:27;;;;14273:20;14288:4;14273:10;;:14;;:20;;;;:::i;:::-;14260:10;:33;;;;14154:147;;:::o;15244:351::-;15337:7;15346;15355;15375:12;15390:28;15414:3;15390:19;15402:6;15390:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15375:43;;15429:13;15445:29;15470:3;15445:20;15457:7;15445;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;15429:45;;15485:23;15511:28;15533:5;15511:17;15523:4;15511:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15485:54;;15558:15;15575:4;15581:5;15550:37;;;;;;;;;15244:351;;;;;;;:::o;15603:409::-;15713:7;15722;15731;15751:15;15769:24;15781:11;15769:7;:11;;:24;;;;:::i;:::-;15751:42;;15804:12;15819:21;15828:11;15819:4;:8;;:21;;;;:::i;:::-;15804:36;;15851:13;15867:22;15877:11;15867:5;:9;;:22;;;;:::i;:::-;15851:38;;15900:23;15926:28;15948:5;15926:17;15938:4;15926:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15900:54;;15973:7;15982:15;15999:4;15965:39;;;;;;;;;;15603:409;;;;;;;;:::o;2426:246::-;2484:7;2513:1;2508;:6;2504:47;;;2538:1;2531:8;;;;2504:47;2561:9;2577:1;2573;:5;;;;:::i;:::-;2561:17;;2606:1;2601;2597;:5;;;;:::i;:::-;:10;2589:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2663:1;2656:8;;;2426:246;;;;;:::o;24:655: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;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;702:655::-;798:5;823:81;839:64;896:6;839:64;:::i;:::-;823:81;:::i;:::-;814:90;;924:5;953:6;946:5;939:21;987:4;980:5;976:16;969:23;;1013:6;1063:3;1055:4;1047:6;1043:17;1038:3;1034:27;1031:36;1028:2;;;1092:1;1089;1082:12;1028:2;1128:1;1113:238;1138:6;1135:1;1132:13;1113:238;;;1206:3;1235:37;1268:3;1256:10;1235:37;:::i;:::-;1230:3;1223:50;1302:4;1297:3;1293:14;1286:21;;1336:4;1331:3;1327:14;1320:21;;1173:178;1160:1;1157;1153:9;1148:14;;1113:238;;;1117:14;804:553;;;;;;;:::o;1363:139::-;1409:5;1447:6;1434:20;1425:29;;1463:33;1490:5;1463:33;:::i;:::-;1415:87;;;;:::o;1508:143::-;1565:5;1596:6;1590:13;1581:22;;1612:33;1639:5;1612:33;:::i;:::-;1571:80;;;;:::o;1674:303::-;1745:5;1794:3;1787:4;1779:6;1775:17;1771:27;1761:2;;1812:1;1809;1802:12;1761:2;1852:6;1839:20;1877:94;1967:3;1959:6;1952:4;1944:6;1940:17;1877:94;:::i;:::-;1868:103;;1751:226;;;;;:::o;2000:303::-;2071:5;2120:3;2113:4;2105:6;2101:17;2097:27;2087:2;;2138:1;2135;2128:12;2087:2;2178:6;2165:20;2203:94;2293:3;2285:6;2278:4;2270:6;2266:17;2203:94;:::i;:::-;2194:103;;2077:226;;;;;:::o;2309:133::-;2352:5;2390:6;2377:20;2368:29;;2406:30;2430:5;2406:30;:::i;:::-;2358:84;;;;:::o;2448:137::-;2502:5;2533:6;2527:13;2518:22;;2549:30;2573:5;2549:30;:::i;:::-;2508:77;;;;:::o;2591:139::-;2637:5;2675:6;2662:20;2653:29;;2691:33;2718:5;2691:33;:::i;:::-;2643:87;;;;:::o;2736:143::-;2793:5;2824:6;2818:13;2809:22;;2840:33;2867:5;2840:33;:::i;:::-;2799:80;;;;:::o;2885:262::-;2944:6;2993:2;2981:9;2972:7;2968:23;2964:32;2961:2;;;3009:1;3006;2999:12;2961:2;3052:1;3077:53;3122:7;3113:6;3102:9;3098:22;3077:53;:::i;:::-;3067:63;;3023:117;2951:196;;;;:::o;3153:284::-;3223:6;3272:2;3260:9;3251:7;3247:23;3243:32;3240:2;;;3288:1;3285;3278:12;3240:2;3331:1;3356:64;3412:7;3403:6;3392:9;3388:22;3356:64;:::i;:::-;3346:74;;3302:128;3230:207;;;;:::o;3443:407::-;3511:6;3519;3568:2;3556:9;3547:7;3543:23;3539:32;3536:2;;;3584:1;3581;3574:12;3536:2;3627:1;3652:53;3697:7;3688:6;3677:9;3673:22;3652:53;:::i;:::-;3642:63;;3598:117;3754:2;3780:53;3825:7;3816:6;3805:9;3801:22;3780:53;:::i;:::-;3770:63;;3725:118;3526:324;;;;;:::o;3856:552::-;3933:6;3941;3949;3998:2;3986:9;3977:7;3973:23;3969:32;3966:2;;;4014:1;4011;4004:12;3966:2;4057:1;4082:53;4127:7;4118:6;4107:9;4103:22;4082:53;:::i;:::-;4072:63;;4028:117;4184:2;4210:53;4255:7;4246:6;4235:9;4231:22;4210:53;:::i;:::-;4200:63;;4155:118;4312:2;4338:53;4383:7;4374:6;4363:9;4359:22;4338:53;:::i;:::-;4328:63;;4283:118;3956:452;;;;;:::o;4414:407::-;4482:6;4490;4539:2;4527:9;4518:7;4514:23;4510:32;4507:2;;;4555:1;4552;4545:12;4507:2;4598:1;4623:53;4668:7;4659:6;4648:9;4644:22;4623:53;:::i;:::-;4613:63;;4569:117;4725:2;4751:53;4796:7;4787:6;4776:9;4772:22;4751:53;:::i;:::-;4741:63;;4696:118;4497:324;;;;;:::o;4827:405::-;4911:6;4960:2;4948:9;4939:7;4935:23;4931:32;4928:2;;;4976:1;4973;4966:12;4928:2;5047:1;5036:9;5032:17;5019:31;5077:18;5069:6;5066:30;5063:2;;;5109:1;5106;5099:12;5063:2;5137:78;5207:7;5198:6;5187:9;5183:22;5137:78;:::i;:::-;5127:88;;4990:235;4918:314;;;;:::o;5238:693::-;5356:6;5364;5413:2;5401:9;5392:7;5388:23;5384:32;5381:2;;;5429:1;5426;5419:12;5381:2;5500:1;5489:9;5485:17;5472:31;5530:18;5522:6;5519:30;5516:2;;;5562:1;5559;5552:12;5516:2;5590:78;5660:7;5651:6;5640:9;5636:22;5590:78;:::i;:::-;5580:88;;5443:235;5745:2;5734:9;5730:18;5717:32;5776:18;5768:6;5765:30;5762:2;;;5808:1;5805;5798:12;5762:2;5836:78;5906:7;5897:6;5886:9;5882:22;5836:78;:::i;:::-;5826:88;;5688:236;5371:560;;;;;:::o;5937:256::-;5993:6;6042:2;6030:9;6021:7;6017:23;6013:32;6010:2;;;6058:1;6055;6048:12;6010:2;6101:1;6126:50;6168:7;6159:6;6148:9;6144:22;6126:50;:::i;:::-;6116:60;;6072:114;6000:193;;;;:::o;6199:278::-;6266:6;6315:2;6303:9;6294:7;6290:23;6286:32;6283:2;;;6331:1;6328;6321:12;6283:2;6374:1;6399:61;6452:7;6443:6;6432:9;6428:22;6399:61;:::i;:::-;6389:71;;6345:125;6273:204;;;;:::o;6483:262::-;6542:6;6591:2;6579:9;6570:7;6566:23;6562:32;6559:2;;;6607:1;6604;6597:12;6559:2;6650:1;6675:53;6720:7;6711:6;6700:9;6696:22;6675:53;:::i;:::-;6665:63;;6621:117;6549:196;;;;:::o;6751:596::-;6839:6;6847;6855;6904:2;6892:9;6883:7;6879:23;6875:32;6872:2;;;6920:1;6917;6910:12;6872:2;6963:1;6988:64;7044:7;7035:6;7024:9;7020:22;6988:64;:::i;:::-;6978:74;;6934:128;7101:2;7127:64;7183:7;7174:6;7163:9;7159:22;7127:64;:::i;:::-;7117:74;;7072:129;7240:2;7266:64;7322:7;7313:6;7302:9;7298:22;7266:64;:::i;:::-;7256:74;;7211:129;6862:485;;;;;:::o;7353:179::-;7422:10;7443:46;7485:3;7477:6;7443:46;:::i;:::-;7521:4;7516:3;7512:14;7498:28;;7433:99;;;;:::o;7538:108::-;7615:24;7633:5;7615:24;:::i;:::-;7610:3;7603:37;7593:53;;:::o;7652:118::-;7739:24;7757:5;7739:24;:::i;:::-;7734:3;7727:37;7717:53;;:::o;7806:732::-;7925:3;7954:54;8002:5;7954:54;:::i;:::-;8024:86;8103:6;8098:3;8024:86;:::i;:::-;8017:93;;8134:56;8184:5;8134:56;:::i;:::-;8213:7;8244:1;8229:284;8254:6;8251:1;8248:13;8229:284;;;8330:6;8324:13;8357:63;8416:3;8401:13;8357:63;:::i;:::-;8350:70;;8443:60;8496:6;8443:60;:::i;:::-;8433:70;;8289:224;8276:1;8273;8269:9;8264:14;;8229:284;;;8233:14;8529:3;8522:10;;7930:608;;;;;;;:::o;8544:109::-;8625:21;8640:5;8625:21;:::i;:::-;8620:3;8613:34;8603:50;;:::o;8659:147::-;8754:45;8793:5;8754:45;:::i;:::-;8749:3;8742:58;8732:74;;:::o;8812:364::-;8900:3;8928:39;8961:5;8928:39;:::i;:::-;8983:71;9047:6;9042:3;8983:71;:::i;:::-;8976:78;;9063:52;9108:6;9103:3;9096:4;9089:5;9085:16;9063:52;:::i;:::-;9140:29;9162:6;9140:29;:::i;:::-;9135:3;9131:39;9124:46;;8904:272;;;;;:::o;9182:366::-;9324:3;9345:67;9409:2;9404:3;9345:67;:::i;:::-;9338:74;;9421:93;9510:3;9421:93;:::i;:::-;9539:2;9534:3;9530:12;9523:19;;9328:220;;;:::o;9554:366::-;9696:3;9717:67;9781:2;9776:3;9717:67;:::i;:::-;9710:74;;9793:93;9882:3;9793:93;:::i;:::-;9911:2;9906:3;9902:12;9895:19;;9700:220;;;:::o;9926:366::-;10068:3;10089:67;10153:2;10148:3;10089:67;:::i;:::-;10082:74;;10165:93;10254:3;10165:93;:::i;:::-;10283:2;10278:3;10274:12;10267:19;;10072:220;;;:::o;10298:366::-;10440:3;10461:67;10525:2;10520:3;10461:67;:::i;:::-;10454:74;;10537:93;10626:3;10537:93;:::i;:::-;10655:2;10650:3;10646:12;10639:19;;10444:220;;;:::o;10670:366::-;10812:3;10833:67;10897:2;10892:3;10833:67;:::i;:::-;10826:74;;10909:93;10998:3;10909:93;:::i;:::-;11027:2;11022:3;11018:12;11011:19;;10816:220;;;:::o;11042:366::-;11184:3;11205:67;11269:2;11264:3;11205:67;:::i;:::-;11198:74;;11281:93;11370:3;11281:93;:::i;:::-;11399:2;11394:3;11390:12;11383:19;;11188:220;;;:::o;11414:366::-;11556:3;11577:67;11641:2;11636:3;11577:67;:::i;:::-;11570:74;;11653:93;11742:3;11653:93;:::i;:::-;11771:2;11766:3;11762:12;11755:19;;11560:220;;;:::o;11786:366::-;11928:3;11949:67;12013:2;12008:3;11949:67;:::i;:::-;11942:74;;12025:93;12114:3;12025:93;:::i;:::-;12143:2;12138:3;12134:12;12127:19;;11932:220;;;:::o;12158:366::-;12300:3;12321:67;12385:2;12380:3;12321:67;:::i;:::-;12314:74;;12397:93;12486:3;12397:93;:::i;:::-;12515:2;12510:3;12506:12;12499:19;;12304:220;;;:::o;12530:366::-;12672:3;12693:67;12757:2;12752:3;12693:67;:::i;:::-;12686:74;;12769:93;12858:3;12769:93;:::i;:::-;12887:2;12882:3;12878:12;12871:19;;12676:220;;;:::o;12902:118::-;12989:24;13007:5;12989:24;:::i;:::-;12984:3;12977:37;12967:53;;:::o;13026:112::-;13109:22;13125:5;13109:22;:::i;:::-;13104:3;13097:35;13087:51;;:::o;13144:222::-;13237:4;13275:2;13264:9;13260:18;13252:26;;13288:71;13356:1;13345:9;13341:17;13332:6;13288:71;:::i;:::-;13242:124;;;;:::o;13372:332::-;13493:4;13531:2;13520:9;13516:18;13508:26;;13544:71;13612:1;13601:9;13597:17;13588:6;13544:71;:::i;:::-;13625:72;13693:2;13682:9;13678:18;13669:6;13625:72;:::i;:::-;13498:206;;;;;:::o;13710:332::-;13831:4;13869:2;13858:9;13854:18;13846:26;;13882:71;13950:1;13939:9;13935:17;13926:6;13882:71;:::i;:::-;13963:72;14031:2;14020:9;14016:18;14007:6;13963:72;:::i;:::-;13836:206;;;;;:::o;14048:807::-;14297:4;14335:3;14324:9;14320:19;14312:27;;14349:71;14417:1;14406:9;14402:17;14393:6;14349:71;:::i;:::-;14430:72;14498:2;14487:9;14483:18;14474:6;14430:72;:::i;:::-;14512:80;14588:2;14577:9;14573:18;14564:6;14512:80;:::i;:::-;14602;14678:2;14667:9;14663:18;14654:6;14602:80;:::i;:::-;14692:73;14760:3;14749:9;14745:19;14736:6;14692:73;:::i;:::-;14775;14843:3;14832:9;14828:19;14819:6;14775:73;:::i;:::-;14302:553;;;;;;;;;:::o;14861:210::-;14948:4;14986:2;14975:9;14971:18;14963:26;;14999:65;15061:1;15050:9;15046:17;15037:6;14999:65;:::i;:::-;14953:118;;;;:::o;15077:313::-;15190:4;15228:2;15217:9;15213:18;15205:26;;15277:9;15271:4;15267:20;15263:1;15252:9;15248:17;15241:47;15305:78;15378:4;15369:6;15305:78;:::i;:::-;15297:86;;15195:195;;;;:::o;15396:419::-;15562:4;15600:2;15589:9;15585:18;15577:26;;15649:9;15643:4;15639:20;15635:1;15624:9;15620:17;15613:47;15677:131;15803:4;15677:131;:::i;:::-;15669:139;;15567:248;;;:::o;15821:419::-;15987:4;16025:2;16014:9;16010:18;16002:26;;16074:9;16068:4;16064:20;16060:1;16049:9;16045:17;16038:47;16102:131;16228:4;16102:131;:::i;:::-;16094:139;;15992:248;;;:::o;16246:419::-;16412:4;16450:2;16439:9;16435:18;16427:26;;16499:9;16493:4;16489:20;16485:1;16474:9;16470:17;16463:47;16527:131;16653:4;16527:131;:::i;:::-;16519:139;;16417:248;;;:::o;16671:419::-;16837:4;16875:2;16864:9;16860:18;16852:26;;16924:9;16918:4;16914:20;16910:1;16899:9;16895:17;16888:47;16952:131;17078:4;16952:131;:::i;:::-;16944:139;;16842:248;;;:::o;17096:419::-;17262:4;17300:2;17289:9;17285:18;17277:26;;17349:9;17343:4;17339:20;17335:1;17324:9;17320:17;17313:47;17377:131;17503:4;17377:131;:::i;:::-;17369:139;;17267:248;;;:::o;17521:419::-;17687:4;17725:2;17714:9;17710:18;17702:26;;17774:9;17768:4;17764:20;17760:1;17749:9;17745:17;17738:47;17802:131;17928:4;17802:131;:::i;:::-;17794:139;;17692:248;;;:::o;17946:419::-;18112:4;18150:2;18139:9;18135:18;18127:26;;18199:9;18193:4;18189:20;18185:1;18174:9;18170:17;18163:47;18227:131;18353:4;18227:131;:::i;:::-;18219:139;;18117:248;;;:::o;18371:419::-;18537:4;18575:2;18564:9;18560:18;18552:26;;18624:9;18618:4;18614:20;18610:1;18599:9;18595:17;18588:47;18652:131;18778:4;18652:131;:::i;:::-;18644:139;;18542:248;;;:::o;18796:419::-;18962:4;19000:2;18989:9;18985:18;18977:26;;19049:9;19043:4;19039:20;19035:1;19024:9;19020:17;19013:47;19077:131;19203:4;19077:131;:::i;:::-;19069:139;;18967:248;;;:::o;19221:419::-;19387:4;19425:2;19414:9;19410:18;19402:26;;19474:9;19468:4;19464:20;19460:1;19449:9;19445:17;19438:47;19502:131;19628:4;19502:131;:::i;:::-;19494:139;;19392:248;;;:::o;19646:222::-;19739:4;19777:2;19766:9;19762:18;19754:26;;19790:71;19858:1;19847:9;19843:17;19834:6;19790:71;:::i;:::-;19744:124;;;;:::o;19874:831::-;20137:4;20175:3;20164:9;20160:19;20152:27;;20189:71;20257:1;20246:9;20242:17;20233:6;20189:71;:::i;:::-;20270:80;20346:2;20335:9;20331:18;20322:6;20270:80;:::i;:::-;20397:9;20391:4;20387:20;20382:2;20371:9;20367:18;20360:48;20425:108;20528:4;20519:6;20425:108;:::i;:::-;20417:116;;20543:72;20611:2;20600:9;20596:18;20587:6;20543:72;:::i;:::-;20625:73;20693:3;20682:9;20678:19;20669:6;20625:73;:::i;:::-;20142:563;;;;;;;;:::o;20711:214::-;20800:4;20838:2;20827:9;20823:18;20815:26;;20851:67;20915:1;20904:9;20900:17;20891:6;20851:67;:::i;:::-;20805:120;;;;:::o;20931:129::-;20965:6;20992:20;;:::i;:::-;20982:30;;21021:33;21049:4;21041:6;21021:33;:::i;:::-;20972:88;;;:::o;21066:75::-;21099:6;21132:2;21126:9;21116:19;;21106:35;:::o;21147:311::-;21224:4;21314:18;21306:6;21303:30;21300:2;;;21336:18;;:::i;:::-;21300:2;21386:4;21378:6;21374:17;21366:25;;21446:4;21440;21436:15;21428:23;;21229:229;;;:::o;21464:311::-;21541:4;21631:18;21623:6;21620:30;21617:2;;;21653:18;;:::i;:::-;21617:2;21703:4;21695:6;21691:17;21683:25;;21763:4;21757;21753:15;21745:23;;21546:229;;;:::o;21781:132::-;21848:4;21871:3;21863:11;;21901:4;21896:3;21892:14;21884:22;;21853:60;;;:::o;21919:114::-;21986:6;22020:5;22014:12;22004:22;;21993:40;;;:::o;22039:99::-;22091:6;22125:5;22119:12;22109:22;;22098:40;;;:::o;22144:113::-;22214:4;22246;22241:3;22237:14;22229:22;;22219:38;;;:::o;22263:184::-;22362:11;22396:6;22391:3;22384:19;22436:4;22431:3;22427:14;22412:29;;22374:73;;;;:::o;22453:169::-;22537:11;22571:6;22566:3;22559:19;22611:4;22606:3;22602:14;22587:29;;22549:73;;;;:::o;22628:305::-;22668:3;22687:20;22705:1;22687:20;:::i;:::-;22682:25;;22721:20;22739:1;22721:20;:::i;:::-;22716:25;;22875:1;22807:66;22803:74;22800:1;22797:81;22794:2;;;22881:18;;:::i;:::-;22794:2;22925:1;22922;22918:9;22911:16;;22672:261;;;;:::o;22939:185::-;22979:1;22996:20;23014:1;22996:20;:::i;:::-;22991:25;;23030:20;23048:1;23030:20;:::i;:::-;23025:25;;23069:1;23059:2;;23074:18;;:::i;:::-;23059:2;23116:1;23113;23109:9;23104:14;;22981:143;;;;:::o;23130:348::-;23170:7;23193:20;23211:1;23193:20;:::i;:::-;23188:25;;23227:20;23245:1;23227:20;:::i;:::-;23222:25;;23415:1;23347:66;23343:74;23340:1;23337:81;23332:1;23325:9;23318:17;23314:105;23311:2;;;23422:18;;:::i;:::-;23311:2;23470:1;23467;23463:9;23452:20;;23178:300;;;;:::o;23484:191::-;23524:4;23544:20;23562:1;23544:20;:::i;:::-;23539:25;;23578:20;23596:1;23578:20;:::i;:::-;23573:25;;23617:1;23614;23611:8;23608:2;;;23622:18;;:::i;:::-;23608:2;23667:1;23664;23660:9;23652:17;;23529:146;;;;:::o;23681:96::-;23718:7;23747:24;23765:5;23747:24;:::i;:::-;23736:35;;23726:51;;;:::o;23783:90::-;23817:7;23860:5;23853:13;23846:21;23835:32;;23825:48;;;:::o;23879:126::-;23916:7;23956:42;23949:5;23945:54;23934:65;;23924:81;;;:::o;24011:77::-;24048:7;24077:5;24066:16;;24056:32;;;:::o;24094:86::-;24129:7;24169:4;24162:5;24158:16;24147:27;;24137:43;;;:::o;24186:121::-;24244:9;24277:24;24295:5;24277:24;:::i;:::-;24264:37;;24254:53;;;:::o;24313:307::-;24381:1;24391:113;24405:6;24402:1;24399:13;24391:113;;;24490:1;24485:3;24481:11;24475:18;24471:1;24466:3;24462:11;24455:39;24427:2;24424:1;24420:10;24415:15;;24391:113;;;24522:6;24519:1;24516:13;24513:2;;;24602:1;24593:6;24588:3;24584:16;24577:27;24513:2;24362:258;;;;:::o;24626:281::-;24709:27;24731:4;24709:27;:::i;:::-;24701:6;24697:40;24839:6;24827:10;24824:22;24803:18;24791:10;24788:34;24785:62;24782:2;;;24850:18;;:::i;:::-;24782:2;24890:10;24886:2;24879:22;24669:238;;;:::o;24913:233::-;24952:3;24975:24;24993:5;24975:24;:::i;:::-;24966:33;;25021:66;25014:5;25011:77;25008:2;;;25091:18;;:::i;:::-;25008:2;25138:1;25131:5;25127:13;25120:20;;24956:190;;;:::o;25152:180::-;25200:77;25197:1;25190:88;25297:4;25294:1;25287:15;25321:4;25318:1;25311:15;25338:180;25386:77;25383:1;25376:88;25483:4;25480:1;25473:15;25507:4;25504:1;25497:15;25524:180;25572:77;25569:1;25562:88;25669:4;25666:1;25659:15;25693:4;25690:1;25683:15;25710:102;25751:6;25802:2;25798:7;25793:2;25786:5;25782:14;25778:28;25768:38;;25758:54;;;:::o;25818:222::-;25958:34;25954:1;25946:6;25942:14;25935:58;26027:5;26022:2;26014:6;26010:15;26003:30;25924:116;:::o;26046:229::-;26186:34;26182:1;26174:6;26170:14;26163:58;26255:12;26250:2;26242:6;26238:15;26231:37;26152:123;:::o;26281:221::-;26421:34;26417:1;26409:6;26405:14;26398:58;26490:4;26485:2;26477:6;26473:15;26466:29;26387:115;:::o;26508:177::-;26648:29;26644:1;26636:6;26632:14;26625:53;26614:71;:::o;26691:220::-;26831:34;26827:1;26819:6;26815:14;26808:58;26900:3;26895:2;26887:6;26883:15;26876:28;26797:114;:::o;26917:182::-;27057:34;27053:1;27045:6;27041:14;27034:58;27023:76;:::o;27105:228::-;27245:34;27241:1;27233:6;27229:14;27222:58;27314:11;27309:2;27301:6;27297:15;27290:36;27211:122;:::o;27339:224::-;27479:34;27475:1;27467:6;27463:14;27456:58;27548:7;27543:2;27535:6;27531:15;27524:32;27445:118;:::o;27569:223::-;27709:34;27705:1;27697:6;27693:14;27686:58;27778:6;27773:2;27765:6;27761:15;27754:31;27675:117;:::o;27798:173::-;27938:25;27934:1;27926:6;27922:14;27915:49;27904:67;:::o;27977:122::-;28050:24;28068:5;28050:24;:::i;:::-;28043:5;28040:35;28030:2;;28089:1;28086;28079:12;28030:2;28020:79;:::o;28105:116::-;28175:21;28190:5;28175:21;:::i;:::-;28168:5;28165:32;28155:2;;28211:1;28208;28201:12;28155:2;28145:76;:::o;28227:122::-;28300:24;28318:5;28300:24;:::i;:::-;28293:5;28290:35;28280:2;;28339:1;28336;28329:12;28280:2;28270:79;:::o

Swarm Source

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