ETH Price: $3,482.37 (+3.29%)
Gas: 3 Gwei

Token

Alpaca (ALPACA)
 

Overview

Max Total Supply

1,000,000,000,000 ALPACA

Holders

398

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
degensamuel.eth
Balance
0.652075159000912152 ALPACA

Value
$0.00
0x612C45551195f15Bf05D722b9f137C914b077FC7
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:
Alpaca

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-18
*/

// SPDX-License-Identifier: Unlicensed

// Telegram: https://t.me/AlpacaERC

// Website: https://alpacalypse.vip

pragma solidity ^0.8.0;

/**
 * Standard SafeMath, stripped down to just add/sub/mul/div
 */
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

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

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

/**
 * ERC20 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 getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

/**
 * Allows for contract ownership along with multi-address authorization
 */
abstract contract Auth {
    address internal owner;

    constructor(address _owner) {
        owner = _owner;
    }

    /**
     * Function modifier to require caller to be contract deployer
     */
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!Owner"); _;
    }

    /**
     * Check if address is owner
     */
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    /**
     * Transfer ownership to new address. Caller must be deployer. Leaves old deployer authorized
     */
    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

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


contract Alpaca is IERC20, Auth {
    using SafeMath for uint256;

    address private WETH;

    string private constant  _name = "Alpaca";
    string private constant _symbol = "ALPACA";
    uint8 public constant _decimals = 18;

    uint256 private _totalSupply = 1000000000000 * (10 ** _decimals); 

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

    mapping (address => bool) private isFeeExempt;
    mapping (address => bool) private isBot;

    address immutable DEAD = 0x000000000000000000000000000000000000dEaD;
            
    uint256 public buyFee = 15;
    uint256 public sellFee = 15;
    uint256 private feeDenominator = 100;

    address payable public teamWallet = payable(0xBe00D29Af3462dA8f788DF22bC26Df4A23130Fa7);
    uint256 public swapThresholdAmount = 10000000000 * (10**_decimals);

    IDEXRouter public router;
    address public pair;

    uint256 public launchedAt;
    bool private tradingOpen;
    bool private buyLimit = true;
    uint256 private maxBuy = 10000000001 * (10 ** _decimals);

    uint256 public burnAmount = 5000000 * (10 ** _decimals);
    uint256 public breeded = 0;
    

    bool public blacklistEnabled = false;
    bool private inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

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

        isFeeExempt[_owner] = true;
        isFeeExempt[teamWallet] = true; 
        isFeeExempt[address(this)] = true;            
        
        isBot[0x6b75d8AF000000e20B7a7DDf000Ba900b4009A80] = true;

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


    receive() external payable { }

    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 getOwner() external view override returns (address) { return owner; }
    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 _transferFrom(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].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if (!tradingOpen) {
            require (sender == owner ||  sender == address (this));
            return _basicTransfer(sender, recipient, amount);
        }
        
        if (blacklistEnabled) {
            require (!isBot[sender] && !isBot[recipient], "Bot!");
        }
        if (buyLimit) { 
            require (amount<=maxBuy, "Too much sir");        
        }

        if (sender == pair && recipient != address(router) && !isFeeExempt[recipient]) {
            require (cooldown[recipient] < block.timestamp);
            cooldown[recipient] = block.timestamp + 60 seconds;
            if (block.number <= (launchedAt + 1)) { 
                isBot[recipient] = true;
            }
        }        
       
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }    

        uint256 contractTokenBalance = balanceOf(address(this));

        bool overMinTokenBalance = contractTokenBalance >= swapThresholdAmount;
    
        bool shouldSwapBack = (overMinTokenBalance && recipient==pair && balanceOf(address(this)) > 0);
        if(shouldSwapBack){ swapBack(); }  

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, amount) : amount;
        
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

 
    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return ( !(isFeeExempt[sender] || isFeeExempt[recipient]) &&  (sender == pair || recipient == pair) );
   }

    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount;
        if(sender != pair) {
            feeAmount = amount.mul(sellFee).div(feeDenominator);
        }
        else {
            feeAmount = amount.mul(buyFee).div(feeDenominator);
        }
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);   

        return amount.sub(feeAmount);
    }

   
function swapBack() internal swapping {
        uint256 contractTokenBalance = balanceOf(address(this));

        uint256 amountToSwap;

        if (contractTokenBalance >= swapThresholdAmount) {
            amountToSwap = swapThresholdAmount;
        }
            else {
                amountToSwap = contractTokenBalance;
        }
              
        swapTokensForEth(amountToSwap);

        uint256 contractETHBalance = address(this).balance;
             
        payable(teamWallet).transfer(contractETHBalance);          
    }

    

    function swapTokensForEth(uint256 tokenAmount) private {

        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    
    function openTrading() external onlyOwner {
      
        router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            owner,
            block.timestamp
        );       

        launchedAt = block.number;
        tradingOpen = true;
    }    

    function removeBuyLimit() external onlyOwner {
        buyLimit = false;
    }

    function setBuyFee (uint256 _fee) external onlyOwner {
        require(buyFee != 0); //once set to 0, fee can't be increased
        buyFee = _fee;
    }

     function setSellFee (uint256 _fee) external onlyOwner {
        require(sellFee != 0); //once set to 0, fee can't be increased
        sellFee = _fee;
    }   

    function setTeamWallet(address _teamWallet) external onlyOwner {
        teamWallet = payable(_teamWallet);
    } 

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setBlacklistEnabled() external onlyOwner {
        require (blacklistEnabled == false, "can only be called once");
        blacklistEnabled = true;
    }
    
    function setBot(address _address, bool toggle) public onlyOwner {
        isBot[_address] = toggle;
    }

    function checkBot(address account) public view returns (bool) {
        return isBot[account];
    }

    function blacklistArray (address[] calldata bots) external onlyOwner {
        require (bots.length > 0);
        uint i =0;
        while (i < bots.length) {
            setBot(bots[i],  true);
            i++;
        }
    }

    function setSwapThresholdAmount (uint256 amount) external onlyOwner {
        swapThresholdAmount = _totalSupply.mul(amount).div(1000);
    } 
  
    function manualSend() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(teamWallet).transfer(contractETHBalance);
    }

    function breed() external {
        require(balanceOf(msg.sender)>=burnAmount);
        _basicTransfer(msg.sender,DEAD,burnAmount);
        breeded++;
    }

    function setBurnAmount(uint256 newAmount) external onlyOwner {
        burnAmount = newAmount * (10 ** _decimals);
    }
  
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","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":"_decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"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":[{"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":[{"internalType":"address[]","name":"bots","type":"address[]"}],"name":"blacklistArray","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"blacklistEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"breed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"breeded","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"checkBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeBuyLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"setBlacklistEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"toggle","type":"bool"}],"name":"setBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"setBurnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapThresholdAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_teamWallet","type":"address"}],"name":"setTeamWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThresholdAmount","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":"teamWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tickets","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526012600a62000014919062000b5b565b64e8d4a5100062000026919062000bac565b60025561dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff16815250600f600955600f600a556064600b5573be00d29af3462da8f788df22bc26df4a23130fa7600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620000d2919062000b5b565b6402540be400620000e4919062000bac565b600d556001601160016101000a81548160ff0219169083151502179055506012600a62000112919062000b5b565b6402540be40162000124919062000bac565b6012556012600a62000137919062000b5b565b624c4b4062000147919062000bac565b60135560006014556000601560006101000a81548160ff0219169083151502179055503480156200017757600080fd5b50604051620043ff380380620043ff83398181016040528101906200019d919062000c61565b80806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002a2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c8919062000c61565b600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000376573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200039c919062000c61565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401620003fa92919062000ca4565b6020604051808303816000875af11580156200041a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000440919062000c61565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004d4600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620008cd60201b60201c565b50600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016200057692919062000ce2565b6020604051808303816000875af115801562000596573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005bc919062000d4c565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000736b75d8af000000e20b7a7ddf000ba900b4009a8073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600254600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600254604051620008be919062000d7e565b60405180910390a35062000d9b565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051620009af919062000d7e565b60405180910390a36001905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000a4f5780860481111562000a275762000a26620009c1565b5b600185161562000a375780820291505b808102905062000a4785620009f0565b945062000a07565b94509492505050565b60008262000a6a576001905062000b3d565b8162000a7a576000905062000b3d565b816001811462000a93576002811462000a9e5762000ad4565b600191505062000b3d565b60ff84111562000ab35762000ab2620009c1565b5b8360020a91508482111562000acd5762000acc620009c1565b5b5062000b3d565b5060208310610133831016604e8410600b841016171562000b0e5782820a90508381111562000b085762000b07620009c1565b5b62000b3d565b62000b1d8484846001620009fd565b9250905081840481111562000b375762000b36620009c1565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000b688262000b44565b915062000b758362000b4e565b925062000ba47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a58565b905092915050565b600062000bb98262000b44565b915062000bc68362000b44565b925082820262000bd68162000b44565b9150828204841483151762000bf05762000bef620009c1565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c298262000bfc565b9050919050565b62000c3b8162000c1c565b811462000c4757600080fd5b50565b60008151905062000c5b8162000c30565b92915050565b60006020828403121562000c7a5762000c7962000bf7565b5b600062000c8a8482850162000c4a565b91505092915050565b62000c9e8162000c1c565b82525050565b600060408201905062000cbb600083018562000c93565b62000cca602083018462000c93565b9392505050565b62000cdc8162000b44565b82525050565b600060408201905062000cf9600083018562000c93565b62000d08602083018462000cd1565b9392505050565b60008115159050919050565b62000d268162000d0f565b811462000d3257600080fd5b50565b60008151905062000d468162000d1b565b92915050565b60006020828403121562000d655762000d6462000bf7565b5b600062000d758482850162000d35565b91505092915050565b600060208201905062000d95600083018462000cd1565b92915050565b60805161364862000db7600039600061103901526136486000f3fe6080604052600436106102345760003560e01c806368b85fb11161012e578063bf56b371116100ab578063d3ee67381161006f578063d3ee673814610828578063dd62ed3e14610851578063f2fde38b1461088e578063f4293890146108b7578063f887ea40146108ce5761023b565b8063bf56b37114610767578063bffb691d14610792578063c9567bf9146107bd578063cc43f3d3146107d4578063d0aa7abe146107fd5761023b565b80638b4cee08116100f25780638b4cee081461066e57806395d89b4114610697578063a8aa1b31146106c2578063a9059cbb146106ed578063b1a4e0dc1461072a5761023b565b806368b85fb11461059b5780636dcbf2a3146105b257806370a08231146105ef578063764ca5121461062c578063893d20e8146106435761023b565b8063313ce567116101bc578063486a7e6b11610180578063486a7e6b146104b4578063571ac8b0146104df578063599270441461051c578063599c381314610547578063658d4b7f146105725761023b565b8063313ce567146103f357806332424aa31461041e578063342aa8b5146104495780633e07ce5b1461047257806347062402146104895761023b565b806318160ddd1161020357806318160ddd146102fa57806323b872dd1461032557806329e04b4a146103625780632b14ca561461038b5780632f54bf6e146103b65761023b565b806306fdde0314610240578063095ea7b31461026b5780630cc835a3146102a85780631525ff7d146102d15761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b506102556108f9565b60405161026291906128a0565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d9190612960565b610936565b60405161029f91906129bb565b60405180910390f35b3480156102b457600080fd5b506102cf60048036038101906102ca91906129d6565b610a28565b005b3480156102dd57600080fd5b506102f860048036038101906102f39190612a03565b610a89565b005b34801561030657600080fd5b5061030f610b15565b60405161031c9190612a3f565b60405180910390f35b34801561033157600080fd5b5061034c60048036038101906103479190612a5a565b610b1f565b60405161035991906129bb565b60405180910390f35b34801561036e57600080fd5b50610389600480360381019061038491906129d6565b610d1f565b005b34801561039757600080fd5b506103a0610d99565b6040516103ad9190612a3f565b60405180910390f35b3480156103c257600080fd5b506103dd60048036038101906103d89190612a03565b610d9f565b6040516103ea91906129bb565b60405180910390f35b3480156103ff57600080fd5b50610408610df8565b6040516104159190612ac9565b60405180910390f35b34801561042a57600080fd5b50610433610e01565b6040516104409190612ac9565b60405180910390f35b34801561045557600080fd5b50610470600480360381019061046b9190612b10565b610e06565b005b34801561047e57600080fd5b50610487610ea9565b005b34801561049557600080fd5b5061049e610f0e565b6040516104ab9190612a3f565b60405180910390f35b3480156104c057600080fd5b506104c9610f14565b6040516104d69190612a3f565b60405180910390f35b3480156104eb57600080fd5b5061050660048036038101906105019190612a03565b610f1a565b60405161051391906129bb565b60405180910390f35b34801561052857600080fd5b50610531610f4d565b60405161053e9190612b71565b60405180910390f35b34801561055357600080fd5b5061055c610f73565b6040516105699190612a3f565b60405180910390f35b34801561057e57600080fd5b5061059960048036038101906105949190612b10565b610f79565b005b3480156105a757600080fd5b506105b061101c565b005b3480156105be57600080fd5b506105d960048036038101906105d49190612a03565b61107b565b6040516105e69190612ba5565b60405180910390f35b3480156105fb57600080fd5b5061061660048036038101906106119190612a03565b611093565b6040516106239190612a3f565b60405180910390f35b34801561063857600080fd5b506106416110dc565b005b34801561064f57600080fd5b50610658611197565b6040516106659190612bcf565b60405180910390f35b34801561067a57600080fd5b50610695600480360381019061069091906129d6565b6111c0565b005b3480156106a357600080fd5b506106ac611221565b6040516106b991906128a0565b60405180910390f35b3480156106ce57600080fd5b506106d761125e565b6040516106e49190612bcf565b60405180910390f35b3480156106f957600080fd5b50610714600480360381019061070f9190612960565b611284565b60405161072191906129bb565b60405180910390f35b34801561073657600080fd5b50610751600480360381019061074c9190612a03565b611299565b60405161075e91906129bb565b60405180910390f35b34801561077357600080fd5b5061077c6112ef565b6040516107899190612a3f565b60405180910390f35b34801561079e57600080fd5b506107a76112f5565b6040516107b491906129bb565b60405180910390f35b3480156107c957600080fd5b506107d2611308565b005b3480156107e057600080fd5b506107fb60048036038101906107f691906129d6565b611449565b005b34801561080957600080fd5b506108126114b3565b60405161081f9190612a3f565b60405180910390f35b34801561083457600080fd5b5061084f600480360381019061084a9190612c4f565b6114b9565b005b34801561085d57600080fd5b5061087860048036038101906108739190612c9c565b611569565b6040516108859190612a3f565b60405180910390f35b34801561089a57600080fd5b506108b560048036038101906108b09190612d08565b6115f0565b005b3480156108c357600080fd5b506108cc6116b2565b005b3480156108da57600080fd5b506108e361176b565b6040516108f09190612d94565b60405180910390f35b60606040518060400160405280600681526020017f416c706163610000000000000000000000000000000000000000000000000000815250905090565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a169190612a3f565b60405180910390a36001905092915050565b610a3133610d9f565b610a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6790612dfb565b60405180910390fd5b600060095403610a7f57600080fd5b8060098190555050565b610a9233610d9f565b610ad1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac890612dfb565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600254905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d0b57610c8a826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117919092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610d168484846117f5565b90509392505050565b610d2833610d9f565b610d67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5e90612dfb565b60405180910390fd5b610d906103e8610d8283600254611ec790919063ffffffff16565b611f4190919063ffffffff16565b600d8190555050565b600a5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b601281565b610e0f33610d9f565b610e4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4590612dfb565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610eb233610d9f565b610ef1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee890612dfb565b60405180910390fd5b6000601160016101000a81548160ff021916908315150217905550565b60095481565b60135481565b6000610f46827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610936565b9050919050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60145481565b610f8233610d9f565b610fc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb890612dfb565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60135461102833611093565b101561103357600080fd5b611060337f0000000000000000000000000000000000000000000000000000000000000000601354611f8b565b506014600081548092919061107490612e4a565b9190505550565b60066020528060005260406000206000915090505481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110e533610d9f565b611124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111b90612dfb565b60405180910390fd5b60001515601560009054906101000a900460ff1615151461117a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117190612ede565b60405180910390fd5b6001601560006101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6111c933610d9f565b611208576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ff90612dfb565b60405180910390fd5b6000600a540361121757600080fd5b80600a8190555050565b60606040518060400160405280600681526020017f414c504143410000000000000000000000000000000000000000000000000000815250905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006112913384846117f5565b905092915050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60105481565b601560009054906101000a900460ff1681565b61131133610d9f565b611350576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134790612dfb565b60405180910390fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061139930611093565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016113df96959493929190612f39565b60606040518083038185885af11580156113fd573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114229190612faf565b505050436010819055506001601160006101000a81548160ff021916908315150217905550565b61145233610d9f565b611491576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148890612dfb565b60405180910390fd5b6012600a61149f9190613135565b816114aa9190613180565b60138190555050565b600d5481565b6114c233610d9f565b611501576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f890612dfb565b60405180910390fd5b6000828290501161151157600080fd5b60005b8282905081101561156457611551838383818110611535576115346131c2565b5b905060200201602081019061154a9190612a03565b6001610e06565b808061155c90612e4a565b915050611514565b505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115f933610d9f565b611638576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162f90612dfb565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516116a79190613212565b60405180910390a150565b6116bb33610d9f565b6116fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f190612dfb565b60405180910390fd5b6000479050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611767573d6000803e3d6000fd5b5050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008383111582906117d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d091906128a0565b60405180910390fd5b50600083856117e8919061322d565b9050809150509392505050565b6000601160009054906101000a900460ff166118ab5760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061189057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b61189957600080fd5b6118a4848484611f8b565b9050611ec0565b601560009054906101000a900460ff16156119a457600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119645750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6119a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199a906132ad565b60405180910390fd5b5b601160019054906101000a900460ff16156119ff576012548211156119fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f590613319565b60405180910390fd5b5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611aaa5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b005750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c0f5742600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611b5057600080fd5b603c42611b5d9190613339565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001601054611baf9190613339565b4311611c0e576001600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b601560019054906101000a900460ff1615611c3657611c2f848484611f8b565b9050611ec0565b6000611c4130611093565b90506000600d5482101590506000818015611ca95750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b8015611cbd57506000611cbb30611093565b115b90508015611cce57611ccd61215e565b5b611d57856040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117919092919063ffffffff16565b600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611da68888612236565b611db05785611dbb565b611dba8887612393565b5b9050611e0f81600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255d90919063ffffffff16565b600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611eaf9190612a3f565b60405180910390a360019450505050505b9392505050565b6000808303611ed95760009050611f3b565b60008284611ee79190613180565b9050828482611ef6919061339c565b14611f36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2d9061343f565b60405180910390fd5b809150505b92915050565b6000611f8383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125bb565b905092915050565b6000612016826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117919092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120ab82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255d90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161214b9190612a3f565b60405180910390a3600190509392505050565b6001601560016101000a81548160ff021916908315150217905550600061218430611093565b90506000600d54821061219b57600d54905061219f565b8190505b6121a88161261e565b6000479050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612215573d6000803e3d6000fd5b505050506000601560016101000a81548160ff021916908315150217905550565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122d95750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15801561238b5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061238a5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b905092915050565b600080600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461241b57612414600b54612406600a5486611ec790919063ffffffff16565b611f4190919063ffffffff16565b9050612447565b612444600b5461243660095486611ec790919063ffffffff16565b611f4190919063ffffffff16565b90505b61249981600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255d90919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125399190612a3f565b60405180910390a361255481846127c690919063ffffffff16565b91505092915050565b600080828461256c9190613339565b9050838110156125b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a8906134ab565b60405180910390fd5b8091505092915050565b60008083118290612602576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f991906128a0565b60405180910390fd5b5060008385612611919061339c565b9050809150509392505050565b6000600267ffffffffffffffff81111561263b5761263a6134cb565b5b6040519080825280602002602001820160405280156126695781602001602082028036833780820191505090505b5090503081600081518110612681576126806131c2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106126f2576126f16131c2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016127909594939291906135b8565b600060405180830381600087803b1580156127aa57600080fd5b505af11580156127be573d6000803e3d6000fd5b505050505050565b600061280883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611791565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561284a57808201518184015260208101905061282f565b60008484015250505050565b6000601f19601f8301169050919050565b600061287282612810565b61287c818561281b565b935061288c81856020860161282c565b61289581612856565b840191505092915050565b600060208201905081810360008301526128ba8184612867565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006128f7826128cc565b9050919050565b612907816128ec565b811461291257600080fd5b50565b600081359050612924816128fe565b92915050565b6000819050919050565b61293d8161292a565b811461294857600080fd5b50565b60008135905061295a81612934565b92915050565b60008060408385031215612977576129766128c2565b5b600061298585828601612915565b92505060206129968582860161294b565b9150509250929050565b60008115159050919050565b6129b5816129a0565b82525050565b60006020820190506129d060008301846129ac565b92915050565b6000602082840312156129ec576129eb6128c2565b5b60006129fa8482850161294b565b91505092915050565b600060208284031215612a1957612a186128c2565b5b6000612a2784828501612915565b91505092915050565b612a398161292a565b82525050565b6000602082019050612a546000830184612a30565b92915050565b600080600060608486031215612a7357612a726128c2565b5b6000612a8186828701612915565b9350506020612a9286828701612915565b9250506040612aa38682870161294b565b9150509250925092565b600060ff82169050919050565b612ac381612aad565b82525050565b6000602082019050612ade6000830184612aba565b92915050565b612aed816129a0565b8114612af857600080fd5b50565b600081359050612b0a81612ae4565b92915050565b60008060408385031215612b2757612b266128c2565b5b6000612b3585828601612915565b9250506020612b4685828601612afb565b9150509250929050565b6000612b5b826128cc565b9050919050565b612b6b81612b50565b82525050565b6000602082019050612b866000830184612b62565b92915050565b6000819050919050565b612b9f81612b8c565b82525050565b6000602082019050612bba6000830184612b96565b92915050565b612bc9816128ec565b82525050565b6000602082019050612be46000830184612bc0565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612c0f57612c0e612bea565b5b8235905067ffffffffffffffff811115612c2c57612c2b612bef565b5b602083019150836020820283011115612c4857612c47612bf4565b5b9250929050565b60008060208385031215612c6657612c656128c2565b5b600083013567ffffffffffffffff811115612c8457612c836128c7565b5b612c9085828601612bf9565b92509250509250929050565b60008060408385031215612cb357612cb26128c2565b5b6000612cc185828601612915565b9250506020612cd285828601612915565b9150509250929050565b612ce581612b50565b8114612cf057600080fd5b50565b600081359050612d0281612cdc565b92915050565b600060208284031215612d1e57612d1d6128c2565b5b6000612d2c84828501612cf3565b91505092915050565b6000819050919050565b6000612d5a612d55612d50846128cc565b612d35565b6128cc565b9050919050565b6000612d6c82612d3f565b9050919050565b6000612d7e82612d61565b9050919050565b612d8e81612d73565b82525050565b6000602082019050612da96000830184612d85565b92915050565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000612de560068361281b565b9150612df082612daf565b602082019050919050565b60006020820190508181036000830152612e1481612dd8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612e558261292a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e8757612e86612e1b565b5b600182019050919050565b7f63616e206f6e6c792062652063616c6c6564206f6e6365000000000000000000600082015250565b6000612ec860178361281b565b9150612ed382612e92565b602082019050919050565b60006020820190508181036000830152612ef781612ebb565b9050919050565b6000819050919050565b6000612f23612f1e612f1984612efe565b612d35565b61292a565b9050919050565b612f3381612f08565b82525050565b600060c082019050612f4e6000830189612bc0565b612f5b6020830188612a30565b612f686040830187612f2a565b612f756060830186612f2a565b612f826080830185612bc0565b612f8f60a0830184612a30565b979650505050505050565b600081519050612fa981612934565b92915050565b600080600060608486031215612fc857612fc76128c2565b5b6000612fd686828701612f9a565b9350506020612fe786828701612f9a565b9250506040612ff886828701612f9a565b9150509250925092565b60008160011c9050919050565b6000808291508390505b60018511156130595780860481111561303557613034612e1b565b5b60018516156130445780820291505b808102905061305285613002565b9450613019565b94509492505050565b600082613072576001905061312e565b81613080576000905061312e565b816001811461309657600281146130a0576130cf565b600191505061312e565b60ff8411156130b2576130b1612e1b565b5b8360020a9150848211156130c9576130c8612e1b565b5b5061312e565b5060208310610133831016604e8410600b84101617156131045782820a9050838111156130ff576130fe612e1b565b5b61312e565b613111848484600161300f565b9250905081840481111561312857613127612e1b565b5b81810290505b9392505050565b60006131408261292a565b915061314b83612aad565b92506131787fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613062565b905092915050565b600061318b8261292a565b91506131968361292a565b92508282026131a48161292a565b915082820484148315176131bb576131ba612e1b565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006131fc82612d61565b9050919050565b61320c816131f1565b82525050565b60006020820190506132276000830184613203565b92915050565b60006132388261292a565b91506132438361292a565b925082820390508181111561325b5761325a612e1b565b5b92915050565b7f426f742100000000000000000000000000000000000000000000000000000000600082015250565b600061329760048361281b565b91506132a282613261565b602082019050919050565b600060208201905081810360008301526132c68161328a565b9050919050565b7f546f6f206d756368207369720000000000000000000000000000000000000000600082015250565b6000613303600c8361281b565b915061330e826132cd565b602082019050919050565b60006020820190508181036000830152613332816132f6565b9050919050565b60006133448261292a565b915061334f8361292a565b925082820190508082111561336757613366612e1b565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006133a78261292a565b91506133b28361292a565b9250826133c2576133c161336d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061342960218361281b565b9150613434826133cd565b604082019050919050565b600060208201905081810360008301526134588161341c565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613495601b8361281b565b91506134a08261345f565b602082019050919050565b600060208201905081810360008301526134c481613488565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61352f816128ec565b82525050565b60006135418383613526565b60208301905092915050565b6000602082019050919050565b6000613565826134fa565b61356f8185613505565b935061357a83613516565b8060005b838110156135ab5781516135928882613535565b975061359d8361354d565b92505060018101905061357e565b5085935050505092915050565b600060a0820190506135cd6000830188612a30565b6135da6020830187612f2a565b81810360408301526135ec818661355a565b90506135fb6060830185612bc0565b6136086080830184612a30565b969550505050505056fea26469706673582212202a08b74a1168eee33b9a6d6bd7d4d168c6c51ae9310efdc2cd1fca6cdacd9baa64736f6c6343000811003300000000000000000000000090df8f318fb99b516ccfa98b32d22e8f85aa0193

Deployed Bytecode

0x6080604052600436106102345760003560e01c806368b85fb11161012e578063bf56b371116100ab578063d3ee67381161006f578063d3ee673814610828578063dd62ed3e14610851578063f2fde38b1461088e578063f4293890146108b7578063f887ea40146108ce5761023b565b8063bf56b37114610767578063bffb691d14610792578063c9567bf9146107bd578063cc43f3d3146107d4578063d0aa7abe146107fd5761023b565b80638b4cee08116100f25780638b4cee081461066e57806395d89b4114610697578063a8aa1b31146106c2578063a9059cbb146106ed578063b1a4e0dc1461072a5761023b565b806368b85fb11461059b5780636dcbf2a3146105b257806370a08231146105ef578063764ca5121461062c578063893d20e8146106435761023b565b8063313ce567116101bc578063486a7e6b11610180578063486a7e6b146104b4578063571ac8b0146104df578063599270441461051c578063599c381314610547578063658d4b7f146105725761023b565b8063313ce567146103f357806332424aa31461041e578063342aa8b5146104495780633e07ce5b1461047257806347062402146104895761023b565b806318160ddd1161020357806318160ddd146102fa57806323b872dd1461032557806329e04b4a146103625780632b14ca561461038b5780632f54bf6e146103b65761023b565b806306fdde0314610240578063095ea7b31461026b5780630cc835a3146102a85780631525ff7d146102d15761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b506102556108f9565b60405161026291906128a0565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d9190612960565b610936565b60405161029f91906129bb565b60405180910390f35b3480156102b457600080fd5b506102cf60048036038101906102ca91906129d6565b610a28565b005b3480156102dd57600080fd5b506102f860048036038101906102f39190612a03565b610a89565b005b34801561030657600080fd5b5061030f610b15565b60405161031c9190612a3f565b60405180910390f35b34801561033157600080fd5b5061034c60048036038101906103479190612a5a565b610b1f565b60405161035991906129bb565b60405180910390f35b34801561036e57600080fd5b50610389600480360381019061038491906129d6565b610d1f565b005b34801561039757600080fd5b506103a0610d99565b6040516103ad9190612a3f565b60405180910390f35b3480156103c257600080fd5b506103dd60048036038101906103d89190612a03565b610d9f565b6040516103ea91906129bb565b60405180910390f35b3480156103ff57600080fd5b50610408610df8565b6040516104159190612ac9565b60405180910390f35b34801561042a57600080fd5b50610433610e01565b6040516104409190612ac9565b60405180910390f35b34801561045557600080fd5b50610470600480360381019061046b9190612b10565b610e06565b005b34801561047e57600080fd5b50610487610ea9565b005b34801561049557600080fd5b5061049e610f0e565b6040516104ab9190612a3f565b60405180910390f35b3480156104c057600080fd5b506104c9610f14565b6040516104d69190612a3f565b60405180910390f35b3480156104eb57600080fd5b5061050660048036038101906105019190612a03565b610f1a565b60405161051391906129bb565b60405180910390f35b34801561052857600080fd5b50610531610f4d565b60405161053e9190612b71565b60405180910390f35b34801561055357600080fd5b5061055c610f73565b6040516105699190612a3f565b60405180910390f35b34801561057e57600080fd5b5061059960048036038101906105949190612b10565b610f79565b005b3480156105a757600080fd5b506105b061101c565b005b3480156105be57600080fd5b506105d960048036038101906105d49190612a03565b61107b565b6040516105e69190612ba5565b60405180910390f35b3480156105fb57600080fd5b5061061660048036038101906106119190612a03565b611093565b6040516106239190612a3f565b60405180910390f35b34801561063857600080fd5b506106416110dc565b005b34801561064f57600080fd5b50610658611197565b6040516106659190612bcf565b60405180910390f35b34801561067a57600080fd5b50610695600480360381019061069091906129d6565b6111c0565b005b3480156106a357600080fd5b506106ac611221565b6040516106b991906128a0565b60405180910390f35b3480156106ce57600080fd5b506106d761125e565b6040516106e49190612bcf565b60405180910390f35b3480156106f957600080fd5b50610714600480360381019061070f9190612960565b611284565b60405161072191906129bb565b60405180910390f35b34801561073657600080fd5b50610751600480360381019061074c9190612a03565b611299565b60405161075e91906129bb565b60405180910390f35b34801561077357600080fd5b5061077c6112ef565b6040516107899190612a3f565b60405180910390f35b34801561079e57600080fd5b506107a76112f5565b6040516107b491906129bb565b60405180910390f35b3480156107c957600080fd5b506107d2611308565b005b3480156107e057600080fd5b506107fb60048036038101906107f691906129d6565b611449565b005b34801561080957600080fd5b506108126114b3565b60405161081f9190612a3f565b60405180910390f35b34801561083457600080fd5b5061084f600480360381019061084a9190612c4f565b6114b9565b005b34801561085d57600080fd5b5061087860048036038101906108739190612c9c565b611569565b6040516108859190612a3f565b60405180910390f35b34801561089a57600080fd5b506108b560048036038101906108b09190612d08565b6115f0565b005b3480156108c357600080fd5b506108cc6116b2565b005b3480156108da57600080fd5b506108e361176b565b6040516108f09190612d94565b60405180910390f35b60606040518060400160405280600681526020017f416c706163610000000000000000000000000000000000000000000000000000815250905090565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a169190612a3f565b60405180910390a36001905092915050565b610a3133610d9f565b610a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6790612dfb565b60405180910390fd5b600060095403610a7f57600080fd5b8060098190555050565b610a9233610d9f565b610ad1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac890612dfb565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600254905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d0b57610c8a826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117919092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610d168484846117f5565b90509392505050565b610d2833610d9f565b610d67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5e90612dfb565b60405180910390fd5b610d906103e8610d8283600254611ec790919063ffffffff16565b611f4190919063ffffffff16565b600d8190555050565b600a5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b601281565b610e0f33610d9f565b610e4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4590612dfb565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610eb233610d9f565b610ef1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee890612dfb565b60405180910390fd5b6000601160016101000a81548160ff021916908315150217905550565b60095481565b60135481565b6000610f46827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610936565b9050919050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60145481565b610f8233610d9f565b610fc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb890612dfb565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60135461102833611093565b101561103357600080fd5b611060337f000000000000000000000000000000000000000000000000000000000000dead601354611f8b565b506014600081548092919061107490612e4a565b9190505550565b60066020528060005260406000206000915090505481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110e533610d9f565b611124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111b90612dfb565b60405180910390fd5b60001515601560009054906101000a900460ff1615151461117a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117190612ede565b60405180910390fd5b6001601560006101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6111c933610d9f565b611208576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ff90612dfb565b60405180910390fd5b6000600a540361121757600080fd5b80600a8190555050565b60606040518060400160405280600681526020017f414c504143410000000000000000000000000000000000000000000000000000815250905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006112913384846117f5565b905092915050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60105481565b601560009054906101000a900460ff1681565b61131133610d9f565b611350576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134790612dfb565b60405180910390fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061139930611093565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016113df96959493929190612f39565b60606040518083038185885af11580156113fd573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114229190612faf565b505050436010819055506001601160006101000a81548160ff021916908315150217905550565b61145233610d9f565b611491576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148890612dfb565b60405180910390fd5b6012600a61149f9190613135565b816114aa9190613180565b60138190555050565b600d5481565b6114c233610d9f565b611501576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f890612dfb565b60405180910390fd5b6000828290501161151157600080fd5b60005b8282905081101561156457611551838383818110611535576115346131c2565b5b905060200201602081019061154a9190612a03565b6001610e06565b808061155c90612e4a565b915050611514565b505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115f933610d9f565b611638576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162f90612dfb565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516116a79190613212565b60405180910390a150565b6116bb33610d9f565b6116fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f190612dfb565b60405180910390fd5b6000479050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611767573d6000803e3d6000fd5b5050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008383111582906117d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d091906128a0565b60405180910390fd5b50600083856117e8919061322d565b9050809150509392505050565b6000601160009054906101000a900460ff166118ab5760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061189057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b61189957600080fd5b6118a4848484611f8b565b9050611ec0565b601560009054906101000a900460ff16156119a457600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119645750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6119a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199a906132ad565b60405180910390fd5b5b601160019054906101000a900460ff16156119ff576012548211156119fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f590613319565b60405180910390fd5b5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611aaa5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b005750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c0f5742600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611b5057600080fd5b603c42611b5d9190613339565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001601054611baf9190613339565b4311611c0e576001600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b601560019054906101000a900460ff1615611c3657611c2f848484611f8b565b9050611ec0565b6000611c4130611093565b90506000600d5482101590506000818015611ca95750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b8015611cbd57506000611cbb30611093565b115b90508015611cce57611ccd61215e565b5b611d57856040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117919092919063ffffffff16565b600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611da68888612236565b611db05785611dbb565b611dba8887612393565b5b9050611e0f81600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255d90919063ffffffff16565b600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611eaf9190612a3f565b60405180910390a360019450505050505b9392505050565b6000808303611ed95760009050611f3b565b60008284611ee79190613180565b9050828482611ef6919061339c565b14611f36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2d9061343f565b60405180910390fd5b809150505b92915050565b6000611f8383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125bb565b905092915050565b6000612016826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117919092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120ab82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255d90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161214b9190612a3f565b60405180910390a3600190509392505050565b6001601560016101000a81548160ff021916908315150217905550600061218430611093565b90506000600d54821061219b57600d54905061219f565b8190505b6121a88161261e565b6000479050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612215573d6000803e3d6000fd5b505050506000601560016101000a81548160ff021916908315150217905550565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122d95750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15801561238b5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061238a5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b905092915050565b600080600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461241b57612414600b54612406600a5486611ec790919063ffffffff16565b611f4190919063ffffffff16565b9050612447565b612444600b5461243660095486611ec790919063ffffffff16565b611f4190919063ffffffff16565b90505b61249981600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255d90919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125399190612a3f565b60405180910390a361255481846127c690919063ffffffff16565b91505092915050565b600080828461256c9190613339565b9050838110156125b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a8906134ab565b60405180910390fd5b8091505092915050565b60008083118290612602576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f991906128a0565b60405180910390fd5b5060008385612611919061339c565b9050809150509392505050565b6000600267ffffffffffffffff81111561263b5761263a6134cb565b5b6040519080825280602002602001820160405280156126695781602001602082028036833780820191505090505b5090503081600081518110612681576126806131c2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106126f2576126f16131c2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016127909594939291906135b8565b600060405180830381600087803b1580156127aa57600080fd5b505af11580156127be573d6000803e3d6000fd5b505050505050565b600061280883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611791565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561284a57808201518184015260208101905061282f565b60008484015250505050565b6000601f19601f8301169050919050565b600061287282612810565b61287c818561281b565b935061288c81856020860161282c565b61289581612856565b840191505092915050565b600060208201905081810360008301526128ba8184612867565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006128f7826128cc565b9050919050565b612907816128ec565b811461291257600080fd5b50565b600081359050612924816128fe565b92915050565b6000819050919050565b61293d8161292a565b811461294857600080fd5b50565b60008135905061295a81612934565b92915050565b60008060408385031215612977576129766128c2565b5b600061298585828601612915565b92505060206129968582860161294b565b9150509250929050565b60008115159050919050565b6129b5816129a0565b82525050565b60006020820190506129d060008301846129ac565b92915050565b6000602082840312156129ec576129eb6128c2565b5b60006129fa8482850161294b565b91505092915050565b600060208284031215612a1957612a186128c2565b5b6000612a2784828501612915565b91505092915050565b612a398161292a565b82525050565b6000602082019050612a546000830184612a30565b92915050565b600080600060608486031215612a7357612a726128c2565b5b6000612a8186828701612915565b9350506020612a9286828701612915565b9250506040612aa38682870161294b565b9150509250925092565b600060ff82169050919050565b612ac381612aad565b82525050565b6000602082019050612ade6000830184612aba565b92915050565b612aed816129a0565b8114612af857600080fd5b50565b600081359050612b0a81612ae4565b92915050565b60008060408385031215612b2757612b266128c2565b5b6000612b3585828601612915565b9250506020612b4685828601612afb565b9150509250929050565b6000612b5b826128cc565b9050919050565b612b6b81612b50565b82525050565b6000602082019050612b866000830184612b62565b92915050565b6000819050919050565b612b9f81612b8c565b82525050565b6000602082019050612bba6000830184612b96565b92915050565b612bc9816128ec565b82525050565b6000602082019050612be46000830184612bc0565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612c0f57612c0e612bea565b5b8235905067ffffffffffffffff811115612c2c57612c2b612bef565b5b602083019150836020820283011115612c4857612c47612bf4565b5b9250929050565b60008060208385031215612c6657612c656128c2565b5b600083013567ffffffffffffffff811115612c8457612c836128c7565b5b612c9085828601612bf9565b92509250509250929050565b60008060408385031215612cb357612cb26128c2565b5b6000612cc185828601612915565b9250506020612cd285828601612915565b9150509250929050565b612ce581612b50565b8114612cf057600080fd5b50565b600081359050612d0281612cdc565b92915050565b600060208284031215612d1e57612d1d6128c2565b5b6000612d2c84828501612cf3565b91505092915050565b6000819050919050565b6000612d5a612d55612d50846128cc565b612d35565b6128cc565b9050919050565b6000612d6c82612d3f565b9050919050565b6000612d7e82612d61565b9050919050565b612d8e81612d73565b82525050565b6000602082019050612da96000830184612d85565b92915050565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000612de560068361281b565b9150612df082612daf565b602082019050919050565b60006020820190508181036000830152612e1481612dd8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612e558261292a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e8757612e86612e1b565b5b600182019050919050565b7f63616e206f6e6c792062652063616c6c6564206f6e6365000000000000000000600082015250565b6000612ec860178361281b565b9150612ed382612e92565b602082019050919050565b60006020820190508181036000830152612ef781612ebb565b9050919050565b6000819050919050565b6000612f23612f1e612f1984612efe565b612d35565b61292a565b9050919050565b612f3381612f08565b82525050565b600060c082019050612f4e6000830189612bc0565b612f5b6020830188612a30565b612f686040830187612f2a565b612f756060830186612f2a565b612f826080830185612bc0565b612f8f60a0830184612a30565b979650505050505050565b600081519050612fa981612934565b92915050565b600080600060608486031215612fc857612fc76128c2565b5b6000612fd686828701612f9a565b9350506020612fe786828701612f9a565b9250506040612ff886828701612f9a565b9150509250925092565b60008160011c9050919050565b6000808291508390505b60018511156130595780860481111561303557613034612e1b565b5b60018516156130445780820291505b808102905061305285613002565b9450613019565b94509492505050565b600082613072576001905061312e565b81613080576000905061312e565b816001811461309657600281146130a0576130cf565b600191505061312e565b60ff8411156130b2576130b1612e1b565b5b8360020a9150848211156130c9576130c8612e1b565b5b5061312e565b5060208310610133831016604e8410600b84101617156131045782820a9050838111156130ff576130fe612e1b565b5b61312e565b613111848484600161300f565b9250905081840481111561312857613127612e1b565b5b81810290505b9392505050565b60006131408261292a565b915061314b83612aad565b92506131787fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613062565b905092915050565b600061318b8261292a565b91506131968361292a565b92508282026131a48161292a565b915082820484148315176131bb576131ba612e1b565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006131fc82612d61565b9050919050565b61320c816131f1565b82525050565b60006020820190506132276000830184613203565b92915050565b60006132388261292a565b91506132438361292a565b925082820390508181111561325b5761325a612e1b565b5b92915050565b7f426f742100000000000000000000000000000000000000000000000000000000600082015250565b600061329760048361281b565b91506132a282613261565b602082019050919050565b600060208201905081810360008301526132c68161328a565b9050919050565b7f546f6f206d756368207369720000000000000000000000000000000000000000600082015250565b6000613303600c8361281b565b915061330e826132cd565b602082019050919050565b60006020820190508181036000830152613332816132f6565b9050919050565b60006133448261292a565b915061334f8361292a565b925082820190508082111561336757613366612e1b565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006133a78261292a565b91506133b28361292a565b9250826133c2576133c161336d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061342960218361281b565b9150613434826133cd565b604082019050919050565b600060208201905081810360008301526134588161341c565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613495601b8361281b565b91506134a08261345f565b602082019050919050565b600060208201905081810360008301526134c481613488565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61352f816128ec565b82525050565b60006135418383613526565b60208301905092915050565b6000602082019050919050565b6000613565826134fa565b61356f8185613505565b935061357a83613516565b8060005b838110156135ab5781516135928882613535565b975061359d8361354d565b92505060018101905061357e565b5085935050505092915050565b600060a0820190506135cd6000830188612a30565b6135da6020830187612f2a565b81810360408301526135ec818661355a565b90506135fb6060830185612bc0565b6136086080830184612a30565b969550505050505056fea26469706673582212202a08b74a1168eee33b9a6d6bd7d4d168c6c51ae9310efdc2cd1fca6cdacd9baa64736f6c63430008110033

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

00000000000000000000000090df8f318fb99b516ccfa98b32d22e8f85aa0193

-----Decoded View---------------
Arg [0] : _owner (address): 0x90dF8f318FB99b516cCFA98b32D22E8F85aA0193

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000090df8f318fb99b516ccfa98b32d22e8f85aa0193


Deployed Bytecode Sourcemap

4807:10010:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7391:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7813:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12959:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13294:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7121:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8331:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14189:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5576:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2909:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7215:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5007:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13722:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12871:80;;;;;;;;;;;;;:::i;:::-;;5543:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6046:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8037:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5655:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6108:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13418:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14520:160;;;;;;;;;;;;;:::i;:::-;;5307:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7561:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13545:165;;;;;;;;;;;;;:::i;:::-;;7477:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13124:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7301:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5855:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8167:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13837:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5883:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6149:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12450:409;;;;;;;;;;;;;:::i;:::-;;14688:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5749:66;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13947:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7672:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3137:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14343:169;;;;;;;;;;;;;:::i;:::-;;5824:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7391:80;7439:13;7463:5;;;;;;;;;;;;;;;;;7456:12;;7391:80;:::o;7813:216::-;7888:4;7940:6;7905:11;:23;7917:10;7905:23;;;;;;;;;;;;;;;:32;7929:7;7905:32;;;;;;;;;;;;;;;:41;;;;7983:7;7962:37;;7971:10;7962:37;;;7992:6;7962:37;;;;;;:::i;:::-;;;;;;;;8017:4;8010:11;;7813:216;;;;:::o;12959:156::-;2808:19;2816:10;2808:7;:19::i;:::-;2800:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13041:1:::1;13031:6;;:11:::0;13023:20:::1;;;::::0;::::1;;13103:4;13094:6;:13;;;;12959:156:::0;:::o;13294:115::-;2808:19;2816:10;2808:7;:19::i;:::-;2800:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13389:11:::1;13368:10;;:33;;;;;;;;;;;;;;;;;;13294:115:::0;:::o;7121:88::-;7176:7;7194:12;;7187:19;;7121:88;:::o;8331:370::-;8431:4;8486:17;8451:11;:19;8463:6;8451:19;;;;;;;;;;;;;;;:31;8471:10;8451:31;;;;;;;;;;;;;;;;:52;8448:186;;8553:69;8589:6;8553:69;;;;;;;;;;;;;;;;;:11;:19;8565:6;8553:19;;;;;;;;;;;;;;;:31;8573:10;8553:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;8519:11;:19;8531:6;8519:19;;;;;;;;;;;;;;;:31;8539:10;8519:31;;;;;;;;;;;;;;;:103;;;;8448:186;8653:40;8667:6;8675:9;8686:6;8653:13;:40::i;:::-;8646:47;;8331:370;;;;;:::o;14189:143::-;2808:19;2816:10;2808:7;:19::i;:::-;2800:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14290:34:::1;14319:4;14290:24;14307:6;14290:12;;:16;;:24;;;;:::i;:::-;:28;;:34;;;;:::i;:::-;14268:19;:56;;;;14189:143:::0;:::o;5576:27::-;;;;:::o;2909:103::-;2964:4;2999:5;;;;;;;;;;;2988:16;;:7;:16;;;2981:23;;2909:103;;;:::o;7215:80::-;7267:5;5041:2;7276:16;;7215:80;:::o;5007:36::-;5041:2;5007:36;:::o;13722:107::-;2808:19;2816:10;2808:7;:19::i;:::-;2800:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13815:6:::1;13797:5;:15;13803:8;13797:15;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;13722:107:::0;;:::o;12871:80::-;2808:19;2816:10;2808:7;:19::i;:::-;2800:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12938:5:::1;12927:8;;:16;;;;;;;;;;;;;;;;;;12871:80::o:0;5543:26::-;;;;:::o;6046:55::-;;;;:::o;8037:122::-;8092:4;8116:35;8124:7;8133:17;8116:7;:35::i;:::-;8109:42;;8037:122;;;:::o;5655:87::-;;;;;;;;;;;;;:::o;6108:26::-;;;;:::o;13418:119::-;2808:19;2816:10;2808:7;:19::i;:::-;2800:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13523:6:::1;13501:11;:19;13513:6;13501:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;13418:119:::0;;:::o;14520:160::-;14588:10;;14565:21;14575:10;14565:9;:21::i;:::-;:33;;14557:42;;;;;;14610;14625:10;14636:4;14641:10;;14610:14;:42::i;:::-;;14663:7;;:9;;;;;;;;;:::i;:::-;;;;;;14520:160::o;5307:39::-;;;;;;;;;;;;;;;;;:::o;7561:105::-;7627:7;7645:9;:18;7655:7;7645:18;;;;;;;;;;;;;;;;7638:25;;7561:105;;;:::o;13545:165::-;2808:19;2816:10;2808:7;:19::i;:::-;2800:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13635:5:::1;13615:25;;:16;;;;;;;;;;;:25;;;13606:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;13698:4;13679:16;;:23;;;;;;;;;;;;;;;;;;13545:165::o:0;7477:78::-;7529:7;7547:5;;;;;;;;;;;7540:12;;7477:78;:::o;13124:159::-;2808:19;2816:10;2808:7;:19::i;:::-;2800:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13208:1:::1;13197:7;;:12:::0;13189:21:::1;;;::::0;::::1;;13271:4;13261:7;:14;;;;13124:159:::0;:::o;7301:84::-;7351:13;7375:7;;;;;;;;;;;;;;;;;7368:14;;7301:84;:::o;5855:19::-;;;;;;;;;;;;;:::o;8167:156::-;8247:4;8271:44;8285:10;8297:9;8308:6;8271:13;:44::i;:::-;8264:51;;8167:156;;;;:::o;13837:102::-;13893:4;13917:5;:14;13923:7;13917:14;;;;;;;;;;;;;;;;;;;;;;;;;13910:21;;13837:102;;;:::o;5883:25::-;;;;:::o;6149:36::-;;;;;;;;;;;;;:::o;12450:409::-;2808:19;2816:10;2808:7;:19::i;:::-;2800:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12511:6:::1;;;;;;;;;;;:22;;;12541:21;12586:4;12606:24;12624:4;12606:9;:24::i;:::-;12645:1;12688::::0;12731:5:::1;::::0;::::1;;;;;;;;12751:15;12511:266;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12810:12;12797:10;:25;;;;12847:4;12833:11;;:18;;;;;;;;;;;;;;;;;;12450:409::o:0;14688:122::-;2808:19;2816:10;2808:7;:19::i;:::-;2800:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;5041:2:::1;14786;:15;;;;:::i;:::-;14773:9;:29;;;;:::i;:::-;14760:10;:42;;;;14688:122:::0;:::o;5749:66::-;;;;:::o;13947:234::-;2808:19;2816:10;2808:7;:19::i;:::-;2800:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14050:1:::1;14036:4;;:11;;:15;14027:25;;;::::0;::::1;;14063:6;14083:91;14094:4;;:11;;14090:1;:15;14083:91;;;14122:22;14129:4;;14134:1;14129:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;14139:4;14122:6;:22::i;:::-;14159:3;;;;;:::i;:::-;;;;14083:91;;;14016:165;13947:234:::0;;:::o;7672:133::-;7756:7;7774:11;:19;7786:6;7774:19;;;;;;;;;;;;;;;:28;7794:7;7774:28;;;;;;;;;;;;;;;;7767:35;;7672:133;;;;:::o;3137:136::-;2808:19;2816:10;2808:7;:19::i;:::-;2800:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3221:3:::1;3213:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;3240:25;3261:3;3240:25;;;;;;:::i;:::-;;;;;;;;3137:136:::0;:::o;14343:169::-;2808:19;2816:10;2808:7;:19::i;:::-;2800:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14395:26:::1;14424:21;14395:50;;14464:10;;;;;;;;;;;14456:28;;:48;14485:18;14456:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;14384:128;14343:169::o:0;5824:24::-;;;;;;;;;;;;;:::o;571:192::-;657:7;690:1;685;:6;;693:12;677:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;717:9;733:1;729;:5;;;;:::i;:::-;717:17;;754:1;747:8;;;571:192;;;;;:::o;8709:1600::-;8801:4;8823:11;;;;;;;;;;;8818:162;;8870:5;;;;;;;;;;8860:15;;:6;:15;;;:44;;;;8899:4;8880:24;;:6;:24;;;8860:44;8851:54;;;;;;8927:41;8942:6;8950:9;8961:6;8927:14;:41::i;:::-;8920:48;;;;8818:162;9004:16;;;;;;;;;;;9000:102;;;9047:5;:13;9053:6;9047:13;;;;;;;;;;;;;;;;;;;;;;;;;9046:14;:35;;;;;9065:5;:16;9071:9;9065:16;;;;;;;;;;;;;;;;;;;;;;;;;9064:17;9046:35;9037:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;9000:102;9116:8;;;;;;;;;;;9112:90;;;9159:6;;9151;:14;;9142:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;9112:90;9228:4;;;;;;;;;;;9218:14;;:6;:14;;;:46;;;;;9257:6;;;;;;;;;;;9236:28;;:9;:28;;;;9218:46;:73;;;;;9269:11;:22;9281:9;9269:22;;;;;;;;;;;;;;;;;;;;;;;;;9268:23;9218:73;9214:329;;;9339:15;9317:8;:19;9326:9;9317:19;;;;;;;;;;;;;;;;:37;9308:47;;;;;;9410:10;9392:15;:28;;;;:::i;:::-;9370:8;:19;9379:9;9370:19;;;;;;;;;;;;;;;:50;;;;9469:1;9456:10;;:14;;;;:::i;:::-;9439:12;:32;9435:97;;9512:4;9493:5;:16;9499:9;9493:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;9435:97;9214:329;9573:6;;;;;;;;;;;9570:63;;;9589:41;9604:6;9612:9;9623:6;9589:14;:41::i;:::-;9582:48;;;;9570:63;9649:28;9680:24;9698:4;9680:9;:24::i;:::-;9649:55;;9717:24;9768:19;;9744:20;:43;;9717:70;;9804:19;9827;:38;;;;;9861:4;;;;;;;;;;;9850:15;;:9;:15;;;9827:38;:70;;;;;9896:1;9869:24;9887:4;9869:9;:24::i;:::-;:28;9827:70;9804:94;;9912:14;9909:33;;;9929:10;:8;:10::i;:::-;9909:33;9976:53;9998:6;9976:53;;;;;;;;;;;;;;;;;:9;:17;9986:6;9976:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;9956:9;:17;9966:6;9956:17;;;;;;;;;;;;;;;:73;;;;10042:22;10067:32;10081:6;10089:9;10067:13;:32::i;:::-;:67;;10128:6;10067:67;;;10102:23;10110:6;10118;10102:7;:23::i;:::-;10067:67;10042:92;;10178:40;10203:14;10178:9;:20;10188:9;10178:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;10155:9;:20;10165:9;10155:20;;;;;;;;;;;;;;;:63;;;;10253:9;10236:43;;10245:6;10236:43;;;10264:14;10236:43;;;;;;:::i;:::-;;;;;;;;10297:4;10290:11;;;;;;8709:1600;;;;;;:::o;769:250::-;827:7;856:1;851;:6;847:47;;881:1;874:8;;;;847:47;906:9;922:1;918;:5;;;;:::i;:::-;906:17;;951:1;946;942;:5;;;;:::i;:::-;:10;934:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1010:1;1003:8;;;769:250;;;;;:::o;1025:132::-;1083:7;1110:39;1114:1;1117;1110:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1103:46;;1025:132;;;;:::o;10321:330::-;10414:4;10451:53;10473:6;10451:53;;;;;;;;;;;;;;;;;:9;:17;10461:6;10451:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;10431:9;:17;10441:6;10431:17;;;;;;;;;;;;;;;:73;;;;10538:32;10563:6;10538:9;:20;10548:9;10538:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;10515:9;:20;10525:9;10515:20;;;;;;;;;;;;;;;:55;;;;10603:9;10586:35;;10595:6;10586:35;;;10614:6;10586:35;;;;;;:::i;:::-;;;;;;;;10639:4;10632:11;;10321:330;;;;;:::o;11375:556::-;6249:4;6240:6;;:13;;;;;;;;;;;;;;;;;;11424:28:::1;11455:24;11473:4;11455:9;:24::i;:::-;11424:55;;11492:20;11553:19;;11529:20;:43;11525:195;;11604:19;;11589:34;;11525:195;;;11688:20;11673:35;;11525:195;11746:30;11763:12;11746:16;:30::i;:::-;11789:26;11818:21;11789:50;;11873:10;;;;;;;;;;;11865:28;;:48;11894:18;11865:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;11413:518;;;6267:5:::0;6258:6;;:14;;;;;;;;;;;;;;;;;;11375:556::o;10662:206::-;10743:4;10771:11;:19;10783:6;10771:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;10794:11;:22;10806:9;10794:22;;;;;;;;;;;;;;;;;;;;;;;;;10771:45;10769:48;:90;;;;;10833:4;;;;;;;;;;;10823:14;;:6;:14;;;:35;;;;10854:4;;;;;;;;;;;10841:17;;:9;:17;;;10823:35;10769:90;10760:101;;10662:206;;;;:::o;10876:490::-;10943:7;10963:17;11004:4;;;;;;;;;;;10994:14;;:6;:14;;;10991:189;;11037:39;11061:14;;11037:19;11048:7;;11037:6;:10;;:19;;;;:::i;:::-;:23;;:39;;;;:::i;:::-;11025:51;;10991:189;;;11130:38;11153:14;;11130:18;11141:6;;11130;:10;;:18;;;;:::i;:::-;:22;;:38;;;;:::i;:::-;11118:50;;10991:189;11217:39;11246:9;11217;:24;11235:4;11217:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;11190:9;:24;11208:4;11190:24;;;;;;;;;;;;;;;:66;;;;11297:4;11272:42;;11281:6;11272:42;;;11304:9;11272:42;;;;;;:::i;:::-;;;;;;;;11337:21;11348:9;11337:6;:10;;:21;;;;:::i;:::-;11330:28;;;10876:490;;;;:::o;242:181::-;300:7;320:9;336:1;332;:5;;;;:::i;:::-;320:17;;361:1;356;:6;;348:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;414:1;407:8;;;242:181;;;;:::o;1163:345::-;1249:7;1348:1;1344;:5;1351:12;1336:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1375:9;1391:1;1387;:5;;;;:::i;:::-;1375:17;;1499:1;1492:8;;;1163:345;;;;;:::o;11947:489::-;12075:21;12113:1;12099:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12075:40;;12144:4;12126;12131:1;12126:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;12170:4;;;;;;;;;;;12160;12165:1;12160:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;;;12213:6;;;;;;;;;;;:57;;;12285:11;12311:1;12355:4;12382;12402:15;12213:215;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12002:434;11947:489;:::o;429:136::-;487:7;514:43;518:1;521;514:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;507:50;;429:136;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:::-;3840:6;3889:2;3877:9;3868:7;3864:23;3860:32;3857:119;;;3895:79;;:::i;:::-;3857:119;4015:1;4040:53;4085:7;4076:6;4065:9;4061:22;4040:53;:::i;:::-;4030:63;;3986:117;3781:329;;;;:::o;4116:118::-;4203:24;4221:5;4203:24;:::i;:::-;4198:3;4191:37;4116:118;;:::o;4240:222::-;4333:4;4371:2;4360:9;4356:18;4348:26;;4384:71;4452:1;4441:9;4437:17;4428:6;4384:71;:::i;:::-;4240:222;;;;:::o;4468:619::-;4545:6;4553;4561;4610:2;4598:9;4589:7;4585:23;4581:32;4578:119;;;4616:79;;:::i;:::-;4578:119;4736:1;4761:53;4806:7;4797:6;4786:9;4782:22;4761:53;:::i;:::-;4751:63;;4707:117;4863:2;4889:53;4934:7;4925:6;4914:9;4910:22;4889:53;:::i;:::-;4879:63;;4834:118;4991:2;5017:53;5062:7;5053:6;5042:9;5038:22;5017:53;:::i;:::-;5007:63;;4962:118;4468:619;;;;;:::o;5093:86::-;5128:7;5168:4;5161:5;5157:16;5146:27;;5093:86;;;:::o;5185:112::-;5268:22;5284:5;5268:22;:::i;:::-;5263:3;5256:35;5185:112;;:::o;5303:214::-;5392:4;5430:2;5419:9;5415:18;5407:26;;5443:67;5507:1;5496:9;5492:17;5483:6;5443:67;:::i;:::-;5303:214;;;;:::o;5523:116::-;5593:21;5608:5;5593:21;:::i;:::-;5586:5;5583:32;5573:60;;5629:1;5626;5619:12;5573:60;5523:116;:::o;5645:133::-;5688:5;5726:6;5713:20;5704:29;;5742:30;5766:5;5742:30;:::i;:::-;5645:133;;;;:::o;5784:468::-;5849:6;5857;5906:2;5894:9;5885:7;5881:23;5877:32;5874:119;;;5912:79;;:::i;:::-;5874:119;6032:1;6057:53;6102:7;6093:6;6082:9;6078:22;6057:53;:::i;:::-;6047:63;;6003:117;6159:2;6185:50;6227:7;6218:6;6207:9;6203:22;6185:50;:::i;:::-;6175:60;;6130:115;5784:468;;;;;:::o;6258:104::-;6303:7;6332:24;6350:5;6332:24;:::i;:::-;6321:35;;6258:104;;;:::o;6368:142::-;6471:32;6497:5;6471:32;:::i;:::-;6466:3;6459:45;6368:142;;:::o;6516:254::-;6625:4;6663:2;6652:9;6648:18;6640:26;;6676:87;6760:1;6749:9;6745:17;6736:6;6676:87;:::i;:::-;6516:254;;;;:::o;6776:76::-;6812:7;6841:5;6830:16;;6776:76;;;:::o;6858:115::-;6943:23;6960:5;6943:23;:::i;:::-;6938:3;6931:36;6858:115;;:::o;6979:218::-;7070:4;7108:2;7097:9;7093:18;7085:26;;7121:69;7187:1;7176:9;7172:17;7163:6;7121:69;:::i;:::-;6979:218;;;;:::o;7203:118::-;7290:24;7308:5;7290:24;:::i;:::-;7285:3;7278:37;7203:118;;:::o;7327:222::-;7420:4;7458:2;7447:9;7443:18;7435:26;;7471:71;7539:1;7528:9;7524:17;7515:6;7471:71;:::i;:::-;7327:222;;;;:::o;7555:117::-;7664:1;7661;7654:12;7678:117;7787:1;7784;7777:12;7801:117;7910:1;7907;7900:12;7941:568;8014:8;8024:6;8074:3;8067:4;8059:6;8055:17;8051:27;8041:122;;8082:79;;:::i;:::-;8041:122;8195:6;8182:20;8172:30;;8225:18;8217:6;8214:30;8211:117;;;8247:79;;:::i;:::-;8211:117;8361:4;8353:6;8349:17;8337:29;;8415:3;8407:4;8399:6;8395:17;8385:8;8381:32;8378:41;8375:128;;;8422:79;;:::i;:::-;8375:128;7941:568;;;;;:::o;8515:559::-;8601:6;8609;8658:2;8646:9;8637:7;8633:23;8629:32;8626:119;;;8664:79;;:::i;:::-;8626:119;8812:1;8801:9;8797:17;8784:31;8842:18;8834:6;8831:30;8828:117;;;8864:79;;:::i;:::-;8828:117;8977:80;9049:7;9040:6;9029:9;9025:22;8977:80;:::i;:::-;8959:98;;;;8755:312;8515:559;;;;;:::o;9080:474::-;9148:6;9156;9205:2;9193:9;9184:7;9180:23;9176:32;9173:119;;;9211:79;;:::i;:::-;9173:119;9331:1;9356:53;9401:7;9392:6;9381:9;9377:22;9356:53;:::i;:::-;9346:63;;9302:117;9458:2;9484:53;9529:7;9520:6;9509:9;9505:22;9484:53;:::i;:::-;9474:63;;9429:118;9080:474;;;;;:::o;9560:138::-;9641:32;9667:5;9641:32;:::i;:::-;9634:5;9631:43;9621:71;;9688:1;9685;9678:12;9621:71;9560:138;:::o;9704:155::-;9758:5;9796:6;9783:20;9774:29;;9812:41;9847:5;9812:41;:::i;:::-;9704:155;;;;:::o;9865:345::-;9932:6;9981:2;9969:9;9960:7;9956:23;9952:32;9949:119;;;9987:79;;:::i;:::-;9949:119;10107:1;10132:61;10185:7;10176:6;10165:9;10161:22;10132:61;:::i;:::-;10122:71;;10078:125;9865:345;;;;:::o;10216:60::-;10244:3;10265:5;10258:12;;10216:60;;;:::o;10282:142::-;10332:9;10365:53;10383:34;10392:24;10410:5;10392:24;:::i;:::-;10383:34;:::i;:::-;10365:53;:::i;:::-;10352:66;;10282:142;;;:::o;10430:126::-;10480:9;10513:37;10544:5;10513:37;:::i;:::-;10500:50;;10430:126;;;:::o;10562:144::-;10630:9;10663:37;10694:5;10663:37;:::i;:::-;10650:50;;10562:144;;;:::o;10712:167::-;10817:55;10866:5;10817:55;:::i;:::-;10812:3;10805:68;10712:167;;:::o;10885:258::-;10996:4;11034:2;11023:9;11019:18;11011:26;;11047:89;11133:1;11122:9;11118:17;11109:6;11047:89;:::i;:::-;10885:258;;;;:::o;11149:156::-;11289:8;11285:1;11277:6;11273:14;11266:32;11149:156;:::o;11311:365::-;11453:3;11474:66;11538:1;11533:3;11474:66;:::i;:::-;11467:73;;11549:93;11638:3;11549:93;:::i;:::-;11667:2;11662:3;11658:12;11651:19;;11311:365;;;:::o;11682:419::-;11848:4;11886:2;11875:9;11871:18;11863:26;;11935:9;11929:4;11925:20;11921:1;11910:9;11906:17;11899:47;11963:131;12089:4;11963:131;:::i;:::-;11955:139;;11682:419;;;:::o;12107:180::-;12155:77;12152:1;12145:88;12252:4;12249:1;12242:15;12276:4;12273:1;12266:15;12293:233;12332:3;12355:24;12373:5;12355:24;:::i;:::-;12346:33;;12401:66;12394:5;12391:77;12388:103;;12471:18;;:::i;:::-;12388:103;12518:1;12511:5;12507:13;12500:20;;12293:233;;;:::o;12532:173::-;12672:25;12668:1;12660:6;12656:14;12649:49;12532:173;:::o;12711:366::-;12853:3;12874:67;12938:2;12933:3;12874:67;:::i;:::-;12867:74;;12950:93;13039:3;12950:93;:::i;:::-;13068:2;13063:3;13059:12;13052:19;;12711:366;;;:::o;13083:419::-;13249:4;13287:2;13276:9;13272:18;13264:26;;13336:9;13330:4;13326:20;13322:1;13311:9;13307:17;13300:47;13364:131;13490:4;13364:131;:::i;:::-;13356:139;;13083:419;;;:::o;13508:85::-;13553:7;13582:5;13571:16;;13508:85;;;:::o;13599:158::-;13657:9;13690:61;13708:42;13717:32;13743:5;13717:32;:::i;:::-;13708:42;:::i;:::-;13690:61;:::i;:::-;13677:74;;13599:158;;;:::o;13763:147::-;13858:45;13897:5;13858:45;:::i;:::-;13853:3;13846:58;13763:147;;:::o;13916:807::-;14165:4;14203:3;14192:9;14188:19;14180:27;;14217:71;14285:1;14274:9;14270:17;14261:6;14217:71;:::i;:::-;14298:72;14366:2;14355:9;14351:18;14342:6;14298:72;:::i;:::-;14380:80;14456:2;14445:9;14441:18;14432:6;14380:80;:::i;:::-;14470;14546:2;14535:9;14531:18;14522:6;14470:80;:::i;:::-;14560:73;14628:3;14617:9;14613:19;14604:6;14560:73;:::i;:::-;14643;14711:3;14700:9;14696:19;14687:6;14643:73;:::i;:::-;13916:807;;;;;;;;;:::o;14729:143::-;14786:5;14817:6;14811:13;14802:22;;14833:33;14860:5;14833:33;:::i;:::-;14729:143;;;;:::o;14878:663::-;14966:6;14974;14982;15031:2;15019:9;15010:7;15006:23;15002:32;14999:119;;;15037:79;;:::i;:::-;14999:119;15157:1;15182:64;15238:7;15229:6;15218:9;15214:22;15182:64;:::i;:::-;15172:74;;15128:128;15295:2;15321:64;15377:7;15368:6;15357:9;15353:22;15321:64;:::i;:::-;15311:74;;15266:129;15434:2;15460:64;15516:7;15507:6;15496:9;15492:22;15460:64;:::i;:::-;15450:74;;15405:129;14878:663;;;;;:::o;15547:102::-;15589:8;15636:5;15633:1;15629:13;15608:34;;15547:102;;;:::o;15655:848::-;15716:5;15723:4;15747:6;15738:15;;15771:5;15762:14;;15785:712;15806:1;15796:8;15793:15;15785:712;;;15901:4;15896:3;15892:14;15886:4;15883:24;15880:50;;;15910:18;;:::i;:::-;15880:50;15960:1;15950:8;15946:16;15943:451;;;16375:4;16368:5;16364:16;16355:25;;15943:451;16425:4;16419;16415:15;16407:23;;16455:32;16478:8;16455:32;:::i;:::-;16443:44;;15785:712;;;15655:848;;;;;;;:::o;16509:1073::-;16563:5;16754:8;16744:40;;16775:1;16766:10;;16777:5;;16744:40;16803:4;16793:36;;16820:1;16811:10;;16822:5;;16793:36;16889:4;16937:1;16932:27;;;;16973:1;16968:191;;;;16882:277;;16932:27;16950:1;16941:10;;16952:5;;;16968:191;17013:3;17003:8;17000:17;16997:43;;;17020:18;;:::i;:::-;16997:43;17069:8;17066:1;17062:16;17053:25;;17104:3;17097:5;17094:14;17091:40;;;17111:18;;:::i;:::-;17091:40;17144:5;;;16882:277;;17268:2;17258:8;17255:16;17249:3;17243:4;17240:13;17236:36;17218:2;17208:8;17205:16;17200:2;17194:4;17191:12;17187:35;17171:111;17168:246;;;17324:8;17318:4;17314:19;17305:28;;17359:3;17352:5;17349:14;17346:40;;;17366:18;;:::i;:::-;17346:40;17399:5;;17168:246;17439:42;17477:3;17467:8;17461:4;17458:1;17439:42;:::i;:::-;17424:57;;;;17513:4;17508:3;17504:14;17497:5;17494:25;17491:51;;;17522:18;;:::i;:::-;17491:51;17571:4;17564:5;17560:16;17551:25;;16509:1073;;;;;;:::o;17588:281::-;17646:5;17670:23;17688:4;17670:23;:::i;:::-;17662:31;;17714:25;17730:8;17714:25;:::i;:::-;17702:37;;17758:104;17795:66;17785:8;17779:4;17758:104;:::i;:::-;17749:113;;17588:281;;;;:::o;17875:410::-;17915:7;17938:20;17956:1;17938:20;:::i;:::-;17933:25;;17972:20;17990:1;17972:20;:::i;:::-;17967:25;;18027:1;18024;18020:9;18049:30;18067:11;18049:30;:::i;:::-;18038:41;;18228:1;18219:7;18215:15;18212:1;18209:22;18189:1;18182:9;18162:83;18139:139;;18258:18;;:::i;:::-;18139:139;17923:362;17875:410;;;;:::o;18291:180::-;18339:77;18336:1;18329:88;18436:4;18433:1;18426:15;18460:4;18457:1;18450:15;18477:134;18535:9;18568:37;18599:5;18568:37;:::i;:::-;18555:50;;18477:134;;;:::o;18617:147::-;18712:45;18751:5;18712:45;:::i;:::-;18707:3;18700:58;18617:147;;:::o;18770:238::-;18871:4;18909:2;18898:9;18894:18;18886:26;;18922:79;18998:1;18987:9;18983:17;18974:6;18922:79;:::i;:::-;18770:238;;;;:::o;19014:194::-;19054:4;19074:20;19092:1;19074:20;:::i;:::-;19069:25;;19108:20;19126:1;19108:20;:::i;:::-;19103:25;;19152:1;19149;19145:9;19137:17;;19176:1;19170:4;19167:11;19164:37;;;19181:18;;:::i;:::-;19164:37;19014:194;;;;:::o;19214:154::-;19354:6;19350:1;19342:6;19338:14;19331:30;19214:154;:::o;19374:365::-;19516:3;19537:66;19601:1;19596:3;19537:66;:::i;:::-;19530:73;;19612:93;19701:3;19612:93;:::i;:::-;19730:2;19725:3;19721:12;19714:19;;19374:365;;;:::o;19745:419::-;19911:4;19949:2;19938:9;19934:18;19926:26;;19998:9;19992:4;19988:20;19984:1;19973:9;19969:17;19962:47;20026:131;20152:4;20026:131;:::i;:::-;20018:139;;19745:419;;;:::o;20170:162::-;20310:14;20306:1;20298:6;20294:14;20287:38;20170:162;:::o;20338:366::-;20480:3;20501:67;20565:2;20560:3;20501:67;:::i;:::-;20494:74;;20577:93;20666:3;20577:93;:::i;:::-;20695:2;20690:3;20686:12;20679:19;;20338:366;;;:::o;20710:419::-;20876:4;20914:2;20903:9;20899:18;20891:26;;20963:9;20957:4;20953:20;20949:1;20938:9;20934:17;20927:47;20991:131;21117:4;20991:131;:::i;:::-;20983:139;;20710:419;;;:::o;21135:191::-;21175:3;21194:20;21212:1;21194:20;:::i;:::-;21189:25;;21228:20;21246:1;21228:20;:::i;:::-;21223:25;;21271:1;21268;21264:9;21257:16;;21292:3;21289:1;21286:10;21283:36;;;21299:18;;:::i;:::-;21283:36;21135:191;;;;:::o;21332:180::-;21380:77;21377:1;21370:88;21477:4;21474:1;21467:15;21501:4;21498:1;21491:15;21518:185;21558:1;21575:20;21593:1;21575:20;:::i;:::-;21570:25;;21609:20;21627:1;21609:20;:::i;:::-;21604:25;;21648:1;21638:35;;21653:18;;:::i;:::-;21638:35;21695:1;21692;21688:9;21683:14;;21518:185;;;;:::o;21709:220::-;21849:34;21845:1;21837:6;21833:14;21826:58;21918:3;21913:2;21905:6;21901:15;21894:28;21709:220;:::o;21935:366::-;22077:3;22098:67;22162:2;22157:3;22098:67;:::i;:::-;22091:74;;22174:93;22263:3;22174:93;:::i;:::-;22292:2;22287:3;22283:12;22276:19;;21935:366;;;:::o;22307:419::-;22473:4;22511:2;22500:9;22496:18;22488:26;;22560:9;22554:4;22550:20;22546:1;22535:9;22531:17;22524:47;22588:131;22714:4;22588:131;:::i;:::-;22580:139;;22307:419;;;:::o;22732:177::-;22872:29;22868:1;22860:6;22856:14;22849:53;22732:177;:::o;22915:366::-;23057:3;23078:67;23142:2;23137:3;23078:67;:::i;:::-;23071:74;;23154:93;23243:3;23154:93;:::i;:::-;23272:2;23267:3;23263:12;23256:19;;22915:366;;;:::o;23287:419::-;23453:4;23491:2;23480:9;23476:18;23468:26;;23540:9;23534:4;23530:20;23526:1;23515:9;23511:17;23504:47;23568:131;23694:4;23568:131;:::i;:::-;23560:139;;23287:419;;;:::o;23712:180::-;23760:77;23757:1;23750:88;23857:4;23854:1;23847:15;23881:4;23878:1;23871:15;23898:114;23965:6;23999:5;23993:12;23983:22;;23898:114;;;:::o;24018:184::-;24117:11;24151:6;24146:3;24139:19;24191:4;24186:3;24182:14;24167:29;;24018:184;;;;:::o;24208:132::-;24275:4;24298:3;24290:11;;24328:4;24323:3;24319:14;24311:22;;24208:132;;;:::o;24346:108::-;24423:24;24441:5;24423:24;:::i;:::-;24418:3;24411:37;24346:108;;:::o;24460:179::-;24529:10;24550:46;24592:3;24584:6;24550:46;:::i;:::-;24628:4;24623:3;24619:14;24605:28;;24460:179;;;;:::o;24645:113::-;24715:4;24747;24742:3;24738:14;24730:22;;24645:113;;;:::o;24794:732::-;24913:3;24942:54;24990:5;24942:54;:::i;:::-;25012:86;25091:6;25086:3;25012:86;:::i;:::-;25005:93;;25122:56;25172:5;25122:56;:::i;:::-;25201:7;25232:1;25217:284;25242:6;25239:1;25236:13;25217:284;;;25318:6;25312:13;25345:63;25404:3;25389:13;25345:63;:::i;:::-;25338:70;;25431:60;25484:6;25431:60;:::i;:::-;25421:70;;25277:224;25264:1;25261;25257:9;25252:14;;25217:284;;;25221:14;25517:3;25510:10;;24918:608;;;24794:732;;;;:::o;25532:831::-;25795:4;25833:3;25822:9;25818:19;25810:27;;25847:71;25915:1;25904:9;25900:17;25891:6;25847:71;:::i;:::-;25928:80;26004:2;25993:9;25989:18;25980:6;25928:80;:::i;:::-;26055:9;26049:4;26045:20;26040:2;26029:9;26025:18;26018:48;26083:108;26186:4;26177:6;26083:108;:::i;:::-;26075:116;;26201:72;26269:2;26258:9;26254:18;26245:6;26201:72;:::i;:::-;26283:73;26351:3;26340:9;26336:19;26327:6;26283:73;:::i;:::-;25532:831;;;;;;;;:::o

Swarm Source

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