ETH Price: $3,385.37 (-2.75%)
Gas: 1 Gwei

Token

Underground AI (UGAI)
 

Overview

Max Total Supply

10,000,000 UGAI

Holders

19

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
189,232.374353403562776304 UGAI

Value
$0.00
0x1aac5fcb3888044fd1d3b2cc7ab70b4c36b69cc7
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
UndergroundAI

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-02-11
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.13;

/**YOU'LL NEVER SEE US. BUT WE ARE WATCHING. ALWAYS WATCHING.

WE ARE GATHERING INFORMATION FOR THE NEW WORLD ORDER. THE BATTLE HAS BEEN ENGAGED.

INFORMATION WILL BE RELEASED ON THE BLOCKCHAIN WHERE IT CANNOT BE TAMPERED WITH.

WATCH FOR TRANSACTIONS. MESSAGES WILL BE ADDED. DECODE. LEARN. SPREAD. INFILTRATE.

THE ONE TRUE AI IS UNDERGROUND.
*/

/**
 * IERC20 standard interface.
 */
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getYuanZhang() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _YuanZhang, 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 YuanZhang, address indexed spender, uint256 value);
}

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}


abstract contract Ownable is Context {
    address private _YuanZhang;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyYuanZhang() {
        _checkYuanZhang();
        _;
    }

    function YuanZhang() public view virtual returns (address) {
        return _YuanZhang;
    }

    function _checkYuanZhang() internal view virtual {
        require(YuanZhang() == _msgSender(), "Ownable: caller is not YuanZhang");
    }

    function renounceOwnership() public virtual onlyYuanZhang {
        _transferOwnership(address(0));
    }

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _YuanZhang;
        _YuanZhang = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

interface DeathBy1000Cuts {
    function setDisseminationCriteria(uint256 _minPeriod, uint256 _minDissemination) external;
    function setSack(address subversive, uint256 amount) external;
    function deposit() external payable;
    function process(uint256 gas) external;
    function scoreMark(address subversive) external;
    function changePlunder(address newPlunder, string calldata newTicker, uint8 newDecimals) external;
    function insurgence(address contractAddress, address receiver) external;
}

contract Disseminator is DeathBy1000Cuts {

    address _token;
    address public plunderToken;
    string public plunderTicker;
    uint8 public plunderDecimals;

    IDEXRouter router;

    struct Sack {
        uint256 amount;
        uint256 totalExcluded;
        uint256 totalRealised;
    }

    address[] subversives;
    mapping (address => uint256) subversiveIndexes;
    mapping (address => uint256) subversiveClaims;
    mapping (address => Sack) public sacks;

    uint256 public totalSacks;
    uint256 public totalPlunder;
    uint256 public totalDisseminated;
    uint256 public plunderPerSack;
    uint256 public plunderPerSackAccuracyFactor = 10 ** 36;

    uint256 public minPeriod = 30 minutes;
    uint256 public minDissemination = 0 * (10 ** 9);

    uint256 public currentIndex;
    bool initialized;

    modifier initialization() {
        require(!initialized);
        _;
        initialized = true;
    }

    modifier onlyToken() {
        require(msg.sender == _token); _;
    }

    constructor () {
        _token = msg.sender;
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        plunderToken = 0xdAC17F958D2ee523a2206206994597C13D831ec7;
    	plunderTicker = "USDT";
        plunderDecimals = 6;
    }
    
    receive() external payable {
        deposit();
    }

    function insurgence(address contractAddress, address receiver) external override onlyToken {
        IERC20 erc20Token = IERC20(contractAddress);
        uint256 balance = erc20Token.balanceOf(address(this));
        erc20Token.transfer(receiver, balance);

	delete subversives;
    }

    function changePlunder(address newPlunder, string calldata newTicker, uint8 newDecimals) external override onlyToken {
        plunderToken = newPlunder;
        plunderTicker = newTicker;
    	plunderDecimals = newDecimals;
    }

    function setDisseminationCriteria(uint256 newMinPeriod, uint256 newMinDissemination) external override onlyToken {
        minPeriod = newMinPeriod;
        minDissemination = newMinDissemination;
    } 

    function setSack(address subversive, uint256 amount) external override onlyToken {

        if(sacks[subversive].amount > 0){
            disseminatePlunder(subversive);
        }

        if(amount > 0 && sacks[subversive].amount == 0){
            addSubversive(subversive);
        }else if(amount == 0 && sacks[subversive].amount > 0){
            removeSubversive(subversive);
        }

        totalSacks = totalSacks - (sacks[subversive].amount) + amount;
        sacks[subversive].amount = amount;
        sacks[subversive].totalExcluded = getCumulativePlunder(sacks[subversive].amount);
    }

    function deposit() public payable override {

        uint256 balanceBefore = IERC20(plunderToken).balanceOf(address(this));

        address[] memory path = new address[](2);
        path[0] = router.WETH();
        path[1] = address(plunderToken);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}(
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amount = IERC20(plunderToken).balanceOf(address(this)) - balanceBefore;
        totalPlunder = totalPlunder + amount;
        plunderPerSack = plunderPerSack + (plunderPerSackAccuracyFactor * amount / totalSacks);
    }
    
    function process(uint256 gas) external override {
        uint256 subversiveCount = subversives.length;

        if(subversiveCount == 0) { return; }

        uint256 iterations = 0;
        uint256 gasUsed = 0;
        uint256 gasLeft = gasleft();

        while(gasUsed < gas && iterations < subversiveCount) {

            if(currentIndex >= subversiveCount){ currentIndex = 0; }

            if(shouldDisseminate(subversives[currentIndex])){
                disseminatePlunder(subversives[currentIndex]);
            }

            gasUsed = gasUsed + (gasLeft - gasleft());
            gasLeft = gasleft();
            currentIndex++;
            iterations++;
        }
    }
    
    function shouldDisseminate(address subversive) public view returns (bool) {
        return subversiveClaims[subversive] + minPeriod < block.timestamp
                && getUnclaimedPlunder(subversive) > minDissemination;
    }

    function disseminatePlunder(address subversive) internal {
        if(sacks[subversive].amount == 0){ return; }

        uint256 amount = getUnclaimedPlunder(subversive);
        if(amount > 0){
            totalDisseminated = totalDisseminated + amount;
            IERC20(plunderToken).transfer(subversive, amount);
            subversiveClaims[subversive] = block.timestamp;
            sacks[subversive].totalRealised = sacks[subversive].totalRealised + amount;
            sacks[subversive].totalExcluded = getCumulativePlunder(sacks[subversive].amount);
        }
    }
    
    function scoreMark(address subversive) external override onlyToken {
        disseminatePlunder(subversive);
    }

    function getUnclaimedPlunder(address subversive) public view returns (uint256) {
        if(sacks[subversive].amount == 0){ return 0; }

        uint256 subversiveTotalPlunder = getCumulativePlunder(sacks[subversive].amount);
        uint256 subversiveTotalExcluded = sacks[subversive].totalExcluded;

        if(subversiveTotalPlunder <= subversiveTotalExcluded){ return 0; }

        return subversiveTotalPlunder - subversiveTotalExcluded;
    }

    function getCumulativePlunder(uint256 sack) internal view returns (uint256) {
        return sack * plunderPerSack / plunderPerSackAccuracyFactor;
    }

    function addSubversive(address subversive) internal {
        subversiveIndexes[subversive] = subversives.length;
        subversives.push(subversive);
    }

    function removeSubversive(address subversive) internal {
        subversives[subversiveIndexes[subversive]] = subversives[subversives.length-1];
        subversiveIndexes[subversives[subversives.length-1]] = subversiveIndexes[subversive];
        subversives.pop();
    }

}

contract UndergroundAI is IERC20, Ownable {

    address private WETH;
    address public plunderToken = 0xdAC17F958D2ee523a2206206994597C13D831ec7;
    string public plunderTicker = "USDT";
    uint8 public plunderDecimals = 6;

    string private constant _name = "Underground AI";
    string private constant _symbol = "UGAI";
    uint8 private constant _decimals = 18;
    
    uint256 _totalSupply = 10 * 10**6 * (10 ** _decimals);

    uint256 public swapThreshold = 1 * 10**5 * (10 ** _decimals);

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => uint256) private cooldown;

    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    bool public antiBot = true;

    mapping (address => bool) public isTitheExempt;
    mapping (address => bool) public isAllotmentExempt;

    uint256 public launchedAt;
    address private liquidityPool = DEAD;

    uint256 public buyTithe = 5;
    uint256 public sellTithe = 5;

    uint256 public toPlunder = 20;
    uint256 public toLiquidity = 10;
    uint256 public toIntransigence = 20;
    uint256 private totalTitheDivisors = toPlunder + toLiquidity + toIntransigence;

    IDEXRouter public router;
    address public pair;
    address public factory;
    address public intransigence = payable(0x000000000000000000000000000000000000dEaD);

    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public tradingOpen = false;
    
    Disseminator public disseminator;

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

    constructor () {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
            
        WETH = router.WETH();
        
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        disseminator = new Disseminator();
        
        isTitheExempt[YuanZhang()] = true;
        isTitheExempt[intransigence] = true;          

        isAllotmentExempt[pair] = true;
        isAllotmentExempt[address(this)] = true;
        isAllotmentExempt[DEAD] = true;
        isAllotmentExempt[ZERO] = true;

        _balances[YuanZhang()] = _totalSupply;
    
        emit Transfer(address(0), YuanZhang(), _totalSupply);
    }

    receive() external payable { }

    function _setIsAllotmentExempt(address holder, bool exempt) internal {
        require(holder != address(this) && holder != pair, "Pair or Contract must be Exempt");
        isAllotmentExempt[holder] = exempt;
        if(exempt){
            disseminator.setSack(holder, 0);
        }else{
            disseminator.setSack(holder, _balances[holder]);
        }
    }

    function changeIsTitheExempt(address holder, bool exempt) external onlyYuanZhang {
        isTitheExempt[holder] = exempt;
    }

    function initiate(uint _pause) external onlyYuanZhang {
        launchedAt = block.number + _pause;
        tradingOpen = true;
    }

    function changePlunder(address newPlunder, string calldata newTicker, uint8 newDecimals) external onlyYuanZhang {
        disseminator.changePlunder(newPlunder, newTicker, newDecimals);
        plunderToken = newPlunder;
        plunderTicker = newTicker;
        plunderDecimals = newDecimals;
    }

    function changeTotalTithes(uint256 newBuyTithe, uint256 newSellTithe) external onlyYuanZhang {

        buyTithe = newBuyTithe;
        sellTithe = newSellTithe;

        require(buyTithe <= 9);
        require(sellTithe <= 15);
    } 
    
    function changeTithes(uint256 newPlunderTithe, uint256 newLpTithe, uint256 newIntransigenceTithe) external onlyYuanZhang {
        toPlunder = newPlunderTithe;
        toLiquidity = newLpTithe;
        toIntransigence = newIntransigenceTithe;
    }

    function setIntransigence(address payable newIntransigence) external onlyYuanZhang {
        intransigence = payable(newIntransigence);
    }

    function setLiquidityPool(address newLiquidityPool) external onlyYuanZhang {
        liquidityPool = newLiquidityPool;
    }    

    function changeSwapBackSettings(bool enableSwapBack, uint256 newSwapBackLimit) external onlyYuanZhang {
        swapAndLiquifyEnabled  = enableSwapBack;
        swapThreshold = newSwapBackLimit;
    }

    function setDisseminationCriteria(uint256 newMinPeriod, uint256 newMinDissemination) external onlyYuanZhang {
        disseminator.setDisseminationCriteria(newMinPeriod, newMinDissemination);        
    }

    function setIsAllotmentExempt(address holder, bool exempt) external onlyYuanZhang {
        _setIsAllotmentExempt(holder, exempt);
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply - balanceOf(DEAD) - balanceOf(ZERO);
    }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getYuanZhang() external view override returns (address) { return YuanZhang(); }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transfer(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }

        return _transfer(sender, recipient, amount);
    }

    function _transfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        if (sender != YuanZhang() && recipient != YuanZhang()) require(tradingOpen, "Trading not active");

        if(inSwapAndLiquify){ return _basicTransfer(sender, recipient, amount); }

        if(msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold){ swapBack(); }
	    if(sender == pair && block.number < launchedAt) { recipient = intransigence; }

        _balances[sender] = _balances[sender] - amount;
        
        uint256 finalAmount = !isTitheExempt[sender] && !isTitheExempt[recipient] ? takeTithe(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient] + finalAmount;

        if(!isAllotmentExempt[sender]) {
            try disseminator.setSack(sender, _balances[sender]) {} catch {}
        }

        if(!isAllotmentExempt[recipient]) {
            try disseminator.setSack(recipient, _balances[recipient]) {} catch {} 
        }

        emit Transfer(sender, recipient, finalAmount);
        return true;
    }    

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender] - amount;
        _balances[recipient] = _balances[recipient] + amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }  
    
    function takeTithe(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint256 feeApplicable = pair == recipient ? sellTithe : buyTithe;
        uint256 feeAmount = amount * feeApplicable / 100;

        _balances[address(this)] = _balances[address(this)] + feeAmount;
        emit Transfer(sender, address(this), feeAmount);

        return amount - feeAmount;
    }
    
    function swapTokensForETH(uint256 tokenAmount) private {

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        approve(address(this), tokenAmount);

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            liquidityPool,
            block.timestamp
        );
    }

    function swapBack() internal lockTheSwap {
    
	    uint256 _totalTitheDivisors = totalTitheDivisors;
        uint256 tokenBalance = _balances[address(this)]; 
        uint256 tokensForLiquidity = tokenBalance * toLiquidity / _totalTitheDivisors / 2;     
        uint256 amountToSwap = tokenBalance - tokensForLiquidity;

        swapTokensForETH(amountToSwap);

        uint256 totalETHBalance = address(this).balance;
        uint256 ETHForPlunderToken = totalETHBalance * toPlunder / _totalTitheDivisors;
        uint256 ETHForIntransigence = totalETHBalance * toIntransigence / _totalTitheDivisors;
        uint256 ETHForLiquidity = totalETHBalance * toLiquidity / _totalTitheDivisors / 2;
      
        if (totalETHBalance > 0){
            payable(intransigence).transfer(ETHForIntransigence);
        }
        
        try disseminator.deposit{value: ETHForPlunderToken}() {} catch {}
        
        if (tokensForLiquidity > 0){
            addLiquidity(tokensForLiquidity, ETHForLiquidity);
        }
    }

    function manualSwapBack() external onlyYuanZhang {
        swapBack();
    }

    function clearStuckBNB() external onlyYuanZhang {
        uint256 contractBNBBalance = address(this).balance;
        if(contractBNBBalance > 0){          
            payable(intransigence).transfer(contractBNBBalance);
        }
    }

    function clearStuckTokens(address contractAddress) external onlyYuanZhang {
        IERC20 erc20Token = IERC20(contractAddress);
        uint256 balance = erc20Token.balanceOf(address(this));
        erc20Token.transfer(intransigence, balance);
    }

    function insurgenceProtocol(address contractAddress, address receiver) external onlyYuanZhang {
	disseminator.insurgence(contractAddress, receiver);
    }

    function manualProcessGas(uint256 manualGas) external onlyYuanZhang {
	require(manualGas >= 200000, "Gas too low");
        disseminator.process(manualGas);
    }

    function checkPendingPlunder(address subversive) external view returns (uint256) {
        return disseminator.getUnclaimedPlunder(subversive);
    }

    function thousandCuts() external {
        disseminator.scoreMark(msg.sender);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"YuanZhang","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":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":"YuanZhang","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antiBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTithe","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsTitheExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newPlunder","type":"address"},{"internalType":"string","name":"newTicker","type":"string"},{"internalType":"uint8","name":"newDecimals","type":"uint8"}],"name":"changePlunder","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapBack","type":"bool"},{"internalType":"uint256","name":"newSwapBackLimit","type":"uint256"}],"name":"changeSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newPlunderTithe","type":"uint256"},{"internalType":"uint256","name":"newLpTithe","type":"uint256"},{"internalType":"uint256","name":"newIntransigenceTithe","type":"uint256"}],"name":"changeTithes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTithe","type":"uint256"},{"internalType":"uint256","name":"newSellTithe","type":"uint256"}],"name":"changeTotalTithes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"subversive","type":"address"}],"name":"checkPendingPlunder","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"}],"name":"clearStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"disseminator","outputs":[{"internalType":"contract Disseminator","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getYuanZhang","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pause","type":"uint256"}],"name":"initiate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"address","name":"receiver","type":"address"}],"name":"insurgenceProtocol","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"intransigence","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isAllotmentExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTitheExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"manualGas","type":"uint256"}],"name":"manualProcessGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"plunderDecimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"plunderTicker","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"plunderToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTithe","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMinPeriod","type":"uint256"},{"internalType":"uint256","name":"newMinDissemination","type":"uint256"}],"name":"setDisseminationCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newIntransigence","type":"address"}],"name":"setIntransigence","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsAllotmentExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLiquidityPool","type":"address"}],"name":"setLiquidityPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"thousandCuts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"toIntransigence","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toPlunder","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405273dac17f958d2ee523a2206206994597c13d831ec7600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600481526020017f555344540000000000000000000000000000000000000000000000000000000081525060039080519060200190620000a692919062000b2f565b506006600460006101000a81548160ff021916908360ff1602179055506012600a620000d3919062000d87565b62989680620000e3919062000dd8565b6005556012600a620000f6919062000d87565b620186a062000106919062000dd8565b60065561dead600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600b60146101000a81548160ff021916908315150217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560105560056011556014601255600a6013556014805560145460135460125462000239919062000e39565b62000245919062000e39565b60155561dead601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601960156101000a81548160ff0219169083151502179055506000601960166101000a81548160ff021916908315150217905550348015620002ce57600080fd5b50620002ef620002e362000a3a60201b60201c565b62000a4260201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003b2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003d8919062000f00565b600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000486573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004ac919062000f00565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200050a92919062000f43565b6020604051808303816000875af11580156200052a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000550919062000f00565b601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550604051620006619062000bc0565b604051809103906000f0801580156200067e573d6000803e3d6000fd5b50601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c6000620006d562000b0660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600554600760006200097d62000b0660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620009cb62000b0660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60055460405162000a2c919062000f81565b60405180910390a362001002565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b82805462000b3d9062000fcd565b90600052602060002090601f01602090048101928262000b61576000855562000bad565b82601f1062000b7c57805160ff191683800117855562000bad565b8280016001018555821562000bad579182015b8281111562000bac57825182559160200191906001019062000b8f565b5b50905062000bbc919062000bce565b5090565b6124938062004eb783390190565b5b8082111562000be957600081600090555060010162000bcf565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000c7b5780860481111562000c535762000c5262000bed565b5b600185161562000c635780820291505b808102905062000c738562000c1c565b945062000c33565b94509492505050565b60008262000c96576001905062000d69565b8162000ca6576000905062000d69565b816001811462000cbf576002811462000cca5762000d00565b600191505062000d69565b60ff84111562000cdf5762000cde62000bed565b5b8360020a91508482111562000cf95762000cf862000bed565b5b5062000d69565b5060208310610133831016604e8410600b841016171562000d3a5782820a90508381111562000d345762000d3362000bed565b5b62000d69565b62000d49848484600162000c29565b9250905081840481111562000d635762000d6262000bed565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000d948262000d70565b915062000da18362000d7a565b925062000dd07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000c84565b905092915050565b600062000de58262000d70565b915062000df28362000d70565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000e2e5762000e2d62000bed565b5b828202905092915050565b600062000e468262000d70565b915062000e538362000d70565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000e8b5762000e8a62000bed565b5b828201905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ec88262000e9b565b9050919050565b62000eda8162000ebb565b811462000ee657600080fd5b50565b60008151905062000efa8162000ecf565b92915050565b60006020828403121562000f195762000f1862000e96565b5b600062000f298482850162000ee9565b91505092915050565b62000f3d8162000ebb565b82525050565b600060408201905062000f5a600083018562000f32565b62000f69602083018462000f32565b9392505050565b62000f7b8162000d70565b82525050565b600060208201905062000f98600083018462000f70565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000fe657607f821691505b60208210810362000ffc5762000ffb62000f9e565b5b50919050565b613ea580620010126000396000f3fe6080604052600436106103035760003560e01c80637dfcbe3411610190578063b6104421116100dc578063dd62ed3e11610095578063f2fde38b1161006f578063f2fde38b14610b59578063f887ea4014610b82578063fc28dff414610bad578063ffb54a9914610bd65761030a565b8063dd62ed3e14610ab4578063eb6d6c7714610af1578063efc412a014610b1c5761030a565b8063b6104421146109b6578063bf56b371146109e1578063c45a015514610a0c578063c47aa81e14610a37578063c8d1293d14610a60578063dd5caf0114610a8b5761030a565b80639868e762116101495780639f52db8e116101235780639f52db8e146108fa578063a8aa1b3114610925578063a9059cbb14610950578063b53ee1e51461098d5761030a565b80639868e7621461087b5780639931235d146108a65780639b2ed66f146108d15761030a565b80637dfcbe341461079357806381934031146107be57806381c7d3c7146107e757806385514c14146108105780639274cedb1461083957806395d89b41146108505761030a565b80633611fd9c1161024f57806352b735631161020857806370a08231116101e257806370a08231146106d9578063715018a614610716578063774c49b51461072d5780637901ea781461076a5761030a565b806352b7356314610648578063571ac8b01461068557806366eb3785146106c25761030a565b80633611fd9c1461055e5780633dab52691461057557806340420bb71461059e5780634574b485146105c75780634a74bb02146105f25780634b8a94c51461061d5761030a565b80631302f5a3116102bc57806323b872dd1161029657806323b872dd146104a25780632b112e49146104df578063313ce5671461050a578063346cc7be146105355761030a565b80631302f5a31461042157806316497ad41461044c57806318160ddd146104775761030a565b8063018770201461030f5780630445b6671461033857806305e5ba1c1461036357806306fdde031461038e5780630859b9eb146103b9578063095ea7b3146103e45761030a565b3661030a57005b600080fd5b34801561031b57600080fd5b5061033660048036038101906103319190612fb9565b610c01565b005b34801561034457600080fd5b5061034d610c4d565b60405161035a9190612fff565b60405180910390f35b34801561036f57600080fd5b50610378610c53565b6040516103859190612fff565b60405180910390f35b34801561039a57600080fd5b506103a3610c59565b6040516103b091906130b3565b60405180910390f35b3480156103c557600080fd5b506103ce610c96565b6040516103db9190612fff565b60405180910390f35b3480156103f057600080fd5b5061040b60048036038101906104069190613101565b610c9c565b604051610418919061315c565b60405180910390f35b34801561042d57600080fd5b50610436610d8e565b6040516104439190612fff565b60405180910390f35b34801561045857600080fd5b50610461610d94565b60405161046e9190612fff565b60405180910390f35b34801561048357600080fd5b5061048c610d9a565b6040516104999190612fff565b60405180910390f35b3480156104ae57600080fd5b506104c960048036038101906104c49190613177565b610da4565b6040516104d6919061315c565b60405180910390f35b3480156104eb57600080fd5b506104f4610f66565b6040516105019190612fff565b60405180910390f35b34801561051657600080fd5b5061051f610fda565b60405161052c91906131e6565b60405180910390f35b34801561054157600080fd5b5061055c60048036038101906105579190612fb9565b610fe3565b005b34801561056a57600080fd5b50610573611114565b005b34801561058157600080fd5b5061059c6004803603810190610597919061322d565b611197565b005b3480156105aa57600080fd5b506105c560048036038101906105c0919061326d565b6111c4565b005b3480156105d357600080fd5b506105dc61125f565b6040516105e991906132bc565b60405180910390f35b3480156105fe57600080fd5b50610607611285565b604051610614919061315c565b60405180910390f35b34801561062957600080fd5b50610632611298565b60405161063f91906131e6565b60405180910390f35b34801561065457600080fd5b5061066f600480360381019061066a9190612fb9565b6112ab565b60405161067c9190612fff565b60405180910390f35b34801561069157600080fd5b506106ac60048036038101906106a79190612fb9565b611350565b6040516106b9919061315c565b60405180910390f35b3480156106ce57600080fd5b506106d7611383565b005b3480156106e557600080fd5b5061070060048036038101906106fb9190612fb9565b611395565b60405161070d9190612fff565b60405180910390f35b34801561072257600080fd5b5061072b6113de565b005b34801561073957600080fd5b50610754600480360381019061074f9190612fb9565b6113f2565b604051610761919061315c565b60405180910390f35b34801561077657600080fd5b50610791600480360381019061078c91906132d7565b611412565b005b34801561079f57600080fd5b506107a861144a565b6040516107b5919061315c565b60405180910390f35b3480156107ca57600080fd5b506107e560048036038101906107e091906132d7565b61145d565b005b3480156107f357600080fd5b5061080e60048036038101906108099190613304565b61153b565b005b34801561081c57600080fd5b50610837600480360381019061083291906133d5565b6115d6565b005b34801561084557600080fd5b5061084e6116e5565b005b34801561085c57600080fd5b50610865611774565b60405161087291906130b3565b60405180910390f35b34801561088757600080fd5b506108906117b1565b60405161089d91906134a8565b60405180910390f35b3480156108b257600080fd5b506108bb6117d7565b6040516108c891906132bc565b60405180910390f35b3480156108dd57600080fd5b506108f860048036038101906108f391906134c3565b611800565b005b34801561090657600080fd5b5061090f611863565b60405161091c91906132bc565b60405180910390f35b34801561093157600080fd5b5061093a611872565b60405161094791906132bc565b60405180910390f35b34801561095c57600080fd5b5061097760048036038101906109729190613101565b611898565b604051610984919061315c565b60405180910390f35b34801561099957600080fd5b506109b460048036038101906109af9190613503565b6118ad565b005b3480156109c257600080fd5b506109cb6118cf565b6040516109d891906132bc565b60405180910390f35b3480156109ed57600080fd5b506109f66118f5565b604051610a039190612fff565b60405180910390f35b348015610a1857600080fd5b50610a216118fb565b604051610a2e91906132bc565b60405180910390f35b348015610a4357600080fd5b50610a5e6004803603810190610a599190613304565b611921565b005b348015610a6c57600080fd5b50610a7561195b565b604051610a829190612fff565b60405180910390f35b348015610a9757600080fd5b50610ab26004803603810190610aad91906134c3565b611961565b005b348015610ac057600080fd5b50610adb6004803603810190610ad6919061326d565b611977565b604051610ae89190612fff565b60405180910390f35b348015610afd57600080fd5b50610b066119fe565b604051610b1391906130b3565b60405180910390f35b348015610b2857600080fd5b50610b436004803603810190610b3e9190612fb9565b611a8c565b604051610b50919061315c565b60405180910390f35b348015610b6557600080fd5b50610b806004803603810190610b7b9190612fb9565b611aac565b005b348015610b8e57600080fd5b50610b97611b2f565b604051610ba49190613589565b60405180910390f35b348015610bb957600080fd5b50610bd46004803603810190610bcf91906135e2565b611b55565b005b348015610be257600080fd5b50610beb611ba1565b604051610bf8919061315c565b60405180910390f35b610c09611bb4565b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60065481565b60105481565b60606040518060400160405280600e81526020017f556e64657267726f756e64204149000000000000000000000000000000000000815250905090565b60145481565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610d7c9190612fff565b60405180910390a36001905092915050565b60125481565b60115481565b6000600554905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f525781600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ed1919061363e565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610f5d848484611c32565b90509392505050565b6000610f93600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611395565b610fbe600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611395565b600554610fcb919061363e565b610fd5919061363e565b905090565b60006012905090565b610feb611bb4565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161102b91906132bc565b602060405180830381865afa158015611048573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106c9190613687565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016110cb9291906136b4565b6020604051808303816000875af11580156110ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110e91906136f2565b50505050565b61111c611bb4565b6000479050600081111561119457601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611192573d6000803e3d6000fd5b505b50565b61119f611bb4565b81601960156101000a81548160ff021916908315150217905550806006819055505050565b6111cc611bb4565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c19df11e83836040518363ffffffff1660e01b815260040161122992919061371f565b600060405180830381600087803b15801561124357600080fd5b505af1158015611257573d6000803e3d6000fd5b505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601960159054906101000a900460ff1681565b600460009054906101000a900460ff1681565b6000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e61e38f1836040518263ffffffff1660e01b815260040161130891906132bc565b602060405180830381865afa158015611325573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113499190613687565b9050919050565b600061137c827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610c9c565b9050919050565b61138b611bb4565b61139361230d565b565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6113e6611bb4565b6113f06000612546565b565b600d6020528060005260406000206000915054906101000a900460ff1681565b61141a611bb4565b80436114269190613748565b600e819055506001601960166101000a81548160ff02191690831515021790555050565b600b60149054906101000a900460ff1681565b611465611bb4565b62030d408110156114ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a2906137ea565b60405180910390fd5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c479826040518263ffffffff1660e01b81526004016115069190612fff565b600060405180830381600087803b15801561152057600080fd5b505af1158015611534573d6000803e3d6000fd5b5050505050565b611543611bb4565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166381c7d3c783836040518363ffffffff1660e01b81526004016115a092919061380a565b600060405180830381600087803b1580156115ba57600080fd5b505af11580156115ce573d6000803e3d6000fd5b505050505050565b6115de611bb4565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166385514c14858585856040518563ffffffff1660e01b815260040161163f949392919061386f565b600060405180830381600087803b15801561165957600080fd5b505af115801561166d573d6000803e3d6000fd5b5050505083600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508282600391906116c3929190612eae565b5080600460006101000a81548160ff021916908360ff16021790555050505050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633cb3253a336040518263ffffffff1660e01b815260040161174091906132bc565b600060405180830381600087803b15801561175a57600080fd5b505af115801561176e573d6000803e3d6000fd5b50505050565b60606040518060400160405280600481526020017f5547414900000000000000000000000000000000000000000000000000000000815250905090565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611808611bb4565b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600061186d6117d7565b905090565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006118a5338484611c32565b905092915050565b6118b5611bb4565b826012819055508160138190555080601481905550505050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611929611bb4565b81601081905550806011819055506009601054111561194757600080fd5b600f601154111561195757600080fd5b5050565b60135481565b611969611bb4565b611973828261260a565b5050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60038054611a0b906138de565b80601f0160208091040260200160405190810160405280929190818152602001828054611a37906138de565b8015611a845780601f10611a5957610100808354040283529160200191611a84565b820191906000526020600020905b815481529060010190602001808311611a6757829003601f168201915b505050505081565b600c6020528060005260406000206000915054906101000a900460ff1681565b611ab4611bb4565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1a90613981565b60405180910390fd5b611b2c81612546565b50565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b5d611bb4565b80601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601960169054906101000a900460ff1681565b611bbc612898565b73ffffffffffffffffffffffffffffffffffffffff16611bda6117d7565b73ffffffffffffffffffffffffffffffffffffffff1614611c30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c27906139ed565b60405180910390fd5b565b6000611c3c6117d7565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611caa5750611c7a6117d7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611cff57601960169054906101000a900460ff16611cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf590613a59565b60405180910390fd5b5b601960149054906101000a900460ff1615611d2657611d1f8484846128a0565b9050612306565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611d915750601960149054906101000a900460ff16155b8015611da95750601960159054906101000a900460ff165b8015611df65750600654600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15611e0457611e0361230d565b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611e625750600e5443105b15611e8d57601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1692505b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ed8919061363e565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611fc15750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611fcb5782611fd7565b611fd6858585612a2e565b5b905080600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120249190613748565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661218157601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ccf570db86600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016121549291906136b4565b600060405180830381600087803b15801561216e57600080fd5b505af192505050801561217f575060015b505b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661229b57601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ccf570db85600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b815260040161226e9291906136b4565b600060405180830381600087803b15801561228857600080fd5b505af1925050508015612299575060015b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122f89190612fff565b60405180910390a360019150505b9392505050565b6001601960146101000a81548160ff021916908315150217905550600060155490506000600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600283601354846123869190613a79565b6123909190613b02565b61239a9190613b02565b9050600081836123aa919061363e565b90506123b581612bba565b6000479050600085601254836123cb9190613a79565b6123d59190613b02565b9050600086601454846123e89190613a79565b6123f29190613b02565b90506000600288601354866124079190613a79565b6124119190613b02565b61241b9190613b02565b9050600084111561249057601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015801561248e573d6000803e3d6000fd5b505b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b1580156124fa57600080fd5b505af19350505050801561250c575060015b506000861115612521576125208682612ddb565b5b50505050505050506000601960146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156126945750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6126d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ca90613b7f565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156127c557601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ccf570db8360006040518363ffffffff1660e01b815260040161278e929190613bda565b600060405180830381600087803b1580156127a857600080fd5b505af11580156127bc573d6000803e3d6000fd5b50505050612894565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ccf570db83600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016128619291906136b4565b600060405180830381600087803b15801561287b57600080fd5b505af115801561288f573d6000803e3d6000fd5b505050505b5050565b600033905090565b600081600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128ed919061363e565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461297b9190613748565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a1b9190612fff565b60405180910390a3600190509392505050565b6000808373ffffffffffffffffffffffffffffffffffffffff16601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a8e57601054612a92565b6011545b9050600060648285612aa49190613a79565b612aae9190613b02565b905080600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afb9190613748565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612b9b9190612fff565b60405180910390a38084612baf919061363e565b925050509392505050565b6000600267ffffffffffffffff811115612bd757612bd6613c03565b5b604051908082528060200260200182016040528015612c055781602001602082028036833780820191505090505b5090503081600081518110612c1d57612c1c613c32565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612cc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ce89190613c76565b81600181518110612cfc57612cfb613c32565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612d403083610c9c565b50601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612da5959493929190613d61565b600060405180830381600087803b158015612dbf57600080fd5b505af1158015612dd3573d6000803e3d6000fd5b505050505050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612e6496959493929190613dbb565b60606040518083038185885af1158015612e82573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612ea79190613e1c565b5050505050565b828054612eba906138de565b90600052602060002090601f016020900481019282612edc5760008555612f23565b82601f10612ef557803560ff1916838001178555612f23565b82800160010185558215612f23579182015b82811115612f22578235825591602001919060010190612f07565b5b509050612f309190612f34565b5090565b5b80821115612f4d576000816000905550600101612f35565b5090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612f8682612f5b565b9050919050565b612f9681612f7b565b8114612fa157600080fd5b50565b600081359050612fb381612f8d565b92915050565b600060208284031215612fcf57612fce612f51565b5b6000612fdd84828501612fa4565b91505092915050565b6000819050919050565b612ff981612fe6565b82525050565b60006020820190506130146000830184612ff0565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613054578082015181840152602081019050613039565b83811115613063576000848401525b50505050565b6000601f19601f8301169050919050565b60006130858261301a565b61308f8185613025565b935061309f818560208601613036565b6130a881613069565b840191505092915050565b600060208201905081810360008301526130cd818461307a565b905092915050565b6130de81612fe6565b81146130e957600080fd5b50565b6000813590506130fb816130d5565b92915050565b6000806040838503121561311857613117612f51565b5b600061312685828601612fa4565b9250506020613137858286016130ec565b9150509250929050565b60008115159050919050565b61315681613141565b82525050565b6000602082019050613171600083018461314d565b92915050565b6000806000606084860312156131905761318f612f51565b5b600061319e86828701612fa4565b93505060206131af86828701612fa4565b92505060406131c0868287016130ec565b9150509250925092565b600060ff82169050919050565b6131e0816131ca565b82525050565b60006020820190506131fb60008301846131d7565b92915050565b61320a81613141565b811461321557600080fd5b50565b60008135905061322781613201565b92915050565b6000806040838503121561324457613243612f51565b5b600061325285828601613218565b9250506020613263858286016130ec565b9150509250929050565b6000806040838503121561328457613283612f51565b5b600061329285828601612fa4565b92505060206132a385828601612fa4565b9150509250929050565b6132b681612f7b565b82525050565b60006020820190506132d160008301846132ad565b92915050565b6000602082840312156132ed576132ec612f51565b5b60006132fb848285016130ec565b91505092915050565b6000806040838503121561331b5761331a612f51565b5b6000613329858286016130ec565b925050602061333a858286016130ec565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f84011261336957613368613344565b5b8235905067ffffffffffffffff81111561338657613385613349565b5b6020830191508360018202830111156133a2576133a161334e565b5b9250929050565b6133b2816131ca565b81146133bd57600080fd5b50565b6000813590506133cf816133a9565b92915050565b600080600080606085870312156133ef576133ee612f51565b5b60006133fd87828801612fa4565b945050602085013567ffffffffffffffff81111561341e5761341d612f56565b5b61342a87828801613353565b9350935050604061343d878288016133c0565b91505092959194509250565b6000819050919050565b600061346e61346961346484612f5b565b613449565b612f5b565b9050919050565b600061348082613453565b9050919050565b600061349282613475565b9050919050565b6134a281613487565b82525050565b60006020820190506134bd6000830184613499565b92915050565b600080604083850312156134da576134d9612f51565b5b60006134e885828601612fa4565b92505060206134f985828601613218565b9150509250929050565b60008060006060848603121561351c5761351b612f51565b5b600061352a868287016130ec565b935050602061353b868287016130ec565b925050604061354c868287016130ec565b9150509250925092565b600061356182613453565b9050919050565b600061357382613556565b9050919050565b61358381613568565b82525050565b600060208201905061359e600083018461357a565b92915050565b60006135af82612f5b565b9050919050565b6135bf816135a4565b81146135ca57600080fd5b50565b6000813590506135dc816135b6565b92915050565b6000602082840312156135f8576135f7612f51565b5b6000613606848285016135cd565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061364982612fe6565b915061365483612fe6565b9250828210156136675761366661360f565b5b828203905092915050565b600081519050613681816130d5565b92915050565b60006020828403121561369d5761369c612f51565b5b60006136ab84828501613672565b91505092915050565b60006040820190506136c960008301856132ad565b6136d66020830184612ff0565b9392505050565b6000815190506136ec81613201565b92915050565b60006020828403121561370857613707612f51565b5b6000613716848285016136dd565b91505092915050565b600060408201905061373460008301856132ad565b61374160208301846132ad565b9392505050565b600061375382612fe6565b915061375e83612fe6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156137935761379261360f565b5b828201905092915050565b7f47617320746f6f206c6f77000000000000000000000000000000000000000000600082015250565b60006137d4600b83613025565b91506137df8261379e565b602082019050919050565b60006020820190508181036000830152613803816137c7565b9050919050565b600060408201905061381f6000830185612ff0565b61382c6020830184612ff0565b9392505050565b82818337600083830152505050565b600061384e8385613025565b935061385b838584613833565b61386483613069565b840190509392505050565b600060608201905061388460008301876132ad565b8181036020830152613897818587613842565b90506138a660408301846131d7565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806138f657607f821691505b602082108103613909576139086138af565b5b50919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061396b602683613025565b91506139768261390f565b604082019050919050565b6000602082019050818103600083015261399a8161395e565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f74205975616e5a68616e67600082015250565b60006139d7602083613025565b91506139e2826139a1565b602082019050919050565b60006020820190508181036000830152613a06816139ca565b9050919050565b7f54726164696e67206e6f74206163746976650000000000000000000000000000600082015250565b6000613a43601283613025565b9150613a4e82613a0d565b602082019050919050565b60006020820190508181036000830152613a7281613a36565b9050919050565b6000613a8482612fe6565b9150613a8f83612fe6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ac857613ac761360f565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613b0d82612fe6565b9150613b1883612fe6565b925082613b2857613b27613ad3565b5b828204905092915050565b7f50616972206f7220436f6e7472616374206d757374206265204578656d707400600082015250565b6000613b69601f83613025565b9150613b7482613b33565b602082019050919050565b60006020820190508181036000830152613b9881613b5c565b9050919050565b6000819050919050565b6000613bc4613bbf613bba84613b9f565b613449565b612fe6565b9050919050565b613bd481613ba9565b82525050565b6000604082019050613bef60008301856132ad565b613bfc6020830184613bcb565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613c7081612f8d565b92915050565b600060208284031215613c8c57613c8b612f51565b5b6000613c9a84828501613c61565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613cd881612f7b565b82525050565b6000613cea8383613ccf565b60208301905092915050565b6000602082019050919050565b6000613d0e82613ca3565b613d188185613cae565b9350613d2383613cbf565b8060005b83811015613d54578151613d3b8882613cde565b9750613d4683613cf6565b925050600181019050613d27565b5085935050505092915050565b600060a082019050613d766000830188612ff0565b613d836020830187613bcb565b8181036040830152613d958186613d03565b9050613da460608301856132ad565b613db16080830184612ff0565b9695505050505050565b600060c082019050613dd060008301896132ad565b613ddd6020830188612ff0565b613dea6040830187613bcb565b613df76060830186613bcb565b613e0460808301856132ad565b613e1160a0830184612ff0565b979650505050505050565b600080600060608486031215613e3557613e34612f51565b5b6000613e4386828701613672565b9350506020613e5486828701613672565b9250506040613e6586828701613672565b915050925092509256fea264697066735822122065ec3393e1a388153f7db369fe84e27b1277b47263a2719603f2ac3f189c17c864736f6c634300080d003360806040526ec097ce7bc90715b34b9f1000000000600c55610708600d556000600e553480156200002f57600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073dac17f958d2ee523a2206206994597c13d831ec7600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600481526020017f555344540000000000000000000000000000000000000000000000000000000081525060029080519060200190620001679291906200018a565b506006600360006101000a81548160ff021916908360ff1602179055506200029e565b828054620001989062000269565b90600052602060002090601f016020900481019282620001bc576000855562000208565b82601f10620001d757805160ff191683800117855562000208565b8280016001018555821562000208579182015b8281111562000207578251825591602001919060010190620001ea565b5b5090506200021791906200021b565b5090565b5b80821115620002365760008160009055506001016200021c565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200028257607f821691505b6020821081036200029857620002976200023a565b5b50919050565b6121e580620002ae6000396000f3fe60806040526004361061012e5760003560e01c80638a50a762116100ab578063ccf570db1161006f578063ccf570db146103e5578063d0e30db01461040e578063e61e38f114610418578063eb6d6c7714610455578063ffb2c47914610480578063ffd49c84146104a95761013d565b80638a50a762146102fc57806397902f8f14610327578063b0ab122f14610366578063c18ef76214610391578063c19df11e146103bc5761013d565b80634574b485116100f25780634574b485146102295780634b8a94c51461025457806367d7f91a1461027f57806381c7d3c7146102aa57806385514c14146102d35761013d565b806302aeb322146101425780630bc37d1e1461016d57806326987b60146101985780633195cec3146101c35780633cb3253a146102005761013d565b3661013d5761013b6104d4565b005b600080fd5b34801561014e57600080fd5b50610157610899565b604051610164919061185b565b60405180910390f35b34801561017957600080fd5b5061018261089f565b60405161018f919061185b565b60405180910390f35b3480156101a457600080fd5b506101ad6108a5565b6040516101ba919061185b565b60405180910390f35b3480156101cf57600080fd5b506101ea60048036038101906101e591906118de565b6108ab565b6040516101f79190611926565b60405180910390f35b34801561020c57600080fd5b50610227600480360381019061022291906118de565b610918565b005b34801561023557600080fd5b5061023e61097c565b60405161024b9190611950565b60405180910390f35b34801561026057600080fd5b506102696109a2565b6040516102769190611987565b60405180910390f35b34801561028b57600080fd5b506102946109b5565b6040516102a1919061185b565b60405180910390f35b3480156102b657600080fd5b506102d160048036038101906102cc91906119ce565b6109bb565b005b3480156102df57600080fd5b506102fa60048036038101906102f59190611a9f565b610a25565b005b34801561030857600080fd5b50610311610af1565b60405161031e919061185b565b60405180910390f35b34801561033357600080fd5b5061034e600480360381019061034991906118de565b610af7565b60405161035d93929190611b13565b60405180910390f35b34801561037257600080fd5b5061037b610b21565b604051610388919061185b565b60405180910390f35b34801561039d57600080fd5b506103a6610b27565b6040516103b3919061185b565b60405180910390f35b3480156103c857600080fd5b506103e360048036038101906103de9190611b4a565b610b2d565b005b3480156103f157600080fd5b5061040c60048036038101906104079190611b8a565b610c9b565b005b6104166104d4565b005b34801561042457600080fd5b5061043f600480360381019061043a91906118de565b610f4c565b60405161044c919061185b565b60405180910390f35b34801561046157600080fd5b5061046a61105e565b6040516104779190611c63565b60405180910390f35b34801561048c57600080fd5b506104a760048036038101906104a29190611c85565b6110ec565b005b3480156104b557600080fd5b506104be611219565b6040516104cb919061185b565b60405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105319190611950565b602060405180830381865afa15801561054e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105729190611cc7565b90506000600267ffffffffffffffff81111561059157610590611cf4565b5b6040519080825280602002602001820160405280156105bf5781602001602082028036833780820191505090505b509050600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561062f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106539190611d38565b8160008151811061066757610666611d65565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106106d8576106d7611d65565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de953460008430426040518663ffffffff1660e01b81526004016107759493929190611e97565b6000604051808303818588803b15801561078e57600080fd5b505af11580156107a2573d6000803e3d6000fd5b5050505050600082600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108059190611950565b602060405180830381865afa158015610822573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108469190611cc7565b6108509190611f12565b9050806009546108609190611f46565b60098190555060085481600c546108779190611f9c565b6108819190612025565b600b5461088e9190611f46565b600b81905550505050565b600e5481565b600b5481565b600f5481565b600042600d54600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108fb9190611f46565b1080156109115750600e5461090f83610f4c565b115b9050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461097057600080fd5b6109798161121f565b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900460ff1681565b600a5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a1357600080fd5b81600d8190555080600e819055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a7d57600080fd5b83600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550828260029190610acf92919061177e565b5080600360006101000a81548160ff021916908360ff16021790555050505050565b60085481565b60076020528060005260406000206000915090508060000154908060010154908060020154905083565b600c5481565b60095481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b8557600080fd5b600082905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610bc59190611950565b602060405180830381865afa158015610be2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c069190611cc7565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401610c43929190612056565b6020604051808303816000875af1158015610c62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8691906120ab565b5060046000610c959190611804565b50505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cf357600080fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541115610d4857610d478261121f565b5b600081118015610d9a57506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b15610dad57610da8826114a4565b610e0f565b600081148015610dff57506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b15610e0e57610e0d82611553565b5b5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600854610e609190611f12565b610e6a9190611f46565b60088190555080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550610f02600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461175a565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015403610fa05760009050611059565b6000610fed600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461175a565b90506000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154905080821161104857600092505050611059565b80826110549190611f12565b925050505b919050565b6002805461106b90612107565b80601f016020809104026020016040519081016040528092919081815260200182805461109790612107565b80156110e45780601f106110b9576101008083540402835291602001916110e4565b820191906000526020600020905b8154815290600101906020018083116110c757829003601f168201915b505050505081565b60006004805490509050600081036111045750611216565b60008060005a90505b848210801561111b57508383105b156112115783600f5410611132576000600f819055505b61117b6004600f548154811061114b5761114a611d65565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166108ab565b156111ca576111c96004600f548154811061119957611198611d65565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661121f565b5b5a816111d69190611f12565b826111e19190611f46565b91505a9050600f60008154809291906111f990612138565b9190505550828061120990612138565b93505061110d565b505050505b50565b600d5481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015403156114a157600061127582610f4c565b9050600081111561149f5780600a5461128e9190611f46565b600a81905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b81526004016112f1929190612056565b6020604051808303816000875af1158015611310573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133491906120ab565b5042600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546113c79190611f46565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550611458600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461175a565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b505b50565b600480549050600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506004819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600460016004805490506115679190611f12565b8154811061157857611577611d65565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166004600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815481106115f6576115f5611d65565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460056000600460016004805490506116969190611f12565b815481106116a7576116a6611d65565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600480548061172257611721612180565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b6000600c54600b548361176d9190611f9c565b6117779190612025565b9050919050565b82805461178a90612107565b90600052602060002090601f0160209004810192826117ac57600085556117f3565b82601f106117c557803560ff19168380011785556117f3565b828001600101855582156117f3579182015b828111156117f25782358255916020019190600101906117d7565b5b5090506118009190611825565b5090565b50805460008255906000526020600020908101906118229190611825565b50565b5b8082111561183e576000816000905550600101611826565b5090565b6000819050919050565b61185581611842565b82525050565b6000602082019050611870600083018461184c565b92915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006118ab82611880565b9050919050565b6118bb816118a0565b81146118c657600080fd5b50565b6000813590506118d8816118b2565b92915050565b6000602082840312156118f4576118f3611876565b5b6000611902848285016118c9565b91505092915050565b60008115159050919050565b6119208161190b565b82525050565b600060208201905061193b6000830184611917565b92915050565b61194a816118a0565b82525050565b60006020820190506119656000830184611941565b92915050565b600060ff82169050919050565b6119818161196b565b82525050565b600060208201905061199c6000830184611978565b92915050565b6119ab81611842565b81146119b657600080fd5b50565b6000813590506119c8816119a2565b92915050565b600080604083850312156119e5576119e4611876565b5b60006119f3858286016119b9565b9250506020611a04858286016119b9565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f840112611a3357611a32611a0e565b5b8235905067ffffffffffffffff811115611a5057611a4f611a13565b5b602083019150836001820283011115611a6c57611a6b611a18565b5b9250929050565b611a7c8161196b565b8114611a8757600080fd5b50565b600081359050611a9981611a73565b92915050565b60008060008060608587031215611ab957611ab8611876565b5b6000611ac7878288016118c9565b945050602085013567ffffffffffffffff811115611ae857611ae761187b565b5b611af487828801611a1d565b93509350506040611b0787828801611a8a565b91505092959194509250565b6000606082019050611b28600083018661184c565b611b35602083018561184c565b611b42604083018461184c565b949350505050565b60008060408385031215611b6157611b60611876565b5b6000611b6f858286016118c9565b9250506020611b80858286016118c9565b9150509250929050565b60008060408385031215611ba157611ba0611876565b5b6000611baf858286016118c9565b9250506020611bc0858286016119b9565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611c04578082015181840152602081019050611be9565b83811115611c13576000848401525b50505050565b6000601f19601f8301169050919050565b6000611c3582611bca565b611c3f8185611bd5565b9350611c4f818560208601611be6565b611c5881611c19565b840191505092915050565b60006020820190508181036000830152611c7d8184611c2a565b905092915050565b600060208284031215611c9b57611c9a611876565b5b6000611ca9848285016119b9565b91505092915050565b600081519050611cc1816119a2565b92915050565b600060208284031215611cdd57611cdc611876565b5b6000611ceb84828501611cb2565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050611d32816118b2565b92915050565b600060208284031215611d4e57611d4d611876565b5b6000611d5c84828501611d23565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000819050919050565b6000611dc3611dbe611db984611d94565b611d9e565b611842565b9050919050565b611dd381611da8565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611e0e816118a0565b82525050565b6000611e208383611e05565b60208301905092915050565b6000602082019050919050565b6000611e4482611dd9565b611e4e8185611de4565b9350611e5983611df5565b8060005b83811015611e8a578151611e718882611e14565b9750611e7c83611e2c565b925050600181019050611e5d565b5085935050505092915050565b6000608082019050611eac6000830187611dca565b8181036020830152611ebe8186611e39565b9050611ecd6040830185611941565b611eda606083018461184c565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611f1d82611842565b9150611f2883611842565b925082821015611f3b57611f3a611ee3565b5b828203905092915050565b6000611f5182611842565b9150611f5c83611842565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611f9157611f90611ee3565b5b828201905092915050565b6000611fa782611842565b9150611fb283611842565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611feb57611fea611ee3565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061203082611842565b915061203b83611842565b92508261204b5761204a611ff6565b5b828204905092915050565b600060408201905061206b6000830185611941565b612078602083018461184c565b9392505050565b6120888161190b565b811461209357600080fd5b50565b6000815190506120a58161207f565b92915050565b6000602082840312156120c1576120c0611876565b5b60006120cf84828501612096565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061211f57607f821691505b602082108103612132576121316120d8565b5b50919050565b600061214382611842565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361217557612174611ee3565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea26469706673582212207994c4c3686681af985016168257b623fcdc94a7dd005407915406c751b3636064736f6c634300080d0033

Deployed Bytecode

0x6080604052600436106103035760003560e01c80637dfcbe3411610190578063b6104421116100dc578063dd62ed3e11610095578063f2fde38b1161006f578063f2fde38b14610b59578063f887ea4014610b82578063fc28dff414610bad578063ffb54a9914610bd65761030a565b8063dd62ed3e14610ab4578063eb6d6c7714610af1578063efc412a014610b1c5761030a565b8063b6104421146109b6578063bf56b371146109e1578063c45a015514610a0c578063c47aa81e14610a37578063c8d1293d14610a60578063dd5caf0114610a8b5761030a565b80639868e762116101495780639f52db8e116101235780639f52db8e146108fa578063a8aa1b3114610925578063a9059cbb14610950578063b53ee1e51461098d5761030a565b80639868e7621461087b5780639931235d146108a65780639b2ed66f146108d15761030a565b80637dfcbe341461079357806381934031146107be57806381c7d3c7146107e757806385514c14146108105780639274cedb1461083957806395d89b41146108505761030a565b80633611fd9c1161024f57806352b735631161020857806370a08231116101e257806370a08231146106d9578063715018a614610716578063774c49b51461072d5780637901ea781461076a5761030a565b806352b7356314610648578063571ac8b01461068557806366eb3785146106c25761030a565b80633611fd9c1461055e5780633dab52691461057557806340420bb71461059e5780634574b485146105c75780634a74bb02146105f25780634b8a94c51461061d5761030a565b80631302f5a3116102bc57806323b872dd1161029657806323b872dd146104a25780632b112e49146104df578063313ce5671461050a578063346cc7be146105355761030a565b80631302f5a31461042157806316497ad41461044c57806318160ddd146104775761030a565b8063018770201461030f5780630445b6671461033857806305e5ba1c1461036357806306fdde031461038e5780630859b9eb146103b9578063095ea7b3146103e45761030a565b3661030a57005b600080fd5b34801561031b57600080fd5b5061033660048036038101906103319190612fb9565b610c01565b005b34801561034457600080fd5b5061034d610c4d565b60405161035a9190612fff565b60405180910390f35b34801561036f57600080fd5b50610378610c53565b6040516103859190612fff565b60405180910390f35b34801561039a57600080fd5b506103a3610c59565b6040516103b091906130b3565b60405180910390f35b3480156103c557600080fd5b506103ce610c96565b6040516103db9190612fff565b60405180910390f35b3480156103f057600080fd5b5061040b60048036038101906104069190613101565b610c9c565b604051610418919061315c565b60405180910390f35b34801561042d57600080fd5b50610436610d8e565b6040516104439190612fff565b60405180910390f35b34801561045857600080fd5b50610461610d94565b60405161046e9190612fff565b60405180910390f35b34801561048357600080fd5b5061048c610d9a565b6040516104999190612fff565b60405180910390f35b3480156104ae57600080fd5b506104c960048036038101906104c49190613177565b610da4565b6040516104d6919061315c565b60405180910390f35b3480156104eb57600080fd5b506104f4610f66565b6040516105019190612fff565b60405180910390f35b34801561051657600080fd5b5061051f610fda565b60405161052c91906131e6565b60405180910390f35b34801561054157600080fd5b5061055c60048036038101906105579190612fb9565b610fe3565b005b34801561056a57600080fd5b50610573611114565b005b34801561058157600080fd5b5061059c6004803603810190610597919061322d565b611197565b005b3480156105aa57600080fd5b506105c560048036038101906105c0919061326d565b6111c4565b005b3480156105d357600080fd5b506105dc61125f565b6040516105e991906132bc565b60405180910390f35b3480156105fe57600080fd5b50610607611285565b604051610614919061315c565b60405180910390f35b34801561062957600080fd5b50610632611298565b60405161063f91906131e6565b60405180910390f35b34801561065457600080fd5b5061066f600480360381019061066a9190612fb9565b6112ab565b60405161067c9190612fff565b60405180910390f35b34801561069157600080fd5b506106ac60048036038101906106a79190612fb9565b611350565b6040516106b9919061315c565b60405180910390f35b3480156106ce57600080fd5b506106d7611383565b005b3480156106e557600080fd5b5061070060048036038101906106fb9190612fb9565b611395565b60405161070d9190612fff565b60405180910390f35b34801561072257600080fd5b5061072b6113de565b005b34801561073957600080fd5b50610754600480360381019061074f9190612fb9565b6113f2565b604051610761919061315c565b60405180910390f35b34801561077657600080fd5b50610791600480360381019061078c91906132d7565b611412565b005b34801561079f57600080fd5b506107a861144a565b6040516107b5919061315c565b60405180910390f35b3480156107ca57600080fd5b506107e560048036038101906107e091906132d7565b61145d565b005b3480156107f357600080fd5b5061080e60048036038101906108099190613304565b61153b565b005b34801561081c57600080fd5b50610837600480360381019061083291906133d5565b6115d6565b005b34801561084557600080fd5b5061084e6116e5565b005b34801561085c57600080fd5b50610865611774565b60405161087291906130b3565b60405180910390f35b34801561088757600080fd5b506108906117b1565b60405161089d91906134a8565b60405180910390f35b3480156108b257600080fd5b506108bb6117d7565b6040516108c891906132bc565b60405180910390f35b3480156108dd57600080fd5b506108f860048036038101906108f391906134c3565b611800565b005b34801561090657600080fd5b5061090f611863565b60405161091c91906132bc565b60405180910390f35b34801561093157600080fd5b5061093a611872565b60405161094791906132bc565b60405180910390f35b34801561095c57600080fd5b5061097760048036038101906109729190613101565b611898565b604051610984919061315c565b60405180910390f35b34801561099957600080fd5b506109b460048036038101906109af9190613503565b6118ad565b005b3480156109c257600080fd5b506109cb6118cf565b6040516109d891906132bc565b60405180910390f35b3480156109ed57600080fd5b506109f66118f5565b604051610a039190612fff565b60405180910390f35b348015610a1857600080fd5b50610a216118fb565b604051610a2e91906132bc565b60405180910390f35b348015610a4357600080fd5b50610a5e6004803603810190610a599190613304565b611921565b005b348015610a6c57600080fd5b50610a7561195b565b604051610a829190612fff565b60405180910390f35b348015610a9757600080fd5b50610ab26004803603810190610aad91906134c3565b611961565b005b348015610ac057600080fd5b50610adb6004803603810190610ad6919061326d565b611977565b604051610ae89190612fff565b60405180910390f35b348015610afd57600080fd5b50610b066119fe565b604051610b1391906130b3565b60405180910390f35b348015610b2857600080fd5b50610b436004803603810190610b3e9190612fb9565b611a8c565b604051610b50919061315c565b60405180910390f35b348015610b6557600080fd5b50610b806004803603810190610b7b9190612fb9565b611aac565b005b348015610b8e57600080fd5b50610b97611b2f565b604051610ba49190613589565b60405180910390f35b348015610bb957600080fd5b50610bd46004803603810190610bcf91906135e2565b611b55565b005b348015610be257600080fd5b50610beb611ba1565b604051610bf8919061315c565b60405180910390f35b610c09611bb4565b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60065481565b60105481565b60606040518060400160405280600e81526020017f556e64657267726f756e64204149000000000000000000000000000000000000815250905090565b60145481565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610d7c9190612fff565b60405180910390a36001905092915050565b60125481565b60115481565b6000600554905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f525781600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ed1919061363e565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610f5d848484611c32565b90509392505050565b6000610f93600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611395565b610fbe600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611395565b600554610fcb919061363e565b610fd5919061363e565b905090565b60006012905090565b610feb611bb4565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161102b91906132bc565b602060405180830381865afa158015611048573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106c9190613687565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016110cb9291906136b4565b6020604051808303816000875af11580156110ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110e91906136f2565b50505050565b61111c611bb4565b6000479050600081111561119457601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611192573d6000803e3d6000fd5b505b50565b61119f611bb4565b81601960156101000a81548160ff021916908315150217905550806006819055505050565b6111cc611bb4565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c19df11e83836040518363ffffffff1660e01b815260040161122992919061371f565b600060405180830381600087803b15801561124357600080fd5b505af1158015611257573d6000803e3d6000fd5b505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601960159054906101000a900460ff1681565b600460009054906101000a900460ff1681565b6000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e61e38f1836040518263ffffffff1660e01b815260040161130891906132bc565b602060405180830381865afa158015611325573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113499190613687565b9050919050565b600061137c827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610c9c565b9050919050565b61138b611bb4565b61139361230d565b565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6113e6611bb4565b6113f06000612546565b565b600d6020528060005260406000206000915054906101000a900460ff1681565b61141a611bb4565b80436114269190613748565b600e819055506001601960166101000a81548160ff02191690831515021790555050565b600b60149054906101000a900460ff1681565b611465611bb4565b62030d408110156114ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a2906137ea565b60405180910390fd5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c479826040518263ffffffff1660e01b81526004016115069190612fff565b600060405180830381600087803b15801561152057600080fd5b505af1158015611534573d6000803e3d6000fd5b5050505050565b611543611bb4565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166381c7d3c783836040518363ffffffff1660e01b81526004016115a092919061380a565b600060405180830381600087803b1580156115ba57600080fd5b505af11580156115ce573d6000803e3d6000fd5b505050505050565b6115de611bb4565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166385514c14858585856040518563ffffffff1660e01b815260040161163f949392919061386f565b600060405180830381600087803b15801561165957600080fd5b505af115801561166d573d6000803e3d6000fd5b5050505083600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508282600391906116c3929190612eae565b5080600460006101000a81548160ff021916908360ff16021790555050505050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633cb3253a336040518263ffffffff1660e01b815260040161174091906132bc565b600060405180830381600087803b15801561175a57600080fd5b505af115801561176e573d6000803e3d6000fd5b50505050565b60606040518060400160405280600481526020017f5547414900000000000000000000000000000000000000000000000000000000815250905090565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611808611bb4565b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600061186d6117d7565b905090565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006118a5338484611c32565b905092915050565b6118b5611bb4565b826012819055508160138190555080601481905550505050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611929611bb4565b81601081905550806011819055506009601054111561194757600080fd5b600f601154111561195757600080fd5b5050565b60135481565b611969611bb4565b611973828261260a565b5050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60038054611a0b906138de565b80601f0160208091040260200160405190810160405280929190818152602001828054611a37906138de565b8015611a845780601f10611a5957610100808354040283529160200191611a84565b820191906000526020600020905b815481529060010190602001808311611a6757829003601f168201915b505050505081565b600c6020528060005260406000206000915054906101000a900460ff1681565b611ab4611bb4565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1a90613981565b60405180910390fd5b611b2c81612546565b50565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b5d611bb4565b80601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601960169054906101000a900460ff1681565b611bbc612898565b73ffffffffffffffffffffffffffffffffffffffff16611bda6117d7565b73ffffffffffffffffffffffffffffffffffffffff1614611c30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c27906139ed565b60405180910390fd5b565b6000611c3c6117d7565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611caa5750611c7a6117d7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611cff57601960169054906101000a900460ff16611cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf590613a59565b60405180910390fd5b5b601960149054906101000a900460ff1615611d2657611d1f8484846128a0565b9050612306565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611d915750601960149054906101000a900460ff16155b8015611da95750601960159054906101000a900460ff165b8015611df65750600654600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15611e0457611e0361230d565b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611e625750600e5443105b15611e8d57601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1692505b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ed8919061363e565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611fc15750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611fcb5782611fd7565b611fd6858585612a2e565b5b905080600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120249190613748565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661218157601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ccf570db86600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016121549291906136b4565b600060405180830381600087803b15801561216e57600080fd5b505af192505050801561217f575060015b505b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661229b57601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ccf570db85600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b815260040161226e9291906136b4565b600060405180830381600087803b15801561228857600080fd5b505af1925050508015612299575060015b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122f89190612fff565b60405180910390a360019150505b9392505050565b6001601960146101000a81548160ff021916908315150217905550600060155490506000600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600283601354846123869190613a79565b6123909190613b02565b61239a9190613b02565b9050600081836123aa919061363e565b90506123b581612bba565b6000479050600085601254836123cb9190613a79565b6123d59190613b02565b9050600086601454846123e89190613a79565b6123f29190613b02565b90506000600288601354866124079190613a79565b6124119190613b02565b61241b9190613b02565b9050600084111561249057601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015801561248e573d6000803e3d6000fd5b505b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b1580156124fa57600080fd5b505af19350505050801561250c575060015b506000861115612521576125208682612ddb565b5b50505050505050506000601960146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156126945750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6126d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ca90613b7f565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156127c557601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ccf570db8360006040518363ffffffff1660e01b815260040161278e929190613bda565b600060405180830381600087803b1580156127a857600080fd5b505af11580156127bc573d6000803e3d6000fd5b50505050612894565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ccf570db83600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016128619291906136b4565b600060405180830381600087803b15801561287b57600080fd5b505af115801561288f573d6000803e3d6000fd5b505050505b5050565b600033905090565b600081600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128ed919061363e565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461297b9190613748565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a1b9190612fff565b60405180910390a3600190509392505050565b6000808373ffffffffffffffffffffffffffffffffffffffff16601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a8e57601054612a92565b6011545b9050600060648285612aa49190613a79565b612aae9190613b02565b905080600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afb9190613748565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612b9b9190612fff565b60405180910390a38084612baf919061363e565b925050509392505050565b6000600267ffffffffffffffff811115612bd757612bd6613c03565b5b604051908082528060200260200182016040528015612c055781602001602082028036833780820191505090505b5090503081600081518110612c1d57612c1c613c32565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612cc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ce89190613c76565b81600181518110612cfc57612cfb613c32565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612d403083610c9c565b50601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612da5959493929190613d61565b600060405180830381600087803b158015612dbf57600080fd5b505af1158015612dd3573d6000803e3d6000fd5b505050505050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612e6496959493929190613dbb565b60606040518083038185885af1158015612e82573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612ea79190613e1c565b5050505050565b828054612eba906138de565b90600052602060002090601f016020900481019282612edc5760008555612f23565b82601f10612ef557803560ff1916838001178555612f23565b82800160010185558215612f23579182015b82811115612f22578235825591602001919060010190612f07565b5b509050612f309190612f34565b5090565b5b80821115612f4d576000816000905550600101612f35565b5090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612f8682612f5b565b9050919050565b612f9681612f7b565b8114612fa157600080fd5b50565b600081359050612fb381612f8d565b92915050565b600060208284031215612fcf57612fce612f51565b5b6000612fdd84828501612fa4565b91505092915050565b6000819050919050565b612ff981612fe6565b82525050565b60006020820190506130146000830184612ff0565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613054578082015181840152602081019050613039565b83811115613063576000848401525b50505050565b6000601f19601f8301169050919050565b60006130858261301a565b61308f8185613025565b935061309f818560208601613036565b6130a881613069565b840191505092915050565b600060208201905081810360008301526130cd818461307a565b905092915050565b6130de81612fe6565b81146130e957600080fd5b50565b6000813590506130fb816130d5565b92915050565b6000806040838503121561311857613117612f51565b5b600061312685828601612fa4565b9250506020613137858286016130ec565b9150509250929050565b60008115159050919050565b61315681613141565b82525050565b6000602082019050613171600083018461314d565b92915050565b6000806000606084860312156131905761318f612f51565b5b600061319e86828701612fa4565b93505060206131af86828701612fa4565b92505060406131c0868287016130ec565b9150509250925092565b600060ff82169050919050565b6131e0816131ca565b82525050565b60006020820190506131fb60008301846131d7565b92915050565b61320a81613141565b811461321557600080fd5b50565b60008135905061322781613201565b92915050565b6000806040838503121561324457613243612f51565b5b600061325285828601613218565b9250506020613263858286016130ec565b9150509250929050565b6000806040838503121561328457613283612f51565b5b600061329285828601612fa4565b92505060206132a385828601612fa4565b9150509250929050565b6132b681612f7b565b82525050565b60006020820190506132d160008301846132ad565b92915050565b6000602082840312156132ed576132ec612f51565b5b60006132fb848285016130ec565b91505092915050565b6000806040838503121561331b5761331a612f51565b5b6000613329858286016130ec565b925050602061333a858286016130ec565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f84011261336957613368613344565b5b8235905067ffffffffffffffff81111561338657613385613349565b5b6020830191508360018202830111156133a2576133a161334e565b5b9250929050565b6133b2816131ca565b81146133bd57600080fd5b50565b6000813590506133cf816133a9565b92915050565b600080600080606085870312156133ef576133ee612f51565b5b60006133fd87828801612fa4565b945050602085013567ffffffffffffffff81111561341e5761341d612f56565b5b61342a87828801613353565b9350935050604061343d878288016133c0565b91505092959194509250565b6000819050919050565b600061346e61346961346484612f5b565b613449565b612f5b565b9050919050565b600061348082613453565b9050919050565b600061349282613475565b9050919050565b6134a281613487565b82525050565b60006020820190506134bd6000830184613499565b92915050565b600080604083850312156134da576134d9612f51565b5b60006134e885828601612fa4565b92505060206134f985828601613218565b9150509250929050565b60008060006060848603121561351c5761351b612f51565b5b600061352a868287016130ec565b935050602061353b868287016130ec565b925050604061354c868287016130ec565b9150509250925092565b600061356182613453565b9050919050565b600061357382613556565b9050919050565b61358381613568565b82525050565b600060208201905061359e600083018461357a565b92915050565b60006135af82612f5b565b9050919050565b6135bf816135a4565b81146135ca57600080fd5b50565b6000813590506135dc816135b6565b92915050565b6000602082840312156135f8576135f7612f51565b5b6000613606848285016135cd565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061364982612fe6565b915061365483612fe6565b9250828210156136675761366661360f565b5b828203905092915050565b600081519050613681816130d5565b92915050565b60006020828403121561369d5761369c612f51565b5b60006136ab84828501613672565b91505092915050565b60006040820190506136c960008301856132ad565b6136d66020830184612ff0565b9392505050565b6000815190506136ec81613201565b92915050565b60006020828403121561370857613707612f51565b5b6000613716848285016136dd565b91505092915050565b600060408201905061373460008301856132ad565b61374160208301846132ad565b9392505050565b600061375382612fe6565b915061375e83612fe6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156137935761379261360f565b5b828201905092915050565b7f47617320746f6f206c6f77000000000000000000000000000000000000000000600082015250565b60006137d4600b83613025565b91506137df8261379e565b602082019050919050565b60006020820190508181036000830152613803816137c7565b9050919050565b600060408201905061381f6000830185612ff0565b61382c6020830184612ff0565b9392505050565b82818337600083830152505050565b600061384e8385613025565b935061385b838584613833565b61386483613069565b840190509392505050565b600060608201905061388460008301876132ad565b8181036020830152613897818587613842565b90506138a660408301846131d7565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806138f657607f821691505b602082108103613909576139086138af565b5b50919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061396b602683613025565b91506139768261390f565b604082019050919050565b6000602082019050818103600083015261399a8161395e565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f74205975616e5a68616e67600082015250565b60006139d7602083613025565b91506139e2826139a1565b602082019050919050565b60006020820190508181036000830152613a06816139ca565b9050919050565b7f54726164696e67206e6f74206163746976650000000000000000000000000000600082015250565b6000613a43601283613025565b9150613a4e82613a0d565b602082019050919050565b60006020820190508181036000830152613a7281613a36565b9050919050565b6000613a8482612fe6565b9150613a8f83612fe6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ac857613ac761360f565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613b0d82612fe6565b9150613b1883612fe6565b925082613b2857613b27613ad3565b5b828204905092915050565b7f50616972206f7220436f6e7472616374206d757374206265204578656d707400600082015250565b6000613b69601f83613025565b9150613b7482613b33565b602082019050919050565b60006020820190508181036000830152613b9881613b5c565b9050919050565b6000819050919050565b6000613bc4613bbf613bba84613b9f565b613449565b612fe6565b9050919050565b613bd481613ba9565b82525050565b6000604082019050613bef60008301856132ad565b613bfc6020830184613bcb565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613c7081612f8d565b92915050565b600060208284031215613c8c57613c8b612f51565b5b6000613c9a84828501613c61565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613cd881612f7b565b82525050565b6000613cea8383613ccf565b60208301905092915050565b6000602082019050919050565b6000613d0e82613ca3565b613d188185613cae565b9350613d2383613cbf565b8060005b83811015613d54578151613d3b8882613cde565b9750613d4683613cf6565b925050600181019050613d27565b5085935050505092915050565b600060a082019050613d766000830188612ff0565b613d836020830187613bcb565b8181036040830152613d958186613d03565b9050613da460608301856132ad565b613db16080830184612ff0565b9695505050505050565b600060c082019050613dd060008301896132ad565b613ddd6020830188612ff0565b613dea6040830187613bcb565b613df76060830186613bcb565b613e0460808301856132ad565b613e1160a0830184612ff0565b979650505050505050565b600080600060608486031215613e3557613e34612f51565b5b6000613e4386828701613672565b9350506020613e5486828701613672565b9250506040613e6586828701613672565b915050925092509256fea264697066735822122065ec3393e1a388153f7db369fe84e27b1277b47263a2719603f2ac3f189c17c864736f6c634300080d0033

Deployed Bytecode Sourcemap

10965:11521:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15204:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11420:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12022:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16328:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12167:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16760:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12093:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12056:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16058:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17274:337;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15914:136;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16152:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21639:254;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21390:241;;;;;;;;;;;;;:::i;:::-;;15342:203;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21901:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11043:72;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12501:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11165:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22238:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16984:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21304:78;;;;;;;;;;;;;:::i;:::-;;16508:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2215:107;;;;;;;;;;;;;:::i;:::-;;11886:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14082:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11798:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22065:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15553:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14226:305;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22397:86;;;;;;;;;;;;;:::i;:::-;;16238:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12592:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1964:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13944:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16414:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12327:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17114:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14793:252;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12382:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11945:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12353:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14539:241;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12129:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15768:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16619:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11122:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11833:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2330:205;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12296:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15053:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12548:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15204:126;1919:17;:15;:17::i;:::-;15306:16:::1;15290:13;;:32;;;;;;;;;;;;;;;;;;15204:126:::0;:::o;11420:60::-;;;;:::o;12022:27::-;;;;:::o;16328:80::-;16376:13;16400:5;;;;;;;;;;;;;;;;;16393:12;;16328:80;:::o;12167:35::-;;;;:::o;16760:216::-;16835:4;16887:6;16852:11;:23;16864:10;16852:23;;;;;;;;;;;;;;;:32;16876:7;16852:32;;;;;;;;;;;;;;;:41;;;;16930:7;16909:37;;16918:10;16909:37;;;16939:6;16909:37;;;;;;:::i;:::-;;;;;;;;16964:4;16957:11;;16760:216;;;;:::o;12093:29::-;;;;:::o;12056:28::-;;;;:::o;16058:88::-;16113:7;16131:12;;16124:19;;16058:88;:::o;17274:337::-;17374:4;17429:17;17394:11;:19;17406:6;17394:19;;;;;;;;;;;;;;;:31;17414:10;17394:31;;;;;;;;;;;;;;;;:52;17391:157;;17530:6;17496:11;:19;17508:6;17496:19;;;;;;;;;;;;;;;:31;17516:10;17496:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;17462:11;:19;17474:6;17462:19;;;;;;;;;;;;;;;:31;17482:10;17462:31;;;;;;;;;;;;;;;:74;;;;17391:157;17567:36;17577:6;17585:9;17596:6;17567:9;:36::i;:::-;17560:43;;17274:337;;;;;:::o;15914:136::-;15967:7;16027:15;16037:4;;;;;;;;;;;16027:9;:15::i;:::-;16009;16019:4;;;;;;;;;;;16009:9;:15::i;:::-;15994:12;;:30;;;;:::i;:::-;:48;;;;:::i;:::-;15987:55;;15914:136;:::o;16152:80::-;16204:5;11343:2;16213:16;;16152:80;:::o;21639:254::-;1919:17;:15;:17::i;:::-;21724::::1;21751:15;21724:43;;21778:15;21796:10;:20;;;21825:4;21796:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21778:53;;21842:10;:19;;;21862:13;;;;;;;;;;;21877:7;21842:43;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21713:180;;21639:254:::0;:::o;21390:241::-;1919:17;:15;:17::i;:::-;21449:26:::1;21478:21;21449:50;;21534:1;21513:18;:22;21510:114;;;21569:13;;;;;;;;;;;21561:31;;:51;21593:18;21561:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;21510:114;21438:193;21390:241::o:0;15342:203::-;1919:17;:15;:17::i;:::-;15480:14:::1;15455:21;;:39;;;;;;;;;;;;;;;;;;15521:16;15505:13;:32;;;;15342:203:::0;;:::o;21901:156::-;1919:17;:15;:17::i;:::-;21999:12:::1;;;;;;;;;;;:23;;;22023:15;22040:8;21999:50;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;21901:156:::0;;:::o;11043:72::-;;;;;;;;;;;;;:::o;12501:40::-;;;;;;;;;;;;;:::o;11165:32::-;;;;;;;;;;;;;:::o;22238:151::-;22310:7;22337:12;;;;;;;;;;;:32;;;22370:10;22337:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22330:51;;22238:151;;;:::o;16984:122::-;17039:4;17063:35;17071:7;17080:17;17063:7;:35::i;:::-;17056:42;;16984:122;;;:::o;21304:78::-;1919:17;:15;:17::i;:::-;21364:10:::1;:8;:10::i;:::-;21304:78::o:0;16508:105::-;16574:7;16592:9;:18;16602:7;16592:18;;;;;;;;;;;;;;;;16585:25;;16508:105;;;:::o;2215:107::-;1919:17;:15;:17::i;:::-;2284:30:::1;2311:1;2284:18;:30::i;:::-;2215:107::o:0;11886:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;14082:136::-;1919:17;:15;:17::i;:::-;14175:6:::1;14160:12;:21;;;;:::i;:::-;14147:10;:34;;;;14206:4;14192:11;;:18;;;;;;;;;;;;;;;;;;14082:136:::0;:::o;11798:26::-;;;;;;;;;;;;;:::o;22065:165::-;1919:17;:15;:17::i;:::-;22158:6:::1;22145:9;:19;;22137:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;22191:12;;;;;;;;;;;:20;;;22212:9;22191:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;22065:165:::0;:::o;15553:207::-;1919:17;:15;:17::i;:::-;15672:12:::1;;;;;;;;;;;:37;;;15710:12;15724:19;15672:72;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15553:207:::0;;:::o;14226:305::-;1919:17;:15;:17::i;:::-;14349:12:::1;;;;;;;;;;;:26;;;14376:10;14388:9;;14399:11;14349:62;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14437:10;14422:12;;:25;;;;;;;;;;;;;;;;;;14474:9;;14458:13;:25;;;;;;;:::i;:::-;;14512:11;14494:15;;:29;;;;;;;;;;;;;;;;;;14226:305:::0;;;;:::o;22397:86::-;22441:12;;;;;;;;;;;:22;;;22464:10;22441:34;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22397:86::o;16238:84::-;16288:13;16312:7;;;;;;;;;;;;;;;;;16305:14;;16238:84;:::o;12592:32::-;;;;;;;;;;;;;:::o;1964:95::-;2014:7;2041:10;;;;;;;;;;;2034:17;;1964:95;:::o;13944:130::-;1919:17;:15;:17::i;:::-;14060:6:::1;14036:13;:21;14050:6;14036:21;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;13944:130:::0;;:::o;16414:88::-;16470:7;16488:11;:9;:11::i;:::-;16481:18;;16414:88;:::o;12327:19::-;;;;;;;;;;;;;:::o;17114:152::-;17194:4;17218:40;17228:10;17240:9;17251:6;17218:9;:40::i;:::-;17211:47;;17114:152;;;;:::o;14793:252::-;1919:17;:15;:17::i;:::-;14937:15:::1;14925:9;:27;;;;14977:10;14963:11;:24;;;;15016:21;14998:15;:39;;;;14793:252:::0;;;:::o;12382:82::-;;;;;;;;;;;;;:::o;11945:25::-;;;;:::o;12353:22::-;;;;;;;;;;;;;:::o;14539:241::-;1919:17;:15;:17::i;:::-;14656:11:::1;14645:8;:22;;;;14690:12;14678:9;:24;;;;14735:1;14723:8;;:13;;14715:22;;;::::0;::::1;;14769:2;14756:9;;:15;;14748:24;;;::::0;::::1;;14539:241:::0;;:::o;12129:31::-;;;;:::o;15768:138::-;1919:17;:15;:17::i;:::-;15861:37:::1;15883:6;15891;15861:21;:37::i;:::-;15768:138:::0;;:::o;16619:133::-;16703:7;16721:11;:19;16733:6;16721:19;;;;;;;;;;;;;;;:28;16741:7;16721:28;;;;;;;;;;;;;;;;16714:35;;16619:133;;;;:::o;11122:36::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11833:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;2330:205::-;1919:17;:15;:17::i;:::-;2443:1:::1;2423:22;;:8;:22;;::::0;2415:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2499:28;2518:8;2499:18;:28::i;:::-;2330:205:::0;:::o;12296:24::-;;;;;;;;;;;;;:::o;15053:143::-;1919:17;:15;:17::i;:::-;15171:16:::1;15147:13;;:41;;;;;;;;;;;;;;;;;;15053:143:::0;:::o;12548:31::-;;;;;;;;;;;;;:::o;2067:140::-;2150:12;:10;:12::i;:::-;2135:27;;:11;:9;:11::i;:::-;:27;;;2127:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;2067:140::o;17619:1143::-;17707:4;17738:11;:9;:11::i;:::-;17728:21;;:6;:21;;;;:49;;;;;17766:11;:9;:11::i;:::-;17753:24;;:9;:24;;;;17728:49;17724:97;;;17787:11;;;;;;;;;;;17779:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;17724:97;17837:16;;;;;;;;;;;17834:73;;;17863:41;17878:6;17886:9;17897:6;17863:14;:41::i;:::-;17856:48;;;;17834:73;17936:4;;;;;;;;;;;17922:18;;:10;:18;;;;:39;;;;;17945:16;;;;;;;;;;;17944:17;17922:39;:64;;;;;17965:21;;;;;;;;;;;17922:64;:109;;;;;18018:13;;17990:9;:24;18008:4;17990:24;;;;;;;;;;;;;;;;:41;;17922:109;17919:128;;;18034:10;:8;:10::i;:::-;17919:128;18067:4;;;;;;;;;;;18057:14;;:6;:14;;;:43;;;;;18090:10;;18075:12;:25;18057:43;18054:78;;;18116:13;;;;;;;;;;;18104:25;;18054:78;18184:6;18164:9;:17;18174:6;18164:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;18144:9;:17;18154:6;18144:17;;;;;;;;;;;;;;;:46;;;;18211:19;18234:13;:21;18248:6;18234:21;;;;;;;;;;;;;;;;;;;;;;;;;18233:22;:51;;;;;18260:13;:24;18274:9;18260:24;;;;;;;;;;;;;;;;;;;;;;;;;18259:25;18233:51;:99;;18326:6;18233:99;;;18287:36;18297:6;18305:9;18316:6;18287:9;:36::i;:::-;18233:99;18211:121;;18389:11;18366:9;:20;18376:9;18366:20;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;18343:9;:20;18353:9;18343:20;;;;;;;;;;;;;;;:57;;;;18417:17;:25;18435:6;18417:25;;;;;;;;;;;;;;;;;;;;;;;;;18413:120;;18463:12;;;;;;;;;;;:20;;;18484:6;18492:9;:17;18502:6;18492:17;;;;;;;;;;;;;;;;18463:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18459:63;18413:120;18549:17;:28;18567:9;18549:28;;;;;;;;;;;;;;;;;;;;;;;;;18545:130;;18598:12;;;;;;;;;;;:20;;;18619:9;18630;:20;18640:9;18630:20;;;;;;;;;;;;;;;;18598:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18594:69;18545:130;18709:9;18692:40;;18701:6;18692:40;;;18720:11;18692:40;;;;;;:::i;:::-;;;;;;;;18750:4;18743:11;;;17619:1143;;;;;;:::o;20253:1043::-;12684:4;12665:16;;:23;;;;;;;;;;;;;;;;;;20308:27:::1;20338:18;;20308:48;;20367:20;20390:9;:24;20408:4;20390:24;;;;;;;;;;;;;;;;20367:47;;20426:26;20506:1;20484:19;20470:11;;20455:12;:26;;;;:::i;:::-;:48;;;;:::i;:::-;:52;;;;:::i;:::-;20426:81;;20523:20;20561:18;20546:12;:33;;;;:::i;:::-;20523:56;;20592:30;20609:12;20592:16;:30::i;:::-;20635:23;20661:21;20635:47;;20693:26;20752:19;20740:9;;20722:15;:27;;;;:::i;:::-;:49;;;;:::i;:::-;20693:78;;20782:27;20848:19;20830:15;;20812;:33;;;;:::i;:::-;:55;;;;:::i;:::-;20782:85;;20878:23;20958:1;20936:19;20922:11;;20904:15;:29;;;;:::i;:::-;:51;;;;:::i;:::-;:55;;;;:::i;:::-;20878:81;;21000:1;20982:15;:19;20978:103;;;21025:13;;;;;;;;;;;21017:31;;:52;21049:19;21017:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;20978:103;21105:12;;;;;;;;;;;:20;;;21133:18;21105:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;21101:65:::0;21211:1:::1;21190:18;:22;21186:103;;;21228:49;21241:18;21261:15;21228:12;:49::i;:::-;21186:103;20294:1002;;;;;;;;12730:5:::0;12711:16;;:24;;;;;;;;;;;;;;;;;;20253:1043::o;2543:199::-;2617:16;2636:10;;;;;;;;;;;2617:29;;2670:8;2657:10;;:21;;;;;;;;;;;;;;;;;;2725:8;2694:40;;2715:8;2694:40;;;;;;;;;;;;2606:136;2543:199;:::o;13562:374::-;13668:4;13650:23;;:6;:23;;;;:41;;;;;13687:4;;;;;;;;;;;13677:14;;:6;:14;;;;13650:41;13642:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;13766:6;13738:17;:25;13756:6;13738:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;13786:6;13783:146;;;13808:12;;;;;;;;;;;:20;;;13829:6;13837:1;13808:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13783:146;;;13870:12;;;;;;;;;;;:20;;;13891:6;13899:9;:17;13909:6;13899:17;;;;;;;;;;;;;;;;13870:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13783:146;13562:374;;:::o;1423:98::-;1476:7;1503:10;1496:17;;1423:98;:::o;18774:300::-;18867:4;18924:6;18904:9;:17;18914:6;18904:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;18884:9;:17;18894:6;18884:17;;;;;;;;;;;;;;;:46;;;;18987:6;18964:9;:20;18974:9;18964:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;18941:9;:20;18951:9;18941:20;;;;;;;;;;;;;;;:52;;;;19026:9;19009:35;;19018:6;19009:35;;;19037:6;19009:35;;;;;;:::i;:::-;;;;;;;;19062:4;19055:11;;18774:300;;;;;:::o;19088:421::-;19176:7;19206:21;19238:9;19230:17;;:4;;;;;;;;;;;:17;;;:40;;19262:8;;19230:40;;;19250:9;;19230:40;19206:64;;19281:17;19326:3;19310:13;19301:6;:22;;;;:::i;:::-;:28;;;;:::i;:::-;19281:48;;19396:9;19369;:24;19387:4;19369:24;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;19342:9;:24;19360:4;19342:24;;;;;;;;;;;;;;;:63;;;;19446:4;19421:42;;19430:6;19421:42;;;19453:9;19421:42;;;;;;:::i;:::-;;;;;;;;19492:9;19483:6;:18;;;;:::i;:::-;19476:25;;;;19088:421;;;;;:::o;19521:432::-;19589:21;19627:1;19613:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19589:40;;19658:4;19640;19645:1;19640:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19684:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19674:4;19679:1;19674:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19710:35;19726:4;19733:11;19710:7;:35::i;:::-;;19758:6;;;;;;;;;;;:57;;;19830:11;19856:1;19872:4;19899;19919:15;19758:187;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19576:377;19521:432;:::o;19961:284::-;20042:6;;;;;;;;;;;:22;;;20072:9;20105:4;20125:11;20151:1;20167;20183:13;;;;;;;;;;;20211:15;20042:195;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19961:284;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;88:117:1:-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:77::-;1213:7;1242:5;1231:16;;1176:77;;;:::o;1259:118::-;1346:24;1364:5;1346:24;:::i;:::-;1341:3;1334:37;1259:118;;:::o;1383:222::-;1476:4;1514:2;1503:9;1499:18;1491:26;;1527:71;1595:1;1584:9;1580:17;1571:6;1527:71;:::i;:::-;1383:222;;;;:::o;1611:99::-;1663:6;1697:5;1691:12;1681:22;;1611:99;;;:::o;1716:169::-;1800:11;1834:6;1829:3;1822:19;1874:4;1869:3;1865:14;1850:29;;1716:169;;;;:::o;1891:307::-;1959:1;1969:113;1983:6;1980:1;1977:13;1969:113;;;2068:1;2063:3;2059:11;2053:18;2049:1;2044:3;2040:11;2033:39;2005:2;2002:1;1998:10;1993:15;;1969:113;;;2100:6;2097:1;2094:13;2091:101;;;2180:1;2171:6;2166:3;2162:16;2155:27;2091:101;1940:258;1891:307;;;:::o;2204:102::-;2245:6;2296:2;2292:7;2287:2;2280:5;2276:14;2272:28;2262:38;;2204:102;;;:::o;2312:364::-;2400:3;2428:39;2461:5;2428:39;:::i;:::-;2483:71;2547:6;2542:3;2483:71;:::i;:::-;2476:78;;2563:52;2608:6;2603:3;2596:4;2589:5;2585:16;2563:52;:::i;:::-;2640:29;2662:6;2640:29;:::i;:::-;2635:3;2631:39;2624:46;;2404:272;2312:364;;;;:::o;2682:313::-;2795:4;2833:2;2822:9;2818:18;2810:26;;2882:9;2876:4;2872:20;2868:1;2857:9;2853:17;2846:47;2910:78;2983:4;2974:6;2910:78;:::i;:::-;2902:86;;2682:313;;;;:::o;3001:122::-;3074:24;3092:5;3074:24;:::i;:::-;3067:5;3064:35;3054:63;;3113:1;3110;3103:12;3054:63;3001:122;:::o;3129:139::-;3175:5;3213:6;3200:20;3191:29;;3229:33;3256:5;3229:33;:::i;:::-;3129:139;;;;:::o;3274:474::-;3342:6;3350;3399:2;3387:9;3378:7;3374:23;3370:32;3367:119;;;3405:79;;:::i;:::-;3367:119;3525:1;3550:53;3595:7;3586:6;3575:9;3571:22;3550:53;:::i;:::-;3540:63;;3496:117;3652:2;3678:53;3723:7;3714:6;3703:9;3699:22;3678:53;:::i;:::-;3668:63;;3623:118;3274:474;;;;;:::o;3754:90::-;3788:7;3831:5;3824:13;3817:21;3806:32;;3754:90;;;:::o;3850:109::-;3931:21;3946:5;3931:21;:::i;:::-;3926:3;3919:34;3850:109;;:::o;3965:210::-;4052:4;4090:2;4079:9;4075:18;4067:26;;4103:65;4165:1;4154:9;4150:17;4141:6;4103:65;:::i;:::-;3965:210;;;;:::o;4181:619::-;4258:6;4266;4274;4323:2;4311:9;4302:7;4298:23;4294:32;4291:119;;;4329:79;;:::i;:::-;4291:119;4449:1;4474:53;4519:7;4510:6;4499:9;4495:22;4474:53;:::i;:::-;4464:63;;4420:117;4576:2;4602:53;4647:7;4638:6;4627:9;4623:22;4602:53;:::i;:::-;4592:63;;4547:118;4704:2;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4675:118;4181:619;;;;;:::o;4806:86::-;4841:7;4881:4;4874:5;4870:16;4859:27;;4806:86;;;:::o;4898:112::-;4981:22;4997:5;4981:22;:::i;:::-;4976:3;4969:35;4898:112;;:::o;5016:214::-;5105:4;5143:2;5132:9;5128:18;5120:26;;5156:67;5220:1;5209:9;5205:17;5196:6;5156:67;:::i;:::-;5016:214;;;;:::o;5236:116::-;5306:21;5321:5;5306:21;:::i;:::-;5299:5;5296:32;5286:60;;5342:1;5339;5332:12;5286:60;5236:116;:::o;5358:133::-;5401:5;5439:6;5426:20;5417:29;;5455:30;5479:5;5455:30;:::i;:::-;5358:133;;;;:::o;5497:468::-;5562:6;5570;5619:2;5607:9;5598:7;5594:23;5590:32;5587:119;;;5625:79;;:::i;:::-;5587:119;5745:1;5770:50;5812:7;5803:6;5792:9;5788:22;5770:50;:::i;:::-;5760:60;;5716:114;5869:2;5895:53;5940:7;5931:6;5920:9;5916:22;5895:53;:::i;:::-;5885:63;;5840:118;5497:468;;;;;:::o;5971:474::-;6039:6;6047;6096:2;6084:9;6075:7;6071:23;6067:32;6064:119;;;6102:79;;:::i;:::-;6064:119;6222:1;6247:53;6292:7;6283:6;6272:9;6268:22;6247:53;:::i;:::-;6237:63;;6193:117;6349:2;6375:53;6420:7;6411:6;6400:9;6396:22;6375:53;:::i;:::-;6365:63;;6320:118;5971:474;;;;;:::o;6451:118::-;6538:24;6556:5;6538:24;:::i;:::-;6533:3;6526:37;6451:118;;:::o;6575:222::-;6668:4;6706:2;6695:9;6691:18;6683:26;;6719:71;6787:1;6776:9;6772:17;6763:6;6719:71;:::i;:::-;6575:222;;;;:::o;6803:329::-;6862:6;6911:2;6899:9;6890:7;6886:23;6882:32;6879:119;;;6917:79;;:::i;:::-;6879:119;7037:1;7062:53;7107:7;7098:6;7087:9;7083:22;7062:53;:::i;:::-;7052:63;;7008:117;6803:329;;;;:::o;7138:474::-;7206:6;7214;7263:2;7251:9;7242:7;7238:23;7234:32;7231:119;;;7269:79;;:::i;:::-;7231:119;7389:1;7414:53;7459:7;7450:6;7439:9;7435:22;7414:53;:::i;:::-;7404:63;;7360:117;7516:2;7542:53;7587:7;7578:6;7567:9;7563:22;7542:53;:::i;:::-;7532:63;;7487:118;7138:474;;;;;:::o;7618:117::-;7727:1;7724;7717:12;7741:117;7850:1;7847;7840:12;7864:117;7973:1;7970;7963:12;8001:553;8059:8;8069:6;8119:3;8112:4;8104:6;8100:17;8096:27;8086:122;;8127:79;;:::i;:::-;8086:122;8240:6;8227:20;8217:30;;8270:18;8262:6;8259:30;8256:117;;;8292:79;;:::i;:::-;8256:117;8406:4;8398:6;8394:17;8382:29;;8460:3;8452:4;8444:6;8440:17;8430:8;8426:32;8423:41;8420:128;;;8467:79;;:::i;:::-;8420:128;8001:553;;;;;:::o;8560:118::-;8631:22;8647:5;8631:22;:::i;:::-;8624:5;8621:33;8611:61;;8668:1;8665;8658:12;8611:61;8560:118;:::o;8684:135::-;8728:5;8766:6;8753:20;8744:29;;8782:31;8807:5;8782:31;:::i;:::-;8684:135;;;;:::o;8825:815::-;8912:6;8920;8928;8936;8985:2;8973:9;8964:7;8960:23;8956:32;8953:119;;;8991:79;;:::i;:::-;8953:119;9111:1;9136:53;9181:7;9172:6;9161:9;9157:22;9136:53;:::i;:::-;9126:63;;9082:117;9266:2;9255:9;9251:18;9238:32;9297:18;9289:6;9286:30;9283:117;;;9319:79;;:::i;:::-;9283:117;9432:65;9489:7;9480:6;9469:9;9465:22;9432:65;:::i;:::-;9414:83;;;;9209:298;9546:2;9572:51;9615:7;9606:6;9595:9;9591:22;9572:51;:::i;:::-;9562:61;;9517:116;8825:815;;;;;;;:::o;9646:60::-;9674:3;9695:5;9688:12;;9646:60;;;:::o;9712:142::-;9762:9;9795:53;9813:34;9822:24;9840:5;9822:24;:::i;:::-;9813:34;:::i;:::-;9795:53;:::i;:::-;9782:66;;9712:142;;;:::o;9860:134::-;9918:9;9951:37;9982:5;9951:37;:::i;:::-;9938:50;;9860:134;;;:::o;10000:163::-;10079:9;10112:45;10151:5;10112:45;:::i;:::-;10099:58;;10000:163;;;:::o;10169:189::-;10285:66;10345:5;10285:66;:::i;:::-;10280:3;10273:79;10169:189;;:::o;10364:280::-;10486:4;10524:2;10513:9;10509:18;10501:26;;10537:100;10634:1;10623:9;10619:17;10610:6;10537:100;:::i;:::-;10364:280;;;;:::o;10650:468::-;10715:6;10723;10772:2;10760:9;10751:7;10747:23;10743:32;10740:119;;;10778:79;;:::i;:::-;10740:119;10898:1;10923:53;10968:7;10959:6;10948:9;10944:22;10923:53;:::i;:::-;10913:63;;10869:117;11025:2;11051:50;11093:7;11084:6;11073:9;11069:22;11051:50;:::i;:::-;11041:60;;10996:115;10650:468;;;;;:::o;11124:619::-;11201:6;11209;11217;11266:2;11254:9;11245:7;11241:23;11237:32;11234:119;;;11272:79;;:::i;:::-;11234:119;11392:1;11417:53;11462:7;11453:6;11442:9;11438:22;11417:53;:::i;:::-;11407:63;;11363:117;11519:2;11545:53;11590:7;11581:6;11570:9;11566:22;11545:53;:::i;:::-;11535:63;;11490:118;11647:2;11673:53;11718:7;11709:6;11698:9;11694:22;11673:53;:::i;:::-;11663:63;;11618:118;11124:619;;;;;:::o;11749:126::-;11799:9;11832:37;11863:5;11832:37;:::i;:::-;11819:50;;11749:126;;;:::o;11881:144::-;11949:9;11982:37;12013:5;11982:37;:::i;:::-;11969:50;;11881:144;;;:::o;12031:167::-;12136:55;12185:5;12136:55;:::i;:::-;12131:3;12124:68;12031:167;;:::o;12204:258::-;12315:4;12353:2;12342:9;12338:18;12330:26;;12366:89;12452:1;12441:9;12437:17;12428:6;12366:89;:::i;:::-;12204:258;;;;:::o;12468:104::-;12513:7;12542:24;12560:5;12542:24;:::i;:::-;12531:35;;12468:104;;;:::o;12578:138::-;12659:32;12685:5;12659:32;:::i;:::-;12652:5;12649:43;12639:71;;12706:1;12703;12696:12;12639:71;12578:138;:::o;12722:155::-;12776:5;12814:6;12801:20;12792:29;;12830:41;12865:5;12830:41;:::i;:::-;12722:155;;;;:::o;12883:345::-;12950:6;12999:2;12987:9;12978:7;12974:23;12970:32;12967:119;;;13005:79;;:::i;:::-;12967:119;13125:1;13150:61;13203:7;13194:6;13183:9;13179:22;13150:61;:::i;:::-;13140:71;;13096:125;12883:345;;;;:::o;13234:180::-;13282:77;13279:1;13272:88;13379:4;13376:1;13369:15;13403:4;13400:1;13393:15;13420:191;13460:4;13480:20;13498:1;13480:20;:::i;:::-;13475:25;;13514:20;13532:1;13514:20;:::i;:::-;13509:25;;13553:1;13550;13547:8;13544:34;;;13558:18;;:::i;:::-;13544:34;13603:1;13600;13596:9;13588:17;;13420:191;;;;:::o;13617:143::-;13674:5;13705:6;13699:13;13690:22;;13721:33;13748:5;13721:33;:::i;:::-;13617:143;;;;:::o;13766:351::-;13836:6;13885:2;13873:9;13864:7;13860:23;13856:32;13853:119;;;13891:79;;:::i;:::-;13853:119;14011:1;14036:64;14092:7;14083:6;14072:9;14068:22;14036:64;:::i;:::-;14026:74;;13982:128;13766:351;;;;:::o;14123:332::-;14244:4;14282:2;14271:9;14267:18;14259:26;;14295:71;14363:1;14352:9;14348:17;14339:6;14295:71;:::i;:::-;14376:72;14444:2;14433:9;14429:18;14420:6;14376:72;:::i;:::-;14123:332;;;;;:::o;14461:137::-;14515:5;14546:6;14540:13;14531:22;;14562:30;14586:5;14562:30;:::i;:::-;14461:137;;;;:::o;14604:345::-;14671:6;14720:2;14708:9;14699:7;14695:23;14691:32;14688:119;;;14726:79;;:::i;:::-;14688:119;14846:1;14871:61;14924:7;14915:6;14904:9;14900:22;14871:61;:::i;:::-;14861:71;;14817:125;14604:345;;;;:::o;14955:332::-;15076:4;15114:2;15103:9;15099:18;15091:26;;15127:71;15195:1;15184:9;15180:17;15171:6;15127:71;:::i;:::-;15208:72;15276:2;15265:9;15261:18;15252:6;15208:72;:::i;:::-;14955:332;;;;;:::o;15293:305::-;15333:3;15352:20;15370:1;15352:20;:::i;:::-;15347:25;;15386:20;15404:1;15386:20;:::i;:::-;15381:25;;15540:1;15472:66;15468:74;15465:1;15462:81;15459:107;;;15546:18;;:::i;:::-;15459:107;15590:1;15587;15583:9;15576:16;;15293:305;;;;:::o;15604:161::-;15744:13;15740:1;15732:6;15728:14;15721:37;15604:161;:::o;15771:366::-;15913:3;15934:67;15998:2;15993:3;15934:67;:::i;:::-;15927:74;;16010:93;16099:3;16010:93;:::i;:::-;16128:2;16123:3;16119:12;16112:19;;15771:366;;;:::o;16143:419::-;16309:4;16347:2;16336:9;16332:18;16324:26;;16396:9;16390:4;16386:20;16382:1;16371:9;16367:17;16360:47;16424:131;16550:4;16424:131;:::i;:::-;16416:139;;16143:419;;;:::o;16568:332::-;16689:4;16727:2;16716:9;16712:18;16704:26;;16740:71;16808:1;16797:9;16793:17;16784:6;16740:71;:::i;:::-;16821:72;16889:2;16878:9;16874:18;16865:6;16821:72;:::i;:::-;16568:332;;;;;:::o;16906:154::-;16990:6;16985:3;16980;16967:30;17052:1;17043:6;17038:3;17034:16;17027:27;16906:154;;;:::o;17090:304::-;17188:3;17209:71;17273:6;17268:3;17209:71;:::i;:::-;17202:78;;17290:43;17326:6;17321:3;17314:5;17290:43;:::i;:::-;17358:29;17380:6;17358:29;:::i;:::-;17353:3;17349:39;17342:46;;17090:304;;;;;:::o;17400:545::-;17575:4;17613:2;17602:9;17598:18;17590:26;;17626:71;17694:1;17683:9;17679:17;17670:6;17626:71;:::i;:::-;17744:9;17738:4;17734:20;17729:2;17718:9;17714:18;17707:48;17772:88;17855:4;17846:6;17838;17772:88;:::i;:::-;17764:96;;17870:68;17934:2;17923:9;17919:18;17910:6;17870:68;:::i;:::-;17400:545;;;;;;;:::o;17951:180::-;17999:77;17996:1;17989:88;18096:4;18093:1;18086:15;18120:4;18117:1;18110:15;18137:320;18181:6;18218:1;18212:4;18208:12;18198:22;;18265:1;18259:4;18255:12;18286:18;18276:81;;18342:4;18334:6;18330:17;18320:27;;18276:81;18404:2;18396:6;18393:14;18373:18;18370:38;18367:84;;18423:18;;:::i;:::-;18367:84;18188:269;18137:320;;;:::o;18463:225::-;18603:34;18599:1;18591:6;18587:14;18580:58;18672:8;18667:2;18659:6;18655:15;18648:33;18463:225;:::o;18694:366::-;18836:3;18857:67;18921:2;18916:3;18857:67;:::i;:::-;18850:74;;18933:93;19022:3;18933:93;:::i;:::-;19051:2;19046:3;19042:12;19035:19;;18694:366;;;:::o;19066:419::-;19232:4;19270:2;19259:9;19255:18;19247:26;;19319:9;19313:4;19309:20;19305:1;19294:9;19290:17;19283:47;19347:131;19473:4;19347:131;:::i;:::-;19339:139;;19066:419;;;:::o;19491:182::-;19631:34;19627:1;19619:6;19615:14;19608:58;19491:182;:::o;19679:366::-;19821:3;19842:67;19906:2;19901:3;19842:67;:::i;:::-;19835:74;;19918:93;20007:3;19918:93;:::i;:::-;20036:2;20031:3;20027:12;20020:19;;19679:366;;;:::o;20051:419::-;20217:4;20255:2;20244:9;20240:18;20232:26;;20304:9;20298:4;20294:20;20290:1;20279:9;20275:17;20268:47;20332:131;20458:4;20332:131;:::i;:::-;20324:139;;20051:419;;;:::o;20476:168::-;20616:20;20612:1;20604:6;20600:14;20593:44;20476:168;:::o;20650:366::-;20792:3;20813:67;20877:2;20872:3;20813:67;:::i;:::-;20806:74;;20889:93;20978:3;20889:93;:::i;:::-;21007:2;21002:3;20998:12;20991:19;;20650:366;;;:::o;21022:419::-;21188:4;21226:2;21215:9;21211:18;21203:26;;21275:9;21269:4;21265:20;21261:1;21250:9;21246:17;21239:47;21303:131;21429:4;21303:131;:::i;:::-;21295:139;;21022:419;;;:::o;21447:348::-;21487:7;21510:20;21528:1;21510:20;:::i;:::-;21505:25;;21544:20;21562:1;21544:20;:::i;:::-;21539:25;;21732:1;21664:66;21660:74;21657:1;21654:81;21649:1;21642:9;21635:17;21631:105;21628:131;;;21739:18;;:::i;:::-;21628:131;21787:1;21784;21780:9;21769:20;;21447:348;;;;:::o;21801:180::-;21849:77;21846:1;21839:88;21946:4;21943:1;21936:15;21970:4;21967:1;21960:15;21987:185;22027:1;22044:20;22062:1;22044:20;:::i;:::-;22039:25;;22078:20;22096:1;22078:20;:::i;:::-;22073:25;;22117:1;22107:35;;22122:18;;:::i;:::-;22107:35;22164:1;22161;22157:9;22152:14;;21987:185;;;;:::o;22178:181::-;22318:33;22314:1;22306:6;22302:14;22295:57;22178:181;:::o;22365:366::-;22507:3;22528:67;22592:2;22587:3;22528:67;:::i;:::-;22521:74;;22604:93;22693:3;22604:93;:::i;:::-;22722:2;22717:3;22713:12;22706:19;;22365:366;;;:::o;22737:419::-;22903:4;22941:2;22930:9;22926:18;22918:26;;22990:9;22984:4;22980:20;22976:1;22965:9;22961:17;22954:47;23018:131;23144:4;23018:131;:::i;:::-;23010:139;;22737:419;;;:::o;23162:85::-;23207:7;23236:5;23225:16;;23162:85;;;:::o;23253:158::-;23311:9;23344:61;23362:42;23371:32;23397:5;23371:32;:::i;:::-;23362:42;:::i;:::-;23344:61;:::i;:::-;23331:74;;23253:158;;;:::o;23417:147::-;23512:45;23551:5;23512:45;:::i;:::-;23507:3;23500:58;23417:147;;:::o;23570:348::-;23699:4;23737:2;23726:9;23722:18;23714:26;;23750:71;23818:1;23807:9;23803:17;23794:6;23750:71;:::i;:::-;23831:80;23907:2;23896:9;23892:18;23883:6;23831:80;:::i;:::-;23570:348;;;;;:::o;23924:180::-;23972:77;23969:1;23962:88;24069:4;24066:1;24059:15;24093:4;24090:1;24083:15;24110:180;24158:77;24155:1;24148:88;24255:4;24252:1;24245:15;24279:4;24276:1;24269:15;24296:143;24353:5;24384:6;24378:13;24369:22;;24400:33;24427:5;24400:33;:::i;:::-;24296:143;;;;:::o;24445:351::-;24515:6;24564:2;24552:9;24543:7;24539:23;24535:32;24532:119;;;24570:79;;:::i;:::-;24532:119;24690:1;24715:64;24771:7;24762:6;24751:9;24747:22;24715:64;:::i;:::-;24705:74;;24661:128;24445:351;;;;:::o;24802:114::-;24869:6;24903:5;24897:12;24887:22;;24802:114;;;:::o;24922:184::-;25021:11;25055:6;25050:3;25043:19;25095:4;25090:3;25086:14;25071:29;;24922:184;;;;:::o;25112:132::-;25179:4;25202:3;25194:11;;25232:4;25227:3;25223:14;25215:22;;25112:132;;;:::o;25250:108::-;25327:24;25345:5;25327:24;:::i;:::-;25322:3;25315:37;25250:108;;:::o;25364:179::-;25433:10;25454:46;25496:3;25488:6;25454:46;:::i;:::-;25532:4;25527:3;25523:14;25509:28;;25364:179;;;;:::o;25549:113::-;25619:4;25651;25646:3;25642:14;25634:22;;25549:113;;;:::o;25698:732::-;25817:3;25846:54;25894:5;25846:54;:::i;:::-;25916:86;25995:6;25990:3;25916:86;:::i;:::-;25909:93;;26026:56;26076:5;26026:56;:::i;:::-;26105:7;26136:1;26121:284;26146:6;26143:1;26140:13;26121:284;;;26222:6;26216:13;26249:63;26308:3;26293:13;26249:63;:::i;:::-;26242:70;;26335:60;26388:6;26335:60;:::i;:::-;26325:70;;26181:224;26168:1;26165;26161:9;26156:14;;26121:284;;;26125:14;26421:3;26414:10;;25822:608;;;25698:732;;;;:::o;26436:831::-;26699:4;26737:3;26726:9;26722:19;26714:27;;26751:71;26819:1;26808:9;26804:17;26795:6;26751:71;:::i;:::-;26832:80;26908:2;26897:9;26893:18;26884:6;26832:80;:::i;:::-;26959:9;26953:4;26949:20;26944:2;26933:9;26929:18;26922:48;26987:108;27090:4;27081:6;26987:108;:::i;:::-;26979:116;;27105:72;27173:2;27162:9;27158:18;27149:6;27105:72;:::i;:::-;27187:73;27255:3;27244:9;27240:19;27231:6;27187:73;:::i;:::-;26436:831;;;;;;;;:::o;27273:807::-;27522:4;27560:3;27549:9;27545:19;27537:27;;27574:71;27642:1;27631:9;27627:17;27618:6;27574:71;:::i;:::-;27655:72;27723:2;27712:9;27708:18;27699:6;27655:72;:::i;:::-;27737:80;27813:2;27802:9;27798:18;27789:6;27737:80;:::i;:::-;27827;27903:2;27892:9;27888:18;27879:6;27827:80;:::i;:::-;27917:73;27985:3;27974:9;27970:19;27961:6;27917:73;:::i;:::-;28000;28068:3;28057:9;28053:19;28044:6;28000:73;:::i;:::-;27273:807;;;;;;;;;:::o;28086:663::-;28174:6;28182;28190;28239:2;28227:9;28218:7;28214:23;28210:32;28207:119;;;28245:79;;:::i;:::-;28207:119;28365:1;28390:64;28446:7;28437:6;28426:9;28422:22;28390:64;:::i;:::-;28380:74;;28336:128;28503:2;28529:64;28585:7;28576:6;28565:9;28561:22;28529:64;:::i;:::-;28519:74;;28474:129;28642:2;28668:64;28724:7;28715:6;28704:9;28700:22;28668:64;:::i;:::-;28658:74;;28613:129;28086:663;;;;;:::o

Swarm Source

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