ETH Price: $3,269.14 (-2.58%)

Token

The Balkan Dwarf (Kekec)
 

Overview

Max Total Supply

40,000,000,000 Kekec

Holders

4,899 ( -0.041%)

Market

Price

$0.00 @ 0.000000 ETH (-3.73%)

Onchain Market Cap

$13,644,222.87

Circulating Supply Market Cap

$13,322,903.14

Other Info

Token Contract (WITH 18 Decimals)

Balance
0 Kekec

Value
$0.00
0x37a8f295612602f2774d331e562be9e61b83a327
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

The KEKEC is a meme token with zero tax on all buys and sells.

Market

Volume (24H):$565,950.41
Market Capitalization:$13,322,903.14
Circulating Supply:39,058,005,061.00 Kekec
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Kekec

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-27
*/

// SPDX-License-Identifier: UNLISCENCED

// †HÈ †ÌÇKÈR ̧ $KÈKÈÇ

// †HÈ ßÄLKÄñ £LÚ†È Ì§ §†ÚÇK Ìñ M¥ HÈÄÐ

// GȆ †HÈ £LÚ†È ÖÚ† M¥ HÈÄÐ

// †HÈ ßÄLKWÄñ ÐWÄR£ ñÈVÈR §†Öþ§ þLÄ¥ÌñG †HÈ £LÚ†È

// MÂY †HÊ RÂKÏJ BÊ WφH YÔÛ

pragma solidity 0.8.20;

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

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Metadata is IERC20 {

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}


contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping (address => uint256) internal _balances;

    mapping (address => mapping (address => uint256)) internal _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor (string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }


    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

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

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
}

library Address{
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

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

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
   
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline) external;
}

contract Kekec is ERC20, Ownable{
    using Address for address payable;
    
    IRouter public router;
    address public pair;
    
    bool private swapping;
    bool public swapEnabled;
    bool public tradingEnabled;

    uint256 public genesis_block;
    uint256 public deadblocks = 0;
    
    uint256 public swapThreshold;
    uint256 public maxTxAmount;
    uint256 public maxWalletAmount;
    
    address public marketingWallet = 0x2122de2e4d94aF7198A0e289e2419C2Ab6668987;

    uint256 public buyTax = 15;
    uint256 public sellTax = 30;
    
    mapping (address => bool) public excludedFromFees;
    mapping (address => bool) private isBot;
    
    modifier inSwap() {
        if (!swapping) {
            swapping = true;
            _;
            swapping = false;
        }
    }
        
    constructor() ERC20("The Balkan Dwarf", "Kekec") {
        _mint(msg.sender, 40e9 * 10 ** decimals());

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory())
            .createPair(address(this), _router.WETH());

        router = _router;
        pair = _pair;

        excludedFromFees[address(this)] = true;
        excludedFromFees[marketingWallet] = true;
        excludedFromFees[msg.sender] = true;
        excludedFromFees[address(0xdead)] = true;

        swapThreshold = totalSupply() * 1 / 10000;
        maxTxAmount = totalSupply() * 1 / 100; 
        maxWalletAmount = totalSupply() * 2 / 100; 
    }
    
    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!isBot[sender] && !isBot[recipient], "You can't transfer tokens");
                
        
        if(!excludedFromFees[sender] && !excludedFromFees[recipient] && !swapping){
            require(tradingEnabled, "Trading not active yet");
            if(genesis_block + deadblocks > block.number){
                if(recipient != pair) isBot[recipient] = true;
                if(sender != pair) isBot[sender] = true;
            }
            require(amount <= maxTxAmount, "You are exceeding maxTxAmount");
            if(recipient != pair){
                require(balanceOf(recipient) + amount <= maxWalletAmount, "You are exceeding maxWalletAmount");
            }
        }

        uint256 fee;
        
  
        if (swapping || excludedFromFees[sender] || excludedFromFees[recipient]) fee = 0;
        
 
        else{
            if(recipient == pair) fee = amount * sellTax / 100;
            else fee = amount * buyTax / 100;
        }
        

        if (swapEnabled && !swapping && sender != pair && fee > 0) swapForFees();

        super._transfer(sender, recipient, amount - fee);
        if(fee > 0) super._transfer(sender, address(this) ,fee);

    }

    function swapForFees() private inSwap {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= swapThreshold) {
            uint256 toSwap = contractBalance; 

            swapTokensForETH(toSwap);

            uint256 marketingAmt = address(this).balance;
            if(marketingAmt > 0){
                payable(marketingWallet).sendValue(marketingAmt);
            }
        }
    }


    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        _approve(address(this), address(router), tokenAmount);

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);

    }

    function setSwapEnabled(bool state) external onlyOwner {
        swapEnabled = state;
    }

    function setSwapThreshold(uint256 new_amount) external onlyOwner {
        swapThreshold = new_amount;
    }

    function enableTrading(uint256 numOfDeadBlocks) external onlyOwner{
        require(!tradingEnabled, "Trading already active");
        tradingEnabled = true;
        swapEnabled = true;
        genesis_block = block.number;
        deadblocks = numOfDeadBlocks;
    }

    function setBuyTaxes(uint256 _marketing) external onlyOwner{
        buyTax = _marketing;
    }

    function setSellTaxes(uint256 _marketing) external onlyOwner{
        sellTax = _marketing;
    }
    
    function updateMarketingWallet(address newWallet) external onlyOwner{
        marketingWallet = newWallet;
    }
  
    function updateRouterAndPair(IRouter _router, address _pair) external onlyOwner{
        router = _router;
        pair = _pair;
    }
    
    function addBots(address[] memory isBot_) public onlyOwner {
        for (uint i = 0; i < isBot_.length; i++) {
            isBot[isBot_[i]] = true;
        }
    }
    function updateExcludedFromFees(address _address, bool state) external onlyOwner {
        excludedFromFees[_address] = state;
    }
    
    function updateMaxTxAmount(uint256 _percen) external onlyOwner{
        maxTxAmount = totalSupply() * _percen / 100;
    }
    
    function updateMaxWalletAmount(uint256 _percen) external onlyOwner{
        maxWalletAmount = totalSupply() * _percen / 100;
    }

    function removeLimit() external onlyOwner {
        maxTxAmount = totalSupply();
        maxWalletAmount = totalSupply();
    }

    function rescueERC20(address tokenAddress, uint256 amount) external onlyOwner{
        IERC20(tokenAddress).transfer(owner(), amount);
    }

    function rescueETH(uint256 weiAmount) external onlyOwner{
        payable(owner()).sendValue(weiAmount);
    }

    function manualSwap(uint256 amount, uint256 marketingPercentage) external onlyOwner{
        uint256 initBalance = address(this).balance;
        swapTokensForETH(amount);
        uint256 newBalance = address(this).balance - initBalance;
        if(marketingPercentage > 0) payable(marketingWallet).sendValue(newBalance * marketingPercentage / ( marketingPercentage));
    }

    // fallbacks
    receive() external payable {}
    
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"isBot_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadblocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numOfDeadBlocks","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"marketingPercentage","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_percen","type":"uint256"}],"name":"updateMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_percen","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IRouter","name":"_router","type":"address"},{"internalType":"address","name":"_pair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f600955732122de2e4d94af7198a0e289e2419c2ab6668987600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f600e55601e600f5534801562000072575f80fd5b506040518060400160405280601081526020017f5468652042616c6b616e204477617266000000000000000000000000000000008152506040518060400160405280600581526020017f4b656b65630000000000000000000000000000000000000000000000000000008152508160039081620000f0919062000a16565b50806004908162000102919062000a16565b50505062000125620001196200057560201b60201c565b6200057c60201b60201c565b62000166336200013a6200063f60201b60201c565b600a62000148919062000c83565b6409502f90006200015a919062000cd3565b6200064760201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90505f8173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001ef919062000d82565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000255573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200027b919062000d82565b6040518363ffffffff1660e01b81526004016200029a92919062000dc3565b6020604051808303815f875af1158015620002b7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002dd919062000d82565b90508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160105f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506127106001620004eb620007a460201b60201c565b620004f7919062000cd3565b62000503919062000e1b565b600a81905550606460016200051d620007a460201b60201c565b62000529919062000cd3565b62000535919062000e1b565b600b81905550606460026200054f620007a460201b60201c565b6200055b919062000cd3565b62000567919062000e1b565b600c81905550505062000f36565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6012905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620006b8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006af9062000eb0565b60405180910390fd5b620006cb5f8383620007ad60201b60201c565b8060025f828254620006de919062000ed0565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825462000732919062000ed0565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000798919062000f1b565b60405180910390a35050565b5f600254905090565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200082e57607f821691505b602082108103620008445762000843620007e9565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620008a87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200086b565b620008b486836200086b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620008fe620008f8620008f284620008cc565b620008d5565b620008cc565b9050919050565b5f819050919050565b6200091983620008de565b62000931620009288262000905565b84845462000877565b825550505050565b5f90565b6200094762000939565b620009548184846200090e565b505050565b5b818110156200097b576200096f5f826200093d565b6001810190506200095a565b5050565b601f821115620009ca5762000994816200084a565b6200099f846200085c565b81016020851015620009af578190505b620009c7620009be856200085c565b83018262000959565b50505b505050565b5f82821c905092915050565b5f620009ec5f1984600802620009cf565b1980831691505092915050565b5f62000a068383620009db565b9150826002028217905092915050565b62000a2182620007b2565b67ffffffffffffffff81111562000a3d5762000a3c620007bc565b5b62000a49825462000816565b62000a568282856200097f565b5f60209050601f83116001811462000a8c575f841562000a77578287015190505b62000a838582620009f9565b86555062000af2565b601f19841662000a9c866200084a565b5f5b8281101562000ac55784890151825560018201915060208501945060208101905062000a9e565b8683101562000ae5578489015162000ae1601f891682620009db565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000b845780860481111562000b5c5762000b5b62000afa565b5b600185161562000b6c5780820291505b808102905062000b7c8562000b27565b945062000b3c565b94509492505050565b5f8262000b9e576001905062000c70565b8162000bad575f905062000c70565b816001811462000bc6576002811462000bd15762000c07565b600191505062000c70565b60ff84111562000be65762000be562000afa565b5b8360020a91508482111562000c005762000bff62000afa565b5b5062000c70565b5060208310610133831016604e8410600b841016171562000c415782820a90508381111562000c3b5762000c3a62000afa565b5b62000c70565b62000c50848484600162000b33565b9250905081840481111562000c6a5762000c6962000afa565b5b81810290505b9392505050565b5f60ff82169050919050565b5f62000c8f82620008cc565b915062000c9c8362000c77565b925062000ccb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000b8d565b905092915050565b5f62000cdf82620008cc565b915062000cec83620008cc565b925082820262000cfc81620008cc565b9150828204841483151762000d165762000d1562000afa565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000d4c8262000d21565b9050919050565b62000d5e8162000d40565b811462000d69575f80fd5b50565b5f8151905062000d7c8162000d53565b92915050565b5f6020828403121562000d9a5762000d9962000d1d565b5b5f62000da98482850162000d6c565b91505092915050565b62000dbd8162000d40565b82525050565b5f60408201905062000dd85f83018562000db2565b62000de7602083018462000db2565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000e2782620008cc565b915062000e3483620008cc565b92508262000e475762000e4662000dee565b5b828204905092915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000e98601f8362000e52565b915062000ea58262000e62565b602082019050919050565b5f6020820190508181035f83015262000ec98162000e8a565b9050919050565b5f62000edc82620008cc565b915062000ee983620008cc565b925082820190508082111562000f045762000f0362000afa565b5b92915050565b62000f1581620008cc565b82525050565b5f60208201905062000f305f83018462000f0a565b92915050565b613f3b8062000f445f395ff3fe608060405260043610610254575f3560e01c80638c0b5e2211610138578063aa4bde28116100b5578063dbe66ca011610079578063dbe66ca014610873578063dd62ed3e146108af578063e01af92c146108eb578063e545fd6d14610913578063f2fde38b1461093b578063f887ea40146109635761025b565b8063aa4bde28146107a7578063aacebbe3146107d1578063c18bc195146107f9578063cc1776d314610821578063d34628cc1461084b5761025b565b80639e252f00116100fc5780639e252f00146106b5578063a3ca847d146106dd578063a457c2d714610705578063a8aa1b3114610741578063a9059cbb1461076b5761025b565b80638c0b5e22146105e75780638cd4426d146106115780638da5cb5b1461063957806395d89b41146106635780639d0014b11461068d5761025b565b80634ada218b116101d15780636256d181116101955780636256d181146104f15780636ddd17131461051957806370a0823114610543578063715018a61461057f57806375f0a8741461059557806382aa7c68146105bf5761025b565b80634ada218b146104355780634f7041a51461045f57806350c9a88f1461048957806356faae96146104b357806362256589146104db5761025b565b806323b872dd1161021857806323b872dd14610341578063274a533c1461037d578063313ce567146103a757806339509351146103d157806340b28c2f1461040d5761025b565b80630445b6671461025f57806306fdde03146102895780630940bbc7146102b3578063095ea7b3146102db57806318160ddd146103175761025b565b3661025b57005b5f80fd5b34801561026a575f80fd5b5061027361098d565b6040516102809190612bfd565b60405180910390f35b348015610294575f80fd5b5061029d610993565b6040516102aa9190612ca0565b60405180910390f35b3480156102be575f80fd5b506102d960048036038101906102d49190612cfb565b610a23565b005b3480156102e6575f80fd5b5061030160048036038101906102fc9190612d80565b610aa9565b60405161030e9190612dd8565b60405180910390f35b348015610322575f80fd5b5061032b610ac6565b6040516103389190612bfd565b60405180910390f35b34801561034c575f80fd5b5061036760048036038101906103629190612df1565b610acf565b6040516103749190612dd8565b60405180910390f35b348015610388575f80fd5b50610391610bca565b60405161039e9190612bfd565b60405180910390f35b3480156103b2575f80fd5b506103bb610bd0565b6040516103c89190612e5c565b60405180910390f35b3480156103dc575f80fd5b506103f760048036038101906103f29190612d80565b610bd8565b6040516104049190612dd8565b60405180910390f35b348015610418575f80fd5b50610433600480360381019061042e9190612eb0565b610c7f565b005b348015610440575f80fd5b50610449610d7f565b6040516104569190612dd8565b60405180910390f35b34801561046a575f80fd5b50610473610d92565b6040516104809190612bfd565b60405180910390f35b348015610494575f80fd5b5061049d610d98565b6040516104aa9190612bfd565b60405180910390f35b3480156104be575f80fd5b506104d960048036038101906104d49190612eee565b610d9e565b005b3480156104e6575f80fd5b506104ef610ea5565b005b3480156104fc575f80fd5b5061051760048036038101906105129190612cfb565b610f3f565b005b348015610524575f80fd5b5061052d610fe3565b60405161053a9190612dd8565b60405180910390f35b34801561054e575f80fd5b5061056960048036038101906105649190612f2c565b610ff6565b6040516105769190612bfd565b60405180910390f35b34801561058a575f80fd5b5061059361103b565b005b3480156105a0575f80fd5b506105a96110c2565b6040516105b69190612f66565b60405180910390f35b3480156105ca575f80fd5b506105e560048036038101906105e09190612cfb565b6110e7565b005b3480156105f2575f80fd5b506105fb6111fa565b6040516106089190612bfd565b60405180910390f35b34801561061c575f80fd5b5061063760048036038101906106329190612d80565b611200565b005b348015610644575f80fd5b5061064d611303565b60405161065a9190612f66565b60405180910390f35b34801561066e575f80fd5b5061067761132b565b6040516106849190612ca0565b60405180910390f35b348015610698575f80fd5b506106b360048036038101906106ae9190612cfb565b6113bb565b005b3480156106c0575f80fd5b506106db60048036038101906106d69190612cfb565b611441565b005b3480156106e8575f80fd5b5061070360048036038101906106fe9190612cfb565b6114f0565b005b348015610710575f80fd5b5061072b60048036038101906107269190612d80565b611576565b6040516107389190612dd8565b60405180910390f35b34801561074c575f80fd5b50610755611665565b6040516107629190612f66565b60405180910390f35b348015610776575f80fd5b50610791600480360381019061078c9190612d80565b61168a565b60405161079e9190612dd8565b60405180910390f35b3480156107b2575f80fd5b506107bb6116a7565b6040516107c89190612bfd565b60405180910390f35b3480156107dc575f80fd5b506107f760048036038101906107f29190612f2c565b6116ad565b005b348015610804575f80fd5b5061081f600480360381019061081a9190612cfb565b61176c565b005b34801561082c575f80fd5b50610835611810565b6040516108429190612bfd565b60405180910390f35b348015610856575f80fd5b50610871600480360381019061086c91906130bf565b611816565b005b34801561087e575f80fd5b5061089960048036038101906108949190612f2c565b611923565b6040516108a69190612dd8565b60405180910390f35b3480156108ba575f80fd5b506108d560048036038101906108d09190613106565b611940565b6040516108e29190612bfd565b60405180910390f35b3480156108f6575f80fd5b50610911600480360381019061090c919061316e565b6119c2565b005b34801561091e575f80fd5b5061093960048036038101906109349190613199565b611a5b565b005b348015610946575f80fd5b50610961600480360381019061095c9190612f2c565b611b2f565b005b34801561096e575f80fd5b50610977611c25565b6040516109849190613232565b60405180910390f35b600a5481565b6060600380546109a290613278565b80601f01602080910402602001604051908101604052809291908181526020018280546109ce90613278565b8015610a195780601f106109f057610100808354040283529160200191610a19565b820191905f5260205f20905b8154815290600101906020018083116109fc57829003601f168201915b5050505050905090565b610a2b611c4a565b73ffffffffffffffffffffffffffffffffffffffff16610a49611303565b73ffffffffffffffffffffffffffffffffffffffff1614610a9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a96906132f2565b60405180910390fd5b80600f8190555050565b5f610abc610ab5611c4a565b8484611c51565b6001905092915050565b5f600254905090565b5f610adb848484611e14565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610b22611c4a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610ba1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9890613380565b60405180910390fd5b610bbe85610bad611c4a565b8584610bb991906133cb565b611c51565b60019150509392505050565b60085481565b5f6012905090565b5f610c75610be4611c4a565b848460015f610bf1611c4a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610c7091906133fe565b611c51565b6001905092915050565b610c87611c4a565b73ffffffffffffffffffffffffffffffffffffffff16610ca5611303565b73ffffffffffffffffffffffffffffffffffffffff1614610cfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf2906132f2565b60405180910390fd5b8160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600760169054906101000a900460ff1681565b600e5481565b60095481565b610da6611c4a565b73ffffffffffffffffffffffffffffffffffffffff16610dc4611303565b73ffffffffffffffffffffffffffffffffffffffff1614610e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e11906132f2565b60405180910390fd5b5f479050610e27836124bb565b5f8147610e3491906133cb565b90505f831115610e9f57610e9e838483610e4e9190613431565b610e58919061349f565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166126f190919063ffffffff16565b5b50505050565b610ead611c4a565b73ffffffffffffffffffffffffffffffffffffffff16610ecb611303565b73ffffffffffffffffffffffffffffffffffffffff1614610f21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f18906132f2565b60405180910390fd5b610f29610ac6565b600b81905550610f37610ac6565b600c81905550565b610f47611c4a565b73ffffffffffffffffffffffffffffffffffffffff16610f65611303565b73ffffffffffffffffffffffffffffffffffffffff1614610fbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb2906132f2565b60405180910390fd5b606481610fc6610ac6565b610fd09190613431565b610fda919061349f565b600b8190555050565b600760159054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b611043611c4a565b73ffffffffffffffffffffffffffffffffffffffff16611061611303565b73ffffffffffffffffffffffffffffffffffffffff16146110b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ae906132f2565b60405180910390fd5b6110c05f6127e1565b565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6110ef611c4a565b73ffffffffffffffffffffffffffffffffffffffff1661110d611303565b73ffffffffffffffffffffffffffffffffffffffff1614611163576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115a906132f2565b60405180910390fd5b600760169054906101000a900460ff16156111b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111aa90613519565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff021916908315150217905550436008819055508060098190555050565b600b5481565b611208611c4a565b73ffffffffffffffffffffffffffffffffffffffff16611226611303565b73ffffffffffffffffffffffffffffffffffffffff161461127c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611273906132f2565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6112a0611303565b836040518363ffffffff1660e01b81526004016112be929190613537565b6020604051808303815f875af11580156112da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112fe9190613572565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461133a90613278565b80601f016020809104026020016040519081016040528092919081815260200182805461136690613278565b80156113b15780601f10611388576101008083540402835291602001916113b1565b820191905f5260205f20905b81548152906001019060200180831161139457829003601f168201915b5050505050905090565b6113c3611c4a565b73ffffffffffffffffffffffffffffffffffffffff166113e1611303565b73ffffffffffffffffffffffffffffffffffffffff1614611437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142e906132f2565b60405180910390fd5b80600a8190555050565b611449611c4a565b73ffffffffffffffffffffffffffffffffffffffff16611467611303565b73ffffffffffffffffffffffffffffffffffffffff16146114bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b4906132f2565b60405180910390fd5b6114ed816114c9611303565b73ffffffffffffffffffffffffffffffffffffffff166126f190919063ffffffff16565b50565b6114f8611c4a565b73ffffffffffffffffffffffffffffffffffffffff16611516611303565b73ffffffffffffffffffffffffffffffffffffffff161461156c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611563906132f2565b60405180910390fd5b80600e8190555050565b5f8060015f611583611c4a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281101561163d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116349061360d565b60405180910390fd5b61165a611648611c4a565b85858461165591906133cb565b611c51565b600191505092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f61169d611696611c4a565b8484611e14565b6001905092915050565b600c5481565b6116b5611c4a565b73ffffffffffffffffffffffffffffffffffffffff166116d3611303565b73ffffffffffffffffffffffffffffffffffffffff1614611729576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611720906132f2565b60405180910390fd5b80600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611774611c4a565b73ffffffffffffffffffffffffffffffffffffffff16611792611303565b73ffffffffffffffffffffffffffffffffffffffff16146117e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117df906132f2565b60405180910390fd5b6064816117f3610ac6565b6117fd9190613431565b611807919061349f565b600c8190555050565b600f5481565b61181e611c4a565b73ffffffffffffffffffffffffffffffffffffffff1661183c611303565b73ffffffffffffffffffffffffffffffffffffffff1614611892576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611889906132f2565b60405180910390fd5b5f5b815181101561191f57600160115f8484815181106118b5576118b461362b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061191790613658565b915050611894565b5050565b6010602052805f5260405f205f915054906101000a900460ff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6119ca611c4a565b73ffffffffffffffffffffffffffffffffffffffff166119e8611303565b73ffffffffffffffffffffffffffffffffffffffff1614611a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a35906132f2565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b611a63611c4a565b73ffffffffffffffffffffffffffffffffffffffff16611a81611303565b73ffffffffffffffffffffffffffffffffffffffff1614611ad7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ace906132f2565b60405180910390fd5b8060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b611b37611c4a565b73ffffffffffffffffffffffffffffffffffffffff16611b55611303565b73ffffffffffffffffffffffffffffffffffffffff1614611bab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba2906132f2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c109061370f565b60405180910390fd5b611c22816127e1565b50565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb69061379d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d249061382b565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e079190612bfd565b60405180910390a3505050565b5f8111611e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4d906138b9565b60405180910390fd5b60115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611ef4575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2a90613921565b60405180910390fd5b60105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611fd1575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611fea5750600760149054906101000a900460ff16155b1561229d57600760169054906101000a900460ff1661203e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203590613989565b60405180910390fd5b4360095460085461204f91906133fe565b11156121aa5760075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146120ff57600160115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146121a957600160115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b5b600b548111156121ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e6906139f1565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461229c57600c548161225084610ff6565b61225a91906133fe565b111561229b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229290613a7f565b60405180910390fd5b5b5b5f600760149054906101000a900460ff16806122ff575060105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80612350575060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561235d575f90506123f0565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036123d2576064600f54836123c19190613431565b6123cb919061349f565b90506123ef565b6064600e54836123e29190613431565b6123ec919061349f565b90505b5b600760159054906101000a900460ff1680156124195750600760149054906101000a900460ff16155b8015612472575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561247d57505f81115b1561248b5761248a6128a4565b5b6124a18484838561249c91906133cb565b61296d565b5f8111156124b5576124b484308361296d565b5b50505050565b5f600267ffffffffffffffff8111156124d7576124d6612f83565b5b6040519080825280602002602001820160405280156125055781602001602082028036833780820191505090505b50905030815f8151811061251c5761251b61362b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125e49190613ab1565b816001815181106125f8576125f761362b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061265e3060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c51565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016126c0959493929190613bcc565b5f604051808303815f87803b1580156126d7575f80fd5b505af11580156126e9573d5f803e3d5ffd5b505050505050565b80471015612734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272b90613c6e565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff168260405161275990613cb9565b5f6040518083038185875af1925050503d805f8114612793576040519150601f19603f3d011682016040523d82523d5f602084013e612798565b606091505b50509050806127dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d390613d3d565b60405180910390fd5b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff1661296b576001600760146101000a81548160ff0219169083151502179055505f6128dd30610ff6565b9050600a54811061294f575f8190506128f5816124bb565b5f4790505f81111561294c5761294b81600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166126f190919063ffffffff16565b5b50505b505f600760146101000a81548160ff0219169083151502179055505b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036129db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d290613dcb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4090613e59565b60405180910390fd5b612a54838383612be0565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612ad7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ace90613ee7565b60405180910390fd5b8181612ae391906133cb565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612b6e91906133fe565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612bd29190612bfd565b60405180910390a350505050565b505050565b5f819050919050565b612bf781612be5565b82525050565b5f602082019050612c105f830184612bee565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612c4d578082015181840152602081019050612c32565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612c7282612c16565b612c7c8185612c20565b9350612c8c818560208601612c30565b612c9581612c58565b840191505092915050565b5f6020820190508181035f830152612cb88184612c68565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b612cda81612be5565b8114612ce4575f80fd5b50565b5f81359050612cf581612cd1565b92915050565b5f60208284031215612d1057612d0f612cc9565b5b5f612d1d84828501612ce7565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612d4f82612d26565b9050919050565b612d5f81612d45565b8114612d69575f80fd5b50565b5f81359050612d7a81612d56565b92915050565b5f8060408385031215612d9657612d95612cc9565b5b5f612da385828601612d6c565b9250506020612db485828601612ce7565b9150509250929050565b5f8115159050919050565b612dd281612dbe565b82525050565b5f602082019050612deb5f830184612dc9565b92915050565b5f805f60608486031215612e0857612e07612cc9565b5b5f612e1586828701612d6c565b9350506020612e2686828701612d6c565b9250506040612e3786828701612ce7565b9150509250925092565b5f60ff82169050919050565b612e5681612e41565b82525050565b5f602082019050612e6f5f830184612e4d565b92915050565b5f612e7f82612d45565b9050919050565b612e8f81612e75565b8114612e99575f80fd5b50565b5f81359050612eaa81612e86565b92915050565b5f8060408385031215612ec657612ec5612cc9565b5b5f612ed385828601612e9c565b9250506020612ee485828601612d6c565b9150509250929050565b5f8060408385031215612f0457612f03612cc9565b5b5f612f1185828601612ce7565b9250506020612f2285828601612ce7565b9150509250929050565b5f60208284031215612f4157612f40612cc9565b5b5f612f4e84828501612d6c565b91505092915050565b612f6081612d45565b82525050565b5f602082019050612f795f830184612f57565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612fb982612c58565b810181811067ffffffffffffffff82111715612fd857612fd7612f83565b5b80604052505050565b5f612fea612cc0565b9050612ff68282612fb0565b919050565b5f67ffffffffffffffff82111561301557613014612f83565b5b602082029050602081019050919050565b5f80fd5b5f61303c61303784612ffb565b612fe1565b9050808382526020820190506020840283018581111561305f5761305e613026565b5b835b8181101561308857806130748882612d6c565b845260208401935050602081019050613061565b5050509392505050565b5f82601f8301126130a6576130a5612f7f565b5b81356130b684826020860161302a565b91505092915050565b5f602082840312156130d4576130d3612cc9565b5b5f82013567ffffffffffffffff8111156130f1576130f0612ccd565b5b6130fd84828501613092565b91505092915050565b5f806040838503121561311c5761311b612cc9565b5b5f61312985828601612d6c565b925050602061313a85828601612d6c565b9150509250929050565b61314d81612dbe565b8114613157575f80fd5b50565b5f8135905061316881613144565b92915050565b5f6020828403121561318357613182612cc9565b5b5f6131908482850161315a565b91505092915050565b5f80604083850312156131af576131ae612cc9565b5b5f6131bc85828601612d6c565b92505060206131cd8582860161315a565b9150509250929050565b5f819050919050565b5f6131fa6131f56131f084612d26565b6131d7565b612d26565b9050919050565b5f61320b826131e0565b9050919050565b5f61321c82613201565b9050919050565b61322c81613212565b82525050565b5f6020820190506132455f830184613223565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061328f57607f821691505b6020821081036132a2576132a161324b565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6132dc602083612c20565b91506132e7826132a8565b602082019050919050565b5f6020820190508181035f830152613309816132d0565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f61336a602883612c20565b915061337582613310565b604082019050919050565b5f6020820190508181035f8301526133978161335e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6133d582612be5565b91506133e083612be5565b92508282039050818111156133f8576133f761339e565b5b92915050565b5f61340882612be5565b915061341383612be5565b925082820190508082111561342b5761342a61339e565b5b92915050565b5f61343b82612be5565b915061344683612be5565b925082820261345481612be5565b9150828204841483151761346b5761346a61339e565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6134a982612be5565b91506134b483612be5565b9250826134c4576134c3613472565b5b828204905092915050565b7f54726164696e6720616c726561647920616374697665000000000000000000005f82015250565b5f613503601683612c20565b915061350e826134cf565b602082019050919050565b5f6020820190508181035f830152613530816134f7565b9050919050565b5f60408201905061354a5f830185612f57565b6135576020830184612bee565b9392505050565b5f8151905061356c81613144565b92915050565b5f6020828403121561358757613586612cc9565b5b5f6135948482850161355e565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6135f7602583612c20565b91506136028261359d565b604082019050919050565b5f6020820190508181035f830152613624816135eb565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61366282612be5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036136945761369361339e565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6136f9602683612c20565b91506137048261369f565b604082019050919050565b5f6020820190508181035f830152613726816136ed565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613787602483612c20565b91506137928261372d565b604082019050919050565b5f6020820190508181035f8301526137b48161377b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613815602283612c20565b9150613820826137bb565b604082019050919050565b5f6020820190508181035f83015261384281613809565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6138a3602983612c20565b91506138ae82613849565b604082019050919050565b5f6020820190508181035f8301526138d081613897565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e73000000000000005f82015250565b5f61390b601983612c20565b9150613916826138d7565b602082019050919050565b5f6020820190508181035f830152613938816138ff565b9050919050565b7f54726164696e67206e6f742061637469766520796574000000000000000000005f82015250565b5f613973601683612c20565b915061397e8261393f565b602082019050919050565b5f6020820190508181035f8301526139a081613967565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e740000005f82015250565b5f6139db601d83612c20565b91506139e6826139a7565b602082019050919050565b5f6020820190508181035f830152613a08816139cf565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e5f8201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b5f613a69602183612c20565b9150613a7482613a0f565b604082019050919050565b5f6020820190508181035f830152613a9681613a5d565b9050919050565b5f81519050613aab81612d56565b92915050565b5f60208284031215613ac657613ac5612cc9565b5b5f613ad384828501613a9d565b91505092915050565b5f819050919050565b5f613aff613afa613af584613adc565b6131d7565b612be5565b9050919050565b613b0f81613ae5565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613b4781612d45565b82525050565b5f613b588383613b3e565b60208301905092915050565b5f602082019050919050565b5f613b7a82613b15565b613b848185613b1f565b9350613b8f83613b2f565b805f5b83811015613bbf578151613ba68882613b4d565b9750613bb183613b64565b925050600181019050613b92565b5085935050505092915050565b5f60a082019050613bdf5f830188612bee565b613bec6020830187613b06565b8181036040830152613bfe8186613b70565b9050613c0d6060830185612f57565b613c1a6080830184612bee565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e63650000005f82015250565b5f613c58601d83612c20565b9150613c6382613c24565b602082019050919050565b5f6020820190508181035f830152613c8581613c4c565b9050919050565b5f81905092915050565b50565b5f613ca45f83613c8c565b9150613caf82613c96565b5f82019050919050565b5f613cc382613c99565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c20725f8201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b5f613d27603a83612c20565b9150613d3282613ccd565b604082019050919050565b5f6020820190508181035f830152613d5481613d1b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613db5602583612c20565b9150613dc082613d5b565b604082019050919050565b5f6020820190508181035f830152613de281613da9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613e43602383612c20565b9150613e4e82613de9565b604082019050919050565b5f6020820190508181035f830152613e7081613e37565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613ed1602683612c20565b9150613edc82613e77565b604082019050919050565b5f6020820190508181035f830152613efe81613ec5565b905091905056fea2646970667358221220b379015429356ea3cbca5dc8009bd6bef5af68dcd027e8355abd5713b6f601e264736f6c63430008140033

Deployed Bytecode

0x608060405260043610610254575f3560e01c80638c0b5e2211610138578063aa4bde28116100b5578063dbe66ca011610079578063dbe66ca014610873578063dd62ed3e146108af578063e01af92c146108eb578063e545fd6d14610913578063f2fde38b1461093b578063f887ea40146109635761025b565b8063aa4bde28146107a7578063aacebbe3146107d1578063c18bc195146107f9578063cc1776d314610821578063d34628cc1461084b5761025b565b80639e252f00116100fc5780639e252f00146106b5578063a3ca847d146106dd578063a457c2d714610705578063a8aa1b3114610741578063a9059cbb1461076b5761025b565b80638c0b5e22146105e75780638cd4426d146106115780638da5cb5b1461063957806395d89b41146106635780639d0014b11461068d5761025b565b80634ada218b116101d15780636256d181116101955780636256d181146104f15780636ddd17131461051957806370a0823114610543578063715018a61461057f57806375f0a8741461059557806382aa7c68146105bf5761025b565b80634ada218b146104355780634f7041a51461045f57806350c9a88f1461048957806356faae96146104b357806362256589146104db5761025b565b806323b872dd1161021857806323b872dd14610341578063274a533c1461037d578063313ce567146103a757806339509351146103d157806340b28c2f1461040d5761025b565b80630445b6671461025f57806306fdde03146102895780630940bbc7146102b3578063095ea7b3146102db57806318160ddd146103175761025b565b3661025b57005b5f80fd5b34801561026a575f80fd5b5061027361098d565b6040516102809190612bfd565b60405180910390f35b348015610294575f80fd5b5061029d610993565b6040516102aa9190612ca0565b60405180910390f35b3480156102be575f80fd5b506102d960048036038101906102d49190612cfb565b610a23565b005b3480156102e6575f80fd5b5061030160048036038101906102fc9190612d80565b610aa9565b60405161030e9190612dd8565b60405180910390f35b348015610322575f80fd5b5061032b610ac6565b6040516103389190612bfd565b60405180910390f35b34801561034c575f80fd5b5061036760048036038101906103629190612df1565b610acf565b6040516103749190612dd8565b60405180910390f35b348015610388575f80fd5b50610391610bca565b60405161039e9190612bfd565b60405180910390f35b3480156103b2575f80fd5b506103bb610bd0565b6040516103c89190612e5c565b60405180910390f35b3480156103dc575f80fd5b506103f760048036038101906103f29190612d80565b610bd8565b6040516104049190612dd8565b60405180910390f35b348015610418575f80fd5b50610433600480360381019061042e9190612eb0565b610c7f565b005b348015610440575f80fd5b50610449610d7f565b6040516104569190612dd8565b60405180910390f35b34801561046a575f80fd5b50610473610d92565b6040516104809190612bfd565b60405180910390f35b348015610494575f80fd5b5061049d610d98565b6040516104aa9190612bfd565b60405180910390f35b3480156104be575f80fd5b506104d960048036038101906104d49190612eee565b610d9e565b005b3480156104e6575f80fd5b506104ef610ea5565b005b3480156104fc575f80fd5b5061051760048036038101906105129190612cfb565b610f3f565b005b348015610524575f80fd5b5061052d610fe3565b60405161053a9190612dd8565b60405180910390f35b34801561054e575f80fd5b5061056960048036038101906105649190612f2c565b610ff6565b6040516105769190612bfd565b60405180910390f35b34801561058a575f80fd5b5061059361103b565b005b3480156105a0575f80fd5b506105a96110c2565b6040516105b69190612f66565b60405180910390f35b3480156105ca575f80fd5b506105e560048036038101906105e09190612cfb565b6110e7565b005b3480156105f2575f80fd5b506105fb6111fa565b6040516106089190612bfd565b60405180910390f35b34801561061c575f80fd5b5061063760048036038101906106329190612d80565b611200565b005b348015610644575f80fd5b5061064d611303565b60405161065a9190612f66565b60405180910390f35b34801561066e575f80fd5b5061067761132b565b6040516106849190612ca0565b60405180910390f35b348015610698575f80fd5b506106b360048036038101906106ae9190612cfb565b6113bb565b005b3480156106c0575f80fd5b506106db60048036038101906106d69190612cfb565b611441565b005b3480156106e8575f80fd5b5061070360048036038101906106fe9190612cfb565b6114f0565b005b348015610710575f80fd5b5061072b60048036038101906107269190612d80565b611576565b6040516107389190612dd8565b60405180910390f35b34801561074c575f80fd5b50610755611665565b6040516107629190612f66565b60405180910390f35b348015610776575f80fd5b50610791600480360381019061078c9190612d80565b61168a565b60405161079e9190612dd8565b60405180910390f35b3480156107b2575f80fd5b506107bb6116a7565b6040516107c89190612bfd565b60405180910390f35b3480156107dc575f80fd5b506107f760048036038101906107f29190612f2c565b6116ad565b005b348015610804575f80fd5b5061081f600480360381019061081a9190612cfb565b61176c565b005b34801561082c575f80fd5b50610835611810565b6040516108429190612bfd565b60405180910390f35b348015610856575f80fd5b50610871600480360381019061086c91906130bf565b611816565b005b34801561087e575f80fd5b5061089960048036038101906108949190612f2c565b611923565b6040516108a69190612dd8565b60405180910390f35b3480156108ba575f80fd5b506108d560048036038101906108d09190613106565b611940565b6040516108e29190612bfd565b60405180910390f35b3480156108f6575f80fd5b50610911600480360381019061090c919061316e565b6119c2565b005b34801561091e575f80fd5b5061093960048036038101906109349190613199565b611a5b565b005b348015610946575f80fd5b50610961600480360381019061095c9190612f2c565b611b2f565b005b34801561096e575f80fd5b50610977611c25565b6040516109849190613232565b60405180910390f35b600a5481565b6060600380546109a290613278565b80601f01602080910402602001604051908101604052809291908181526020018280546109ce90613278565b8015610a195780601f106109f057610100808354040283529160200191610a19565b820191905f5260205f20905b8154815290600101906020018083116109fc57829003601f168201915b5050505050905090565b610a2b611c4a565b73ffffffffffffffffffffffffffffffffffffffff16610a49611303565b73ffffffffffffffffffffffffffffffffffffffff1614610a9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a96906132f2565b60405180910390fd5b80600f8190555050565b5f610abc610ab5611c4a565b8484611c51565b6001905092915050565b5f600254905090565b5f610adb848484611e14565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610b22611c4a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610ba1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9890613380565b60405180910390fd5b610bbe85610bad611c4a565b8584610bb991906133cb565b611c51565b60019150509392505050565b60085481565b5f6012905090565b5f610c75610be4611c4a565b848460015f610bf1611c4a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610c7091906133fe565b611c51565b6001905092915050565b610c87611c4a565b73ffffffffffffffffffffffffffffffffffffffff16610ca5611303565b73ffffffffffffffffffffffffffffffffffffffff1614610cfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf2906132f2565b60405180910390fd5b8160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600760169054906101000a900460ff1681565b600e5481565b60095481565b610da6611c4a565b73ffffffffffffffffffffffffffffffffffffffff16610dc4611303565b73ffffffffffffffffffffffffffffffffffffffff1614610e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e11906132f2565b60405180910390fd5b5f479050610e27836124bb565b5f8147610e3491906133cb565b90505f831115610e9f57610e9e838483610e4e9190613431565b610e58919061349f565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166126f190919063ffffffff16565b5b50505050565b610ead611c4a565b73ffffffffffffffffffffffffffffffffffffffff16610ecb611303565b73ffffffffffffffffffffffffffffffffffffffff1614610f21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f18906132f2565b60405180910390fd5b610f29610ac6565b600b81905550610f37610ac6565b600c81905550565b610f47611c4a565b73ffffffffffffffffffffffffffffffffffffffff16610f65611303565b73ffffffffffffffffffffffffffffffffffffffff1614610fbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb2906132f2565b60405180910390fd5b606481610fc6610ac6565b610fd09190613431565b610fda919061349f565b600b8190555050565b600760159054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b611043611c4a565b73ffffffffffffffffffffffffffffffffffffffff16611061611303565b73ffffffffffffffffffffffffffffffffffffffff16146110b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ae906132f2565b60405180910390fd5b6110c05f6127e1565b565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6110ef611c4a565b73ffffffffffffffffffffffffffffffffffffffff1661110d611303565b73ffffffffffffffffffffffffffffffffffffffff1614611163576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115a906132f2565b60405180910390fd5b600760169054906101000a900460ff16156111b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111aa90613519565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff021916908315150217905550436008819055508060098190555050565b600b5481565b611208611c4a565b73ffffffffffffffffffffffffffffffffffffffff16611226611303565b73ffffffffffffffffffffffffffffffffffffffff161461127c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611273906132f2565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6112a0611303565b836040518363ffffffff1660e01b81526004016112be929190613537565b6020604051808303815f875af11580156112da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112fe9190613572565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461133a90613278565b80601f016020809104026020016040519081016040528092919081815260200182805461136690613278565b80156113b15780601f10611388576101008083540402835291602001916113b1565b820191905f5260205f20905b81548152906001019060200180831161139457829003601f168201915b5050505050905090565b6113c3611c4a565b73ffffffffffffffffffffffffffffffffffffffff166113e1611303565b73ffffffffffffffffffffffffffffffffffffffff1614611437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142e906132f2565b60405180910390fd5b80600a8190555050565b611449611c4a565b73ffffffffffffffffffffffffffffffffffffffff16611467611303565b73ffffffffffffffffffffffffffffffffffffffff16146114bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b4906132f2565b60405180910390fd5b6114ed816114c9611303565b73ffffffffffffffffffffffffffffffffffffffff166126f190919063ffffffff16565b50565b6114f8611c4a565b73ffffffffffffffffffffffffffffffffffffffff16611516611303565b73ffffffffffffffffffffffffffffffffffffffff161461156c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611563906132f2565b60405180910390fd5b80600e8190555050565b5f8060015f611583611c4a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281101561163d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116349061360d565b60405180910390fd5b61165a611648611c4a565b85858461165591906133cb565b611c51565b600191505092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f61169d611696611c4a565b8484611e14565b6001905092915050565b600c5481565b6116b5611c4a565b73ffffffffffffffffffffffffffffffffffffffff166116d3611303565b73ffffffffffffffffffffffffffffffffffffffff1614611729576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611720906132f2565b60405180910390fd5b80600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611774611c4a565b73ffffffffffffffffffffffffffffffffffffffff16611792611303565b73ffffffffffffffffffffffffffffffffffffffff16146117e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117df906132f2565b60405180910390fd5b6064816117f3610ac6565b6117fd9190613431565b611807919061349f565b600c8190555050565b600f5481565b61181e611c4a565b73ffffffffffffffffffffffffffffffffffffffff1661183c611303565b73ffffffffffffffffffffffffffffffffffffffff1614611892576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611889906132f2565b60405180910390fd5b5f5b815181101561191f57600160115f8484815181106118b5576118b461362b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061191790613658565b915050611894565b5050565b6010602052805f5260405f205f915054906101000a900460ff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6119ca611c4a565b73ffffffffffffffffffffffffffffffffffffffff166119e8611303565b73ffffffffffffffffffffffffffffffffffffffff1614611a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a35906132f2565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b611a63611c4a565b73ffffffffffffffffffffffffffffffffffffffff16611a81611303565b73ffffffffffffffffffffffffffffffffffffffff1614611ad7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ace906132f2565b60405180910390fd5b8060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b611b37611c4a565b73ffffffffffffffffffffffffffffffffffffffff16611b55611303565b73ffffffffffffffffffffffffffffffffffffffff1614611bab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba2906132f2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c109061370f565b60405180910390fd5b611c22816127e1565b50565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb69061379d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d249061382b565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e079190612bfd565b60405180910390a3505050565b5f8111611e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4d906138b9565b60405180910390fd5b60115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611ef4575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2a90613921565b60405180910390fd5b60105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611fd1575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611fea5750600760149054906101000a900460ff16155b1561229d57600760169054906101000a900460ff1661203e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203590613989565b60405180910390fd5b4360095460085461204f91906133fe565b11156121aa5760075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146120ff57600160115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146121a957600160115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b5b600b548111156121ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e6906139f1565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461229c57600c548161225084610ff6565b61225a91906133fe565b111561229b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229290613a7f565b60405180910390fd5b5b5b5f600760149054906101000a900460ff16806122ff575060105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80612350575060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561235d575f90506123f0565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036123d2576064600f54836123c19190613431565b6123cb919061349f565b90506123ef565b6064600e54836123e29190613431565b6123ec919061349f565b90505b5b600760159054906101000a900460ff1680156124195750600760149054906101000a900460ff16155b8015612472575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561247d57505f81115b1561248b5761248a6128a4565b5b6124a18484838561249c91906133cb565b61296d565b5f8111156124b5576124b484308361296d565b5b50505050565b5f600267ffffffffffffffff8111156124d7576124d6612f83565b5b6040519080825280602002602001820160405280156125055781602001602082028036833780820191505090505b50905030815f8151811061251c5761251b61362b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125e49190613ab1565b816001815181106125f8576125f761362b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061265e3060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c51565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016126c0959493929190613bcc565b5f604051808303815f87803b1580156126d7575f80fd5b505af11580156126e9573d5f803e3d5ffd5b505050505050565b80471015612734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272b90613c6e565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff168260405161275990613cb9565b5f6040518083038185875af1925050503d805f8114612793576040519150601f19603f3d011682016040523d82523d5f602084013e612798565b606091505b50509050806127dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d390613d3d565b60405180910390fd5b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff1661296b576001600760146101000a81548160ff0219169083151502179055505f6128dd30610ff6565b9050600a54811061294f575f8190506128f5816124bb565b5f4790505f81111561294c5761294b81600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166126f190919063ffffffff16565b5b50505b505f600760146101000a81548160ff0219169083151502179055505b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036129db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d290613dcb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4090613e59565b60405180910390fd5b612a54838383612be0565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612ad7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ace90613ee7565b60405180910390fd5b8181612ae391906133cb565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612b6e91906133fe565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612bd29190612bfd565b60405180910390a350505050565b505050565b5f819050919050565b612bf781612be5565b82525050565b5f602082019050612c105f830184612bee565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612c4d578082015181840152602081019050612c32565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612c7282612c16565b612c7c8185612c20565b9350612c8c818560208601612c30565b612c9581612c58565b840191505092915050565b5f6020820190508181035f830152612cb88184612c68565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b612cda81612be5565b8114612ce4575f80fd5b50565b5f81359050612cf581612cd1565b92915050565b5f60208284031215612d1057612d0f612cc9565b5b5f612d1d84828501612ce7565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612d4f82612d26565b9050919050565b612d5f81612d45565b8114612d69575f80fd5b50565b5f81359050612d7a81612d56565b92915050565b5f8060408385031215612d9657612d95612cc9565b5b5f612da385828601612d6c565b9250506020612db485828601612ce7565b9150509250929050565b5f8115159050919050565b612dd281612dbe565b82525050565b5f602082019050612deb5f830184612dc9565b92915050565b5f805f60608486031215612e0857612e07612cc9565b5b5f612e1586828701612d6c565b9350506020612e2686828701612d6c565b9250506040612e3786828701612ce7565b9150509250925092565b5f60ff82169050919050565b612e5681612e41565b82525050565b5f602082019050612e6f5f830184612e4d565b92915050565b5f612e7f82612d45565b9050919050565b612e8f81612e75565b8114612e99575f80fd5b50565b5f81359050612eaa81612e86565b92915050565b5f8060408385031215612ec657612ec5612cc9565b5b5f612ed385828601612e9c565b9250506020612ee485828601612d6c565b9150509250929050565b5f8060408385031215612f0457612f03612cc9565b5b5f612f1185828601612ce7565b9250506020612f2285828601612ce7565b9150509250929050565b5f60208284031215612f4157612f40612cc9565b5b5f612f4e84828501612d6c565b91505092915050565b612f6081612d45565b82525050565b5f602082019050612f795f830184612f57565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612fb982612c58565b810181811067ffffffffffffffff82111715612fd857612fd7612f83565b5b80604052505050565b5f612fea612cc0565b9050612ff68282612fb0565b919050565b5f67ffffffffffffffff82111561301557613014612f83565b5b602082029050602081019050919050565b5f80fd5b5f61303c61303784612ffb565b612fe1565b9050808382526020820190506020840283018581111561305f5761305e613026565b5b835b8181101561308857806130748882612d6c565b845260208401935050602081019050613061565b5050509392505050565b5f82601f8301126130a6576130a5612f7f565b5b81356130b684826020860161302a565b91505092915050565b5f602082840312156130d4576130d3612cc9565b5b5f82013567ffffffffffffffff8111156130f1576130f0612ccd565b5b6130fd84828501613092565b91505092915050565b5f806040838503121561311c5761311b612cc9565b5b5f61312985828601612d6c565b925050602061313a85828601612d6c565b9150509250929050565b61314d81612dbe565b8114613157575f80fd5b50565b5f8135905061316881613144565b92915050565b5f6020828403121561318357613182612cc9565b5b5f6131908482850161315a565b91505092915050565b5f80604083850312156131af576131ae612cc9565b5b5f6131bc85828601612d6c565b92505060206131cd8582860161315a565b9150509250929050565b5f819050919050565b5f6131fa6131f56131f084612d26565b6131d7565b612d26565b9050919050565b5f61320b826131e0565b9050919050565b5f61321c82613201565b9050919050565b61322c81613212565b82525050565b5f6020820190506132455f830184613223565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061328f57607f821691505b6020821081036132a2576132a161324b565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6132dc602083612c20565b91506132e7826132a8565b602082019050919050565b5f6020820190508181035f830152613309816132d0565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f61336a602883612c20565b915061337582613310565b604082019050919050565b5f6020820190508181035f8301526133978161335e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6133d582612be5565b91506133e083612be5565b92508282039050818111156133f8576133f761339e565b5b92915050565b5f61340882612be5565b915061341383612be5565b925082820190508082111561342b5761342a61339e565b5b92915050565b5f61343b82612be5565b915061344683612be5565b925082820261345481612be5565b9150828204841483151761346b5761346a61339e565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6134a982612be5565b91506134b483612be5565b9250826134c4576134c3613472565b5b828204905092915050565b7f54726164696e6720616c726561647920616374697665000000000000000000005f82015250565b5f613503601683612c20565b915061350e826134cf565b602082019050919050565b5f6020820190508181035f830152613530816134f7565b9050919050565b5f60408201905061354a5f830185612f57565b6135576020830184612bee565b9392505050565b5f8151905061356c81613144565b92915050565b5f6020828403121561358757613586612cc9565b5b5f6135948482850161355e565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6135f7602583612c20565b91506136028261359d565b604082019050919050565b5f6020820190508181035f830152613624816135eb565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61366282612be5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036136945761369361339e565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6136f9602683612c20565b91506137048261369f565b604082019050919050565b5f6020820190508181035f830152613726816136ed565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613787602483612c20565b91506137928261372d565b604082019050919050565b5f6020820190508181035f8301526137b48161377b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613815602283612c20565b9150613820826137bb565b604082019050919050565b5f6020820190508181035f83015261384281613809565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6138a3602983612c20565b91506138ae82613849565b604082019050919050565b5f6020820190508181035f8301526138d081613897565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e73000000000000005f82015250565b5f61390b601983612c20565b9150613916826138d7565b602082019050919050565b5f6020820190508181035f830152613938816138ff565b9050919050565b7f54726164696e67206e6f742061637469766520796574000000000000000000005f82015250565b5f613973601683612c20565b915061397e8261393f565b602082019050919050565b5f6020820190508181035f8301526139a081613967565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e740000005f82015250565b5f6139db601d83612c20565b91506139e6826139a7565b602082019050919050565b5f6020820190508181035f830152613a08816139cf565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e5f8201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b5f613a69602183612c20565b9150613a7482613a0f565b604082019050919050565b5f6020820190508181035f830152613a9681613a5d565b9050919050565b5f81519050613aab81612d56565b92915050565b5f60208284031215613ac657613ac5612cc9565b5b5f613ad384828501613a9d565b91505092915050565b5f819050919050565b5f613aff613afa613af584613adc565b6131d7565b612be5565b9050919050565b613b0f81613ae5565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613b4781612d45565b82525050565b5f613b588383613b3e565b60208301905092915050565b5f602082019050919050565b5f613b7a82613b15565b613b848185613b1f565b9350613b8f83613b2f565b805f5b83811015613bbf578151613ba68882613b4d565b9750613bb183613b64565b925050600181019050613b92565b5085935050505092915050565b5f60a082019050613bdf5f830188612bee565b613bec6020830187613b06565b8181036040830152613bfe8186613b70565b9050613c0d6060830185612f57565b613c1a6080830184612bee565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e63650000005f82015250565b5f613c58601d83612c20565b9150613c6382613c24565b602082019050919050565b5f6020820190508181035f830152613c8581613c4c565b9050919050565b5f81905092915050565b50565b5f613ca45f83613c8c565b9150613caf82613c96565b5f82019050919050565b5f613cc382613c99565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c20725f8201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b5f613d27603a83612c20565b9150613d3282613ccd565b604082019050919050565b5f6020820190508181035f830152613d5481613d1b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613db5602583612c20565b9150613dc082613d5b565b604082019050919050565b5f6020820190508181035f830152613de281613da9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613e43602383612c20565b9150613e4e82613de9565b604082019050919050565b5f6020820190508181035f830152613e7081613e37565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613ed1602683612c20565b9150613edc82613e77565b604082019050919050565b5f6020820190508181035f830152613efe81613ec5565b905091905056fea2646970667358221220b379015429356ea3cbca5dc8009bd6bef5af68dcd027e8355abd5713b6f601e264736f6c63430008140033

Deployed Bytecode Sourcemap

7785:6251:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8100:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1992:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12205:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2906:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2313:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3083:422;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8023:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2212:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3513:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12440:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7988:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8295;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8058:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13593:379;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13185:130;;;;;;;;;;;;;:::i;:::-;;12909:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7958:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2429:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6834:94;;;;;;;;;;;;;:::i;:::-;;8211:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11818:274;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8135:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13323:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6611:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2100:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11700:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13473:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12100:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3736:377;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7898:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2564:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8168:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12316:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13045:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8328:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12589:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8368:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2747:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11599:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12763:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6936:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7870:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8100:28;;;;:::o;1992:100::-;2046:13;2079:5;2072:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1992:100;:::o;12205:99::-;6757:12;:10;:12::i;:::-;6746:23;;:7;:5;:7::i;:::-;:23;;;6738:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12286:10:::1;12276:7;:20;;;;12205:99:::0;:::o;2906:169::-;2989:4;3006:39;3015:12;:10;:12::i;:::-;3029:7;3038:6;3006:8;:39::i;:::-;3063:4;3056:11;;2906:169;;;;:::o;2313:108::-;2374:7;2401:12;;2394:19;;2313:108;:::o;3083:422::-;3189:4;3206:36;3216:6;3224:9;3235:6;3206:9;:36::i;:::-;3255:24;3282:11;:19;3294:6;3282:19;;;;;;;;;;;;;;;:33;3302:12;:10;:12::i;:::-;3282:33;;;;;;;;;;;;;;;;3255:60;;3354:6;3334:16;:26;;3326:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;3416:57;3425:6;3433:12;:10;:12::i;:::-;3466:6;3447:16;:25;;;;:::i;:::-;3416:8;:57::i;:::-;3493:4;3486:11;;;3083:422;;;;;:::o;8023:28::-;;;;:::o;2212:93::-;2270:5;2295:2;2288:9;;2212:93;:::o;3513:215::-;3601:4;3618:80;3627:12;:10;:12::i;:::-;3641:7;3687:10;3650:11;:25;3662:12;:10;:12::i;:::-;3650:25;;;;;;;;;;;;;;;:34;3676:7;3650:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;3618:8;:80::i;:::-;3716:4;3709:11;;3513:215;;;;:::o;12440:137::-;6757:12;:10;:12::i;:::-;6746:23;;:7;:5;:7::i;:::-;:23;;;6738:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12539:7:::1;12530:6;;:16;;;;;;;;;;;;;;;;;;12564:5;12557:4;;:12;;;;;;;;;;;;;;;;;;12440:137:::0;;:::o;7988:26::-;;;;;;;;;;;;;:::o;8295:::-;;;;:::o;8058:29::-;;;;:::o;13593:379::-;6757:12;:10;:12::i;:::-;6746:23;;:7;:5;:7::i;:::-;:23;;;6738:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13687:19:::1;13709:21;13687:43;;13741:24;13758:6;13741:16;:24::i;:::-;13776:18;13821:11;13797:21;:35;;;;:::i;:::-;13776:56;;13868:1;13846:19;:23;13843:121;;;13871:93;13943:19;13919;13906:10;:32;;;;:::i;:::-;:57;;;;:::i;:::-;13879:15;;;;;;;;;;;13871:34;;;;:93;;;;:::i;:::-;13843:121;13676:296;;13593:379:::0;;:::o;13185:130::-;6757:12;:10;:12::i;:::-;6746:23;;:7;:5;:7::i;:::-;:23;;;6738:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13252:13:::1;:11;:13::i;:::-;13238:11;:27;;;;13294:13;:11;:13::i;:::-;13276:15;:31;;;;13185:130::o:0;12909:124::-;6757:12;:10;:12::i;:::-;6746:23;;:7;:5;:7::i;:::-;:23;;;6738:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13022:3:::1;13012:7;12996:13;:11;:13::i;:::-;:23;;;;:::i;:::-;:29;;;;:::i;:::-;12982:11;:43;;;;12909:124:::0;:::o;7958:23::-;;;;;;;;;;;;;:::o;2429:127::-;2503:7;2530:9;:18;2540:7;2530:18;;;;;;;;;;;;;;;;2523:25;;2429:127;;;:::o;6834:94::-;6757:12;:10;:12::i;:::-;6746:23;;:7;:5;:7::i;:::-;:23;;;6738:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6899:21:::1;6917:1;6899:9;:21::i;:::-;6834:94::o:0;8211:75::-;;;;;;;;;;;;;:::o;11818:274::-;6757:12;:10;:12::i;:::-;6746:23;;:7;:5;:7::i;:::-;:23;;;6738:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11904:14:::1;;;;;;;;;;;11903:15;11895:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;11973:4;11956:14;;:21;;;;;;;;;;;;;;;;;;12002:4;11988:11;;:18;;;;;;;;;;;;;;;;;;12033:12;12017:13;:28;;;;12069:15;12056:10;:28;;;;11818:274:::0;:::o;8135:26::-;;;;:::o;13323:142::-;6757:12;:10;:12::i;:::-;6746:23;;:7;:5;:7::i;:::-;:23;;;6738:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13418:12:::1;13411:29;;;13441:7;:5;:7::i;:::-;13450:6;13411:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13323:142:::0;;:::o;6611:87::-;6657:7;6684:6;;;;;;;;;;;6677:13;;6611:87;:::o;2100:104::-;2156:13;2189:7;2182:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2100:104;:::o;11700:110::-;6757:12;:10;:12::i;:::-;6746:23;;:7;:5;:7::i;:::-;:23;;;6738:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11792:10:::1;11776:13;:26;;;;11700:110:::0;:::o;13473:112::-;6757:12;:10;:12::i;:::-;6746:23;;:7;:5;:7::i;:::-;:23;;;6738:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13540:37:::1;13567:9;13548:7;:5;:7::i;:::-;13540:26;;;;:37;;;;:::i;:::-;13473:112:::0;:::o;12100:97::-;6757:12;:10;:12::i;:::-;6746:23;;:7;:5;:7::i;:::-;:23;;;6738:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12179:10:::1;12170:6;:19;;;;12100:97:::0;:::o;3736:377::-;3829:4;3846:24;3873:11;:25;3885:12;:10;:12::i;:::-;3873:25;;;;;;;;;;;;;;;:34;3899:7;3873:34;;;;;;;;;;;;;;;;3846:61;;3946:15;3926:16;:35;;3918:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;4014:67;4023:12;:10;:12::i;:::-;4037:7;4065:15;4046:16;:34;;;;:::i;:::-;4014:8;:67::i;:::-;4101:4;4094:11;;;3736:377;;;;:::o;7898:19::-;;;;;;;;;;;;;:::o;2564:175::-;2650:4;2667:42;2677:12;:10;:12::i;:::-;2691:9;2702:6;2667:9;:42::i;:::-;2727:4;2720:11;;2564:175;;;;:::o;8168:30::-;;;;:::o;12316:114::-;6757:12;:10;:12::i;:::-;6746:23;;:7;:5;:7::i;:::-;:23;;;6738:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12413:9:::1;12395:15;;:27;;;;;;;;;;;;;;;;;;12316:114:::0;:::o;13045:132::-;6757:12;:10;:12::i;:::-;6746:23;;:7;:5;:7::i;:::-;:23;;;6738:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13166:3:::1;13156:7;13140:13;:11;:13::i;:::-;:23;;;;:::i;:::-;:29;;;;:::i;:::-;13122:15;:47;;;;13045:132:::0;:::o;8328:27::-;;;;:::o;12589:168::-;6757:12;:10;:12::i;:::-;6746:23;;:7;:5;:7::i;:::-;:23;;;6738:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12664:6:::1;12659:91;12680:6;:13;12676:1;:17;12659:91;;;12734:4;12715:5;:16;12721:6;12728:1;12721:9;;;;;;;;:::i;:::-;;;;;;;;12715:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;12695:3;;;;;:::i;:::-;;;;12659:91;;;;12589:168:::0;:::o;8368:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;2747:151::-;2836:7;2863:11;:18;2875:5;2863:18;;;;;;;;;;;;;;;:27;2882:7;2863:27;;;;;;;;;;;;;;;;2856:34;;2747:151;;;;:::o;11599:93::-;6757:12;:10;:12::i;:::-;6746:23;;:7;:5;:7::i;:::-;:23;;;6738:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11679:5:::1;11665:11;;:19;;;;;;;;;;;;;;;;;;11599:93:::0;:::o;12763:134::-;6757:12;:10;:12::i;:::-;6746:23;;:7;:5;:7::i;:::-;:23;;;6738:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12884:5:::1;12855:16;:26;12872:8;12855:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;12763:134:::0;;:::o;6936:192::-;6757:12;:10;:12::i;:::-;6746:23;;:7;:5;:7::i;:::-;:23;;;6738:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7045:1:::1;7025:22;;:8;:22;;::::0;7017:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;7101:19;7111:8;7101:9;:19::i;:::-;6936:192:::0;:::o;7870:21::-;;;;;;;;;;;;;:::o;394:98::-;447:7;474:10;467:17;;394:98;:::o;5581:346::-;5700:1;5683:19;;:5;:19;;;5675:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5781:1;5762:21;;:7;:21;;;5754:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5865:6;5835:11;:18;5847:5;5835:18;;;;;;;;;;;;;;;:27;5854:7;5835:27;;;;;;;;;;;;;;;:36;;;;5903:7;5887:32;;5896:5;5887:32;;;5912:6;5887:32;;;;;;:::i;:::-;;;;;;;;5581:346;;;:::o;9353:1386::-;9469:1;9460:6;:10;9452:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9536:5;:13;9542:6;9536:13;;;;;;;;;;;;;;;;;;;;;;;;;9535:14;:35;;;;;9554:5;:16;9560:9;9554:16;;;;;;;;;;;;;;;;;;;;;;;;;9553:17;9535:35;9527:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;9643:16;:24;9660:6;9643:24;;;;;;;;;;;;;;;;;;;;;;;;;9642:25;:57;;;;;9672:16;:27;9689:9;9672:27;;;;;;;;;;;;;;;;;;;;;;;;;9671:28;9642:57;:70;;;;;9704:8;;;;;;;;;;;9703:9;9642:70;9639:589;;;9736:14;;;;;;;;;;;9728:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;9824:12;9811:10;;9795:13;;:26;;;;:::i;:::-;:41;9792:183;;;9872:4;;;;;;;;;;;9859:17;;:9;:17;;;9856:45;;9897:4;9878:5;:16;9884:9;9878:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;9856:45;9933:4;;;;;;;;;;;9923:14;;:6;:14;;;9920:39;;9955:4;9939:5;:13;9945:6;9939:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;9920:39;9792:183;10007:11;;9997:6;:21;;9989:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10083:4;;;;;;;;;;;10070:17;;:9;:17;;;10067:150;;10148:15;;10138:6;10115:20;10125:9;10115;:20::i;:::-;:29;;;;:::i;:::-;:48;;10107:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;10067:150;9639:589;10240:11;10280:8;;;;;;;;;;;:36;;;;10292:16;:24;10309:6;10292:24;;;;;;;;;;;;;;;;;;;;;;;;;10280:36;:67;;;;10320:16;:27;10337:9;10320:27;;;;;;;;;;;;;;;;;;;;;;;;;10280:67;10276:232;;;10355:1;10349:7;;10276:232;;;10415:4;;;;;;;;;;;10402:17;;:9;:17;;;10399:97;;10446:3;10436:7;;10427:6;:16;;;;:::i;:::-;:22;;;;:::i;:::-;10421:28;;10399:97;;;10493:3;10484:6;;10475;:15;;;;:::i;:::-;:21;;;;:::i;:::-;10469:27;;10399:97;10276:232;10534:11;;;;;;;;;;;:24;;;;;10550:8;;;;;;;;;;;10549:9;10534:24;:42;;;;;10572:4;;;;;;;;;;;10562:14;;:6;:14;;;;10534:42;:53;;;;;10586:1;10580:3;:7;10534:53;10530:72;;;10589:13;:11;:13::i;:::-;10530:72;10615:48;10631:6;10639:9;10659:3;10650:6;:12;;;;:::i;:::-;10615:15;:48::i;:::-;10683:1;10677:3;:7;10674:55;;;10686:43;10702:6;10718:4;10725:3;10686:15;:43::i;:::-;10674:55;9441:1298;9353:1386;;;:::o;11191:400::-;11257:21;11295:1;11281:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11257:40;;11326:4;11308;11313:1;11308:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;11352:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11342:4;11347:1;11342:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;11378:53;11395:4;11410:6;;;;;;;;;;;11419:11;11378:8;:53::i;:::-;11470:6;;;;;;;;;;;:57;;;11528:11;11541:1;11544:4;11558;11565:15;11470:111;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11246:345;11191:400;:::o;6056:317::-;6171:6;6146:21;:31;;6138:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6225:12;6243:9;:14;;6265:6;6243:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6224:52;;;6295:7;6287:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;6127:246;6056:317;;:::o;7136:173::-;7192:16;7211:6;;;;;;;;;;;7192:25;;7237:8;7228:6;;:17;;;;;;;;;;;;;;;;;;7292:8;7261:40;;7282:8;7261:40;;;;;;;;;;;;7181:128;7136:173;:::o;10747:434::-;8510:8;;;;;;;;;;;8505:104;;8546:4;8535:8;;:15;;;;;;;;;;;;;;;;;;10796:23:::1;10822:24;10840:4;10822:9;:24::i;:::-;10796:50;;10880:13;;10861:15;:32;10857:317;;10910:14;10927:15;10910:32;;10960:24;10977:6;10960:16;:24::i;:::-;11001:20;11024:21;11001:44;;11078:1;11063:12;:16;11060:103;;;11099:48;11134:12;11107:15;;;;;;;;;;;11099:34;;;;:48;;;;:::i;:::-;11060:103;10895:279;;10857:317;10785:396;8592:5:::0;8581:8;;:16;;;;;;;;;;;;;;;;;;8505:104;10747:434::o;4121:604::-;4245:1;4227:20;;:6;:20;;;4219:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;4329:1;4308:23;;:9;:23;;;4300:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4384:47;4405:6;4413:9;4424:6;4384:20;:47::i;:::-;4444:21;4468:9;:17;4478:6;4468:17;;;;;;;;;;;;;;;;4444:41;;4521:6;4504:13;:23;;4496:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;4617:6;4601:13;:22;;;;:::i;:::-;4581:9;:17;4591:6;4581:17;;;;;;;;;;;;;;;:42;;;;4658:6;4634:9;:20;4644:9;4634:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;4699:9;4682:35;;4691:6;4682:35;;;4710:6;4682:35;;;;;;:::i;:::-;;;;;;;;4208:517;4121:604;;;:::o;5935:92::-;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1784:75::-;1817:6;1850:2;1844:9;1834:19;;1784:75;:::o;1865:117::-;1974:1;1971;1964:12;1988:117;2097:1;2094;2087:12;2111:122;2184:24;2202:5;2184:24;:::i;:::-;2177:5;2174:35;2164:63;;2223:1;2220;2213:12;2164:63;2111:122;:::o;2239:139::-;2285:5;2323:6;2310:20;2301:29;;2339:33;2366:5;2339:33;:::i;:::-;2239:139;;;;:::o;2384:329::-;2443:6;2492:2;2480:9;2471:7;2467:23;2463:32;2460:119;;;2498:79;;:::i;:::-;2460:119;2618:1;2643:53;2688:7;2679:6;2668:9;2664:22;2643:53;:::i;:::-;2633:63;;2589:117;2384:329;;;;:::o;2719:126::-;2756:7;2796:42;2789:5;2785:54;2774:65;;2719:126;;;:::o;2851:96::-;2888:7;2917:24;2935:5;2917:24;:::i;:::-;2906:35;;2851:96;;;:::o;2953:122::-;3026:24;3044:5;3026:24;:::i;:::-;3019:5;3016:35;3006:63;;3065:1;3062;3055:12;3006:63;2953:122;:::o;3081:139::-;3127:5;3165:6;3152:20;3143:29;;3181:33;3208:5;3181:33;:::i;:::-;3081:139;;;;:::o;3226:474::-;3294:6;3302;3351:2;3339:9;3330:7;3326:23;3322:32;3319:119;;;3357:79;;:::i;:::-;3319:119;3477:1;3502:53;3547:7;3538:6;3527:9;3523:22;3502:53;:::i;:::-;3492:63;;3448:117;3604:2;3630:53;3675:7;3666:6;3655:9;3651:22;3630:53;:::i;:::-;3620:63;;3575:118;3226:474;;;;;:::o;3706:90::-;3740:7;3783:5;3776:13;3769:21;3758:32;;3706:90;;;:::o;3802:109::-;3883:21;3898:5;3883:21;:::i;:::-;3878:3;3871:34;3802:109;;:::o;3917:210::-;4004:4;4042:2;4031:9;4027:18;4019:26;;4055:65;4117:1;4106:9;4102:17;4093:6;4055:65;:::i;:::-;3917:210;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:111::-;5240:7;5269:24;5287:5;5269:24;:::i;:::-;5258:35;;5188:111;;;:::o;5305:152::-;5393:39;5426:5;5393:39;:::i;:::-;5386:5;5383:50;5373:78;;5447:1;5444;5437:12;5373:78;5305:152;:::o;5463:169::-;5524:5;5562:6;5549:20;5540:29;;5578:48;5620:5;5578:48;:::i;:::-;5463:169;;;;:::o;5638:504::-;5721:6;5729;5778:2;5766:9;5757:7;5753:23;5749:32;5746:119;;;5784:79;;:::i;:::-;5746:119;5904:1;5929:68;5989:7;5980:6;5969:9;5965:22;5929:68;:::i;:::-;5919:78;;5875:132;6046:2;6072:53;6117:7;6108:6;6097:9;6093:22;6072:53;:::i;:::-;6062:63;;6017:118;5638:504;;;;;:::o;6148:474::-;6216:6;6224;6273:2;6261:9;6252:7;6248:23;6244:32;6241:119;;;6279:79;;:::i;:::-;6241:119;6399:1;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6370:117;6526:2;6552:53;6597:7;6588:6;6577:9;6573:22;6552:53;:::i;:::-;6542:63;;6497:118;6148:474;;;;;:::o;6628:329::-;6687:6;6736:2;6724:9;6715:7;6711:23;6707:32;6704:119;;;6742:79;;:::i;:::-;6704:119;6862:1;6887:53;6932:7;6923:6;6912:9;6908:22;6887:53;:::i;:::-;6877:63;;6833:117;6628:329;;;;:::o;6963:118::-;7050:24;7068:5;7050:24;:::i;:::-;7045:3;7038:37;6963:118;;:::o;7087:222::-;7180:4;7218:2;7207:9;7203:18;7195:26;;7231:71;7299:1;7288:9;7284:17;7275:6;7231:71;:::i;:::-;7087:222;;;;:::o;7315:117::-;7424:1;7421;7414:12;7438:180;7486:77;7483:1;7476:88;7583:4;7580:1;7573:15;7607:4;7604:1;7597:15;7624:281;7707:27;7729:4;7707:27;:::i;:::-;7699:6;7695:40;7837:6;7825:10;7822:22;7801:18;7789:10;7786:34;7783:62;7780:88;;;7848:18;;:::i;:::-;7780:88;7888:10;7884:2;7877:22;7667:238;7624:281;;:::o;7911:129::-;7945:6;7972:20;;:::i;:::-;7962:30;;8001:33;8029:4;8021:6;8001:33;:::i;:::-;7911:129;;;:::o;8046:311::-;8123:4;8213:18;8205:6;8202:30;8199:56;;;8235:18;;:::i;:::-;8199:56;8285:4;8277:6;8273:17;8265:25;;8345:4;8339;8335:15;8327:23;;8046:311;;;:::o;8363:117::-;8472:1;8469;8462:12;8503:710;8599:5;8624:81;8640:64;8697:6;8640:64;:::i;:::-;8624:81;:::i;:::-;8615:90;;8725:5;8754:6;8747:5;8740:21;8788:4;8781:5;8777:16;8770:23;;8841:4;8833:6;8829:17;8821:6;8817:30;8870:3;8862:6;8859:15;8856:122;;;8889:79;;:::i;:::-;8856:122;9004:6;8987:220;9021:6;9016:3;9013:15;8987:220;;;9096:3;9125:37;9158:3;9146:10;9125:37;:::i;:::-;9120:3;9113:50;9192:4;9187:3;9183:14;9176:21;;9063:144;9047:4;9042:3;9038:14;9031:21;;8987:220;;;8991:21;8605:608;;8503:710;;;;;:::o;9236:370::-;9307:5;9356:3;9349:4;9341:6;9337:17;9333:27;9323:122;;9364:79;;:::i;:::-;9323:122;9481:6;9468:20;9506:94;9596:3;9588:6;9581:4;9573:6;9569:17;9506:94;:::i;:::-;9497:103;;9313:293;9236:370;;;;:::o;9612:539::-;9696:6;9745:2;9733:9;9724:7;9720:23;9716:32;9713:119;;;9751:79;;:::i;:::-;9713:119;9899:1;9888:9;9884:17;9871:31;9929:18;9921:6;9918:30;9915:117;;;9951:79;;:::i;:::-;9915:117;10056:78;10126:7;10117:6;10106:9;10102:22;10056:78;:::i;:::-;10046:88;;9842:302;9612:539;;;;:::o;10157:474::-;10225:6;10233;10282:2;10270:9;10261:7;10257:23;10253:32;10250:119;;;10288:79;;:::i;:::-;10250:119;10408:1;10433:53;10478:7;10469:6;10458:9;10454:22;10433:53;:::i;:::-;10423:63;;10379:117;10535:2;10561:53;10606:7;10597:6;10586:9;10582:22;10561:53;:::i;:::-;10551:63;;10506:118;10157:474;;;;;:::o;10637:116::-;10707:21;10722:5;10707:21;:::i;:::-;10700:5;10697:32;10687:60;;10743:1;10740;10733:12;10687:60;10637:116;:::o;10759:133::-;10802:5;10840:6;10827:20;10818:29;;10856:30;10880:5;10856:30;:::i;:::-;10759:133;;;;:::o;10898:323::-;10954:6;11003:2;10991:9;10982:7;10978:23;10974:32;10971:119;;;11009:79;;:::i;:::-;10971:119;11129:1;11154:50;11196:7;11187:6;11176:9;11172:22;11154:50;:::i;:::-;11144:60;;11100:114;10898:323;;;;:::o;11227:468::-;11292:6;11300;11349:2;11337:9;11328:7;11324:23;11320:32;11317:119;;;11355:79;;:::i;:::-;11317:119;11475:1;11500:53;11545:7;11536:6;11525:9;11521:22;11500:53;:::i;:::-;11490:63;;11446:117;11602:2;11628:50;11670:7;11661:6;11650:9;11646:22;11628:50;:::i;:::-;11618:60;;11573:115;11227:468;;;;;:::o;11701:60::-;11729:3;11750:5;11743:12;;11701:60;;;:::o;11767:142::-;11817:9;11850:53;11868:34;11877:24;11895:5;11877:24;:::i;:::-;11868:34;:::i;:::-;11850:53;:::i;:::-;11837:66;;11767:142;;;:::o;11915:126::-;11965:9;11998:37;12029:5;11998:37;:::i;:::-;11985:50;;11915:126;;;:::o;12047:141::-;12112:9;12145:37;12176:5;12145:37;:::i;:::-;12132:50;;12047:141;;;:::o;12194:161::-;12296:52;12342:5;12296:52;:::i;:::-;12291:3;12284:65;12194:161;;:::o;12361:252::-;12469:4;12507:2;12496:9;12492:18;12484:26;;12520:86;12603:1;12592:9;12588:17;12579:6;12520:86;:::i;:::-;12361:252;;;;:::o;12619:180::-;12667:77;12664:1;12657:88;12764:4;12761:1;12754:15;12788:4;12785:1;12778:15;12805:320;12849:6;12886:1;12880:4;12876:12;12866:22;;12933:1;12927:4;12923:12;12954:18;12944:81;;13010:4;13002:6;12998:17;12988:27;;12944:81;13072:2;13064:6;13061:14;13041:18;13038:38;13035:84;;13091:18;;:::i;:::-;13035:84;12856:269;12805:320;;;:::o;13131:182::-;13271:34;13267:1;13259:6;13255:14;13248:58;13131:182;:::o;13319:366::-;13461:3;13482:67;13546:2;13541:3;13482:67;:::i;:::-;13475:74;;13558:93;13647:3;13558:93;:::i;:::-;13676:2;13671:3;13667:12;13660:19;;13319:366;;;:::o;13691:419::-;13857:4;13895:2;13884:9;13880:18;13872:26;;13944:9;13938:4;13934:20;13930:1;13919:9;13915:17;13908:47;13972:131;14098:4;13972:131;:::i;:::-;13964:139;;13691:419;;;:::o;14116:227::-;14256:34;14252:1;14244:6;14240:14;14233:58;14325:10;14320:2;14312:6;14308:15;14301:35;14116:227;:::o;14349:366::-;14491:3;14512:67;14576:2;14571:3;14512:67;:::i;:::-;14505:74;;14588:93;14677:3;14588:93;:::i;:::-;14706:2;14701:3;14697:12;14690:19;;14349:366;;;:::o;14721:419::-;14887:4;14925:2;14914:9;14910:18;14902:26;;14974:9;14968:4;14964:20;14960:1;14949:9;14945:17;14938:47;15002:131;15128:4;15002:131;:::i;:::-;14994:139;;14721:419;;;:::o;15146:180::-;15194:77;15191:1;15184:88;15291:4;15288:1;15281:15;15315:4;15312:1;15305:15;15332:194;15372:4;15392:20;15410:1;15392:20;:::i;:::-;15387:25;;15426:20;15444:1;15426:20;:::i;:::-;15421:25;;15470:1;15467;15463:9;15455:17;;15494:1;15488:4;15485:11;15482:37;;;15499:18;;:::i;:::-;15482:37;15332:194;;;;:::o;15532:191::-;15572:3;15591:20;15609:1;15591:20;:::i;:::-;15586:25;;15625:20;15643:1;15625:20;:::i;:::-;15620:25;;15668:1;15665;15661:9;15654:16;;15689:3;15686:1;15683:10;15680:36;;;15696:18;;:::i;:::-;15680:36;15532:191;;;;:::o;15729:410::-;15769:7;15792:20;15810:1;15792:20;:::i;:::-;15787:25;;15826:20;15844:1;15826:20;:::i;:::-;15821:25;;15881:1;15878;15874:9;15903:30;15921:11;15903:30;:::i;:::-;15892:41;;16082:1;16073:7;16069:15;16066:1;16063:22;16043:1;16036:9;16016:83;15993:139;;16112:18;;:::i;:::-;15993:139;15777:362;15729:410;;;;:::o;16145:180::-;16193:77;16190:1;16183:88;16290:4;16287:1;16280:15;16314:4;16311:1;16304:15;16331:185;16371:1;16388:20;16406:1;16388:20;:::i;:::-;16383:25;;16422:20;16440:1;16422:20;:::i;:::-;16417:25;;16461:1;16451:35;;16466:18;;:::i;:::-;16451:35;16508:1;16505;16501:9;16496:14;;16331:185;;;;:::o;16522:172::-;16662:24;16658:1;16650:6;16646:14;16639:48;16522:172;:::o;16700:366::-;16842:3;16863:67;16927:2;16922:3;16863:67;:::i;:::-;16856:74;;16939:93;17028:3;16939:93;:::i;:::-;17057:2;17052:3;17048:12;17041:19;;16700:366;;;:::o;17072:419::-;17238:4;17276:2;17265:9;17261:18;17253:26;;17325:9;17319:4;17315:20;17311:1;17300:9;17296:17;17289:47;17353:131;17479:4;17353:131;:::i;:::-;17345:139;;17072:419;;;:::o;17497:332::-;17618:4;17656:2;17645:9;17641:18;17633:26;;17669:71;17737:1;17726:9;17722:17;17713:6;17669:71;:::i;:::-;17750:72;17818:2;17807:9;17803:18;17794:6;17750:72;:::i;:::-;17497:332;;;;;:::o;17835:137::-;17889:5;17920:6;17914:13;17905:22;;17936:30;17960:5;17936:30;:::i;:::-;17835:137;;;;:::o;17978:345::-;18045:6;18094:2;18082:9;18073:7;18069:23;18065:32;18062:119;;;18100:79;;:::i;:::-;18062:119;18220:1;18245:61;18298:7;18289:6;18278:9;18274:22;18245:61;:::i;:::-;18235:71;;18191:125;17978:345;;;;:::o;18329:224::-;18469:34;18465:1;18457:6;18453:14;18446:58;18538:7;18533:2;18525:6;18521:15;18514:32;18329:224;:::o;18559:366::-;18701:3;18722:67;18786:2;18781:3;18722:67;:::i;:::-;18715:74;;18798:93;18887:3;18798:93;:::i;:::-;18916:2;18911:3;18907:12;18900:19;;18559:366;;;:::o;18931:419::-;19097:4;19135:2;19124:9;19120:18;19112:26;;19184:9;19178:4;19174:20;19170:1;19159:9;19155:17;19148:47;19212:131;19338:4;19212:131;:::i;:::-;19204:139;;18931:419;;;:::o;19356:180::-;19404:77;19401:1;19394:88;19501:4;19498:1;19491:15;19525:4;19522:1;19515:15;19542:233;19581:3;19604:24;19622:5;19604:24;:::i;:::-;19595:33;;19650:66;19643:5;19640:77;19637:103;;19720:18;;:::i;:::-;19637:103;19767:1;19760:5;19756:13;19749:20;;19542:233;;;:::o;19781:225::-;19921:34;19917:1;19909:6;19905:14;19898:58;19990:8;19985:2;19977:6;19973:15;19966:33;19781:225;:::o;20012:366::-;20154:3;20175:67;20239:2;20234:3;20175:67;:::i;:::-;20168:74;;20251:93;20340:3;20251:93;:::i;:::-;20369:2;20364:3;20360:12;20353:19;;20012:366;;;:::o;20384:419::-;20550:4;20588:2;20577:9;20573:18;20565:26;;20637:9;20631:4;20627:20;20623:1;20612:9;20608:17;20601:47;20665:131;20791:4;20665:131;:::i;:::-;20657:139;;20384:419;;;:::o;20809:223::-;20949:34;20945:1;20937:6;20933:14;20926:58;21018:6;21013:2;21005:6;21001:15;20994:31;20809:223;:::o;21038:366::-;21180:3;21201:67;21265:2;21260:3;21201:67;:::i;:::-;21194:74;;21277:93;21366:3;21277:93;:::i;:::-;21395:2;21390:3;21386:12;21379:19;;21038:366;;;:::o;21410:419::-;21576:4;21614:2;21603:9;21599:18;21591:26;;21663:9;21657:4;21653:20;21649:1;21638:9;21634:17;21627:47;21691:131;21817:4;21691:131;:::i;:::-;21683:139;;21410:419;;;:::o;21835:221::-;21975:34;21971:1;21963:6;21959:14;21952:58;22044:4;22039:2;22031:6;22027:15;22020:29;21835:221;:::o;22062:366::-;22204:3;22225:67;22289:2;22284:3;22225:67;:::i;:::-;22218:74;;22301:93;22390:3;22301:93;:::i;:::-;22419:2;22414:3;22410:12;22403:19;;22062:366;;;:::o;22434:419::-;22600:4;22638:2;22627:9;22623:18;22615:26;;22687:9;22681:4;22677:20;22673:1;22662:9;22658:17;22651:47;22715:131;22841:4;22715:131;:::i;:::-;22707:139;;22434:419;;;:::o;22859:228::-;22999:34;22995:1;22987:6;22983:14;22976:58;23068:11;23063:2;23055:6;23051:15;23044:36;22859:228;:::o;23093:366::-;23235:3;23256:67;23320:2;23315:3;23256:67;:::i;:::-;23249:74;;23332:93;23421:3;23332:93;:::i;:::-;23450:2;23445:3;23441:12;23434:19;;23093:366;;;:::o;23465:419::-;23631:4;23669:2;23658:9;23654:18;23646:26;;23718:9;23712:4;23708:20;23704:1;23693:9;23689:17;23682:47;23746:131;23872:4;23746:131;:::i;:::-;23738:139;;23465:419;;;:::o;23890:175::-;24030:27;24026:1;24018:6;24014:14;24007:51;23890:175;:::o;24071:366::-;24213:3;24234:67;24298:2;24293:3;24234:67;:::i;:::-;24227:74;;24310:93;24399:3;24310:93;:::i;:::-;24428:2;24423:3;24419:12;24412:19;;24071:366;;;:::o;24443:419::-;24609:4;24647:2;24636:9;24632:18;24624:26;;24696:9;24690:4;24686:20;24682:1;24671:9;24667:17;24660:47;24724:131;24850:4;24724:131;:::i;:::-;24716:139;;24443:419;;;:::o;24868:172::-;25008:24;25004:1;24996:6;24992:14;24985:48;24868:172;:::o;25046:366::-;25188:3;25209:67;25273:2;25268:3;25209:67;:::i;:::-;25202:74;;25285:93;25374:3;25285:93;:::i;:::-;25403:2;25398:3;25394:12;25387:19;;25046:366;;;:::o;25418:419::-;25584:4;25622:2;25611:9;25607:18;25599:26;;25671:9;25665:4;25661:20;25657:1;25646:9;25642:17;25635:47;25699:131;25825:4;25699:131;:::i;:::-;25691:139;;25418:419;;;:::o;25843:179::-;25983:31;25979:1;25971:6;25967:14;25960:55;25843:179;:::o;26028:366::-;26170:3;26191:67;26255:2;26250:3;26191:67;:::i;:::-;26184:74;;26267:93;26356:3;26267:93;:::i;:::-;26385:2;26380:3;26376:12;26369:19;;26028:366;;;:::o;26400:419::-;26566:4;26604:2;26593:9;26589:18;26581:26;;26653:9;26647:4;26643:20;26639:1;26628:9;26624:17;26617:47;26681:131;26807:4;26681:131;:::i;:::-;26673:139;;26400:419;;;:::o;26825:220::-;26965:34;26961:1;26953:6;26949:14;26942:58;27034:3;27029:2;27021:6;27017:15;27010:28;26825:220;:::o;27051:366::-;27193:3;27214:67;27278:2;27273:3;27214:67;:::i;:::-;27207:74;;27290:93;27379:3;27290:93;:::i;:::-;27408:2;27403:3;27399:12;27392:19;;27051:366;;;:::o;27423:419::-;27589:4;27627:2;27616:9;27612:18;27604:26;;27676:9;27670:4;27666:20;27662:1;27651:9;27647:17;27640:47;27704:131;27830:4;27704:131;:::i;:::-;27696:139;;27423:419;;;:::o;27848:143::-;27905:5;27936:6;27930:13;27921:22;;27952:33;27979:5;27952:33;:::i;:::-;27848:143;;;;:::o;27997:351::-;28067:6;28116:2;28104:9;28095:7;28091:23;28087:32;28084:119;;;28122:79;;:::i;:::-;28084:119;28242:1;28267:64;28323:7;28314:6;28303:9;28299:22;28267:64;:::i;:::-;28257:74;;28213:128;27997:351;;;;:::o;28354:85::-;28399:7;28428:5;28417:16;;28354:85;;;:::o;28445:158::-;28503:9;28536:61;28554:42;28563:32;28589:5;28563:32;:::i;:::-;28554:42;:::i;:::-;28536:61;:::i;:::-;28523:74;;28445:158;;;:::o;28609:147::-;28704:45;28743:5;28704:45;:::i;:::-;28699:3;28692:58;28609:147;;:::o;28762:114::-;28829:6;28863:5;28857:12;28847:22;;28762:114;;;:::o;28882:184::-;28981:11;29015:6;29010:3;29003:19;29055:4;29050:3;29046:14;29031:29;;28882:184;;;;:::o;29072:132::-;29139:4;29162:3;29154:11;;29192:4;29187:3;29183:14;29175:22;;29072:132;;;:::o;29210:108::-;29287:24;29305:5;29287:24;:::i;:::-;29282:3;29275:37;29210:108;;:::o;29324:179::-;29393:10;29414:46;29456:3;29448:6;29414:46;:::i;:::-;29492:4;29487:3;29483:14;29469:28;;29324:179;;;;:::o;29509:113::-;29579:4;29611;29606:3;29602:14;29594:22;;29509:113;;;:::o;29658:732::-;29777:3;29806:54;29854:5;29806:54;:::i;:::-;29876:86;29955:6;29950:3;29876:86;:::i;:::-;29869:93;;29986:56;30036:5;29986:56;:::i;:::-;30065:7;30096:1;30081:284;30106:6;30103:1;30100:13;30081:284;;;30182:6;30176:13;30209:63;30268:3;30253:13;30209:63;:::i;:::-;30202:70;;30295:60;30348:6;30295:60;:::i;:::-;30285:70;;30141:224;30128:1;30125;30121:9;30116:14;;30081:284;;;30085:14;30381:3;30374:10;;29782:608;;;29658:732;;;;:::o;30396:831::-;30659:4;30697:3;30686:9;30682:19;30674:27;;30711:71;30779:1;30768:9;30764:17;30755:6;30711:71;:::i;:::-;30792:80;30868:2;30857:9;30853:18;30844:6;30792:80;:::i;:::-;30919:9;30913:4;30909:20;30904:2;30893:9;30889:18;30882:48;30947:108;31050:4;31041:6;30947:108;:::i;:::-;30939:116;;31065:72;31133:2;31122:9;31118:18;31109:6;31065:72;:::i;:::-;31147:73;31215:3;31204:9;31200:19;31191:6;31147:73;:::i;:::-;30396:831;;;;;;;;:::o;31233:179::-;31373:31;31369:1;31361:6;31357:14;31350:55;31233:179;:::o;31418:366::-;31560:3;31581:67;31645:2;31640:3;31581:67;:::i;:::-;31574:74;;31657:93;31746:3;31657:93;:::i;:::-;31775:2;31770:3;31766:12;31759:19;;31418:366;;;:::o;31790:419::-;31956:4;31994:2;31983:9;31979:18;31971:26;;32043:9;32037:4;32033:20;32029:1;32018:9;32014:17;32007:47;32071:131;32197:4;32071:131;:::i;:::-;32063:139;;31790:419;;;:::o;32215:147::-;32316:11;32353:3;32338:18;;32215:147;;;;:::o;32368:114::-;;:::o;32488:398::-;32647:3;32668:83;32749:1;32744:3;32668:83;:::i;:::-;32661:90;;32760:93;32849:3;32760:93;:::i;:::-;32878:1;32873:3;32869:11;32862:18;;32488:398;;;:::o;32892:379::-;33076:3;33098:147;33241:3;33098:147;:::i;:::-;33091:154;;33262:3;33255:10;;32892:379;;;:::o;33277:245::-;33417:34;33413:1;33405:6;33401:14;33394:58;33486:28;33481:2;33473:6;33469:15;33462:53;33277:245;:::o;33528:366::-;33670:3;33691:67;33755:2;33750:3;33691:67;:::i;:::-;33684:74;;33767:93;33856:3;33767:93;:::i;:::-;33885:2;33880:3;33876:12;33869:19;;33528:366;;;:::o;33900:419::-;34066:4;34104:2;34093:9;34089:18;34081:26;;34153:9;34147:4;34143:20;34139:1;34128:9;34124:17;34117:47;34181:131;34307:4;34181:131;:::i;:::-;34173:139;;33900:419;;;:::o;34325:224::-;34465:34;34461:1;34453:6;34449:14;34442:58;34534:7;34529:2;34521:6;34517:15;34510:32;34325:224;:::o;34555:366::-;34697:3;34718:67;34782:2;34777:3;34718:67;:::i;:::-;34711:74;;34794:93;34883:3;34794:93;:::i;:::-;34912:2;34907:3;34903:12;34896:19;;34555:366;;;:::o;34927:419::-;35093:4;35131:2;35120:9;35116:18;35108:26;;35180:9;35174:4;35170:20;35166:1;35155:9;35151:17;35144:47;35208:131;35334:4;35208:131;:::i;:::-;35200:139;;34927:419;;;:::o;35352:222::-;35492:34;35488:1;35480:6;35476:14;35469:58;35561:5;35556:2;35548:6;35544:15;35537:30;35352:222;:::o;35580:366::-;35722:3;35743:67;35807:2;35802:3;35743:67;:::i;:::-;35736:74;;35819:93;35908:3;35819:93;:::i;:::-;35937:2;35932:3;35928:12;35921:19;;35580:366;;;:::o;35952:419::-;36118:4;36156:2;36145:9;36141:18;36133:26;;36205:9;36199:4;36195:20;36191:1;36180:9;36176:17;36169:47;36233:131;36359:4;36233:131;:::i;:::-;36225:139;;35952:419;;;:::o;36377:225::-;36517:34;36513:1;36505:6;36501:14;36494:58;36586:8;36581:2;36573:6;36569:15;36562:33;36377:225;:::o;36608:366::-;36750:3;36771:67;36835:2;36830:3;36771:67;:::i;:::-;36764:74;;36847:93;36936:3;36847:93;:::i;:::-;36965:2;36960:3;36956:12;36949:19;;36608:366;;;:::o;36980:419::-;37146:4;37184:2;37173:9;37169:18;37161:26;;37233:9;37227:4;37223:20;37219:1;37208:9;37204:17;37197:47;37261:131;37387:4;37261:131;:::i;:::-;37253:139;;36980:419;;;:::o

Swarm Source

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