ETH Price: $2,434.80 (-2.23%)

Token

Arcana Game (ARCN)
 

Overview

Max Total Supply

200,000,000 ARCN

Holders

160

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.328721278260875231 ARCN

Value
$0.00
0xd0970bfafc1db39f800bb80df5e8503cb1d12b34
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:
ARCN

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-11
*/

// SPDX-License-Identifier: MIT

/**
Telegram : https://t.me/ArcanaGame
Twitter : https://twitter.com/arcanagameeth
Website : http://arcanagame.club/
*/

pragma solidity 0.8.21;

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 {
    /**
     * @dev Creates a new UniswapV2 pair for the given tokens.
     * @param tokenA The address of the first token in the pair.
     * @param tokenB The address of the second token in the pair.
     * @return pair The address of the newly created UniswapV2 pair.
     */
    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 ARCN is Context, IERC20, Ownable {
    using SafeMath for uint256;
    IUniswapV2Router02 private uniswapV2Router;

    string private constant _name = unicode"Arcana Game";
    string private constant _symbol = unicode"ARCN";
    uint8 private constant _decimals = 18;
    uint256 private constant _totalSupply = 200000000 * 10**_decimals;

    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => uint256) private _balances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => uint256) private _holderLastTransferTimestamp;

    uint256 private _buyFee = 20;
    uint256 private _sellFee = 25;

    uint256 public _maxTxAmount = _totalSupply / 200;
    uint256 public _maxWalletSize = _totalSupply / 200;
    uint256 public _taxSwapThreshold = _totalSupply / 400;

    address payable private _taxWallet;

    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool public transferDelayEnabled = true;

    event FeeUpdated(uint256 buyFee, uint256 sellFee);
    event MaxTxAmountUpdated(uint256 maxTxAmount);
    event MaxWalletSizeUpdated(uint256 maxWalletSize);
    event TaxSwapThresholdUpdated(uint256 newThreshold);
    event TransferDelayUpdated(bool transferDelayEnabled);
    event TradingOpened();
    event StuckETHCleared(uint256 amount);
    event StuckTokensCleared(address indexed tokenAddress, uint256 amount);

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

    constructor (address taxWallet) {
        _taxWallet = payable(taxWallet);
        _balances[_msgSender()] = _totalSupply;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

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

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

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

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

    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: Transfer amount must be greater than zero");

        uint256 taxAmount = 0;

        // Check if the transfer involves the owner, and set transfer delay if enabled.
        if (from != owner() && to != owner()) {
            if (transferDelayEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                    require(_holderLastTransferTimestamp[tx.origin] < block.number, "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed.");
                    _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

            // Check if the transfer is from the Uniswap pair and calculate buy fees.
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                taxAmount = amount.mul(_buyFee).div(100);
                require(amount <= _maxTxAmount, "_transfer: Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "_transfer: Exceeds the maxWalletSize.");
            }

            // Check if the transfer is to the Uniswap pair and calculate sell fees.
            if (to == uniswapV2Pair && from != address(this)) {
                taxAmount = amount.mul(_sellFee).div(100);
            }

            // Check if a swap is needed and execute the swap.
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold) {
                if (amount >= _taxSwapThreshold) {
                    swapTokensForEth(_taxSwapThreshold);
                } else {
                    swapTokensForEth(amount);
                }
            }
        }

        // If there's a tax, transfer the tax amount to the contract.
        if (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(taxAmount);
            emit Transfer(from, address(this), taxAmount);
        }

        // Update balances after the transfer.
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    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(_taxWallet),
            block.timestamp
        );
    }

    function setBuyFee(uint256 tax) external onlyOwner {
        require(tax <= 35, "setBuyfee: Tax should be less than or equal to 35");
        _buyFee = tax;
        emit FeeUpdated(_buyFee, _sellFee);
    }

    function setSellFee(uint256 tax) external onlyOwner {
        require(tax <= 35, "setSellFee: Tax should be less than or equal to 35");
        _sellFee = tax;
        emit FeeUpdated(_buyFee, _sellFee);
    }

    function setMaxTransactionSize(uint256 percent) external onlyOwner {
        require(percent <= 10000, "setMaxTransferAmount: Percentage should be less than or equal to 10000");
        _maxTxAmount = _totalSupply * percent / 10000;
        emit MaxTxAmountUpdated(_maxTxAmount);
    }

    function setMaxWalletSize(uint256 percent) external onlyOwner {
        require(percent <= 10000, "setMaxBalance: Percentage should be less than or equal to 10000");
        _maxWalletSize = _totalSupply * percent / 10000;
        emit MaxWalletSizeUpdated(_maxWalletSize);
    }

    function setTaxSwapThreshold(uint256 percent) external onlyOwner {
        require(percent <= 10000, "setTaxSwapThreshold: Percentage should be less than or equal to 10000");
        _taxSwapThreshold = _totalSupply * percent / 10000;
        emit TaxSwapThresholdUpdated(_taxSwapThreshold);
    }

    function openLimits() external onlyOwner {
        _maxTxAmount = _totalSupply;
        _maxWalletSize = _totalSupply;
        transferDelayEnabled = false;
        emit MaxTxAmountUpdated(_totalSupply);
        emit MaxWalletSizeUpdated(_totalSupply);
        emit TransferDelayUpdated(false);
    }

    function disableTransferDelay() external onlyOwner {
        transferDelayEnabled = false;
        emit TransferDelayUpdated(false);
    }

    function removeStuckETH() external onlyOwner {
        uint256 contractBalance = address(this).balance;
        require(contractBalance > 0, "No stuck ETH to clear");

        payable(owner()).transfer(contractBalance);

        emit StuckETHCleared(contractBalance);
    }

    function clearStuckERC20(address tokenAddress) external onlyOwner {
        IERC20 token = IERC20(tokenAddress);
        uint256 contractTokenBalance = token.balanceOf(address(this));
        require(contractTokenBalance > 0, "No stuck tokens to clear");

        token.transfer(owner(), contractTokenBalance);

        emit StuckTokensCleared(tokenAddress, contractTokenBalance);
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen, "openTrading: Trading is already open");

        // Initialize the Uniswap router
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        // Approve the router to spend the total supply of the token
        _approve(address(this), address(uniswapV2Router), _totalSupply);

        // Create the Uniswap pair
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        // Add liquidity to the Uniswap pair
        uniswapV2Router.addLiquidityETH{
            value: address(this).balance
        }(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );

        // Approve Uniswap router to spend the pair's tokens
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);

        // Enable swapping on the contract
        swapEnabled = true;

        // Set trading as open
        tradingOpen = true;
        emit TradingOpened();
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"taxWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buyFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sellFee","type":"uint256"}],"name":"FeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"MaxWalletSizeUpdated","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":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"StuckETHCleared","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"tokenAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"StuckTokensCleared","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newThreshold","type":"uint256"}],"name":"TaxSwapThresholdUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"TradingOpened","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":"bool","name":"transferDelayEnabled","type":"bool"}],"name":"TransferDelayUpdated","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"clearStuckERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"disableTransferDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tax","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setMaxTransactionSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tax","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setTaxSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526014600655601960075560c86012600a62000020919062000610565b630bebc20062000031919062000660565b6200003d9190620006d7565b60085560c86012600a62000052919062000610565b630bebc20062000063919062000660565b6200006f9190620006d7565b6009556101906012600a62000085919062000610565b630bebc20062000096919062000660565b620000a29190620006d7565b600a555f600c60156101000a81548160ff0219169083151502179055505f600c60166101000a81548160ff0219169083151502179055506001600c60176101000a81548160ff02191690831515021790555034801562000100575f80fd5b50604051620046e2380380620046e2833981810160405281019062000126919062000773565b5f620001376200045060201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a62000223919062000610565b630bebc20062000234919062000660565b60035f620002476200045060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160045f620002996200045760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003c36200045060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a62000421919062000610565b630bebc20062000432919062000660565b604051620004419190620007b4565b60405180910390a350620007cf565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200050857808604811115620004e057620004df6200047e565b5b6001851615620004f05780820291505b80810290506200050085620004ab565b9450620004c0565b94509492505050565b5f82620005225760019050620005f4565b8162000531575f9050620005f4565b81600181146200054a576002811462000555576200058b565b6001915050620005f4565b60ff8411156200056a57620005696200047e565b5b8360020a9150848211156200058457620005836200047e565b5b50620005f4565b5060208310610133831016604e8410600b8410161715620005c55782820a905083811115620005bf57620005be6200047e565b5b620005f4565b620005d48484846001620004b7565b92509050818404811115620005ee57620005ed6200047e565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200061c82620005fb565b9150620006298362000604565b9250620006587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000511565b905092915050565b5f6200066c82620005fb565b91506200067983620005fb565b92508282026200068981620005fb565b91508282048414831517620006a357620006a26200047e565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620006e382620005fb565b9150620006f083620005fb565b925082620007035762000702620006aa565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200073d8262000712565b9050919050565b6200074f8162000731565b81146200075a575f80fd5b50565b5f815190506200076d8162000744565b92915050565b5f602082840312156200078b576200078a6200070e565b5b5f6200079a848285016200075d565b91505092915050565b620007ae81620005fb565b82525050565b5f602082019050620007c95f830184620007a3565b92915050565b613f0580620007dd5f395ff3fe608060405260043610610169575f3560e01c80638b4cee08116100d0578063bf474bed11610089578063dd62ed3e11610063578063dd62ed3e146104d6578063de2aa57d14610512578063e884f2601461053a578063ea1644d51461055057610170565b8063bf474bed1461046c578063c876d0b914610496578063c9567bf9146104c057610170565b80638b4cee08146103625780638da5cb5b1461038a5780638f9a55c0146103b457806395d89b41146103de578063a9059cbb14610408578063a9e59da31461044457610170565b8063245a263a11610122578063245a263a1461027e578063313ce56714610294578063564056f4146102be57806370a08231146102e6578063715018a6146103225780637d1db4a51461033857610170565b806306fdde0314610174578063095ea7b31461019e5780630cc835a3146101da5780630f299cf11461020257806318160ddd1461021857806323b872dd1461024257610170565b3661017057005b5f80fd5b34801561017f575f80fd5b50610188610578565b6040516101959190612b6d565b60405180910390f35b3480156101a9575f80fd5b506101c460048036038101906101bf9190612c1e565b6105b5565b6040516101d19190612c76565b60405180910390f35b3480156101e5575f80fd5b5061020060048036038101906101fb9190612c8f565b6105d2565b005b34801561020d575f80fd5b506102166106f1565b005b348015610223575f80fd5b5061022c610850565b6040516102399190612cc9565b60405180910390f35b34801561024d575f80fd5b5061026860048036038101906102639190612ce2565b610873565b6040516102759190612c76565b60405180910390f35b348015610289575f80fd5b50610292610947565b005b34801561029f575f80fd5b506102a8610b1a565b6040516102b59190612d4d565b60405180910390f35b3480156102c9575f80fd5b506102e460048036038101906102df9190612d66565b610b22565b005b3480156102f1575f80fd5b5061030c60048036038101906103079190612d66565b610d4d565b6040516103199190612cc9565b60405180910390f35b34801561032d575f80fd5b50610336610d93565b005b348015610343575f80fd5b5061034c610ee1565b6040516103599190612cc9565b60405180910390f35b34801561036d575f80fd5b5061038860048036038101906103839190612c8f565b610ee7565b005b348015610395575f80fd5b5061039e611006565b6040516103ab9190612da0565b60405180910390f35b3480156103bf575f80fd5b506103c861102d565b6040516103d59190612cc9565b60405180910390f35b3480156103e9575f80fd5b506103f2611033565b6040516103ff9190612b6d565b60405180910390f35b348015610413575f80fd5b5061042e60048036038101906104299190612c1e565b611070565b60405161043b9190612c76565b60405180910390f35b34801561044f575f80fd5b5061046a60048036038101906104659190612c8f565b61108d565b005b348015610477575f80fd5b506104806111dd565b60405161048d9190612cc9565b60405180910390f35b3480156104a1575f80fd5b506104aa6111e3565b6040516104b79190612c76565b60405180910390f35b3480156104cb575f80fd5b506104d46111f6565b005b3480156104e1575f80fd5b506104fc60048036038101906104f79190612db9565b611744565b6040516105099190612cc9565b60405180910390f35b34801561051d575f80fd5b5061053860048036038101906105339190612c8f565b6117c6565b005b348015610545575f80fd5b5061054e611916565b005b34801561055b575f80fd5b5061057660048036038101906105719190612c8f565b6119fd565b005b60606040518060400160405280600b81526020017f417263616e612047616d65000000000000000000000000000000000000000000815250905090565b5f6105c86105c1611b4d565b8484611b54565b6001905092915050565b6105da611b4d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610666576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065d90612e41565b60405180910390fd5b60238111156106aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a190612ecf565b60405180910390fd5b806006819055507f528d9479e9f9889a87a3c30c7f7ba537e5e59c4c85a37733b16e57c62df613026006546007546040516106e6929190612eed565b60405180910390a150565b6106f9611b4d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077c90612e41565b60405180910390fd5b5f4790505f81116107cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c290612f5e565b60405180910390fd5b6107d3611006565b73ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610815573d5f803e3d5ffd5b507f61834e9161bcb1e4b0b8bf1d8497dfce4358169ec3efa06ceababb5900694f1b816040516108459190612cc9565b60405180910390a150565b5f6012600a61085f91906130d8565b630bebc20061086e9190613122565b905090565b5f61087f848484611d17565b61093c8461088b611b4d565b61093785604051806060016040528060288152602001613ea86028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6108ee611b4d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461262e9092919063ffffffff16565b611b54565b600190509392505050565b61094f611b4d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d290612e41565b60405180910390fd5b6012600a6109e991906130d8565b630bebc2006109f89190613122565b6008819055506012600a610a0c91906130d8565b630bebc200610a1b9190613122565b6009819055505f600c60176101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610a6a91906130d8565b630bebc200610a799190613122565b604051610a869190612cc9565b60405180910390a17ffb1fe1002b7550e87616e67793dbb7d3f437a79c2688c372c66dc170dbcb0efd6012600a610abd91906130d8565b630bebc200610acc9190613122565b604051610ad99190612cc9565b60405180910390a17f8ac0cb4bc9520a34c87856d204a441aedd0ffcf148414be1fe31e1ad574740225f604051610b109190612c76565b60405180910390a1565b5f6012905090565b610b2a611b4d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bad90612e41565b60405180910390fd5b5f8190505f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610bf49190612da0565b602060405180830381865afa158015610c0f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c339190613177565b90505f8111610c77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6e906131ec565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb610c9b611006565b836040518363ffffffff1660e01b8152600401610cb992919061320a565b6020604051808303815f875af1158015610cd5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cf9919061325b565b508273ffffffffffffffffffffffffffffffffffffffff167f2c173e3ab5b50dfe2d876a6c7de0f777aef7fdaf4d1440ebed38708b3b78ebf482604051610d409190612cc9565b60405180910390a2505050565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610d9b611b4d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1e90612e41565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60085481565b610eef611b4d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7290612e41565b60405180910390fd5b6023811115610fbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb6906132f6565b60405180910390fd5b806007819055507f528d9479e9f9889a87a3c30c7f7ba537e5e59c4c85a37733b16e57c62df61302600654600754604051610ffb929190612eed565b60405180910390a150565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095481565b60606040518060400160405280600481526020017f4152434e00000000000000000000000000000000000000000000000000000000815250905090565b5f61108361107c611b4d565b8484611d17565b6001905092915050565b611095611b4d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611121576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111890612e41565b60405180910390fd5b612710811115611166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115d906133aa565b60405180910390fd5b612710816012600a61117891906130d8565b630bebc2006111879190613122565b6111919190613122565b61119b91906133f5565b6008819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008546040516111d29190612cc9565b60405180910390a150565b600a5481565b600c60179054906101000a900460ff1681565b6111fe611b4d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461128a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128190612e41565b60405180910390fd5b600c60149054906101000a900460ff16156112da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d190613495565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506113763060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a61136291906130d8565b630bebc2006113719190613122565b611b54565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113e0573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061140491906134c7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561148a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114ae91906134c7565b6040518363ffffffff1660e01b81526004016114cb9291906134f2565b6020604051808303815f875af11580156114e7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061150b91906134c7565b600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061159230610d4d565b5f8061159c611006565b426040518863ffffffff1660e01b81526004016115be9695949392919061355b565b60606040518083038185885af11580156115da573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906115ff91906135ba565b505050600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161169f92919061320a565b6020604051808303815f875af11580156116bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116df919061325b565b506001600c60166101000a81548160ff0219169083151502179055506001600c60146101000a81548160ff0219169083151502179055507fea4359d5c4b8f0945a64ab9c37fe830b3407d45e0e6e6f84275977a570457d6f60405160405180910390a1565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6117ce611b4d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461185a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185190612e41565b60405180910390fd5b61271081111561189f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611896906136a0565b60405180910390fd5b612710816012600a6118b191906130d8565b630bebc2006118c09190613122565b6118ca9190613122565b6118d491906133f5565b600a819055507f17189f2f6a412549aa02ac15113cc51505ce2d076c8cbda6fa1454fd7cfdadab600a5460405161190b9190612cc9565b60405180910390a150565b61191e611b4d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a190612e41565b60405180910390fd5b5f600c60176101000a81548160ff0219169083151502179055507f8ac0cb4bc9520a34c87856d204a441aedd0ffcf148414be1fe31e1ad574740225f6040516119f39190612c76565b60405180910390a1565b611a05611b4d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8890612e41565b60405180910390fd5b612710811115611ad6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acd9061372e565b60405180910390fd5b612710816012600a611ae891906130d8565b630bebc200611af79190613122565b611b019190613122565b611b0b91906133f5565b6009819055507ffb1fe1002b7550e87616e67793dbb7d3f437a79c2688c372c66dc170dbcb0efd600954604051611b429190612cc9565b60405180910390a150565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb9906137bc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c279061384a565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d0a9190612cc9565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7c906138d8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611df3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dea90613966565b60405180910390fd5b5f8111611e35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2c906139f4565b60405180910390fd5b5f611e3e611006565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611eac5750611e7c611006565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561237e57600c60179054906101000a900460ff16156120385760015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f705750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612037574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611ff4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611feb90613aa8565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156120e1575060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612134575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156122015761216160646121536006548561269090919063ffffffff16565b61270790919063ffffffff16565b90506008548211156121a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219f90613b36565b60405180910390fd5b600954826121b585610d4d565b6121bf9190613b54565b1115612200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f790613bf7565b60405180910390fd5b5b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561228957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156122b9576122b660646122a86007548561269090919063ffffffff16565b61270790919063ffffffff16565b90505b5f6122c330610d4d565b9050600c60159054906101000a900460ff1615801561232e5750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156123465750600c60169054906101000a900460ff165b80156123535750600a5481115b1561237c57600a5483106123715761236c600a54612750565b61237b565b61237a83612750565b5b5b505b5f81111561247d576123d68160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129dc90919063ffffffff16565b60035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124749190612cc9565b60405180910390a35b6124cd8260035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612a3990919063ffffffff16565b60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506125706125248284612a3990919063ffffffff16565b60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129dc90919063ffffffff16565b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6126138486612a3990919063ffffffff16565b6040516126209190612cc9565b60405180910390a350505050565b5f838311158290612675576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161266c9190612b6d565b60405180910390fd5b505f83856126839190613c15565b9050809150509392505050565b5f8083036126a0575f9050612701565b5f82846126ad9190613122565b90508284826126bc91906133f5565b146126fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f390613cb8565b60405180910390fd5b809150505b92915050565b5f61274883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a82565b905092915050565b6001600c60156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561278757612786613cd6565b5b6040519080825280602002602001820160405280156127b55781602001602082028036833780820191505090505b50905030815f815181106127cc576127cb613d03565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612870573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061289491906134c7565b816001815181106128a8576128a7613d03565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061290e3060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b54565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f84600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612991959493929190613de7565b5f604051808303815f87803b1580156129a8575f80fd5b505af11580156129ba573d5f803e3d5ffd5b50505050505f600c60156101000a81548160ff02191690831515021790555050565b5f8082846129ea9190613b54565b905083811015612a2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2690613e89565b60405180910390fd5b8091505092915050565b5f612a7a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061262e565b905092915050565b5f8083118290612ac8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612abf9190612b6d565b60405180910390fd5b505f8385612ad691906133f5565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612b1a578082015181840152602081019050612aff565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612b3f82612ae3565b612b498185612aed565b9350612b59818560208601612afd565b612b6281612b25565b840191505092915050565b5f6020820190508181035f830152612b858184612b35565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612bba82612b91565b9050919050565b612bca81612bb0565b8114612bd4575f80fd5b50565b5f81359050612be581612bc1565b92915050565b5f819050919050565b612bfd81612beb565b8114612c07575f80fd5b50565b5f81359050612c1881612bf4565b92915050565b5f8060408385031215612c3457612c33612b8d565b5b5f612c4185828601612bd7565b9250506020612c5285828601612c0a565b9150509250929050565b5f8115159050919050565b612c7081612c5c565b82525050565b5f602082019050612c895f830184612c67565b92915050565b5f60208284031215612ca457612ca3612b8d565b5b5f612cb184828501612c0a565b91505092915050565b612cc381612beb565b82525050565b5f602082019050612cdc5f830184612cba565b92915050565b5f805f60608486031215612cf957612cf8612b8d565b5b5f612d0686828701612bd7565b9350506020612d1786828701612bd7565b9250506040612d2886828701612c0a565b9150509250925092565b5f60ff82169050919050565b612d4781612d32565b82525050565b5f602082019050612d605f830184612d3e565b92915050565b5f60208284031215612d7b57612d7a612b8d565b5b5f612d8884828501612bd7565b91505092915050565b612d9a81612bb0565b82525050565b5f602082019050612db35f830184612d91565b92915050565b5f8060408385031215612dcf57612dce612b8d565b5b5f612ddc85828601612bd7565b9250506020612ded85828601612bd7565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612e2b602083612aed565b9150612e3682612df7565b602082019050919050565b5f6020820190508181035f830152612e5881612e1f565b9050919050565b7f7365744275796665653a205461782073686f756c64206265206c6573732074685f8201527f616e206f7220657175616c20746f203335000000000000000000000000000000602082015250565b5f612eb9603183612aed565b9150612ec482612e5f565b604082019050919050565b5f6020820190508181035f830152612ee681612ead565b9050919050565b5f604082019050612f005f830185612cba565b612f0d6020830184612cba565b9392505050565b7f4e6f20737475636b2045544820746f20636c65617200000000000000000000005f82015250565b5f612f48601583612aed565b9150612f5382612f14565b602082019050919050565b5f6020820190508181035f830152612f7581612f3c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612ffe57808604811115612fda57612fd9612f7c565b5b6001851615612fe95780820291505b8081029050612ff785612fa9565b9450612fbe565b94509492505050565b5f8261301657600190506130d1565b81613023575f90506130d1565b8160018114613039576002811461304357613072565b60019150506130d1565b60ff84111561305557613054612f7c565b5b8360020a91508482111561306c5761306b612f7c565b5b506130d1565b5060208310610133831016604e8410600b84101617156130a75782820a9050838111156130a2576130a1612f7c565b5b6130d1565b6130b48484846001612fb5565b925090508184048111156130cb576130ca612f7c565b5b81810290505b9392505050565b5f6130e282612beb565b91506130ed83612d32565b925061311a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613007565b905092915050565b5f61312c82612beb565b915061313783612beb565b925082820261314581612beb565b9150828204841483151761315c5761315b612f7c565b5b5092915050565b5f8151905061317181612bf4565b92915050565b5f6020828403121561318c5761318b612b8d565b5b5f61319984828501613163565b91505092915050565b7f4e6f20737475636b20746f6b656e7320746f20636c65617200000000000000005f82015250565b5f6131d6601883612aed565b91506131e1826131a2565b602082019050919050565b5f6020820190508181035f830152613203816131ca565b9050919050565b5f60408201905061321d5f830185612d91565b61322a6020830184612cba565b9392505050565b61323a81612c5c565b8114613244575f80fd5b50565b5f8151905061325581613231565b92915050565b5f602082840312156132705761326f612b8d565b5b5f61327d84828501613247565b91505092915050565b7f73657453656c6c4665653a205461782073686f756c64206265206c65737320745f8201527f68616e206f7220657175616c20746f2033350000000000000000000000000000602082015250565b5f6132e0603283612aed565b91506132eb82613286565b604082019050919050565b5f6020820190508181035f83015261330d816132d4565b9050919050565b7f7365744d61785472616e73666572416d6f756e743a2050657263656e746167655f8201527f2073686f756c64206265206c657373207468616e206f7220657175616c20746f60208201527f2031303030300000000000000000000000000000000000000000000000000000604082015250565b5f613394604683612aed565b915061339f82613314565b606082019050919050565b5f6020820190508181035f8301526133c181613388565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6133ff82612beb565b915061340a83612beb565b92508261341a576134196133c8565b5b828204905092915050565b7f6f70656e54726164696e673a2054726164696e6720697320616c7265616479205f8201527f6f70656e00000000000000000000000000000000000000000000000000000000602082015250565b5f61347f602483612aed565b915061348a82613425565b604082019050919050565b5f6020820190508181035f8301526134ac81613473565b9050919050565b5f815190506134c181612bc1565b92915050565b5f602082840312156134dc576134db612b8d565b5b5f6134e9848285016134b3565b91505092915050565b5f6040820190506135055f830185612d91565b6135126020830184612d91565b9392505050565b5f819050919050565b5f819050919050565b5f61354561354061353b84613519565b613522565b612beb565b9050919050565b6135558161352b565b82525050565b5f60c08201905061356e5f830189612d91565b61357b6020830188612cba565b613588604083018761354c565b613595606083018661354c565b6135a26080830185612d91565b6135af60a0830184612cba565b979650505050505050565b5f805f606084860312156135d1576135d0612b8d565b5b5f6135de86828701613163565b93505060206135ef86828701613163565b925050604061360086828701613163565b9150509250925092565b7f736574546178537761705468726573686f6c643a2050657263656e74616765205f8201527f73686f756c64206265206c657373207468616e206f7220657175616c20746f2060208201527f3130303030000000000000000000000000000000000000000000000000000000604082015250565b5f61368a604583612aed565b91506136958261360a565b606082019050919050565b5f6020820190508181035f8301526136b78161367e565b9050919050565b7f7365744d617842616c616e63653a2050657263656e746167652073686f756c645f8201527f206265206c657373207468616e206f7220657175616c20746f20313030303000602082015250565b5f613718603f83612aed565b9150613723826136be565b604082019050919050565b5f6020820190508181035f8301526137458161370c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6137a6602483612aed565b91506137b18261374c565b604082019050919050565b5f6020820190508181035f8301526137d38161379a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613834602283612aed565b915061383f826137da565b604082019050919050565b5f6020820190508181035f83015261386181613828565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6138c2602583612aed565b91506138cd82613868565b604082019050919050565b5f6020820190508181035f8301526138ef816138b6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613950602383612aed565b915061395b826138f6565b604082019050919050565b5f6020820190508181035f83015261397d81613944565b9050919050565b7f5f7472616e736665723a205472616e7366657220616d6f756e74206d757374205f8201527f62652067726561746572207468616e207a65726f000000000000000000000000602082015250565b5f6139de603483612aed565b91506139e982613984565b604082019050919050565b5f6020820190508181035f830152613a0b816139d2565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f613a92604983612aed565b9150613a9d82613a12565b606082019050919050565b5f6020820190508181035f830152613abf81613a86565b9050919050565b7f5f7472616e736665723a204578636565647320746865205f6d61785478416d6f5f8201527f756e742e00000000000000000000000000000000000000000000000000000000602082015250565b5f613b20602483612aed565b9150613b2b82613ac6565b604082019050919050565b5f6020820190508181035f830152613b4d81613b14565b9050919050565b5f613b5e82612beb565b9150613b6983612beb565b9250828201905080821115613b8157613b80612f7c565b5b92915050565b7f5f7472616e736665723a204578636565647320746865206d617857616c6c65745f8201527f53697a652e000000000000000000000000000000000000000000000000000000602082015250565b5f613be1602583612aed565b9150613bec82613b87565b604082019050919050565b5f6020820190508181035f830152613c0e81613bd5565b9050919050565b5f613c1f82612beb565b9150613c2a83612beb565b9250828203905081811115613c4257613c41612f7c565b5b92915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613ca2602183612aed565b9150613cad82613c48565b604082019050919050565b5f6020820190508181035f830152613ccf81613c96565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613d6281612bb0565b82525050565b5f613d738383613d59565b60208301905092915050565b5f602082019050919050565b5f613d9582613d30565b613d9f8185613d3a565b9350613daa83613d4a565b805f5b83811015613dda578151613dc18882613d68565b9750613dcc83613d7f565b925050600181019050613dad565b5085935050505092915050565b5f60a082019050613dfa5f830188612cba565b613e07602083018761354c565b8181036040830152613e198186613d8b565b9050613e286060830185612d91565b613e356080830184612cba565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613e73601b83612aed565b9150613e7e82613e3f565b602082019050919050565b5f6020820190508181035f830152613ea081613e67565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a720df14a377d14240658c130c6ecf04421bb8e7c5d616e87e05b6373294d88364736f6c634300081500330000000000000000000000006c73320e30be8b11a282e4b581673ec47e0c1fc7

Deployed Bytecode

0x608060405260043610610169575f3560e01c80638b4cee08116100d0578063bf474bed11610089578063dd62ed3e11610063578063dd62ed3e146104d6578063de2aa57d14610512578063e884f2601461053a578063ea1644d51461055057610170565b8063bf474bed1461046c578063c876d0b914610496578063c9567bf9146104c057610170565b80638b4cee08146103625780638da5cb5b1461038a5780638f9a55c0146103b457806395d89b41146103de578063a9059cbb14610408578063a9e59da31461044457610170565b8063245a263a11610122578063245a263a1461027e578063313ce56714610294578063564056f4146102be57806370a08231146102e6578063715018a6146103225780637d1db4a51461033857610170565b806306fdde0314610174578063095ea7b31461019e5780630cc835a3146101da5780630f299cf11461020257806318160ddd1461021857806323b872dd1461024257610170565b3661017057005b5f80fd5b34801561017f575f80fd5b50610188610578565b6040516101959190612b6d565b60405180910390f35b3480156101a9575f80fd5b506101c460048036038101906101bf9190612c1e565b6105b5565b6040516101d19190612c76565b60405180910390f35b3480156101e5575f80fd5b5061020060048036038101906101fb9190612c8f565b6105d2565b005b34801561020d575f80fd5b506102166106f1565b005b348015610223575f80fd5b5061022c610850565b6040516102399190612cc9565b60405180910390f35b34801561024d575f80fd5b5061026860048036038101906102639190612ce2565b610873565b6040516102759190612c76565b60405180910390f35b348015610289575f80fd5b50610292610947565b005b34801561029f575f80fd5b506102a8610b1a565b6040516102b59190612d4d565b60405180910390f35b3480156102c9575f80fd5b506102e460048036038101906102df9190612d66565b610b22565b005b3480156102f1575f80fd5b5061030c60048036038101906103079190612d66565b610d4d565b6040516103199190612cc9565b60405180910390f35b34801561032d575f80fd5b50610336610d93565b005b348015610343575f80fd5b5061034c610ee1565b6040516103599190612cc9565b60405180910390f35b34801561036d575f80fd5b5061038860048036038101906103839190612c8f565b610ee7565b005b348015610395575f80fd5b5061039e611006565b6040516103ab9190612da0565b60405180910390f35b3480156103bf575f80fd5b506103c861102d565b6040516103d59190612cc9565b60405180910390f35b3480156103e9575f80fd5b506103f2611033565b6040516103ff9190612b6d565b60405180910390f35b348015610413575f80fd5b5061042e60048036038101906104299190612c1e565b611070565b60405161043b9190612c76565b60405180910390f35b34801561044f575f80fd5b5061046a60048036038101906104659190612c8f565b61108d565b005b348015610477575f80fd5b506104806111dd565b60405161048d9190612cc9565b60405180910390f35b3480156104a1575f80fd5b506104aa6111e3565b6040516104b79190612c76565b60405180910390f35b3480156104cb575f80fd5b506104d46111f6565b005b3480156104e1575f80fd5b506104fc60048036038101906104f79190612db9565b611744565b6040516105099190612cc9565b60405180910390f35b34801561051d575f80fd5b5061053860048036038101906105339190612c8f565b6117c6565b005b348015610545575f80fd5b5061054e611916565b005b34801561055b575f80fd5b5061057660048036038101906105719190612c8f565b6119fd565b005b60606040518060400160405280600b81526020017f417263616e612047616d65000000000000000000000000000000000000000000815250905090565b5f6105c86105c1611b4d565b8484611b54565b6001905092915050565b6105da611b4d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610666576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065d90612e41565b60405180910390fd5b60238111156106aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a190612ecf565b60405180910390fd5b806006819055507f528d9479e9f9889a87a3c30c7f7ba537e5e59c4c85a37733b16e57c62df613026006546007546040516106e6929190612eed565b60405180910390a150565b6106f9611b4d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077c90612e41565b60405180910390fd5b5f4790505f81116107cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c290612f5e565b60405180910390fd5b6107d3611006565b73ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610815573d5f803e3d5ffd5b507f61834e9161bcb1e4b0b8bf1d8497dfce4358169ec3efa06ceababb5900694f1b816040516108459190612cc9565b60405180910390a150565b5f6012600a61085f91906130d8565b630bebc20061086e9190613122565b905090565b5f61087f848484611d17565b61093c8461088b611b4d565b61093785604051806060016040528060288152602001613ea86028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6108ee611b4d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461262e9092919063ffffffff16565b611b54565b600190509392505050565b61094f611b4d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d290612e41565b60405180910390fd5b6012600a6109e991906130d8565b630bebc2006109f89190613122565b6008819055506012600a610a0c91906130d8565b630bebc200610a1b9190613122565b6009819055505f600c60176101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610a6a91906130d8565b630bebc200610a799190613122565b604051610a869190612cc9565b60405180910390a17ffb1fe1002b7550e87616e67793dbb7d3f437a79c2688c372c66dc170dbcb0efd6012600a610abd91906130d8565b630bebc200610acc9190613122565b604051610ad99190612cc9565b60405180910390a17f8ac0cb4bc9520a34c87856d204a441aedd0ffcf148414be1fe31e1ad574740225f604051610b109190612c76565b60405180910390a1565b5f6012905090565b610b2a611b4d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bad90612e41565b60405180910390fd5b5f8190505f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610bf49190612da0565b602060405180830381865afa158015610c0f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c339190613177565b90505f8111610c77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6e906131ec565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb610c9b611006565b836040518363ffffffff1660e01b8152600401610cb992919061320a565b6020604051808303815f875af1158015610cd5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cf9919061325b565b508273ffffffffffffffffffffffffffffffffffffffff167f2c173e3ab5b50dfe2d876a6c7de0f777aef7fdaf4d1440ebed38708b3b78ebf482604051610d409190612cc9565b60405180910390a2505050565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610d9b611b4d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1e90612e41565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60085481565b610eef611b4d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7290612e41565b60405180910390fd5b6023811115610fbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb6906132f6565b60405180910390fd5b806007819055507f528d9479e9f9889a87a3c30c7f7ba537e5e59c4c85a37733b16e57c62df61302600654600754604051610ffb929190612eed565b60405180910390a150565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095481565b60606040518060400160405280600481526020017f4152434e00000000000000000000000000000000000000000000000000000000815250905090565b5f61108361107c611b4d565b8484611d17565b6001905092915050565b611095611b4d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611121576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111890612e41565b60405180910390fd5b612710811115611166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115d906133aa565b60405180910390fd5b612710816012600a61117891906130d8565b630bebc2006111879190613122565b6111919190613122565b61119b91906133f5565b6008819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008546040516111d29190612cc9565b60405180910390a150565b600a5481565b600c60179054906101000a900460ff1681565b6111fe611b4d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461128a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128190612e41565b60405180910390fd5b600c60149054906101000a900460ff16156112da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d190613495565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506113763060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a61136291906130d8565b630bebc2006113719190613122565b611b54565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113e0573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061140491906134c7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561148a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114ae91906134c7565b6040518363ffffffff1660e01b81526004016114cb9291906134f2565b6020604051808303815f875af11580156114e7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061150b91906134c7565b600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061159230610d4d565b5f8061159c611006565b426040518863ffffffff1660e01b81526004016115be9695949392919061355b565b60606040518083038185885af11580156115da573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906115ff91906135ba565b505050600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161169f92919061320a565b6020604051808303815f875af11580156116bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116df919061325b565b506001600c60166101000a81548160ff0219169083151502179055506001600c60146101000a81548160ff0219169083151502179055507fea4359d5c4b8f0945a64ab9c37fe830b3407d45e0e6e6f84275977a570457d6f60405160405180910390a1565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6117ce611b4d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461185a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185190612e41565b60405180910390fd5b61271081111561189f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611896906136a0565b60405180910390fd5b612710816012600a6118b191906130d8565b630bebc2006118c09190613122565b6118ca9190613122565b6118d491906133f5565b600a819055507f17189f2f6a412549aa02ac15113cc51505ce2d076c8cbda6fa1454fd7cfdadab600a5460405161190b9190612cc9565b60405180910390a150565b61191e611b4d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a190612e41565b60405180910390fd5b5f600c60176101000a81548160ff0219169083151502179055507f8ac0cb4bc9520a34c87856d204a441aedd0ffcf148414be1fe31e1ad574740225f6040516119f39190612c76565b60405180910390a1565b611a05611b4d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8890612e41565b60405180910390fd5b612710811115611ad6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acd9061372e565b60405180910390fd5b612710816012600a611ae891906130d8565b630bebc200611af79190613122565b611b019190613122565b611b0b91906133f5565b6009819055507ffb1fe1002b7550e87616e67793dbb7d3f437a79c2688c372c66dc170dbcb0efd600954604051611b429190612cc9565b60405180910390a150565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb9906137bc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c279061384a565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d0a9190612cc9565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7c906138d8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611df3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dea90613966565b60405180910390fd5b5f8111611e35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2c906139f4565b60405180910390fd5b5f611e3e611006565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611eac5750611e7c611006565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561237e57600c60179054906101000a900460ff16156120385760015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f705750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612037574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611ff4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611feb90613aa8565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156120e1575060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612134575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156122015761216160646121536006548561269090919063ffffffff16565b61270790919063ffffffff16565b90506008548211156121a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219f90613b36565b60405180910390fd5b600954826121b585610d4d565b6121bf9190613b54565b1115612200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f790613bf7565b60405180910390fd5b5b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561228957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156122b9576122b660646122a86007548561269090919063ffffffff16565b61270790919063ffffffff16565b90505b5f6122c330610d4d565b9050600c60159054906101000a900460ff1615801561232e5750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156123465750600c60169054906101000a900460ff165b80156123535750600a5481115b1561237c57600a5483106123715761236c600a54612750565b61237b565b61237a83612750565b5b5b505b5f81111561247d576123d68160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129dc90919063ffffffff16565b60035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124749190612cc9565b60405180910390a35b6124cd8260035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612a3990919063ffffffff16565b60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506125706125248284612a3990919063ffffffff16565b60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129dc90919063ffffffff16565b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6126138486612a3990919063ffffffff16565b6040516126209190612cc9565b60405180910390a350505050565b5f838311158290612675576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161266c9190612b6d565b60405180910390fd5b505f83856126839190613c15565b9050809150509392505050565b5f8083036126a0575f9050612701565b5f82846126ad9190613122565b90508284826126bc91906133f5565b146126fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f390613cb8565b60405180910390fd5b809150505b92915050565b5f61274883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a82565b905092915050565b6001600c60156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561278757612786613cd6565b5b6040519080825280602002602001820160405280156127b55781602001602082028036833780820191505090505b50905030815f815181106127cc576127cb613d03565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612870573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061289491906134c7565b816001815181106128a8576128a7613d03565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061290e3060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b54565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f84600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612991959493929190613de7565b5f604051808303815f87803b1580156129a8575f80fd5b505af11580156129ba573d5f803e3d5ffd5b50505050505f600c60156101000a81548160ff02191690831515021790555050565b5f8082846129ea9190613b54565b905083811015612a2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2690613e89565b60405180910390fd5b8091505092915050565b5f612a7a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061262e565b905092915050565b5f8083118290612ac8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612abf9190612b6d565b60405180910390fd5b505f8385612ad691906133f5565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612b1a578082015181840152602081019050612aff565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612b3f82612ae3565b612b498185612aed565b9350612b59818560208601612afd565b612b6281612b25565b840191505092915050565b5f6020820190508181035f830152612b858184612b35565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612bba82612b91565b9050919050565b612bca81612bb0565b8114612bd4575f80fd5b50565b5f81359050612be581612bc1565b92915050565b5f819050919050565b612bfd81612beb565b8114612c07575f80fd5b50565b5f81359050612c1881612bf4565b92915050565b5f8060408385031215612c3457612c33612b8d565b5b5f612c4185828601612bd7565b9250506020612c5285828601612c0a565b9150509250929050565b5f8115159050919050565b612c7081612c5c565b82525050565b5f602082019050612c895f830184612c67565b92915050565b5f60208284031215612ca457612ca3612b8d565b5b5f612cb184828501612c0a565b91505092915050565b612cc381612beb565b82525050565b5f602082019050612cdc5f830184612cba565b92915050565b5f805f60608486031215612cf957612cf8612b8d565b5b5f612d0686828701612bd7565b9350506020612d1786828701612bd7565b9250506040612d2886828701612c0a565b9150509250925092565b5f60ff82169050919050565b612d4781612d32565b82525050565b5f602082019050612d605f830184612d3e565b92915050565b5f60208284031215612d7b57612d7a612b8d565b5b5f612d8884828501612bd7565b91505092915050565b612d9a81612bb0565b82525050565b5f602082019050612db35f830184612d91565b92915050565b5f8060408385031215612dcf57612dce612b8d565b5b5f612ddc85828601612bd7565b9250506020612ded85828601612bd7565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612e2b602083612aed565b9150612e3682612df7565b602082019050919050565b5f6020820190508181035f830152612e5881612e1f565b9050919050565b7f7365744275796665653a205461782073686f756c64206265206c6573732074685f8201527f616e206f7220657175616c20746f203335000000000000000000000000000000602082015250565b5f612eb9603183612aed565b9150612ec482612e5f565b604082019050919050565b5f6020820190508181035f830152612ee681612ead565b9050919050565b5f604082019050612f005f830185612cba565b612f0d6020830184612cba565b9392505050565b7f4e6f20737475636b2045544820746f20636c65617200000000000000000000005f82015250565b5f612f48601583612aed565b9150612f5382612f14565b602082019050919050565b5f6020820190508181035f830152612f7581612f3c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612ffe57808604811115612fda57612fd9612f7c565b5b6001851615612fe95780820291505b8081029050612ff785612fa9565b9450612fbe565b94509492505050565b5f8261301657600190506130d1565b81613023575f90506130d1565b8160018114613039576002811461304357613072565b60019150506130d1565b60ff84111561305557613054612f7c565b5b8360020a91508482111561306c5761306b612f7c565b5b506130d1565b5060208310610133831016604e8410600b84101617156130a75782820a9050838111156130a2576130a1612f7c565b5b6130d1565b6130b48484846001612fb5565b925090508184048111156130cb576130ca612f7c565b5b81810290505b9392505050565b5f6130e282612beb565b91506130ed83612d32565b925061311a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613007565b905092915050565b5f61312c82612beb565b915061313783612beb565b925082820261314581612beb565b9150828204841483151761315c5761315b612f7c565b5b5092915050565b5f8151905061317181612bf4565b92915050565b5f6020828403121561318c5761318b612b8d565b5b5f61319984828501613163565b91505092915050565b7f4e6f20737475636b20746f6b656e7320746f20636c65617200000000000000005f82015250565b5f6131d6601883612aed565b91506131e1826131a2565b602082019050919050565b5f6020820190508181035f830152613203816131ca565b9050919050565b5f60408201905061321d5f830185612d91565b61322a6020830184612cba565b9392505050565b61323a81612c5c565b8114613244575f80fd5b50565b5f8151905061325581613231565b92915050565b5f602082840312156132705761326f612b8d565b5b5f61327d84828501613247565b91505092915050565b7f73657453656c6c4665653a205461782073686f756c64206265206c65737320745f8201527f68616e206f7220657175616c20746f2033350000000000000000000000000000602082015250565b5f6132e0603283612aed565b91506132eb82613286565b604082019050919050565b5f6020820190508181035f83015261330d816132d4565b9050919050565b7f7365744d61785472616e73666572416d6f756e743a2050657263656e746167655f8201527f2073686f756c64206265206c657373207468616e206f7220657175616c20746f60208201527f2031303030300000000000000000000000000000000000000000000000000000604082015250565b5f613394604683612aed565b915061339f82613314565b606082019050919050565b5f6020820190508181035f8301526133c181613388565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6133ff82612beb565b915061340a83612beb565b92508261341a576134196133c8565b5b828204905092915050565b7f6f70656e54726164696e673a2054726164696e6720697320616c7265616479205f8201527f6f70656e00000000000000000000000000000000000000000000000000000000602082015250565b5f61347f602483612aed565b915061348a82613425565b604082019050919050565b5f6020820190508181035f8301526134ac81613473565b9050919050565b5f815190506134c181612bc1565b92915050565b5f602082840312156134dc576134db612b8d565b5b5f6134e9848285016134b3565b91505092915050565b5f6040820190506135055f830185612d91565b6135126020830184612d91565b9392505050565b5f819050919050565b5f819050919050565b5f61354561354061353b84613519565b613522565b612beb565b9050919050565b6135558161352b565b82525050565b5f60c08201905061356e5f830189612d91565b61357b6020830188612cba565b613588604083018761354c565b613595606083018661354c565b6135a26080830185612d91565b6135af60a0830184612cba565b979650505050505050565b5f805f606084860312156135d1576135d0612b8d565b5b5f6135de86828701613163565b93505060206135ef86828701613163565b925050604061360086828701613163565b9150509250925092565b7f736574546178537761705468726573686f6c643a2050657263656e74616765205f8201527f73686f756c64206265206c657373207468616e206f7220657175616c20746f2060208201527f3130303030000000000000000000000000000000000000000000000000000000604082015250565b5f61368a604583612aed565b91506136958261360a565b606082019050919050565b5f6020820190508181035f8301526136b78161367e565b9050919050565b7f7365744d617842616c616e63653a2050657263656e746167652073686f756c645f8201527f206265206c657373207468616e206f7220657175616c20746f20313030303000602082015250565b5f613718603f83612aed565b9150613723826136be565b604082019050919050565b5f6020820190508181035f8301526137458161370c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6137a6602483612aed565b91506137b18261374c565b604082019050919050565b5f6020820190508181035f8301526137d38161379a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613834602283612aed565b915061383f826137da565b604082019050919050565b5f6020820190508181035f83015261386181613828565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6138c2602583612aed565b91506138cd82613868565b604082019050919050565b5f6020820190508181035f8301526138ef816138b6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613950602383612aed565b915061395b826138f6565b604082019050919050565b5f6020820190508181035f83015261397d81613944565b9050919050565b7f5f7472616e736665723a205472616e7366657220616d6f756e74206d757374205f8201527f62652067726561746572207468616e207a65726f000000000000000000000000602082015250565b5f6139de603483612aed565b91506139e982613984565b604082019050919050565b5f6020820190508181035f830152613a0b816139d2565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f613a92604983612aed565b9150613a9d82613a12565b606082019050919050565b5f6020820190508181035f830152613abf81613a86565b9050919050565b7f5f7472616e736665723a204578636565647320746865205f6d61785478416d6f5f8201527f756e742e00000000000000000000000000000000000000000000000000000000602082015250565b5f613b20602483612aed565b9150613b2b82613ac6565b604082019050919050565b5f6020820190508181035f830152613b4d81613b14565b9050919050565b5f613b5e82612beb565b9150613b6983612beb565b9250828201905080821115613b8157613b80612f7c565b5b92915050565b7f5f7472616e736665723a204578636565647320746865206d617857616c6c65745f8201527f53697a652e000000000000000000000000000000000000000000000000000000602082015250565b5f613be1602583612aed565b9150613bec82613b87565b604082019050919050565b5f6020820190508181035f830152613c0e81613bd5565b9050919050565b5f613c1f82612beb565b9150613c2a83612beb565b9250828203905081811115613c4257613c41612f7c565b5b92915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613ca2602183612aed565b9150613cad82613c48565b604082019050919050565b5f6020820190508181035f830152613ccf81613c96565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613d6281612bb0565b82525050565b5f613d738383613d59565b60208301905092915050565b5f602082019050919050565b5f613d9582613d30565b613d9f8185613d3a565b9350613daa83613d4a565b805f5b83811015613dda578151613dc18882613d68565b9750613dcc83613d7f565b925050600181019050613dad565b5085935050505092915050565b5f60a082019050613dfa5f830188612cba565b613e07602083018761354c565b8181036040830152613e198186613d8b565b9050613e286060830185612d91565b613e356080830184612cba565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613e73601b83612aed565b9150613e7e82613e3f565b602082019050919050565b5f6020820190508181035f830152613ea081613e67565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a720df14a377d14240658c130c6ecf04421bb8e7c5d616e87e05b6373294d88364736f6c63430008150033

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

0000000000000000000000006c73320e30be8b11a282e4b581673ec47e0c1fc7

-----Decoded View---------------
Arg [0] : taxWallet (address): 0x6c73320e30be8b11A282E4B581673eC47e0C1FC7

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000006c73320e30be8b11a282e4b581673ec47e0c1fc7


Deployed Bytecode Sourcemap

3895:10444:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5879:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6717:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10600:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12400:280;;;;;;;;;;;;;:::i;:::-;;6156:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6886:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11936:307;;;;;;;;;;;;;:::i;:::-;;6065:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12688:394;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6264:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2689:148;;;;;;;;;;;;;:::i;:::-;;4594:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10818:213;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2475:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4649:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5970:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6391:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11039:289;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4706:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4951:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13090:1209;;;;;;;;;;;;;:::i;:::-;;6566:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11627:301;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12251:141;;;;;;;;;;;;;:::i;:::-;;11336:283;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5879:83;5916:13;5949:5;;;;;;;;;;;;;;;;;5942:12;;5879:83;:::o;6717:161::-;6792:4;6809:39;6818:12;:10;:12::i;:::-;6832:7;6841:6;6809:8;:39::i;:::-;6866:4;6859:11;;6717:161;;;;:::o;10600:210::-;2612:12;:10;:12::i;:::-;2602:22;;:6;;;;;;;;;;:22;;;2594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10677:2:::1;10670:3;:9;;10662:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;10754:3;10744:7;:13;;;;10773:29;10784:7;;10793:8;;10773:29;;;;;;;:::i;:::-;;;;;;;;10600:210:::0;:::o;12400:280::-;2612:12;:10;:12::i;:::-;2602:22;;:6;;;;;;;;;;:22;;;2594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12456:23:::1;12482:21;12456:47;;12540:1;12522:15;:19;12514:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;12588:7;:5;:7::i;:::-;12580:25;;:42;12606:15;12580:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12640:32;12656:15;12640:32;;;;;;:::i;:::-;;;;;;;;12445:235;12400:280::o:0;6156:100::-;6209:7;4176:2;4237;:13;;;;:::i;:::-;4225:9;:25;;;;:::i;:::-;6229:19;;6156:100;:::o;6886:313::-;6984:4;7001:36;7011:6;7019:9;7030:6;7001:9;:36::i;:::-;7048:121;7057:6;7065:12;:10;:12::i;:::-;7079:89;7117:6;7079:89;;;;;;;;;;;;;;;;;:11;:19;7091:6;7079:19;;;;;;;;;;;;;;;:33;7099:12;:10;:12::i;:::-;7079:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7048:8;:121::i;:::-;7187:4;7180:11;;6886:313;;;;;:::o;11936:307::-;2612:12;:10;:12::i;:::-;2602:22;;:6;;;;;;;;;;:22;;;2594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4176:2:::1;4237;:13;;;;:::i;:::-;4225:9;:25;;;;:::i;:::-;11988:12;:27;;;;4176:2;4237;:13;;;;:::i;:::-;4225:9;:25;;;;:::i;:::-;12026:14;:29;;;;12089:5;12066:20;;:28;;;;;;;;;;;;;;;;;;12110:32;4176:2;4237;:13;;;;:::i;:::-;4225:9;:25;;;;:::i;:::-;12110:32;;;;;;:::i;:::-;;;;;;;;12158:34;4176:2;4237;:13;;;;:::i;:::-;4225:9;:25;;;;:::i;:::-;12158:34;;;;;;:::i;:::-;;;;;;;;12208:27;12229:5;12208:27;;;;;;:::i;:::-;;;;;;;;11936:307::o:0;6065:83::-;6106:5;4176:2;6124:16;;6065:83;:::o;12688:394::-;2612:12;:10;:12::i;:::-;2602:22;;:6;;;;;;;;;;:22;;;2594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12765:12:::1;12787;12765:35;;12811:28;12842:5;:15;;;12866:4;12842:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12811:61;;12914:1;12891:20;:24;12883:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;12957:5;:14;;;12972:7;:5;:7::i;:::-;12981:20;12957:45;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13039:12;13020:54;;;13053:20;13020:54;;;;;;:::i;:::-;;;;;;;;12754:328;;12688:394:::0;:::o;6264:119::-;6330:7;6357:9;:18;6367:7;6357:18;;;;;;;;;;;;;;;;6350:25;;6264:119;;;:::o;2689:148::-;2612:12;:10;:12::i;:::-;2602:22;;:6;;;;;;;;;;:22;;;2594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2796:1:::1;2759:40;;2780:6;::::0;::::1;;;;;;;;2759:40;;;;;;;;;;;;2827:1;2810:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2689:148::o:0;4594:48::-;;;;:::o;10818:213::-;2612:12;:10;:12::i;:::-;2602:22;;:6;;;;;;;;;;:22;;;2594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10896:2:::1;10889:3;:9;;10881:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10975:3;10964:8;:14;;;;10994:29;11005:7;;11014:8;;10994:29;;;;;;;:::i;:::-;;;;;;;;10818:213:::0;:::o;2475:79::-;2513:7;2540:6;;;;;;;;;;;2533:13;;2475:79;:::o;4649:50::-;;;;:::o;5970:87::-;6009:13;6042:7;;;;;;;;;;;;;;;;;6035:14;;5970:87;:::o;6391:167::-;6469:4;6486:42;6496:12;:10;:12::i;:::-;6510:9;6521:6;6486:9;:42::i;:::-;6546:4;6539:11;;6391:167;;;;:::o;11039:289::-;2612:12;:10;:12::i;:::-;2602:22;;:6;;;;;;;;;;:22;;;2594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11136:5:::1;11125:7;:16;;11117:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;11267:5;11257:7;4176:2;4237;:13;;;;:::i;:::-;4225:9;:25;;;;:::i;:::-;11242:22;;;;:::i;:::-;:30;;;;:::i;:::-;11227:12;:45;;;;11288:32;11307:12;;11288:32;;;;;;:::i;:::-;;;;;;;;11039:289:::0;:::o;4706:53::-;;;;:::o;4951:39::-;;;;;;;;;;;;;:::o;13090:1209::-;2612:12;:10;:12::i;:::-;2602:22;;:6;;;;;;;;;;:22;;;2594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13154:11:::1;;;;;;;;;;;13153:12;13145:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;13312:42;13261:15;;:104;;;;;;;;;;;;;;;;;;13448:63;13465:4;13480:15;;;;;;;;;;;4176:2;4237;:13;;;;:::i;:::-;4225:9;:25;;;;:::i;:::-;13448:8;:63::i;:::-;13594:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13576:55;;;13640:4;13647:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13576:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13560:13;;:110;;;;;;;;;;;;;;;;;;13729:15;;;;;;;;;;;:31;;;13782:21;13837:4;13857:24;13875:4;13857:9;:24::i;:::-;13896:1;13912::::0;13928:7:::1;:5;:7::i;:::-;13950:15;13729:247;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14058:13;;;;;;;;;;;14051:29;;;14089:15;;;;;;;;;;;14107:14;14051:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14193:4;14179:11;;:18;;;;;;;;;;;;;;;;;;14256:4;14242:11;;:18;;;;;;;;;;;;;;;;;;14276:15;;;;;;;;;;13090:1209::o:0;6566:143::-;6647:7;6674:11;:18;6686:5;6674:18;;;;;;;;;;;;;;;:27;6693:7;6674:27;;;;;;;;;;;;;;;;6667:34;;6566:143;;;;:::o;11627:301::-;2612:12;:10;:12::i;:::-;2602:22;;:6;;;;;;;;;;:22;;;2594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11722:5:::1;11711:7;:16;;11703:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;11857:5;11847:7;4176:2;4237;:13;;;;:::i;:::-;4225:9;:25;;;;:::i;:::-;11832:22;;;;:::i;:::-;:30;;;;:::i;:::-;11812:17;:50;;;;11878:42;11902:17;;11878:42;;;;;;:::i;:::-;;;;;;;;11627:301:::0;:::o;12251:141::-;2612:12;:10;:12::i;:::-;2602:22;;:6;;;;;;;;;;:22;;;2594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12336:5:::1;12313:20;;:28;;;;;;;;;;;;;;;;;;12357:27;12378:5;12357:27;;;;;;:::i;:::-;;;;;;;;12251:141::o:0;11336:283::-;2612:12;:10;:12::i;:::-;2602:22;;:6;;;;;;;;;;:22;;;2594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11428:5:::1;11417:7;:16;;11409:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;11554:5;11544:7;4176:2;4237;:13;;;;:::i;:::-;4225:9;:25;;;;:::i;:::-;11529:22;;;;:::i;:::-;:30;;;;:::i;:::-;11512:14;:47;;;;11575:36;11596:14;;11575:36;;;;;;:::i;:::-;;;;;;;;11336:283:::0;:::o;224:98::-;277:7;304:10;297:17;;224:98;:::o;7207:335::-;7317:1;7300:19;;:5;:19;;;7292:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7398:1;7379:21;;:7;:21;;;7371:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7480:6;7450:11;:18;7462:5;7450:18;;;;;;;;;;;;;;;:27;7469:7;7450:27;;;;;;;;;;;;;;;:36;;;;7518:7;7502:32;;7511:5;7502:32;;;7527:6;7502:32;;;;;;:::i;:::-;;;;;;;;7207:335;;;:::o;7550:2545::-;7654:1;7638:18;;:4;:18;;;7630:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7731:1;7717:16;;:2;:16;;;7709:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7801:1;7792:6;:10;7784:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;7872:17;8007:7;:5;:7::i;:::-;7999:15;;:4;:15;;;;:32;;;;;8024:7;:5;:7::i;:::-;8018:13;;:2;:13;;;;7999:32;7995:1608;;;8052:20;;;;;;;;;;;8048:388;;;8111:15;;;;;;;;;;;8097:30;;:2;:30;;;;:62;;;;;8145:13;;;;;;;;;;;8131:28;;:2;:28;;;;8097:62;8093:328;;;8234:12;8192:28;:39;8221:9;8192:39;;;;;;;;;;;;;;;;:54;8184:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;8389:12;8347:28;:39;8376:9;8347:39;;;;;;;;;;;;;;;:54;;;;8093:328;8048:388;8551:13;;;;;;;;;;;8543:21;;:4;:21;;;:55;;;;;8582:15;;;;;;;;;;;8568:30;;:2;:30;;;;8543:55;:82;;;;;8603:18;:22;8622:2;8603:22;;;;;;;;;;;;;;;;;;;;;;;;;8602:23;8543:82;8539:362;;;8658:28;8682:3;8658:19;8669:7;;8658:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;8646:40;;8723:12;;8713:6;:22;;8705:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;8829:14;;8819:6;8803:13;8813:2;8803:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8795:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;8539:362;9013:13;;;;;;;;;;;9007:19;;:2;:19;;;:44;;;;;9046:4;9030:21;;:4;:21;;;;9007:44;9003:126;;;9084:29;9109:3;9084:20;9095:8;;9084:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;9072:41;;9003:126;9209:28;9240:24;9258:4;9240:9;:24::i;:::-;9209:55;;9284:6;;;;;;;;;;;9283:7;:30;;;;;9300:13;;;;;;;;;;;9294:19;;:2;:19;;;9283:30;:45;;;;;9317:11;;;;;;;;;;;9283:45;:89;;;;;9355:17;;9332:20;:40;9283:89;9279:313;;;9407:17;;9397:6;:27;9393:184;;9449:35;9466:17;;9449:16;:35::i;:::-;9393:184;;;9533:24;9550:6;9533:16;:24::i;:::-;9393:184;9279:313;8033:1570;7995:1608;9702:1;9690:9;:13;9686:172;;;9747:39;9776:9;9747;:24;9765:4;9747:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9720:9;:24;9738:4;9720:24;;;;;;;;;;;;;;;:66;;;;9829:4;9806:40;;9815:4;9806:40;;;9836:9;9806:40;;;;;;:::i;:::-;;;;;;;;9686:172;9936:27;9956:6;9936:9;:15;9946:4;9936:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9918:9;:15;9928:4;9918:15;;;;;;;;;;;;;;;:45;;;;9990:40;10008:21;10019:9;10008:6;:10;;:21;;;;:::i;:::-;9990:9;:13;10000:2;9990:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9974:9;:13;9984:2;9974:13;;;;;;;;;;;;;;;:56;;;;10061:2;10046:41;;10055:4;10046:41;;;10065:21;10076:9;10065:6;:10;;:21;;;;:::i;:::-;10046:41;;;;;;:::i;:::-;;;;;;;;7619:2476;7550:2545;;;:::o;1367:190::-;1453:7;1486:1;1481;:6;;1489:12;1473:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1513:9;1529:1;1525;:5;;;;:::i;:::-;1513:17;;1548:1;1541:8;;;1367:190;;;;;:::o;1565:246::-;1623:7;1652:1;1647;:6;1643:47;;1677:1;1670:8;;;;1643:47;1700:9;1716:1;1712;:5;;;;:::i;:::-;1700:17;;1745:1;1740;1736;:5;;;;:::i;:::-;:10;1728:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1802:1;1795:8;;;1565:246;;;;;:::o;1819:132::-;1877:7;1904:39;1908:1;1911;1904:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1897:46;;1819:132;;;;:::o;10103:489::-;5473:4;5464:6;;:13;;;;;;;;;;;;;;;;;;10181:21:::1;10219:1;10205:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10181:40;;10250:4;10232;10237:1;10232:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10276:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10266:4;10271:1;10266:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10309:62;10326:4;10341:15;;;;;;;;;;;10359:11;10309:8;:62::i;:::-;10382:15;;;;;;;;;;;:66;;;10463:11;10489:1;10505:4;10532:10;;;;;;;;;;;10558:15;10382:202;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10170:422;5509:5:::0;5500:6;;:14;;;;;;;;;;;;;;;;;;10103:489;:::o;1036:179::-;1094:7;1114:9;1130:1;1126;:5;;;;:::i;:::-;1114:17;;1155:1;1150;:6;;1142:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1206:1;1199:8;;;1036:179;;;;:::o;1223:136::-;1281:7;1308:43;1312:1;1315;1308:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1301:50;;1223:136;;;;:::o;1959:189::-;2045:7;2077:1;2073;:5;2080:12;2065:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2104:9;2120:1;2116;:5;;;;:::i;:::-;2104:17;;2139:1;2132:8;;;1959:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:329::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:118::-;5610:24;5628:5;5610:24;:::i;:::-;5605:3;5598:37;5523:118;;:::o;5647:222::-;5740:4;5778:2;5767:9;5763:18;5755:26;;5791:71;5859:1;5848:9;5844:17;5835:6;5791:71;:::i;:::-;5647:222;;;;:::o;5875:474::-;5943:6;5951;6000:2;5988:9;5979:7;5975:23;5971:32;5968:119;;;6006:79;;:::i;:::-;5968:119;6126:1;6151:53;6196:7;6187:6;6176:9;6172:22;6151:53;:::i;:::-;6141:63;;6097:117;6253:2;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6224:118;5875:474;;;;;:::o;6355:182::-;6495:34;6491:1;6483:6;6479:14;6472:58;6355:182;:::o;6543:366::-;6685:3;6706:67;6770:2;6765:3;6706:67;:::i;:::-;6699:74;;6782:93;6871:3;6782:93;:::i;:::-;6900:2;6895:3;6891:12;6884:19;;6543:366;;;:::o;6915:419::-;7081:4;7119:2;7108:9;7104:18;7096:26;;7168:9;7162:4;7158:20;7154:1;7143:9;7139:17;7132:47;7196:131;7322:4;7196:131;:::i;:::-;7188:139;;6915:419;;;:::o;7340:236::-;7480:34;7476:1;7468:6;7464:14;7457:58;7549:19;7544:2;7536:6;7532:15;7525:44;7340:236;:::o;7582:366::-;7724:3;7745:67;7809:2;7804:3;7745:67;:::i;:::-;7738:74;;7821:93;7910:3;7821:93;:::i;:::-;7939:2;7934:3;7930:12;7923:19;;7582:366;;;:::o;7954:419::-;8120:4;8158:2;8147:9;8143:18;8135:26;;8207:9;8201:4;8197:20;8193:1;8182:9;8178:17;8171:47;8235:131;8361:4;8235:131;:::i;:::-;8227:139;;7954:419;;;:::o;8379:332::-;8500:4;8538:2;8527:9;8523:18;8515:26;;8551:71;8619:1;8608:9;8604:17;8595:6;8551:71;:::i;:::-;8632:72;8700:2;8689:9;8685:18;8676:6;8632:72;:::i;:::-;8379:332;;;;;:::o;8717:171::-;8857:23;8853:1;8845:6;8841:14;8834:47;8717:171;:::o;8894:366::-;9036:3;9057:67;9121:2;9116:3;9057:67;:::i;:::-;9050:74;;9133:93;9222:3;9133:93;:::i;:::-;9251:2;9246:3;9242:12;9235:19;;8894:366;;;:::o;9266:419::-;9432:4;9470:2;9459:9;9455:18;9447:26;;9519:9;9513:4;9509:20;9505:1;9494:9;9490:17;9483:47;9547:131;9673:4;9547:131;:::i;:::-;9539:139;;9266:419;;;:::o;9691:180::-;9739:77;9736:1;9729:88;9836:4;9833:1;9826:15;9860:4;9857:1;9850:15;9877:102;9919:8;9966:5;9963:1;9959:13;9938:34;;9877:102;;;:::o;9985:848::-;10046:5;10053:4;10077:6;10068:15;;10101:5;10092:14;;10115:712;10136:1;10126:8;10123:15;10115:712;;;10231:4;10226:3;10222:14;10216:4;10213:24;10210:50;;;10240:18;;:::i;:::-;10210:50;10290:1;10280:8;10276:16;10273:451;;;10705:4;10698:5;10694:16;10685:25;;10273:451;10755:4;10749;10745:15;10737:23;;10785:32;10808:8;10785:32;:::i;:::-;10773:44;;10115:712;;;9985:848;;;;;;;:::o;10839:1073::-;10893:5;11084:8;11074:40;;11105:1;11096:10;;11107:5;;11074:40;11133:4;11123:36;;11150:1;11141:10;;11152:5;;11123:36;11219:4;11267:1;11262:27;;;;11303:1;11298:191;;;;11212:277;;11262:27;11280:1;11271:10;;11282:5;;;11298:191;11343:3;11333:8;11330:17;11327:43;;;11350:18;;:::i;:::-;11327:43;11399:8;11396:1;11392:16;11383:25;;11434:3;11427:5;11424:14;11421:40;;;11441:18;;:::i;:::-;11421:40;11474:5;;;11212:277;;11598:2;11588:8;11585:16;11579:3;11573:4;11570:13;11566:36;11548:2;11538:8;11535:16;11530:2;11524:4;11521:12;11517:35;11501:111;11498:246;;;11654:8;11648:4;11644:19;11635:28;;11689:3;11682:5;11679:14;11676:40;;;11696:18;;:::i;:::-;11676:40;11729:5;;11498:246;11769:42;11807:3;11797:8;11791:4;11788:1;11769:42;:::i;:::-;11754:57;;;;11843:4;11838:3;11834:14;11827:5;11824:25;11821:51;;;11852:18;;:::i;:::-;11821:51;11901:4;11894:5;11890:16;11881:25;;10839:1073;;;;;;:::o;11918:281::-;11976:5;12000:23;12018:4;12000:23;:::i;:::-;11992:31;;12044:25;12060:8;12044:25;:::i;:::-;12032:37;;12088:104;12125:66;12115:8;12109:4;12088:104;:::i;:::-;12079:113;;11918:281;;;;:::o;12205:410::-;12245:7;12268:20;12286:1;12268:20;:::i;:::-;12263:25;;12302:20;12320:1;12302:20;:::i;:::-;12297:25;;12357:1;12354;12350:9;12379:30;12397:11;12379:30;:::i;:::-;12368:41;;12558:1;12549:7;12545:15;12542:1;12539:22;12519:1;12512:9;12492:83;12469:139;;12588:18;;:::i;:::-;12469:139;12253:362;12205:410;;;;:::o;12621:143::-;12678:5;12709:6;12703:13;12694:22;;12725:33;12752:5;12725:33;:::i;:::-;12621:143;;;;:::o;12770:351::-;12840:6;12889:2;12877:9;12868:7;12864:23;12860:32;12857:119;;;12895:79;;:::i;:::-;12857:119;13015:1;13040:64;13096:7;13087:6;13076:9;13072:22;13040:64;:::i;:::-;13030:74;;12986:128;12770:351;;;;:::o;13127:174::-;13267:26;13263:1;13255:6;13251:14;13244:50;13127:174;:::o;13307:366::-;13449:3;13470:67;13534:2;13529:3;13470:67;:::i;:::-;13463:74;;13546:93;13635:3;13546:93;:::i;:::-;13664:2;13659:3;13655:12;13648:19;;13307:366;;;:::o;13679:419::-;13845:4;13883:2;13872:9;13868:18;13860:26;;13932:9;13926:4;13922:20;13918:1;13907:9;13903:17;13896:47;13960:131;14086:4;13960:131;:::i;:::-;13952:139;;13679:419;;;:::o;14104:332::-;14225:4;14263:2;14252:9;14248:18;14240:26;;14276:71;14344:1;14333:9;14329:17;14320:6;14276:71;:::i;:::-;14357:72;14425:2;14414:9;14410:18;14401:6;14357:72;:::i;:::-;14104:332;;;;;:::o;14442:116::-;14512:21;14527:5;14512:21;:::i;:::-;14505:5;14502:32;14492:60;;14548:1;14545;14538:12;14492:60;14442:116;:::o;14564:137::-;14618:5;14649:6;14643:13;14634:22;;14665:30;14689:5;14665:30;:::i;:::-;14564:137;;;;:::o;14707:345::-;14774:6;14823:2;14811:9;14802:7;14798:23;14794:32;14791:119;;;14829:79;;:::i;:::-;14791:119;14949:1;14974:61;15027:7;15018:6;15007:9;15003:22;14974:61;:::i;:::-;14964:71;;14920:125;14707:345;;;;:::o;15058:237::-;15198:34;15194:1;15186:6;15182:14;15175:58;15267:20;15262:2;15254:6;15250:15;15243:45;15058:237;:::o;15301:366::-;15443:3;15464:67;15528:2;15523:3;15464:67;:::i;:::-;15457:74;;15540:93;15629:3;15540:93;:::i;:::-;15658:2;15653:3;15649:12;15642:19;;15301:366;;;:::o;15673:419::-;15839:4;15877:2;15866:9;15862:18;15854:26;;15926:9;15920:4;15916:20;15912:1;15901:9;15897:17;15890:47;15954:131;16080:4;15954:131;:::i;:::-;15946:139;;15673:419;;;:::o;16098:294::-;16238:34;16234:1;16226:6;16222:14;16215:58;16307:34;16302:2;16294:6;16290:15;16283:59;16376:8;16371:2;16363:6;16359:15;16352:33;16098:294;:::o;16398:366::-;16540:3;16561:67;16625:2;16620:3;16561:67;:::i;:::-;16554:74;;16637:93;16726:3;16637:93;:::i;:::-;16755:2;16750:3;16746:12;16739:19;;16398:366;;;:::o;16770:419::-;16936:4;16974:2;16963:9;16959:18;16951:26;;17023:9;17017:4;17013:20;17009:1;16998:9;16994:17;16987:47;17051:131;17177:4;17051:131;:::i;:::-;17043:139;;16770:419;;;:::o;17195:180::-;17243:77;17240:1;17233:88;17340:4;17337:1;17330:15;17364:4;17361:1;17354:15;17381:185;17421:1;17438:20;17456:1;17438:20;:::i;:::-;17433:25;;17472:20;17490:1;17472:20;:::i;:::-;17467:25;;17511:1;17501:35;;17516:18;;:::i;:::-;17501:35;17558:1;17555;17551:9;17546:14;;17381:185;;;;:::o;17572:223::-;17712:34;17708:1;17700:6;17696:14;17689:58;17781:6;17776:2;17768:6;17764:15;17757:31;17572:223;:::o;17801:366::-;17943:3;17964:67;18028:2;18023:3;17964:67;:::i;:::-;17957:74;;18040:93;18129:3;18040:93;:::i;:::-;18158:2;18153:3;18149:12;18142:19;;17801:366;;;:::o;18173:419::-;18339:4;18377:2;18366:9;18362:18;18354:26;;18426:9;18420:4;18416:20;18412:1;18401:9;18397:17;18390:47;18454:131;18580:4;18454:131;:::i;:::-;18446:139;;18173:419;;;:::o;18598:143::-;18655:5;18686:6;18680:13;18671:22;;18702:33;18729:5;18702:33;:::i;:::-;18598:143;;;;:::o;18747:351::-;18817:6;18866:2;18854:9;18845:7;18841:23;18837:32;18834:119;;;18872:79;;:::i;:::-;18834:119;18992:1;19017:64;19073:7;19064:6;19053:9;19049:22;19017:64;:::i;:::-;19007:74;;18963:128;18747:351;;;;:::o;19104:332::-;19225:4;19263:2;19252:9;19248:18;19240:26;;19276:71;19344:1;19333:9;19329:17;19320:6;19276:71;:::i;:::-;19357:72;19425:2;19414:9;19410:18;19401:6;19357:72;:::i;:::-;19104:332;;;;;:::o;19442:85::-;19487:7;19516:5;19505:16;;19442:85;;;:::o;19533:60::-;19561:3;19582:5;19575:12;;19533:60;;;:::o;19599:158::-;19657:9;19690:61;19708:42;19717:32;19743:5;19717:32;:::i;:::-;19708:42;:::i;:::-;19690:61;:::i;:::-;19677:74;;19599:158;;;:::o;19763:147::-;19858:45;19897:5;19858:45;:::i;:::-;19853:3;19846:58;19763:147;;:::o;19916:807::-;20165:4;20203:3;20192:9;20188:19;20180:27;;20217:71;20285:1;20274:9;20270:17;20261:6;20217:71;:::i;:::-;20298:72;20366:2;20355:9;20351:18;20342:6;20298:72;:::i;:::-;20380:80;20456:2;20445:9;20441:18;20432:6;20380:80;:::i;:::-;20470;20546:2;20535:9;20531:18;20522:6;20470:80;:::i;:::-;20560:73;20628:3;20617:9;20613:19;20604:6;20560:73;:::i;:::-;20643;20711:3;20700:9;20696:19;20687:6;20643:73;:::i;:::-;19916:807;;;;;;;;;:::o;20729:663::-;20817:6;20825;20833;20882:2;20870:9;20861:7;20857:23;20853:32;20850:119;;;20888:79;;:::i;:::-;20850:119;21008:1;21033:64;21089:7;21080:6;21069:9;21065:22;21033:64;:::i;:::-;21023:74;;20979:128;21146:2;21172:64;21228:7;21219:6;21208:9;21204:22;21172:64;:::i;:::-;21162:74;;21117:129;21285:2;21311:64;21367:7;21358:6;21347:9;21343:22;21311:64;:::i;:::-;21301:74;;21256:129;20729:663;;;;;:::o;21398:293::-;21538:34;21534:1;21526:6;21522:14;21515:58;21607:34;21602:2;21594:6;21590:15;21583:59;21676:7;21671:2;21663:6;21659:15;21652:32;21398:293;:::o;21697:366::-;21839:3;21860:67;21924:2;21919:3;21860:67;:::i;:::-;21853:74;;21936:93;22025:3;21936:93;:::i;:::-;22054:2;22049:3;22045:12;22038:19;;21697:366;;;:::o;22069:419::-;22235:4;22273:2;22262:9;22258:18;22250:26;;22322:9;22316:4;22312:20;22308:1;22297:9;22293:17;22286:47;22350:131;22476:4;22350:131;:::i;:::-;22342:139;;22069:419;;;:::o;22494:250::-;22634:34;22630:1;22622:6;22618:14;22611:58;22703:33;22698:2;22690:6;22686:15;22679:58;22494:250;:::o;22750:366::-;22892:3;22913:67;22977:2;22972:3;22913:67;:::i;:::-;22906:74;;22989:93;23078:3;22989:93;:::i;:::-;23107:2;23102:3;23098:12;23091:19;;22750:366;;;:::o;23122:419::-;23288:4;23326:2;23315:9;23311:18;23303:26;;23375:9;23369:4;23365:20;23361:1;23350:9;23346:17;23339:47;23403:131;23529:4;23403:131;:::i;:::-;23395:139;;23122:419;;;:::o;23547:223::-;23687:34;23683:1;23675:6;23671:14;23664:58;23756:6;23751:2;23743:6;23739:15;23732:31;23547:223;:::o;23776:366::-;23918:3;23939:67;24003:2;23998:3;23939:67;:::i;:::-;23932:74;;24015:93;24104:3;24015:93;:::i;:::-;24133:2;24128:3;24124:12;24117:19;;23776:366;;;:::o;24148:419::-;24314:4;24352:2;24341:9;24337:18;24329:26;;24401:9;24395:4;24391:20;24387:1;24376:9;24372:17;24365:47;24429:131;24555:4;24429:131;:::i;:::-;24421:139;;24148:419;;;:::o;24573:221::-;24713:34;24709:1;24701:6;24697:14;24690:58;24782:4;24777:2;24769:6;24765:15;24758:29;24573:221;:::o;24800:366::-;24942:3;24963:67;25027:2;25022:3;24963:67;:::i;:::-;24956:74;;25039:93;25128:3;25039:93;:::i;:::-;25157:2;25152:3;25148:12;25141:19;;24800:366;;;:::o;25172:419::-;25338:4;25376:2;25365:9;25361:18;25353:26;;25425:9;25419:4;25415:20;25411:1;25400:9;25396:17;25389:47;25453:131;25579:4;25453:131;:::i;:::-;25445:139;;25172:419;;;:::o;25597:224::-;25737:34;25733:1;25725:6;25721:14;25714:58;25806:7;25801:2;25793:6;25789:15;25782:32;25597:224;:::o;25827:366::-;25969:3;25990:67;26054:2;26049:3;25990:67;:::i;:::-;25983:74;;26066:93;26155:3;26066:93;:::i;:::-;26184:2;26179:3;26175:12;26168:19;;25827:366;;;:::o;26199:419::-;26365:4;26403:2;26392:9;26388:18;26380:26;;26452:9;26446:4;26442:20;26438:1;26427:9;26423:17;26416:47;26480:131;26606:4;26480:131;:::i;:::-;26472:139;;26199:419;;;:::o;26624:222::-;26764:34;26760:1;26752:6;26748:14;26741:58;26833:5;26828:2;26820:6;26816:15;26809:30;26624:222;:::o;26852:366::-;26994:3;27015:67;27079:2;27074:3;27015:67;:::i;:::-;27008:74;;27091:93;27180:3;27091:93;:::i;:::-;27209:2;27204:3;27200:12;27193:19;;26852:366;;;:::o;27224:419::-;27390:4;27428:2;27417:9;27413:18;27405:26;;27477:9;27471:4;27467:20;27463:1;27452:9;27448:17;27441:47;27505:131;27631:4;27505:131;:::i;:::-;27497:139;;27224:419;;;:::o;27649:239::-;27789:34;27785:1;27777:6;27773:14;27766:58;27858:22;27853:2;27845:6;27841:15;27834:47;27649:239;:::o;27894:366::-;28036:3;28057:67;28121:2;28116:3;28057:67;:::i;:::-;28050:74;;28133:93;28222:3;28133:93;:::i;:::-;28251:2;28246:3;28242:12;28235:19;;27894:366;;;:::o;28266:419::-;28432:4;28470:2;28459:9;28455:18;28447:26;;28519:9;28513:4;28509:20;28505:1;28494:9;28490:17;28483:47;28547:131;28673:4;28547:131;:::i;:::-;28539:139;;28266:419;;;:::o;28691:297::-;28831:34;28827:1;28819:6;28815:14;28808:58;28900:34;28895:2;28887:6;28883:15;28876:59;28969:11;28964:2;28956:6;28952:15;28945:36;28691:297;:::o;28994:366::-;29136:3;29157:67;29221:2;29216:3;29157:67;:::i;:::-;29150:74;;29233:93;29322:3;29233:93;:::i;:::-;29351:2;29346:3;29342:12;29335:19;;28994:366;;;:::o;29366:419::-;29532:4;29570:2;29559:9;29555:18;29547:26;;29619:9;29613:4;29609:20;29605:1;29594:9;29590:17;29583:47;29647:131;29773:4;29647:131;:::i;:::-;29639:139;;29366:419;;;:::o;29791:223::-;29931:34;29927:1;29919:6;29915:14;29908:58;30000:6;29995:2;29987:6;29983:15;29976:31;29791:223;:::o;30020:366::-;30162:3;30183:67;30247:2;30242:3;30183:67;:::i;:::-;30176:74;;30259:93;30348:3;30259:93;:::i;:::-;30377:2;30372:3;30368:12;30361:19;;30020:366;;;:::o;30392:419::-;30558:4;30596:2;30585:9;30581:18;30573:26;;30645:9;30639:4;30635:20;30631:1;30620:9;30616:17;30609:47;30673:131;30799:4;30673:131;:::i;:::-;30665:139;;30392:419;;;:::o;30817:191::-;30857:3;30876:20;30894:1;30876:20;:::i;:::-;30871:25;;30910:20;30928:1;30910:20;:::i;:::-;30905:25;;30953:1;30950;30946:9;30939:16;;30974:3;30971:1;30968:10;30965:36;;;30981:18;;:::i;:::-;30965:36;30817:191;;;;:::o;31014:224::-;31154:34;31150:1;31142:6;31138:14;31131:58;31223:7;31218:2;31210:6;31206:15;31199:32;31014:224;:::o;31244:366::-;31386:3;31407:67;31471:2;31466:3;31407:67;:::i;:::-;31400:74;;31483:93;31572:3;31483:93;:::i;:::-;31601:2;31596:3;31592:12;31585:19;;31244:366;;;:::o;31616:419::-;31782:4;31820:2;31809:9;31805:18;31797:26;;31869:9;31863:4;31859:20;31855:1;31844:9;31840:17;31833:47;31897:131;32023:4;31897:131;:::i;:::-;31889:139;;31616:419;;;:::o;32041:194::-;32081:4;32101:20;32119:1;32101:20;:::i;:::-;32096:25;;32135:20;32153:1;32135:20;:::i;:::-;32130:25;;32179:1;32176;32172:9;32164:17;;32203:1;32197:4;32194:11;32191:37;;;32208:18;;:::i;:::-;32191:37;32041:194;;;;:::o;32241:220::-;32381:34;32377:1;32369:6;32365:14;32358:58;32450:3;32445:2;32437:6;32433:15;32426:28;32241:220;:::o;32467:366::-;32609:3;32630:67;32694:2;32689:3;32630:67;:::i;:::-;32623:74;;32706:93;32795:3;32706:93;:::i;:::-;32824:2;32819:3;32815:12;32808:19;;32467:366;;;:::o;32839:419::-;33005:4;33043:2;33032:9;33028:18;33020:26;;33092:9;33086:4;33082:20;33078:1;33067:9;33063:17;33056:47;33120:131;33246:4;33120:131;:::i;:::-;33112:139;;32839:419;;;:::o;33264:180::-;33312:77;33309:1;33302:88;33409:4;33406:1;33399:15;33433:4;33430:1;33423:15;33450:180;33498:77;33495:1;33488:88;33595:4;33592:1;33585:15;33619:4;33616:1;33609:15;33636:114;33703:6;33737:5;33731:12;33721:22;;33636:114;;;:::o;33756:184::-;33855:11;33889:6;33884:3;33877:19;33929:4;33924:3;33920:14;33905:29;;33756:184;;;;:::o;33946:132::-;34013:4;34036:3;34028:11;;34066:4;34061:3;34057:14;34049:22;;33946:132;;;:::o;34084:108::-;34161:24;34179:5;34161:24;:::i;:::-;34156:3;34149:37;34084:108;;:::o;34198:179::-;34267:10;34288:46;34330:3;34322:6;34288:46;:::i;:::-;34366:4;34361:3;34357:14;34343:28;;34198:179;;;;:::o;34383:113::-;34453:4;34485;34480:3;34476:14;34468:22;;34383:113;;;:::o;34532:732::-;34651:3;34680:54;34728:5;34680:54;:::i;:::-;34750:86;34829:6;34824:3;34750:86;:::i;:::-;34743:93;;34860:56;34910:5;34860:56;:::i;:::-;34939:7;34970:1;34955:284;34980:6;34977:1;34974:13;34955:284;;;35056:6;35050:13;35083:63;35142:3;35127:13;35083:63;:::i;:::-;35076:70;;35169:60;35222:6;35169:60;:::i;:::-;35159:70;;35015:224;35002:1;34999;34995:9;34990:14;;34955:284;;;34959:14;35255:3;35248:10;;34656:608;;;34532:732;;;;:::o;35270:831::-;35533:4;35571:3;35560:9;35556:19;35548:27;;35585:71;35653:1;35642:9;35638:17;35629:6;35585:71;:::i;:::-;35666:80;35742:2;35731:9;35727:18;35718:6;35666:80;:::i;:::-;35793:9;35787:4;35783:20;35778:2;35767:9;35763:18;35756:48;35821:108;35924:4;35915:6;35821:108;:::i;:::-;35813:116;;35939:72;36007:2;35996:9;35992:18;35983:6;35939:72;:::i;:::-;36021:73;36089:3;36078:9;36074:19;36065:6;36021:73;:::i;:::-;35270:831;;;;;;;;:::o;36107:177::-;36247:29;36243:1;36235:6;36231:14;36224:53;36107:177;:::o;36290:366::-;36432:3;36453:67;36517:2;36512:3;36453:67;:::i;:::-;36446:74;;36529:93;36618:3;36529:93;:::i;:::-;36647:2;36642:3;36638:12;36631:19;;36290:366;;;:::o;36662:419::-;36828:4;36866:2;36855:9;36851:18;36843:26;;36915:9;36909:4;36905:20;36901:1;36890:9;36886:17;36879:47;36943:131;37069:4;36943:131;:::i;:::-;36935:139;;36662:419;;;:::o

Swarm Source

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