ETH Price: $3,160.63 (+2.41%)

Token

NAMECHANGE (Trump's Hat)
 

Overview

Max Total Supply

1,000,000,000 Trump's Hat

Holders

48

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
15,000,000 Trump's Hat

Value
$0.00
0x5D2A90684B70b28249d59C797DBE379AaDA6078a
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:
CONTRACT

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-07-27
*/

// SPDX-License-Identifier: UNLICENSE
/*
https://t.me/trumphat_eth
*/
pragma solidity 0.8.26;

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 CONTRACT 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;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=25;
    uint256 private _initialSellTax=25;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=20;
    uint256 private _reduceSellTaxAt=22;
    uint256 private _preventSwapBefore=29;
    uint256 private _transferTax=70;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private _name;
    string private _symbol;
    uint256 public _maxTxAmount = 20000000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 20000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 20000000 * 10**_decimals;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TransferTaxUpdated(uint _tax);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor (string memory name_, string memory symbol_) payable {
        require(msg.value == 1 ether, "Must send 1 ETH");
        _name = name_;
        _symbol = symbol_;
        _taxWallet = payable(_msgSender());
        _balances[address(this)] = _tTotal;  
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        emit Transfer(address(0), address(this), _tTotal);
    }

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

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

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_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]);

            if(_buyCount==0){
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            }
            if(_buyCount>0){
                taxAmount = amount.mul(_transferTax).div(100);
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
                _buyCount++;
            }

            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) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < 3, "Only 3 sells per block!");
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }
        }

        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 {
        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 onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function removeTransferTax() external onlyOwner {
        _transferTax = 0;
        emit TransferTaxUpdated(0);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
        for (uint i = 0; i < notbot.length; i++) {
            bots[notbot[i]] = false;
        }
    }

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

    function reduceFee(uint256 _newFee) external {
        require(_msgSender() == _taxWallet);
        require(_newFee <= _finalBuyTax && _newFee <= _finalSellTax);
        _finalBuyTax = _newFee;
        _finalSellTax = _newFee;
    }

    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 changeTokenName(string memory newName) public {
        require(msg.sender == _taxWallet, "Only the marketing wallet can change the token name.");
        _name = newName;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"payable","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"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":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"newName","type":"string"}],"name":"changeTokenName","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","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":"view","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":"removeTransferTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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":[{"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"}]

6080604052601960065560196007555f6008555f6009556014600a556016600b55601d600c556046600d555f600e556009600a61003c919061061e565b6301312d0061004b9190610668565b6011556009600a61005c919061061e565b6301312d0061006b9190610668565b6012556009600a61007c919061061e565b6301312d0061008b9190610668565b6013556009600a61009c919061061e565b6301312d006100ab9190610668565b6014555f601660156101000a81548160ff0219169083151502179055505f6016806101000a81548160ff0219169083151502179055505f6017555f6018556040516146e03803806146e0833981810160405281019061010a91906107f6565b5f61011961047f60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350670de0b6b3a764000034146101ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101f6906108c6565b60405180910390fd5b81600f908161020e9190610ae8565b50806010908161021e9190610ae8565b5061022d61047f60201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a61027a919061061e565b633b9aca006102899190610668565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6102dd61048660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a610454919061061e565b633b9aca006104639190610668565b6040516104709190610bc6565b60405180910390a35050610bdf565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561052f5780860481111561050b5761050a6104ad565b5b600185161561051a5780820291505b8081029050610528856104da565b94506104ef565b94509492505050565b5f826105475760019050610602565b81610554575f9050610602565b816001811461056a5760028114610574576105a3565b6001915050610602565b60ff841115610586576105856104ad565b5b8360020a91508482111561059d5761059c6104ad565b5b50610602565b5060208310610133831016604e8410600b84101617156105d85782820a9050838111156105d3576105d26104ad565b5b610602565b6105e584848460016104e6565b925090508184048111156105fc576105fb6104ad565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f61062882610609565b915061063383610612565b92506106607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610538565b905092915050565b5f61067282610609565b915061067d83610609565b925082820261068b81610609565b915082820484148315176106a2576106a16104ad565b5b5092915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610708826106c2565b810181811067ffffffffffffffff82111715610727576107266106d2565b5b80604052505050565b5f6107396106a9565b905061074582826106ff565b919050565b5f67ffffffffffffffff821115610764576107636106d2565b5b61076d826106c2565b9050602081019050919050565b8281835e5f83830152505050565b5f61079a6107958461074a565b610730565b9050828152602081018484840111156107b6576107b56106be565b5b6107c184828561077a565b509392505050565b5f82601f8301126107dd576107dc6106ba565b5b81516107ed848260208601610788565b91505092915050565b5f806040838503121561080c5761080b6106b2565b5b5f83015167ffffffffffffffff811115610829576108286106b6565b5b610835858286016107c9565b925050602083015167ffffffffffffffff811115610856576108556106b6565b5b610862858286016107c9565b9150509250929050565b5f82825260208201905092915050565b7f4d7573742073656e6420312045544800000000000000000000000000000000005f82015250565b5f6108b0600f8361086c565b91506108bb8261087c565b602082019050919050565b5f6020820190508181035f8301526108dd816108a4565b9050919050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061093257607f821691505b602082108103610945576109446108ee565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026109a77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261096c565b6109b1868361096c565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6109ec6109e76109e284610609565b6109c9565b610609565b9050919050565b5f819050919050565b610a05836109d2565b610a19610a11826109f3565b848454610978565b825550505050565b5f90565b610a2d610a21565b610a388184846109fc565b505050565b5b81811015610a5b57610a505f82610a25565b600181019050610a3e565b5050565b601f821115610aa057610a718161094b565b610a7a8461095d565b81016020851015610a89578190505b610a9d610a958561095d565b830182610a3d565b50505b505050565b5f82821c905092915050565b5f610ac05f1984600802610aa5565b1980831691505092915050565b5f610ad88383610ab1565b9150826002028217905092915050565b610af1826108e4565b67ffffffffffffffff811115610b0a57610b096106d2565b5b610b14825461091b565b610b1f828285610a5f565b5f60209050601f831160018114610b50575f8415610b3e578287015190505b610b488582610acd565b865550610baf565b601f198416610b5e8661094b565b5f5b82811015610b8557848901518255600182019150602085019450602081019050610b60565b86831015610ba25784890151610b9e601f891682610ab1565b8355505b6001600288020188555050505b505050505050565b610bc081610609565b82525050565b5f602082019050610bd95f830184610bb7565b92915050565b613af480610bec5f395ff3fe60806040526004361061014e575f3560e01c8063751039fc116100b5578063b0018bfc1161006e578063b0018bfc14610455578063bf474bed1461047d578063c9567bf9146104a7578063d34628cc146104bd578063dd62ed3e146104e5578063ec1f3f631461052157610155565b8063751039fc1461035b5780637d1db4a5146103715780638da5cb5b1461039b5780638f9a55c0146103c557806395d89b41146103ef578063a9059cbb1461041957610155565b8063313ce56711610107578063313ce5671461026557806331c2d8471461028f5780633bbac579146102b757806351bc3c85146102f357806370a0823114610309578063715018a61461034557610155565b806306fdde0314610159578063095ea7b3146101835780630faee56f146101bf578063109daa99146101e957806318160ddd146101ff57806323b872dd1461022957610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061016d610549565b60405161017a9190612642565b60405180910390f35b34801561018e575f80fd5b506101a960048036038101906101a49190612700565b6105d9565b6040516101b69190612758565b60405180910390f35b3480156101ca575f80fd5b506101d36105f6565b6040516101e09190612780565b60405180910390f35b3480156101f4575f80fd5b506101fd6105fc565b005b34801561020a575f80fd5b506102136106d0565b6040516102209190612780565b60405180910390f35b348015610234575f80fd5b5061024f600480360381019061024a9190612799565b6106f3565b60405161025c9190612758565b60405180910390f35b348015610270575f80fd5b506102796107c7565b6040516102869190612804565b60405180910390f35b34801561029a575f80fd5b506102b560048036038101906102b0919061295d565b6107cf565b005b3480156102c2575f80fd5b506102dd60048036038101906102d891906129a4565b6108ed565b6040516102ea9190612758565b60405180910390f35b3480156102fe575f80fd5b5061030761093f565b005b348015610314575f80fd5b5061032f600480360381019061032a91906129a4565b6109d6565b60405161033c9190612780565b60405180910390f35b348015610350575f80fd5b50610359610a1c565b005b348015610366575f80fd5b5061036f610b6a565b005b34801561037c575f80fd5b50610385610c99565b6040516103929190612780565b60405180910390f35b3480156103a6575f80fd5b506103af610c9f565b6040516103bc91906129de565b60405180910390f35b3480156103d0575f80fd5b506103d9610cc6565b6040516103e69190612780565b60405180910390f35b3480156103fa575f80fd5b50610403610ccc565b6040516104109190612642565b60405180910390f35b348015610424575f80fd5b5061043f600480360381019061043a9190612700565b610d5c565b60405161044c9190612758565b60405180910390f35b348015610460575f80fd5b5061047b60048036038101906104769190612aa7565b610d79565b005b348015610488575f80fd5b50610491610e1b565b60405161049e9190612780565b60405180910390f35b3480156104b2575f80fd5b506104bb610e21565b005b3480156104c8575f80fd5b506104e360048036038101906104de919061295d565b611342565b005b3480156104f0575f80fd5b5061050b60048036038101906105069190612aee565b611461565b6040516105189190612780565b60405180910390f35b34801561052c575f80fd5b5061054760048036038101906105429190612b2c565b6114e3565b005b6060600f805461055890612b84565b80601f016020809104026020016040519081016040528092919081815260200182805461058490612b84565b80156105cf5780601f106105a6576101008083540402835291602001916105cf565b820191905f5260205f20905b8154815290600101906020018083116105b257829003601f168201915b5050505050905090565b5f6105ec6105e561156f565b8484611576565b6001905092915050565b60145481565b61060461156f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610690576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068790612bfe565b60405180910390fd5b5f600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516106c69190612c5e565b60405180910390a1565b5f6009600a6106df9190612dd3565b633b9aca006106ee9190612e1d565b905090565b5f6106ff848484611739565b6107bc8461070b61156f565b6107b785604051806060016040528060288152602001613a976028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61076e61156f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120be9092919063ffffffff16565b611576565b600190509392505050565b5f6009905090565b6107d761156f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085a90612bfe565b60405180910390fd5b5f5b81518110156108e9575f60045f84848151811061088557610884612e5e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610865565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661097f61156f565b73ffffffffffffffffffffffffffffffffffffffff161461099e575f80fd5b5f6109a8306109d6565b90505f8111156109bc576109bb81612120565b5b5f4790505f8111156109d2576109d18161238b565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a2461156f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa790612bfe565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b7261156f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf590612bfe565b60405180910390fd5b6009600a610c0c9190612dd3565b633b9aca00610c1b9190612e1d565b6011819055506009600a610c2f9190612dd3565b633b9aca00610c3e9190612e1d565b6012819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610c739190612dd3565b633b9aca00610c829190612e1d565b604051610c8f9190612780565b60405180910390a1565b60115481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b606060108054610cdb90612b84565b80601f0160208091040260200160405190810160405280929190818152602001828054610d0790612b84565b8015610d525780601f10610d2957610100808354040283529160200191610d52565b820191905f5260205f20905b815481529060010190602001808311610d3557829003601f168201915b5050505050905090565b5f610d6f610d6861156f565b8484611739565b6001905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dff90612efb565b60405180910390fd5b80600f9081610e1791906130ad565b5050565b60135481565b610e2961156f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eac90612bfe565b60405180910390fd5b601660149054906101000a900460ff1615610f05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efc906131c6565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610fa13060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610f8d9190612dd3565b633b9aca00610f9c9190612e1d565b611576565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561100b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061102f91906131f8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110d991906131f8565b6040518363ffffffff1660e01b81526004016110f6929190613223565b6020604051808303815f875af1158015611112573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061113691906131f8565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306111bd306109d6565b5f806111c7610c9f565b426040518863ffffffff1660e01b81526004016111e99695949392919061324a565b60606040518083038185885af1158015611205573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061122a91906132bd565b50505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016112ca92919061330d565b6020604051808303815f875af11580156112e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061130a919061335e565b5060016016806101000a81548160ff0219169083151502179055506001601660146101000a81548160ff021916908315150217905550565b61134a61156f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cd90612bfe565b60405180910390fd5b5f5b815181101561145d57600160045f8484815181106113f9576113f8612e5e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506113d8565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661152361156f565b73ffffffffffffffffffffffffffffffffffffffff1614611542575f80fd5b600854811115801561155657506009548111155b61155e575f80fd5b806008819055508060098190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115db906133f9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611652576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164990613487565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161172c9190612780565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179e90613515565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611815576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180c906135a3565b60405180910390fd5b5f8111611857576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184e90613631565b60405180910390fd5b5f611860610c9f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156118ce575061189e610c9f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e0e5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611971575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611979575f80fd5b5f600e54036119c1576119be60646119b0600a54600e541161199d576006546119a1565b6008545b856123f390919063ffffffff16565b61246a90919063ffffffff16565b90505b5f600e5411156119f6576119f360646119e5600d54856123f390919063ffffffff16565b61246a90919063ffffffff16565b90505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611a9f575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611af2575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611bea57601154821115611b3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3390613699565b60405180910390fd5b60125482611b49856109d6565b611b5391906136b7565b1115611b94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8b90613734565b60405180910390fd5b611bd06064611bc2600a54600e5411611baf57600654611bb3565b6008545b856123f390919063ffffffff16565b61246a90919063ffffffff16565b9050600e5f815480929190611be490613752565b91905055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c7257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611cb657611cb36064611ca5600b54600e5411611c9257600754611c96565b6009545b856123f390919063ffffffff16565b61246a90919063ffffffff16565b90505b5f611cc0306109d6565b9050601660159054906101000a900460ff16158015611d2b575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611d41575060168054906101000a900460ff165b8015611d4e575060135481115b8015611d5d5750600c54600e54115b15611e0c57601854431115611d74575f6017819055505b600360175410611db9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db0906137e3565b60405180910390fd5b611dd6611dd184611dcc846014546124b3565b6124b3565b612120565b5f4790505f811115611dec57611deb4761238b565b5b60175f815480929190611dfe90613752565b919050555043601881905550505b505b5f811115611f0d57611e668160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546124cb90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f049190612780565b60405180910390a35b611f5d8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461252890919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612000611fb4828461252890919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546124cb90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6120a3848661252890919063ffffffff16565b6040516120b09190612780565b60405180910390a350505050565b5f838311158290612105576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120fc9190612642565b60405180910390fd5b505f83856121139190613801565b9050809150509392505050565b6001601660156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561215757612156612821565b5b6040519080825280602002602001820160405280156121855781602001602082028036833780820191505090505b50905030815f8151811061219c5761219b612e5e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612240573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061226491906131f8565b8160018151811061227857612277612e5e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122de3060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611576565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016123409594939291906138eb565b5f604051808303815f87803b158015612357575f80fd5b505af1158015612369573d5f803e3d5ffd5b50505050505f601660156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156123ef573d5f803e3d5ffd5b5050565b5f808303612403575f9050612464565b5f82846124109190612e1d565b905082848261241f9190613970565b1461245f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245690613a10565b60405180910390fd5b809150505b92915050565b5f6124ab83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612571565b905092915050565b5f8183116124c157826124c3565b815b905092915050565b5f8082846124d991906136b7565b90508381101561251e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161251590613a78565b60405180910390fd5b8091505092915050565b5f61256983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120be565b905092915050565b5f80831182906125b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ae9190612642565b60405180910390fd5b505f83856125c59190613970565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612614826125d2565b61261e81856125dc565b935061262e8185602086016125ec565b612637816125fa565b840191505092915050565b5f6020820190508181035f83015261265a818461260a565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61269c82612673565b9050919050565b6126ac81612692565b81146126b6575f80fd5b50565b5f813590506126c7816126a3565b92915050565b5f819050919050565b6126df816126cd565b81146126e9575f80fd5b50565b5f813590506126fa816126d6565b92915050565b5f80604083850312156127165761271561266b565b5b5f612723858286016126b9565b9250506020612734858286016126ec565b9150509250929050565b5f8115159050919050565b6127528161273e565b82525050565b5f60208201905061276b5f830184612749565b92915050565b61277a816126cd565b82525050565b5f6020820190506127935f830184612771565b92915050565b5f805f606084860312156127b0576127af61266b565b5b5f6127bd868287016126b9565b93505060206127ce868287016126b9565b92505060406127df868287016126ec565b9150509250925092565b5f60ff82169050919050565b6127fe816127e9565b82525050565b5f6020820190506128175f8301846127f5565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612857826125fa565b810181811067ffffffffffffffff8211171561287657612875612821565b5b80604052505050565b5f612888612662565b9050612894828261284e565b919050565b5f67ffffffffffffffff8211156128b3576128b2612821565b5b602082029050602081019050919050565b5f80fd5b5f6128da6128d584612899565b61287f565b905080838252602082019050602084028301858111156128fd576128fc6128c4565b5b835b81811015612926578061291288826126b9565b8452602084019350506020810190506128ff565b5050509392505050565b5f82601f8301126129445761294361281d565b5b81356129548482602086016128c8565b91505092915050565b5f602082840312156129725761297161266b565b5b5f82013567ffffffffffffffff81111561298f5761298e61266f565b5b61299b84828501612930565b91505092915050565b5f602082840312156129b9576129b861266b565b5b5f6129c6848285016126b9565b91505092915050565b6129d881612692565b82525050565b5f6020820190506129f15f8301846129cf565b92915050565b5f80fd5b5f67ffffffffffffffff821115612a1557612a14612821565b5b612a1e826125fa565b9050602081019050919050565b828183375f83830152505050565b5f612a4b612a46846129fb565b61287f565b905082815260208101848484011115612a6757612a666129f7565b5b612a72848285612a2b565b509392505050565b5f82601f830112612a8e57612a8d61281d565b5b8135612a9e848260208601612a39565b91505092915050565b5f60208284031215612abc57612abb61266b565b5b5f82013567ffffffffffffffff811115612ad957612ad861266f565b5b612ae584828501612a7a565b91505092915050565b5f8060408385031215612b0457612b0361266b565b5b5f612b11858286016126b9565b9250506020612b22858286016126b9565b9150509250929050565b5f60208284031215612b4157612b4061266b565b5b5f612b4e848285016126ec565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612b9b57607f821691505b602082108103612bae57612bad612b57565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612be86020836125dc565b9150612bf382612bb4565b602082019050919050565b5f6020820190508181035f830152612c1581612bdc565b9050919050565b5f819050919050565b5f819050919050565b5f612c48612c43612c3e84612c1c565b612c25565b6126cd565b9050919050565b612c5881612c2e565b82525050565b5f602082019050612c715f830184612c4f565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612cf957808604811115612cd557612cd4612c77565b5b6001851615612ce45780820291505b8081029050612cf285612ca4565b9450612cb9565b94509492505050565b5f82612d115760019050612dcc565b81612d1e575f9050612dcc565b8160018114612d345760028114612d3e57612d6d565b6001915050612dcc565b60ff841115612d5057612d4f612c77565b5b8360020a915084821115612d6757612d66612c77565b5b50612dcc565b5060208310610133831016604e8410600b8410161715612da25782820a905083811115612d9d57612d9c612c77565b5b612dcc565b612daf8484846001612cb0565b92509050818404811115612dc657612dc5612c77565b5b81810290505b9392505050565b5f612ddd826126cd565b9150612de8836127e9565b9250612e157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612d02565b905092915050565b5f612e27826126cd565b9150612e32836126cd565b9250828202612e40816126cd565b91508282048414831517612e5757612e56612c77565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4f6e6c7920746865206d61726b6574696e672077616c6c65742063616e2063685f8201527f616e67652074686520746f6b656e206e616d652e000000000000000000000000602082015250565b5f612ee56034836125dc565b9150612ef082612e8b565b604082019050919050565b5f6020820190508181035f830152612f1281612ed9565b9050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612f757fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612f3a565b612f7f8683612f3a565b95508019841693508086168417925050509392505050565b5f612fb1612fac612fa7846126cd565b612c25565b6126cd565b9050919050565b5f819050919050565b612fca83612f97565b612fde612fd682612fb8565b848454612f46565b825550505050565b5f90565b612ff2612fe6565b612ffd818484612fc1565b505050565b5b81811015613020576130155f82612fea565b600181019050613003565b5050565b601f8211156130655761303681612f19565b61303f84612f2b565b8101602085101561304e578190505b61306261305a85612f2b565b830182613002565b50505b505050565b5f82821c905092915050565b5f6130855f198460080261306a565b1980831691505092915050565b5f61309d8383613076565b9150826002028217905092915050565b6130b6826125d2565b67ffffffffffffffff8111156130cf576130ce612821565b5b6130d98254612b84565b6130e4828285613024565b5f60209050601f831160018114613115575f8415613103578287015190505b61310d8582613092565b865550613174565b601f19841661312386612f19565b5f5b8281101561314a57848901518255600182019150602085019450602081019050613125565b868310156131675784890151613163601f891682613076565b8355505b6001600288020188555050505b505050505050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6131b06017836125dc565b91506131bb8261317c565b602082019050919050565b5f6020820190508181035f8301526131dd816131a4565b9050919050565b5f815190506131f2816126a3565b92915050565b5f6020828403121561320d5761320c61266b565b5b5f61321a848285016131e4565b91505092915050565b5f6040820190506132365f8301856129cf565b61324360208301846129cf565b9392505050565b5f60c08201905061325d5f8301896129cf565b61326a6020830188612771565b6132776040830187612c4f565b6132846060830186612c4f565b61329160808301856129cf565b61329e60a0830184612771565b979650505050505050565b5f815190506132b7816126d6565b92915050565b5f805f606084860312156132d4576132d361266b565b5b5f6132e1868287016132a9565b93505060206132f2868287016132a9565b9250506040613303868287016132a9565b9150509250925092565b5f6040820190506133205f8301856129cf565b61332d6020830184612771565b9392505050565b61333d8161273e565b8114613347575f80fd5b50565b5f8151905061335881613334565b92915050565b5f602082840312156133735761337261266b565b5b5f6133808482850161334a565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6133e36024836125dc565b91506133ee82613389565b604082019050919050565b5f6020820190508181035f830152613410816133d7565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6134716022836125dc565b915061347c82613417565b604082019050919050565b5f6020820190508181035f83015261349e81613465565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6134ff6025836125dc565b915061350a826134a5565b604082019050919050565b5f6020820190508181035f83015261352c816134f3565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61358d6023836125dc565b915061359882613533565b604082019050919050565b5f6020820190508181035f8301526135ba81613581565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61361b6029836125dc565b9150613626826135c1565b604082019050919050565b5f6020820190508181035f8301526136488161360f565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6136836019836125dc565b915061368e8261364f565b602082019050919050565b5f6020820190508181035f8301526136b081613677565b9050919050565b5f6136c1826126cd565b91506136cc836126cd565b92508282019050808211156136e4576136e3612c77565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f61371e601a836125dc565b9150613729826136ea565b602082019050919050565b5f6020820190508181035f83015261374b81613712565b9050919050565b5f61375c826126cd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361378e5761378d612c77565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6137cd6017836125dc565b91506137d882613799565b602082019050919050565b5f6020820190508181035f8301526137fa816137c1565b9050919050565b5f61380b826126cd565b9150613816836126cd565b925082820390508181111561382e5761382d612c77565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61386681612692565b82525050565b5f613877838361385d565b60208301905092915050565b5f602082019050919050565b5f61389982613834565b6138a3818561383e565b93506138ae8361384e565b805f5b838110156138de5781516138c5888261386c565b97506138d083613883565b9250506001810190506138b1565b5085935050505092915050565b5f60a0820190506138fe5f830188612771565b61390b6020830187612c4f565b818103604083015261391d818661388f565b905061392c60608301856129cf565b6139396080830184612771565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61397a826126cd565b9150613985836126cd565b92508261399557613994613943565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6139fa6021836125dc565b9150613a05826139a0565b604082019050919050565b5f6020820190508181035f830152613a27816139ee565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613a62601b836125dc565b9150613a6d82613a2e565b602082019050919050565b5f6020820190508181035f830152613a8f81613a56565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f3adf38e82661689a3ed98f7fd5b27274b13944e9a39bed80b47d247c474df1f64736f6c634300081a003300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000a4e414d454348414e474500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b5472756d70277320486174000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061014e575f3560e01c8063751039fc116100b5578063b0018bfc1161006e578063b0018bfc14610455578063bf474bed1461047d578063c9567bf9146104a7578063d34628cc146104bd578063dd62ed3e146104e5578063ec1f3f631461052157610155565b8063751039fc1461035b5780637d1db4a5146103715780638da5cb5b1461039b5780638f9a55c0146103c557806395d89b41146103ef578063a9059cbb1461041957610155565b8063313ce56711610107578063313ce5671461026557806331c2d8471461028f5780633bbac579146102b757806351bc3c85146102f357806370a0823114610309578063715018a61461034557610155565b806306fdde0314610159578063095ea7b3146101835780630faee56f146101bf578063109daa99146101e957806318160ddd146101ff57806323b872dd1461022957610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061016d610549565b60405161017a9190612642565b60405180910390f35b34801561018e575f80fd5b506101a960048036038101906101a49190612700565b6105d9565b6040516101b69190612758565b60405180910390f35b3480156101ca575f80fd5b506101d36105f6565b6040516101e09190612780565b60405180910390f35b3480156101f4575f80fd5b506101fd6105fc565b005b34801561020a575f80fd5b506102136106d0565b6040516102209190612780565b60405180910390f35b348015610234575f80fd5b5061024f600480360381019061024a9190612799565b6106f3565b60405161025c9190612758565b60405180910390f35b348015610270575f80fd5b506102796107c7565b6040516102869190612804565b60405180910390f35b34801561029a575f80fd5b506102b560048036038101906102b0919061295d565b6107cf565b005b3480156102c2575f80fd5b506102dd60048036038101906102d891906129a4565b6108ed565b6040516102ea9190612758565b60405180910390f35b3480156102fe575f80fd5b5061030761093f565b005b348015610314575f80fd5b5061032f600480360381019061032a91906129a4565b6109d6565b60405161033c9190612780565b60405180910390f35b348015610350575f80fd5b50610359610a1c565b005b348015610366575f80fd5b5061036f610b6a565b005b34801561037c575f80fd5b50610385610c99565b6040516103929190612780565b60405180910390f35b3480156103a6575f80fd5b506103af610c9f565b6040516103bc91906129de565b60405180910390f35b3480156103d0575f80fd5b506103d9610cc6565b6040516103e69190612780565b60405180910390f35b3480156103fa575f80fd5b50610403610ccc565b6040516104109190612642565b60405180910390f35b348015610424575f80fd5b5061043f600480360381019061043a9190612700565b610d5c565b60405161044c9190612758565b60405180910390f35b348015610460575f80fd5b5061047b60048036038101906104769190612aa7565b610d79565b005b348015610488575f80fd5b50610491610e1b565b60405161049e9190612780565b60405180910390f35b3480156104b2575f80fd5b506104bb610e21565b005b3480156104c8575f80fd5b506104e360048036038101906104de919061295d565b611342565b005b3480156104f0575f80fd5b5061050b60048036038101906105069190612aee565b611461565b6040516105189190612780565b60405180910390f35b34801561052c575f80fd5b5061054760048036038101906105429190612b2c565b6114e3565b005b6060600f805461055890612b84565b80601f016020809104026020016040519081016040528092919081815260200182805461058490612b84565b80156105cf5780601f106105a6576101008083540402835291602001916105cf565b820191905f5260205f20905b8154815290600101906020018083116105b257829003601f168201915b5050505050905090565b5f6105ec6105e561156f565b8484611576565b6001905092915050565b60145481565b61060461156f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610690576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068790612bfe565b60405180910390fd5b5f600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516106c69190612c5e565b60405180910390a1565b5f6009600a6106df9190612dd3565b633b9aca006106ee9190612e1d565b905090565b5f6106ff848484611739565b6107bc8461070b61156f565b6107b785604051806060016040528060288152602001613a976028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61076e61156f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120be9092919063ffffffff16565b611576565b600190509392505050565b5f6009905090565b6107d761156f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085a90612bfe565b60405180910390fd5b5f5b81518110156108e9575f60045f84848151811061088557610884612e5e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610865565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661097f61156f565b73ffffffffffffffffffffffffffffffffffffffff161461099e575f80fd5b5f6109a8306109d6565b90505f8111156109bc576109bb81612120565b5b5f4790505f8111156109d2576109d18161238b565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a2461156f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa790612bfe565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b7261156f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf590612bfe565b60405180910390fd5b6009600a610c0c9190612dd3565b633b9aca00610c1b9190612e1d565b6011819055506009600a610c2f9190612dd3565b633b9aca00610c3e9190612e1d565b6012819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610c739190612dd3565b633b9aca00610c829190612e1d565b604051610c8f9190612780565b60405180910390a1565b60115481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b606060108054610cdb90612b84565b80601f0160208091040260200160405190810160405280929190818152602001828054610d0790612b84565b8015610d525780601f10610d2957610100808354040283529160200191610d52565b820191905f5260205f20905b815481529060010190602001808311610d3557829003601f168201915b5050505050905090565b5f610d6f610d6861156f565b8484611739565b6001905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dff90612efb565b60405180910390fd5b80600f9081610e1791906130ad565b5050565b60135481565b610e2961156f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eac90612bfe565b60405180910390fd5b601660149054906101000a900460ff1615610f05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efc906131c6565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610fa13060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610f8d9190612dd3565b633b9aca00610f9c9190612e1d565b611576565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561100b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061102f91906131f8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110d991906131f8565b6040518363ffffffff1660e01b81526004016110f6929190613223565b6020604051808303815f875af1158015611112573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061113691906131f8565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306111bd306109d6565b5f806111c7610c9f565b426040518863ffffffff1660e01b81526004016111e99695949392919061324a565b60606040518083038185885af1158015611205573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061122a91906132bd565b50505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016112ca92919061330d565b6020604051808303815f875af11580156112e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061130a919061335e565b5060016016806101000a81548160ff0219169083151502179055506001601660146101000a81548160ff021916908315150217905550565b61134a61156f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cd90612bfe565b60405180910390fd5b5f5b815181101561145d57600160045f8484815181106113f9576113f8612e5e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506113d8565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661152361156f565b73ffffffffffffffffffffffffffffffffffffffff1614611542575f80fd5b600854811115801561155657506009548111155b61155e575f80fd5b806008819055508060098190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115db906133f9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611652576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164990613487565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161172c9190612780565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179e90613515565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611815576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180c906135a3565b60405180910390fd5b5f8111611857576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184e90613631565b60405180910390fd5b5f611860610c9f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156118ce575061189e610c9f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e0e5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611971575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611979575f80fd5b5f600e54036119c1576119be60646119b0600a54600e541161199d576006546119a1565b6008545b856123f390919063ffffffff16565b61246a90919063ffffffff16565b90505b5f600e5411156119f6576119f360646119e5600d54856123f390919063ffffffff16565b61246a90919063ffffffff16565b90505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611a9f575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611af2575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611bea57601154821115611b3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3390613699565b60405180910390fd5b60125482611b49856109d6565b611b5391906136b7565b1115611b94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8b90613734565b60405180910390fd5b611bd06064611bc2600a54600e5411611baf57600654611bb3565b6008545b856123f390919063ffffffff16565b61246a90919063ffffffff16565b9050600e5f815480929190611be490613752565b91905055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c7257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611cb657611cb36064611ca5600b54600e5411611c9257600754611c96565b6009545b856123f390919063ffffffff16565b61246a90919063ffffffff16565b90505b5f611cc0306109d6565b9050601660159054906101000a900460ff16158015611d2b575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611d41575060168054906101000a900460ff165b8015611d4e575060135481115b8015611d5d5750600c54600e54115b15611e0c57601854431115611d74575f6017819055505b600360175410611db9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db0906137e3565b60405180910390fd5b611dd6611dd184611dcc846014546124b3565b6124b3565b612120565b5f4790505f811115611dec57611deb4761238b565b5b60175f815480929190611dfe90613752565b919050555043601881905550505b505b5f811115611f0d57611e668160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546124cb90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f049190612780565b60405180910390a35b611f5d8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461252890919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612000611fb4828461252890919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546124cb90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6120a3848661252890919063ffffffff16565b6040516120b09190612780565b60405180910390a350505050565b5f838311158290612105576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120fc9190612642565b60405180910390fd5b505f83856121139190613801565b9050809150509392505050565b6001601660156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561215757612156612821565b5b6040519080825280602002602001820160405280156121855781602001602082028036833780820191505090505b50905030815f8151811061219c5761219b612e5e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612240573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061226491906131f8565b8160018151811061227857612277612e5e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122de3060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611576565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016123409594939291906138eb565b5f604051808303815f87803b158015612357575f80fd5b505af1158015612369573d5f803e3d5ffd5b50505050505f601660156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156123ef573d5f803e3d5ffd5b5050565b5f808303612403575f9050612464565b5f82846124109190612e1d565b905082848261241f9190613970565b1461245f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245690613a10565b60405180910390fd5b809150505b92915050565b5f6124ab83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612571565b905092915050565b5f8183116124c157826124c3565b815b905092915050565b5f8082846124d991906136b7565b90508381101561251e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161251590613a78565b60405180910390fd5b8091505092915050565b5f61256983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120be565b905092915050565b5f80831182906125b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ae9190612642565b60405180910390fd5b505f83856125c59190613970565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612614826125d2565b61261e81856125dc565b935061262e8185602086016125ec565b612637816125fa565b840191505092915050565b5f6020820190508181035f83015261265a818461260a565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61269c82612673565b9050919050565b6126ac81612692565b81146126b6575f80fd5b50565b5f813590506126c7816126a3565b92915050565b5f819050919050565b6126df816126cd565b81146126e9575f80fd5b50565b5f813590506126fa816126d6565b92915050565b5f80604083850312156127165761271561266b565b5b5f612723858286016126b9565b9250506020612734858286016126ec565b9150509250929050565b5f8115159050919050565b6127528161273e565b82525050565b5f60208201905061276b5f830184612749565b92915050565b61277a816126cd565b82525050565b5f6020820190506127935f830184612771565b92915050565b5f805f606084860312156127b0576127af61266b565b5b5f6127bd868287016126b9565b93505060206127ce868287016126b9565b92505060406127df868287016126ec565b9150509250925092565b5f60ff82169050919050565b6127fe816127e9565b82525050565b5f6020820190506128175f8301846127f5565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612857826125fa565b810181811067ffffffffffffffff8211171561287657612875612821565b5b80604052505050565b5f612888612662565b9050612894828261284e565b919050565b5f67ffffffffffffffff8211156128b3576128b2612821565b5b602082029050602081019050919050565b5f80fd5b5f6128da6128d584612899565b61287f565b905080838252602082019050602084028301858111156128fd576128fc6128c4565b5b835b81811015612926578061291288826126b9565b8452602084019350506020810190506128ff565b5050509392505050565b5f82601f8301126129445761294361281d565b5b81356129548482602086016128c8565b91505092915050565b5f602082840312156129725761297161266b565b5b5f82013567ffffffffffffffff81111561298f5761298e61266f565b5b61299b84828501612930565b91505092915050565b5f602082840312156129b9576129b861266b565b5b5f6129c6848285016126b9565b91505092915050565b6129d881612692565b82525050565b5f6020820190506129f15f8301846129cf565b92915050565b5f80fd5b5f67ffffffffffffffff821115612a1557612a14612821565b5b612a1e826125fa565b9050602081019050919050565b828183375f83830152505050565b5f612a4b612a46846129fb565b61287f565b905082815260208101848484011115612a6757612a666129f7565b5b612a72848285612a2b565b509392505050565b5f82601f830112612a8e57612a8d61281d565b5b8135612a9e848260208601612a39565b91505092915050565b5f60208284031215612abc57612abb61266b565b5b5f82013567ffffffffffffffff811115612ad957612ad861266f565b5b612ae584828501612a7a565b91505092915050565b5f8060408385031215612b0457612b0361266b565b5b5f612b11858286016126b9565b9250506020612b22858286016126b9565b9150509250929050565b5f60208284031215612b4157612b4061266b565b5b5f612b4e848285016126ec565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612b9b57607f821691505b602082108103612bae57612bad612b57565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612be86020836125dc565b9150612bf382612bb4565b602082019050919050565b5f6020820190508181035f830152612c1581612bdc565b9050919050565b5f819050919050565b5f819050919050565b5f612c48612c43612c3e84612c1c565b612c25565b6126cd565b9050919050565b612c5881612c2e565b82525050565b5f602082019050612c715f830184612c4f565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612cf957808604811115612cd557612cd4612c77565b5b6001851615612ce45780820291505b8081029050612cf285612ca4565b9450612cb9565b94509492505050565b5f82612d115760019050612dcc565b81612d1e575f9050612dcc565b8160018114612d345760028114612d3e57612d6d565b6001915050612dcc565b60ff841115612d5057612d4f612c77565b5b8360020a915084821115612d6757612d66612c77565b5b50612dcc565b5060208310610133831016604e8410600b8410161715612da25782820a905083811115612d9d57612d9c612c77565b5b612dcc565b612daf8484846001612cb0565b92509050818404811115612dc657612dc5612c77565b5b81810290505b9392505050565b5f612ddd826126cd565b9150612de8836127e9565b9250612e157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612d02565b905092915050565b5f612e27826126cd565b9150612e32836126cd565b9250828202612e40816126cd565b91508282048414831517612e5757612e56612c77565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4f6e6c7920746865206d61726b6574696e672077616c6c65742063616e2063685f8201527f616e67652074686520746f6b656e206e616d652e000000000000000000000000602082015250565b5f612ee56034836125dc565b9150612ef082612e8b565b604082019050919050565b5f6020820190508181035f830152612f1281612ed9565b9050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612f757fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612f3a565b612f7f8683612f3a565b95508019841693508086168417925050509392505050565b5f612fb1612fac612fa7846126cd565b612c25565b6126cd565b9050919050565b5f819050919050565b612fca83612f97565b612fde612fd682612fb8565b848454612f46565b825550505050565b5f90565b612ff2612fe6565b612ffd818484612fc1565b505050565b5b81811015613020576130155f82612fea565b600181019050613003565b5050565b601f8211156130655761303681612f19565b61303f84612f2b565b8101602085101561304e578190505b61306261305a85612f2b565b830182613002565b50505b505050565b5f82821c905092915050565b5f6130855f198460080261306a565b1980831691505092915050565b5f61309d8383613076565b9150826002028217905092915050565b6130b6826125d2565b67ffffffffffffffff8111156130cf576130ce612821565b5b6130d98254612b84565b6130e4828285613024565b5f60209050601f831160018114613115575f8415613103578287015190505b61310d8582613092565b865550613174565b601f19841661312386612f19565b5f5b8281101561314a57848901518255600182019150602085019450602081019050613125565b868310156131675784890151613163601f891682613076565b8355505b6001600288020188555050505b505050505050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6131b06017836125dc565b91506131bb8261317c565b602082019050919050565b5f6020820190508181035f8301526131dd816131a4565b9050919050565b5f815190506131f2816126a3565b92915050565b5f6020828403121561320d5761320c61266b565b5b5f61321a848285016131e4565b91505092915050565b5f6040820190506132365f8301856129cf565b61324360208301846129cf565b9392505050565b5f60c08201905061325d5f8301896129cf565b61326a6020830188612771565b6132776040830187612c4f565b6132846060830186612c4f565b61329160808301856129cf565b61329e60a0830184612771565b979650505050505050565b5f815190506132b7816126d6565b92915050565b5f805f606084860312156132d4576132d361266b565b5b5f6132e1868287016132a9565b93505060206132f2868287016132a9565b9250506040613303868287016132a9565b9150509250925092565b5f6040820190506133205f8301856129cf565b61332d6020830184612771565b9392505050565b61333d8161273e565b8114613347575f80fd5b50565b5f8151905061335881613334565b92915050565b5f602082840312156133735761337261266b565b5b5f6133808482850161334a565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6133e36024836125dc565b91506133ee82613389565b604082019050919050565b5f6020820190508181035f830152613410816133d7565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6134716022836125dc565b915061347c82613417565b604082019050919050565b5f6020820190508181035f83015261349e81613465565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6134ff6025836125dc565b915061350a826134a5565b604082019050919050565b5f6020820190508181035f83015261352c816134f3565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61358d6023836125dc565b915061359882613533565b604082019050919050565b5f6020820190508181035f8301526135ba81613581565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61361b6029836125dc565b9150613626826135c1565b604082019050919050565b5f6020820190508181035f8301526136488161360f565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6136836019836125dc565b915061368e8261364f565b602082019050919050565b5f6020820190508181035f8301526136b081613677565b9050919050565b5f6136c1826126cd565b91506136cc836126cd565b92508282019050808211156136e4576136e3612c77565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f61371e601a836125dc565b9150613729826136ea565b602082019050919050565b5f6020820190508181035f83015261374b81613712565b9050919050565b5f61375c826126cd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361378e5761378d612c77565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6137cd6017836125dc565b91506137d882613799565b602082019050919050565b5f6020820190508181035f8301526137fa816137c1565b9050919050565b5f61380b826126cd565b9150613816836126cd565b925082820390508181111561382e5761382d612c77565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61386681612692565b82525050565b5f613877838361385d565b60208301905092915050565b5f602082019050919050565b5f61389982613834565b6138a3818561383e565b93506138ae8361384e565b805f5b838110156138de5781516138c5888261386c565b97506138d083613883565b9250506001810190506138b1565b5085935050505092915050565b5f60a0820190506138fe5f830188612771565b61390b6020830187612c4f565b818103604083015261391d818661388f565b905061392c60608301856129cf565b6139396080830184612771565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61397a826126cd565b9150613985836126cd565b92508261399557613994613943565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6139fa6021836125dc565b9150613a05826139a0565b604082019050919050565b5f6020820190508181035f830152613a27816139ee565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613a62601b836125dc565b9150613a6d82613a2e565b602082019050919050565b5f6020820190508181035f830152613a8f81613a56565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f3adf38e82661689a3ed98f7fd5b27274b13944e9a39bed80b47d247c474df1f64736f6c634300081a0033

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

00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000a4e414d454348414e474500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b5472756d70277320486174000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): NAMECHANGE
Arg [1] : symbol_ (string): Trump's Hat

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [2] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [3] : 4e414d454348414e474500000000000000000000000000000000000000000000
Arg [4] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [5] : 5472756d70277320486174000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

3508:9183:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5593:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6426:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4583:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10490:120;;;;;;;;;;;;;:::i;:::-;;5870:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6595:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5779:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10890:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11066:86;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12125:366;;;;;;;;;;;;;:::i;:::-;;5973:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2591:148;;;;;;;;;;;;;:::i;:::-;;10320:162;;;;;;;;;;;;;:::i;:::-;;4394:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2377:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4455:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5684:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6100:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12499:189;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4518:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11160:675;;;;;;;;;;;;;:::i;:::-;;10718:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6275:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11843:237;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5593:83;5630:13;5663:5;5656:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5593:83;:::o;6426:161::-;6501:4;6518:39;6527:12;:10;:12::i;:::-;6541:7;6550:6;6518:8;:39::i;:::-;6575:4;6568:11;;6426:161;;;;:::o;4583:52::-;;;;:::o;10490:120::-;2514:12;:10;:12::i;:::-;2504:22;;:6;;;;;;;;;;:22;;;2496:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10564:1:::1;10549:12;:16;;;;10581:21;10600:1;10581:21;;;;;;:::i;:::-;;;;;;;;10490:120::o:0;5870:95::-;5923:7;4262:1;4318:2;:13;;;;:::i;:::-;4305:10;:26;;;;:::i;:::-;5943:14;;5870:95;:::o;6595:313::-;6693:4;6710:36;6720:6;6728:9;6739:6;6710:9;:36::i;:::-;6757:121;6766:6;6774:12;:10;:12::i;:::-;6788:89;6826:6;6788:89;;;;;;;;;;;;;;;;;:11;:19;6800:6;6788:19;;;;;;;;;;;;;;;:33;6808:12;:10;:12::i;:::-;6788:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6757:8;:121::i;:::-;6896:4;6889:11;;6595:313;;;;;:::o;5779:83::-;5820:5;4262:1;5838:16;;5779:83;:::o;10890:168::-;2514:12;:10;:12::i;:::-;2504:22;;:6;;;;;;;;;;:22;;;2496:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10965:6:::1;10960:91;10981:6;:13;10977:1;:17;10960:91;;;11034:5;11016:4;:15;11021:6;11028:1;11021:9;;;;;;;;:::i;:::-;;;;;;;;11016:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10996:3;;;;;;;10960:91;;;;10890:168:::0;:::o;11066:86::-;11113:4;11137;:7;11142:1;11137:7;;;;;;;;;;;;;;;;;;;;;;;;;11130:14;;11066:86;;;:::o;12125:366::-;12191:10;;;;;;;;;;;12175:26;;:12;:10;:12::i;:::-;:26;;;12167:35;;;;;;12213:20;12236:24;12254:4;12236:9;:24::i;:::-;12213:47;;12290:1;12275:12;:16;12271:79;;;12308:30;12325:12;12308:16;:30::i;:::-;12271:79;12360:18;12381:21;12360:42;;12430:1;12417:10;:14;12413:71;;;12448:24;12461:10;12448:12;:24::i;:::-;12413:71;12156:335;;12125:366::o;5973:119::-;6039:7;6066:9;:18;6076:7;6066:18;;;;;;;;;;;;;;;;6059:25;;5973:119;;;:::o;2591:148::-;2514:12;:10;:12::i;:::-;2504:22;;:6;;;;;;;;;;:22;;;2496:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2698:1:::1;2661:40;;2682:6;::::0;::::1;;;;;;;;2661:40;;;;;;;;;;;;2729:1;2712:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2591:148::o:0;10320:162::-;2514:12;:10;:12::i;:::-;2504:22;;:6;;;;;;;;;;:22;;;2496:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4262:1:::1;4318:2;:13;;;;:::i;:::-;4305:10;:26;;;;:::i;:::-;10374:12;:22;;;;4262:1;4318:2;:13;;;;:::i;:::-;4305:10;:26;;;;:::i;:::-;10407:14;:24;;;;10447:27;4262:1;4318:2;:13;;;;:::i;:::-;4305:10;:26;;;;:::i;:::-;10447:27;;;;;;:::i;:::-;;;;;;;;10320:162::o:0;4394:54::-;;;;:::o;2377:79::-;2415:7;2442:6;;;;;;;;;;;2435:13;;2377:79;:::o;4455:56::-;;;;:::o;5684:87::-;5723:13;5756:7;5749:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5684:87;:::o;6100:167::-;6178:4;6195:42;6205:12;:10;:12::i;:::-;6219:9;6230:6;6195:9;:42::i;:::-;6255:4;6248:11;;6100:167;;;;:::o;12499:189::-;12587:10;;;;;;;;;;;12573:24;;:10;:24;;;12565:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;12673:7;12665:5;:15;;;;;;:::i;:::-;;12499:189;:::o;4518:58::-;;;;:::o;11160:675::-;2514:12;:10;:12::i;:::-;2504:22;;:6;;;;;;;;;;:22;;;2496:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11222:11:::1;;;;;;;;;;;11221:12;11213:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;11309:42;11272:15;;:80;;;;;;;;;;;;;;;;;;11363:58;11380:4;11395:15;;;;;;;;;;;4262:1;4318:2;:13;;;;:::i;:::-;4305:10;:26;;;;:::i;:::-;11363:8;:58::i;:::-;11466:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11448:55;;;11512:4;11519:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11448:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11432:13;;:110;;;;;;;;;;;;;;;;;;11553:15;;;;;;;;;;;:31;;;11592:21;11623:4;11630:24;11648:4;11630:9;:24::i;:::-;11656:1;11659::::0;11662:7:::1;:5;:7::i;:::-;11671:15;11553:134;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11705:13;;;;;;;;;;;11698:29;;;11736:15;;;;;;;;;;;11754:14;11698:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11794:4;11780:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11823:4;11809:11;;:18;;;;;;;;;;;;;;;;;;11160:675::o:0;10718:164::-;2514:12;:10;:12::i;:::-;2504:22;;:6;;;;;;;;;;:22;;;2496:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10792:6:::1;10787:88;10808:5;:12;10804:1;:16;10787:88;;;10859:4;10842;:14;10847:5;10853:1;10847:8;;;;;;;;:::i;:::-;;;;;;;;10842:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10822:3;;;;;;;10787:88;;;;10718:164:::0;:::o;6275:143::-;6356:7;6383:11;:18;6395:5;6383:18;;;;;;;;;;;;;;;:27;6402:7;6383:27;;;;;;;;;;;;;;;;6376:34;;6275:143;;;;:::o;11843:237::-;11923:10;;;;;;;;;;;11907:26;;:12;:10;:12::i;:::-;:26;;;11899:35;;;;;;11964:12;;11953:7;:23;;:51;;;;;11991:13;;11980:7;:24;;11953:51;11945:60;;;;;;12031:7;12016:12;:22;;;;12065:7;12049:13;:23;;;;11843:237;:::o;134:98::-;187:7;214:10;207:17;;134:98;:::o;6916:335::-;7026:1;7009:19;;:5;:19;;;7001:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7107:1;7088:21;;:7;:21;;;7080:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7189:6;7159:11;:18;7171:5;7159:18;;;;;;;;;;;;;;;:27;7178:7;7159:27;;;;;;;;;;;;;;;:36;;;;7227:7;7211:32;;7220:5;7211:32;;;7236:6;7211:32;;;;;;:::i;:::-;;;;;;;;6916:335;;;:::o;7259:2448::-;7363:1;7347:18;;:4;:18;;;7339:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7440:1;7426:16;;:2;:16;;;7418:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7510:1;7501:6;:10;7493:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7568:17;7610:7;:5;:7::i;:::-;7602:15;;:4;:15;;;;:32;;;;;7627:7;:5;:7::i;:::-;7621:13;;:2;:13;;;;7602:32;7598:1753;;;7660:4;:10;7665:4;7660:10;;;;;;;;;;;;;;;;;;;;;;;;;7659:11;:24;;;;;7675:4;:8;7680:2;7675:8;;;;;;;;;;;;;;;;;;;;;;;;;7674:9;7659:24;7651:33;;;;;;7715:1;7704:9;;:12;7701:139;;7748:76;7820:3;7748:67;7770:15;;7760:9;;:25;7759:55;;7800:14;;7759:55;;;7787:12;;7759:55;7748:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7736:88;;7701:139;7867:1;7857:9;;:11;7854:95;;;7900:33;7929:3;7900:24;7911:12;;7900:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;7888:45;;7854:95;7977:13;;;;;;;;;;;7969:21;;:4;:21;;;:55;;;;;8008:15;;;;;;;;;;;7994:30;;:2;:30;;;;7969:55;:83;;;;;8030:18;:22;8049:2;8030:22;;;;;;;;;;;;;;;;;;;;;;;;;8028:24;7969:83;7965:420;;;8092:12;;8082:6;:22;;8074:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8187:14;;8177:6;8161:13;8171:2;8161:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8153:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8263:76;8335:3;8263:67;8285:15;;8275:9;;:25;8274:55;;8315:14;;8274:55;;;8302:12;;8274:55;8263:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8251:88;;8358:9;;:11;;;;;;;;;:::i;:::-;;;;;;7965:420;8410:13;;;;;;;;;;;8404:19;;:2;:19;;;:43;;;;;8442:4;8427:20;;:4;:20;;;;8404:43;8401:174;;;8480:79;8555:3;8480:70;8502:16;;8492:9;;:26;8491:58;;8534:15;;8491:58;;;8520:13;;8491:58;8480:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8468:91;;8401:174;8591:28;8622:24;8640:4;8622:9;:24::i;:::-;8591:55;;8666:6;;;;;;;;;;;8665:7;:30;;;;;8682:13;;;;;;;;;;;8676:19;;:2;:19;;;8665:30;:45;;;;;8699:11;;;;;;;;;;8665:45;:89;;;;;8737:17;;8714:20;:40;8665:89;:123;;;;;8770:18;;8758:9;;:30;8665:123;8661:679;;;8828:13;;8813:12;:28;8809:90;;;8878:1;8866:9;:13;;;;8809:90;8937:1;8925:9;;:13;8917:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;8985:69;9002:51;9006:6;9014:38;9018:20;9040:11;;9014:3;:38::i;:::-;9002:3;:51::i;:::-;8985:16;:69::i;:::-;9073:26;9102:21;9073:50;;9167:1;9146:18;:22;9142:106;;;9193:35;9206:21;9193:12;:35::i;:::-;9142:106;9266:9;;:11;;;;;;;;;:::i;:::-;;;;;;9312:12;9296:13;:28;;;;8790:550;8661:679;7636:1715;7598:1753;9376:1;9366:9;:11;9363:161;;;9416:39;9445:9;9416;:24;9434:4;9416:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9391:9;:24;9409:4;9391:24;;;;;;;;;;;;;;;:64;;;;9496:4;9473:39;;9482:4;9473:39;;;9502:9;9473:39;;;;;;:::i;:::-;;;;;;;;9363:161;9550:27;9570:6;9550:9;:15;9560:4;9550:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9534:9;:15;9544:4;9534:15;;;;;;;;;;;;;;;:43;;;;9602:40;9620:21;9631:9;9620:6;:10;;:21;;;;:::i;:::-;9602:9;:13;9612:2;9602:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9588:9;:13;9598:2;9588:13;;;;;;;;;;;;;;;:54;;;;9673:2;9658:41;;9667:4;9658:41;;;9677:21;9688:9;9677:6;:10;;:21;;;;:::i;:::-;9658:41;;;;;;:::i;:::-;;;;;;;;7328:2379;7259:2448;;;:::o;1271:190::-;1357:7;1390:1;1385;:6;;1393:12;1377:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1417:9;1433:1;1429;:5;;;;:::i;:::-;1417:17;;1452:1;1445:8;;;1271:190;;;;;:::o;9829:483::-;5046:4;5037:6;;:13;;;;;;;;;;;;;;;;;;9907:21:::1;9945:1;9931:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9907:40;;9976:4;9958;9963:1;9958:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10002:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9992:4;9997:1;9992:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10035:62;10052:4;10067:15;;;;;;;;;;;10085:11;10035:8;:62::i;:::-;10108:15;;;;;;;;;;;:66;;;10189:11;10215:1;10231:4;10258;10278:15;10108:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9896:416;5082:5:::0;5073:6;;:14;;;;;;;;;;;;;;;;;;9829:483;:::o;10618:92::-;10675:10;;;;;;;;;;;:19;;:27;10695:6;10675:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10618:92;:::o;1469:246::-;1527:7;1556:1;1551;:6;1547:47;;1581:1;1574:8;;;;1547:47;1604:9;1620:1;1616;:5;;;;:::i;:::-;1604:17;;1649:1;1644;1640;:5;;;;:::i;:::-;:10;1632:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1706:1;1699:8;;;1469:246;;;;;:::o;1723:132::-;1781:7;1808:39;1812:1;1815;1808:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1801:46;;1723:132;;;;:::o;9715:106::-;9772:7;9803:1;9799;:5;9798:15;;9812:1;9798:15;;;9808:1;9798:15;9791:22;;9715:106;;;;:::o;940:179::-;998:7;1018:9;1034:1;1030;:5;;;;:::i;:::-;1018:17;;1059:1;1054;:6;;1046:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1110:1;1103:8;;;940:179;;;;:::o;1127:136::-;1185:7;1212:43;1216:1;1219;1212:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1205:50;;1127:136;;;;:::o;1863:189::-;1949:7;1981:1;1977;:5;1984:12;1969:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2008:9;2024:1;2020;:5;;;;:::i;:::-;2008:17;;2043:1;2036:8;;;1863: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:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1242:75::-;1275:6;1308:2;1302:9;1292:19;;1242:75;:::o;1323:117::-;1432:1;1429;1422:12;1446:117;1555:1;1552;1545:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:117::-;4855:1;4852;4845:12;4869:180;4917:77;4914:1;4907:88;5014:4;5011:1;5004:15;5038:4;5035:1;5028:15;5055:281;5138:27;5160:4;5138:27;:::i;:::-;5130:6;5126:40;5268:6;5256:10;5253:22;5232:18;5220:10;5217:34;5214:62;5211:88;;;5279:18;;:::i;:::-;5211:88;5319:10;5315:2;5308:22;5098:238;5055:281;;:::o;5342:129::-;5376:6;5403:20;;:::i;:::-;5393:30;;5432:33;5460:4;5452:6;5432:33;:::i;:::-;5342:129;;;:::o;5477:311::-;5554:4;5644:18;5636:6;5633:30;5630:56;;;5666:18;;:::i;:::-;5630:56;5716:4;5708:6;5704:17;5696:25;;5776:4;5770;5766:15;5758:23;;5477:311;;;:::o;5794:117::-;5903:1;5900;5893:12;5934:710;6030:5;6055:81;6071:64;6128:6;6071:64;:::i;:::-;6055:81;:::i;:::-;6046:90;;6156:5;6185:6;6178:5;6171:21;6219:4;6212:5;6208:16;6201:23;;6272:4;6264:6;6260:17;6252:6;6248:30;6301:3;6293:6;6290:15;6287:122;;;6320:79;;:::i;:::-;6287:122;6435:6;6418:220;6452:6;6447:3;6444:15;6418:220;;;6527:3;6556:37;6589:3;6577:10;6556:37;:::i;:::-;6551:3;6544:50;6623:4;6618:3;6614:14;6607:21;;6494:144;6478:4;6473:3;6469:14;6462:21;;6418:220;;;6422:21;6036:608;;5934:710;;;;;:::o;6667:370::-;6738:5;6787:3;6780:4;6772:6;6768:17;6764:27;6754:122;;6795:79;;:::i;:::-;6754:122;6912:6;6899:20;6937:94;7027:3;7019:6;7012:4;7004:6;7000:17;6937:94;:::i;:::-;6928:103;;6744:293;6667:370;;;;:::o;7043:539::-;7127:6;7176:2;7164:9;7155:7;7151:23;7147:32;7144:119;;;7182:79;;:::i;:::-;7144:119;7330:1;7319:9;7315:17;7302:31;7360:18;7352:6;7349:30;7346:117;;;7382:79;;:::i;:::-;7346:117;7487:78;7557:7;7548:6;7537:9;7533:22;7487:78;:::i;:::-;7477:88;;7273:302;7043:539;;;;:::o;7588:329::-;7647:6;7696:2;7684:9;7675:7;7671:23;7667:32;7664:119;;;7702:79;;:::i;:::-;7664:119;7822:1;7847:53;7892:7;7883:6;7872:9;7868:22;7847:53;:::i;:::-;7837:63;;7793:117;7588:329;;;;:::o;7923:118::-;8010:24;8028:5;8010:24;:::i;:::-;8005:3;7998:37;7923:118;;:::o;8047:222::-;8140:4;8178:2;8167:9;8163:18;8155:26;;8191:71;8259:1;8248:9;8244:17;8235:6;8191:71;:::i;:::-;8047:222;;;;:::o;8275:117::-;8384:1;8381;8374:12;8398:308;8460:4;8550:18;8542:6;8539:30;8536:56;;;8572:18;;:::i;:::-;8536:56;8610:29;8632:6;8610:29;:::i;:::-;8602:37;;8694:4;8688;8684:15;8676:23;;8398:308;;;:::o;8712:148::-;8810:6;8805:3;8800;8787:30;8851:1;8842:6;8837:3;8833:16;8826:27;8712:148;;;:::o;8866:425::-;8944:5;8969:66;8985:49;9027:6;8985:49;:::i;:::-;8969:66;:::i;:::-;8960:75;;9058:6;9051:5;9044:21;9096:4;9089:5;9085:16;9134:3;9125:6;9120:3;9116:16;9113:25;9110:112;;;9141:79;;:::i;:::-;9110:112;9231:54;9278:6;9273:3;9268;9231:54;:::i;:::-;8950:341;8866:425;;;;;:::o;9311:340::-;9367:5;9416:3;9409:4;9401:6;9397:17;9393:27;9383:122;;9424:79;;:::i;:::-;9383:122;9541:6;9528:20;9566:79;9641:3;9633:6;9626:4;9618:6;9614:17;9566:79;:::i;:::-;9557:88;;9373:278;9311:340;;;;:::o;9657:509::-;9726:6;9775:2;9763:9;9754:7;9750:23;9746:32;9743:119;;;9781:79;;:::i;:::-;9743:119;9929:1;9918:9;9914:17;9901:31;9959:18;9951:6;9948:30;9945:117;;;9981:79;;:::i;:::-;9945:117;10086:63;10141:7;10132:6;10121:9;10117:22;10086:63;:::i;:::-;10076:73;;9872:287;9657:509;;;;:::o;10172:474::-;10240:6;10248;10297:2;10285:9;10276:7;10272:23;10268:32;10265:119;;;10303:79;;:::i;:::-;10265:119;10423:1;10448:53;10493:7;10484:6;10473:9;10469:22;10448:53;:::i;:::-;10438:63;;10394:117;10550:2;10576:53;10621:7;10612:6;10601:9;10597:22;10576:53;:::i;:::-;10566:63;;10521:118;10172:474;;;;;:::o;10652:329::-;10711:6;10760:2;10748:9;10739:7;10735:23;10731:32;10728:119;;;10766:79;;:::i;:::-;10728:119;10886:1;10911:53;10956:7;10947:6;10936:9;10932:22;10911:53;:::i;:::-;10901:63;;10857:117;10652:329;;;;:::o;10987:180::-;11035:77;11032:1;11025:88;11132:4;11129:1;11122:15;11156:4;11153:1;11146:15;11173:320;11217:6;11254:1;11248:4;11244:12;11234:22;;11301:1;11295:4;11291:12;11322:18;11312:81;;11378:4;11370:6;11366:17;11356:27;;11312:81;11440:2;11432:6;11429:14;11409:18;11406:38;11403:84;;11459:18;;:::i;:::-;11403:84;11224:269;11173:320;;;:::o;11499:182::-;11639:34;11635:1;11627:6;11623:14;11616:58;11499:182;:::o;11687:366::-;11829:3;11850:67;11914:2;11909:3;11850:67;:::i;:::-;11843:74;;11926:93;12015:3;11926:93;:::i;:::-;12044:2;12039:3;12035:12;12028:19;;11687:366;;;:::o;12059:419::-;12225:4;12263:2;12252:9;12248:18;12240:26;;12312:9;12306:4;12302:20;12298:1;12287:9;12283:17;12276:47;12340:131;12466:4;12340:131;:::i;:::-;12332:139;;12059:419;;;:::o;12484:85::-;12529:7;12558:5;12547:16;;12484:85;;;:::o;12575:60::-;12603:3;12624:5;12617:12;;12575:60;;;:::o;12641:158::-;12699:9;12732:61;12750:42;12759:32;12785:5;12759:32;:::i;:::-;12750:42;:::i;:::-;12732:61;:::i;:::-;12719:74;;12641:158;;;:::o;12805:147::-;12900:45;12939:5;12900:45;:::i;:::-;12895:3;12888:58;12805:147;;:::o;12958:238::-;13059:4;13097:2;13086:9;13082:18;13074:26;;13110:79;13186:1;13175:9;13171:17;13162:6;13110:79;:::i;:::-;12958:238;;;;:::o;13202:180::-;13250:77;13247:1;13240:88;13347:4;13344:1;13337:15;13371:4;13368:1;13361:15;13388:102;13430:8;13477:5;13474:1;13470:13;13449:34;;13388:102;;;:::o;13496:848::-;13557:5;13564:4;13588:6;13579:15;;13612:5;13603:14;;13626:712;13647:1;13637:8;13634:15;13626:712;;;13742:4;13737:3;13733:14;13727:4;13724:24;13721:50;;;13751:18;;:::i;:::-;13721:50;13801:1;13791:8;13787:16;13784:451;;;14216:4;14209:5;14205:16;14196:25;;13784:451;14266:4;14260;14256:15;14248:23;;14296:32;14319:8;14296:32;:::i;:::-;14284:44;;13626:712;;;13496:848;;;;;;;:::o;14350:1073::-;14404:5;14595:8;14585:40;;14616:1;14607:10;;14618:5;;14585:40;14644:4;14634:36;;14661:1;14652:10;;14663:5;;14634:36;14730:4;14778:1;14773:27;;;;14814:1;14809:191;;;;14723:277;;14773:27;14791:1;14782:10;;14793:5;;;14809:191;14854:3;14844:8;14841:17;14838:43;;;14861:18;;:::i;:::-;14838:43;14910:8;14907:1;14903:16;14894:25;;14945:3;14938:5;14935:14;14932:40;;;14952:18;;:::i;:::-;14932:40;14985:5;;;14723:277;;15109:2;15099:8;15096:16;15090:3;15084:4;15081:13;15077:36;15059:2;15049:8;15046:16;15041:2;15035:4;15032:12;15028:35;15012:111;15009:246;;;15165:8;15159:4;15155:19;15146:28;;15200:3;15193:5;15190:14;15187:40;;;15207:18;;:::i;:::-;15187:40;15240:5;;15009:246;15280:42;15318:3;15308:8;15302:4;15299:1;15280:42;:::i;:::-;15265:57;;;;15354:4;15349:3;15345:14;15338:5;15335:25;15332:51;;;15363:18;;:::i;:::-;15332:51;15412:4;15405:5;15401:16;15392:25;;14350:1073;;;;;;:::o;15429:281::-;15487:5;15511:23;15529:4;15511:23;:::i;:::-;15503:31;;15555:25;15571:8;15555:25;:::i;:::-;15543:37;;15599:104;15636:66;15626:8;15620:4;15599:104;:::i;:::-;15590:113;;15429:281;;;;:::o;15716:410::-;15756:7;15779:20;15797:1;15779:20;:::i;:::-;15774:25;;15813:20;15831:1;15813:20;:::i;:::-;15808:25;;15868:1;15865;15861:9;15890:30;15908:11;15890:30;:::i;:::-;15879:41;;16069:1;16060:7;16056:15;16053:1;16050:22;16030:1;16023:9;16003:83;15980:139;;16099:18;;:::i;:::-;15980:139;15764:362;15716:410;;;;:::o;16132:180::-;16180:77;16177:1;16170:88;16277:4;16274:1;16267:15;16301:4;16298:1;16291:15;16318:239;16458:34;16454:1;16446:6;16442:14;16435:58;16527:22;16522:2;16514:6;16510:15;16503:47;16318:239;:::o;16563:366::-;16705:3;16726:67;16790:2;16785:3;16726:67;:::i;:::-;16719:74;;16802:93;16891:3;16802:93;:::i;:::-;16920:2;16915:3;16911:12;16904:19;;16563:366;;;:::o;16935:419::-;17101:4;17139:2;17128:9;17124:18;17116:26;;17188:9;17182:4;17178:20;17174:1;17163:9;17159:17;17152:47;17216:131;17342:4;17216:131;:::i;:::-;17208:139;;16935:419;;;:::o;17360:141::-;17409:4;17432:3;17424:11;;17455:3;17452:1;17445:14;17489:4;17486:1;17476:18;17468:26;;17360:141;;;:::o;17507:93::-;17544:6;17591:2;17586;17579:5;17575:14;17571:23;17561:33;;17507:93;;;:::o;17606:107::-;17650:8;17700:5;17694:4;17690:16;17669:37;;17606:107;;;;:::o;17719:393::-;17788:6;17838:1;17826:10;17822:18;17861:97;17891:66;17880:9;17861:97;:::i;:::-;17979:39;18009:8;17998:9;17979:39;:::i;:::-;17967:51;;18051:4;18047:9;18040:5;18036:21;18027:30;;18100:4;18090:8;18086:19;18079:5;18076:30;18066:40;;17795:317;;17719:393;;;;;:::o;18118:142::-;18168:9;18201:53;18219:34;18228:24;18246:5;18228:24;:::i;:::-;18219:34;:::i;:::-;18201:53;:::i;:::-;18188:66;;18118:142;;;:::o;18266:75::-;18309:3;18330:5;18323:12;;18266:75;;;:::o;18347:269::-;18457:39;18488:7;18457:39;:::i;:::-;18518:91;18567:41;18591:16;18567:41;:::i;:::-;18559:6;18552:4;18546:11;18518:91;:::i;:::-;18512:4;18505:105;18423:193;18347:269;;;:::o;18622:73::-;18667:3;18622:73;:::o;18701:189::-;18778:32;;:::i;:::-;18819:65;18877:6;18869;18863:4;18819:65;:::i;:::-;18754:136;18701:189;;:::o;18896:186::-;18956:120;18973:3;18966:5;18963:14;18956:120;;;19027:39;19064:1;19057:5;19027:39;:::i;:::-;19000:1;18993:5;18989:13;18980:22;;18956:120;;;18896:186;;:::o;19088:543::-;19189:2;19184:3;19181:11;19178:446;;;19223:38;19255:5;19223:38;:::i;:::-;19307:29;19325:10;19307:29;:::i;:::-;19297:8;19293:44;19490:2;19478:10;19475:18;19472:49;;;19511:8;19496:23;;19472:49;19534:80;19590:22;19608:3;19590:22;:::i;:::-;19580:8;19576:37;19563:11;19534:80;:::i;:::-;19193:431;;19178:446;19088:543;;;:::o;19637:117::-;19691:8;19741:5;19735:4;19731:16;19710:37;;19637:117;;;;:::o;19760:169::-;19804:6;19837:51;19885:1;19881:6;19873:5;19870:1;19866:13;19837:51;:::i;:::-;19833:56;19918:4;19912;19908:15;19898:25;;19811:118;19760:169;;;;:::o;19934:295::-;20010:4;20156:29;20181:3;20175:4;20156:29;:::i;:::-;20148:37;;20218:3;20215:1;20211:11;20205:4;20202:21;20194:29;;19934:295;;;;:::o;20234:1395::-;20351:37;20384:3;20351:37;:::i;:::-;20453:18;20445:6;20442:30;20439:56;;;20475:18;;:::i;:::-;20439:56;20519:38;20551:4;20545:11;20519:38;:::i;:::-;20604:67;20664:6;20656;20650:4;20604:67;:::i;:::-;20698:1;20722:4;20709:17;;20754:2;20746:6;20743:14;20771:1;20766:618;;;;21428:1;21445:6;21442:77;;;21494:9;21489:3;21485:19;21479:26;21470:35;;21442:77;21545:67;21605:6;21598:5;21545:67;:::i;:::-;21539:4;21532:81;21401:222;20736:887;;20766:618;20818:4;20814:9;20806:6;20802:22;20852:37;20884:4;20852:37;:::i;:::-;20911:1;20925:208;20939:7;20936:1;20933:14;20925:208;;;21018:9;21013:3;21009:19;21003:26;20995:6;20988:42;21069:1;21061:6;21057:14;21047:24;;21116:2;21105:9;21101:18;21088:31;;20962:4;20959:1;20955:12;20950:17;;20925:208;;;21161:6;21152:7;21149:19;21146:179;;;21219:9;21214:3;21210:19;21204:26;21262:48;21304:4;21296:6;21292:17;21281:9;21262:48;:::i;:::-;21254:6;21247:64;21169:156;21146:179;21371:1;21367;21359:6;21355:14;21351:22;21345:4;21338:36;20773:611;;;20736:887;;20326:1303;;;20234:1395;;:::o;21635:173::-;21775:25;21771:1;21763:6;21759:14;21752:49;21635:173;:::o;21814:366::-;21956:3;21977:67;22041:2;22036:3;21977:67;:::i;:::-;21970:74;;22053:93;22142:3;22053:93;:::i;:::-;22171:2;22166:3;22162:12;22155:19;;21814:366;;;:::o;22186:419::-;22352:4;22390:2;22379:9;22375:18;22367:26;;22439:9;22433:4;22429:20;22425:1;22414:9;22410:17;22403:47;22467:131;22593:4;22467:131;:::i;:::-;22459:139;;22186:419;;;:::o;22611:143::-;22668:5;22699:6;22693:13;22684:22;;22715:33;22742:5;22715:33;:::i;:::-;22611:143;;;;:::o;22760:351::-;22830:6;22879:2;22867:9;22858:7;22854:23;22850:32;22847:119;;;22885:79;;:::i;:::-;22847:119;23005:1;23030:64;23086:7;23077:6;23066:9;23062:22;23030:64;:::i;:::-;23020:74;;22976:128;22760:351;;;;:::o;23117:332::-;23238:4;23276:2;23265:9;23261:18;23253:26;;23289:71;23357:1;23346:9;23342:17;23333:6;23289:71;:::i;:::-;23370:72;23438:2;23427:9;23423:18;23414:6;23370:72;:::i;:::-;23117:332;;;;;:::o;23455:807::-;23704:4;23742:3;23731:9;23727:19;23719:27;;23756:71;23824:1;23813:9;23809:17;23800:6;23756:71;:::i;:::-;23837:72;23905:2;23894:9;23890:18;23881:6;23837:72;:::i;:::-;23919:80;23995:2;23984:9;23980:18;23971:6;23919:80;:::i;:::-;24009;24085:2;24074:9;24070:18;24061:6;24009:80;:::i;:::-;24099:73;24167:3;24156:9;24152:19;24143:6;24099:73;:::i;:::-;24182;24250:3;24239:9;24235:19;24226:6;24182:73;:::i;:::-;23455:807;;;;;;;;;:::o;24268:143::-;24325:5;24356:6;24350:13;24341:22;;24372:33;24399:5;24372:33;:::i;:::-;24268:143;;;;:::o;24417:663::-;24505:6;24513;24521;24570:2;24558:9;24549:7;24545:23;24541:32;24538:119;;;24576:79;;:::i;:::-;24538:119;24696:1;24721:64;24777:7;24768:6;24757:9;24753:22;24721:64;:::i;:::-;24711:74;;24667:128;24834:2;24860:64;24916:7;24907:6;24896:9;24892:22;24860:64;:::i;:::-;24850:74;;24805:129;24973:2;24999:64;25055:7;25046:6;25035:9;25031:22;24999:64;:::i;:::-;24989:74;;24944:129;24417:663;;;;;:::o;25086:332::-;25207:4;25245:2;25234:9;25230:18;25222:26;;25258:71;25326:1;25315:9;25311:17;25302:6;25258:71;:::i;:::-;25339:72;25407:2;25396:9;25392:18;25383:6;25339:72;:::i;:::-;25086:332;;;;;:::o;25424:116::-;25494:21;25509:5;25494:21;:::i;:::-;25487:5;25484:32;25474:60;;25530:1;25527;25520:12;25474:60;25424:116;:::o;25546:137::-;25600:5;25631:6;25625:13;25616:22;;25647:30;25671:5;25647:30;:::i;:::-;25546:137;;;;:::o;25689:345::-;25756:6;25805:2;25793:9;25784:7;25780:23;25776:32;25773:119;;;25811:79;;:::i;:::-;25773:119;25931:1;25956:61;26009:7;26000:6;25989:9;25985:22;25956:61;:::i;:::-;25946:71;;25902:125;25689:345;;;;:::o;26040:223::-;26180:34;26176:1;26168:6;26164:14;26157:58;26249:6;26244:2;26236:6;26232:15;26225:31;26040:223;:::o;26269:366::-;26411:3;26432:67;26496:2;26491:3;26432:67;:::i;:::-;26425:74;;26508:93;26597:3;26508:93;:::i;:::-;26626:2;26621:3;26617:12;26610:19;;26269:366;;;:::o;26641:419::-;26807:4;26845:2;26834:9;26830:18;26822:26;;26894:9;26888:4;26884:20;26880:1;26869:9;26865:17;26858:47;26922:131;27048:4;26922:131;:::i;:::-;26914:139;;26641:419;;;:::o;27066:221::-;27206:34;27202:1;27194:6;27190:14;27183:58;27275:4;27270:2;27262:6;27258:15;27251:29;27066:221;:::o;27293:366::-;27435:3;27456:67;27520:2;27515:3;27456:67;:::i;:::-;27449:74;;27532:93;27621:3;27532:93;:::i;:::-;27650:2;27645:3;27641:12;27634:19;;27293:366;;;:::o;27665:419::-;27831:4;27869:2;27858:9;27854:18;27846:26;;27918:9;27912:4;27908:20;27904:1;27893:9;27889:17;27882:47;27946:131;28072:4;27946:131;:::i;:::-;27938:139;;27665:419;;;:::o;28090:224::-;28230:34;28226:1;28218:6;28214:14;28207:58;28299:7;28294:2;28286:6;28282:15;28275:32;28090:224;:::o;28320:366::-;28462:3;28483:67;28547:2;28542:3;28483:67;:::i;:::-;28476:74;;28559:93;28648:3;28559:93;:::i;:::-;28677:2;28672:3;28668:12;28661:19;;28320:366;;;:::o;28692:419::-;28858:4;28896:2;28885:9;28881:18;28873:26;;28945:9;28939:4;28935:20;28931:1;28920:9;28916:17;28909:47;28973:131;29099:4;28973:131;:::i;:::-;28965:139;;28692:419;;;:::o;29117:222::-;29257:34;29253:1;29245:6;29241:14;29234:58;29326:5;29321:2;29313:6;29309:15;29302:30;29117:222;:::o;29345:366::-;29487:3;29508:67;29572:2;29567:3;29508:67;:::i;:::-;29501:74;;29584:93;29673:3;29584:93;:::i;:::-;29702:2;29697:3;29693:12;29686:19;;29345:366;;;:::o;29717:419::-;29883:4;29921:2;29910:9;29906:18;29898:26;;29970:9;29964:4;29960:20;29956:1;29945:9;29941:17;29934:47;29998:131;30124:4;29998:131;:::i;:::-;29990:139;;29717:419;;;:::o;30142:228::-;30282:34;30278:1;30270:6;30266:14;30259:58;30351:11;30346:2;30338:6;30334:15;30327:36;30142:228;:::o;30376:366::-;30518:3;30539:67;30603:2;30598:3;30539:67;:::i;:::-;30532:74;;30615:93;30704:3;30615:93;:::i;:::-;30733:2;30728:3;30724:12;30717:19;;30376:366;;;:::o;30748:419::-;30914:4;30952:2;30941:9;30937:18;30929:26;;31001:9;30995:4;30991:20;30987:1;30976:9;30972:17;30965:47;31029:131;31155:4;31029:131;:::i;:::-;31021:139;;30748:419;;;:::o;31173:175::-;31313:27;31309:1;31301:6;31297:14;31290:51;31173:175;:::o;31354:366::-;31496:3;31517:67;31581:2;31576:3;31517:67;:::i;:::-;31510:74;;31593:93;31682:3;31593:93;:::i;:::-;31711:2;31706:3;31702:12;31695:19;;31354:366;;;:::o;31726:419::-;31892:4;31930:2;31919:9;31915:18;31907:26;;31979:9;31973:4;31969:20;31965:1;31954:9;31950:17;31943:47;32007:131;32133:4;32007:131;:::i;:::-;31999:139;;31726:419;;;:::o;32151:191::-;32191:3;32210:20;32228:1;32210:20;:::i;:::-;32205:25;;32244:20;32262:1;32244:20;:::i;:::-;32239:25;;32287:1;32284;32280:9;32273:16;;32308:3;32305:1;32302:10;32299:36;;;32315:18;;:::i;:::-;32299:36;32151:191;;;;:::o;32348:176::-;32488:28;32484:1;32476:6;32472:14;32465:52;32348:176;:::o;32530:366::-;32672:3;32693:67;32757:2;32752:3;32693:67;:::i;:::-;32686:74;;32769:93;32858:3;32769:93;:::i;:::-;32887:2;32882:3;32878:12;32871:19;;32530:366;;;:::o;32902:419::-;33068:4;33106:2;33095:9;33091:18;33083:26;;33155:9;33149:4;33145:20;33141:1;33130:9;33126:17;33119:47;33183:131;33309:4;33183:131;:::i;:::-;33175:139;;32902:419;;;:::o;33327:233::-;33366:3;33389:24;33407:5;33389:24;:::i;:::-;33380:33;;33435:66;33428:5;33425:77;33422:103;;33505:18;;:::i;:::-;33422:103;33552:1;33545:5;33541:13;33534:20;;33327:233;;;:::o;33566:173::-;33706:25;33702:1;33694:6;33690:14;33683:49;33566:173;:::o;33745:366::-;33887:3;33908:67;33972:2;33967:3;33908:67;:::i;:::-;33901:74;;33984:93;34073:3;33984:93;:::i;:::-;34102:2;34097:3;34093:12;34086:19;;33745:366;;;:::o;34117:419::-;34283:4;34321:2;34310:9;34306:18;34298:26;;34370:9;34364:4;34360:20;34356:1;34345:9;34341:17;34334:47;34398:131;34524:4;34398:131;:::i;:::-;34390:139;;34117:419;;;:::o;34542:194::-;34582:4;34602:20;34620:1;34602:20;:::i;:::-;34597:25;;34636:20;34654:1;34636:20;:::i;:::-;34631:25;;34680:1;34677;34673:9;34665:17;;34704:1;34698:4;34695:11;34692:37;;;34709:18;;:::i;:::-;34692:37;34542:194;;;;:::o;34742:114::-;34809:6;34843:5;34837:12;34827:22;;34742:114;;;:::o;34862:184::-;34961:11;34995:6;34990:3;34983:19;35035:4;35030:3;35026:14;35011:29;;34862:184;;;;:::o;35052:132::-;35119:4;35142:3;35134:11;;35172:4;35167:3;35163:14;35155:22;;35052:132;;;:::o;35190:108::-;35267:24;35285:5;35267:24;:::i;:::-;35262:3;35255:37;35190:108;;:::o;35304:179::-;35373:10;35394:46;35436:3;35428:6;35394:46;:::i;:::-;35472:4;35467:3;35463:14;35449:28;;35304:179;;;;:::o;35489:113::-;35559:4;35591;35586:3;35582:14;35574:22;;35489:113;;;:::o;35638:732::-;35757:3;35786:54;35834:5;35786:54;:::i;:::-;35856:86;35935:6;35930:3;35856:86;:::i;:::-;35849:93;;35966:56;36016:5;35966:56;:::i;:::-;36045:7;36076:1;36061:284;36086:6;36083:1;36080:13;36061:284;;;36162:6;36156:13;36189:63;36248:3;36233:13;36189:63;:::i;:::-;36182:70;;36275:60;36328:6;36275:60;:::i;:::-;36265:70;;36121:224;36108:1;36105;36101:9;36096:14;;36061:284;;;36065:14;36361:3;36354:10;;35762:608;;;35638:732;;;;:::o;36376:831::-;36639:4;36677:3;36666:9;36662:19;36654:27;;36691:71;36759:1;36748:9;36744:17;36735:6;36691:71;:::i;:::-;36772:80;36848:2;36837:9;36833:18;36824:6;36772:80;:::i;:::-;36899:9;36893:4;36889:20;36884:2;36873:9;36869:18;36862:48;36927:108;37030:4;37021:6;36927:108;:::i;:::-;36919:116;;37045:72;37113:2;37102:9;37098:18;37089:6;37045:72;:::i;:::-;37127:73;37195:3;37184:9;37180:19;37171:6;37127:73;:::i;:::-;36376:831;;;;;;;;:::o;37213:180::-;37261:77;37258:1;37251:88;37358:4;37355:1;37348:15;37382:4;37379:1;37372:15;37399:185;37439:1;37456:20;37474:1;37456:20;:::i;:::-;37451:25;;37490:20;37508:1;37490:20;:::i;:::-;37485:25;;37529:1;37519:35;;37534:18;;:::i;:::-;37519:35;37576:1;37573;37569:9;37564:14;;37399:185;;;;:::o;37590:220::-;37730:34;37726:1;37718:6;37714:14;37707:58;37799:3;37794:2;37786:6;37782:15;37775:28;37590:220;:::o;37816:366::-;37958:3;37979:67;38043:2;38038:3;37979:67;:::i;:::-;37972:74;;38055:93;38144:3;38055:93;:::i;:::-;38173:2;38168:3;38164:12;38157:19;;37816:366;;;:::o;38188:419::-;38354:4;38392:2;38381:9;38377:18;38369:26;;38441:9;38435:4;38431:20;38427:1;38416:9;38412:17;38405:47;38469:131;38595:4;38469:131;:::i;:::-;38461:139;;38188:419;;;:::o;38613:177::-;38753:29;38749:1;38741:6;38737:14;38730:53;38613:177;:::o;38796:366::-;38938:3;38959:67;39023:2;39018:3;38959:67;:::i;:::-;38952:74;;39035:93;39124:3;39035:93;:::i;:::-;39153:2;39148:3;39144:12;39137:19;;38796:366;;;:::o;39168:419::-;39334:4;39372:2;39361:9;39357:18;39349:26;;39421:9;39415:4;39411:20;39407:1;39396:9;39392:17;39385:47;39449:131;39575:4;39449:131;:::i;:::-;39441:139;;39168:419;;;:::o

Swarm Source

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