ETH Price: $2,491.45 (-0.75%)

Token

THE 47TH POTUS DONALD TRUMP (47)
 

Overview

Max Total Supply

1,000,000 47

Holders

209

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
0 47

Value
$0.00
0x4230edf77adb45107aebb2774889d4fdcee09460
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:
POTUSDONALDTRUMP

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-05-30
*/

/*

TG - https://t.me/trump47thEth
X - https://x.com/trump47theth
Website - https://47potus.vip/

*/
// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;
 
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
 
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}
 
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
 
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
 
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
 
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
 
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
 
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
 
}
 
contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
 
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
 
    function owner() public view returns (address) {
        return _owner;
    }
 
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
 
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
 
}
 
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}
 
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}
 
contract POTUSDONALDTRUMP is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => bool) private isBlacklisted;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _taxWallet;
 
    uint256 private _initialBuyTax=15;
    uint256 private _initialSellTax=20;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=20;
    uint256 private _reduceSellTaxAt=25;
    uint256 private _preventSwapBefore=1;
    uint256 private _buyCount=0;
    uint256 private _FinalmaxTxPercent = 2;
    uint256 private _FinalmaxWalletPercent = 2;
    uint256 private _ManualfinalBuyTax = 0;
    uint256 private _ManualfinalSellTax = 0;
 
 
    uint8 private constant _decimals = 8;
    uint256 private constant _tTotal = 1000000 * 10**_decimals;
    string private constant _name = unicode"THE 47TH POTUS DONALD TRUMP";
    string private constant _symbol = unicode"47";
    uint256 public _maxTxAmount =   20000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000 * 10**_decimals;
    uint256 public _taxSwapThreshold=1000 * 10**_decimals;
    uint256 public _maxTaxSwap=10000 * 10**_decimals;
 
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
 
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
 
        emit Transfer(address(0), _msgSender(), _tTotal);
    }
 
    function name() public pure returns (string memory) {
        return _name;
    }
 
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
 
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
 
    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
 
    function isAddressBlacklisted(address addr) public view returns (bool) {
    return isBlacklisted[addr];
 
    } 
 
    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }
 
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
 
    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }
 
    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
 
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
 
    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
 
     function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount = 0;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            require(!isBlacklisted[to] && !isBlacklisted[from], 'Address is blacklisted');
 
            if (transferDelayEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                  require(_holderLastTransferTimestamp[tx.origin] < block.number,"Only one transfer per block allowed.");
                  _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }
 
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }
 
 
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }
 
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
 
        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }
 
 
    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }
 
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        if(tokenAmount==0){return;}
        if(!tradingOpen){return;}
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
 
    function removeLimits() external {
        require(_msgSender() == _taxWallet, "Only the deployer can call this function.");
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }
 
    function setFinalMaxWallet() external onlyOwner {
        _maxTxAmount = _tTotal.mul(_FinalmaxTxPercent).div(100);
        _maxWalletSize = _tTotal.mul(_FinalmaxWalletPercent).div(100);
        emit MaxTxAmountUpdated(_maxTxAmount);
    }
 
    function setFinalTax() external onlyOwner {
        _finalBuyTax = _ManualfinalBuyTax;
        _finalSellTax = _ManualfinalSellTax;
    }
 
    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }
 
    function isBot(address a) public view returns (bool){
      return bots[a];
    }
 
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }
 
    receive() external payable {}
 
    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
 
    function BulkisBot(address[] memory accounts, bool state) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            isBlacklisted[accounts[i]] = state;
        }
    }
 
    function reduceFee(uint256 _newFee) external{
      require(_buyCount>1);
      require(_newFee<=_finalSellTax && _newFee<=_finalBuyTax);
      _finalSellTax=_newFee;
      _finalBuyTax=_newFee;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"BulkisBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","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":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"isAddressBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setFinalMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setFinalTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"},{"stateMutability":"payable","type":"receive"}]

60806040526000600760006101000a81548160ff021916908315150217905550600f60085560146009556000600a556000600b556014600c556019600d556001600e556000600f5560026010556002601155600060125560006013556008600a6200006b919062000639565b614e206200007a91906200068a565b6014556008600a6200008d919062000639565b614e206200009c91906200068a565b6015556008600a620000af919062000639565b6103e8620000be91906200068a565b6016556008600a620000d1919062000639565b612710620000e091906200068a565b6017556000601960156101000a81548160ff0219169083151502179055506000601960166101000a81548160ff0219169083151502179055503480156200012657600080fd5b506000620001396200046e60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001e76200046e60201b60201c565b600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600a62000237919062000639565b620f42406200024791906200068a565b600160006200025b6200046e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002af6200047660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003e26200046e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008600a62000441919062000639565b620f42406200045191906200068a565b604051620004609190620006e6565b60405180910390a362000703565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200052d578086048111156200050557620005046200049f565b5b6001851615620005155780820291505b80810290506200052585620004ce565b9450620004e5565b94509492505050565b6000826200054857600190506200061b565b816200055857600090506200061b565b81600181146200057157600281146200057c57620005b2565b60019150506200061b565b60ff8411156200059157620005906200049f565b5b8360020a915084821115620005ab57620005aa6200049f565b5b506200061b565b5060208310610133831016604e8410600b8410161715620005ec5782820a905083811115620005e657620005e56200049f565b5b6200061b565b620005fb8484846001620004db565b925090508184048111156200061557620006146200049f565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620006468262000622565b915062000653836200062c565b9250620006827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000536565b905092915050565b6000620006978262000622565b9150620006a48362000622565b9250828202620006b48162000622565b91508282048414831517620006ce57620006cd6200049f565b5b5092915050565b620006e08162000622565b82525050565b6000602082019050620006fd6000830184620006d5565b92915050565b613a1a80620007136000396000f3fe60806040526004361061016a5760003560e01c80637d1db4a5116100d1578063bf474bed1161008a578063dd62ed3e11610064578063dd62ed3e14610517578063ec1f3f6314610554578063ec6c12901461057d578063facff4dc1461059457610171565b8063bf474bed146104aa578063c876d0b9146104d5578063c9567bf91461050057610171565b80637d1db4a5146103845780638da5cb5b146103af5780638f9a55c0146103da57806390683e8c1461040557806395d89b4114610442578063a9059cbb1461046d57610171565b80633bbac579116101235780633bbac5791461029c57806351bc3c85146102d9578063567fef5b146102f057806370a0823114610319578063715018a614610356578063751039fc1461036d57610171565b806306fdde0314610176578063095ea7b3146101a15780630faee56f146101de57806318160ddd1461020957806323b872dd14610234578063313ce5671461027157610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105ab565b60405161019891906127f2565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c391906128bc565b6105e8565b6040516101d59190612917565b60405180910390f35b3480156101ea57600080fd5b506101f3610606565b6040516102009190612941565b60405180910390f35b34801561021557600080fd5b5061021e61060c565b60405161022b9190612941565b60405180910390f35b34801561024057600080fd5b5061025b6004803603810190610256919061295c565b61062f565b6040516102689190612917565b60405180910390f35b34801561027d57600080fd5b50610286610708565b60405161029391906129cb565b60405180910390f35b3480156102a857600080fd5b506102c360048036038101906102be91906129e6565b610711565b6040516102d09190612917565b60405180910390f35b3480156102e557600080fd5b506102ee610767565b005b3480156102fc57600080fd5b5061031760048036038101906103129190612b87565b610804565b005b34801561032557600080fd5b50610340600480360381019061033b91906129e6565b61092e565b60405161034d9190612941565b60405180910390f35b34801561036257600080fd5b5061036b610977565b005b34801561037957600080fd5b50610382610aca565b005b34801561039057600080fd5b50610399610c14565b6040516103a69190612941565b60405180910390f35b3480156103bb57600080fd5b506103c4610c1a565b6040516103d19190612bf2565b60405180910390f35b3480156103e657600080fd5b506103ef610c43565b6040516103fc9190612941565b60405180910390f35b34801561041157600080fd5b5061042c600480360381019061042791906129e6565b610c49565b6040516104399190612917565b60405180910390f35b34801561044e57600080fd5b50610457610c9f565b60405161046491906127f2565b60405180910390f35b34801561047957600080fd5b50610494600480360381019061048f91906128bc565b610cdc565b6040516104a19190612917565b60405180910390f35b3480156104b657600080fd5b506104bf610cfa565b6040516104cc9190612941565b60405180910390f35b3480156104e157600080fd5b506104ea610d00565b6040516104f79190612917565b60405180910390f35b34801561050c57600080fd5b50610515610d13565b005b34801561052357600080fd5b5061053e60048036038101906105399190612c0d565b61124a565b60405161054b9190612941565b60405180910390f35b34801561056057600080fd5b5061057b60048036038101906105769190612c4d565b6112d1565b005b34801561058957600080fd5b5061059261130e565b005b3480156105a057600080fd5b506105a96113b7565b005b60606040518060400160405280601b81526020017f544845203437544820504f54555320444f4e414c44205452554d500000000000815250905090565b60006105fc6105f5611519565b8484611521565b6001905092915050565b60175481565b60006008600a61061c9190612ddc565b620f424061062a9190612e27565b905090565b600061063c8484846116ea565b6106fd84610648611519565b6106f8856040518060600160405280602881526020016139bd60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106ae611519565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122129092919063ffffffff16565b611521565b600190509392505050565b60006008905090565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107a8611519565b73ffffffffffffffffffffffffffffffffffffffff16146107c857600080fd5b60006107d33061092e565b905060008111156107e8576107e781612276565b5b60004790506000811115610800576107ff8161250e565b5b5050565b61080c611519565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610899576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089090612eb5565b60405180910390fd5b60005b82518110156109295781600560008584815181106108bd576108bc612ed5565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061092190612f04565b91505061089c565b505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61097f611519565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0390612eb5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b0b611519565b73ffffffffffffffffffffffffffffffffffffffff1614610b61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5890612fbe565b60405180910390fd5b6008600a610b6f9190612ddc565b620f4240610b7d9190612e27565b6014819055506008600a610b919190612ddc565b620f4240610b9f9190612e27565b6015819055506000600760006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610bef9190612ddc565b620f4240610bfd9190612e27565b604051610c0a9190612941565b60405180910390a1565b60145481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60155481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60606040518060400160405280600281526020017f3437000000000000000000000000000000000000000000000000000000000000815250905090565b6000610cf0610ce9611519565b84846116ea565b6001905092915050565b60165481565b600760009054906101000a900460ff1681565b610d1b611519565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610da8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9f90612eb5565b60405180910390fd5b601960149054906101000a900460ff1615610df8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610def9061302a565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e9530601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610e829190612ddc565b620f4240610e909190612e27565b611521565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f26919061305f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610faf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd3919061305f565b6040518363ffffffff1660e01b8152600401610ff092919061308c565b6020604051808303816000875af115801561100f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611033919061305f565b601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306110bc3061092e565b6000806110c7610c1a565b426040518863ffffffff1660e01b81526004016110e9969594939291906130fa565b60606040518083038185885af1158015611107573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061112c9190613170565b505050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016111ce9291906131c3565b6020604051808303816000875af11580156111ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112119190613201565b506001601960166101000a81548160ff0219169083151502179055506001601960146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6001600f54116112e057600080fd5b600b5481111580156112f45750600a548111155b6112fd57600080fd5b80600b8190555080600a8190555050565b611316611519565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139a90612eb5565b60405180910390fd5b601254600a81905550601354600b81905550565b6113bf611519565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461144c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144390612eb5565b60405180910390fd5b61148f60646114816010546008600a6114659190612ddc565b620f42406114739190612e27565b61257a90919063ffffffff16565b6125f490919063ffffffff16565b6014819055506114d860646114ca6011546008600a6114ae9190612ddc565b620f42406114bc9190612e27565b61257a90919063ffffffff16565b6125f490919063ffffffff16565b6015819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf60145460405161150f9190612941565b60405180910390a1565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611590576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611587906132a0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f690613332565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116dd9190612941565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611759576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611750906133c4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bf90613456565b60405180910390fd5b6000811161180b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611802906134e8565b60405180910390fd5b6000611815610c1a565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156118835750611853610c1a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f5557600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561192c5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61193557600080fd5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119d95750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611a18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0f90613554565b60405180910390fd5b600760009054906101000a900460ff1615611ba557601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ad95750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ba45743600660003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b56906135e6565b60405180910390fd5b43600660003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c505750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ca65750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d6157601454821115611cf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce790613652565b60405180910390fd5b60155482611cfd8561092e565b611d079190613672565b1115611d48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3f906136f2565b60405180910390fd5b600f6000815480929190611d5b90612f04565b91905055505b611d9d6064611d8f600c54600f5411611d7c57600854611d80565b600a545b8561257a90919063ffffffff16565b6125f490919063ffffffff16565b9050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e2857503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611e6c57611e696064611e5b600d54600f5411611e4857600954611e4c565b600b545b8561257a90919063ffffffff16565b6125f490919063ffffffff16565b90505b6000611e773061092e565b9050601960159054906101000a900460ff16158015611ee35750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611efb5750601960169054906101000a900460ff165b8015611f08575060165481115b8015611f175750600e54600f54115b15611f5357611f39611f3484611f2f8460175461263e565b61263e565b612276565b60004790506000811115611f5157611f504761250e565b5b505b505b600081111561205957611fb081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461265790919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120509190612941565b60405180910390a35b6120ab82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061215261210482846126b590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461265790919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6121f784866126b590919063ffffffff16565b6040516122049190612941565b60405180910390a350505050565b600083831115829061225a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225191906127f2565b60405180910390fd5b50600083856122699190613712565b9050809150509392505050565b6001601960156101000a81548160ff02191690831515021790555060008103156124f057601960149054906101000a900460ff16156124f0576000600267ffffffffffffffff8111156122cc576122cb612a18565b5b6040519080825280602002602001820160405280156122fa5781602001602082028036833780820191505090505b509050308160008151811061231257612311612ed5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123dd919061305f565b816001815181106123f1576123f0612ed5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061245830601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611521565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016124bc959493929190613804565b600060405180830381600087803b1580156124d657600080fd5b505af11580156124ea573d6000803e3d6000fd5b50505050505b6000601960156101000a81548160ff02191690831515021790555050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612576573d6000803e3d6000fd5b5050565b600080830361258c57600090506125ee565b6000828461259a9190612e27565b90508284826125a9919061388d565b146125e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e090613930565b60405180910390fd5b809150505b92915050565b600061263683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126ff565b905092915050565b600081831161264d578261264f565b815b905092915050565b60008082846126669190613672565b9050838110156126ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a29061399c565b60405180910390fd5b8091505092915050565b60006126f783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612212565b905092915050565b60008083118290612746576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273d91906127f2565b60405180910390fd5b5060008385612755919061388d565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561279c578082015181840152602081019050612781565b60008484015250505050565b6000601f19601f8301169050919050565b60006127c482612762565b6127ce818561276d565b93506127de81856020860161277e565b6127e7816127a8565b840191505092915050565b6000602082019050818103600083015261280c81846127b9565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061285382612828565b9050919050565b61286381612848565b811461286e57600080fd5b50565b6000813590506128808161285a565b92915050565b6000819050919050565b61289981612886565b81146128a457600080fd5b50565b6000813590506128b681612890565b92915050565b600080604083850312156128d3576128d261281e565b5b60006128e185828601612871565b92505060206128f2858286016128a7565b9150509250929050565b60008115159050919050565b612911816128fc565b82525050565b600060208201905061292c6000830184612908565b92915050565b61293b81612886565b82525050565b60006020820190506129566000830184612932565b92915050565b6000806000606084860312156129755761297461281e565b5b600061298386828701612871565b935050602061299486828701612871565b92505060406129a5868287016128a7565b9150509250925092565b600060ff82169050919050565b6129c5816129af565b82525050565b60006020820190506129e060008301846129bc565b92915050565b6000602082840312156129fc576129fb61281e565b5b6000612a0a84828501612871565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612a50826127a8565b810181811067ffffffffffffffff82111715612a6f57612a6e612a18565b5b80604052505050565b6000612a82612814565b9050612a8e8282612a47565b919050565b600067ffffffffffffffff821115612aae57612aad612a18565b5b602082029050602081019050919050565b600080fd5b6000612ad7612ad284612a93565b612a78565b90508083825260208201905060208402830185811115612afa57612af9612abf565b5b835b81811015612b235780612b0f8882612871565b845260208401935050602081019050612afc565b5050509392505050565b600082601f830112612b4257612b41612a13565b5b8135612b52848260208601612ac4565b91505092915050565b612b64816128fc565b8114612b6f57600080fd5b50565b600081359050612b8181612b5b565b92915050565b60008060408385031215612b9e57612b9d61281e565b5b600083013567ffffffffffffffff811115612bbc57612bbb612823565b5b612bc885828601612b2d565b9250506020612bd985828601612b72565b9150509250929050565b612bec81612848565b82525050565b6000602082019050612c076000830184612be3565b92915050565b60008060408385031215612c2457612c2361281e565b5b6000612c3285828601612871565b9250506020612c4385828601612871565b9150509250929050565b600060208284031215612c6357612c6261281e565b5b6000612c71848285016128a7565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612d0057808604811115612cdc57612cdb612c7a565b5b6001851615612ceb5780820291505b8081029050612cf985612ca9565b9450612cc0565b94509492505050565b600082612d195760019050612dd5565b81612d275760009050612dd5565b8160018114612d3d5760028114612d4757612d76565b6001915050612dd5565b60ff841115612d5957612d58612c7a565b5b8360020a915084821115612d7057612d6f612c7a565b5b50612dd5565b5060208310610133831016604e8410600b8410161715612dab5782820a905083811115612da657612da5612c7a565b5b612dd5565b612db88484846001612cb6565b92509050818404811115612dcf57612dce612c7a565b5b81810290505b9392505050565b6000612de782612886565b9150612df2836129af565b9250612e1f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612d09565b905092915050565b6000612e3282612886565b9150612e3d83612886565b9250828202612e4b81612886565b91508282048414831517612e6257612e61612c7a565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612e9f60208361276d565b9150612eaa82612e69565b602082019050919050565b60006020820190508181036000830152612ece81612e92565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612f0f82612886565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f4157612f40612c7a565b5b600182019050919050565b7f4f6e6c7920746865206465706c6f7965722063616e2063616c6c20746869732060008201527f66756e6374696f6e2e0000000000000000000000000000000000000000000000602082015250565b6000612fa860298361276d565b9150612fb382612f4c565b604082019050919050565b60006020820190508181036000830152612fd781612f9b565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061301460178361276d565b915061301f82612fde565b602082019050919050565b6000602082019050818103600083015261304381613007565b9050919050565b6000815190506130598161285a565b92915050565b6000602082840312156130755761307461281e565b5b60006130838482850161304a565b91505092915050565b60006040820190506130a16000830185612be3565b6130ae6020830184612be3565b9392505050565b6000819050919050565b6000819050919050565b60006130e46130df6130da846130b5565b6130bf565b612886565b9050919050565b6130f4816130c9565b82525050565b600060c08201905061310f6000830189612be3565b61311c6020830188612932565b61312960408301876130eb565b61313660608301866130eb565b6131436080830185612be3565b61315060a0830184612932565b979650505050505050565b60008151905061316a81612890565b92915050565b6000806000606084860312156131895761318861281e565b5b60006131978682870161315b565b93505060206131a88682870161315b565b92505060406131b98682870161315b565b9150509250925092565b60006040820190506131d86000830185612be3565b6131e56020830184612932565b9392505050565b6000815190506131fb81612b5b565b92915050565b6000602082840312156132175761321661281e565b5b6000613225848285016131ec565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061328a60248361276d565b91506132958261322e565b604082019050919050565b600060208201905081810360008301526132b98161327d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061331c60228361276d565b9150613327826132c0565b604082019050919050565b6000602082019050818103600083015261334b8161330f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006133ae60258361276d565b91506133b982613352565b604082019050919050565b600060208201905081810360008301526133dd816133a1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061344060238361276d565b915061344b826133e4565b604082019050919050565b6000602082019050818103600083015261346f81613433565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006134d260298361276d565b91506134dd82613476565b604082019050919050565b60006020820190508181036000830152613501816134c5565b9050919050565b7f4164647265737320697320626c61636b6c697374656400000000000000000000600082015250565b600061353e60168361276d565b915061354982613508565b602082019050919050565b6000602082019050818103600083015261356d81613531565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f60008201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b60006135d060248361276d565b91506135db82613574565b604082019050919050565b600060208201905081810360008301526135ff816135c3565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061363c60198361276d565b915061364782613606565b602082019050919050565b6000602082019050818103600083015261366b8161362f565b9050919050565b600061367d82612886565b915061368883612886565b92508282019050808211156136a05761369f612c7a565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006136dc601a8361276d565b91506136e7826136a6565b602082019050919050565b6000602082019050818103600083015261370b816136cf565b9050919050565b600061371d82612886565b915061372883612886565b92508282039050818111156137405761373f612c7a565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61377b81612848565b82525050565b600061378d8383613772565b60208301905092915050565b6000602082019050919050565b60006137b182613746565b6137bb8185613751565b93506137c683613762565b8060005b838110156137f75781516137de8882613781565b97506137e983613799565b9250506001810190506137ca565b5085935050505092915050565b600060a0820190506138196000830188612932565b61382660208301876130eb565b818103604083015261383881866137a6565b90506138476060830185612be3565b6138546080830184612932565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061389882612886565b91506138a383612886565b9250826138b3576138b261385e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061391a60218361276d565b9150613925826138be565b604082019050919050565b600060208201905081810360008301526139498161390d565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613986601b8361276d565b915061399182613950565b602082019050919050565b600060208201905081810360008301526139b581613979565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220843de707c2dfa1630ada5452477c87a035c20aa16ae9d9da34ca64af046ad13d64736f6c63430008130033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c80637d1db4a5116100d1578063bf474bed1161008a578063dd62ed3e11610064578063dd62ed3e14610517578063ec1f3f6314610554578063ec6c12901461057d578063facff4dc1461059457610171565b8063bf474bed146104aa578063c876d0b9146104d5578063c9567bf91461050057610171565b80637d1db4a5146103845780638da5cb5b146103af5780638f9a55c0146103da57806390683e8c1461040557806395d89b4114610442578063a9059cbb1461046d57610171565b80633bbac579116101235780633bbac5791461029c57806351bc3c85146102d9578063567fef5b146102f057806370a0823114610319578063715018a614610356578063751039fc1461036d57610171565b806306fdde0314610176578063095ea7b3146101a15780630faee56f146101de57806318160ddd1461020957806323b872dd14610234578063313ce5671461027157610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105ab565b60405161019891906127f2565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c391906128bc565b6105e8565b6040516101d59190612917565b60405180910390f35b3480156101ea57600080fd5b506101f3610606565b6040516102009190612941565b60405180910390f35b34801561021557600080fd5b5061021e61060c565b60405161022b9190612941565b60405180910390f35b34801561024057600080fd5b5061025b6004803603810190610256919061295c565b61062f565b6040516102689190612917565b60405180910390f35b34801561027d57600080fd5b50610286610708565b60405161029391906129cb565b60405180910390f35b3480156102a857600080fd5b506102c360048036038101906102be91906129e6565b610711565b6040516102d09190612917565b60405180910390f35b3480156102e557600080fd5b506102ee610767565b005b3480156102fc57600080fd5b5061031760048036038101906103129190612b87565b610804565b005b34801561032557600080fd5b50610340600480360381019061033b91906129e6565b61092e565b60405161034d9190612941565b60405180910390f35b34801561036257600080fd5b5061036b610977565b005b34801561037957600080fd5b50610382610aca565b005b34801561039057600080fd5b50610399610c14565b6040516103a69190612941565b60405180910390f35b3480156103bb57600080fd5b506103c4610c1a565b6040516103d19190612bf2565b60405180910390f35b3480156103e657600080fd5b506103ef610c43565b6040516103fc9190612941565b60405180910390f35b34801561041157600080fd5b5061042c600480360381019061042791906129e6565b610c49565b6040516104399190612917565b60405180910390f35b34801561044e57600080fd5b50610457610c9f565b60405161046491906127f2565b60405180910390f35b34801561047957600080fd5b50610494600480360381019061048f91906128bc565b610cdc565b6040516104a19190612917565b60405180910390f35b3480156104b657600080fd5b506104bf610cfa565b6040516104cc9190612941565b60405180910390f35b3480156104e157600080fd5b506104ea610d00565b6040516104f79190612917565b60405180910390f35b34801561050c57600080fd5b50610515610d13565b005b34801561052357600080fd5b5061053e60048036038101906105399190612c0d565b61124a565b60405161054b9190612941565b60405180910390f35b34801561056057600080fd5b5061057b60048036038101906105769190612c4d565b6112d1565b005b34801561058957600080fd5b5061059261130e565b005b3480156105a057600080fd5b506105a96113b7565b005b60606040518060400160405280601b81526020017f544845203437544820504f54555320444f4e414c44205452554d500000000000815250905090565b60006105fc6105f5611519565b8484611521565b6001905092915050565b60175481565b60006008600a61061c9190612ddc565b620f424061062a9190612e27565b905090565b600061063c8484846116ea565b6106fd84610648611519565b6106f8856040518060600160405280602881526020016139bd60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106ae611519565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122129092919063ffffffff16565b611521565b600190509392505050565b60006008905090565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107a8611519565b73ffffffffffffffffffffffffffffffffffffffff16146107c857600080fd5b60006107d33061092e565b905060008111156107e8576107e781612276565b5b60004790506000811115610800576107ff8161250e565b5b5050565b61080c611519565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610899576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089090612eb5565b60405180910390fd5b60005b82518110156109295781600560008584815181106108bd576108bc612ed5565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061092190612f04565b91505061089c565b505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61097f611519565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0390612eb5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b0b611519565b73ffffffffffffffffffffffffffffffffffffffff1614610b61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5890612fbe565b60405180910390fd5b6008600a610b6f9190612ddc565b620f4240610b7d9190612e27565b6014819055506008600a610b919190612ddc565b620f4240610b9f9190612e27565b6015819055506000600760006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610bef9190612ddc565b620f4240610bfd9190612e27565b604051610c0a9190612941565b60405180910390a1565b60145481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60155481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60606040518060400160405280600281526020017f3437000000000000000000000000000000000000000000000000000000000000815250905090565b6000610cf0610ce9611519565b84846116ea565b6001905092915050565b60165481565b600760009054906101000a900460ff1681565b610d1b611519565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610da8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9f90612eb5565b60405180910390fd5b601960149054906101000a900460ff1615610df8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610def9061302a565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e9530601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610e829190612ddc565b620f4240610e909190612e27565b611521565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f26919061305f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610faf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd3919061305f565b6040518363ffffffff1660e01b8152600401610ff092919061308c565b6020604051808303816000875af115801561100f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611033919061305f565b601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306110bc3061092e565b6000806110c7610c1a565b426040518863ffffffff1660e01b81526004016110e9969594939291906130fa565b60606040518083038185885af1158015611107573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061112c9190613170565b505050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016111ce9291906131c3565b6020604051808303816000875af11580156111ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112119190613201565b506001601960166101000a81548160ff0219169083151502179055506001601960146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6001600f54116112e057600080fd5b600b5481111580156112f45750600a548111155b6112fd57600080fd5b80600b8190555080600a8190555050565b611316611519565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139a90612eb5565b60405180910390fd5b601254600a81905550601354600b81905550565b6113bf611519565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461144c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144390612eb5565b60405180910390fd5b61148f60646114816010546008600a6114659190612ddc565b620f42406114739190612e27565b61257a90919063ffffffff16565b6125f490919063ffffffff16565b6014819055506114d860646114ca6011546008600a6114ae9190612ddc565b620f42406114bc9190612e27565b61257a90919063ffffffff16565b6125f490919063ffffffff16565b6015819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf60145460405161150f9190612941565b60405180910390a1565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611590576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611587906132a0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f690613332565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116dd9190612941565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611759576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611750906133c4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bf90613456565b60405180910390fd5b6000811161180b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611802906134e8565b60405180910390fd5b6000611815610c1a565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156118835750611853610c1a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f5557600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561192c5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61193557600080fd5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119d95750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611a18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0f90613554565b60405180910390fd5b600760009054906101000a900460ff1615611ba557601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ad95750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ba45743600660003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b56906135e6565b60405180910390fd5b43600660003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c505750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ca65750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d6157601454821115611cf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce790613652565b60405180910390fd5b60155482611cfd8561092e565b611d079190613672565b1115611d48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3f906136f2565b60405180910390fd5b600f6000815480929190611d5b90612f04565b91905055505b611d9d6064611d8f600c54600f5411611d7c57600854611d80565b600a545b8561257a90919063ffffffff16565b6125f490919063ffffffff16565b9050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e2857503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611e6c57611e696064611e5b600d54600f5411611e4857600954611e4c565b600b545b8561257a90919063ffffffff16565b6125f490919063ffffffff16565b90505b6000611e773061092e565b9050601960159054906101000a900460ff16158015611ee35750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611efb5750601960169054906101000a900460ff165b8015611f08575060165481115b8015611f175750600e54600f54115b15611f5357611f39611f3484611f2f8460175461263e565b61263e565b612276565b60004790506000811115611f5157611f504761250e565b5b505b505b600081111561205957611fb081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461265790919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120509190612941565b60405180910390a35b6120ab82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061215261210482846126b590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461265790919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6121f784866126b590919063ffffffff16565b6040516122049190612941565b60405180910390a350505050565b600083831115829061225a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225191906127f2565b60405180910390fd5b50600083856122699190613712565b9050809150509392505050565b6001601960156101000a81548160ff02191690831515021790555060008103156124f057601960149054906101000a900460ff16156124f0576000600267ffffffffffffffff8111156122cc576122cb612a18565b5b6040519080825280602002602001820160405280156122fa5781602001602082028036833780820191505090505b509050308160008151811061231257612311612ed5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123dd919061305f565b816001815181106123f1576123f0612ed5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061245830601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611521565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016124bc959493929190613804565b600060405180830381600087803b1580156124d657600080fd5b505af11580156124ea573d6000803e3d6000fd5b50505050505b6000601960156101000a81548160ff02191690831515021790555050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612576573d6000803e3d6000fd5b5050565b600080830361258c57600090506125ee565b6000828461259a9190612e27565b90508284826125a9919061388d565b146125e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e090613930565b60405180910390fd5b809150505b92915050565b600061263683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126ff565b905092915050565b600081831161264d578261264f565b815b905092915050565b60008082846126669190613672565b9050838110156126ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a29061399c565b60405180910390fd5b8091505092915050565b60006126f783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612212565b905092915050565b60008083118290612746576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273d91906127f2565b60405180910390fd5b5060008385612755919061388d565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561279c578082015181840152602081019050612781565b60008484015250505050565b6000601f19601f8301169050919050565b60006127c482612762565b6127ce818561276d565b93506127de81856020860161277e565b6127e7816127a8565b840191505092915050565b6000602082019050818103600083015261280c81846127b9565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061285382612828565b9050919050565b61286381612848565b811461286e57600080fd5b50565b6000813590506128808161285a565b92915050565b6000819050919050565b61289981612886565b81146128a457600080fd5b50565b6000813590506128b681612890565b92915050565b600080604083850312156128d3576128d261281e565b5b60006128e185828601612871565b92505060206128f2858286016128a7565b9150509250929050565b60008115159050919050565b612911816128fc565b82525050565b600060208201905061292c6000830184612908565b92915050565b61293b81612886565b82525050565b60006020820190506129566000830184612932565b92915050565b6000806000606084860312156129755761297461281e565b5b600061298386828701612871565b935050602061299486828701612871565b92505060406129a5868287016128a7565b9150509250925092565b600060ff82169050919050565b6129c5816129af565b82525050565b60006020820190506129e060008301846129bc565b92915050565b6000602082840312156129fc576129fb61281e565b5b6000612a0a84828501612871565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612a50826127a8565b810181811067ffffffffffffffff82111715612a6f57612a6e612a18565b5b80604052505050565b6000612a82612814565b9050612a8e8282612a47565b919050565b600067ffffffffffffffff821115612aae57612aad612a18565b5b602082029050602081019050919050565b600080fd5b6000612ad7612ad284612a93565b612a78565b90508083825260208201905060208402830185811115612afa57612af9612abf565b5b835b81811015612b235780612b0f8882612871565b845260208401935050602081019050612afc565b5050509392505050565b600082601f830112612b4257612b41612a13565b5b8135612b52848260208601612ac4565b91505092915050565b612b64816128fc565b8114612b6f57600080fd5b50565b600081359050612b8181612b5b565b92915050565b60008060408385031215612b9e57612b9d61281e565b5b600083013567ffffffffffffffff811115612bbc57612bbb612823565b5b612bc885828601612b2d565b9250506020612bd985828601612b72565b9150509250929050565b612bec81612848565b82525050565b6000602082019050612c076000830184612be3565b92915050565b60008060408385031215612c2457612c2361281e565b5b6000612c3285828601612871565b9250506020612c4385828601612871565b9150509250929050565b600060208284031215612c6357612c6261281e565b5b6000612c71848285016128a7565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612d0057808604811115612cdc57612cdb612c7a565b5b6001851615612ceb5780820291505b8081029050612cf985612ca9565b9450612cc0565b94509492505050565b600082612d195760019050612dd5565b81612d275760009050612dd5565b8160018114612d3d5760028114612d4757612d76565b6001915050612dd5565b60ff841115612d5957612d58612c7a565b5b8360020a915084821115612d7057612d6f612c7a565b5b50612dd5565b5060208310610133831016604e8410600b8410161715612dab5782820a905083811115612da657612da5612c7a565b5b612dd5565b612db88484846001612cb6565b92509050818404811115612dcf57612dce612c7a565b5b81810290505b9392505050565b6000612de782612886565b9150612df2836129af565b9250612e1f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612d09565b905092915050565b6000612e3282612886565b9150612e3d83612886565b9250828202612e4b81612886565b91508282048414831517612e6257612e61612c7a565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612e9f60208361276d565b9150612eaa82612e69565b602082019050919050565b60006020820190508181036000830152612ece81612e92565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612f0f82612886565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f4157612f40612c7a565b5b600182019050919050565b7f4f6e6c7920746865206465706c6f7965722063616e2063616c6c20746869732060008201527f66756e6374696f6e2e0000000000000000000000000000000000000000000000602082015250565b6000612fa860298361276d565b9150612fb382612f4c565b604082019050919050565b60006020820190508181036000830152612fd781612f9b565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061301460178361276d565b915061301f82612fde565b602082019050919050565b6000602082019050818103600083015261304381613007565b9050919050565b6000815190506130598161285a565b92915050565b6000602082840312156130755761307461281e565b5b60006130838482850161304a565b91505092915050565b60006040820190506130a16000830185612be3565b6130ae6020830184612be3565b9392505050565b6000819050919050565b6000819050919050565b60006130e46130df6130da846130b5565b6130bf565b612886565b9050919050565b6130f4816130c9565b82525050565b600060c08201905061310f6000830189612be3565b61311c6020830188612932565b61312960408301876130eb565b61313660608301866130eb565b6131436080830185612be3565b61315060a0830184612932565b979650505050505050565b60008151905061316a81612890565b92915050565b6000806000606084860312156131895761318861281e565b5b60006131978682870161315b565b93505060206131a88682870161315b565b92505060406131b98682870161315b565b9150509250925092565b60006040820190506131d86000830185612be3565b6131e56020830184612932565b9392505050565b6000815190506131fb81612b5b565b92915050565b6000602082840312156132175761321661281e565b5b6000613225848285016131ec565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061328a60248361276d565b91506132958261322e565b604082019050919050565b600060208201905081810360008301526132b98161327d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061331c60228361276d565b9150613327826132c0565b604082019050919050565b6000602082019050818103600083015261334b8161330f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006133ae60258361276d565b91506133b982613352565b604082019050919050565b600060208201905081810360008301526133dd816133a1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061344060238361276d565b915061344b826133e4565b604082019050919050565b6000602082019050818103600083015261346f81613433565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006134d260298361276d565b91506134dd82613476565b604082019050919050565b60006020820190508181036000830152613501816134c5565b9050919050565b7f4164647265737320697320626c61636b6c697374656400000000000000000000600082015250565b600061353e60168361276d565b915061354982613508565b602082019050919050565b6000602082019050818103600083015261356d81613531565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f60008201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b60006135d060248361276d565b91506135db82613574565b604082019050919050565b600060208201905081810360008301526135ff816135c3565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061363c60198361276d565b915061364782613606565b602082019050919050565b6000602082019050818103600083015261366b8161362f565b9050919050565b600061367d82612886565b915061368883612886565b92508282019050808211156136a05761369f612c7a565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006136dc601a8361276d565b91506136e7826136a6565b602082019050919050565b6000602082019050818103600083015261370b816136cf565b9050919050565b600061371d82612886565b915061372883612886565b92508282039050818111156137405761373f612c7a565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61377b81612848565b82525050565b600061378d8383613772565b60208301905092915050565b6000602082019050919050565b60006137b182613746565b6137bb8185613751565b93506137c683613762565b8060005b838110156137f75781516137de8882613781565b97506137e983613799565b9250506001810190506137ca565b5085935050505092915050565b600060a0820190506138196000830188612932565b61382660208301876130eb565b818103604083015261383881866137a6565b90506138476060830185612be3565b6138546080830184612932565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061389882612886565b91506138a383612886565b9250826138b3576138b261385e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061391a60218361276d565b9150613925826138be565b604082019050919050565b600060208201905081810360008301526139498161390d565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613986601b8361276d565b915061399182613950565b602082019050919050565b600060208201905081810360008301526139b581613979565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220843de707c2dfa1630ada5452477c87a035c20aa16ae9d9da34ca64af046ad13d64736f6c63430008130033

Deployed Bytecode Sourcemap

3597:9434:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5788:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6753:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5062:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6068:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6923:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5976:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11445;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12255:348;;;;;;;;;;;;;:::i;:::-;;12612:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6297:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2674:148;;;;;;;;;;;;;:::i;:::-;;10657:278;;;;;;;;;;;;;:::i;:::-;;4882:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2458:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4942:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6172:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5880:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6425:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5002:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4049:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11537:671;;;;;;;;;;;;;:::i;:::-;;6601:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12823:205;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11195:140;;;;;;;;;;;;;:::i;:::-;;10944:242;;;;;;;;;;;;;:::i;:::-;;5788:83;5825:13;5858:5;;;;;;;;;;;;;;;;;5851:12;;5788:83;:::o;6753:161::-;6828:4;6845:39;6854:12;:10;:12::i;:::-;6868:7;6877:6;6845:8;:39::i;:::-;6902:4;6895:11;;6753:161;;;;:::o;5062:48::-;;;;:::o;6068:95::-;6121:7;4682:1;4735:2;:13;;;;:::i;:::-;4725:7;:23;;;;:::i;:::-;6141:14;;6068:95;:::o;6923:313::-;7021:4;7038:36;7048:6;7056:9;7067:6;7038:9;:36::i;:::-;7085:121;7094:6;7102:12;:10;:12::i;:::-;7116:89;7154:6;7116:89;;;;;;;;;;;;;;;;;:11;:19;7128:6;7116:19;;;;;;;;;;;;;;;:33;7136:12;:10;:12::i;:::-;7116:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7085:8;:121::i;:::-;7224:4;7217:11;;6923:313;;;;;:::o;5976:83::-;6017:5;4682:1;6035:16;;5976:83;:::o;11445:::-;11492:4;11513;:7;11518:1;11513:7;;;;;;;;;;;;;;;;;;;;;;;;;11506:14;;11445:83;;;:::o;12255:348::-;12319:10;;;;;;;;;;;12305:24;;:12;:10;:12::i;:::-;:24;;;12297:33;;;;;;12341:20;12362:24;12380:4;12362:9;:24::i;:::-;12341:45;;12413:1;12400:12;:14;12397:73;;;12428:30;12445:12;12428:16;:30::i;:::-;12397:73;12480:18;12499:21;12480:40;;12545:1;12534:10;:12;12531:65;;;12560:24;12573:10;12560:12;:24::i;:::-;12531:65;12286:317;;12255:348::o;12612:202::-;2596:12;:10;:12::i;:::-;2586:22;;:6;;;;;;;;;;:22;;;2578:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12705:9:::1;12700:107;12724:8;:15;12720:1;:19;12700:107;;;12790:5;12761:13;:26;12775:8;12784:1;12775:11;;;;;;;;:::i;:::-;;;;;;;;12761:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;12741:3;;;;;:::i;:::-;;;;12700:107;;;;12612:202:::0;;:::o;6297:119::-;6363:7;6390:9;:18;6400:7;6390:18;;;;;;;;;;;;;;;;6383:25;;6297:119;;;:::o;2674:148::-;2596:12;:10;:12::i;:::-;2586:22;;:6;;;;;;;;;;:22;;;2578:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2781:1:::1;2744:40;;2765:6;::::0;::::1;;;;;;;;2744:40;;;;;;;;;;;;2812:1;2795:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2674:148::o:0;10657:278::-;10725:10;;;;;;;;;;;10709:26;;:12;:10;:12::i;:::-;:26;;;10701:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;4682:1;4735:2;:13;;;;:::i;:::-;4725:7;:23;;;;:::i;:::-;10792:12;:22;;;;4682:1;4735:2;:13;;;;:::i;:::-;4725:7;:23;;;;:::i;:::-;10825:14;:22;;;;10879:5;10858:20;;:26;;;;;;;;;;;;;;;;;;10900:27;4682:1;4735:2;:13;;;;:::i;:::-;4725:7;:23;;;;:::i;:::-;10900:27;;;;;;:::i;:::-;;;;;;;;10657:278::o;4882:53::-;;;;:::o;2458:79::-;2496:7;2523:6;;;;;;;;;;;2516:13;;2458:79;:::o;4942:53::-;;;;:::o;6172:115::-;6237:4;6257:13;:19;6271:4;6257:19;;;;;;;;;;;;;;;;;;;;;;;;;6250:26;;6172:115;;;:::o;5880:87::-;5919:13;5952:7;;;;;;;;;;;;;;;;;5945:14;;5880:87;:::o;6425:167::-;6503:4;6520:42;6530:12;:10;:12::i;:::-;6544:9;6555:6;6520:9;:42::i;:::-;6580:4;6573:11;;6425:167;;;;:::o;5002:53::-;;;;:::o;4049:40::-;;;;;;;;;;;;;:::o;11537:671::-;2596:12;:10;:12::i;:::-;2586:22;;:6;;;;;;;;;;:22;;;2578:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11601:11:::1;;;;;;;;;;;11600:12;11592:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11687:42;11650:15;;:80;;;;;;;;;;;;;;;;;;11741:58;11758:4;11773:15;;;;;;;;;;;4682:1;4735:2;:13;;;;:::i;:::-;4725:7;:23;;;;:::i;:::-;11741:8;:58::i;:::-;11844:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11826:55;;;11890:4;11897:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11826:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11810:13;;:110;;;;;;;;;;;;;;;;;;11931:15;;;;;;;;;;;:31;;;11970:21;12001:4;12007:24;12025:4;12007:9;:24::i;:::-;12032:1;12034::::0;12036:7:::1;:5;:7::i;:::-;12044:15;11931:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12078:13;;;;;;;;;;;12071:29;;;12109:15;;;;;;;;;;;12127:14;12071:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12167:4;12153:11;;:18;;;;;;;;;;;;;;;;;;12196:4;12182:11;;:18;;;;;;;;;;;;;;;;;;11537:671::o:0;6601:143::-;6682:7;6709:11;:18;6721:5;6709:18;;;;;;;;;;;;;;;:27;6728:7;6709:27;;;;;;;;;;;;;;;;6702:34;;6601:143;;;;:::o;12823:205::-;12894:1;12884:9;;:11;12876:20;;;;;;12922:13;;12913:7;:22;;:47;;;;;12948:12;;12939:7;:21;;12913:47;12905:56;;;;;;12984:7;12970:13;:21;;;;13013:7;13000:12;:20;;;;12823:205;:::o;11195:140::-;2596:12;:10;:12::i;:::-;2586:22;;:6;;;;;;;;;;:22;;;2578:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11263:18:::1;;11248:12;:33;;;;11308:19;;11292:13;:35;;;;11195:140::o:0;10944:242::-;2596:12;:10;:12::i;:::-;2586:22;;:6;;;;;;;;;;:22;;;2578:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11018:40:::1;11054:3;11018:31;11030:18;;4682:1;4735:2;:13;;;;:::i;:::-;4725:7;:23;;;;:::i;:::-;11018:11;;:31;;;;:::i;:::-;:35;;:40;;;;:::i;:::-;11003:12;:55;;;;11086:44;11126:3;11086:35;11098:22;;4682:1;4735:2;:13;;;;:::i;:::-;4725:7;:23;;;;:::i;:::-;11086:11;;:35;;;;:::i;:::-;:39;;:44;;;;:::i;:::-;11069:14;:61;;;;11146:32;11165:12;;11146:32;;;;;;:::i;:::-;;;;;;;;10944:242::o:0;202:98::-;255:7;282:10;275:17;;202:98;:::o;7245:335::-;7355:1;7338:19;;:5;:19;;;7330:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7436:1;7417:21;;:7;:21;;;7409:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7518:6;7488:11;:18;7500:5;7488:18;;;;;;;;;;;;;;;:27;7507:7;7488:27;;;;;;;;;;;;;;;:36;;;;7556:7;7540:32;;7549:5;7540:32;;;7565:6;7540:32;;;;;;:::i;:::-;;;;;;;;7245:335;;;:::o;7590:2384::-;7694:1;7678:18;;:4;:18;;;7670:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7771:1;7757:16;;:2;:16;;;7749:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7841:1;7832:6;:10;7824:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7899:17;7943:7;:5;:7::i;:::-;7935:15;;:4;:15;;;;:32;;;;;7960:7;:5;:7::i;:::-;7954:13;;:2;:13;;;;7935:32;7931:1686;;;7993:4;:10;7998:4;7993:10;;;;;;;;;;;;;;;;;;;;;;;;;7992:11;:24;;;;;8008:4;:8;8013:2;8008:8;;;;;;;;;;;;;;;;;;;;;;;;;8007:9;7992:24;7984:33;;;;;;8041:13;:17;8055:2;8041:17;;;;;;;;;;;;;;;;;;;;;;;;;8040:18;:42;;;;;8063:13;:19;8077:4;8063:19;;;;;;;;;;;;;;;;;;;;;;;;;8062:20;8040:42;8032:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;8131:20;;;;;;;;;;;8127:346;;;8190:15;;;;;;;;;;;8176:30;;:2;:30;;;;:62;;;;;8224:13;;;;;;;;;;;8210:28;;:2;:28;;;;8176:62;8172:286;;;8311:12;8269:28;:39;8298:9;8269:39;;;;;;;;;;;;;;;;:54;8261:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;8426:12;8384:28;:39;8413:9;8384:39;;;;;;;;;;;;;;;:54;;;;8172:286;8127:346;8502:13;;;;;;;;;;;8494:21;;:4;:21;;;:55;;;;;8533:15;;;;;;;;;;;8519:30;;:2;:30;;;;8494:55;:83;;;;;8555:18;:22;8574:2;8555:22;;;;;;;;;;;;;;;;;;;;;;;;;8553:24;8494:83;8490:313;;;8617:12;;8607:6;:22;;8599:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8712:14;;8702:6;8686:13;8696:2;8686:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8678:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8776:9;;:11;;;;;;;;;:::i;:::-;;;;;;8490:313;8835:76;8907:3;8835:67;8857:15;;8847:9;;:25;8846:55;;8887:14;;8846:55;;;8874:12;;8846:55;8835:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8823:88;;8935:13;;;;;;;;;;;8929:19;;:2;:19;;;:43;;;;;8967:4;8952:20;;:4;:20;;;;8929:43;8926:174;;;9005:79;9080:3;9005:70;9027:16;;9017:9;;:26;9016:58;;9059:15;;9016:58;;;9045:13;;9016:58;9005:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8993:91;;8926:174;9117:28;9148:24;9166:4;9148:9;:24::i;:::-;9117:55;;9192:6;;;;;;;;;;;9191:7;:30;;;;;9208:13;;;;;;;;;;;9202:19;;:2;:19;;;9191:30;:45;;;;;9225:11;;;;;;;;;;;9191:45;:87;;;;;9261:17;;9240:20;:38;9191:87;:119;;;;;9292:18;;9282:9;;:28;9191:119;9187:419;;;9331:67;9348:49;9352:6;9359:37;9363:20;9384:11;;9359:3;:37::i;:::-;9348:3;:49::i;:::-;9331:16;:67::i;:::-;9417:26;9446:21;9417:50;;9510:1;9489:18;:22;9486:105;;;9536:35;9549:21;9536:12;:35::i;:::-;9486:105;9312:294;9187:419;7969:1648;7931:1686;9643:1;9633:9;:11;9630:161;;;9683:39;9712:9;9683;:24;9701:4;9683:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9658:9;:24;9676:4;9658:24;;;;;;;;;;;;;;;:64;;;;9763:4;9740:39;;9749:4;9740:39;;;9769:9;9740:39;;;;;;:::i;:::-;;;;;;;;9630:161;9817:27;9837:6;9817:9;:15;9827:4;9817:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9801:9;:15;9811:4;9801:15;;;;;;;;;;;;;;;:43;;;;9869:40;9887:21;9898:9;9887:6;:10;;:21;;;;:::i;:::-;9869:9;:13;9879:2;9869:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9855:9;:13;9865:2;9855:13;;;;;;;;;;;;;;;:54;;;;9940:2;9925:41;;9934:4;9925:41;;;9944:21;9955:9;9944:6;:10;;:21;;;;:::i;:::-;9925:41;;;;;;:::i;:::-;;;;;;;;7659:2315;7590:2384;;;:::o;1343:190::-;1429:7;1462:1;1457;:6;;1465:12;1449:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1489:9;1505:1;1501;:5;;;;:::i;:::-;1489:17;;1524:1;1517:8;;;1343:190;;;;;:::o;10093:555::-;5403:4;5394:6;;:13;;;;;;;;;;;;;;;;;;10187:1:::1;10174:11;:14:::0;10171:27;10190:7:::1;10171:27;10212:11;;;;;;;;;;;10208:25:::0;10225:7:::1;10208:25;10243:21;10281:1;10267:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10243:40;;10312:4;10294;10299:1;10294:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10338:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10328:4;10333:1;10328:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10371:62;10388:4;10403:15;;;;;;;;;;;10421:11;10371:8;:62::i;:::-;10444:15;;;;;;;;;;;:66;;;10525:11;10551:1;10567:4;10594;10614:15;10444:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10160:488;5418:1;5439:5:::0;5430:6;;:14;;;;;;;;;;;;;;;;;;10093:555;:::o;11344:92::-;11401:10;;;;;;;;;;;:19;;:27;11421:6;11401:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11344:92;:::o;1542:246::-;1600:7;1629:1;1624;:6;1620:47;;1654:1;1647:8;;;;1620:47;1677:9;1693:1;1689;:5;;;;:::i;:::-;1677:17;;1722:1;1717;1713;:5;;;;:::i;:::-;:10;1705:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1779:1;1772:8;;;1542:246;;;;;:::o;1797:132::-;1855:7;1882:39;1886:1;1889;1882:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1875:46;;1797:132;;;;:::o;9986:98::-;10043:7;10070:1;10068;:3;10067:9;;10075:1;10067:9;;;10073:1;10067:9;10060:16;;9986:98;;;;:::o;1010:179::-;1068:7;1088:9;1104:1;1100;:5;;;;:::i;:::-;1088:17;;1129:1;1124;:6;;1116:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1180:1;1173:8;;;1010:179;;;;:::o;1198:136::-;1256:7;1283:43;1287:1;1290;1283:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1276:50;;1198:136;;;;:::o;1938:189::-;2024:7;2056:1;2052;:5;2059:12;2044:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2083:9;2099:1;2095;:5;;;;:::i;:::-;2083:17;;2118:1;2111:8;;;1938:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:117::-;5297:1;5294;5287:12;5311:180;5359:77;5356:1;5349:88;5456:4;5453:1;5446:15;5480:4;5477:1;5470:15;5497:281;5580:27;5602:4;5580:27;:::i;:::-;5572:6;5568:40;5710:6;5698:10;5695:22;5674:18;5662:10;5659:34;5656:62;5653:88;;;5721:18;;:::i;:::-;5653:88;5761:10;5757:2;5750:22;5540:238;5497:281;;:::o;5784:129::-;5818:6;5845:20;;:::i;:::-;5835:30;;5874:33;5902:4;5894:6;5874:33;:::i;:::-;5784:129;;;:::o;5919:311::-;5996:4;6086:18;6078:6;6075:30;6072:56;;;6108:18;;:::i;:::-;6072:56;6158:4;6150:6;6146:17;6138:25;;6218:4;6212;6208:15;6200:23;;5919:311;;;:::o;6236:117::-;6345:1;6342;6335:12;6376:710;6472:5;6497:81;6513:64;6570:6;6513:64;:::i;:::-;6497:81;:::i;:::-;6488:90;;6598:5;6627:6;6620:5;6613:21;6661:4;6654:5;6650:16;6643:23;;6714:4;6706:6;6702:17;6694:6;6690:30;6743:3;6735:6;6732:15;6729:122;;;6762:79;;:::i;:::-;6729:122;6877:6;6860:220;6894:6;6889:3;6886:15;6860:220;;;6969:3;6998:37;7031:3;7019:10;6998:37;:::i;:::-;6993:3;6986:50;7065:4;7060:3;7056:14;7049:21;;6936:144;6920:4;6915:3;6911:14;6904:21;;6860:220;;;6864:21;6478:608;;6376:710;;;;;:::o;7109:370::-;7180:5;7229:3;7222:4;7214:6;7210:17;7206:27;7196:122;;7237:79;;:::i;:::-;7196:122;7354:6;7341:20;7379:94;7469:3;7461:6;7454:4;7446:6;7442:17;7379:94;:::i;:::-;7370:103;;7186:293;7109:370;;;;:::o;7485:116::-;7555:21;7570:5;7555:21;:::i;:::-;7548:5;7545:32;7535:60;;7591:1;7588;7581:12;7535:60;7485:116;:::o;7607:133::-;7650:5;7688:6;7675:20;7666:29;;7704:30;7728:5;7704:30;:::i;:::-;7607:133;;;;:::o;7746:678::-;7836:6;7844;7893:2;7881:9;7872:7;7868:23;7864:32;7861:119;;;7899:79;;:::i;:::-;7861:119;8047:1;8036:9;8032:17;8019:31;8077:18;8069:6;8066:30;8063:117;;;8099:79;;:::i;:::-;8063:117;8204:78;8274:7;8265:6;8254:9;8250:22;8204:78;:::i;:::-;8194:88;;7990:302;8331:2;8357:50;8399:7;8390:6;8379:9;8375:22;8357:50;:::i;:::-;8347:60;;8302:115;7746:678;;;;;:::o;8430:118::-;8517:24;8535:5;8517:24;:::i;:::-;8512:3;8505:37;8430:118;;:::o;8554:222::-;8647:4;8685:2;8674:9;8670:18;8662:26;;8698:71;8766:1;8755:9;8751:17;8742:6;8698:71;:::i;:::-;8554:222;;;;:::o;8782:474::-;8850:6;8858;8907:2;8895:9;8886:7;8882:23;8878:32;8875:119;;;8913:79;;:::i;:::-;8875:119;9033:1;9058:53;9103:7;9094:6;9083:9;9079:22;9058:53;:::i;:::-;9048:63;;9004:117;9160:2;9186:53;9231:7;9222:6;9211:9;9207:22;9186:53;:::i;:::-;9176:63;;9131:118;8782:474;;;;;:::o;9262:329::-;9321:6;9370:2;9358:9;9349:7;9345:23;9341:32;9338:119;;;9376:79;;:::i;:::-;9338:119;9496:1;9521:53;9566:7;9557:6;9546:9;9542:22;9521:53;:::i;:::-;9511:63;;9467:117;9262:329;;;;:::o;9597:180::-;9645:77;9642:1;9635:88;9742:4;9739:1;9732:15;9766:4;9763:1;9756:15;9783:102;9825:8;9872:5;9869:1;9865:13;9844:34;;9783:102;;;:::o;9891:848::-;9952:5;9959:4;9983:6;9974:15;;10007:5;9998:14;;10021:712;10042:1;10032:8;10029:15;10021:712;;;10137:4;10132:3;10128:14;10122:4;10119:24;10116:50;;;10146:18;;:::i;:::-;10116:50;10196:1;10186:8;10182:16;10179:451;;;10611:4;10604:5;10600:16;10591:25;;10179:451;10661:4;10655;10651:15;10643:23;;10691:32;10714:8;10691:32;:::i;:::-;10679:44;;10021:712;;;9891:848;;;;;;;:::o;10745:1073::-;10799:5;10990:8;10980:40;;11011:1;11002:10;;11013:5;;10980:40;11039:4;11029:36;;11056:1;11047:10;;11058:5;;11029:36;11125:4;11173:1;11168:27;;;;11209:1;11204:191;;;;11118:277;;11168:27;11186:1;11177:10;;11188:5;;;11204:191;11249:3;11239:8;11236:17;11233:43;;;11256:18;;:::i;:::-;11233:43;11305:8;11302:1;11298:16;11289:25;;11340:3;11333:5;11330:14;11327:40;;;11347:18;;:::i;:::-;11327:40;11380:5;;;11118:277;;11504:2;11494:8;11491:16;11485:3;11479:4;11476:13;11472:36;11454:2;11444:8;11441:16;11436:2;11430:4;11427:12;11423:35;11407:111;11404:246;;;11560:8;11554:4;11550:19;11541:28;;11595:3;11588:5;11585:14;11582:40;;;11602:18;;:::i;:::-;11582:40;11635:5;;11404:246;11675:42;11713:3;11703:8;11697:4;11694:1;11675:42;:::i;:::-;11660:57;;;;11749:4;11744:3;11740:14;11733:5;11730:25;11727:51;;;11758:18;;:::i;:::-;11727:51;11807:4;11800:5;11796:16;11787:25;;10745:1073;;;;;;:::o;11824:281::-;11882:5;11906:23;11924:4;11906:23;:::i;:::-;11898:31;;11950:25;11966:8;11950:25;:::i;:::-;11938:37;;11994:104;12031:66;12021:8;12015:4;11994:104;:::i;:::-;11985:113;;11824:281;;;;:::o;12111:410::-;12151:7;12174:20;12192:1;12174:20;:::i;:::-;12169:25;;12208:20;12226:1;12208:20;:::i;:::-;12203:25;;12263:1;12260;12256:9;12285:30;12303:11;12285:30;:::i;:::-;12274:41;;12464:1;12455:7;12451:15;12448:1;12445:22;12425:1;12418:9;12398:83;12375:139;;12494:18;;:::i;:::-;12375:139;12159:362;12111:410;;;;:::o;12527:182::-;12667:34;12663:1;12655:6;12651:14;12644:58;12527:182;:::o;12715:366::-;12857:3;12878:67;12942:2;12937:3;12878:67;:::i;:::-;12871:74;;12954:93;13043:3;12954:93;:::i;:::-;13072:2;13067:3;13063:12;13056:19;;12715:366;;;:::o;13087:419::-;13253:4;13291:2;13280:9;13276:18;13268:26;;13340:9;13334:4;13330:20;13326:1;13315:9;13311:17;13304:47;13368:131;13494:4;13368:131;:::i;:::-;13360:139;;13087:419;;;:::o;13512:180::-;13560:77;13557:1;13550:88;13657:4;13654:1;13647:15;13681:4;13678:1;13671:15;13698:233;13737:3;13760:24;13778:5;13760:24;:::i;:::-;13751:33;;13806:66;13799:5;13796:77;13793:103;;13876:18;;:::i;:::-;13793:103;13923:1;13916:5;13912:13;13905:20;;13698:233;;;:::o;13937:228::-;14077:34;14073:1;14065:6;14061:14;14054:58;14146:11;14141:2;14133:6;14129:15;14122:36;13937:228;:::o;14171:366::-;14313:3;14334:67;14398:2;14393:3;14334:67;:::i;:::-;14327:74;;14410:93;14499:3;14410:93;:::i;:::-;14528:2;14523:3;14519:12;14512:19;;14171:366;;;:::o;14543:419::-;14709:4;14747:2;14736:9;14732:18;14724:26;;14796:9;14790:4;14786:20;14782:1;14771:9;14767:17;14760:47;14824:131;14950:4;14824:131;:::i;:::-;14816:139;;14543:419;;;:::o;14968:173::-;15108:25;15104:1;15096:6;15092:14;15085:49;14968:173;:::o;15147:366::-;15289:3;15310:67;15374:2;15369:3;15310:67;:::i;:::-;15303:74;;15386:93;15475:3;15386:93;:::i;:::-;15504:2;15499:3;15495:12;15488:19;;15147:366;;;:::o;15519:419::-;15685:4;15723:2;15712:9;15708:18;15700:26;;15772:9;15766:4;15762:20;15758:1;15747:9;15743:17;15736:47;15800:131;15926:4;15800:131;:::i;:::-;15792:139;;15519:419;;;:::o;15944:143::-;16001:5;16032:6;16026:13;16017:22;;16048:33;16075:5;16048:33;:::i;:::-;15944:143;;;;:::o;16093:351::-;16163:6;16212:2;16200:9;16191:7;16187:23;16183:32;16180:119;;;16218:79;;:::i;:::-;16180:119;16338:1;16363:64;16419:7;16410:6;16399:9;16395:22;16363:64;:::i;:::-;16353:74;;16309:128;16093:351;;;;:::o;16450:332::-;16571:4;16609:2;16598:9;16594:18;16586:26;;16622:71;16690:1;16679:9;16675:17;16666:6;16622:71;:::i;:::-;16703:72;16771:2;16760:9;16756:18;16747:6;16703:72;:::i;:::-;16450:332;;;;;:::o;16788:85::-;16833:7;16862:5;16851:16;;16788:85;;;:::o;16879:60::-;16907:3;16928:5;16921:12;;16879:60;;;:::o;16945:158::-;17003:9;17036:61;17054:42;17063:32;17089:5;17063:32;:::i;:::-;17054:42;:::i;:::-;17036:61;:::i;:::-;17023:74;;16945:158;;;:::o;17109:147::-;17204:45;17243:5;17204:45;:::i;:::-;17199:3;17192:58;17109:147;;:::o;17262:807::-;17511:4;17549:3;17538:9;17534:19;17526:27;;17563:71;17631:1;17620:9;17616:17;17607:6;17563:71;:::i;:::-;17644:72;17712:2;17701:9;17697:18;17688:6;17644:72;:::i;:::-;17726:80;17802:2;17791:9;17787:18;17778:6;17726:80;:::i;:::-;17816;17892:2;17881:9;17877:18;17868:6;17816:80;:::i;:::-;17906:73;17974:3;17963:9;17959:19;17950:6;17906:73;:::i;:::-;17989;18057:3;18046:9;18042:19;18033:6;17989:73;:::i;:::-;17262:807;;;;;;;;;:::o;18075:143::-;18132:5;18163:6;18157:13;18148:22;;18179:33;18206:5;18179:33;:::i;:::-;18075:143;;;;:::o;18224:663::-;18312:6;18320;18328;18377:2;18365:9;18356:7;18352:23;18348:32;18345:119;;;18383:79;;:::i;:::-;18345:119;18503:1;18528:64;18584:7;18575:6;18564:9;18560:22;18528:64;:::i;:::-;18518:74;;18474:128;18641:2;18667:64;18723:7;18714:6;18703:9;18699:22;18667:64;:::i;:::-;18657:74;;18612:129;18780:2;18806:64;18862:7;18853:6;18842:9;18838:22;18806:64;:::i;:::-;18796:74;;18751:129;18224:663;;;;;:::o;18893:332::-;19014:4;19052:2;19041:9;19037:18;19029:26;;19065:71;19133:1;19122:9;19118:17;19109:6;19065:71;:::i;:::-;19146:72;19214:2;19203:9;19199:18;19190:6;19146:72;:::i;:::-;18893:332;;;;;:::o;19231:137::-;19285:5;19316:6;19310:13;19301:22;;19332:30;19356:5;19332:30;:::i;:::-;19231:137;;;;:::o;19374:345::-;19441:6;19490:2;19478:9;19469:7;19465:23;19461:32;19458:119;;;19496:79;;:::i;:::-;19458:119;19616:1;19641:61;19694:7;19685:6;19674:9;19670:22;19641:61;:::i;:::-;19631:71;;19587:125;19374:345;;;;:::o;19725:223::-;19865:34;19861:1;19853:6;19849:14;19842:58;19934:6;19929:2;19921:6;19917:15;19910:31;19725:223;:::o;19954:366::-;20096:3;20117:67;20181:2;20176:3;20117:67;:::i;:::-;20110:74;;20193:93;20282:3;20193:93;:::i;:::-;20311:2;20306:3;20302:12;20295:19;;19954:366;;;:::o;20326:419::-;20492:4;20530:2;20519:9;20515:18;20507:26;;20579:9;20573:4;20569:20;20565:1;20554:9;20550:17;20543:47;20607:131;20733:4;20607:131;:::i;:::-;20599:139;;20326:419;;;:::o;20751:221::-;20891:34;20887:1;20879:6;20875:14;20868:58;20960:4;20955:2;20947:6;20943:15;20936:29;20751:221;:::o;20978:366::-;21120:3;21141:67;21205:2;21200:3;21141:67;:::i;:::-;21134:74;;21217:93;21306:3;21217:93;:::i;:::-;21335:2;21330:3;21326:12;21319:19;;20978:366;;;:::o;21350:419::-;21516:4;21554:2;21543:9;21539:18;21531:26;;21603:9;21597:4;21593:20;21589:1;21578:9;21574:17;21567:47;21631:131;21757:4;21631:131;:::i;:::-;21623:139;;21350:419;;;:::o;21775:224::-;21915:34;21911:1;21903:6;21899:14;21892:58;21984:7;21979:2;21971:6;21967:15;21960:32;21775:224;:::o;22005:366::-;22147:3;22168:67;22232:2;22227:3;22168:67;:::i;:::-;22161:74;;22244:93;22333:3;22244:93;:::i;:::-;22362:2;22357:3;22353:12;22346:19;;22005:366;;;:::o;22377:419::-;22543:4;22581:2;22570:9;22566:18;22558:26;;22630:9;22624:4;22620:20;22616:1;22605:9;22601:17;22594:47;22658:131;22784:4;22658:131;:::i;:::-;22650:139;;22377:419;;;:::o;22802:222::-;22942:34;22938:1;22930:6;22926:14;22919:58;23011:5;23006:2;22998:6;22994:15;22987:30;22802:222;:::o;23030:366::-;23172:3;23193:67;23257:2;23252:3;23193:67;:::i;:::-;23186:74;;23269:93;23358:3;23269:93;:::i;:::-;23387:2;23382:3;23378:12;23371:19;;23030:366;;;:::o;23402:419::-;23568:4;23606:2;23595:9;23591:18;23583:26;;23655:9;23649:4;23645:20;23641:1;23630:9;23626:17;23619:47;23683:131;23809:4;23683:131;:::i;:::-;23675:139;;23402:419;;;:::o;23827:228::-;23967:34;23963:1;23955:6;23951:14;23944:58;24036:11;24031:2;24023:6;24019:15;24012:36;23827:228;:::o;24061:366::-;24203:3;24224:67;24288:2;24283:3;24224:67;:::i;:::-;24217:74;;24300:93;24389:3;24300:93;:::i;:::-;24418:2;24413:3;24409:12;24402:19;;24061:366;;;:::o;24433:419::-;24599:4;24637:2;24626:9;24622:18;24614:26;;24686:9;24680:4;24676:20;24672:1;24661:9;24657:17;24650:47;24714:131;24840:4;24714:131;:::i;:::-;24706:139;;24433:419;;;:::o;24858:172::-;24998:24;24994:1;24986:6;24982:14;24975:48;24858:172;:::o;25036:366::-;25178:3;25199:67;25263:2;25258:3;25199:67;:::i;:::-;25192:74;;25275:93;25364:3;25275:93;:::i;:::-;25393:2;25388:3;25384:12;25377:19;;25036:366;;;:::o;25408:419::-;25574:4;25612:2;25601:9;25597:18;25589:26;;25661:9;25655:4;25651:20;25647:1;25636:9;25632:17;25625:47;25689:131;25815:4;25689:131;:::i;:::-;25681:139;;25408:419;;;:::o;25833:223::-;25973:34;25969:1;25961:6;25957:14;25950:58;26042:6;26037:2;26029:6;26025:15;26018:31;25833:223;:::o;26062:366::-;26204:3;26225:67;26289:2;26284:3;26225:67;:::i;:::-;26218:74;;26301:93;26390:3;26301:93;:::i;:::-;26419:2;26414:3;26410:12;26403:19;;26062:366;;;:::o;26434:419::-;26600:4;26638:2;26627:9;26623:18;26615:26;;26687:9;26681:4;26677:20;26673:1;26662:9;26658:17;26651:47;26715:131;26841:4;26715:131;:::i;:::-;26707:139;;26434:419;;;:::o;26859:175::-;26999:27;26995:1;26987:6;26983:14;26976:51;26859:175;:::o;27040:366::-;27182:3;27203:67;27267:2;27262:3;27203:67;:::i;:::-;27196:74;;27279:93;27368:3;27279:93;:::i;:::-;27397:2;27392:3;27388:12;27381:19;;27040:366;;;:::o;27412:419::-;27578:4;27616:2;27605:9;27601:18;27593:26;;27665:9;27659:4;27655:20;27651:1;27640:9;27636:17;27629:47;27693:131;27819:4;27693:131;:::i;:::-;27685:139;;27412:419;;;:::o;27837:191::-;27877:3;27896:20;27914:1;27896:20;:::i;:::-;27891:25;;27930:20;27948:1;27930:20;:::i;:::-;27925:25;;27973:1;27970;27966:9;27959:16;;27994:3;27991:1;27988:10;27985:36;;;28001:18;;:::i;:::-;27985:36;27837:191;;;;:::o;28034:176::-;28174:28;28170:1;28162:6;28158:14;28151:52;28034:176;:::o;28216:366::-;28358:3;28379:67;28443:2;28438:3;28379:67;:::i;:::-;28372:74;;28455:93;28544:3;28455:93;:::i;:::-;28573:2;28568:3;28564:12;28557:19;;28216:366;;;:::o;28588:419::-;28754:4;28792:2;28781:9;28777:18;28769:26;;28841:9;28835:4;28831:20;28827:1;28816:9;28812:17;28805:47;28869:131;28995:4;28869:131;:::i;:::-;28861:139;;28588:419;;;:::o;29013:194::-;29053:4;29073:20;29091:1;29073:20;:::i;:::-;29068:25;;29107:20;29125:1;29107:20;:::i;:::-;29102:25;;29151:1;29148;29144:9;29136:17;;29175:1;29169:4;29166:11;29163:37;;;29180:18;;:::i;:::-;29163:37;29013:194;;;;:::o;29213:114::-;29280:6;29314:5;29308:12;29298:22;;29213:114;;;:::o;29333:184::-;29432:11;29466:6;29461:3;29454:19;29506:4;29501:3;29497:14;29482:29;;29333:184;;;;:::o;29523:132::-;29590:4;29613:3;29605:11;;29643:4;29638:3;29634:14;29626:22;;29523:132;;;:::o;29661:108::-;29738:24;29756:5;29738:24;:::i;:::-;29733:3;29726:37;29661:108;;:::o;29775:179::-;29844:10;29865:46;29907:3;29899:6;29865:46;:::i;:::-;29943:4;29938:3;29934:14;29920:28;;29775:179;;;;:::o;29960:113::-;30030:4;30062;30057:3;30053:14;30045:22;;29960:113;;;:::o;30109:732::-;30228:3;30257:54;30305:5;30257:54;:::i;:::-;30327:86;30406:6;30401:3;30327:86;:::i;:::-;30320:93;;30437:56;30487:5;30437:56;:::i;:::-;30516:7;30547:1;30532:284;30557:6;30554:1;30551:13;30532:284;;;30633:6;30627:13;30660:63;30719:3;30704:13;30660:63;:::i;:::-;30653:70;;30746:60;30799:6;30746:60;:::i;:::-;30736:70;;30592:224;30579:1;30576;30572:9;30567:14;;30532:284;;;30536:14;30832:3;30825:10;;30233:608;;;30109:732;;;;:::o;30847:831::-;31110:4;31148:3;31137:9;31133:19;31125:27;;31162:71;31230:1;31219:9;31215:17;31206:6;31162:71;:::i;:::-;31243:80;31319:2;31308:9;31304:18;31295:6;31243:80;:::i;:::-;31370:9;31364:4;31360:20;31355:2;31344:9;31340:18;31333:48;31398:108;31501:4;31492:6;31398:108;:::i;:::-;31390:116;;31516:72;31584:2;31573:9;31569:18;31560:6;31516:72;:::i;:::-;31598:73;31666:3;31655:9;31651:19;31642:6;31598:73;:::i;:::-;30847:831;;;;;;;;:::o;31684:180::-;31732:77;31729:1;31722:88;31829:4;31826:1;31819:15;31853:4;31850:1;31843:15;31870:185;31910:1;31927:20;31945:1;31927:20;:::i;:::-;31922:25;;31961:20;31979:1;31961:20;:::i;:::-;31956:25;;32000:1;31990:35;;32005:18;;:::i;:::-;31990:35;32047:1;32044;32040:9;32035:14;;31870:185;;;;:::o;32061:220::-;32201:34;32197:1;32189:6;32185:14;32178:58;32270:3;32265:2;32257:6;32253:15;32246:28;32061:220;:::o;32287:366::-;32429:3;32450:67;32514:2;32509:3;32450:67;:::i;:::-;32443:74;;32526:93;32615:3;32526:93;:::i;:::-;32644:2;32639:3;32635:12;32628:19;;32287:366;;;:::o;32659:419::-;32825:4;32863:2;32852:9;32848:18;32840:26;;32912:9;32906:4;32902:20;32898:1;32887:9;32883:17;32876:47;32940:131;33066:4;32940:131;:::i;:::-;32932:139;;32659:419;;;:::o;33084:177::-;33224:29;33220:1;33212:6;33208:14;33201:53;33084:177;:::o;33267:366::-;33409:3;33430:67;33494:2;33489:3;33430:67;:::i;:::-;33423:74;;33506:93;33595:3;33506:93;:::i;:::-;33624:2;33619:3;33615:12;33608:19;;33267:366;;;:::o;33639:419::-;33805:4;33843:2;33832:9;33828:18;33820:26;;33892:9;33886:4;33882:20;33878:1;33867:9;33863:17;33856:47;33920:131;34046:4;33920:131;:::i;:::-;33912:139;;33639:419;;;:::o

Swarm Source

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