ETH Price: $2,533.80 (+3.07%)

Token

HELL FIRE (iFRIT)
 

Overview

Max Total Supply

1,000,000 iFRIT

Holders

51

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.1 iFRIT

Value
$0.00
0x39b18cda1ff06196e6c688cf5ec16521b3bfa54e
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:
TherealHELLFIRESmartContract

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 2022-07-29
*/

// SPDX-License-Identifier: NOLICENSE

/**
Project Name: Hell Fire
Project Ticker: iFRIT
Toke Supply: 1 MILLION
Token Distribution: 100% total supply is for Liquidity.
Buy and Sell Tax: 5% Buy tax / 5% Sell tax.
Tokenomics: 3% AutoBurn, 1% AutoLiquidity and 1% Marketing

Project Description: HELL FIRE IS THE NEXT LEVEL BREED OF PYRO AND ARSON IN CRYPTO SPACE.
SAFE AND SECURED: CA RENOUNCED AND TOKEN LIQUIDITY LOCKED via Team.Finance

Official Website: https://ifriterc20.com/
Official Telegram Account: https://t.me/+GAEgdMjGYeg3ZGRl
Official Twitter Account: https://twitter.com/HELLFIREIFRITT
*/
pragma solidity ^0.8.4;

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

}

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _setOwner(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB)  external view 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 TherealHELLFIRESmartContract is Context, IERC20, Ownable {

    using SafeMath for uint256;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;

    string private constant _name = "HELL FIRE";
    string private constant _symbol = "iFRIT";
    uint8 private constant _decimals = 9;

    uint256 public buyAutoBurnFee = 300;
    uint256 public buyAutoLiquidityFee = 200;
    uint256 public buyMarketingFee = 100;
    uint256 public totalBuyFees = buyAutoBurnFee + buyAutoLiquidityFee + buyMarketingFee;

    uint256 public sellAutoBurnFee = 300;
    uint256 public sellAutoLiquidityFee = 200;
    uint256 public sellMarketingFee = 100;
    uint256 public totalSellFees = sellAutoBurnFee + sellAutoLiquidityFee + sellMarketingFee;

    uint256 public tokensForAutoBurn;
    uint256 public tokensForAutoLiquidity;
    uint256 public tokensForMarketing;
    uint16 public masterTaxDivisor = 10000;

    address public constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address public pairAddress;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private constant _tTotal = 1000000 * 10**9;
    uint256 private maxWalletAmount = 5001 * 10**9;
    uint256 private maxTxAmount = 5001 * 10**9;
    address payable private feeAddrWallet;

    event MaxWalletAmountUpdated(uint maxWalletAmount);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
  
    constructor () {
        require(!tradingOpen,"trading is already open");
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        pairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH());
        feeAddrWallet = payable(0xf4ab4d95D3E131b6FC93Ccc5d56F69632A4C36f6); 
        _tOwned[owner()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[feeAddrWallet] = true;
        uint256 _buyAutoBurnFee = 200;
        uint256 _buyAutoLiquidityFee = 100;
        uint256 _buyMarketingFee = 200;
        uint256 _sellAutoBurnFee = 0.00;
        uint256 _sellAutoLiquidityFee = 0.00;
        uint256 _sellMarketingFee = 1500;
        buyAutoBurnFee = _buyAutoBurnFee;
        buyAutoLiquidityFee = _buyAutoLiquidityFee;
        buyMarketingFee = _buyMarketingFee;
        totalBuyFees = buyAutoBurnFee + buyAutoLiquidityFee + buyMarketingFee;
        sellAutoBurnFee = _sellAutoBurnFee;
        sellAutoLiquidityFee = _sellAutoLiquidityFee;
        sellMarketingFee = _sellMarketingFee;
        totalSellFees = sellAutoBurnFee + sellAutoLiquidityFee + sellMarketingFee;
        swapEnabled = true;
        maxTxAmount = 5001 * 10**9;
        maxWalletAmount = 5001 * 10**9;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        emit Transfer(address(0), owner(), _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 _tOwned[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 virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);
        return true;
    }

    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");
        require(amount <= balanceOf(from),"You are trying to transfer more than your balance");    
        require(tradingOpen || _isExcludedFromFee[from] || _isExcludedFromFee[to], "Trading not enabled yet");

        if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to]) {
                require(amount <= maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= maxWalletAmount, "Exceeds the maxWalletSize.");
        }

        uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>0) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }

        _tokenTransfer(from, to, amount, !(_isExcludedFromFee[from] || _isExcludedFromFee[to]));
    }

    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 _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        _tOwned[sender] -= amount;
        uint256 amountReceived = (takeFee) ? takeTaxes(sender, recipient, amount) : amount;
        _tOwned[recipient] += amountReceived;
        emit Transfer(sender, recipient, amountReceived);
    }

    function takeTaxes(address from, address to, uint256 amount) internal returns (uint256) {
        if(from == uniswapV2Pair && totalBuyFees > 0 ) { 
            tokensForAutoBurn = amount * buyAutoBurnFee / masterTaxDivisor;
            tokensForAutoLiquidity = amount * buyAutoLiquidityFee / masterTaxDivisor;
            tokensForMarketing = amount * buyMarketingFee / masterTaxDivisor;    
        } else if (to == uniswapV2Pair  && totalSellFees > 0 ) { 
            tokensForAutoBurn = amount * sellAutoBurnFee / masterTaxDivisor;
            tokensForAutoLiquidity = amount * sellAutoLiquidityFee / masterTaxDivisor;
            tokensForMarketing = amount * sellMarketingFee / masterTaxDivisor;        
        }
        _tOwned[DEAD] += tokensForAutoBurn;
        emit Transfer(from, DEAD, tokensForAutoBurn);
        _tOwned[pairAddress] += tokensForAutoLiquidity;
        emit Transfer(from, pairAddress, tokensForAutoLiquidity);
        _tOwned[address(this)] += tokensForMarketing;
        emit Transfer(from, address(this), tokensForMarketing);
        uint256 feeAmount = tokensForAutoBurn + tokensForMarketing + tokensForAutoLiquidity;
        return amount - feeAmount;
    }

    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }

    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }

    function SetWalletandTxtAmount(uint256 _maxTxAmount, uint256 _maxWalletSize) external onlyOwner{
        maxTxAmount = _maxTxAmount * 10 **_decimals;
        maxWalletAmount = _maxWalletSize * 10 **_decimals;
    }

    function updateBuyFees(uint256 _buyAutoBurnFee, uint256 _buyAutoLiquidityFee, uint256 _buyMarketingFee) external onlyOwner {
        buyAutoBurnFee = _buyAutoBurnFee;
        buyAutoLiquidityFee = _buyAutoLiquidityFee;
        buyMarketingFee = _buyMarketingFee;
        totalBuyFees = buyAutoBurnFee + buyAutoLiquidityFee + buyMarketingFee;
        require(totalBuyFees <= 20, "Must keep fees at 20% or less");
    }
    
    function updateSellFees(uint256 _sellAutoBurnFee, uint256 _sellAutoLiquidityFee, uint256 _sellMarketingFee) external onlyOwner {
        sellAutoBurnFee = _sellAutoBurnFee;
        sellAutoLiquidityFee = _sellAutoLiquidityFee;
        sellMarketingFee = _sellMarketingFee;
        totalBuyFees = sellAutoBurnFee + sellAutoLiquidityFee + sellMarketingFee;
        require(totalBuyFees <= 20, "Must keep fees at 20% or less");
    }

    function sendETHToFee(uint256 amount) private {
        feeAddrWallet.transfer(amount);
    } 

    receive() external payable{
    }
}

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":"maxWalletAmount","type":"uint256"}],"name":"MaxWalletAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTxAmount","type":"uint256"},{"internalType":"uint256","name":"_maxWalletSize","type":"uint256"}],"name":"SetWalletandTxtAmount","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":"buyAutoBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyAutoLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"masterTaxDivisor","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellAutoBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellAutoLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tokensForAutoBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForAutoLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyAutoBurnFee","type":"uint256"},{"internalType":"uint256","name":"_buyAutoLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"_buyMarketingFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellAutoBurnFee","type":"uint256"},{"internalType":"uint256","name":"_sellAutoLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"_sellMarketingFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261012c60045560c8600555606460065560065460055460045462000029919062000c15565b62000035919062000c15565b60075561012c60085560c86009556064600a55600a546009546008546200005d919062000c15565b62000069919062000c15565b600b55612710600f60006101000a81548161ffff021916908361ffff1602179055506000601160156101000a81548160ff0219169083151502179055506000601160166101000a81548160ff02191690831515021790555065048c62d41a0060125565048c62d41a00601355348015620000e257600080fd5b5062000103620000f7620009a760201b60201c565b620009af60201b60201c565b601160149054906101000a900460ff161562000156576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200014d9062000bc5565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620001f757600080fd5b505afa1580156200020c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000232919062000aca565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200029557600080fd5b505afa158015620002aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d0919062000aca565b6040518363ffffffff1660e01b8152600401620002ef92919062000b6b565b602060405180830381600087803b1580156200030a57600080fd5b505af11580156200031f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000345919062000aca565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003cc57600080fd5b505afa158015620003e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000407919062000aca565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200046a57600080fd5b505afa1580156200047f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a5919062000aca565b6040518363ffffffff1660e01b8152600401620004c492919062000b6b565b60206040518083038186803b158015620004dd57600080fd5b505afa158015620004f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000518919062000aca565b600f60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f4ab4d95d3e131b6fc93ccc5d56f69632a4c36f6601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555066038d7ea4c6800060016000620005c962000a7360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360006200061d62000a7360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600060c89050600060649050600060c8905060008060006105dc905085600481905550846005819055508360068190555060065460055460045462000786919062000c15565b62000792919062000c15565b600781905550826008819055508160098190555080600a81905550600a54600954600854620007c2919062000c15565b620007ce919062000c15565b600b819055506001601160166101000a81548160ff02191690831515021790555065048c62d41a0060138190555065048c62d41a006012819055506001601160146101000a81548160ff021916908315150217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401620008c592919062000b98565b602060405180830381600087803b158015620008e057600080fd5b505af1158015620008f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200091b919062000af6565b506200092c62000a7360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef66038d7ea4c6800060405162000992919062000be7565b60405180910390a35050505050505062000d48565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008151905062000aad8162000d14565b92915050565b60008151905062000ac48162000d2e565b92915050565b60006020828403121562000add57600080fd5b600062000aed8482850162000a9c565b91505092915050565b60006020828403121562000b0957600080fd5b600062000b198482850162000ab3565b91505092915050565b62000b2d8162000c72565b82525050565b600062000b4260178362000c04565b915062000b4f8262000ceb565b602082019050919050565b62000b658162000cb2565b82525050565b600060408201905062000b82600083018562000b22565b62000b91602083018462000b22565b9392505050565b600060408201905062000baf600083018562000b22565b62000bbe602083018462000b5a565b9392505050565b6000602082019050818103600083015262000be08162000b33565b9050919050565b600060208201905062000bfe600083018462000b5a565b92915050565b600082825260208201905092915050565b600062000c228262000cb2565b915062000c2f8362000cb2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000c675762000c6662000cbc565b5b828201905092915050565b600062000c7f8262000c92565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b62000d1f8162000c72565b811462000d2b57600080fd5b50565b62000d398162000c86565b811462000d4557600080fd5b50565b6131078062000d586000396000f3fe6080604052600436106101dc5760003560e01c80638da5cb5b11610102578063c99f2fed11610095578063ea2f0b3711610064578063ea2f0b37146106b1578063ebece9c9146106da578063f239eab814610703578063f2fde38b1461072e576101e3565b8063c99f2fed146105f3578063cc70acee1461061e578063d0a3981414610649578063dd62ed3e14610674576101e3565b8063a8b08982116100d1578063a8b0898214610537578063a9059cbb14610562578063b9e937001461059f578063c17b5b8c146105ca576101e3565b80638da5cb5b1461048b57806392136913146104b657806395d89b41146104e15780639740a9461461050c576101e3565b8063313ce5671161017a57806370a082311161014957806370a08231146103e3578063715018a6146104205780637bce5a04146104375780638095d56414610462576101e3565b8063313ce56714610339578063437823ec1461036457806347afcbfe1461038d5780636cce46fc146103b8576101e3565b806318160ddd116101b657806318160ddd1461027b5780631d6167ac146102a65780631f3fed8f146102d157806323b872dd146102fc576101e3565b806303fd2a45146101e857806306fdde0314610213578063095ea7b31461023e576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610757565b60405161020a91906126bc565b60405180910390f35b34801561021f57600080fd5b5061022861075d565b60405161023591906126f2565b60405180910390f35b34801561024a57600080fd5b5061026560048036038101906102609190612316565b61079a565b60405161027291906126d7565b60405180910390f35b34801561028757600080fd5b506102906107b8565b60405161029d91906128cf565b60405180910390f35b3480156102b257600080fd5b506102bb6107c7565b6040516102c891906128b4565b60405180910390f35b3480156102dd57600080fd5b506102e66107db565b6040516102f391906128cf565b60405180910390f35b34801561030857600080fd5b50610323600480360381019061031e91906122c7565b6107e1565b60405161033091906126d7565b60405180910390f35b34801561034557600080fd5b5061034e6108e2565b60405161035b9190612944565b60405180910390f35b34801561037057600080fd5b5061038b60048036038101906103869190612239565b6108eb565b005b34801561039957600080fd5b506103a26109c2565b6040516103af91906128cf565b60405180910390f35b3480156103c457600080fd5b506103cd6109c8565b6040516103da91906128cf565b60405180910390f35b3480156103ef57600080fd5b5061040a60048036038101906104059190612239565b6109ce565b60405161041791906128cf565b60405180910390f35b34801561042c57600080fd5b50610435610a17565b005b34801561044357600080fd5b5061044c610a9f565b60405161045991906128cf565b60405180910390f35b34801561046e57600080fd5b506104896004803603810190610484919061238e565b610aa5565b005b34801561049757600080fd5b506104a0610ba4565b6040516104ad91906126bc565b60405180910390f35b3480156104c257600080fd5b506104cb610bcd565b6040516104d891906128cf565b60405180910390f35b3480156104ed57600080fd5b506104f6610bd3565b60405161050391906126f2565b60405180910390f35b34801561051857600080fd5b50610521610c10565b60405161052e91906128cf565b60405180910390f35b34801561054357600080fd5b5061054c610c16565b60405161055991906126bc565b60405180910390f35b34801561056e57600080fd5b5061058960048036038101906105849190612316565b610c3c565b60405161059691906126d7565b60405180910390f35b3480156105ab57600080fd5b506105b4610c5a565b6040516105c191906128cf565b60405180910390f35b3480156105d657600080fd5b506105f160048036038101906105ec919061238e565b610c60565b005b3480156105ff57600080fd5b50610608610d5f565b60405161061591906128cf565b60405180910390f35b34801561062a57600080fd5b50610633610d65565b60405161064091906128cf565b60405180910390f35b34801561065557600080fd5b5061065e610d6b565b60405161066b91906128cf565b60405180910390f35b34801561068057600080fd5b5061069b6004803603810190610696919061228b565b610d71565b6040516106a891906128cf565b60405180910390f35b3480156106bd57600080fd5b506106d860048036038101906106d39190612239565b610df8565b005b3480156106e657600080fd5b5061070160048036038101906106fc9190612352565b610ecf565b005b34801561070f57600080fd5b50610718610f8d565b60405161072591906128cf565b60405180910390f35b34801561073a57600080fd5b5061075560048036038101906107509190612239565b610f93565b005b61dead81565b60606040518060400160405280600981526020017f48454c4c20464952450000000000000000000000000000000000000000000000815250905090565b60006107ae6107a761108b565b8484611093565b6001905092915050565b600066038d7ea4c68000905090565b600f60009054906101000a900461ffff1681565b600e5481565b60006107ee84848461125e565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061083961108b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156108b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b0906127d4565b60405180910390fd5b6108d6856108c561108b565b85846108d19190612c06565b611093565b60019150509392505050565b60006009905090565b6108f361108b565b73ffffffffffffffffffffffffffffffffffffffff16610911610ba4565b73ffffffffffffffffffffffffffffffffffffffff1614610967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095e906127f4565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60085481565b60095481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a1f61108b565b73ffffffffffffffffffffffffffffffffffffffff16610a3d610ba4565b73ffffffffffffffffffffffffffffffffffffffff1614610a93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8a906127f4565b60405180910390fd5b610a9d60006117de565b565b60065481565b610aad61108b565b73ffffffffffffffffffffffffffffffffffffffff16610acb610ba4565b73ffffffffffffffffffffffffffffffffffffffff1614610b21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b18906127f4565b60405180910390fd5b826004819055508160058190555080600681905550600654600554600454610b4991906129b4565b610b5391906129b4565b60078190555060146007541115610b9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b96906127b4565b60405180910390fd5b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a5481565b60606040518060400160405280600581526020017f6946524954000000000000000000000000000000000000000000000000000000815250905090565b600d5481565b600f60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610c50610c4961108b565b848461125e565b6001905092915050565b60075481565b610c6861108b565b73ffffffffffffffffffffffffffffffffffffffff16610c86610ba4565b73ffffffffffffffffffffffffffffffffffffffff1614610cdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd3906127f4565b60405180910390fd5b826008819055508160098190555080600a81905550600a54600954600854610d0491906129b4565b610d0e91906129b4565b60078190555060146007541115610d5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d51906127b4565b60405180910390fd5b505050565b60045481565b600c5481565b600b5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e0061108b565b73ffffffffffffffffffffffffffffffffffffffff16610e1e610ba4565b73ffffffffffffffffffffffffffffffffffffffff1614610e74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6b906127f4565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610ed761108b565b73ffffffffffffffffffffffffffffffffffffffff16610ef5610ba4565b73ffffffffffffffffffffffffffffffffffffffff1614610f4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f42906127f4565b60405180910390fd5b6009600a610f599190612a8e565b82610f649190612bac565b6013819055506009600a610f789190612a8e565b81610f839190612bac565b6012819055505050565b60055481565b610f9b61108b565b73ffffffffffffffffffffffffffffffffffffffff16610fb9610ba4565b73ffffffffffffffffffffffffffffffffffffffff161461100f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611006906127f4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561107f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107690612774565b60405180910390fd5b611088816117de565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611103576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fa90612874565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611173576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116a90612794565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161125191906128cf565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c590612834565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561133e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133590612714565b60405180910390fd5b60008111611381576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137890612814565b60405180910390fd5b61138a836109ce565b8111156113cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c390612754565b60405180910390fd5b601160149054906101000a900460ff16806114305750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806114845750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6114c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ba90612894565b60405180910390fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561156e5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115c45750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156116675760135481111561160e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160590612734565b60405180910390fd5b6012548161161b846109ce565b61162591906129b4565b1115611666576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165d90612854565b60405180910390fd5b5b6000611672306109ce565b9050601160159054906101000a900460ff161580156116df5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156116f75750601160169054906101000a900460ff165b80156117035750600081115b1561172b57611711816118a2565b600047905060008111156117295761172847611b9c565b5b505b6117d8848484600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117d25750600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611c08565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611900577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561192e5781602001602082028036833780820191505090505b509050308160008151811061196c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611a0e57600080fd5b505afa158015611a22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a469190612262565b81600181518110611a80577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ae730601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611093565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611b4b9594939291906128ea565b600060405180830381600087803b158015611b6557600080fd5b505af1158015611b79573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c04573d6000803e3d6000fd5b5050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c579190612c06565b92505081905550600081611c6b5782611c77565b611c76858585611d3b565b5b905080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611cc891906129b4565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d2c91906128cf565b60405180910390a35050505050565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611d9c57506000600754115b15611e3f57600f60009054906101000a900461ffff1661ffff1660045483611dc49190612bac565b611dce9190612a0a565b600c81905550600f60009054906101000a900461ffff1661ffff1660055483611df79190612bac565b611e019190612a0a565b600d81905550600f60009054906101000a900461ffff1661ffff1660065483611e2a9190612bac565b611e349190612a0a565b600e81905550611f3e565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e9e57506000600b54115b15611f3d57600f60009054906101000a900461ffff1661ffff1660085483611ec69190612bac565b611ed09190612a0a565b600c81905550600f60009054906101000a900461ffff1661ffff1660095483611ef99190612bac565b611f039190612a0a565b600d81905550600f60009054906101000a900461ffff1661ffff16600a5483611f2c9190612bac565b611f369190612a0a565b600e819055505b5b600c546001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f9191906129b4565b9250508190555061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600c54604051611ff991906128cf565b60405180910390a3600d5460016000600f60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461207491906129b4565b92505081905550600f60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d546040516120fc91906128cf565b60405180910390a3600e54600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461215591906129b4565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e546040516121bb91906128cf565b60405180910390a36000600d54600e54600c546121d891906129b4565b6121e291906129b4565b905080836121f09190612c06565b9150509392505050565b600081359050612209816130a3565b92915050565b60008151905061221e816130a3565b92915050565b600081359050612233816130ba565b92915050565b60006020828403121561224b57600080fd5b6000612259848285016121fa565b91505092915050565b60006020828403121561227457600080fd5b60006122828482850161220f565b91505092915050565b6000806040838503121561229e57600080fd5b60006122ac858286016121fa565b92505060206122bd858286016121fa565b9150509250929050565b6000806000606084860312156122dc57600080fd5b60006122ea868287016121fa565b93505060206122fb868287016121fa565b925050604061230c86828701612224565b9150509250925092565b6000806040838503121561232957600080fd5b6000612337858286016121fa565b925050602061234885828601612224565b9150509250929050565b6000806040838503121561236557600080fd5b600061237385828601612224565b925050602061238485828601612224565b9150509250929050565b6000806000606084860312156123a357600080fd5b60006123b186828701612224565b93505060206123c286828701612224565b92505060406123d386828701612224565b9150509250925092565b60006123e983836123f5565b60208301905092915050565b6123fe81612c3a565b82525050565b61240d81612c3a565b82525050565b600061241e8261296f565b6124288185612992565b93506124338361295f565b8060005b8381101561246457815161244b88826123dd565b975061245683612985565b925050600181019050612437565b5085935050505092915050565b61247a81612c4c565b82525050565b61248981612c9d565b82525050565b600061249a8261297a565b6124a481856129a3565b93506124b4818560208601612caf565b6124bd81612d40565b840191505092915050565b60006124d56023836129a3565b91506124e082612d5e565b604082019050919050565b60006124f86019836129a3565b915061250382612dad565b602082019050919050565b600061251b6031836129a3565b915061252682612dd6565b604082019050919050565b600061253e6026836129a3565b915061254982612e25565b604082019050919050565b60006125616022836129a3565b915061256c82612e74565b604082019050919050565b6000612584601d836129a3565b915061258f82612ec3565b602082019050919050565b60006125a76028836129a3565b91506125b282612eec565b604082019050919050565b60006125ca6020836129a3565b91506125d582612f3b565b602082019050919050565b60006125ed6029836129a3565b91506125f882612f64565b604082019050919050565b60006126106025836129a3565b915061261b82612fb3565b604082019050919050565b6000612633601a836129a3565b915061263e82613002565b602082019050919050565b60006126566024836129a3565b91506126618261302b565b604082019050919050565b60006126796017836129a3565b91506126848261307a565b602082019050919050565b61269881612c58565b82525050565b6126a781612c86565b82525050565b6126b681612c90565b82525050565b60006020820190506126d16000830184612404565b92915050565b60006020820190506126ec6000830184612471565b92915050565b6000602082019050818103600083015261270c818461248f565b905092915050565b6000602082019050818103600083015261272d816124c8565b9050919050565b6000602082019050818103600083015261274d816124eb565b9050919050565b6000602082019050818103600083015261276d8161250e565b9050919050565b6000602082019050818103600083015261278d81612531565b9050919050565b600060208201905081810360008301526127ad81612554565b9050919050565b600060208201905081810360008301526127cd81612577565b9050919050565b600060208201905081810360008301526127ed8161259a565b9050919050565b6000602082019050818103600083015261280d816125bd565b9050919050565b6000602082019050818103600083015261282d816125e0565b9050919050565b6000602082019050818103600083015261284d81612603565b9050919050565b6000602082019050818103600083015261286d81612626565b9050919050565b6000602082019050818103600083015261288d81612649565b9050919050565b600060208201905081810360008301526128ad8161266c565b9050919050565b60006020820190506128c9600083018461268f565b92915050565b60006020820190506128e4600083018461269e565b92915050565b600060a0820190506128ff600083018861269e565b61290c6020830187612480565b818103604083015261291e8186612413565b905061292d6060830185612404565b61293a608083018461269e565b9695505050505050565b600060208201905061295960008301846126ad565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006129bf82612c86565b91506129ca83612c86565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156129ff576129fe612ce2565b5b828201905092915050565b6000612a1582612c86565b9150612a2083612c86565b925082612a3057612a2f612d11565b5b828204905092915050565b6000808291508390505b6001851115612a8557808604811115612a6157612a60612ce2565b5b6001851615612a705780820291505b8081029050612a7e85612d51565b9450612a45565b94509492505050565b6000612a9982612c86565b9150612aa483612c90565b9250612ad17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612ad9565b905092915050565b600082612ae95760019050612ba5565b81612af75760009050612ba5565b8160018114612b0d5760028114612b1757612b46565b6001915050612ba5565b60ff841115612b2957612b28612ce2565b5b8360020a915084821115612b4057612b3f612ce2565b5b50612ba5565b5060208310610133831016604e8410600b8410161715612b7b5782820a905083811115612b7657612b75612ce2565b5b612ba5565b612b888484846001612a3b565b92509050818404811115612b9f57612b9e612ce2565b5b81810290505b9392505050565b6000612bb782612c86565b9150612bc283612c86565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612bfb57612bfa612ce2565b5b828202905092915050565b6000612c1182612c86565b9150612c1c83612c86565b925082821015612c2f57612c2e612ce2565b5b828203905092915050565b6000612c4582612c66565b9050919050565b60008115159050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612ca882612c86565b9050919050565b60005b83811015612ccd578082015181840152602081019050612cb2565b83811115612cdc576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f4d757374206b656570206665657320617420323025206f72206c657373000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e67206e6f7420656e61626c656420796574000000000000000000600082015250565b6130ac81612c3a565b81146130b757600080fd5b50565b6130c381612c86565b81146130ce57600080fd5b5056fea2646970667358221220500919860fb4768ae7fe364361cba0bf20b9a96e79a188c70853c4bfc1ac2bde64736f6c63430008040033

Deployed Bytecode

0x6080604052600436106101dc5760003560e01c80638da5cb5b11610102578063c99f2fed11610095578063ea2f0b3711610064578063ea2f0b37146106b1578063ebece9c9146106da578063f239eab814610703578063f2fde38b1461072e576101e3565b8063c99f2fed146105f3578063cc70acee1461061e578063d0a3981414610649578063dd62ed3e14610674576101e3565b8063a8b08982116100d1578063a8b0898214610537578063a9059cbb14610562578063b9e937001461059f578063c17b5b8c146105ca576101e3565b80638da5cb5b1461048b57806392136913146104b657806395d89b41146104e15780639740a9461461050c576101e3565b8063313ce5671161017a57806370a082311161014957806370a08231146103e3578063715018a6146104205780637bce5a04146104375780638095d56414610462576101e3565b8063313ce56714610339578063437823ec1461036457806347afcbfe1461038d5780636cce46fc146103b8576101e3565b806318160ddd116101b657806318160ddd1461027b5780631d6167ac146102a65780631f3fed8f146102d157806323b872dd146102fc576101e3565b806303fd2a45146101e857806306fdde0314610213578063095ea7b31461023e576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610757565b60405161020a91906126bc565b60405180910390f35b34801561021f57600080fd5b5061022861075d565b60405161023591906126f2565b60405180910390f35b34801561024a57600080fd5b5061026560048036038101906102609190612316565b61079a565b60405161027291906126d7565b60405180910390f35b34801561028757600080fd5b506102906107b8565b60405161029d91906128cf565b60405180910390f35b3480156102b257600080fd5b506102bb6107c7565b6040516102c891906128b4565b60405180910390f35b3480156102dd57600080fd5b506102e66107db565b6040516102f391906128cf565b60405180910390f35b34801561030857600080fd5b50610323600480360381019061031e91906122c7565b6107e1565b60405161033091906126d7565b60405180910390f35b34801561034557600080fd5b5061034e6108e2565b60405161035b9190612944565b60405180910390f35b34801561037057600080fd5b5061038b60048036038101906103869190612239565b6108eb565b005b34801561039957600080fd5b506103a26109c2565b6040516103af91906128cf565b60405180910390f35b3480156103c457600080fd5b506103cd6109c8565b6040516103da91906128cf565b60405180910390f35b3480156103ef57600080fd5b5061040a60048036038101906104059190612239565b6109ce565b60405161041791906128cf565b60405180910390f35b34801561042c57600080fd5b50610435610a17565b005b34801561044357600080fd5b5061044c610a9f565b60405161045991906128cf565b60405180910390f35b34801561046e57600080fd5b506104896004803603810190610484919061238e565b610aa5565b005b34801561049757600080fd5b506104a0610ba4565b6040516104ad91906126bc565b60405180910390f35b3480156104c257600080fd5b506104cb610bcd565b6040516104d891906128cf565b60405180910390f35b3480156104ed57600080fd5b506104f6610bd3565b60405161050391906126f2565b60405180910390f35b34801561051857600080fd5b50610521610c10565b60405161052e91906128cf565b60405180910390f35b34801561054357600080fd5b5061054c610c16565b60405161055991906126bc565b60405180910390f35b34801561056e57600080fd5b5061058960048036038101906105849190612316565b610c3c565b60405161059691906126d7565b60405180910390f35b3480156105ab57600080fd5b506105b4610c5a565b6040516105c191906128cf565b60405180910390f35b3480156105d657600080fd5b506105f160048036038101906105ec919061238e565b610c60565b005b3480156105ff57600080fd5b50610608610d5f565b60405161061591906128cf565b60405180910390f35b34801561062a57600080fd5b50610633610d65565b60405161064091906128cf565b60405180910390f35b34801561065557600080fd5b5061065e610d6b565b60405161066b91906128cf565b60405180910390f35b34801561068057600080fd5b5061069b6004803603810190610696919061228b565b610d71565b6040516106a891906128cf565b60405180910390f35b3480156106bd57600080fd5b506106d860048036038101906106d39190612239565b610df8565b005b3480156106e657600080fd5b5061070160048036038101906106fc9190612352565b610ecf565b005b34801561070f57600080fd5b50610718610f8d565b60405161072591906128cf565b60405180910390f35b34801561073a57600080fd5b5061075560048036038101906107509190612239565b610f93565b005b61dead81565b60606040518060400160405280600981526020017f48454c4c20464952450000000000000000000000000000000000000000000000815250905090565b60006107ae6107a761108b565b8484611093565b6001905092915050565b600066038d7ea4c68000905090565b600f60009054906101000a900461ffff1681565b600e5481565b60006107ee84848461125e565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061083961108b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156108b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b0906127d4565b60405180910390fd5b6108d6856108c561108b565b85846108d19190612c06565b611093565b60019150509392505050565b60006009905090565b6108f361108b565b73ffffffffffffffffffffffffffffffffffffffff16610911610ba4565b73ffffffffffffffffffffffffffffffffffffffff1614610967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095e906127f4565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60085481565b60095481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a1f61108b565b73ffffffffffffffffffffffffffffffffffffffff16610a3d610ba4565b73ffffffffffffffffffffffffffffffffffffffff1614610a93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8a906127f4565b60405180910390fd5b610a9d60006117de565b565b60065481565b610aad61108b565b73ffffffffffffffffffffffffffffffffffffffff16610acb610ba4565b73ffffffffffffffffffffffffffffffffffffffff1614610b21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b18906127f4565b60405180910390fd5b826004819055508160058190555080600681905550600654600554600454610b4991906129b4565b610b5391906129b4565b60078190555060146007541115610b9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b96906127b4565b60405180910390fd5b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a5481565b60606040518060400160405280600581526020017f6946524954000000000000000000000000000000000000000000000000000000815250905090565b600d5481565b600f60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610c50610c4961108b565b848461125e565b6001905092915050565b60075481565b610c6861108b565b73ffffffffffffffffffffffffffffffffffffffff16610c86610ba4565b73ffffffffffffffffffffffffffffffffffffffff1614610cdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd3906127f4565b60405180910390fd5b826008819055508160098190555080600a81905550600a54600954600854610d0491906129b4565b610d0e91906129b4565b60078190555060146007541115610d5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d51906127b4565b60405180910390fd5b505050565b60045481565b600c5481565b600b5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e0061108b565b73ffffffffffffffffffffffffffffffffffffffff16610e1e610ba4565b73ffffffffffffffffffffffffffffffffffffffff1614610e74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6b906127f4565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610ed761108b565b73ffffffffffffffffffffffffffffffffffffffff16610ef5610ba4565b73ffffffffffffffffffffffffffffffffffffffff1614610f4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f42906127f4565b60405180910390fd5b6009600a610f599190612a8e565b82610f649190612bac565b6013819055506009600a610f789190612a8e565b81610f839190612bac565b6012819055505050565b60055481565b610f9b61108b565b73ffffffffffffffffffffffffffffffffffffffff16610fb9610ba4565b73ffffffffffffffffffffffffffffffffffffffff161461100f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611006906127f4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561107f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107690612774565b60405180910390fd5b611088816117de565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611103576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fa90612874565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611173576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116a90612794565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161125191906128cf565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c590612834565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561133e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133590612714565b60405180910390fd5b60008111611381576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137890612814565b60405180910390fd5b61138a836109ce565b8111156113cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c390612754565b60405180910390fd5b601160149054906101000a900460ff16806114305750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806114845750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6114c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ba90612894565b60405180910390fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561156e5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115c45750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156116675760135481111561160e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160590612734565b60405180910390fd5b6012548161161b846109ce565b61162591906129b4565b1115611666576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165d90612854565b60405180910390fd5b5b6000611672306109ce565b9050601160159054906101000a900460ff161580156116df5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156116f75750601160169054906101000a900460ff165b80156117035750600081115b1561172b57611711816118a2565b600047905060008111156117295761172847611b9c565b5b505b6117d8848484600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117d25750600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611c08565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611900577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561192e5781602001602082028036833780820191505090505b509050308160008151811061196c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611a0e57600080fd5b505afa158015611a22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a469190612262565b81600181518110611a80577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ae730601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611093565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611b4b9594939291906128ea565b600060405180830381600087803b158015611b6557600080fd5b505af1158015611b79573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c04573d6000803e3d6000fd5b5050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c579190612c06565b92505081905550600081611c6b5782611c77565b611c76858585611d3b565b5b905080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611cc891906129b4565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d2c91906128cf565b60405180910390a35050505050565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611d9c57506000600754115b15611e3f57600f60009054906101000a900461ffff1661ffff1660045483611dc49190612bac565b611dce9190612a0a565b600c81905550600f60009054906101000a900461ffff1661ffff1660055483611df79190612bac565b611e019190612a0a565b600d81905550600f60009054906101000a900461ffff1661ffff1660065483611e2a9190612bac565b611e349190612a0a565b600e81905550611f3e565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e9e57506000600b54115b15611f3d57600f60009054906101000a900461ffff1661ffff1660085483611ec69190612bac565b611ed09190612a0a565b600c81905550600f60009054906101000a900461ffff1661ffff1660095483611ef99190612bac565b611f039190612a0a565b600d81905550600f60009054906101000a900461ffff1661ffff16600a5483611f2c9190612bac565b611f369190612a0a565b600e819055505b5b600c546001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f9191906129b4565b9250508190555061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600c54604051611ff991906128cf565b60405180910390a3600d5460016000600f60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461207491906129b4565b92505081905550600f60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d546040516120fc91906128cf565b60405180910390a3600e54600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461215591906129b4565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e546040516121bb91906128cf565b60405180910390a36000600d54600e54600c546121d891906129b4565b6121e291906129b4565b905080836121f09190612c06565b9150509392505050565b600081359050612209816130a3565b92915050565b60008151905061221e816130a3565b92915050565b600081359050612233816130ba565b92915050565b60006020828403121561224b57600080fd5b6000612259848285016121fa565b91505092915050565b60006020828403121561227457600080fd5b60006122828482850161220f565b91505092915050565b6000806040838503121561229e57600080fd5b60006122ac858286016121fa565b92505060206122bd858286016121fa565b9150509250929050565b6000806000606084860312156122dc57600080fd5b60006122ea868287016121fa565b93505060206122fb868287016121fa565b925050604061230c86828701612224565b9150509250925092565b6000806040838503121561232957600080fd5b6000612337858286016121fa565b925050602061234885828601612224565b9150509250929050565b6000806040838503121561236557600080fd5b600061237385828601612224565b925050602061238485828601612224565b9150509250929050565b6000806000606084860312156123a357600080fd5b60006123b186828701612224565b93505060206123c286828701612224565b92505060406123d386828701612224565b9150509250925092565b60006123e983836123f5565b60208301905092915050565b6123fe81612c3a565b82525050565b61240d81612c3a565b82525050565b600061241e8261296f565b6124288185612992565b93506124338361295f565b8060005b8381101561246457815161244b88826123dd565b975061245683612985565b925050600181019050612437565b5085935050505092915050565b61247a81612c4c565b82525050565b61248981612c9d565b82525050565b600061249a8261297a565b6124a481856129a3565b93506124b4818560208601612caf565b6124bd81612d40565b840191505092915050565b60006124d56023836129a3565b91506124e082612d5e565b604082019050919050565b60006124f86019836129a3565b915061250382612dad565b602082019050919050565b600061251b6031836129a3565b915061252682612dd6565b604082019050919050565b600061253e6026836129a3565b915061254982612e25565b604082019050919050565b60006125616022836129a3565b915061256c82612e74565b604082019050919050565b6000612584601d836129a3565b915061258f82612ec3565b602082019050919050565b60006125a76028836129a3565b91506125b282612eec565b604082019050919050565b60006125ca6020836129a3565b91506125d582612f3b565b602082019050919050565b60006125ed6029836129a3565b91506125f882612f64565b604082019050919050565b60006126106025836129a3565b915061261b82612fb3565b604082019050919050565b6000612633601a836129a3565b915061263e82613002565b602082019050919050565b60006126566024836129a3565b91506126618261302b565b604082019050919050565b60006126796017836129a3565b91506126848261307a565b602082019050919050565b61269881612c58565b82525050565b6126a781612c86565b82525050565b6126b681612c90565b82525050565b60006020820190506126d16000830184612404565b92915050565b60006020820190506126ec6000830184612471565b92915050565b6000602082019050818103600083015261270c818461248f565b905092915050565b6000602082019050818103600083015261272d816124c8565b9050919050565b6000602082019050818103600083015261274d816124eb565b9050919050565b6000602082019050818103600083015261276d8161250e565b9050919050565b6000602082019050818103600083015261278d81612531565b9050919050565b600060208201905081810360008301526127ad81612554565b9050919050565b600060208201905081810360008301526127cd81612577565b9050919050565b600060208201905081810360008301526127ed8161259a565b9050919050565b6000602082019050818103600083015261280d816125bd565b9050919050565b6000602082019050818103600083015261282d816125e0565b9050919050565b6000602082019050818103600083015261284d81612603565b9050919050565b6000602082019050818103600083015261286d81612626565b9050919050565b6000602082019050818103600083015261288d81612649565b9050919050565b600060208201905081810360008301526128ad8161266c565b9050919050565b60006020820190506128c9600083018461268f565b92915050565b60006020820190506128e4600083018461269e565b92915050565b600060a0820190506128ff600083018861269e565b61290c6020830187612480565b818103604083015261291e8186612413565b905061292d6060830185612404565b61293a608083018461269e565b9695505050505050565b600060208201905061295960008301846126ad565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006129bf82612c86565b91506129ca83612c86565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156129ff576129fe612ce2565b5b828201905092915050565b6000612a1582612c86565b9150612a2083612c86565b925082612a3057612a2f612d11565b5b828204905092915050565b6000808291508390505b6001851115612a8557808604811115612a6157612a60612ce2565b5b6001851615612a705780820291505b8081029050612a7e85612d51565b9450612a45565b94509492505050565b6000612a9982612c86565b9150612aa483612c90565b9250612ad17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612ad9565b905092915050565b600082612ae95760019050612ba5565b81612af75760009050612ba5565b8160018114612b0d5760028114612b1757612b46565b6001915050612ba5565b60ff841115612b2957612b28612ce2565b5b8360020a915084821115612b4057612b3f612ce2565b5b50612ba5565b5060208310610133831016604e8410600b8410161715612b7b5782820a905083811115612b7657612b75612ce2565b5b612ba5565b612b888484846001612a3b565b92509050818404811115612b9f57612b9e612ce2565b5b81810290505b9392505050565b6000612bb782612c86565b9150612bc283612c86565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612bfb57612bfa612ce2565b5b828202905092915050565b6000612c1182612c86565b9150612c1c83612c86565b925082821015612c2f57612c2e612ce2565b5b828203905092915050565b6000612c4582612c66565b9050919050565b60008115159050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612ca882612c86565b9050919050565b60005b83811015612ccd578082015181840152602081019050612cb2565b83811115612cdc576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f4d757374206b656570206665657320617420323025206f72206c657373000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e67206e6f7420656e61626c656420796574000000000000000000600082015250565b6130ac81612c3a565b81146130b757600080fd5b50565b6130c381612c86565b81146130ce57600080fd5b5056fea2646970667358221220500919860fb4768ae7fe364361cba0bf20b9a96e79a188c70853c4bfc1ac2bde64736f6c63430008040033

Deployed Bytecode Sourcemap

4640:9986:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5706:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8119:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8829:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8348:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5659:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5619:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8975:420;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8273:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13144:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5304:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5347:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8435:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3303:94;;;;;;;;;;;;;:::i;:::-;;5168:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13606:423;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3080:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5395:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8194:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5575:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5786:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8544:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5211:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14041:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5079:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5536:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5439:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8694:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13263:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13381:217;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5121:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3405:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5706:73;5737:42;5706:73;:::o;8119:69::-;8156:13;8180:5;;;;;;;;;;;;;;;;;8173:12;;8119:69;:::o;8829:138::-;8904:4;8912:39;8921:12;:10;:12::i;:::-;8935:7;8944:6;8912:8;:39::i;:::-;8960:4;8953:11;;8829:138;;;;:::o;8348:81::-;8401:7;6049:15;8412:14;;8348:81;:::o;5659:38::-;;;;;;;;;;;;;:::o;5619:33::-;;;;:::o;8975:420::-;9081:4;9098:36;9108:6;9116:9;9127:6;9098:9;:36::i;:::-;9147:24;9174:11;:19;9186:6;9174:19;;;;;;;;;;;;;;;:33;9194:12;:10;:12::i;:::-;9174:33;;;;;;;;;;;;;;;;9147:60;;9246:6;9226:16;:26;;9218:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9308:57;9317:6;9325:12;:10;:12::i;:::-;9358:6;9339:16;:25;;;;:::i;:::-;9308:8;:57::i;:::-;9383:4;9376:11;;;8975:420;;;;;:::o;8273:69::-;8314:5;5069:1;8323:16;;8273:69;:::o;13144:111::-;3226:12;:10;:12::i;:::-;3215:23;;:7;:5;:7::i;:::-;:23;;;3207:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13243:4:::1;13213:18;:27;13232:7;13213:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;13144:111:::0;:::o;5304:36::-;;;;:::o;5347:41::-;;;;:::o;8435:103::-;8501:7;8519;:16;8527:7;8519:16;;;;;;;;;;;;;;;;8512:23;;8435:103;;;:::o;3303:94::-;3226:12;:10;:12::i;:::-;3215:23;;:7;:5;:7::i;:::-;:23;;;3207:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3368:21:::1;3386:1;3368:9;:21::i;:::-;3303:94::o:0;5168:36::-;;;;:::o;13606:423::-;3226:12;:10;:12::i;:::-;3215:23;;:7;:5;:7::i;:::-;:23;;;3207:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13757:15:::1;13740:14;:32;;;;13805:20;13783:19;:42;;;;13854:16;13836:15;:34;;;;13935:15;;13913:19;;13896:14;;:36;;;;:::i;:::-;:54;;;;:::i;:::-;13881:12;:69;;;;13985:2;13969:12;;:18;;13961:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;13606:423:::0;;;:::o;3080:87::-;3126:7;3153:6;;;;;;;;;;;3146:13;;3080:87;:::o;5395:37::-;;;;:::o;8194:73::-;8233:13;8257:7;;;;;;;;;;;;;;;;;8250:14;;8194:73;:::o;5575:37::-;;;;:::o;5786:26::-;;;;;;;;;;;;;:::o;8544:144::-;8622:4;8630:42;8640:12;:10;:12::i;:::-;8654:9;8665:6;8630:9;:42::i;:::-;8681:4;8674:11;;8544:144;;;;:::o;5211:84::-;;;;:::o;14041:436::-;3226:12;:10;:12::i;:::-;3215:23;;:7;:5;:7::i;:::-;:23;;;3207:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14197:16:::1;14179:15;:34;;;;14247:21;14224:20;:44;;;;14298:17;14279:16;:36;;;;14382:16;;14359:20;;14341:15;;:38;;;;:::i;:::-;:57;;;;:::i;:::-;14326:12;:72;;;;14433:2;14417:12;;:18;;14409:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;14041:436:::0;;;:::o;5079:35::-;;;;:::o;5536:32::-;;;;:::o;5439:88::-;;;;:::o;8694:129::-;8775:7;8793:11;:18;8805:5;8793:18;;;;;;;;;;;;;;;:27;8812:7;8793:27;;;;;;;;;;;;;;;;8786:34;;8694:129;;;;:::o;13263:110::-;3226:12;:10;:12::i;:::-;3215:23;;:7;:5;:7::i;:::-;:23;;;3207:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13360:5:::1;13330:18;:27;13349:7;13330:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;13263:110:::0;:::o;13381:217::-;3226:12;:10;:12::i;:::-;3215:23;;:7;:5;:7::i;:::-;:23;;;3207:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5069:1:::1;13516:2;:14;;;;:::i;:::-;13501:12;:29;;;;:::i;:::-;13487:11;:43;;;;5069:1;13576:2;:14;;;;:::i;:::-;13559;:31;;;;:::i;:::-;13541:15;:49;;;;13381:217:::0;;:::o;5121:40::-;;;;:::o;3405:192::-;3226:12;:10;:12::i;:::-;3215:23;;:7;:5;:7::i;:::-;:23;;;3207:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3514:1:::1;3494:22;;:8;:22;;;;3486:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3570:19;3580:8;3570:9;:19::i;:::-;3405:192:::0;:::o;2501:98::-;2554:7;2581:10;2574:17;;2501:98;:::o;9403:335::-;9513:1;9496:19;;:5;:19;;;;9488:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9594:1;9575:21;;:7;:21;;;;9567:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9676:6;9646:11;:18;9658:5;9646:18;;;;;;;;;;;;;;;:27;9665:7;9646:27;;;;;;;;;;;;;;;:36;;;;9714:7;9698:32;;9707:5;9698:32;;;9723:6;9698:32;;;;;;:::i;:::-;;;;;;;;9403:335;;;:::o;9746:1335::-;9850:1;9834:18;;:4;:18;;;;9826:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9927:1;9913:16;;:2;:16;;;;9905:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9997:1;9988:6;:10;9980:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10073:15;10083:4;10073:9;:15::i;:::-;10063:6;:25;;10055:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;10164:11;;;;;;;;;;;:39;;;;10179:18;:24;10198:4;10179:24;;;;;;;;;;;;;;;;;;;;;;;;;10164:39;:65;;;;10207:18;:22;10226:2;10207:22;;;;;;;;;;;;;;;;;;;;;;;;;10164:65;10156:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;10282:13;;;;;;;;;;;10274:21;;:4;:21;;;:55;;;;;10313:15;;;;;;;;;;;10299:30;;:2;:30;;;;10274:55;:83;;;;;10335:18;:22;10354:2;10335:22;;;;;;;;;;;;;;;;;;;;;;;;;10333:24;10274:83;10270:278;;;10396:11;;10386:6;:21;;10378:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;10490:15;;10480:6;10464:13;10474:2;10464:9;:13::i;:::-;:22;;;;:::i;:::-;:41;;10456:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;10270:278;10560:28;10591:24;10609:4;10591:9;:24::i;:::-;10560:55;;10635:6;;;;;;;;;;;10634:7;:32;;;;;10653:13;;;;;;;;;;;10645:21;;:4;:21;;;;10634:32;:47;;;;;10670:11;;;;;;;;;;;10634:47;:73;;;;;10706:1;10685:20;:22;10634:73;10630:344;;;10728:38;10745:20;10728:16;:38::i;:::-;10785:26;10814:21;10785:50;;10878:1;10857:18;:22;10854:105;;;10904:35;10917:21;10904:12;:35::i;:::-;10854:105;10630:344;;10986:87;11001:4;11007:2;11011:6;11021:18;:24;11040:4;11021:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11049:18;:22;11068:2;11049:22;;;;;;;;;;;;;;;;;;;;;;;;;11021:50;11019:53;10986:14;:87::i;:::-;9746:1335;;;;:::o;3605:173::-;3661:16;3680:6;;;;;;;;;;;3661:25;;3706:8;3697:6;;:17;;;;;;;;;;;;;;;;;;3761:8;3730:40;;3751:8;3730:40;;;;;;;;;;;;3605:173;;:::o;11089:483::-;6319:4;6310:6;;:13;;;;;;;;;;;;;;;;;;11167:21:::1;11205:1;11191:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11167:40;;11236:4;11218;11223:1;11218:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;11262:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11252:4;11257:1;11252:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;11295:62;11312:4;11327:15;;;;;;;;;;;11345:11;11295:8;:62::i;:::-;11368:15;;;;;;;;;;;:66;;;11449:11;11475:1;11491:4;11518;11538:15;11368:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;6334:1;6355:5:::0;6346:6;;:14;;;;;;;;;;;;;;;;;;11089:483;:::o;14485:95::-;14542:13;;;;;;;;;;;:22;;:30;14565:6;14542:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14485:95;:::o;11580:340::-;11707:6;11688:7;:15;11696:6;11688:15;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;11724:22;11750:7;11749:57;;11800:6;11749:57;;;11761:36;11771:6;11779:9;11790:6;11761:9;:36::i;:::-;11749:57;11724:82;;11839:14;11817:7;:18;11825:9;11817:18;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;11886:9;11869:43;;11878:6;11869:43;;;11897:14;11869:43;;;;;;:::i;:::-;;;;;;;;11580:340;;;;;:::o;11928:1208::-;12007:7;12038:13;;;;;;;;;;;12030:21;;:4;:21;;;:41;;;;;12070:1;12055:12;;:16;12030:41;12027:628;;;12136:16;;;;;;;;;;;12110:42;;12119:14;;12110:6;:23;;;;:::i;:::-;:42;;;;:::i;:::-;12090:17;:62;;;;12223:16;;;;;;;;;;;12192:47;;12201:19;;12192:6;:28;;;;:::i;:::-;:47;;;;:::i;:::-;12167:22;:72;;;;12302:16;;;;;;;;;;;12275:43;;12284:15;;12275:6;:24;;;;:::i;:::-;:43;;;;:::i;:::-;12254:18;:64;;;;12027:628;;;12350:13;;;;;;;;;;;12344:19;;:2;:19;;;:41;;;;;12384:1;12368:13;;:17;12344:41;12340:315;;;12451:16;;;;;;;;;;;12424:43;;12433:15;;12424:6;:24;;;;:::i;:::-;:43;;;;:::i;:::-;12404:17;:63;;;;12539:16;;;;;;;;;;;12507:48;;12516:20;;12507:6;:29;;;;:::i;:::-;:48;;;;:::i;:::-;12482:22;:73;;;;12619:16;;;;;;;;;;;12591:44;;12600:16;;12591:6;:25;;;;:::i;:::-;:44;;;;:::i;:::-;12570:18;:65;;;;12340:315;12027:628;12682:17;;12665:7;:13;5737:42;12665:13;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;5737:42;12715:39;;12724:4;12715:39;;;12736:17;;12715:39;;;;;;:::i;:::-;;;;;;;;12789:22;;12765:7;:20;12773:11;;;;;;;;;;;12765:20;;;;;;;;;;;;;;;;:46;;;;;;;:::i;:::-;;;;;;;;12842:11;;;;;;;;;;;12827:51;;12836:4;12827:51;;;12855:22;;12827:51;;;;;;:::i;:::-;;;;;;;;12915:18;;12889:7;:22;12905:4;12889:22;;;;;;;;;;;;;;;;:44;;;;;;;:::i;:::-;;;;;;;;12972:4;12949:49;;12958:4;12949:49;;;12979:18;;12949:49;;;;;;:::i;:::-;;;;;;;;13009:17;13070:22;;13049:18;;13029:17;;:38;;;;:::i;:::-;:63;;;;:::i;:::-;13009:83;;13119:9;13110:6;:18;;;;:::i;:::-;13103:25;;;11928:1208;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:139::-;347:5;385:6;372:20;363:29;;401:33;428:5;401:33;:::i;:::-;353:87;;;;:::o;446:262::-;505:6;554:2;542:9;533:7;529:23;525:32;522:2;;;570:1;567;560:12;522:2;613:1;638:53;683:7;674:6;663:9;659:22;638:53;:::i;:::-;628:63;;584:117;512:196;;;;:::o;714:284::-;784:6;833:2;821:9;812:7;808:23;804:32;801:2;;;849:1;846;839:12;801:2;892:1;917:64;973:7;964:6;953:9;949:22;917:64;:::i;:::-;907:74;;863:128;791:207;;;;:::o;1004:407::-;1072:6;1080;1129:2;1117:9;1108:7;1104:23;1100:32;1097:2;;;1145:1;1142;1135:12;1097:2;1188:1;1213:53;1258:7;1249:6;1238:9;1234:22;1213:53;:::i;:::-;1203:63;;1159:117;1315:2;1341:53;1386:7;1377:6;1366:9;1362:22;1341:53;:::i;:::-;1331:63;;1286:118;1087:324;;;;;:::o;1417:552::-;1494:6;1502;1510;1559:2;1547:9;1538:7;1534:23;1530:32;1527:2;;;1575:1;1572;1565:12;1527:2;1618:1;1643:53;1688:7;1679:6;1668:9;1664:22;1643:53;:::i;:::-;1633:63;;1589:117;1745:2;1771:53;1816:7;1807:6;1796:9;1792:22;1771:53;:::i;:::-;1761:63;;1716:118;1873:2;1899:53;1944:7;1935:6;1924:9;1920:22;1899:53;:::i;:::-;1889:63;;1844:118;1517:452;;;;;:::o;1975:407::-;2043:6;2051;2100:2;2088:9;2079:7;2075:23;2071:32;2068:2;;;2116:1;2113;2106:12;2068:2;2159:1;2184:53;2229:7;2220:6;2209:9;2205:22;2184:53;:::i;:::-;2174:63;;2130:117;2286:2;2312:53;2357:7;2348:6;2337:9;2333:22;2312:53;:::i;:::-;2302:63;;2257:118;2058:324;;;;;:::o;2388:407::-;2456:6;2464;2513:2;2501:9;2492:7;2488:23;2484:32;2481:2;;;2529:1;2526;2519:12;2481:2;2572:1;2597:53;2642:7;2633:6;2622:9;2618:22;2597:53;:::i;:::-;2587:63;;2543:117;2699:2;2725:53;2770:7;2761:6;2750:9;2746:22;2725:53;:::i;:::-;2715:63;;2670:118;2471:324;;;;;:::o;2801:552::-;2878:6;2886;2894;2943:2;2931:9;2922:7;2918:23;2914:32;2911:2;;;2959:1;2956;2949:12;2911:2;3002:1;3027:53;3072:7;3063:6;3052:9;3048:22;3027:53;:::i;:::-;3017:63;;2973:117;3129:2;3155:53;3200:7;3191:6;3180:9;3176:22;3155:53;:::i;:::-;3145:63;;3100:118;3257:2;3283:53;3328:7;3319:6;3308:9;3304:22;3283:53;:::i;:::-;3273:63;;3228:118;2901:452;;;;;:::o;3359:179::-;3428:10;3449:46;3491:3;3483:6;3449:46;:::i;:::-;3527:4;3522:3;3518:14;3504:28;;3439:99;;;;:::o;3544:108::-;3621:24;3639:5;3621:24;:::i;:::-;3616:3;3609:37;3599:53;;:::o;3658:118::-;3745:24;3763:5;3745:24;:::i;:::-;3740:3;3733:37;3723:53;;:::o;3812:732::-;3931:3;3960:54;4008:5;3960:54;:::i;:::-;4030:86;4109:6;4104:3;4030:86;:::i;:::-;4023:93;;4140:56;4190:5;4140:56;:::i;:::-;4219:7;4250:1;4235:284;4260:6;4257:1;4254:13;4235:284;;;4336:6;4330:13;4363:63;4422:3;4407:13;4363:63;:::i;:::-;4356:70;;4449:60;4502:6;4449:60;:::i;:::-;4439:70;;4295:224;4282:1;4279;4275:9;4270:14;;4235:284;;;4239:14;4535:3;4528:10;;3936:608;;;;;;;:::o;4550:109::-;4631:21;4646:5;4631:21;:::i;:::-;4626:3;4619:34;4609:50;;:::o;4665:147::-;4760:45;4799:5;4760:45;:::i;:::-;4755:3;4748:58;4738:74;;:::o;4818:364::-;4906:3;4934:39;4967:5;4934:39;:::i;:::-;4989:71;5053:6;5048:3;4989:71;:::i;:::-;4982:78;;5069:52;5114:6;5109:3;5102:4;5095:5;5091:16;5069:52;:::i;:::-;5146:29;5168:6;5146:29;:::i;:::-;5141:3;5137:39;5130:46;;4910:272;;;;;:::o;5188:366::-;5330:3;5351:67;5415:2;5410:3;5351:67;:::i;:::-;5344:74;;5427:93;5516:3;5427:93;:::i;:::-;5545:2;5540:3;5536:12;5529:19;;5334:220;;;:::o;5560:366::-;5702:3;5723:67;5787:2;5782:3;5723:67;:::i;:::-;5716:74;;5799:93;5888:3;5799:93;:::i;:::-;5917:2;5912:3;5908:12;5901:19;;5706:220;;;:::o;5932:366::-;6074:3;6095:67;6159:2;6154:3;6095:67;:::i;:::-;6088:74;;6171:93;6260:3;6171:93;:::i;:::-;6289:2;6284:3;6280:12;6273:19;;6078:220;;;:::o;6304:366::-;6446:3;6467:67;6531:2;6526:3;6467:67;:::i;:::-;6460:74;;6543:93;6632:3;6543:93;:::i;:::-;6661:2;6656:3;6652:12;6645:19;;6450:220;;;:::o;6676:366::-;6818:3;6839:67;6903:2;6898:3;6839:67;:::i;:::-;6832:74;;6915:93;7004:3;6915:93;:::i;:::-;7033:2;7028:3;7024:12;7017:19;;6822:220;;;:::o;7048:366::-;7190:3;7211:67;7275:2;7270:3;7211:67;:::i;:::-;7204:74;;7287:93;7376:3;7287:93;:::i;:::-;7405:2;7400:3;7396:12;7389:19;;7194:220;;;:::o;7420:366::-;7562:3;7583:67;7647:2;7642:3;7583:67;:::i;:::-;7576:74;;7659:93;7748:3;7659:93;:::i;:::-;7777:2;7772:3;7768:12;7761:19;;7566:220;;;:::o;7792:366::-;7934:3;7955:67;8019:2;8014:3;7955:67;:::i;:::-;7948:74;;8031:93;8120:3;8031:93;:::i;:::-;8149:2;8144:3;8140:12;8133:19;;7938:220;;;:::o;8164:366::-;8306:3;8327:67;8391:2;8386:3;8327:67;:::i;:::-;8320:74;;8403:93;8492:3;8403:93;:::i;:::-;8521:2;8516:3;8512:12;8505:19;;8310:220;;;:::o;8536:366::-;8678:3;8699:67;8763:2;8758:3;8699:67;:::i;:::-;8692:74;;8775:93;8864:3;8775:93;:::i;:::-;8893:2;8888:3;8884:12;8877:19;;8682:220;;;:::o;8908:366::-;9050:3;9071:67;9135:2;9130:3;9071:67;:::i;:::-;9064:74;;9147:93;9236:3;9147:93;:::i;:::-;9265:2;9260:3;9256:12;9249:19;;9054:220;;;:::o;9280:366::-;9422:3;9443:67;9507:2;9502:3;9443:67;:::i;:::-;9436:74;;9519:93;9608:3;9519:93;:::i;:::-;9637:2;9632:3;9628:12;9621:19;;9426:220;;;:::o;9652:366::-;9794:3;9815:67;9879:2;9874:3;9815:67;:::i;:::-;9808:74;;9891:93;9980:3;9891:93;:::i;:::-;10009:2;10004:3;10000:12;9993:19;;9798:220;;;:::o;10024:115::-;10109:23;10126:5;10109:23;:::i;:::-;10104:3;10097:36;10087:52;;:::o;10145:118::-;10232:24;10250:5;10232:24;:::i;:::-;10227:3;10220:37;10210:53;;:::o;10269:112::-;10352:22;10368:5;10352:22;:::i;:::-;10347:3;10340:35;10330:51;;:::o;10387:222::-;10480:4;10518:2;10507:9;10503:18;10495:26;;10531:71;10599:1;10588:9;10584:17;10575:6;10531:71;:::i;:::-;10485:124;;;;:::o;10615:210::-;10702:4;10740:2;10729:9;10725:18;10717:26;;10753:65;10815:1;10804:9;10800:17;10791:6;10753:65;:::i;:::-;10707:118;;;;:::o;10831:313::-;10944:4;10982:2;10971:9;10967:18;10959:26;;11031:9;11025:4;11021:20;11017:1;11006:9;11002:17;10995:47;11059:78;11132:4;11123:6;11059:78;:::i;:::-;11051:86;;10949:195;;;;:::o;11150:419::-;11316:4;11354:2;11343:9;11339:18;11331:26;;11403:9;11397:4;11393:20;11389:1;11378:9;11374:17;11367:47;11431:131;11557:4;11431:131;:::i;:::-;11423:139;;11321:248;;;:::o;11575:419::-;11741:4;11779:2;11768:9;11764:18;11756:26;;11828:9;11822:4;11818:20;11814:1;11803:9;11799:17;11792:47;11856:131;11982:4;11856:131;:::i;:::-;11848:139;;11746:248;;;:::o;12000:419::-;12166:4;12204:2;12193:9;12189:18;12181:26;;12253:9;12247:4;12243:20;12239:1;12228:9;12224:17;12217:47;12281:131;12407:4;12281:131;:::i;:::-;12273:139;;12171:248;;;:::o;12425:419::-;12591:4;12629:2;12618:9;12614:18;12606:26;;12678:9;12672:4;12668:20;12664:1;12653:9;12649:17;12642:47;12706:131;12832:4;12706:131;:::i;:::-;12698:139;;12596:248;;;:::o;12850:419::-;13016:4;13054:2;13043:9;13039:18;13031:26;;13103:9;13097:4;13093:20;13089:1;13078:9;13074:17;13067:47;13131:131;13257:4;13131:131;:::i;:::-;13123:139;;13021:248;;;:::o;13275:419::-;13441:4;13479:2;13468:9;13464:18;13456:26;;13528:9;13522:4;13518:20;13514:1;13503:9;13499:17;13492:47;13556:131;13682:4;13556:131;:::i;:::-;13548:139;;13446:248;;;:::o;13700:419::-;13866:4;13904:2;13893:9;13889:18;13881:26;;13953:9;13947:4;13943:20;13939:1;13928:9;13924:17;13917:47;13981:131;14107:4;13981:131;:::i;:::-;13973:139;;13871:248;;;:::o;14125:419::-;14291:4;14329:2;14318:9;14314:18;14306:26;;14378:9;14372:4;14368:20;14364:1;14353:9;14349:17;14342:47;14406:131;14532:4;14406:131;:::i;:::-;14398:139;;14296:248;;;:::o;14550:419::-;14716:4;14754:2;14743:9;14739:18;14731:26;;14803:9;14797:4;14793:20;14789:1;14778:9;14774:17;14767:47;14831:131;14957:4;14831:131;:::i;:::-;14823:139;;14721:248;;;:::o;14975:419::-;15141:4;15179:2;15168:9;15164:18;15156:26;;15228:9;15222:4;15218:20;15214:1;15203:9;15199:17;15192:47;15256:131;15382:4;15256:131;:::i;:::-;15248:139;;15146:248;;;:::o;15400:419::-;15566:4;15604:2;15593:9;15589:18;15581:26;;15653:9;15647:4;15643:20;15639:1;15628:9;15624:17;15617:47;15681:131;15807:4;15681:131;:::i;:::-;15673:139;;15571:248;;;:::o;15825:419::-;15991:4;16029:2;16018:9;16014:18;16006:26;;16078:9;16072:4;16068:20;16064:1;16053:9;16049:17;16042:47;16106:131;16232:4;16106:131;:::i;:::-;16098:139;;15996:248;;;:::o;16250:419::-;16416:4;16454:2;16443:9;16439:18;16431:26;;16503:9;16497:4;16493:20;16489:1;16478:9;16474:17;16467:47;16531:131;16657:4;16531:131;:::i;:::-;16523:139;;16421:248;;;:::o;16675:218::-;16766:4;16804:2;16793:9;16789:18;16781:26;;16817:69;16883:1;16872:9;16868:17;16859:6;16817:69;:::i;:::-;16771:122;;;;:::o;16899:222::-;16992:4;17030:2;17019:9;17015:18;17007:26;;17043:71;17111:1;17100:9;17096:17;17087:6;17043:71;:::i;:::-;16997:124;;;;:::o;17127:831::-;17390:4;17428:3;17417:9;17413:19;17405:27;;17442:71;17510:1;17499:9;17495:17;17486:6;17442:71;:::i;:::-;17523:80;17599:2;17588:9;17584:18;17575:6;17523:80;:::i;:::-;17650:9;17644:4;17640:20;17635:2;17624:9;17620:18;17613:48;17678:108;17781:4;17772:6;17678:108;:::i;:::-;17670:116;;17796:72;17864:2;17853:9;17849:18;17840:6;17796:72;:::i;:::-;17878:73;17946:3;17935:9;17931:19;17922:6;17878:73;:::i;:::-;17395:563;;;;;;;;:::o;17964:214::-;18053:4;18091:2;18080:9;18076:18;18068:26;;18104:67;18168:1;18157:9;18153:17;18144:6;18104:67;:::i;:::-;18058:120;;;;:::o;18184:132::-;18251:4;18274:3;18266:11;;18304:4;18299:3;18295:14;18287:22;;18256:60;;;:::o;18322:114::-;18389:6;18423:5;18417:12;18407:22;;18396:40;;;:::o;18442:99::-;18494:6;18528:5;18522:12;18512:22;;18501:40;;;:::o;18547:113::-;18617:4;18649;18644:3;18640:14;18632:22;;18622:38;;;:::o;18666:184::-;18765:11;18799:6;18794:3;18787:19;18839:4;18834:3;18830:14;18815:29;;18777:73;;;;:::o;18856:169::-;18940:11;18974:6;18969:3;18962:19;19014:4;19009:3;19005:14;18990:29;;18952:73;;;;:::o;19031:305::-;19071:3;19090:20;19108:1;19090:20;:::i;:::-;19085:25;;19124:20;19142:1;19124:20;:::i;:::-;19119:25;;19278:1;19210:66;19206:74;19203:1;19200:81;19197:2;;;19284:18;;:::i;:::-;19197:2;19328:1;19325;19321:9;19314:16;;19075:261;;;;:::o;19342:185::-;19382:1;19399:20;19417:1;19399:20;:::i;:::-;19394:25;;19433:20;19451:1;19433:20;:::i;:::-;19428:25;;19472:1;19462:2;;19477:18;;:::i;:::-;19462:2;19519:1;19516;19512:9;19507:14;;19384:143;;;;:::o;19533:848::-;19594:5;19601:4;19625:6;19616:15;;19649:5;19640:14;;19663:712;19684:1;19674:8;19671:15;19663:712;;;19779:4;19774:3;19770:14;19764:4;19761:24;19758:2;;;19788:18;;:::i;:::-;19758:2;19838:1;19828:8;19824:16;19821:2;;;20253:4;20246:5;20242:16;20233:25;;19821:2;20303:4;20297;20293:15;20285:23;;20333:32;20356:8;20333:32;:::i;:::-;20321:44;;19663:712;;;19606:775;;;;;;;:::o;20387:281::-;20445:5;20469:23;20487:4;20469:23;:::i;:::-;20461:31;;20513:25;20529:8;20513:25;:::i;:::-;20501:37;;20557:104;20594:66;20584:8;20578:4;20557:104;:::i;:::-;20548:113;;20451:217;;;;:::o;20674:1073::-;20728:5;20919:8;20909:2;;20940:1;20931:10;;20942:5;;20909:2;20968:4;20958:2;;20985:1;20976:10;;20987:5;;20958:2;21054:4;21102:1;21097:27;;;;21138:1;21133:191;;;;21047:277;;21097:27;21115:1;21106:10;;21117:5;;;21133:191;21178:3;21168:8;21165:17;21162:2;;;21185:18;;:::i;:::-;21162:2;21234:8;21231:1;21227:16;21218:25;;21269:3;21262:5;21259:14;21256:2;;;21276:18;;:::i;:::-;21256:2;21309:5;;;21047:277;;21433:2;21423:8;21420:16;21414:3;21408:4;21405:13;21401:36;21383:2;21373:8;21370:16;21365:2;21359:4;21356:12;21352:35;21336:111;21333:2;;;21489:8;21483:4;21479:19;21470:28;;21524:3;21517:5;21514:14;21511:2;;;21531:18;;:::i;:::-;21511:2;21564:5;;21333:2;21604:42;21642:3;21632:8;21626:4;21623:1;21604:42;:::i;:::-;21589:57;;;;21678:4;21673:3;21669:14;21662:5;21659:25;21656:2;;;21687:18;;:::i;:::-;21656:2;21736:4;21729:5;21725:16;21716:25;;20734:1013;;;;;;:::o;21753:348::-;21793:7;21816:20;21834:1;21816:20;:::i;:::-;21811:25;;21850:20;21868:1;21850:20;:::i;:::-;21845:25;;22038:1;21970:66;21966:74;21963:1;21960:81;21955:1;21948:9;21941:17;21937:105;21934:2;;;22045:18;;:::i;:::-;21934:2;22093:1;22090;22086:9;22075:20;;21801:300;;;;:::o;22107:191::-;22147:4;22167:20;22185:1;22167:20;:::i;:::-;22162:25;;22201:20;22219:1;22201:20;:::i;:::-;22196:25;;22240:1;22237;22234:8;22231:2;;;22245:18;;:::i;:::-;22231:2;22290:1;22287;22283:9;22275:17;;22152:146;;;;:::o;22304:96::-;22341:7;22370:24;22388:5;22370:24;:::i;:::-;22359:35;;22349:51;;;:::o;22406:90::-;22440:7;22483:5;22476:13;22469:21;22458:32;;22448:48;;;:::o;22502:89::-;22538:7;22578:6;22571:5;22567:18;22556:29;;22546:45;;;:::o;22597:126::-;22634:7;22674:42;22667:5;22663:54;22652:65;;22642:81;;;:::o;22729:77::-;22766:7;22795:5;22784:16;;22774:32;;;:::o;22812:86::-;22847:7;22887:4;22880:5;22876:16;22865:27;;22855:43;;;:::o;22904:121::-;22962:9;22995:24;23013:5;22995:24;:::i;:::-;22982:37;;22972:53;;;:::o;23031:307::-;23099:1;23109:113;23123:6;23120:1;23117:13;23109:113;;;23208:1;23203:3;23199:11;23193:18;23189:1;23184:3;23180:11;23173:39;23145:2;23142:1;23138:10;23133:15;;23109:113;;;23240:6;23237:1;23234:13;23231:2;;;23320:1;23311:6;23306:3;23302:16;23295:27;23231:2;23080:258;;;;:::o;23344:180::-;23392:77;23389:1;23382:88;23489:4;23486:1;23479:15;23513:4;23510:1;23503:15;23530:180;23578:77;23575:1;23568:88;23675:4;23672:1;23665:15;23699:4;23696:1;23689:15;23716:102;23757:6;23808:2;23804:7;23799:2;23792:5;23788:14;23784:28;23774:38;;23764:54;;;:::o;23824:102::-;23866:8;23913:5;23910:1;23906:13;23885:34;;23875:51;;;:::o;23932:222::-;24072:34;24068:1;24060:6;24056:14;24049:58;24141:5;24136:2;24128:6;24124:15;24117:30;24038:116;:::o;24160:175::-;24300:27;24296:1;24288:6;24284:14;24277:51;24266:69;:::o;24341:236::-;24481:34;24477:1;24469:6;24465:14;24458:58;24550:19;24545:2;24537:6;24533:15;24526:44;24447:130;:::o;24583:225::-;24723:34;24719:1;24711:6;24707:14;24700:58;24792:8;24787:2;24779:6;24775:15;24768:33;24689:119;:::o;24814:221::-;24954:34;24950:1;24942:6;24938:14;24931:58;25023:4;25018:2;25010:6;25006:15;24999:29;24920:115;:::o;25041:179::-;25181:31;25177:1;25169:6;25165:14;25158:55;25147:73;:::o;25226:227::-;25366:34;25362:1;25354:6;25350:14;25343:58;25435:10;25430:2;25422:6;25418:15;25411:35;25332:121;:::o;25459:182::-;25599:34;25595:1;25587:6;25583:14;25576:58;25565:76;:::o;25647:228::-;25787:34;25783:1;25775:6;25771:14;25764:58;25856:11;25851:2;25843:6;25839:15;25832:36;25753:122;:::o;25881:224::-;26021:34;26017:1;26009:6;26005:14;25998:58;26090:7;26085:2;26077:6;26073:15;26066:32;25987:118;:::o;26111:176::-;26251:28;26247:1;26239:6;26235:14;26228:52;26217:70;:::o;26293:223::-;26433:34;26429:1;26421:6;26417:14;26410:58;26502:6;26497:2;26489:6;26485:15;26478:31;26399:117;:::o;26522:173::-;26662:25;26658:1;26650:6;26646:14;26639:49;26628:67;:::o;26701:122::-;26774:24;26792:5;26774:24;:::i;:::-;26767:5;26764:35;26754:2;;26813:1;26810;26803:12;26754:2;26744:79;:::o;26829:122::-;26902:24;26920:5;26902:24;:::i;:::-;26895:5;26892:35;26882:2;;26941:1;26938;26931:12;26882:2;26872:79;:::o

Swarm Source

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