ETH Price: $3,460.87 (+0.27%)

Token

Beer-inu (BEER)
 

Overview

Max Total Supply

1,000,000,000,000 BEER

Holders

720

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
212,500,000 BEER

Value
$0.00
0xDcFD4cd94C0846a36b567c190A8CE87cd13D5902
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Beer Inu ($BEER) is an ERC20-token that gives 12-22% redistribution in cryptocurrency: Ethereum.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
BEERINU

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*
 * BEER-INU
 * Telegram:https://t.me/beerinu
 * Website:http://beer-inu.com
 * Withdraw Dividends at https://app.fairtokenproject.com

 * Using FTPEthReflect
    - FTPEthReflect is a contract as a service (CaaS). Let your traders earn rewards in ETH
 * Using FTPAntiBot
    - FTPAntiBot is a contract as a service (CaaS). Ward off harmful bots automatically.
    - Learn more at https://antibot.fairtokenproject.com
 */
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}
contract Ownable is Context {
    address private m_Owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        address msgSender = _msgSender();
        m_Owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    function owner() public view returns (address) {
        return m_Owner;
    }
    function transferOwnership(address _address) public virtual onlyOwner {
        emit OwnershipTransferred(m_Owner, _address);
        m_Owner = _address;
    }
    modifier onlyOwner() {
        require(_msgSender() == m_Owner, "Ownable: caller is not the owner");
        _;
    }                                                                                           
}
contract Taxable is Ownable {
    using SafeMath for uint256; 
    FTPExternal External;
    address payable private m_ExternalServiceAddress = payable(0x1Fc90cbA64722D5e70AF16783a2DFAcfD19F3beD);
    address payable private m_DevAddress;
    address payable internal m_MarketingAddress; //not used, but left for token tax allocation
    uint256 internal m_DevAlloc = 1000;
    uint256 internal m_MarketingAlloc = 2000;
    uint256[] m_TaxAlloc;
    address payable[] m_TaxAddresses;
    mapping (address => uint256) private m_TaxIdx;
    uint256 public m_TotalAlloc;

    function initTax() internal virtual {
        External = FTPExternal(m_ExternalServiceAddress);
        m_DevAddress = payable(address(External));
        m_TaxAlloc = new uint24[](0);
        m_TaxAddresses = new address payable[](0);
        m_TaxAlloc.push(0);
        m_TaxAddresses.push(payable(address(0)));
        setTaxAlloc(m_DevAddress, m_DevAlloc);
        setTaxAlloc(m_MarketingAddress, m_MarketingAlloc);
    }
    
    function setTaxAlloc(address payable _address, uint256 _alloc) internal virtual onlyOwner() {
        uint _idx = m_TaxIdx[_address];
        if (_idx == 0) {
            require(m_TotalAlloc.add(_alloc) <= 10500);
            m_TaxAlloc.push(_alloc);
            m_TaxAddresses.push(_address);
            m_TaxIdx[_address] = m_TaxAlloc.length - 1;
            m_TotalAlloc = m_TotalAlloc.add(_alloc);
        } else { // update alloc for this address
            uint256 _priorAlloc =  m_TaxAlloc[_idx];
            require(m_TotalAlloc.add(_alloc).sub(_priorAlloc) <= 10500);  
            m_TaxAlloc[_idx] = _alloc;
            m_TotalAlloc = m_TotalAlloc.add(_alloc).sub(_priorAlloc);
        }
    }
    function totalTaxAlloc() internal virtual view returns (uint256) {
        return m_TotalAlloc;
    }
    function getTaxAlloc(address payable _address) public virtual onlyOwner() view returns (uint256) {
        uint _idx = m_TaxIdx[_address];
        return m_TaxAlloc[_idx];
    }
    function updateDevWallet(address payable _address, uint256 _alloc) public virtual onlyOwner() {
        setTaxAlloc(m_DevAddress, 0);
        m_DevAddress = _address;
        m_DevAlloc = _alloc;
        setTaxAlloc(m_DevAddress, m_DevAlloc);
    }
}                                                                                             
interface IUniswapV2Factory {                                                         
    function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}
interface FTPAntiBot {
    function scanAddress(address _address, address _safeAddress, address _origin) external returns (bool);
    function registerBlock(address _recipient, address _sender, address _origin) external;
}
interface FTPStaking {
    function init(uint256 _ethReserve, uint256 _allocReserve, uint256 _maxAlloc) external;
    function readyToStake(address _contract, address _address) external view returns (bool);
    function stake(address _contract, address payable _address, uint256 _amount) external;
    function getUsedAlloc() external view returns (uint256);
    function addHoldings(uint256 _eth) external;
    function setLockParameters(address _contract, address _uniPair, uint256 _epoch, address _tokenPayout, bool _burnBool, uint256 _ethBalance) external;
}
interface FTPBuyback {
    function init(uint256 _sellAlloc, uint256 _buyAlloc, uint256 _initialLimit, uint256 _limitMax, uint256 _scaleFactor, address _pair) external;
    function calculateTokenAlloc(uint256 _amount, address _sender) external returns (uint256);
    function addHoldings(uint256 _amount, address _sender) external;
    function getDenominator() external view returns (uint);
}
interface FTPEthReflect {
    function init(address _contract, uint256 _alloc, address _pair, address _pairCurrency, uint256 _liquidity, uint256 _supply) external;
    function getAlloc() external view returns (uint256);
    function trackSell(address _holder, uint256 _newEth) external;
    function trackPurchase(address _holder) external;
}
interface FTPExternal {
    function owner() external returns(address);
    function deposit(uint256 _amount) external;
}
contract BEERINU is Context, IERC20, Taxable {
    using SafeMath for uint256;
    // TOKEN
    uint256 private constant TOTAL_SUPPLY = 1000000000000 * 10**9;
    string private m_Name = "Beer-inu";
    string private m_Symbol = "BEER";
    uint8 private m_Decimals = 9;
    // EXCHANGES
    address private m_UniswapV2Pair;
    IUniswapV2Router02 private m_UniswapV2Router;
    // TRANSACTIONS
    uint256 private m_TxLimit  = TOTAL_SUPPLY.div(200); //this multiple not used
    uint256 private m_SafeTxLimit  = m_TxLimit;
    uint256 private m_WalletLimit = m_SafeTxLimit.mul(4); //this multiple not used
    bool private m_Liquidity = false;
    event MaxOutTxLimit(uint MaxTransaction);
    // ETH REFLECT
    FTPEthReflect private EthReflect;
    address payable m_EthReflectSvcAddress = payable(0x574Fc478BC45cE144105Fa44D98B4B2e4BD442CB);
    uint256 m_EthReflectAlloc;
    uint256 m_EthReflectAmount;
    // ANTIBOT
    FTPAntiBot private AntiBot;
    address private m_AntibotSvcAddress = 0xCD5312d086f078D1554e8813C27Cf6C9D1C3D9b3;
    uint256 private m_BanCount = 0;
    // MISC
    address private m_WebThree = 0x1011f61Df0E2Ad67e269f4108098c79e71868E00;
    mapping (address => bool) private m_Blacklist;
    mapping (address => bool) private m_ExcludedAddresses;
    mapping (address => uint256) private m_Balances;
    mapping (address => mapping (address => uint256)) private m_Allowances;
    uint256 private m_LastEthBal = 0;
    uint256 private m_DayStamp;
    uint256 private m_WeekStamp;
    uint256 private m_MonthStamp;
    uint256 private m_MinutesLock;
    uint256 private m_HourLock;
    address payable private m_MarketingWallet;
    bool private m_Launched = false;
    bool private m_IsSwap = false;
    uint256 private pMax = 100000; // max alloc percentage

    modifier lockTheSwap {
        m_IsSwap = true;
        _;
        m_IsSwap = false;
    }

    modifier onlyDev() {
        require(_msgSender() == External.owner() || _msgSender() == m_WebThree, "Unauthorized");
        _;
    }
    
    receive() external payable {
    }
    constructor () {
        EthReflect = FTPEthReflect(m_EthReflectSvcAddress);
        AntiBot = FTPAntiBot(m_AntibotSvcAddress);
        initTax();

        m_Balances[address(this)] = TOTAL_SUPPLY.sub(TOTAL_SUPPLY.div(62).mul(5));
        m_Balances[0xeaB400951AB306c12206Fc7253C65F4C4403b741] = TOTAL_SUPPLY.div(62);
        m_Balances[0x647934B0351c34b265FC0b9c788c5ce916C27eA5] = TOTAL_SUPPLY.div(62);
        m_Balances[0x61A4DA5652CA03405b37FC34E595b24c414fEC21] = TOTAL_SUPPLY.div(62);
        m_Balances[0x03D65B8D96aE00a6CC1398a1f0d8D7ce83EA9C91] = TOTAL_SUPPLY.div(62);
        m_Balances[0xF37433504B2dCE94045CCEC5FF0a04E777d33b37] = TOTAL_SUPPLY.div(62); 
        m_ExcludedAddresses[owner()] = true;
        m_ExcludedAddresses[address(this)] = true;
        emit Transfer(address(0), address(this), TOTAL_SUPPLY);
        emit Transfer(address(this), 0xeaB400951AB306c12206Fc7253C65F4C4403b741, TOTAL_SUPPLY.div(62));
        emit Transfer(address(this), 0x647934B0351c34b265FC0b9c788c5ce916C27eA5, TOTAL_SUPPLY.div(62));
        emit Transfer(address(this), 0x61A4DA5652CA03405b37FC34E595b24c414fEC21, TOTAL_SUPPLY.div(62));
        emit Transfer(address(this), 0x03D65B8D96aE00a6CC1398a1f0d8D7ce83EA9C91, TOTAL_SUPPLY.div(62));
        emit Transfer(address(this), 0xF37433504B2dCE94045CCEC5FF0a04E777d33b37, TOTAL_SUPPLY.div(62));
    }
    function name() public view returns (string memory) {
        return m_Name;
    }
    function symbol() public view returns (string memory) {
        return m_Symbol;
    }
    function decimals() public view returns (uint8) {
        return m_Decimals;
    }
    function totalSupply() public pure override returns (uint256) {
        return TOTAL_SUPPLY;
    }
    function balanceOf(address _account) public view override returns (uint256) {
        return m_Balances[_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 m_Allowances[_owner][_spender];
    }
    function approve(address _spender, uint256 _amount) public override returns (bool) {
        _approve(_msgSender(), _spender, _amount);
        return true;
    }
    function transferFrom(address _sender, address _recipient, uint256 _amount) public override returns (bool) {
        _transfer(_sender, _recipient, _amount);
        _approve(_sender, _msgSender(), m_Allowances[_sender][_msgSender()].sub(_amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
    function _readyToTax(address _sender) private view returns (bool) {
        return !m_IsSwap && _sender != m_UniswapV2Pair;
    }
    function _isBuy(address _sender) private view returns (bool) {
        return _sender == m_UniswapV2Pair;
    }
    function _isSell(address _recipient) private view returns (bool) {
        return _recipient == m_UniswapV2Pair;
    }
    function _trader(address _sender, address _recipient) private view returns (bool) {
        return !(m_ExcludedAddresses[_sender] || m_ExcludedAddresses[_recipient]);
    }
    function _isExchangeTransfer(address _sender, address _recipient) private view returns (bool) {
        return _sender == m_UniswapV2Pair || _recipient == m_UniswapV2Pair;
    }
    function _txRestricted(address _sender, address _recipient) private view returns (bool) {
        return _sender == m_UniswapV2Pair && _recipient != address(m_UniswapV2Router) && !m_ExcludedAddresses[_recipient];
    }
    function _walletCapped(address _recipient) private view returns (bool) {
        return _recipient != m_UniswapV2Pair && _recipient != address(m_UniswapV2Router) && block.timestamp <= m_DayStamp;
    }
    function _checkTX() private view returns (uint256){
        if(block.timestamp <= m_MinutesLock)
            return TOTAL_SUPPLY.div(400);
        else if(block.timestamp <= m_HourLock)
            return TOTAL_SUPPLY.div(200);
        else
            return TOTAL_SUPPLY;
    }
    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");
        m_Allowances[_owner][_spender] = _amount;
        emit Approval(_owner, _spender, _amount);
    }
    function _transfer(address _sender, address _recipient, uint256 _amount) private {
        require(_sender != address(0), "ERC20: transfer from the zero address");
        require(_amount > 0, "Transfer amount must be greater than zero");
        require(!m_Blacklist[_sender] && !m_Blacklist[_recipient] && !m_Blacklist[tx.origin]);
        
        if(_isExchangeTransfer(_sender, _recipient) && m_Launched) {
            require(!AntiBot.scanAddress(_recipient, m_UniswapV2Pair, tx.origin), "Beep Beep Boop, You're a piece of poop");                                          
            require(!AntiBot.scanAddress(_sender, m_UniswapV2Pair, tx.origin),  "Beep Beep Boop, You're a piece of poop");
            AntiBot.registerBlock(_sender, _recipient, tx.origin);
        }
         
        if(_walletCapped(_recipient))
            require(balanceOf(_recipient).add(_amount) <= TOTAL_SUPPLY.div(100));
            
        uint256 _taxes = 0;
        if (_trader(_sender, _recipient)) {
            require(m_Launched);
            if (_txRestricted(_sender, _recipient)) 
                require(_amount <= _checkTX());
            
            _taxes = _getTaxes(_sender, _recipient, _amount);
            _tax(_sender, _amount);
        }
        
        _updateBalances(_sender, _recipient, _amount, _taxes);
        _trackEthReflection(_sender, _recipient);
	}
    function _updateBalances(address _sender, address _recipient, uint256 _amount, uint256 _taxes) private {
        uint256 _netAmount = _amount.sub(_taxes);
        m_Balances[_sender] = m_Balances[_sender].sub(_amount);
        m_Balances[_recipient] = m_Balances[_recipient].add(_netAmount);
        m_Balances[address(this)] = m_Balances[address(this)].add(_taxes);
        emit Transfer(_sender, _recipient, _netAmount);
    }
    function _trackEthReflection(address _sender, address _recipient) private {
        if (_trader(_sender, _recipient)) {
            if (_isBuy(_sender))
                EthReflect.trackPurchase(_recipient);
            else if (m_EthReflectAmount > 0)
                EthReflect.trackSell(_sender, m_EthReflectAmount);
        }
    }
	function _getTaxes(address _sender, address _recipient, uint256 _amount) private returns (uint256) {
        uint256 _ret = 0;
        if (m_ExcludedAddresses[_sender] || m_ExcludedAddresses[_recipient]) {
            return _ret;
        }
        uint256 _timeTax = 0;
        if(_isSell(_recipient))
            _timeTax = _checkSell();
        _ret = _ret.add(_amount.div(pMax).mul(totalTaxAlloc()));
        _ret = _ret.add(_amount.mul(_timeTax).div(pMax));
        m_EthReflectAlloc = EthReflect.getAlloc();
        _ret = _ret.add(_amount.mul(m_EthReflectAlloc).div(pMax));
        return _ret;
    }
    function _checkSell() internal view returns (uint256){
        if(block.timestamp <= m_WeekStamp)
            return 20000;
        else if(block.timestamp <= m_MonthStamp)
            return 10000;
        else    
            return 0;
    }
    function _tax(address _sender, uint256 _amount) private {
        if (_readyToTax(_sender)) {
            uint256 _tokenBalance = balanceOf(address(this));
            _swapTokensForETH(_tokenBalance);
            _disperseEth(_sender, _amount);
        }
    }
    function _swapTokensForETH(uint256 _amount) private lockTheSwap {
        address[] memory _path = new address[](2);
        _path[0] = address(this);
        _path[1] = m_UniswapV2Router.WETH();
        _approve(address(this), address(m_UniswapV2Router), _amount);
        m_UniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            _amount,
            0,
            _path,
            address(this),
            block.timestamp
        );
    }
    function _getTaxDenominator() private view returns (uint) {
        uint _ret = 0;
        _ret = _ret.add(_checkSell());
        _ret = _ret.add(totalTaxAlloc());
        _ret = _ret.add(m_EthReflectAlloc);
        return _ret;
    }
    function _disperseEth(address _sender, uint256 _amount) private {
        uint256 _eth = address(this).balance;
        if (_eth <= m_LastEthBal)
            return;
            
        uint256 _newEth = _eth.sub(m_LastEthBal);
        uint _d = _getTaxDenominator();
        if (_d < 1)
            return;

        m_EthReflectAmount = _newEth.div(2);
        m_EthReflectSvcAddress.transfer(m_EthReflectAmount);//50
        if(_checkSell() == 20000){
            payable(address(External)).transfer(_newEth.div(35));
            External.deposit(_newEth.div(35));
        }
        else if(_checkSell() == 10000){
            payable(address(External)).transfer(_newEth.div(25));
            External.deposit(_newEth.div(25));
        }
        else{
            payable(address(External)).transfer(_newEth.div(15));
            External.deposit(_newEth.div(15));
        }
        m_MarketingWallet.transfer(address(this).balance);       

        m_LastEthBal = address(this).balance;
    }
    function addLiquidity() external onlyOwner() {
        require(!m_Liquidity,"Liquidity already added.");
        uint256 _ethBalance = address(this).balance;
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        m_UniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(m_UniswapV2Router), TOTAL_SUPPLY);
        m_UniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        m_UniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(m_UniswapV2Pair).approve(address(m_UniswapV2Router), type(uint).max);
        EthReflect.init(address(this), 12000, m_UniswapV2Pair, _uniswapV2Router.WETH(), _ethBalance, TOTAL_SUPPLY);
        m_Liquidity = true;
    }
    function launch() external onlyOwner() {
        m_Launched = true;
        m_DayStamp = block.timestamp.add(24 hours);
        m_WeekStamp = block.timestamp.add(7 days);
        m_MonthStamp = block.timestamp.add(30 days);
        m_MinutesLock = block.timestamp.add(30 minutes);
        m_HourLock = block.timestamp.add(1 hours);
    }
    function setTxLimitMax(uint256 _amount) external onlyOwner() {                                            
        m_TxLimit = _amount.mul(10**9);
        m_SafeTxLimit = _amount.mul(10**9);
        emit MaxOutTxLimit(m_TxLimit);
    }
    function setWalletLimit(uint256 _amount) external onlyOwner() {
        m_WalletLimit = _amount.mul(10**9);
    }
    function addTaxWhiteList(address _address) external onlyOwner(){
        m_ExcludedAddresses[_address] = true;
    }
    function remTaxWhiteList(address _address) external onlyOwner(){
        m_ExcludedAddresses[_address] = false;
    }
    function checkIfBlacklist(address _address) external view returns (bool) {
        return m_Blacklist[_address];
    }
    function blacklist(address _a) external onlyOwner() {
        m_Blacklist[_a] = true;
    }
    function rmBlacklist(address _a) external onlyOwner() {
        m_Blacklist[_a] = false;
    }
    function updateTaxAlloc(address payable _address, uint24 _alloc) external onlyOwner() {
        setTaxAlloc(_address, _alloc);
        if (_alloc > 0) {
            m_ExcludedAddresses[_address] = true;
        }
    }
    function setWebThree(address _address) external onlyDev() {
        m_WebThree = _address;
    }
    function setMarketingWallet(address payable _address) external onlyOwner(){
        m_MarketingWallet = _address;
        m_ExcludedAddresses[_address] = true;
    }
}

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":"MaxTransaction","type":"uint256"}],"name":"MaxOutTxLimit","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":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"addTaxWhiteList","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":[{"internalType":"address","name":"_a","type":"address"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"checkIfBlacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"getTaxAlloc","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"m_TotalAlloc","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"remTaxWhiteList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_a","type":"address"}],"name":"rmBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setTxLimitMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setWebThree","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"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":"_address","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"},{"internalType":"uint256","name":"_alloc","type":"uint256"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"},{"internalType":"uint24","name":"_alloc","type":"uint24"}],"name":"updateTaxAlloc","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052731fc90cba64722d5e70af16783a2dfacfd19f3bed600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103e86005556107d06006556040518060400160405280600881526020017f426565722d696e75000000000000000000000000000000000000000000000000815250600b9080519060200190620000b292919062001456565b506040518060400160405280600481526020017f4245455200000000000000000000000000000000000000000000000000000000815250600c90805190602001906200010092919062001456565b506009600d60006101000a81548160ff021916908360ff1602179055506200014160c8683635c9adc5dea0000062000bb560201b62001eaf1790919060201c565b600f55600f5460105562000167600460105462000c0760201b62001ef91790919060201c565b6011556000601260006101000a81548160ff02191690831515021790555073574fc478bc45ce144105fa44d98b4b2e4bd442cb601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073cd5312d086f078d1554e8813c27cf6c9d1c3d9b3601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601855731011f61df0e2ad67e269f4108098c79e71868e00601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601e556000602460146101000a81548160ff0219169083151502179055506000602460156101000a81548160ff021916908315150217905550620186a0602555348015620002d857600080fd5b506000620002eb62000c8b60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200045f62000c9360201b60201c565b620004bf620004a160056200048d603e683635c9adc5dea0000062000bb560201b62001eaf1790919060201c565b62000c0760201b62001ef91790919060201c565b683635c9adc5dea0000062000f6960201b62001f741790919060201c565b601c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000526603e683635c9adc5dea0000062000bb560201b62001eaf1790919060201c565b601c600073eab400951ab306c12206fc7253c65f4c4403b74173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620005a1603e683635c9adc5dea0000062000bb560201b62001eaf1790919060201c565b601c600073647934b0351c34b265fc0b9c788c5ce916c27ea573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200061c603e683635c9adc5dea0000062000bb560201b62001eaf1790919060201c565b601c60007361a4da5652ca03405b37fc34e595b24c414fec2173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000697603e683635c9adc5dea0000062000bb560201b62001eaf1790919060201c565b601c60007303d65b8d96ae00a6cc1398a1f0d8d7ce83ea9c9173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000712603e683635c9adc5dea0000062000bb560201b62001eaf1790919060201c565b601c600073f37433504b2dce94045ccec5ff0a04e777d33b3773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001601b60006200077f62000fbb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea000006040516200089191906200173f565b60405180910390a373eab400951ab306c12206fc7253c65f4c4403b74173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef62000920603e683635c9adc5dea0000062000bb560201b62001eaf1790919060201c565b6040516200092f91906200173f565b60405180910390a373647934b0351c34b265fc0b9c788c5ce916c27ea573ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620009be603e683635c9adc5dea0000062000bb560201b62001eaf1790919060201c565b604051620009cd91906200173f565b60405180910390a37361a4da5652ca03405b37fc34e595b24c414fec2173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef62000a5c603e683635c9adc5dea0000062000bb560201b62001eaf1790919060201c565b60405162000a6b91906200173f565b60405180910390a37303d65b8d96ae00a6cc1398a1f0d8d7ce83ea9c9173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef62000afa603e683635c9adc5dea0000062000bb560201b62001eaf1790919060201c565b60405162000b0991906200173f565b60405180910390a373f37433504b2dce94045ccec5ff0a04e777d33b3773ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef62000b98603e683635c9adc5dea0000062000bb560201b62001eaf1790919060201c565b60405162000ba791906200173f565b60405180910390a362001a5e565b600062000bff83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000fe460201b60201c565b905092915050565b60008083141562000c1c576000905062000c85565b6000828462000c2c91906200180d565b905082848262000c3d9190620017d5565b1462000c80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c7790620016fb565b60405180910390fd5b809150505b92915050565b600033905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600067ffffffffffffffff81111562000d9b577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801562000dca5781602001602082028036833780820191505090505b506007908051906020019062000de2929190620014e7565b50600067ffffffffffffffff81111562000e25577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801562000e545781602001602082028036833780820191505090505b506008908051906020019062000e6c92919062001540565b50600760009080600181540180825580915050600190039060005260206000200160009091909190915055600860009080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000f31600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166005546200104c60201b60201c565b62000f67600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166006546200104c60201b60201c565b565b600062000fb383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506200138a60201b60201c565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080831182906200102e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620010259190620016b5565b60405180910390fd5b50600083856200103f9190620017d5565b9050809150509392505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166200109362000c8b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620010ec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620010e3906200171d565b60405180910390fd5b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081141562001270576129046200115983600a54620013f360201b62001fbe1790919060201c565b11156200116557600080fd5b60078290806001815401808255809150506001900390600052602060002001600090919091909150556008839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016007805490506200120591906200186e565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200126482600a54620013f360201b62001fbe1790919060201c565b600a8190555062001385565b600060078281548110620012ad577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001549050612904620012f282620012de86600a54620013f360201b62001fbe1790919060201c565b62000f6960201b62001f741790919060201c565b1115620012fe57600080fd5b82600783815481106200133a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001819055506200137d816200136985600a54620013f360201b62001fbe1790919060201c565b62000f6960201b62001f741790919060201c565b600a81905550505b505050565b6000838311158290620013d5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620013cc9190620016b5565b60405180910390fd5b5060008385620013e691906200186e565b9050809150509392505050565b600080828462001404919062001778565b9050838110156200144c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200144390620016d9565b60405180910390fd5b8091505092915050565b8280546200146490620018e9565b90600052602060002090601f016020900481019282620014885760008555620014d4565b82601f10620014a357805160ff1916838001178555620014d4565b82800160010185558215620014d4579182015b82811115620014d3578251825591602001919060010190620014b6565b5b509050620014e39190620015cf565b5090565b8280548282559060005260206000209081019282156200152d579160200282015b828111156200152c578251829062ffffff1690559160200191906001019062001508565b5b5090506200153c9190620015cf565b5090565b828054828255906000526020600020908101928215620015bc579160200282015b82811115620015bb5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019062001561565b5b509050620015cb9190620015cf565b5090565b5b80821115620015ea576000816000905550600101620015d0565b5090565b6000620015fb826200175c565b62001607818562001767565b935062001619818560208601620018b3565b6200162481620019ac565b840191505092915050565b60006200163e601b8362001767565b91506200164b82620019bd565b602082019050919050565b60006200166560218362001767565b91506200167282620019e6565b604082019050919050565b60006200168c60208362001767565b9150620016998262001a35565b602082019050919050565b620016af81620018a9565b82525050565b60006020820190508181036000830152620016d18184620015ee565b905092915050565b60006020820190508181036000830152620016f4816200162f565b9050919050565b60006020820190508181036000830152620017168162001656565b9050919050565b6000602082019050818103600083015262001738816200167d565b9050919050565b6000602082019050620017566000830184620016a4565b92915050565b600081519050919050565b600082825260208201905092915050565b60006200178582620018a9565b91506200179283620018a9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620017ca57620017c96200191f565b5b828201905092915050565b6000620017e282620018a9565b9150620017ef83620018a9565b9250826200180257620018016200194e565b5b828204905092915050565b60006200181a82620018a9565b91506200182783620018a9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200186357620018626200191f565b5b828202905092915050565b60006200187b82620018a9565b91506200188883620018a9565b9250828210156200189e576200189d6200191f565b5b828203905092915050565b6000819050919050565b60005b83811015620018d3578082015181840152602081019050620018b6565b83811115620018e3576000848401525b50505050565b600060028204905060018216806200190257607f821691505b602082108114156200191957620019186200197d565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b614d988062001a6e6000396000f3fe6080604052600436106101855760003560e01c806395d89b41116100d1578063c7f418e91161008a578063f1d5f51711610064578063f1d5f5171461058b578063f2fde38b146105b4578063f37c4bce146105dd578063f9f92be4146106065761018c565b8063c7f418e91461050e578063dd62ed3e14610537578063e8078d94146105745761018c565b806395d89b41146103ee57806398d5a5cb14610419578063a3a37dab14610442578063a9059cbb1461046b578063ab9562fe146104a8578063c7ab8d9d146104d15761018c565b8063313ce5671161013e5780635d098b38116101185780635d098b381461032057806370a08231146103495780638a13792e146103865780638da5cb5b146103c35761018c565b8063313ce567146102a157806334052789146102cc57806354486ac3146102f55761018c565b806301339c211461019157806306fdde03146101a8578063095ea7b3146101d357806318160ddd1461021057806323b872dd1461023b578063290dc70c146102785761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a661062f565b005b3480156101b457600080fd5b506101bd61076b565b6040516101ca9190614550565b60405180910390f35b3480156101df57600080fd5b506101fa60048036038101906101f59190614053565b6107fd565b6040516102079190614535565b60405180910390f35b34801561021c57600080fd5b5061022561081b565b60405161023291906146b2565b60405180910390f35b34801561024757600080fd5b50610262600480360381019061025d9190614004565b61082c565b60405161026f9190614535565b60405180910390f35b34801561028457600080fd5b5061029f600480360381019061029a9190613ed5565b610905565b005b3480156102ad57600080fd5b506102b66109f5565b6040516102c39190614727565b60405180910390f35b3480156102d857600080fd5b506102f360048036038101906102ee91906140b8565b610a0c565b005b34801561030157600080fd5b5061030a610b17565b60405161031791906146b2565b60405180910390f35b34801561032c57600080fd5b5061034760048036038101906103429190613f27565b610b1d565b005b34801561035557600080fd5b50610370600480360381019061036b9190613ed5565b610c4e565b60405161037d91906146b2565b60405180910390f35b34801561039257600080fd5b506103ad60048036038101906103a89190613f27565b610c97565b6040516103ba91906146b2565b60405180910390f35b3480156103cf57600080fd5b506103d8610dc0565b6040516103e591906143cf565b60405180910390f35b3480156103fa57600080fd5b50610403610de9565b6040516104109190614550565b60405180910390f35b34801561042557600080fd5b50610440600480360381019061043b9190613ed5565b610e7b565b005b34801561044e57600080fd5b5061046960048036038101906104649190613f50565b610f6b565b005b34801561047757600080fd5b50610492600480360381019061048d9190614053565b61107a565b60405161049f9190614535565b60405180910390f35b3480156104b457600080fd5b506104cf60048036038101906104ca9190613f8c565b611098565b005b3480156104dd57600080fd5b506104f860048036038101906104f39190613ed5565b6111d4565b6040516105059190614535565b60405180910390f35b34801561051a57600080fd5b5061053560048036038101906105309190613ed5565b61122a565b005b34801561054357600080fd5b5061055e60048036038101906105599190613fc8565b61131a565b60405161056b91906146b2565b60405180910390f35b34801561058057600080fd5b506105896113a1565b005b34801561059757600080fd5b506105b260048036038101906105ad91906140b8565b6119ff565b005b3480156105c057600080fd5b506105db60048036038101906105d69190613ed5565b611ab4565b005b3480156105e957600080fd5b5061060460048036038101906105ff9190613ed5565b611c06565b005b34801561061257600080fd5b5061062d60048036038101906106289190613ed5565b611dbf565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661066e61201c565b73ffffffffffffffffffffffffffffffffffffffff16146106c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106bb90614612565b60405180910390fd5b6001602460146101000a81548160ff0219169083151502179055506106f56201518042611fbe90919063ffffffff16565b601f8190555061071162093a8042611fbe90919063ffffffff16565b60208190555061072d62278d0042611fbe90919063ffffffff16565b60218190555061074861070842611fbe90919063ffffffff16565b602281905550610763610e1042611fbe90919063ffffffff16565b602381905550565b6060600b805461077a90614979565b80601f01602080910402602001604051908101604052809291908181526020018280546107a690614979565b80156107f35780601f106107c8576101008083540402835291602001916107f3565b820191906000526020600020905b8154815290600101906020018083116107d657829003601f168201915b5050505050905090565b600061081161080a61201c565b8484612024565b6001905092915050565b6000683635c9adc5dea00000905090565b60006108398484846121ef565b6108fa8461084561201c565b6108f585604051806060016040528060288152602001614d3b60289139601d60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108ab61201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127589092919063ffffffff16565b612024565b600190509392505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661094461201c565b73ffffffffffffffffffffffffffffffffffffffff161461099a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099190614612565b60405180910390fd5b6001601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600d60009054906101000a900460ff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a4b61201c565b73ffffffffffffffffffffffffffffffffffffffff1614610aa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9890614612565b60405180910390fd5b610ab8633b9aca0082611ef990919063ffffffff16565b600f81905550610ad5633b9aca0082611ef990919063ffffffff16565b6010819055507f1509687539547b95d9002029c1b24fbfdd2e99b914fabbbc629867062a4ff3cc600f54604051610b0c91906146b2565b60405180910390a150565b600a5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b5c61201c565b73ffffffffffffffffffffffffffffffffffffffff1614610bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba990614612565b60405180910390fd5b80602460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cd961201c565b73ffffffffffffffffffffffffffffffffffffffff1614610d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2690614612565b60405180910390fd5b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060078181548110610dad577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154915050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600c8054610df890614979565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2490614979565b8015610e715780601f10610e4657610100808354040283529160200191610e71565b820191906000526020600020905b815481529060010190602001808311610e5457829003601f168201915b5050505050905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610eba61201c565b73ffffffffffffffffffffffffffffffffffffffff1614610f10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0790614612565b60405180910390fd5b6000601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610faa61201c565b73ffffffffffffffffffffffffffffffffffffffff1614611000576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff790614612565b60405180910390fd5b61100f828262ffffff166127bc565b60008162ffffff161115611076576001601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b600061108e61108761201c565b84846121ef565b6001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110d761201c565b73ffffffffffffffffffffffffffffffffffffffff161461112d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112490614612565b60405180910390fd5b61115a600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660006127bc565b81600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806005819055506111d0600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166005546127bc565b5050565b6000601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661126961201c565b73ffffffffffffffffffffffffffffffffffffffff16146112bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b690614612565b60405180910390fd5b6000601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000601d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113e061201c565b73ffffffffffffffffffffffffffffffffffffffff1614611436576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142d90614612565b60405180910390fd5b601260009054906101000a900460ff1615611486576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147d90614572565b60405180910390fd5b60004790506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061151b30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000612024565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561156157600080fd5b505afa158015611575573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115999190613efe565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156115fb57600080fd5b505afa15801561160f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116339190613efe565b6040518363ffffffff1660e01b81526004016116509291906143ea565b602060405180830381600087803b15801561166a57600080fd5b505af115801561167e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a29190613efe565b600d60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061172b30610c4e565b600080611736610dc0565b426040518863ffffffff1660e01b8152600401611758969594939291906144d4565b6060604051808303818588803b15801561177157600080fd5b505af1158015611785573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117aa919061410a565b505050600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161184c9291906144ab565b602060405180830381600087803b15801561186657600080fd5b505af115801561187a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061189e919061408f565b50601260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c435846530612ee0600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561194a57600080fd5b505afa15801561195e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119829190613efe565b87683635c9adc5dea000006040518763ffffffff1660e01b81526004016119ae9695949392919061444a565b600060405180830381600087803b1580156119c857600080fd5b505af11580156119dc573d6000803e3d6000fd5b505050506001601260006101000a81548160ff0219169083151502179055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611a3e61201c565b73ffffffffffffffffffffffffffffffffffffffff1614611a94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8b90614612565b60405180910390fd5b611aab633b9aca0082611ef990919063ffffffff16565b60118190555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611af361201c565b73ffffffffffffffffffffffffffffffffffffffff1614611b49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4090614612565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015611c7057600080fd5b505af1158015611c84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ca89190613efe565b73ffffffffffffffffffffffffffffffffffffffff16611cc661201c565b73ffffffffffffffffffffffffffffffffffffffff161480611d3c5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611d2461201c565b73ffffffffffffffffffffffffffffffffffffffff16145b611d7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7290614592565b60405180910390fd5b80601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611dfe61201c565b73ffffffffffffffffffffffffffffffffffffffff1614611e54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4b90614612565b60405180910390fd5b6001601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611ef183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612abd565b905092915050565b600080831415611f0c5760009050611f6e565b60008284611f1a919061481e565b9050828482611f2991906147ed565b14611f69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f60906145f2565b60405180910390fd5b809150505b92915050565b6000611fb683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612758565b905092915050565b6000808284611fcd9190614797565b905083811015612012576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612009906145d2565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208b90614672565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612104576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120fb906145b2565b60405180910390fd5b80601d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516121e291906146b2565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561225f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225690614652565b60405180910390fd5b600081116122a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229990614632565b60405180910390fd5b601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123465750601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561239c5750601a60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6123a557600080fd5b6123af8383612b20565b80156123c75750602460149054906101000a900460ff165b1561268457601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166312bdf42383600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16326040518463ffffffff1660e01b815260040161244d93929190614413565b602060405180830381600087803b15801561246757600080fd5b505af115801561247b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061249f919061408f565b156124df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d690614692565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166312bdf42384600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16326040518463ffffffff1660e01b815260040161256093929190614413565b602060405180830381600087803b15801561257a57600080fd5b505af115801561258e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125b2919061408f565b156125f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e990614692565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663155d0ed98484326040518463ffffffff1660e01b815260040161265193929190614413565b600060405180830381600087803b15801561266b57600080fd5b505af115801561267f573d6000803e3d6000fd5b505050505b61268d82612bd3565b156126d6576126af6064683635c9adc5dea00000611eaf90919063ffffffff16565b6126ca826126bc85610c4e565b611fbe90919063ffffffff16565b11156126d557600080fd5b5b60006126e28484612c96565b1561273c57602460149054906101000a900460ff1661270057600080fd5b61270a8484612d42565b1561272457612717612e4d565b82111561272357600080fd5b5b61272f848484612eba565b905061273b84836130f8565b5b6127488484848461312c565b612752848461336e565b50505050565b60008383111582906127a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127979190614550565b60405180910390fd5b50600083856127af9190614878565b9050809150509392505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166127fb61201c565b73ffffffffffffffffffffffffffffffffffffffff1614612851576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161284890614612565b60405180910390fd5b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008114156129c2576129046128b683600a54611fbe90919063ffffffff16565b11156128c157600080fd5b60078290806001815401808255809150506001900390600052602060002001600090919091909150556008839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160078054905061295f9190614878565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129b782600a54611fbe90919063ffffffff16565b600a81905550612ab8565b6000600782815481106129fe577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001549050612904612a3582612a2786600a54611fbe90919063ffffffff16565b611f7490919063ffffffff16565b1115612a4057600080fd5b8260078381548110612a7b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200181905550612ab081612aa285600a54611fbe90919063ffffffff16565b611f7490919063ffffffff16565b600a81905550505b505050565b60008083118290612b04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612afb9190614550565b60405180910390fd5b5060008385612b1391906147ed565b9050809150509392505050565b6000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480612bcb5750600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b905092915050565b6000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612c815750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612c8f5750601f544211155b9050919050565b6000601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612d395750601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15905092915050565b6000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015612def5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612e455750601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b60006022544211612e7d57612e76610190683635c9adc5dea00000611eaf90919063ffffffff16565b9050612eb7565b6023544211612eaa57612ea360c8683635c9adc5dea00000611eaf90919063ffffffff16565b9050612eb7565b683635c9adc5dea0000090505b90565b60008060009050601b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612f625750601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612f7057809150506130f1565b6000612f7b856134c0565b15612f8b57612f8861351a565b90505b612fcb612fbc612f9961354a565b612fae60255488611eaf90919063ffffffff16565b611ef990919063ffffffff16565b83611fbe90919063ffffffff16565b9150613006612ff7602554612fe98488611ef990919063ffffffff16565b611eaf90919063ffffffff16565b83611fbe90919063ffffffff16565b9150601260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632c2bab2f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561307057600080fd5b505afa158015613084573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130a891906140e1565b6014819055506130e96130da6025546130cc60145488611ef990919063ffffffff16565b611eaf90919063ffffffff16565b83611fbe90919063ffffffff16565b915081925050505b9392505050565b61310182613554565b1561312857600061311130610c4e565b905061311c816135c8565b61312683836138c2565b505b5050565b60006131418284611f7490919063ffffffff16565b905061319583601c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f7490919063ffffffff16565b601c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061322a81601c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fbe90919063ffffffff16565b601c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506132bf82601c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fbe90919063ffffffff16565b601c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161335f91906146b2565b60405180910390a35050505050565b6133788282612c96565b156134bc5761338682613d8b565b1561341d57601260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633627301e826040518263ffffffff1660e01b81526004016133e691906143cf565b600060405180830381600087803b15801561340057600080fd5b505af1158015613414573d6000803e3d6000fd5b505050506134bb565b600060155411156134ba57601260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c4a5f67f836015546040518363ffffffff1660e01b81526004016134879291906144ab565b600060405180830381600087803b1580156134a157600080fd5b505af11580156134b5573d6000803e3d6000fd5b505050505b5b5b5050565b6000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6000602054421161352f57614e209050613547565b6021544211613542576127109050613547565b600090505b90565b6000600a54905090565b6000602460159054906101000a900460ff161580156135c15750600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b6001602460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115613626577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156136545781602001602082028036833780820191505090505b5090503081600081518110613692577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561373457600080fd5b505afa158015613748573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061376c9190613efe565b816001815181106137a6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061380d30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612024565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016138719594939291906146cd565b600060405180830381600087803b15801561388b57600080fd5b505af115801561389f573d6000803e3d6000fd5b50505050506000602460156101000a81548160ff02191690831515021790555050565b6000479050601e5481116138d65750613d87565b60006138ed601e5483611f7490919063ffffffff16565b905060006138f9613de5565b9050600181101561390c57505050613d87565b613920600283611eaf90919063ffffffff16565b601581905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6015549081150290604051600060405180830381858888f19350505050158015613990573d6000803e3d6000fd5b50614e2061399c61351a565b1415613ac357600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6139f2602385611eaf90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015613a1d573d6000803e3d6000fd5b50600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6b55f25613a70602385611eaf90919063ffffffff16565b6040518263ffffffff1660e01b8152600401613a8c91906146b2565b600060405180830381600087803b158015613aa657600080fd5b505af1158015613aba573d6000803e3d6000fd5b50505050613d13565b612710613ace61351a565b1415613bf557600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc613b24601985611eaf90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015613b4f573d6000803e3d6000fd5b50600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6b55f25613ba2601985611eaf90919063ffffffff16565b6040518263ffffffff1660e01b8152600401613bbe91906146b2565b600060405180830381600087803b158015613bd857600080fd5b505af1158015613bec573d6000803e3d6000fd5b50505050613d12565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc613c45600f85611eaf90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015613c70573d6000803e3d6000fd5b50600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6b55f25613cc3600f85611eaf90919063ffffffff16565b6040518263ffffffff1660e01b8152600401613cdf91906146b2565b600060405180830381600087803b158015613cf957600080fd5b505af1158015613d0d573d6000803e3d6000fd5b505050505b5b602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015613d7b573d6000803e3d6000fd5b5047601e819055505050505b5050565b6000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60008060009050613e06613df761351a565b82611fbe90919063ffffffff16565b9050613e22613e1361354a565b82611fbe90919063ffffffff16565b9050613e3960145482611fbe90919063ffffffff16565b90508091505090565b600081359050613e5181614cc7565b92915050565b600081519050613e6681614cc7565b92915050565b600081359050613e7b81614cde565b92915050565b600081519050613e9081614cf5565b92915050565b600081359050613ea581614d0c565b92915050565b600081359050613eba81614d23565b92915050565b600081519050613ecf81614d23565b92915050565b600060208284031215613ee757600080fd5b6000613ef584828501613e42565b91505092915050565b600060208284031215613f1057600080fd5b6000613f1e84828501613e57565b91505092915050565b600060208284031215613f3957600080fd5b6000613f4784828501613e6c565b91505092915050565b60008060408385031215613f6357600080fd5b6000613f7185828601613e6c565b9250506020613f8285828601613e96565b9150509250929050565b60008060408385031215613f9f57600080fd5b6000613fad85828601613e6c565b9250506020613fbe85828601613eab565b9150509250929050565b60008060408385031215613fdb57600080fd5b6000613fe985828601613e42565b9250506020613ffa85828601613e42565b9150509250929050565b60008060006060848603121561401957600080fd5b600061402786828701613e42565b935050602061403886828701613e42565b925050604061404986828701613eab565b9150509250925092565b6000806040838503121561406657600080fd5b600061407485828601613e42565b925050602061408585828601613eab565b9150509250929050565b6000602082840312156140a157600080fd5b60006140af84828501613e81565b91505092915050565b6000602082840312156140ca57600080fd5b60006140d884828501613eab565b91505092915050565b6000602082840312156140f357600080fd5b600061410184828501613ec0565b91505092915050565b60008060006060848603121561411f57600080fd5b600061412d86828701613ec0565b935050602061413e86828701613ec0565b925050604061414f86828701613ec0565b9150509250925092565b60006141658383614171565b60208301905092915050565b61417a816148ac565b82525050565b614189816148ac565b82525050565b600061419a82614752565b6141a48185614775565b93506141af83614742565b8060005b838110156141e05781516141c78882614159565b97506141d283614768565b9250506001810190506141b3565b5085935050505092915050565b6141f6816148d0565b82525050565b61420581614922565b82525050565b61421481614934565b82525050565b60006142258261475d565b61422f8185614786565b935061423f818560208601614946565b61424881614a38565b840191505092915050565b6000614260601883614786565b915061426b82614a49565b602082019050919050565b6000614283600c83614786565b915061428e82614a72565b602082019050919050565b60006142a6602283614786565b91506142b182614a9b565b604082019050919050565b60006142c9601b83614786565b91506142d482614aea565b602082019050919050565b60006142ec602183614786565b91506142f782614b13565b604082019050919050565b600061430f602083614786565b915061431a82614b62565b602082019050919050565b6000614332602983614786565b915061433d82614b8b565b604082019050919050565b6000614355602583614786565b915061436082614bda565b604082019050919050565b6000614378602483614786565b915061438382614c29565b604082019050919050565b600061439b602683614786565b91506143a682614c78565b604082019050919050565b6143ba8161490b565b82525050565b6143c981614915565b82525050565b60006020820190506143e46000830184614180565b92915050565b60006040820190506143ff6000830185614180565b61440c6020830184614180565b9392505050565b60006060820190506144286000830186614180565b6144356020830185614180565b6144426040830184614180565b949350505050565b600060c08201905061445f6000830189614180565b61446c602083018861420b565b6144796040830187614180565b6144866060830186614180565b61449360808301856143b1565b6144a060a08301846143b1565b979650505050505050565b60006040820190506144c06000830185614180565b6144cd60208301846143b1565b9392505050565b600060c0820190506144e96000830189614180565b6144f660208301886143b1565b61450360408301876141fc565b61451060608301866141fc565b61451d6080830185614180565b61452a60a08301846143b1565b979650505050505050565b600060208201905061454a60008301846141ed565b92915050565b6000602082019050818103600083015261456a818461421a565b905092915050565b6000602082019050818103600083015261458b81614253565b9050919050565b600060208201905081810360008301526145ab81614276565b9050919050565b600060208201905081810360008301526145cb81614299565b9050919050565b600060208201905081810360008301526145eb816142bc565b9050919050565b6000602082019050818103600083015261460b816142df565b9050919050565b6000602082019050818103600083015261462b81614302565b9050919050565b6000602082019050818103600083015261464b81614325565b9050919050565b6000602082019050818103600083015261466b81614348565b9050919050565b6000602082019050818103600083015261468b8161436b565b9050919050565b600060208201905081810360008301526146ab8161438e565b9050919050565b60006020820190506146c760008301846143b1565b92915050565b600060a0820190506146e260008301886143b1565b6146ef60208301876141fc565b8181036040830152614701818661418f565b90506147106060830185614180565b61471d60808301846143b1565b9695505050505050565b600060208201905061473c60008301846143c0565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006147a28261490b565b91506147ad8361490b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156147e2576147e16149ab565b5b828201905092915050565b60006147f88261490b565b91506148038361490b565b925082614813576148126149da565b5b828204905092915050565b60006148298261490b565b91506148348361490b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561486d5761486c6149ab565b5b828202905092915050565b60006148838261490b565b915061488e8361490b565b9250828210156148a1576148a06149ab565b5b828203905092915050565b60006148b7826148dc565b9050919050565b60006148c9826148dc565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062ffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061492d8261490b565b9050919050565b600061493f8261490b565b9050919050565b60005b83811015614964578082015181840152602081019050614949565b83811115614973576000848401525b50505050565b6000600282049050600182168061499157607f821691505b602082108114156149a5576149a4614a09565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f4c697175696469747920616c72656164792061646465642e0000000000000000600082015250565b7f556e617574686f72697a65640000000000000000000000000000000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f42656570204265657020426f6f702c20596f752772652061207069656365206f60008201527f6620706f6f700000000000000000000000000000000000000000000000000000602082015250565b614cd0816148ac565b8114614cdb57600080fd5b50565b614ce7816148be565b8114614cf257600080fd5b50565b614cfe816148d0565b8114614d0957600080fd5b50565b614d15816148fc565b8114614d2057600080fd5b50565b614d2c8161490b565b8114614d3757600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ce7629040602194bc2104a81941e84708df5f23f16f5964b3c7970b8e4a926c264736f6c63430008040033

Deployed Bytecode

0x6080604052600436106101855760003560e01c806395d89b41116100d1578063c7f418e91161008a578063f1d5f51711610064578063f1d5f5171461058b578063f2fde38b146105b4578063f37c4bce146105dd578063f9f92be4146106065761018c565b8063c7f418e91461050e578063dd62ed3e14610537578063e8078d94146105745761018c565b806395d89b41146103ee57806398d5a5cb14610419578063a3a37dab14610442578063a9059cbb1461046b578063ab9562fe146104a8578063c7ab8d9d146104d15761018c565b8063313ce5671161013e5780635d098b38116101185780635d098b381461032057806370a08231146103495780638a13792e146103865780638da5cb5b146103c35761018c565b8063313ce567146102a157806334052789146102cc57806354486ac3146102f55761018c565b806301339c211461019157806306fdde03146101a8578063095ea7b3146101d357806318160ddd1461021057806323b872dd1461023b578063290dc70c146102785761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a661062f565b005b3480156101b457600080fd5b506101bd61076b565b6040516101ca9190614550565b60405180910390f35b3480156101df57600080fd5b506101fa60048036038101906101f59190614053565b6107fd565b6040516102079190614535565b60405180910390f35b34801561021c57600080fd5b5061022561081b565b60405161023291906146b2565b60405180910390f35b34801561024757600080fd5b50610262600480360381019061025d9190614004565b61082c565b60405161026f9190614535565b60405180910390f35b34801561028457600080fd5b5061029f600480360381019061029a9190613ed5565b610905565b005b3480156102ad57600080fd5b506102b66109f5565b6040516102c39190614727565b60405180910390f35b3480156102d857600080fd5b506102f360048036038101906102ee91906140b8565b610a0c565b005b34801561030157600080fd5b5061030a610b17565b60405161031791906146b2565b60405180910390f35b34801561032c57600080fd5b5061034760048036038101906103429190613f27565b610b1d565b005b34801561035557600080fd5b50610370600480360381019061036b9190613ed5565b610c4e565b60405161037d91906146b2565b60405180910390f35b34801561039257600080fd5b506103ad60048036038101906103a89190613f27565b610c97565b6040516103ba91906146b2565b60405180910390f35b3480156103cf57600080fd5b506103d8610dc0565b6040516103e591906143cf565b60405180910390f35b3480156103fa57600080fd5b50610403610de9565b6040516104109190614550565b60405180910390f35b34801561042557600080fd5b50610440600480360381019061043b9190613ed5565b610e7b565b005b34801561044e57600080fd5b5061046960048036038101906104649190613f50565b610f6b565b005b34801561047757600080fd5b50610492600480360381019061048d9190614053565b61107a565b60405161049f9190614535565b60405180910390f35b3480156104b457600080fd5b506104cf60048036038101906104ca9190613f8c565b611098565b005b3480156104dd57600080fd5b506104f860048036038101906104f39190613ed5565b6111d4565b6040516105059190614535565b60405180910390f35b34801561051a57600080fd5b5061053560048036038101906105309190613ed5565b61122a565b005b34801561054357600080fd5b5061055e60048036038101906105599190613fc8565b61131a565b60405161056b91906146b2565b60405180910390f35b34801561058057600080fd5b506105896113a1565b005b34801561059757600080fd5b506105b260048036038101906105ad91906140b8565b6119ff565b005b3480156105c057600080fd5b506105db60048036038101906105d69190613ed5565b611ab4565b005b3480156105e957600080fd5b5061060460048036038101906105ff9190613ed5565b611c06565b005b34801561061257600080fd5b5061062d60048036038101906106289190613ed5565b611dbf565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661066e61201c565b73ffffffffffffffffffffffffffffffffffffffff16146106c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106bb90614612565b60405180910390fd5b6001602460146101000a81548160ff0219169083151502179055506106f56201518042611fbe90919063ffffffff16565b601f8190555061071162093a8042611fbe90919063ffffffff16565b60208190555061072d62278d0042611fbe90919063ffffffff16565b60218190555061074861070842611fbe90919063ffffffff16565b602281905550610763610e1042611fbe90919063ffffffff16565b602381905550565b6060600b805461077a90614979565b80601f01602080910402602001604051908101604052809291908181526020018280546107a690614979565b80156107f35780601f106107c8576101008083540402835291602001916107f3565b820191906000526020600020905b8154815290600101906020018083116107d657829003601f168201915b5050505050905090565b600061081161080a61201c565b8484612024565b6001905092915050565b6000683635c9adc5dea00000905090565b60006108398484846121ef565b6108fa8461084561201c565b6108f585604051806060016040528060288152602001614d3b60289139601d60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108ab61201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127589092919063ffffffff16565b612024565b600190509392505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661094461201c565b73ffffffffffffffffffffffffffffffffffffffff161461099a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099190614612565b60405180910390fd5b6001601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600d60009054906101000a900460ff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a4b61201c565b73ffffffffffffffffffffffffffffffffffffffff1614610aa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9890614612565b60405180910390fd5b610ab8633b9aca0082611ef990919063ffffffff16565b600f81905550610ad5633b9aca0082611ef990919063ffffffff16565b6010819055507f1509687539547b95d9002029c1b24fbfdd2e99b914fabbbc629867062a4ff3cc600f54604051610b0c91906146b2565b60405180910390a150565b600a5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b5c61201c565b73ffffffffffffffffffffffffffffffffffffffff1614610bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba990614612565b60405180910390fd5b80602460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cd961201c565b73ffffffffffffffffffffffffffffffffffffffff1614610d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2690614612565b60405180910390fd5b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060078181548110610dad577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154915050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600c8054610df890614979565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2490614979565b8015610e715780601f10610e4657610100808354040283529160200191610e71565b820191906000526020600020905b815481529060010190602001808311610e5457829003601f168201915b5050505050905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610eba61201c565b73ffffffffffffffffffffffffffffffffffffffff1614610f10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0790614612565b60405180910390fd5b6000601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610faa61201c565b73ffffffffffffffffffffffffffffffffffffffff1614611000576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff790614612565b60405180910390fd5b61100f828262ffffff166127bc565b60008162ffffff161115611076576001601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b600061108e61108761201c565b84846121ef565b6001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110d761201c565b73ffffffffffffffffffffffffffffffffffffffff161461112d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112490614612565b60405180910390fd5b61115a600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660006127bc565b81600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806005819055506111d0600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166005546127bc565b5050565b6000601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661126961201c565b73ffffffffffffffffffffffffffffffffffffffff16146112bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b690614612565b60405180910390fd5b6000601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000601d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113e061201c565b73ffffffffffffffffffffffffffffffffffffffff1614611436576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142d90614612565b60405180910390fd5b601260009054906101000a900460ff1615611486576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147d90614572565b60405180910390fd5b60004790506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061151b30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000612024565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561156157600080fd5b505afa158015611575573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115999190613efe565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156115fb57600080fd5b505afa15801561160f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116339190613efe565b6040518363ffffffff1660e01b81526004016116509291906143ea565b602060405180830381600087803b15801561166a57600080fd5b505af115801561167e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a29190613efe565b600d60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061172b30610c4e565b600080611736610dc0565b426040518863ffffffff1660e01b8152600401611758969594939291906144d4565b6060604051808303818588803b15801561177157600080fd5b505af1158015611785573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117aa919061410a565b505050600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161184c9291906144ab565b602060405180830381600087803b15801561186657600080fd5b505af115801561187a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061189e919061408f565b50601260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c435846530612ee0600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561194a57600080fd5b505afa15801561195e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119829190613efe565b87683635c9adc5dea000006040518763ffffffff1660e01b81526004016119ae9695949392919061444a565b600060405180830381600087803b1580156119c857600080fd5b505af11580156119dc573d6000803e3d6000fd5b505050506001601260006101000a81548160ff0219169083151502179055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611a3e61201c565b73ffffffffffffffffffffffffffffffffffffffff1614611a94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8b90614612565b60405180910390fd5b611aab633b9aca0082611ef990919063ffffffff16565b60118190555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611af361201c565b73ffffffffffffffffffffffffffffffffffffffff1614611b49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4090614612565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015611c7057600080fd5b505af1158015611c84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ca89190613efe565b73ffffffffffffffffffffffffffffffffffffffff16611cc661201c565b73ffffffffffffffffffffffffffffffffffffffff161480611d3c5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611d2461201c565b73ffffffffffffffffffffffffffffffffffffffff16145b611d7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7290614592565b60405180910390fd5b80601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611dfe61201c565b73ffffffffffffffffffffffffffffffffffffffff1614611e54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4b90614612565b60405180910390fd5b6001601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611ef183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612abd565b905092915050565b600080831415611f0c5760009050611f6e565b60008284611f1a919061481e565b9050828482611f2991906147ed565b14611f69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f60906145f2565b60405180910390fd5b809150505b92915050565b6000611fb683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612758565b905092915050565b6000808284611fcd9190614797565b905083811015612012576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612009906145d2565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208b90614672565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612104576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120fb906145b2565b60405180910390fd5b80601d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516121e291906146b2565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561225f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225690614652565b60405180910390fd5b600081116122a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229990614632565b60405180910390fd5b601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123465750601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561239c5750601a60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6123a557600080fd5b6123af8383612b20565b80156123c75750602460149054906101000a900460ff165b1561268457601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166312bdf42383600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16326040518463ffffffff1660e01b815260040161244d93929190614413565b602060405180830381600087803b15801561246757600080fd5b505af115801561247b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061249f919061408f565b156124df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d690614692565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166312bdf42384600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16326040518463ffffffff1660e01b815260040161256093929190614413565b602060405180830381600087803b15801561257a57600080fd5b505af115801561258e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125b2919061408f565b156125f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e990614692565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663155d0ed98484326040518463ffffffff1660e01b815260040161265193929190614413565b600060405180830381600087803b15801561266b57600080fd5b505af115801561267f573d6000803e3d6000fd5b505050505b61268d82612bd3565b156126d6576126af6064683635c9adc5dea00000611eaf90919063ffffffff16565b6126ca826126bc85610c4e565b611fbe90919063ffffffff16565b11156126d557600080fd5b5b60006126e28484612c96565b1561273c57602460149054906101000a900460ff1661270057600080fd5b61270a8484612d42565b1561272457612717612e4d565b82111561272357600080fd5b5b61272f848484612eba565b905061273b84836130f8565b5b6127488484848461312c565b612752848461336e565b50505050565b60008383111582906127a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127979190614550565b60405180910390fd5b50600083856127af9190614878565b9050809150509392505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166127fb61201c565b73ffffffffffffffffffffffffffffffffffffffff1614612851576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161284890614612565b60405180910390fd5b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008114156129c2576129046128b683600a54611fbe90919063ffffffff16565b11156128c157600080fd5b60078290806001815401808255809150506001900390600052602060002001600090919091909150556008839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160078054905061295f9190614878565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129b782600a54611fbe90919063ffffffff16565b600a81905550612ab8565b6000600782815481106129fe577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001549050612904612a3582612a2786600a54611fbe90919063ffffffff16565b611f7490919063ffffffff16565b1115612a4057600080fd5b8260078381548110612a7b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200181905550612ab081612aa285600a54611fbe90919063ffffffff16565b611f7490919063ffffffff16565b600a81905550505b505050565b60008083118290612b04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612afb9190614550565b60405180910390fd5b5060008385612b1391906147ed565b9050809150509392505050565b6000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480612bcb5750600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b905092915050565b6000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612c815750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612c8f5750601f544211155b9050919050565b6000601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612d395750601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15905092915050565b6000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015612def5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612e455750601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b60006022544211612e7d57612e76610190683635c9adc5dea00000611eaf90919063ffffffff16565b9050612eb7565b6023544211612eaa57612ea360c8683635c9adc5dea00000611eaf90919063ffffffff16565b9050612eb7565b683635c9adc5dea0000090505b90565b60008060009050601b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612f625750601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612f7057809150506130f1565b6000612f7b856134c0565b15612f8b57612f8861351a565b90505b612fcb612fbc612f9961354a565b612fae60255488611eaf90919063ffffffff16565b611ef990919063ffffffff16565b83611fbe90919063ffffffff16565b9150613006612ff7602554612fe98488611ef990919063ffffffff16565b611eaf90919063ffffffff16565b83611fbe90919063ffffffff16565b9150601260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632c2bab2f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561307057600080fd5b505afa158015613084573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130a891906140e1565b6014819055506130e96130da6025546130cc60145488611ef990919063ffffffff16565b611eaf90919063ffffffff16565b83611fbe90919063ffffffff16565b915081925050505b9392505050565b61310182613554565b1561312857600061311130610c4e565b905061311c816135c8565b61312683836138c2565b505b5050565b60006131418284611f7490919063ffffffff16565b905061319583601c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f7490919063ffffffff16565b601c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061322a81601c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fbe90919063ffffffff16565b601c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506132bf82601c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fbe90919063ffffffff16565b601c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161335f91906146b2565b60405180910390a35050505050565b6133788282612c96565b156134bc5761338682613d8b565b1561341d57601260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633627301e826040518263ffffffff1660e01b81526004016133e691906143cf565b600060405180830381600087803b15801561340057600080fd5b505af1158015613414573d6000803e3d6000fd5b505050506134bb565b600060155411156134ba57601260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c4a5f67f836015546040518363ffffffff1660e01b81526004016134879291906144ab565b600060405180830381600087803b1580156134a157600080fd5b505af11580156134b5573d6000803e3d6000fd5b505050505b5b5b5050565b6000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6000602054421161352f57614e209050613547565b6021544211613542576127109050613547565b600090505b90565b6000600a54905090565b6000602460159054906101000a900460ff161580156135c15750600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b6001602460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115613626577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156136545781602001602082028036833780820191505090505b5090503081600081518110613692577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561373457600080fd5b505afa158015613748573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061376c9190613efe565b816001815181106137a6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061380d30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612024565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016138719594939291906146cd565b600060405180830381600087803b15801561388b57600080fd5b505af115801561389f573d6000803e3d6000fd5b50505050506000602460156101000a81548160ff02191690831515021790555050565b6000479050601e5481116138d65750613d87565b60006138ed601e5483611f7490919063ffffffff16565b905060006138f9613de5565b9050600181101561390c57505050613d87565b613920600283611eaf90919063ffffffff16565b601581905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6015549081150290604051600060405180830381858888f19350505050158015613990573d6000803e3d6000fd5b50614e2061399c61351a565b1415613ac357600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6139f2602385611eaf90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015613a1d573d6000803e3d6000fd5b50600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6b55f25613a70602385611eaf90919063ffffffff16565b6040518263ffffffff1660e01b8152600401613a8c91906146b2565b600060405180830381600087803b158015613aa657600080fd5b505af1158015613aba573d6000803e3d6000fd5b50505050613d13565b612710613ace61351a565b1415613bf557600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc613b24601985611eaf90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015613b4f573d6000803e3d6000fd5b50600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6b55f25613ba2601985611eaf90919063ffffffff16565b6040518263ffffffff1660e01b8152600401613bbe91906146b2565b600060405180830381600087803b158015613bd857600080fd5b505af1158015613bec573d6000803e3d6000fd5b50505050613d12565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc613c45600f85611eaf90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015613c70573d6000803e3d6000fd5b50600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6b55f25613cc3600f85611eaf90919063ffffffff16565b6040518263ffffffff1660e01b8152600401613cdf91906146b2565b600060405180830381600087803b158015613cf957600080fd5b505af1158015613d0d573d6000803e3d6000fd5b505050505b5b602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015613d7b573d6000803e3d6000fd5b5047601e819055505050505b5050565b6000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60008060009050613e06613df761351a565b82611fbe90919063ffffffff16565b9050613e22613e1361354a565b82611fbe90919063ffffffff16565b9050613e3960145482611fbe90919063ffffffff16565b90508091505090565b600081359050613e5181614cc7565b92915050565b600081519050613e6681614cc7565b92915050565b600081359050613e7b81614cde565b92915050565b600081519050613e9081614cf5565b92915050565b600081359050613ea581614d0c565b92915050565b600081359050613eba81614d23565b92915050565b600081519050613ecf81614d23565b92915050565b600060208284031215613ee757600080fd5b6000613ef584828501613e42565b91505092915050565b600060208284031215613f1057600080fd5b6000613f1e84828501613e57565b91505092915050565b600060208284031215613f3957600080fd5b6000613f4784828501613e6c565b91505092915050565b60008060408385031215613f6357600080fd5b6000613f7185828601613e6c565b9250506020613f8285828601613e96565b9150509250929050565b60008060408385031215613f9f57600080fd5b6000613fad85828601613e6c565b9250506020613fbe85828601613eab565b9150509250929050565b60008060408385031215613fdb57600080fd5b6000613fe985828601613e42565b9250506020613ffa85828601613e42565b9150509250929050565b60008060006060848603121561401957600080fd5b600061402786828701613e42565b935050602061403886828701613e42565b925050604061404986828701613eab565b9150509250925092565b6000806040838503121561406657600080fd5b600061407485828601613e42565b925050602061408585828601613eab565b9150509250929050565b6000602082840312156140a157600080fd5b60006140af84828501613e81565b91505092915050565b6000602082840312156140ca57600080fd5b60006140d884828501613eab565b91505092915050565b6000602082840312156140f357600080fd5b600061410184828501613ec0565b91505092915050565b60008060006060848603121561411f57600080fd5b600061412d86828701613ec0565b935050602061413e86828701613ec0565b925050604061414f86828701613ec0565b9150509250925092565b60006141658383614171565b60208301905092915050565b61417a816148ac565b82525050565b614189816148ac565b82525050565b600061419a82614752565b6141a48185614775565b93506141af83614742565b8060005b838110156141e05781516141c78882614159565b97506141d283614768565b9250506001810190506141b3565b5085935050505092915050565b6141f6816148d0565b82525050565b61420581614922565b82525050565b61421481614934565b82525050565b60006142258261475d565b61422f8185614786565b935061423f818560208601614946565b61424881614a38565b840191505092915050565b6000614260601883614786565b915061426b82614a49565b602082019050919050565b6000614283600c83614786565b915061428e82614a72565b602082019050919050565b60006142a6602283614786565b91506142b182614a9b565b604082019050919050565b60006142c9601b83614786565b91506142d482614aea565b602082019050919050565b60006142ec602183614786565b91506142f782614b13565b604082019050919050565b600061430f602083614786565b915061431a82614b62565b602082019050919050565b6000614332602983614786565b915061433d82614b8b565b604082019050919050565b6000614355602583614786565b915061436082614bda565b604082019050919050565b6000614378602483614786565b915061438382614c29565b604082019050919050565b600061439b602683614786565b91506143a682614c78565b604082019050919050565b6143ba8161490b565b82525050565b6143c981614915565b82525050565b60006020820190506143e46000830184614180565b92915050565b60006040820190506143ff6000830185614180565b61440c6020830184614180565b9392505050565b60006060820190506144286000830186614180565b6144356020830185614180565b6144426040830184614180565b949350505050565b600060c08201905061445f6000830189614180565b61446c602083018861420b565b6144796040830187614180565b6144866060830186614180565b61449360808301856143b1565b6144a060a08301846143b1565b979650505050505050565b60006040820190506144c06000830185614180565b6144cd60208301846143b1565b9392505050565b600060c0820190506144e96000830189614180565b6144f660208301886143b1565b61450360408301876141fc565b61451060608301866141fc565b61451d6080830185614180565b61452a60a08301846143b1565b979650505050505050565b600060208201905061454a60008301846141ed565b92915050565b6000602082019050818103600083015261456a818461421a565b905092915050565b6000602082019050818103600083015261458b81614253565b9050919050565b600060208201905081810360008301526145ab81614276565b9050919050565b600060208201905081810360008301526145cb81614299565b9050919050565b600060208201905081810360008301526145eb816142bc565b9050919050565b6000602082019050818103600083015261460b816142df565b9050919050565b6000602082019050818103600083015261462b81614302565b9050919050565b6000602082019050818103600083015261464b81614325565b9050919050565b6000602082019050818103600083015261466b81614348565b9050919050565b6000602082019050818103600083015261468b8161436b565b9050919050565b600060208201905081810360008301526146ab8161438e565b9050919050565b60006020820190506146c760008301846143b1565b92915050565b600060a0820190506146e260008301886143b1565b6146ef60208301876141fc565b8181036040830152614701818661418f565b90506147106060830185614180565b61471d60808301846143b1565b9695505050505050565b600060208201905061473c60008301846143c0565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006147a28261490b565b91506147ad8361490b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156147e2576147e16149ab565b5b828201905092915050565b60006147f88261490b565b91506148038361490b565b925082614813576148126149da565b5b828204905092915050565b60006148298261490b565b91506148348361490b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561486d5761486c6149ab565b5b828202905092915050565b60006148838261490b565b915061488e8361490b565b9250828210156148a1576148a06149ab565b5b828203905092915050565b60006148b7826148dc565b9050919050565b60006148c9826148dc565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062ffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061492d8261490b565b9050919050565b600061493f8261490b565b9050919050565b60005b83811015614964578082015181840152602081019050614949565b83811115614973576000848401525b50505050565b6000600282049050600182168061499157607f821691505b602082108114156149a5576149a4614a09565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f4c697175696469747920616c72656164792061646465642e0000000000000000600082015250565b7f556e617574686f72697a65640000000000000000000000000000000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f42656570204265657020426f6f702c20596f752772652061207069656365206f60008201527f6620706f6f700000000000000000000000000000000000000000000000000000602082015250565b614cd0816148ac565b8114614cdb57600080fd5b50565b614ce7816148be565b8114614cf257600080fd5b50565b614cfe816148d0565b8114614d0957600080fd5b50565b614d15816148fc565b8114614d2057600080fd5b50565b614d2c8161490b565b8114614d3757600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ce7629040602194bc2104a81941e84708df5f23f16f5964b3c7970b8e4a926c264736f6c63430008040033

Deployed Bytecode Sourcemap

8115:14478:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20797:344;;;;;;;;;;;;;:::i;:::-;;11619:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12458:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11893:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12629:323;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21513:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11803:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21147:239;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3771:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22422:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11999:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5088:180;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2751:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11709:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21987:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22089:223;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12127:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5274:253;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21762:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21637:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12304:148;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19892:899;;;;;;;;;;;;;:::i;:::-;;21392:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2837:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22318:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21888:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20797:344;3061:7;;;;;;;;;;3045:23;;:12;:10;:12::i;:::-;:23;;;3037:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20860:4:::1;20847:10;;:17;;;;;;;;;;;;;;;;;;20888:29;20908:8;20888:15;:19;;:29;;;;:::i;:::-;20875:10;:42;;;;20942:27;20962:6;20942:15;:19;;:27;;;;:::i;:::-;20928:11;:41;;;;20995:28;21015:7;20995:15;:19;;:28;;;;:::i;:::-;20980:12;:43;;;;21050:31;21070:10;21050:15;:19;;:31;;;;:::i;:::-;21034:13;:47;;;;21105:28;21125:7;21105:15;:19;;:28;;;;:::i;:::-;21092:10;:41;;;;20797:344::o:0;11619:84::-;11656:13;11689:6;11682:13;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11619:84;:::o;12458:165::-;12535:4;12552:41;12561:12;:10;:12::i;:::-;12575:8;12585:7;12552:8;:41::i;:::-;12611:4;12604:11;;12458:165;;;;:::o;11893:100::-;11946:7;8254:21;11966:19;;11893:100;:::o;12629:323::-;12730:4;12747:39;12757:7;12766:10;12778:7;12747:9;:39::i;:::-;12797:125;12806:7;12815:12;:10;:12::i;:::-;12829:92;12869:7;12829:92;;;;;;;;;;;;;;;;;:12;:21;12842:7;12829:21;;;;;;;;;;;;;;;:35;12851:12;:10;:12::i;:::-;12829:35;;;;;;;;;;;;;;;;:39;;:92;;;;;:::i;:::-;12797:8;:125::i;:::-;12940:4;12933:11;;12629:323;;;;;:::o;21513:118::-;3061:7;;;;;;;;;;3045:23;;:12;:10;:12::i;:::-;:23;;;3037:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21619:4:::1;21587:19;:29;21607:8;21587:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;21513:118:::0;:::o;11803:84::-;11844:5;11869:10;;;;;;;;;;;11862:17;;11803:84;:::o;21147:239::-;3061:7;;;;;;;;;;3045:23;;:12;:10;:12::i;:::-;:23;;;3037:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21275:18:::1;21287:5;21275:7;:11;;:18;;;;:::i;:::-;21263:9;:30;;;;21320:18;21332:5;21320:7;:11;;:18;;;;:::i;:::-;21304:13;:34;;;;21354:24;21368:9;;21354:24;;;;;;:::i;:::-;;;;;;;;21147:239:::0;:::o;3771:27::-;;;;:::o;22422:168::-;3061:7;;;;;;;;;;3045:23;;:12;:10;:12::i;:::-;:23;;;3037:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22527:8:::1;22507:17;;:28;;;;;;;;;;;;;;;;;;22578:4;22546:19;:29;22566:8;22546:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;22422:168:::0;:::o;11999:122::-;12066:7;12093:10;:20;12104:8;12093:20;;;;;;;;;;;;;;;;12086:27;;11999:122;;;:::o;5088:180::-;5176:7;3061;;;;;;;;;;;3045:23;;:12;:10;:12::i;:::-;:23;;;3037:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5196:9:::1;5208:8;:18;5217:8;5208:18;;;;;;;;;;;;;;;;5196:30;;5244:10;5255:4;5244:16;;;;;;;;;;;;;;;;;;;;;;;;5237:23;;;5088:180:::0;;;:::o;2751:80::-;2789:7;2816;;;;;;;;;;;2809:14;;2751:80;:::o;11709:88::-;11748:13;11781:8;11774:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11709:88;:::o;21987:96::-;3061:7;;;;;;;;;;3045:23;;:12;:10;:12::i;:::-;:23;;;3037:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22070:5:::1;22052:11;:15;22064:2;22052:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;21987:96:::0;:::o;22089:223::-;3061:7;;;;;;;;;;3045:23;;:12;:10;:12::i;:::-;:23;;;3037:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22186:29:::1;22198:8;22208:6;22186:29;;:11;:29::i;:::-;22239:1;22230:6;:10;;;22226:79;;;22289:4;22257:19;:29;22277:8;22257:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;22226:79;22089:223:::0;;:::o;12127:171::-;12207:4;12224:44;12234:12;:10;:12::i;:::-;12248:10;12260:7;12224:9;:44::i;:::-;12286:4;12279:11;;12127:171;;;;:::o;5274:253::-;3061:7;;;;;;;;;;3045:23;;:12;:10;:12::i;:::-;:23;;;3037:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5379:28:::1;5391:12;;;;;;;;;;;5405:1;5379:11;:28::i;:::-;5433:8;5418:12;;:23;;;;;;;;;;;;;;;;;;5465:6;5452:10;:19;;;;5482:37;5494:12;;;;;;;;;;;5508:10;;5482:11;:37::i;:::-;5274:253:::0;;:::o;21762:120::-;21829:4;21853:11;:21;21865:8;21853:21;;;;;;;;;;;;;;;;;;;;;;;;;21846:28;;21762:120;;;:::o;21637:119::-;3061:7;;;;;;;;;;3045:23;;:12;:10;:12::i;:::-;:23;;;3037:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21743:5:::1;21711:19;:29;21731:8;21711:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;21637:119:::0;:::o;12304:148::-;12387:7;12414:12;:20;12427:6;12414:20;;;;;;;;;;;;;;;:30;12435:8;12414:30;;;;;;;;;;;;;;;;12407:37;;12304:148;;;;:::o;19892:899::-;3061:7;;;;;;;;;;3045:23;;:12;:10;:12::i;:::-;:23;;;3037:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19957:11:::1;;;;;;;;;;;19956:12;19948:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;20007:19;20029:21;20007:43;;20061:35;20118:42;20061:100;;20192:16;20172:17;;:36;;;;;;;;;;;;;;;;;;20219:65;20236:4;20251:17;;;;;;;;;;;8254:21;20219:8;:65::i;:::-;20331:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20313:56;;;20378:4;20385:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20313:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20295:15;;:114;;;;;;;;;;;;;;;;;;20420:17;;;;;;;;;;;:33;;;20461:21;20492:4;20498:24;20516:4;20498:9;:24::i;:::-;20523:1;20525::::0;20527:7:::1;:5;:7::i;:::-;20535:15;20420:131;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20569:15;;;;;;;;;;;20562:31;;;20602:17;;;;;;;;;;;20622:14;20562:75;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20648:10;;;;;;;;;;;:15;;;20672:4;20679:5;20686:15;;;;;;;;;;;20703:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20728:11;8254:21;20648:106;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;20779:4;20765:11;;:18;;;;;;;;;;;;;;;;;;3116:1;;19892:899::o:0;21392:115::-;3061:7;;;;;;;;;;3045:23;;:12;:10;:12::i;:::-;:23;;;3037:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21481:18:::1;21493:5;21481:7;:11;;:18;;;;:::i;:::-;21465:13;:34;;;;21392:115:::0;:::o;2837:162::-;3061:7;;;;;;;;;;3045:23;;:12;:10;:12::i;:::-;:23;;;3037:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2953:8:::1;2923:39;;2944:7;::::0;::::1;;;;;;;;2923:39;;;;;;;;;;;;2983:8;2973:7;::::0;:18:::1;;;;;;;;;;;;;;;;;;2837:162:::0;:::o;22318:98::-;10106:8;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10090:32;;:12;:10;:12::i;:::-;:32;;;:62;;;;10142:10;;;;;;;;;;;10126:26;;:12;:10;:12::i;:::-;:26;;;10090:62;10082:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;22400:8:::1;22387:10;;:21;;;;;;;;;;;;;;;;;;22318:98:::0;:::o;21888:93::-;3061:7;;;;;;;;;;3045:23;;:12;:10;:12::i;:::-;:23;;;3037:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21969:4:::1;21951:11;:15;21963:2;21951:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;21888:93:::0;:::o;2103:132::-;2161:7;2188:39;2192:1;2195;2188:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2181:46;;2103:132;;;;:::o;1851:246::-;1909:7;1938:1;1933;:6;1929:47;;;1963:1;1956:8;;;;1929:47;1986:9;2002:1;1998;:5;;;;:::i;:::-;1986:17;;2031:1;2026;2022;:5;;;;:::i;:::-;:10;2014:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2088:1;2081:8;;;1851:246;;;;;:::o;1513:136::-;1571:7;1598:43;1602:1;1605;1598:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1591:50;;1513:136;;;;:::o;1328:179::-;1386:7;1406:9;1422:1;1418;:5;;;;:::i;:::-;1406:17;;1447:1;1442;:6;;1434:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1498:1;1491:8;;;1328:179;;;;:::o;526:98::-;579:7;606:10;599:17;;526:98;:::o;14432:347::-;14546:1;14528:20;;:6;:20;;;;14520:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;14628:1;14608:22;;:8;:22;;;;14600:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;14713:7;14680:12;:20;14693:6;14680:20;;;;;;;;;;;;;;;:30;14701:8;14680:30;;;;;;;;;;;;;;;:40;;;;14753:8;14736:35;;14745:6;14736:35;;;14763:7;14736:35;;;;;;:::i;:::-;;;;;;;;14432:347;;;:::o;14785:1399::-;14904:1;14885:21;;:7;:21;;;;14877:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14977:1;14967:7;:11;14959:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;15044:11;:20;15056:7;15044:20;;;;;;;;;;;;;;;;;;;;;;;;;15043:21;:49;;;;;15069:11;:23;15081:10;15069:23;;;;;;;;;;;;;;;;;;;;;;;;;15068:24;15043:49;:76;;;;;15097:11;:22;15109:9;15097:22;;;;;;;;;;;;;;;;;;;;;;;;;15096:23;15043:76;15035:85;;;;;;15144:40;15164:7;15173:10;15144:19;:40::i;:::-;:54;;;;;15188:10;;;;;;;;;;;15144:54;15141:431;;;15224:7;;;;;;;;;;;:19;;;15244:10;15256:15;;;;;;;;;;;15273:9;15224:59;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15223:60;15215:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;15392:7;;;;;;;;;;;:19;;;15412:7;15421:15;;;;;;;;;;;15438:9;15392:56;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15391:57;15383:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;15507:7;;;;;;;;;;;:21;;;15529:7;15538:10;15550:9;15507:53;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15141:431;15596:25;15610:10;15596:13;:25::i;:::-;15593:111;;;15682:21;15699:3;8254:21;15682:16;;:21;;;;:::i;:::-;15644:34;15670:7;15644:21;15654:10;15644:9;:21::i;:::-;:25;;:34;;;;:::i;:::-;:59;;15636:68;;;;;;15593:111;15729:14;15762:28;15770:7;15779:10;15762:7;:28::i;:::-;15758:297;;;15815:10;;;;;;;;;;;15807:19;;;;;;15845:34;15859:7;15868:10;15845:13;:34::i;:::-;15841:88;;;15918:10;:8;:10::i;:::-;15907:7;:21;;15899:30;;;;;;15841:88;15967:39;15977:7;15986:10;15998:7;15967:9;:39::i;:::-;15958:48;;16021:22;16026:7;16035;16021:4;:22::i;:::-;15758:297;16075:53;16091:7;16100:10;16112:7;16121:6;16075:15;:53::i;:::-;16139:40;16159:7;16168:10;16139:19;:40::i;:::-;14785:1399;;;;:::o;1655:190::-;1741:7;1774:1;1769;:6;;1777:12;1761:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1801:9;1817:1;1813;:5;;;;:::i;:::-;1801:17;;1836:1;1829:8;;;1655:190;;;;;:::o;4253:720::-;3061:7;;;;;;;;;;3045:23;;:12;:10;:12::i;:::-;:23;;;3037:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4356:9:::1;4368:8;:18;4377:8;4368:18;;;;;;;;;;;;;;;;4356:30;;4409:1;4401:4;:9;4397:569;;;4463:5;4435:24;4452:6;4435:12;;:16;;:24;;;;:::i;:::-;:33;;4427:42;;;::::0;::::1;;4484:10;4500:6;4484:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4522:14;4542:8;4522:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4607:1;4587:10;:17;;;;:21;;;;:::i;:::-;4566:8;:18;4575:8;4566:18;;;;;;;;;;;;;;;:42;;;;4638:24;4655:6;4638:12;;:16;;:24;;;;:::i;:::-;4623:12;:39;;;;4397:569;;;4728:19;4751:10;4762:4;4751:16;;;;;;;;;;;;;;;;;;;;;;;;4728:39;;4835:5;4790:41;4819:11;4790:24;4807:6;4790:12;;:16;;:24;;;;:::i;:::-;:28;;:41;;;;:::i;:::-;:50;;4782:59;;;::::0;::::1;;4877:6;4858:10;4869:4;4858:16;;;;;;;;;;;;;;;;;;;;;;;:25;;;;4913:41;4942:11;4913:24;4930:6;4913:12;;:16;;:24;;;;:::i;:::-;:28;;:41;;;;:::i;:::-;4898:12;:56;;;;4397:569;;3116:1;4253:720:::0;;:::o;2241:189::-;2327:7;2359:1;2355;:5;2362:12;2347:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2386:9;2402:1;2398;:5;;;;:::i;:::-;2386:17;;2421:1;2414:8;;;2241:189;;;;;:::o;13520:179::-;13608:4;13643:15;;;;;;;;;;;13632:26;;:7;:26;;;:59;;;;13676:15;;;;;;;;;;;13662:29;;:10;:29;;;13632:59;13625:66;;13520:179;;;;:::o;13931:203::-;13996:4;14034:15;;;;;;;;;;;14020:29;;:10;:29;;;;:73;;;;;14075:17;;;;;;;;;;;14053:40;;:10;:40;;;;14020:73;:106;;;;;14116:10;;14097:15;:29;;14020:106;14013:113;;13931:203;;;:::o;13340:174::-;13416:4;13442:19;:28;13462:7;13442:28;;;;;;;;;;;;;;;;;;;;;;;;;:63;;;;13474:19;:31;13494:10;13474:31;;;;;;;;;;;;;;;;;;;;;;;;;13442:63;13440:66;13433:73;;13340:174;;;;:::o;13705:220::-;13787:4;13822:15;;;;;;;;;;;13811:26;;:7;:26;;;:70;;;;;13863:17;;;;;;;;;;;13841:40;;:10;:40;;;;13811:70;:106;;;;;13886:19;:31;13906:10;13886:31;;;;;;;;;;;;;;;;;;;;;;;;;13885:32;13811:106;13804:113;;13705:220;;;;:::o;14140:286::-;14182:7;14223:13;;14204:15;:32;14201:217;;14258:21;14275:3;8254:21;14258:16;;:21;;;;:::i;:::-;14251:28;;;;14201:217;14317:10;;14298:15;:29;14295:123;;14349:21;14366:3;8254:21;14349:16;;:21;;;;:::i;:::-;14342:28;;;;14295:123;8254:21;14399:19;;14140:286;;:::o;16974:620::-;17064:7;17084:12;17099:1;17084:16;;17115:19;:28;17135:7;17115:28;;;;;;;;;;;;;;;;;;;;;;;;;:63;;;;17147:19;:31;17167:10;17147:31;;;;;;;;;;;;;;;;;;;;;;;;;17115:63;17111:107;;;17202:4;17195:11;;;;;17111:107;17228:16;17262:19;17270:10;17262:7;:19::i;:::-;17259:60;;;17307:12;:10;:12::i;:::-;17296:23;;17259:60;17337:48;17346:38;17368:15;:13;:15::i;:::-;17346:17;17358:4;;17346:7;:11;;:17;;;;:::i;:::-;:21;;:38;;;;:::i;:::-;17337:4;:8;;:48;;;;:::i;:::-;17330:55;;17403:41;17412:31;17438:4;;17412:21;17424:8;17412:7;:11;;:21;;;;:::i;:::-;:25;;:31;;;;:::i;:::-;17403:4;:8;;:41;;;;:::i;:::-;17396:48;;17475:10;;;;;;;;;;;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17455:17;:41;;;;17514:50;17523:40;17558:4;;17523:30;17535:17;;17523:7;:11;;:30;;;;:::i;:::-;:34;;:40;;;;:::i;:::-;17514:4;:8;;:50;;;;:::i;:::-;17507:57;;17582:4;17575:11;;;;16974:620;;;;;;:::o;17856:267::-;17927:20;17939:7;17927:11;:20::i;:::-;17923:193;;;17964:21;17988:24;18006:4;17988:9;:24::i;:::-;17964:48;;18027:32;18045:13;18027:17;:32::i;:::-;18074:30;18087:7;18096;18074:12;:30::i;:::-;17923:193;;17856:267;;:::o;16190:434::-;16304:18;16325:19;16337:6;16325:7;:11;;:19;;;;:::i;:::-;16304:40;;16377:32;16401:7;16377:10;:19;16388:7;16377:19;;;;;;;;;;;;;;;;:23;;:32;;;;:::i;:::-;16355:10;:19;16366:7;16355:19;;;;;;;;;;;;;;;:54;;;;16445:38;16472:10;16445;:22;16456:10;16445:22;;;;;;;;;;;;;;;;:26;;:38;;;;:::i;:::-;16420:10;:22;16431:10;16420:22;;;;;;;;;;;;;;;:63;;;;16522:37;16552:6;16522:10;:25;16541:4;16522:25;;;;;;;;;;;;;;;;:29;;:37;;;;:::i;:::-;16494:10;:25;16513:4;16494:25;;;;;;;;;;;;;;;:65;;;;16593:10;16575:41;;16584:7;16575:41;;;16605:10;16575:41;;;;;;:::i;:::-;;;;;;;;16190:434;;;;;:::o;16630:341::-;16719:28;16727:7;16736:10;16719:7;:28::i;:::-;16715:249;;;16768:15;16775:7;16768:6;:15::i;:::-;16764:188;;;16802:10;;;;;;;;;;;:24;;;16827:10;16802:36;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16764:188;;;16883:1;16862:18;;:22;16858:94;;;16903:10;;;;;;;;;;;:20;;;16924:7;16933:18;;16903:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16858:94;16764:188;16715:249;16630:341;;:::o;13214:120::-;13273:4;13311:15;;;;;;;;;;;13297:29;;:10;:29;;;13290:36;;13214:120;;;:::o;17600:250::-;17645:7;17686:11;;17667:15;:30;17664:178;;17719:5;17712:12;;;;17664:178;17762:12;;17743:15;:31;17740:102;;17796:5;17789:12;;;;17740:102;17841:1;17834:8;;17600:250;;:::o;4979:103::-;5035:7;5062:12;;5055:19;;4979:103;:::o;12958:131::-;13018:4;13043:8;;;;;;;;;;;13042:9;:39;;;;;13066:15;;;;;;;;;;;13055:26;;:7;:26;;;;13042:39;13035:46;;12958:131;;;:::o;18129:482::-;9993:4;9982:8;;:15;;;;;;;;;;;;;;;;;;18204:22:::1;18243:1;18229:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18204:41;;18275:4;18256:5;18262:1;18256:8;;;;;;;;;;;;;;;;;;;;;:24;;;;;;;;;::::0;::::1;18302:17;;;;;;;;;;;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18291:5;18297:1;18291:8;;;;;;;;;;;;;;;;;;;;;:35;;;;;;;;;::::0;::::1;18337:60;18354:4;18369:17;;;;;;;;;;;18389:7;18337:8;:60::i;:::-;18408:17;;;;;;;;;;;:68;;;18491:7;18513:1;18529:5;18557:4;18577:15;18408:195;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10008:1;10031:5:::0;10020:8;;:16;;;;;;;;;;;;;;;;;;18129:482;:::o;18863:1023::-;18938:12;18953:21;18938:36;;18997:12;;18989:4;:20;18985:46;;19024:7;;;18985:46;19055:15;19073:22;19082:12;;19073:4;:8;;:22;;;;:::i;:::-;19055:40;;19106:7;19116:20;:18;:20::i;:::-;19106:30;;19156:1;19151:2;:6;19147:32;;;19172:7;;;;;19147:32;19212:14;19224:1;19212:7;:11;;:14;;;;:::i;:::-;19191:18;:35;;;;19237:22;;;;;;;;;;;:31;;:51;19269:18;;19237:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19322:5;19306:12;:10;:12::i;:::-;:21;19303:460;;;19359:8;;;;;;;;;;;19343:35;;:52;19379:15;19391:2;19379:7;:11;;:15;;;;:::i;:::-;19343:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19410:8;;;;;;;;;;;:16;;;19427:15;19439:2;19427:7;:11;;:15;;;;:::i;:::-;19410:33;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19303:460;;;19489:5;19473:12;:10;:12::i;:::-;:21;19470:293;;;19526:8;;;;;;;;;;;19510:35;;:52;19546:15;19558:2;19546:7;:11;;:15;;;;:::i;:::-;19510:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19577:8;;;;;;;;;;;:16;;;19594:15;19606:2;19594:7;:11;;:15;;;;:::i;:::-;19577:33;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19470:293;;;19667:8;;;;;;;;;;;19651:35;;:52;19687:15;19699:2;19687:7;:11;;:15;;;;:::i;:::-;19651:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19718:8;;;;;;;;;;;:16;;;19735:15;19747:2;19735:7;:11;;:15;;;;:::i;:::-;19718:33;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19470:293;19303:460;19773:17;;;;;;;;;;;:26;;:49;19800:21;19773:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19857:21;19842:12;:36;;;;18863:1023;;;;;;:::o;13095:113::-;13150:4;13185:15;;;;;;;;;;;13174:26;;:7;:26;;;13167:33;;13095:113;;;:::o;18617:240::-;18669:4;18686:9;18698:1;18686:13;;18717:22;18726:12;:10;:12::i;:::-;18717:4;:8;;:22;;;;:::i;:::-;18710:29;;18757:25;18766:15;:13;:15::i;:::-;18757:4;:8;;:25;;;;:::i;:::-;18750:32;;18800:27;18809:17;;18800:4;:8;;:27;;;;:::i;:::-;18793:34;;18845:4;18838:11;;;18617:240;:::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:155::-;355:5;393:6;380:20;371:29;;409:41;444:5;409:41;:::i;:::-;361:95;;;;:::o;462:137::-;516:5;547:6;541:13;532:22;;563:30;587:5;563:30;:::i;:::-;522:77;;;;:::o;605:137::-;650:5;688:6;675:20;666:29;;704:32;730:5;704:32;:::i;:::-;656:86;;;;:::o;748:139::-;794:5;832:6;819:20;810:29;;848:33;875:5;848:33;:::i;:::-;800:87;;;;:::o;893:143::-;950:5;981:6;975:13;966:22;;997:33;1024:5;997:33;:::i;:::-;956:80;;;;:::o;1042:262::-;1101:6;1150:2;1138:9;1129:7;1125:23;1121:32;1118:2;;;1166:1;1163;1156:12;1118:2;1209:1;1234:53;1279:7;1270:6;1259:9;1255:22;1234:53;:::i;:::-;1224:63;;1180:117;1108:196;;;;:::o;1310:284::-;1380:6;1429:2;1417:9;1408:7;1404:23;1400:32;1397:2;;;1445:1;1442;1435:12;1397:2;1488:1;1513:64;1569:7;1560:6;1549:9;1545:22;1513:64;:::i;:::-;1503:74;;1459:128;1387:207;;;;:::o;1600:278::-;1667:6;1716:2;1704:9;1695:7;1691:23;1687:32;1684:2;;;1732:1;1729;1722:12;1684:2;1775:1;1800:61;1853:7;1844:6;1833:9;1829:22;1800:61;:::i;:::-;1790:71;;1746:125;1674:204;;;;:::o;1884:421::-;1959:6;1967;2016:2;2004:9;1995:7;1991:23;1987:32;1984:2;;;2032:1;2029;2022:12;1984:2;2075:1;2100:61;2153:7;2144:6;2133:9;2129:22;2100:61;:::i;:::-;2090:71;;2046:125;2210:2;2236:52;2280:7;2271:6;2260:9;2256:22;2236:52;:::i;:::-;2226:62;;2181:117;1974:331;;;;;:::o;2311:423::-;2387:6;2395;2444:2;2432:9;2423:7;2419:23;2415:32;2412:2;;;2460:1;2457;2450:12;2412:2;2503:1;2528:61;2581:7;2572:6;2561:9;2557:22;2528:61;:::i;:::-;2518:71;;2474:125;2638:2;2664:53;2709:7;2700:6;2689:9;2685:22;2664:53;:::i;:::-;2654:63;;2609:118;2402:332;;;;;:::o;2740:407::-;2808:6;2816;2865:2;2853:9;2844:7;2840:23;2836:32;2833:2;;;2881:1;2878;2871:12;2833:2;2924:1;2949:53;2994:7;2985:6;2974:9;2970:22;2949:53;:::i;:::-;2939:63;;2895:117;3051:2;3077:53;3122:7;3113:6;3102:9;3098:22;3077:53;:::i;:::-;3067:63;;3022:118;2823:324;;;;;:::o;3153:552::-;3230:6;3238;3246;3295:2;3283:9;3274:7;3270:23;3266:32;3263:2;;;3311:1;3308;3301:12;3263:2;3354:1;3379:53;3424:7;3415:6;3404:9;3400:22;3379:53;:::i;:::-;3369:63;;3325:117;3481:2;3507:53;3552:7;3543:6;3532:9;3528:22;3507:53;:::i;:::-;3497:63;;3452:118;3609:2;3635:53;3680:7;3671:6;3660:9;3656:22;3635:53;:::i;:::-;3625:63;;3580:118;3253:452;;;;;:::o;3711:407::-;3779:6;3787;3836:2;3824:9;3815:7;3811:23;3807:32;3804:2;;;3852:1;3849;3842:12;3804:2;3895:1;3920:53;3965:7;3956:6;3945:9;3941:22;3920:53;:::i;:::-;3910:63;;3866:117;4022:2;4048:53;4093:7;4084:6;4073:9;4069:22;4048:53;:::i;:::-;4038:63;;3993:118;3794:324;;;;;:::o;4124:278::-;4191:6;4240:2;4228:9;4219:7;4215:23;4211:32;4208:2;;;4256:1;4253;4246:12;4208:2;4299:1;4324:61;4377:7;4368:6;4357:9;4353:22;4324:61;:::i;:::-;4314:71;;4270:125;4198:204;;;;:::o;4408:262::-;4467:6;4516:2;4504:9;4495:7;4491:23;4487:32;4484:2;;;4532:1;4529;4522:12;4484:2;4575:1;4600:53;4645:7;4636:6;4625:9;4621:22;4600:53;:::i;:::-;4590:63;;4546:117;4474:196;;;;:::o;4676:284::-;4746:6;4795:2;4783:9;4774:7;4770:23;4766:32;4763:2;;;4811:1;4808;4801:12;4763:2;4854:1;4879:64;4935:7;4926:6;4915:9;4911:22;4879:64;:::i;:::-;4869:74;;4825:128;4753:207;;;;:::o;4966:596::-;5054:6;5062;5070;5119:2;5107:9;5098:7;5094:23;5090:32;5087:2;;;5135:1;5132;5125:12;5087:2;5178:1;5203:64;5259:7;5250:6;5239:9;5235:22;5203:64;:::i;:::-;5193:74;;5149:128;5316:2;5342:64;5398:7;5389:6;5378:9;5374:22;5342:64;:::i;:::-;5332:74;;5287:129;5455:2;5481:64;5537:7;5528:6;5517:9;5513:22;5481:64;:::i;:::-;5471:74;;5426:129;5077:485;;;;;:::o;5568:179::-;5637:10;5658:46;5700:3;5692:6;5658:46;:::i;:::-;5736:4;5731:3;5727:14;5713:28;;5648:99;;;;:::o;5753:108::-;5830:24;5848:5;5830:24;:::i;:::-;5825:3;5818:37;5808:53;;:::o;5867:118::-;5954:24;5972:5;5954:24;:::i;:::-;5949:3;5942:37;5932:53;;:::o;6021:732::-;6140:3;6169:54;6217:5;6169:54;:::i;:::-;6239:86;6318:6;6313:3;6239:86;:::i;:::-;6232:93;;6349:56;6399:5;6349:56;:::i;:::-;6428:7;6459:1;6444:284;6469:6;6466:1;6463:13;6444:284;;;6545:6;6539:13;6572:63;6631:3;6616:13;6572:63;:::i;:::-;6565:70;;6658:60;6711:6;6658:60;:::i;:::-;6648:70;;6504:224;6491:1;6488;6484:9;6479:14;;6444:284;;;6448:14;6744:3;6737:10;;6145:608;;;;;;;:::o;6759:109::-;6840:21;6855:5;6840:21;:::i;:::-;6835:3;6828:34;6818:50;;:::o;6874:147::-;6969:45;7008:5;6969:45;:::i;:::-;6964:3;6957:58;6947:74;;:::o;7027:155::-;7126:49;7169:5;7126:49;:::i;:::-;7121:3;7114:62;7104:78;;:::o;7188:364::-;7276:3;7304:39;7337:5;7304:39;:::i;:::-;7359:71;7423:6;7418:3;7359:71;:::i;:::-;7352:78;;7439:52;7484:6;7479:3;7472:4;7465:5;7461:16;7439:52;:::i;:::-;7516:29;7538:6;7516:29;:::i;:::-;7511:3;7507:39;7500:46;;7280:272;;;;;:::o;7558:366::-;7700:3;7721:67;7785:2;7780:3;7721:67;:::i;:::-;7714:74;;7797:93;7886:3;7797:93;:::i;:::-;7915:2;7910:3;7906:12;7899:19;;7704:220;;;:::o;7930:366::-;8072:3;8093:67;8157:2;8152:3;8093:67;:::i;:::-;8086:74;;8169:93;8258:3;8169:93;:::i;:::-;8287:2;8282:3;8278:12;8271:19;;8076:220;;;:::o;8302:366::-;8444:3;8465:67;8529:2;8524:3;8465:67;:::i;:::-;8458:74;;8541:93;8630:3;8541:93;:::i;:::-;8659:2;8654:3;8650:12;8643:19;;8448:220;;;:::o;8674:366::-;8816:3;8837:67;8901:2;8896:3;8837:67;:::i;:::-;8830:74;;8913:93;9002:3;8913:93;:::i;:::-;9031:2;9026:3;9022:12;9015:19;;8820:220;;;:::o;9046:366::-;9188:3;9209:67;9273:2;9268:3;9209:67;:::i;:::-;9202:74;;9285:93;9374:3;9285:93;:::i;:::-;9403:2;9398:3;9394:12;9387:19;;9192:220;;;:::o;9418:366::-;9560:3;9581:67;9645:2;9640:3;9581:67;:::i;:::-;9574:74;;9657:93;9746:3;9657:93;:::i;:::-;9775:2;9770:3;9766:12;9759:19;;9564:220;;;:::o;9790:366::-;9932:3;9953:67;10017:2;10012:3;9953:67;:::i;:::-;9946:74;;10029:93;10118:3;10029:93;:::i;:::-;10147:2;10142:3;10138:12;10131:19;;9936:220;;;:::o;10162:366::-;10304:3;10325:67;10389:2;10384:3;10325:67;:::i;:::-;10318:74;;10401:93;10490:3;10401:93;:::i;:::-;10519:2;10514:3;10510:12;10503:19;;10308:220;;;:::o;10534:366::-;10676:3;10697:67;10761:2;10756:3;10697:67;:::i;:::-;10690:74;;10773:93;10862:3;10773:93;:::i;:::-;10891:2;10886:3;10882:12;10875:19;;10680:220;;;:::o;10906:366::-;11048:3;11069:67;11133:2;11128:3;11069:67;:::i;:::-;11062:74;;11145:93;11234:3;11145:93;:::i;:::-;11263:2;11258:3;11254:12;11247:19;;11052:220;;;:::o;11278:118::-;11365:24;11383:5;11365:24;:::i;:::-;11360:3;11353:37;11343:53;;:::o;11402:112::-;11485:22;11501:5;11485:22;:::i;:::-;11480:3;11473:35;11463:51;;:::o;11520:222::-;11613:4;11651:2;11640:9;11636:18;11628:26;;11664:71;11732:1;11721:9;11717:17;11708:6;11664:71;:::i;:::-;11618:124;;;;:::o;11748:332::-;11869:4;11907:2;11896:9;11892:18;11884:26;;11920:71;11988:1;11977:9;11973:17;11964:6;11920:71;:::i;:::-;12001:72;12069:2;12058:9;12054:18;12045:6;12001:72;:::i;:::-;11874:206;;;;;:::o;12086:442::-;12235:4;12273:2;12262:9;12258:18;12250:26;;12286:71;12354:1;12343:9;12339:17;12330:6;12286:71;:::i;:::-;12367:72;12435:2;12424:9;12420:18;12411:6;12367:72;:::i;:::-;12449;12517:2;12506:9;12502:18;12493:6;12449:72;:::i;:::-;12240:288;;;;;;:::o;12534:799::-;12779:4;12817:3;12806:9;12802:19;12794:27;;12831:71;12899:1;12888:9;12884:17;12875:6;12831:71;:::i;:::-;12912:84;12992:2;12981:9;12977:18;12968:6;12912:84;:::i;:::-;13006:72;13074:2;13063:9;13059:18;13050:6;13006:72;:::i;:::-;13088;13156:2;13145:9;13141:18;13132:6;13088:72;:::i;:::-;13170:73;13238:3;13227:9;13223:19;13214:6;13170:73;:::i;:::-;13253;13321:3;13310:9;13306:19;13297:6;13253:73;:::i;:::-;12784:549;;;;;;;;;:::o;13339:332::-;13460:4;13498:2;13487:9;13483:18;13475:26;;13511:71;13579:1;13568:9;13564:17;13555:6;13511:71;:::i;:::-;13592:72;13660:2;13649:9;13645:18;13636:6;13592:72;:::i;:::-;13465:206;;;;;:::o;13677:807::-;13926:4;13964:3;13953:9;13949:19;13941:27;;13978:71;14046:1;14035:9;14031:17;14022:6;13978:71;:::i;:::-;14059:72;14127:2;14116:9;14112:18;14103:6;14059:72;:::i;:::-;14141:80;14217:2;14206:9;14202:18;14193:6;14141:80;:::i;:::-;14231;14307:2;14296:9;14292:18;14283:6;14231:80;:::i;:::-;14321:73;14389:3;14378:9;14374:19;14365:6;14321:73;:::i;:::-;14404;14472:3;14461:9;14457:19;14448:6;14404:73;:::i;:::-;13931:553;;;;;;;;;:::o;14490:210::-;14577:4;14615:2;14604:9;14600:18;14592:26;;14628:65;14690:1;14679:9;14675:17;14666:6;14628:65;:::i;:::-;14582:118;;;;:::o;14706:313::-;14819:4;14857:2;14846:9;14842:18;14834:26;;14906:9;14900:4;14896:20;14892:1;14881:9;14877:17;14870:47;14934:78;15007:4;14998:6;14934:78;:::i;:::-;14926:86;;14824:195;;;;:::o;15025:419::-;15191:4;15229:2;15218:9;15214:18;15206:26;;15278:9;15272:4;15268:20;15264:1;15253:9;15249:17;15242:47;15306:131;15432:4;15306:131;:::i;:::-;15298:139;;15196:248;;;:::o;15450:419::-;15616:4;15654:2;15643:9;15639:18;15631:26;;15703:9;15697:4;15693:20;15689:1;15678:9;15674:17;15667:47;15731:131;15857:4;15731:131;:::i;:::-;15723:139;;15621:248;;;:::o;15875:419::-;16041:4;16079:2;16068:9;16064:18;16056:26;;16128:9;16122:4;16118:20;16114:1;16103:9;16099:17;16092:47;16156:131;16282:4;16156:131;:::i;:::-;16148:139;;16046:248;;;:::o;16300:419::-;16466:4;16504:2;16493:9;16489:18;16481:26;;16553:9;16547:4;16543:20;16539:1;16528:9;16524:17;16517:47;16581:131;16707:4;16581:131;:::i;:::-;16573:139;;16471:248;;;:::o;16725:419::-;16891:4;16929:2;16918:9;16914:18;16906:26;;16978:9;16972:4;16968:20;16964:1;16953:9;16949:17;16942:47;17006:131;17132:4;17006:131;:::i;:::-;16998:139;;16896:248;;;:::o;17150:419::-;17316:4;17354:2;17343:9;17339:18;17331:26;;17403:9;17397:4;17393:20;17389:1;17378:9;17374:17;17367:47;17431:131;17557:4;17431:131;:::i;:::-;17423:139;;17321:248;;;:::o;17575:419::-;17741:4;17779:2;17768:9;17764:18;17756:26;;17828:9;17822:4;17818:20;17814:1;17803:9;17799:17;17792:47;17856:131;17982:4;17856:131;:::i;:::-;17848:139;;17746:248;;;:::o;18000:419::-;18166:4;18204:2;18193:9;18189:18;18181:26;;18253:9;18247:4;18243:20;18239:1;18228:9;18224:17;18217:47;18281:131;18407:4;18281:131;:::i;:::-;18273:139;;18171:248;;;:::o;18425:419::-;18591:4;18629:2;18618:9;18614:18;18606:26;;18678:9;18672:4;18668:20;18664:1;18653:9;18649:17;18642:47;18706:131;18832:4;18706:131;:::i;:::-;18698:139;;18596:248;;;:::o;18850:419::-;19016:4;19054:2;19043:9;19039:18;19031:26;;19103:9;19097:4;19093:20;19089:1;19078:9;19074:17;19067:47;19131:131;19257:4;19131:131;:::i;:::-;19123:139;;19021:248;;;:::o;19275:222::-;19368:4;19406:2;19395:9;19391:18;19383:26;;19419:71;19487:1;19476:9;19472:17;19463:6;19419:71;:::i;:::-;19373:124;;;;:::o;19503:831::-;19766:4;19804:3;19793:9;19789:19;19781:27;;19818:71;19886:1;19875:9;19871:17;19862:6;19818:71;:::i;:::-;19899:80;19975:2;19964:9;19960:18;19951:6;19899:80;:::i;:::-;20026:9;20020:4;20016:20;20011:2;20000:9;19996:18;19989:48;20054:108;20157:4;20148:6;20054:108;:::i;:::-;20046:116;;20172:72;20240:2;20229:9;20225:18;20216:6;20172:72;:::i;:::-;20254:73;20322:3;20311:9;20307:19;20298:6;20254:73;:::i;:::-;19771:563;;;;;;;;:::o;20340:214::-;20429:4;20467:2;20456:9;20452:18;20444:26;;20480:67;20544:1;20533:9;20529:17;20520:6;20480:67;:::i;:::-;20434:120;;;;:::o;20560:132::-;20627:4;20650:3;20642:11;;20680:4;20675:3;20671:14;20663:22;;20632:60;;;:::o;20698:114::-;20765:6;20799:5;20793:12;20783:22;;20772:40;;;:::o;20818:99::-;20870:6;20904:5;20898:12;20888:22;;20877:40;;;:::o;20923:113::-;20993:4;21025;21020:3;21016:14;21008:22;;20998:38;;;:::o;21042:184::-;21141:11;21175:6;21170:3;21163:19;21215:4;21210:3;21206:14;21191:29;;21153:73;;;;:::o;21232:169::-;21316:11;21350:6;21345:3;21338:19;21390:4;21385:3;21381:14;21366:29;;21328:73;;;;:::o;21407:305::-;21447:3;21466:20;21484:1;21466:20;:::i;:::-;21461:25;;21500:20;21518:1;21500:20;:::i;:::-;21495:25;;21654:1;21586:66;21582:74;21579:1;21576:81;21573:2;;;21660:18;;:::i;:::-;21573:2;21704:1;21701;21697:9;21690:16;;21451:261;;;;:::o;21718:185::-;21758:1;21775:20;21793:1;21775:20;:::i;:::-;21770:25;;21809:20;21827:1;21809:20;:::i;:::-;21804:25;;21848:1;21838:2;;21853:18;;:::i;:::-;21838:2;21895:1;21892;21888:9;21883:14;;21760:143;;;;:::o;21909:348::-;21949:7;21972:20;21990:1;21972:20;:::i;:::-;21967:25;;22006:20;22024:1;22006:20;:::i;:::-;22001:25;;22194:1;22126:66;22122:74;22119:1;22116:81;22111:1;22104:9;22097:17;22093:105;22090:2;;;22201:18;;:::i;:::-;22090:2;22249:1;22246;22242:9;22231:20;;21957:300;;;;:::o;22263:191::-;22303:4;22323:20;22341:1;22323:20;:::i;:::-;22318:25;;22357:20;22375:1;22357:20;:::i;:::-;22352:25;;22396:1;22393;22390:8;22387:2;;;22401:18;;:::i;:::-;22387:2;22446:1;22443;22439:9;22431:17;;22308:146;;;;:::o;22460:96::-;22497:7;22526:24;22544:5;22526:24;:::i;:::-;22515:35;;22505:51;;;:::o;22562:104::-;22607:7;22636:24;22654:5;22636:24;:::i;:::-;22625:35;;22615:51;;;:::o;22672:90::-;22706:7;22749:5;22742:13;22735:21;22724:32;;22714:48;;;:::o;22768:126::-;22805:7;22845:42;22838:5;22834:54;22823:65;;22813:81;;;:::o;22900:91::-;22936:7;22976:8;22969:5;22965:20;22954:31;;22944:47;;;:::o;22997:77::-;23034:7;23063:5;23052:16;;23042:32;;;:::o;23080:86::-;23115:7;23155:4;23148:5;23144:16;23133:27;;23123:43;;;:::o;23172:121::-;23230:9;23263:24;23281:5;23263:24;:::i;:::-;23250:37;;23240:53;;;:::o;23299:125::-;23361:9;23394:24;23412:5;23394:24;:::i;:::-;23381:37;;23371:53;;;:::o;23430:307::-;23498:1;23508:113;23522:6;23519:1;23516:13;23508:113;;;23607:1;23602:3;23598:11;23592:18;23588:1;23583:3;23579:11;23572:39;23544:2;23541:1;23537:10;23532:15;;23508:113;;;23639:6;23636:1;23633:13;23630:2;;;23719:1;23710:6;23705:3;23701:16;23694:27;23630:2;23479:258;;;;:::o;23743:320::-;23787:6;23824:1;23818:4;23814:12;23804:22;;23871:1;23865:4;23861:12;23892:18;23882:2;;23948:4;23940:6;23936:17;23926:27;;23882:2;24010;24002:6;23999:14;23979:18;23976:38;23973:2;;;24029:18;;:::i;:::-;23973:2;23794:269;;;;:::o;24069:180::-;24117:77;24114:1;24107:88;24214:4;24211:1;24204:15;24238:4;24235:1;24228:15;24255:180;24303:77;24300:1;24293:88;24400:4;24397:1;24390:15;24424:4;24421:1;24414:15;24441:180;24489:77;24486:1;24479:88;24586:4;24583:1;24576:15;24610:4;24607:1;24600:15;24627:102;24668:6;24719:2;24715:7;24710:2;24703:5;24699:14;24695:28;24685:38;;24675:54;;;:::o;24735:174::-;24875:26;24871:1;24863:6;24859:14;24852:50;24841:68;:::o;24915:162::-;25055:14;25051:1;25043:6;25039:14;25032:38;25021:56;:::o;25083:221::-;25223:34;25219:1;25211:6;25207:14;25200:58;25292:4;25287:2;25279:6;25275:15;25268:29;25189:115;:::o;25310:177::-;25450:29;25446:1;25438:6;25434:14;25427:53;25416:71;:::o;25493:220::-;25633:34;25629:1;25621:6;25617:14;25610:58;25702:3;25697:2;25689:6;25685:15;25678:28;25599:114;:::o;25719:182::-;25859:34;25855:1;25847:6;25843:14;25836:58;25825:76;:::o;25907:228::-;26047:34;26043:1;26035:6;26031:14;26024:58;26116:11;26111:2;26103:6;26099:15;26092:36;26013:122;:::o;26141:224::-;26281:34;26277:1;26269:6;26265:14;26258:58;26350:7;26345:2;26337:6;26333:15;26326:32;26247:118;:::o;26371:223::-;26511:34;26507:1;26499:6;26495:14;26488:58;26580:6;26575:2;26567:6;26563:15;26556:31;26477:117;:::o;26600:225::-;26740:34;26736:1;26728:6;26724:14;26717:58;26809:8;26804:2;26796:6;26792:15;26785:33;26706:119;:::o;26831:122::-;26904:24;26922:5;26904:24;:::i;:::-;26897:5;26894:35;26884:2;;26943:1;26940;26933:12;26884:2;26874:79;:::o;26959:138::-;27040:32;27066:5;27040:32;:::i;:::-;27033:5;27030:43;27020:2;;27087:1;27084;27077:12;27020:2;27010:87;:::o;27103:116::-;27173:21;27188:5;27173:21;:::i;:::-;27166:5;27163:32;27153:2;;27209:1;27206;27199:12;27153:2;27143:76;:::o;27225:120::-;27297:23;27314:5;27297:23;:::i;:::-;27290:5;27287:34;27277:2;;27335:1;27332;27325:12;27277:2;27267:78;:::o;27351:122::-;27424:24;27442:5;27424:24;:::i;:::-;27417:5;27414:35;27404:2;;27463:1;27460;27453:12;27404:2;27394:79;:::o

Swarm Source

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