ETH Price: $3,452.59 (-1.14%)
Gas: 12 Gwei

Token

Amami (Amami)
 

Overview

Max Total Supply

1,000,000,000 Amami

Holders

73

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000000000000001 Amami

Value
$0.00
0x588c1eb7b9a2c1da231b227ed5ebfae05db5ace8
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:
Amami

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-03-22
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
 
abstract contract Ownable {
    address internal owner;
 
    constructor(address _owner) {
        owner = _owner;
    }
 
    modifier onlyOwner() {
        require(isOwner(msg.sender), "Only owner can execute the following");
        _;
    }
 
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }
 
    function renounceOwnership() public onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(address(0));
    }
 
    event OwnershipTransferred(address owner);
}
 
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) {
        require(b <= a, "SafeMath: subtraction overflow");
        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) {
        require(b > 0, "SafeMath: division by zero");
        uint256 c = a / b;
        return c;
    }
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0, "SafeMath: modulo by zero");
        return a % b;
    }
}
 
 
contract ERC20 is IERC20 {
    using SafeMath for uint256;
 
    mapping (address => uint256) private _balances;
 
    mapping (address => mapping (address => uint256)) private _allowances;
 
    uint256 private _totalSupply;
 
    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }
 
    function balanceOf(address account) public view returns (uint256) {
        return _balances[account];
    }
 
    function transfer(address recipient, uint256 amount) public virtual returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }
 
    function allowance(address owner, address spender) public view returns (uint256) {
        return _allowances[owner][spender];
    }
 
    function approve(address spender, uint256 value) public returns (bool) {
        _approve(msg.sender, spender, value);
        return true;
    }
 
    function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount));
        return true;
    }
 
    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].add(addedValue));
        return true;
    }
 
    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].sub(subtractedValue));
        return true;
    }
 
    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
 
        _balances[sender] = _balances[sender].sub(amount);
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }
 
    function _mint(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: mint to the zero address");
 
        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }
 
    function _approve(address owner, address spender, uint256 value) internal {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
 
        _allowances[owner][spender] = value;
        emit Approval(owner, spender, value);
    }
}
 
interface IUniswapV2Router02 {
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}
 
 
interface IUniswapV2Factory {
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}
 
contract Amami is ERC20, Ownable {
    using SafeMath for uint256;
    IUniswapV2Router02 public immutable uniswapV2Router02 = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    IUniswapV2Factory public immutable uniswapV2Factory = IUniswapV2Factory(0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f);
    address AMAMI_COLLECTOR;
    address DEV_ADDRESS;
    address AmamiLiquidityLock;
 
    string private _name;
    string private _symbol;
    uint8 private _decimals;
    uint256 public buyFees = 4;
    uint256 public sellFees = 4;
 
    bool private liquifying;
    uint256 liquifyModifier = 5;
 
    uint256 maxWalletSize = 0;
    uint256 maxTransactionAmount = 0;
 
    mapping(address => bool) private _isExemptFromFees;
    mapping(address => bool) public _isExmptFromMaxTransactionAmount;
 
    bool private liquifyingEnabled = true;
    bool private limitsInEffect = true;
 
    constructor(string memory __name, string memory __symbol, uint8 __decimals, uint256 __totalSupply, address _collector, address _devAddress) Ownable(msg.sender) payable {
        _name = __name;
        _symbol = __symbol;
        _decimals = __decimals;
 
        _isExemptFromFees[owner] = true;
        _isExemptFromFees[address(this)] = true;
        _isExemptFromFees[address(0xdead)] = true;
 
        _isExmptFromMaxTransactionAmount[owner]= true;
        _isExmptFromMaxTransactionAmount[address(this)] =  true;
        _isExmptFromMaxTransactionAmount[address(0xdead)] = true;
 
        uint256 totalSupply = __totalSupply * (10 ** __decimals);
        uint256 walletSize = 2;
        maxWalletSize = walletSize.mul(totalSupply).div(100);
        maxTransactionAmount = walletSize.mul(totalSupply).div(100);
 
        _mint(owner, totalSupply);
 
        AMAMI_COLLECTOR = _collector;
        DEV_ADDRESS = _devAddress;
    } 
 
    function name() public view returns (string memory) {
        return _name;
    }
 
    function symbol() public view returns (string memory) {
        return _symbol;
    }
 
    function decimals() public view returns (uint8) {
        return _decimals;
    }
 
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }
 
    function getMarketMakerPair() public view returns (address){
        return uniswapV2Factory.getPair(uniswapV2Router02.WETH(), address(this));
    }
 
    function setLiquifyModifier(uint256 _newLiquifyModifier) public onlyOwner {
        liquifyModifier = _newLiquifyModifier;
    }
 
    function modifyFeeConfig(uint256 _newBuyFeesModifier, uint256 _newSellFeesModifier) public onlyOwner {
        require(_newBuyFeesModifier <= 5, "Buy fees cannot exceed 5%");
        require(_newSellFeesModifier <= 5, "Sell fees cannot exceed 5%");
        buyFees = _newBuyFeesModifier;
        sellFees = _newSellFeesModifier;
    }
 
    function updateFlags(bool _limitsInEffect, bool _liquifyingEnabled) public onlyOwner {
        limitsInEffect = _limitsInEffect;
        liquifyingEnabled = _liquifyingEnabled;
    }
 
    function setLockerAllowance(address _liquidityLockAddress) public onlyOwner {
        AmamiLiquidityLock = _liquidityLockAddress;
        _isExmptFromMaxTransactionAmount[_liquidityLockAddress] = true;
        _isExemptFromFees[_liquidityLockAddress] = true;
    }
 
    function setWalletConfig(uint256 _newWalletSize, uint256 _newMaxTxAmount) public onlyOwner {
        uint256 minPercentage = 1;
        uint256 finalWalletSize = _newWalletSize.mul(10 ** decimals());
        uint256 finalMaxTxAmount = _newMaxTxAmount.mul(10 ** decimals());
 
        require(finalWalletSize >= minPercentage.mul(totalSupply()).div(100), "Wallet size cannot be lower than 1%");
        require(finalMaxTxAmount >= minPercentage.mul(totalSupply()).div(100), "Max tx amount cannot be lower than 1%");
 
        if (_newWalletSize >= totalSupply()) {
            maxWalletSize = type(uint256).max;
        } else {
            maxWalletSize = finalWalletSize;
        }
 
         if (_newMaxTxAmount >= totalSupply()) {
            maxTransactionAmount = type(uint256).max;
        } else {
            maxTransactionAmount = finalMaxTxAmount;
        }
    }
 
    function getBuyFees() public view returns (uint256) {
      return buyFees;  
    }
 
    function getSellFees() public view returns (uint256) {
      return sellFees;  
    } 
 
    function getLiquifyModifier() public view returns (uint256) {
      return liquifyModifier;  
    }
 
    function getMaxWalletSize() public view returns (uint256) {
      return maxWalletSize;  
    }
 
    function getMaxTransactionAmount() public view returns (uint256) {
      return maxTransactionAmount;  
    }
 
    function isLimitsInEffect() public view returns (bool) {
      return limitsInEffect;  
    }
 
    function isLiquifingEnabled() public view returns (bool) {
      return liquifyingEnabled;  
    }
 
    function swapTokensForEth(uint256 tokenAmount) internal {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router02.WETH();
 
        _approve(address(this), address(uniswapV2Router02), tokenAmount);
 
        uniswapV2Router02.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            DEV_ADDRESS,
            block.timestamp
        );
    }
 
    function canSelfSwap() public view returns (bool) {
        uint256 balance = balanceOf(address(this));
        if (balance.mul(1000).div(totalSupply()) >= liquifyModifier) {
            return true;
        } else {
            return false;
        }
    }
 
    function liquify() internal {
        uint256 available = totalSupply().mul(liquifyModifier).div(1000);
        uint256 tokens = available.div(2);
        swapTokensForEth(tokens);
        uint256 remaining = available - tokens;
        super._transfer(address(this), AMAMI_COLLECTOR, remaining);
 
    }
 
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount != 0, "ERC20: amount equals zero");
 
        if (limitsInEffect) {
            if (from != owner && to != owner && to != address(0) && to != address(0xdead) && !liquifying) {
                if (getMarketMakerPair() == from && !_isExmptFromMaxTransactionAmount[to]) {
                    require(amount <= maxTransactionAmount, "Buy transfer amount exceeds max transaction amount.");
                    require(amount + balanceOf(to) <= maxWalletSize, "Max wallet exceeded" );
                } else if (getMarketMakerPair() == to && !_isExmptFromMaxTransactionAmount[from]) {
                    require(amount <= maxTransactionAmount,"Sell transfer amount exceeds the max transaction amount.");
                } else if (!_isExmptFromMaxTransactionAmount[to]) {
                    require(amount + balanceOf(to) <= maxWalletSize, "Max wallet has exceeded");
                }
            }
        }
 
        if (canSelfSwap() && liquifyingEnabled && !liquifying && getMarketMakerPair() != from && !_isExemptFromFees[from] && !_isExemptFromFees[to]) {
            liquifying = true;
            liquify();
            liquifying = false;
        }
 
        bool takeFee = !liquifying;
 
        if (_isExemptFromFees[from] || _isExemptFromFees[to]) {
            takeFee = false;
        }
 
        uint256 fees = 0;
        if (takeFee) {
            if (getMarketMakerPair() == to && sellFees > 0) {
                fees = amount.mul(sellFees).div(100);
            } else if (getMarketMakerPair() == from && buyFees > 0) {
                fees = amount.mul(buyFees).div(100);
            }
 
            if (fees > 0) {
                super._transfer(from, address(this), fees);
            }
            amount -= fees;
        }
 
        super._transfer(from, to, amount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"__name","type":"string"},{"internalType":"string","name":"__symbol","type":"string"},{"internalType":"uint8","name":"__decimals","type":"uint8"},{"internalType":"uint256","name":"__totalSupply","type":"uint256"},{"internalType":"address","name":"_collector","type":"address"},{"internalType":"address","name":"_devAddress","type":"address"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExmptFromMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"canSelfSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getBuyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLiquifyModifier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMarketMakerPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isLimitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isLiquifingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newBuyFeesModifier","type":"uint256"},{"internalType":"uint256","name":"_newSellFeesModifier","type":"uint256"}],"name":"modifyFeeConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newLiquifyModifier","type":"uint256"}],"name":"setLiquifyModifier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_liquidityLockAddress","type":"address"}],"name":"setLockerAllowance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newWalletSize","type":"uint256"},{"internalType":"uint256","name":"_newMaxTxAmount","type":"uint256"}],"name":"setWalletConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Factory","outputs":[{"internalType":"contract IUniswapV2Factory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router02","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_limitsInEffect","type":"bool"},{"internalType":"bool","name":"_liquifyingEnabled","type":"bool"}],"name":"updateFlags","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60c0604052737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff16815250735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff168152506004600a556004600b556005600d555f600e555f600f55600160125f6101000a81548160ff0219169083151502179055506001601260016101000a81548160ff0219169083151502179055506040516147fc3803806147fc83398181016040528101906100ff91906109b6565b338060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505085600790816101509190610c7b565b5084600890816101609190610c7b565b508360095f6101000a81548160ff021916908360ff160217905550600160105f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160115f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160115f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160115f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f84600a6103cd9190610ea6565b846103d89190610ef0565b90505f6002905061040560646103f784846104f560201b90919060201c565b61056c60201b90919060201c565b600e81905550610431606461042384846104f560201b90919060201c565b61056c60201b90919060201c565b600f8190555061046860035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836105c860201b60201c565b8360045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050506111bf565b5f808303610505575f9050610566565b5f82846105129190610ef0565b90508284826105219190610f5e565b14610561576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105589061100e565b60405180910390fd5b809150505b92915050565b5f8082116105af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a690611076565b60405180910390fd5b5f82846105bc9190610f5e565b90508091505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062d906110de565b60405180910390fd5b61064b8160025461074960201b90919060201c565b6002819055506106a0815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461074960201b90919060201c565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161073d919061110b565b60405180910390a35050565b5f8082846107579190611124565b90508381101561079c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610793906111a1565b60405180910390fd5b8091505092915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610805826107bf565b810181811067ffffffffffffffff82111715610824576108236107cf565b5b80604052505050565b5f6108366107a6565b905061084282826107fc565b919050565b5f67ffffffffffffffff821115610861576108606107cf565b5b61086a826107bf565b9050602081019050919050565b8281835e5f83830152505050565b5f61089761089284610847565b61082d565b9050828152602081018484840111156108b3576108b26107bb565b5b6108be848285610877565b509392505050565b5f82601f8301126108da576108d96107b7565b5b81516108ea848260208601610885565b91505092915050565b5f60ff82169050919050565b610908816108f3565b8114610912575f80fd5b50565b5f81519050610923816108ff565b92915050565b5f819050919050565b61093b81610929565b8114610945575f80fd5b50565b5f8151905061095681610932565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6109858261095c565b9050919050565b6109958161097b565b811461099f575f80fd5b50565b5f815190506109b08161098c565b92915050565b5f805f805f8060c087890312156109d0576109cf6107af565b5b5f87015167ffffffffffffffff8111156109ed576109ec6107b3565b5b6109f989828a016108c6565b965050602087015167ffffffffffffffff811115610a1a57610a196107b3565b5b610a2689828a016108c6565b9550506040610a3789828a01610915565b9450506060610a4889828a01610948565b9350506080610a5989828a016109a2565b92505060a0610a6a89828a016109a2565b9150509295509295509295565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610ac557607f821691505b602082108103610ad857610ad7610a81565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610b3a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610aff565b610b448683610aff565b95508019841693508086168417925050509392505050565b5f819050919050565b5f610b7f610b7a610b7584610929565b610b5c565b610929565b9050919050565b5f819050919050565b610b9883610b65565b610bac610ba482610b86565b848454610b0b565b825550505050565b5f90565b610bc0610bb4565b610bcb818484610b8f565b505050565b5b81811015610bee57610be35f82610bb8565b600181019050610bd1565b5050565b601f821115610c3357610c0481610ade565b610c0d84610af0565b81016020851015610c1c578190505b610c30610c2885610af0565b830182610bd0565b50505b505050565b5f82821c905092915050565b5f610c535f1984600802610c38565b1980831691505092915050565b5f610c6b8383610c44565b9150826002028217905092915050565b610c8482610a77565b67ffffffffffffffff811115610c9d57610c9c6107cf565b5b610ca78254610aae565b610cb2828285610bf2565b5f60209050601f831160018114610ce3575f8415610cd1578287015190505b610cdb8582610c60565b865550610d42565b601f198416610cf186610ade565b5f5b82811015610d1857848901518255600182019150602085019450602081019050610cf3565b86831015610d355784890151610d31601f891682610c44565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115610dcc57808604811115610da857610da7610d4a565b5b6001851615610db75780820291505b8081029050610dc585610d77565b9450610d8c565b94509492505050565b5f82610de45760019050610e9f565b81610df1575f9050610e9f565b8160018114610e075760028114610e1157610e40565b6001915050610e9f565b60ff841115610e2357610e22610d4a565b5b8360020a915084821115610e3a57610e39610d4a565b5b50610e9f565b5060208310610133831016604e8410600b8410161715610e755782820a905083811115610e7057610e6f610d4a565b5b610e9f565b610e828484846001610d83565b92509050818404811115610e9957610e98610d4a565b5b81810290505b9392505050565b5f610eb082610929565b9150610ebb836108f3565b9250610ee87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610dd5565b905092915050565b5f610efa82610929565b9150610f0583610929565b9250828202610f1381610929565b91508282048414831517610f2a57610f29610d4a565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610f6882610929565b9150610f7383610929565b925082610f8357610f82610f31565b5b828204905092915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f610ff8602183610f8e565b915061100382610f9e565b604082019050919050565b5f6020820190508181035f83015261102581610fec565b9050919050565b7f536166654d6174683a206469766973696f6e206279207a65726f0000000000005f82015250565b5f611060601a83610f8e565b915061106b8261102c565b602082019050919050565b5f6020820190508181035f83015261108d81611054565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f6110c8601f83610f8e565b91506110d382611094565b602082019050919050565b5f6020820190508181035f8301526110f5816110bc565b9050919050565b61110581610929565b82525050565b5f60208201905061111e5f8301846110fc565b92915050565b5f61112e82610929565b915061113983610929565b925082820190508082111561115157611150610d4a565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61118b601b83610f8e565b915061119682611157565b602082019050919050565b5f6020820190508181035f8301526111b88161117f565b9050919050565b60805160a0516135f96112035f395f8181610c020152610d2d01525f8181610c3e01528181610ff7015281816121e4015281816122c301526122ea01526135f95ff3fe608060405234801561000f575f80fd5b50600436106101ee575f3560e01c8063685fc5681161010d578063ac8f401c116100a0578063e0f3ccf51161006f578063e0f3ccf5146105c0578063e4748b9e146105de578063fb9c8c3b146105fc578063fdcee0ca1461061a576101ee565b8063ac8f401c14610526578063b482410014610544578063c5f1a71614610560578063dd62ed3e14610590576101ee565b806395d89b41116100dc57806395d89b411461048a578063a457c2d7146104a8578063a7c6402c146104d8578063a9059cbb146104f6576101ee565b8063685fc568146104145780636c0f8bf51461043257806370a0823114610450578063715018a614610480576101ee565b8063313ce567116101855780634714492311610154578063471449231461039e57806357c75d5c146103bc57806359d0f713146103da57806367301b5d146103f8576101ee565b8063313ce5671461031657806339509351146103345780633ef125181461036457806341ff604a14610382576101ee565b806318160ddd116101c157806318160ddd1461027c57806323b872dd1461029a5780632f54bf6e146102ca57806330b0677e146102fa576101ee565b806306227683146101f25780630644e7571461021057806306fdde031461022e578063095ea7b31461024c575b5f80fd5b6101fa610636565b60405161020791906123b3565b60405180910390f35b61021861063f565b60405161022591906123b3565b60405180910390f35b610236610648565b604051610243919061243c565b60405180910390f35b610266600480360381019061026191906124e4565b6106d8565b604051610273919061253c565b60405180910390f35b6102846106ee565b60405161029191906123b3565b60405180910390f35b6102b460048036038101906102af9190612555565b6106f7565b6040516102c1919061253c565b60405180910390f35b6102e460048036038101906102df91906125a5565b6107a3565b6040516102f1919061253c565b60405180910390f35b610314600480360381019061030f91906125a5565b6107fb565b005b61031e610930565b60405161032b91906125eb565b60405180910390f35b61034e600480360381019061034991906124e4565b610945565b60405161035b919061253c565b60405180910390f35b61036c6109e5565b60405161037991906123b3565b60405180910390f35b61039c60048036038101906103979190612604565b6109ee565b005b6103a6610bf6565b6040516103b391906123b3565b60405180910390f35b6103c4610bff565b6040516103d19190612651565b60405180910390f35b6103e2610d2b565b6040516103ef91906126c5565b60405180910390f35b610412600480360381019061040d91906126de565b610d4f565b005b61041c610da1565b60405161042991906123b3565b60405180910390f35b61043a610daa565b604051610447919061253c565b60405180910390f35b61046a600480360381019061046591906125a5565b610dbf565b60405161047791906123b3565b60405180910390f35b610488610e04565b005b610492610ec5565b60405161049f919061243c565b60405180910390f35b6104c260048036038101906104bd91906124e4565b610f55565b6040516104cf919061253c565b60405180910390f35b6104e0610ff5565b6040516104ed9190612729565b60405180910390f35b610510600480360381019061050b91906124e4565b611019565b60405161051d919061253c565b60405180910390f35b61052e61102f565b60405161053b919061253c565b60405180910390f35b61055e60048036038101906105599190612604565b611045565b005b61057a600480360381019061057591906125a5565b611127565b604051610587919061253c565b60405180910390f35b6105aa60048036038101906105a59190612742565b611144565b6040516105b791906123b3565b60405180910390f35b6105c86111c6565b6040516105d591906123b3565b60405180910390f35b6105e66111cc565b6040516105f391906123b3565b60405180910390f35b6106046111d2565b604051610611919061253c565b60405180910390f35b610634600480360381019061062f91906127aa565b611227565b005b5f600e54905090565b5f600a54905090565b60606007805461065790612815565b80601f016020809104026020016040519081016040528092919081815260200182805461068390612815565b80156106ce5780601f106106a5576101008083540402835291602001916106ce565b820191905f5260205f20905b8154815290600101906020018083116106b157829003601f168201915b5050505050905090565b5f6106e43384846112a6565b6001905092915050565b5f600254905090565b5f610703848484611469565b61079884336107938560015f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cc390919063ffffffff16565b6112a6565b600190509392505050565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b610804336107a3565b610843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a906128b5565b60405180910390fd5b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f60095f9054906101000a900460ff16905090565b5f6109db33846109d68560015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d2090919063ffffffff16565b6112a6565b6001905092915050565b5f600f54905090565b6109f7336107a3565b610a36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2d906128b5565b60405180910390fd5b5f600190505f610a62610a47610930565b600a610a539190612a2f565b85611d7d90919063ffffffff16565b90505f610a8b610a70610930565b600a610a7c9190612a2f565b85611d7d90919063ffffffff16565b9050610aba6064610aac610a9d6106ee565b86611d7d90919063ffffffff16565b611df490919063ffffffff16565b821015610afc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af390612ae9565b60405180910390fd5b610b296064610b1b610b0c6106ee565b86611d7d90919063ffffffff16565b611df490919063ffffffff16565b811015610b6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6290612b77565b60405180910390fd5b610b736106ee565b8510610ba5577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600e81905550610bad565b81600e819055505b610bb56106ee565b8410610be7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600f81905550610bef565b80600f819055505b5050505050565b5f600d54905090565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e6a439057f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ca5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc99190612ba9565b306040518363ffffffff1660e01b8152600401610ce7929190612bd4565b602060405180830381865afa158015610d02573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d269190612ba9565b905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b610d58336107a3565b610d97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8e906128b5565b60405180910390fd5b80600d8190555050565b5f600b54905090565b5f60125f9054906101000a900460ff16905090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610e0d336107a3565b610e4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e43906128b5565b60405180910390fd5b5f60035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861635f604051610ebb9190612651565b60405180910390a1565b606060088054610ed490612815565b80601f0160208091040260200160405190810160405280929190818152602001828054610f0090612815565b8015610f4b5780601f10610f2257610100808354040283529160200191610f4b565b820191905f5260205f20905b815481529060010190602001808311610f2e57829003601f168201915b5050505050905090565b5f610feb3384610fe68560015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cc390919063ffffffff16565b6112a6565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f611025338484611469565b6001905092915050565b5f601260019054906101000a900460ff16905090565b61104e336107a3565b61108d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611084906128b5565b60405180910390fd5b60058211156110d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c890612c45565b60405180910390fd5b6005811115611115576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110c90612cad565b60405180910390fd5b81600a8190555080600b819055505050565b6011602052805f5260405f205f915054906101000a900460ff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600b5481565b600a5481565b5f806111dd30610dbf565b9050600d546112106111ed6106ee565b6112026103e885611d7d90919063ffffffff16565b611df490919063ffffffff16565b1061121f576001915050611224565b5f9150505b90565b611230336107a3565b61126f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611266906128b5565b60405180910390fd5b81601260016101000a81548160ff0219169083151502179055508060125f6101000a81548160ff0219169083151502179055505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611314576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130b90612d3b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611382576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137990612dc9565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161145c91906123b3565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ce90612e57565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611545576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153c90612ee5565b60405180910390fd5b5f8103611587576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157e90612f4d565b60405180910390fd5b601260019054906101000a900460ff16156119885760035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611646575060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561167e57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116b8575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116d05750600c5f9054906101000a900460ff16155b15611987578273ffffffffffffffffffffffffffffffffffffffff166116f4610bff565b73ffffffffffffffffffffffffffffffffffffffff1614801561175e575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561180557600f548111156117a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179f90612fdb565b60405180910390fd5b600e546117b483610dbf565b826117bf9190612ff9565b1115611800576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f790613076565b60405180910390fd5b611986565b8173ffffffffffffffffffffffffffffffffffffffff16611824610bff565b73ffffffffffffffffffffffffffffffffffffffff1614801561188e575060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156118dd57600f548111156118d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cf90613104565b60405180910390fd5b611985565b60115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661198457600e5461193783610dbf565b826119429190612ff9565b1115611983576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197a9061316c565b60405180910390fd5b5b5b5b5b5b6119906111d2565b80156119a7575060125f9054906101000a900460ff165b80156119bf5750600c5f9054906101000a900460ff16155b80156119fe57508273ffffffffffffffffffffffffffffffffffffffff166119e5610bff565b73ffffffffffffffffffffffffffffffffffffffff1614155b8015611a51575060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611aa4575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611ae5576001600c5f6101000a81548160ff021916908315150217905550611acb611e50565b5f600c5f6101000a81548160ff0219169083151502179055505b5f600c5f9054906101000a900460ff1615905060105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611b93575060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611b9c575f90505b5f8115611cb1578373ffffffffffffffffffffffffffffffffffffffff16611bc2610bff565b73ffffffffffffffffffffffffffffffffffffffff16148015611be657505f600b54115b15611c1a57611c136064611c05600b5486611d7d90919063ffffffff16565b611df490919063ffffffff16565b9050611c8e565b8473ffffffffffffffffffffffffffffffffffffffff16611c39610bff565b73ffffffffffffffffffffffffffffffffffffffff16148015611c5d57505f600a54115b15611c8d57611c8a6064611c7c600a5486611d7d90919063ffffffff16565b611df490919063ffffffff16565b90505b5b5f811115611ca257611ca1853083611ee3565b5b8083611cae919061318a565b92505b611cbc858585611ee3565b5050505050565b5f82821115611d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfe90613207565b60405180910390fd5b5f8284611d14919061318a565b90508091505092915050565b5f808284611d2e9190612ff9565b905083811015611d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6a9061326f565b60405180910390fd5b8091505092915050565b5f808303611d8d575f9050611dee565b5f8284611d9a919061328d565b9050828482611da991906132fb565b14611de9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de09061339b565b60405180910390fd5b809150505b92915050565b5f808211611e37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2e90613403565b60405180910390fd5b5f8284611e4491906132fb565b90508091505092915050565b5f611e816103e8611e73600d54611e656106ee565b611d7d90919063ffffffff16565b611df490919063ffffffff16565b90505f611e98600283611df490919063ffffffff16565b9050611ea381612147565b5f8183611eb0919061318a565b9050611ede3060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611ee3565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4890612e57565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb690612ee5565b60405180910390fd5b61200e815f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cc390919063ffffffff16565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061209d815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d2090919063ffffffff16565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161213a91906123b3565b60405180910390a3505050565b5f600267ffffffffffffffff81111561216357612162613421565b5b6040519080825280602002602001820160405280156121915781602001602082028036833780820191505090505b50905030815f815181106121a8576121a761344e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561224b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061226f9190612ba9565b816001815181106122835761228261344e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122e8307f0000000000000000000000000000000000000000000000000000000000000000846112a6565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161236a95949392919061356b565b5f604051808303815f87803b158015612381575f80fd5b505af1158015612393573d5f803e3d5ffd5b505050505050565b5f819050919050565b6123ad8161239b565b82525050565b5f6020820190506123c65f8301846123a4565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61240e826123cc565b61241881856123d6565b93506124288185602086016123e6565b612431816123f4565b840191505092915050565b5f6020820190508181035f8301526124548184612404565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61248982612460565b9050919050565b6124998161247f565b81146124a3575f80fd5b50565b5f813590506124b481612490565b92915050565b6124c38161239b565b81146124cd575f80fd5b50565b5f813590506124de816124ba565b92915050565b5f80604083850312156124fa576124f961245c565b5b5f612507858286016124a6565b9250506020612518858286016124d0565b9150509250929050565b5f8115159050919050565b61253681612522565b82525050565b5f60208201905061254f5f83018461252d565b92915050565b5f805f6060848603121561256c5761256b61245c565b5b5f612579868287016124a6565b935050602061258a868287016124a6565b925050604061259b868287016124d0565b9150509250925092565b5f602082840312156125ba576125b961245c565b5b5f6125c7848285016124a6565b91505092915050565b5f60ff82169050919050565b6125e5816125d0565b82525050565b5f6020820190506125fe5f8301846125dc565b92915050565b5f806040838503121561261a5761261961245c565b5b5f612627858286016124d0565b9250506020612638858286016124d0565b9150509250929050565b61264b8161247f565b82525050565b5f6020820190506126645f830184612642565b92915050565b5f819050919050565b5f61268d61268861268384612460565b61266a565b612460565b9050919050565b5f61269e82612673565b9050919050565b5f6126af82612694565b9050919050565b6126bf816126a5565b82525050565b5f6020820190506126d85f8301846126b6565b92915050565b5f602082840312156126f3576126f261245c565b5b5f612700848285016124d0565b91505092915050565b5f61271382612694565b9050919050565b61272381612709565b82525050565b5f60208201905061273c5f83018461271a565b92915050565b5f80604083850312156127585761275761245c565b5b5f612765858286016124a6565b9250506020612776858286016124a6565b9150509250929050565b61278981612522565b8114612793575f80fd5b50565b5f813590506127a481612780565b92915050565b5f80604083850312156127c0576127bf61245c565b5b5f6127cd85828601612796565b92505060206127de85828601612796565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061282c57607f821691505b60208210810361283f5761283e6127e8565b5b50919050565b7f4f6e6c79206f776e65722063616e20657865637574652074686520666f6c6c6f5f8201527f77696e6700000000000000000000000000000000000000000000000000000000602082015250565b5f61289f6024836123d6565b91506128aa82612845565b604082019050919050565b5f6020820190508181035f8301526128cc81612893565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561295557808604811115612931576129306128d3565b5b60018516156129405780820291505b808102905061294e85612900565b9450612915565b94509492505050565b5f8261296d5760019050612a28565b8161297a575f9050612a28565b8160018114612990576002811461299a576129c9565b6001915050612a28565b60ff8411156129ac576129ab6128d3565b5b8360020a9150848211156129c3576129c26128d3565b5b50612a28565b5060208310610133831016604e8410600b84101617156129fe5782820a9050838111156129f9576129f86128d3565b5b612a28565b612a0b848484600161290c565b92509050818404811115612a2257612a216128d3565b5b81810290505b9392505050565b5f612a398261239b565b9150612a44836125d0565b9250612a717fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461295e565b905092915050565b7f57616c6c65742073697a652063616e6e6f74206265206c6f776572207468616e5f8201527f2031250000000000000000000000000000000000000000000000000000000000602082015250565b5f612ad36023836123d6565b9150612ade82612a79565b604082019050919050565b5f6020820190508181035f830152612b0081612ac7565b9050919050565b7f4d617820747820616d6f756e742063616e6e6f74206265206c6f7765722074685f8201527f616e203125000000000000000000000000000000000000000000000000000000602082015250565b5f612b616025836123d6565b9150612b6c82612b07565b604082019050919050565b5f6020820190508181035f830152612b8e81612b55565b9050919050565b5f81519050612ba381612490565b92915050565b5f60208284031215612bbe57612bbd61245c565b5b5f612bcb84828501612b95565b91505092915050565b5f604082019050612be75f830185612642565b612bf46020830184612642565b9392505050565b7f42757920666565732063616e6e6f7420657863656564203525000000000000005f82015250565b5f612c2f6019836123d6565b9150612c3a82612bfb565b602082019050919050565b5f6020820190508181035f830152612c5c81612c23565b9050919050565b7f53656c6c20666565732063616e6e6f74206578636565642035250000000000005f82015250565b5f612c97601a836123d6565b9150612ca282612c63565b602082019050919050565b5f6020820190508181035f830152612cc481612c8b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612d256024836123d6565b9150612d3082612ccb565b604082019050919050565b5f6020820190508181035f830152612d5281612d19565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612db36022836123d6565b9150612dbe82612d59565b604082019050919050565b5f6020820190508181035f830152612de081612da7565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612e416025836123d6565b9150612e4c82612de7565b604082019050919050565b5f6020820190508181035f830152612e6e81612e35565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612ecf6023836123d6565b9150612eda82612e75565b604082019050919050565b5f6020820190508181035f830152612efc81612ec3565b9050919050565b7f45524332303a20616d6f756e7420657175616c73207a65726f000000000000005f82015250565b5f612f376019836123d6565b9150612f4282612f03565b602082019050919050565b5f6020820190508181035f830152612f6481612f2b565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473206d6178205f8201527f7472616e73616374696f6e20616d6f756e742e00000000000000000000000000602082015250565b5f612fc56033836123d6565b9150612fd082612f6b565b604082019050919050565b5f6020820190508181035f830152612ff281612fb9565b9050919050565b5f6130038261239b565b915061300e8361239b565b9250828201905080821115613026576130256128d3565b5b92915050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6130606013836123d6565b915061306b8261302c565b602082019050919050565b5f6020820190508181035f83015261308d81613054565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d6178207472616e73616374696f6e20616d6f756e742e0000000000000000602082015250565b5f6130ee6038836123d6565b91506130f982613094565b604082019050919050565b5f6020820190508181035f83015261311b816130e2565b9050919050565b7f4d61782077616c6c6574206861732065786365656465640000000000000000005f82015250565b5f6131566017836123d6565b915061316182613122565b602082019050919050565b5f6020820190508181035f8301526131838161314a565b9050919050565b5f6131948261239b565b915061319f8361239b565b92508282039050818111156131b7576131b66128d3565b5b92915050565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f7700005f82015250565b5f6131f1601e836123d6565b91506131fc826131bd565b602082019050919050565b5f6020820190508181035f83015261321e816131e5565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613259601b836123d6565b915061326482613225565b602082019050919050565b5f6020820190508181035f8301526132868161324d565b9050919050565b5f6132978261239b565b91506132a28361239b565b92508282026132b08161239b565b915082820484148315176132c7576132c66128d3565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6133058261239b565b91506133108361239b565b9250826133205761331f6132ce565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133856021836123d6565b91506133908261332b565b604082019050919050565b5f6020820190508181035f8301526133b281613379565b9050919050565b7f536166654d6174683a206469766973696f6e206279207a65726f0000000000005f82015250565b5f6133ed601a836123d6565b91506133f8826133b9565b602082019050919050565b5f6020820190508181035f83015261341a816133e1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f61349e6134996134948461347b565b61266a565b61239b565b9050919050565b6134ae81613484565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6134e68161247f565b82525050565b5f6134f783836134dd565b60208301905092915050565b5f602082019050919050565b5f613519826134b4565b61352381856134be565b935061352e836134ce565b805f5b8381101561355e57815161354588826134ec565b975061355083613503565b925050600181019050613531565b5085935050505092915050565b5f60a08201905061357e5f8301886123a4565b61358b60208301876134a5565b818103604083015261359d818661350f565b90506135ac6060830185612642565b6135b960808301846123a4565b969550505050505056fea2646970667358221220b0ddb387bef590c17822362bcea82bcac7292c577ff545addefdb2a6a314e0b264736f6c6343000819003300000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000004ed92ed09e8615ccaa0d83f740c5778c9dc0794d000000000000000000000000c2f13453f293cb44ecd7b41023814890432c20bb0000000000000000000000000000000000000000000000000000000000000005416d616d690000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005416d616d69000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561000f575f80fd5b50600436106101ee575f3560e01c8063685fc5681161010d578063ac8f401c116100a0578063e0f3ccf51161006f578063e0f3ccf5146105c0578063e4748b9e146105de578063fb9c8c3b146105fc578063fdcee0ca1461061a576101ee565b8063ac8f401c14610526578063b482410014610544578063c5f1a71614610560578063dd62ed3e14610590576101ee565b806395d89b41116100dc57806395d89b411461048a578063a457c2d7146104a8578063a7c6402c146104d8578063a9059cbb146104f6576101ee565b8063685fc568146104145780636c0f8bf51461043257806370a0823114610450578063715018a614610480576101ee565b8063313ce567116101855780634714492311610154578063471449231461039e57806357c75d5c146103bc57806359d0f713146103da57806367301b5d146103f8576101ee565b8063313ce5671461031657806339509351146103345780633ef125181461036457806341ff604a14610382576101ee565b806318160ddd116101c157806318160ddd1461027c57806323b872dd1461029a5780632f54bf6e146102ca57806330b0677e146102fa576101ee565b806306227683146101f25780630644e7571461021057806306fdde031461022e578063095ea7b31461024c575b5f80fd5b6101fa610636565b60405161020791906123b3565b60405180910390f35b61021861063f565b60405161022591906123b3565b60405180910390f35b610236610648565b604051610243919061243c565b60405180910390f35b610266600480360381019061026191906124e4565b6106d8565b604051610273919061253c565b60405180910390f35b6102846106ee565b60405161029191906123b3565b60405180910390f35b6102b460048036038101906102af9190612555565b6106f7565b6040516102c1919061253c565b60405180910390f35b6102e460048036038101906102df91906125a5565b6107a3565b6040516102f1919061253c565b60405180910390f35b610314600480360381019061030f91906125a5565b6107fb565b005b61031e610930565b60405161032b91906125eb565b60405180910390f35b61034e600480360381019061034991906124e4565b610945565b60405161035b919061253c565b60405180910390f35b61036c6109e5565b60405161037991906123b3565b60405180910390f35b61039c60048036038101906103979190612604565b6109ee565b005b6103a6610bf6565b6040516103b391906123b3565b60405180910390f35b6103c4610bff565b6040516103d19190612651565b60405180910390f35b6103e2610d2b565b6040516103ef91906126c5565b60405180910390f35b610412600480360381019061040d91906126de565b610d4f565b005b61041c610da1565b60405161042991906123b3565b60405180910390f35b61043a610daa565b604051610447919061253c565b60405180910390f35b61046a600480360381019061046591906125a5565b610dbf565b60405161047791906123b3565b60405180910390f35b610488610e04565b005b610492610ec5565b60405161049f919061243c565b60405180910390f35b6104c260048036038101906104bd91906124e4565b610f55565b6040516104cf919061253c565b60405180910390f35b6104e0610ff5565b6040516104ed9190612729565b60405180910390f35b610510600480360381019061050b91906124e4565b611019565b60405161051d919061253c565b60405180910390f35b61052e61102f565b60405161053b919061253c565b60405180910390f35b61055e60048036038101906105599190612604565b611045565b005b61057a600480360381019061057591906125a5565b611127565b604051610587919061253c565b60405180910390f35b6105aa60048036038101906105a59190612742565b611144565b6040516105b791906123b3565b60405180910390f35b6105c86111c6565b6040516105d591906123b3565b60405180910390f35b6105e66111cc565b6040516105f391906123b3565b60405180910390f35b6106046111d2565b604051610611919061253c565b60405180910390f35b610634600480360381019061062f91906127aa565b611227565b005b5f600e54905090565b5f600a54905090565b60606007805461065790612815565b80601f016020809104026020016040519081016040528092919081815260200182805461068390612815565b80156106ce5780601f106106a5576101008083540402835291602001916106ce565b820191905f5260205f20905b8154815290600101906020018083116106b157829003601f168201915b5050505050905090565b5f6106e43384846112a6565b6001905092915050565b5f600254905090565b5f610703848484611469565b61079884336107938560015f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cc390919063ffffffff16565b6112a6565b600190509392505050565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b610804336107a3565b610843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a906128b5565b60405180910390fd5b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f60095f9054906101000a900460ff16905090565b5f6109db33846109d68560015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d2090919063ffffffff16565b6112a6565b6001905092915050565b5f600f54905090565b6109f7336107a3565b610a36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2d906128b5565b60405180910390fd5b5f600190505f610a62610a47610930565b600a610a539190612a2f565b85611d7d90919063ffffffff16565b90505f610a8b610a70610930565b600a610a7c9190612a2f565b85611d7d90919063ffffffff16565b9050610aba6064610aac610a9d6106ee565b86611d7d90919063ffffffff16565b611df490919063ffffffff16565b821015610afc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af390612ae9565b60405180910390fd5b610b296064610b1b610b0c6106ee565b86611d7d90919063ffffffff16565b611df490919063ffffffff16565b811015610b6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6290612b77565b60405180910390fd5b610b736106ee565b8510610ba5577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600e81905550610bad565b81600e819055505b610bb56106ee565b8410610be7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600f81905550610bef565b80600f819055505b5050505050565b5f600d54905090565b5f7f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73ffffffffffffffffffffffffffffffffffffffff1663e6a439057f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ca5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc99190612ba9565b306040518363ffffffff1660e01b8152600401610ce7929190612bd4565b602060405180830381865afa158015610d02573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d269190612ba9565b905090565b7f0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f81565b610d58336107a3565b610d97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8e906128b5565b60405180910390fd5b80600d8190555050565b5f600b54905090565b5f60125f9054906101000a900460ff16905090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610e0d336107a3565b610e4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e43906128b5565b60405180910390fd5b5f60035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861635f604051610ebb9190612651565b60405180910390a1565b606060088054610ed490612815565b80601f0160208091040260200160405190810160405280929190818152602001828054610f0090612815565b8015610f4b5780601f10610f2257610100808354040283529160200191610f4b565b820191905f5260205f20905b815481529060010190602001808311610f2e57829003601f168201915b5050505050905090565b5f610feb3384610fe68560015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cc390919063ffffffff16565b6112a6565b6001905092915050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f611025338484611469565b6001905092915050565b5f601260019054906101000a900460ff16905090565b61104e336107a3565b61108d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611084906128b5565b60405180910390fd5b60058211156110d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c890612c45565b60405180910390fd5b6005811115611115576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110c90612cad565b60405180910390fd5b81600a8190555080600b819055505050565b6011602052805f5260405f205f915054906101000a900460ff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600b5481565b600a5481565b5f806111dd30610dbf565b9050600d546112106111ed6106ee565b6112026103e885611d7d90919063ffffffff16565b611df490919063ffffffff16565b1061121f576001915050611224565b5f9150505b90565b611230336107a3565b61126f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611266906128b5565b60405180910390fd5b81601260016101000a81548160ff0219169083151502179055508060125f6101000a81548160ff0219169083151502179055505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611314576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130b90612d3b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611382576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137990612dc9565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161145c91906123b3565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ce90612e57565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611545576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153c90612ee5565b60405180910390fd5b5f8103611587576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157e90612f4d565b60405180910390fd5b601260019054906101000a900460ff16156119885760035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611646575060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561167e57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116b8575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116d05750600c5f9054906101000a900460ff16155b15611987578273ffffffffffffffffffffffffffffffffffffffff166116f4610bff565b73ffffffffffffffffffffffffffffffffffffffff1614801561175e575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561180557600f548111156117a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179f90612fdb565b60405180910390fd5b600e546117b483610dbf565b826117bf9190612ff9565b1115611800576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f790613076565b60405180910390fd5b611986565b8173ffffffffffffffffffffffffffffffffffffffff16611824610bff565b73ffffffffffffffffffffffffffffffffffffffff1614801561188e575060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156118dd57600f548111156118d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cf90613104565b60405180910390fd5b611985565b60115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661198457600e5461193783610dbf565b826119429190612ff9565b1115611983576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197a9061316c565b60405180910390fd5b5b5b5b5b5b6119906111d2565b80156119a7575060125f9054906101000a900460ff165b80156119bf5750600c5f9054906101000a900460ff16155b80156119fe57508273ffffffffffffffffffffffffffffffffffffffff166119e5610bff565b73ffffffffffffffffffffffffffffffffffffffff1614155b8015611a51575060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611aa4575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611ae5576001600c5f6101000a81548160ff021916908315150217905550611acb611e50565b5f600c5f6101000a81548160ff0219169083151502179055505b5f600c5f9054906101000a900460ff1615905060105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611b93575060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611b9c575f90505b5f8115611cb1578373ffffffffffffffffffffffffffffffffffffffff16611bc2610bff565b73ffffffffffffffffffffffffffffffffffffffff16148015611be657505f600b54115b15611c1a57611c136064611c05600b5486611d7d90919063ffffffff16565b611df490919063ffffffff16565b9050611c8e565b8473ffffffffffffffffffffffffffffffffffffffff16611c39610bff565b73ffffffffffffffffffffffffffffffffffffffff16148015611c5d57505f600a54115b15611c8d57611c8a6064611c7c600a5486611d7d90919063ffffffff16565b611df490919063ffffffff16565b90505b5b5f811115611ca257611ca1853083611ee3565b5b8083611cae919061318a565b92505b611cbc858585611ee3565b5050505050565b5f82821115611d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfe90613207565b60405180910390fd5b5f8284611d14919061318a565b90508091505092915050565b5f808284611d2e9190612ff9565b905083811015611d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6a9061326f565b60405180910390fd5b8091505092915050565b5f808303611d8d575f9050611dee565b5f8284611d9a919061328d565b9050828482611da991906132fb565b14611de9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de09061339b565b60405180910390fd5b809150505b92915050565b5f808211611e37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2e90613403565b60405180910390fd5b5f8284611e4491906132fb565b90508091505092915050565b5f611e816103e8611e73600d54611e656106ee565b611d7d90919063ffffffff16565b611df490919063ffffffff16565b90505f611e98600283611df490919063ffffffff16565b9050611ea381612147565b5f8183611eb0919061318a565b9050611ede3060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611ee3565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4890612e57565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb690612ee5565b60405180910390fd5b61200e815f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cc390919063ffffffff16565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061209d815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d2090919063ffffffff16565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161213a91906123b3565b60405180910390a3505050565b5f600267ffffffffffffffff81111561216357612162613421565b5b6040519080825280602002602001820160405280156121915781602001602082028036833780820191505090505b50905030815f815181106121a8576121a761344e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561224b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061226f9190612ba9565b816001815181106122835761228261344e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122e8307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846112a6565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161236a95949392919061356b565b5f604051808303815f87803b158015612381575f80fd5b505af1158015612393573d5f803e3d5ffd5b505050505050565b5f819050919050565b6123ad8161239b565b82525050565b5f6020820190506123c65f8301846123a4565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61240e826123cc565b61241881856123d6565b93506124288185602086016123e6565b612431816123f4565b840191505092915050565b5f6020820190508181035f8301526124548184612404565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61248982612460565b9050919050565b6124998161247f565b81146124a3575f80fd5b50565b5f813590506124b481612490565b92915050565b6124c38161239b565b81146124cd575f80fd5b50565b5f813590506124de816124ba565b92915050565b5f80604083850312156124fa576124f961245c565b5b5f612507858286016124a6565b9250506020612518858286016124d0565b9150509250929050565b5f8115159050919050565b61253681612522565b82525050565b5f60208201905061254f5f83018461252d565b92915050565b5f805f6060848603121561256c5761256b61245c565b5b5f612579868287016124a6565b935050602061258a868287016124a6565b925050604061259b868287016124d0565b9150509250925092565b5f602082840312156125ba576125b961245c565b5b5f6125c7848285016124a6565b91505092915050565b5f60ff82169050919050565b6125e5816125d0565b82525050565b5f6020820190506125fe5f8301846125dc565b92915050565b5f806040838503121561261a5761261961245c565b5b5f612627858286016124d0565b9250506020612638858286016124d0565b9150509250929050565b61264b8161247f565b82525050565b5f6020820190506126645f830184612642565b92915050565b5f819050919050565b5f61268d61268861268384612460565b61266a565b612460565b9050919050565b5f61269e82612673565b9050919050565b5f6126af82612694565b9050919050565b6126bf816126a5565b82525050565b5f6020820190506126d85f8301846126b6565b92915050565b5f602082840312156126f3576126f261245c565b5b5f612700848285016124d0565b91505092915050565b5f61271382612694565b9050919050565b61272381612709565b82525050565b5f60208201905061273c5f83018461271a565b92915050565b5f80604083850312156127585761275761245c565b5b5f612765858286016124a6565b9250506020612776858286016124a6565b9150509250929050565b61278981612522565b8114612793575f80fd5b50565b5f813590506127a481612780565b92915050565b5f80604083850312156127c0576127bf61245c565b5b5f6127cd85828601612796565b92505060206127de85828601612796565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061282c57607f821691505b60208210810361283f5761283e6127e8565b5b50919050565b7f4f6e6c79206f776e65722063616e20657865637574652074686520666f6c6c6f5f8201527f77696e6700000000000000000000000000000000000000000000000000000000602082015250565b5f61289f6024836123d6565b91506128aa82612845565b604082019050919050565b5f6020820190508181035f8301526128cc81612893565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561295557808604811115612931576129306128d3565b5b60018516156129405780820291505b808102905061294e85612900565b9450612915565b94509492505050565b5f8261296d5760019050612a28565b8161297a575f9050612a28565b8160018114612990576002811461299a576129c9565b6001915050612a28565b60ff8411156129ac576129ab6128d3565b5b8360020a9150848211156129c3576129c26128d3565b5b50612a28565b5060208310610133831016604e8410600b84101617156129fe5782820a9050838111156129f9576129f86128d3565b5b612a28565b612a0b848484600161290c565b92509050818404811115612a2257612a216128d3565b5b81810290505b9392505050565b5f612a398261239b565b9150612a44836125d0565b9250612a717fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461295e565b905092915050565b7f57616c6c65742073697a652063616e6e6f74206265206c6f776572207468616e5f8201527f2031250000000000000000000000000000000000000000000000000000000000602082015250565b5f612ad36023836123d6565b9150612ade82612a79565b604082019050919050565b5f6020820190508181035f830152612b0081612ac7565b9050919050565b7f4d617820747820616d6f756e742063616e6e6f74206265206c6f7765722074685f8201527f616e203125000000000000000000000000000000000000000000000000000000602082015250565b5f612b616025836123d6565b9150612b6c82612b07565b604082019050919050565b5f6020820190508181035f830152612b8e81612b55565b9050919050565b5f81519050612ba381612490565b92915050565b5f60208284031215612bbe57612bbd61245c565b5b5f612bcb84828501612b95565b91505092915050565b5f604082019050612be75f830185612642565b612bf46020830184612642565b9392505050565b7f42757920666565732063616e6e6f7420657863656564203525000000000000005f82015250565b5f612c2f6019836123d6565b9150612c3a82612bfb565b602082019050919050565b5f6020820190508181035f830152612c5c81612c23565b9050919050565b7f53656c6c20666565732063616e6e6f74206578636565642035250000000000005f82015250565b5f612c97601a836123d6565b9150612ca282612c63565b602082019050919050565b5f6020820190508181035f830152612cc481612c8b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612d256024836123d6565b9150612d3082612ccb565b604082019050919050565b5f6020820190508181035f830152612d5281612d19565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612db36022836123d6565b9150612dbe82612d59565b604082019050919050565b5f6020820190508181035f830152612de081612da7565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612e416025836123d6565b9150612e4c82612de7565b604082019050919050565b5f6020820190508181035f830152612e6e81612e35565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612ecf6023836123d6565b9150612eda82612e75565b604082019050919050565b5f6020820190508181035f830152612efc81612ec3565b9050919050565b7f45524332303a20616d6f756e7420657175616c73207a65726f000000000000005f82015250565b5f612f376019836123d6565b9150612f4282612f03565b602082019050919050565b5f6020820190508181035f830152612f6481612f2b565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473206d6178205f8201527f7472616e73616374696f6e20616d6f756e742e00000000000000000000000000602082015250565b5f612fc56033836123d6565b9150612fd082612f6b565b604082019050919050565b5f6020820190508181035f830152612ff281612fb9565b9050919050565b5f6130038261239b565b915061300e8361239b565b9250828201905080821115613026576130256128d3565b5b92915050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6130606013836123d6565b915061306b8261302c565b602082019050919050565b5f6020820190508181035f83015261308d81613054565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d6178207472616e73616374696f6e20616d6f756e742e0000000000000000602082015250565b5f6130ee6038836123d6565b91506130f982613094565b604082019050919050565b5f6020820190508181035f83015261311b816130e2565b9050919050565b7f4d61782077616c6c6574206861732065786365656465640000000000000000005f82015250565b5f6131566017836123d6565b915061316182613122565b602082019050919050565b5f6020820190508181035f8301526131838161314a565b9050919050565b5f6131948261239b565b915061319f8361239b565b92508282039050818111156131b7576131b66128d3565b5b92915050565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f7700005f82015250565b5f6131f1601e836123d6565b91506131fc826131bd565b602082019050919050565b5f6020820190508181035f83015261321e816131e5565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613259601b836123d6565b915061326482613225565b602082019050919050565b5f6020820190508181035f8301526132868161324d565b9050919050565b5f6132978261239b565b91506132a28361239b565b92508282026132b08161239b565b915082820484148315176132c7576132c66128d3565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6133058261239b565b91506133108361239b565b9250826133205761331f6132ce565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133856021836123d6565b91506133908261332b565b604082019050919050565b5f6020820190508181035f8301526133b281613379565b9050919050565b7f536166654d6174683a206469766973696f6e206279207a65726f0000000000005f82015250565b5f6133ed601a836123d6565b91506133f8826133b9565b602082019050919050565b5f6020820190508181035f83015261341a816133e1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f61349e6134996134948461347b565b61266a565b61239b565b9050919050565b6134ae81613484565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6134e68161247f565b82525050565b5f6134f783836134dd565b60208301905092915050565b5f602082019050919050565b5f613519826134b4565b61352381856134be565b935061352e836134ce565b805f5b8381101561355e57815161354588826134ec565b975061355083613503565b925050600181019050613531565b5085935050505092915050565b5f60a08201905061357e5f8301886123a4565b61358b60208301876134a5565b818103604083015261359d818661350f565b90506135ac6060830185612642565b6135b960808301846123a4565b969550505050505056fea2646970667358221220b0ddb387bef590c17822362bcea82bcac7292c577ff545addefdb2a6a314e0b264736f6c63430008190033

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

00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000004ed92ed09e8615ccaa0d83f740c5778c9dc0794d000000000000000000000000c2f13453f293cb44ecd7b41023814890432c20bb0000000000000000000000000000000000000000000000000000000000000005416d616d690000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005416d616d69000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : __name (string): Amami
Arg [1] : __symbol (string): Amami
Arg [2] : __decimals (uint8): 18
Arg [3] : __totalSupply (uint256): 1000000000
Arg [4] : _collector (address): 0x4eD92eD09e8615cCaa0d83F740c5778C9DC0794D
Arg [5] : _devAddress (address): 0xC2f13453F293cB44EcD7b41023814890432c20bB

-----Encoded View---------------
10 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 000000000000000000000000000000000000000000000000000000003b9aca00
Arg [4] : 0000000000000000000000004ed92ed09e8615ccaa0d83f740c5778c9dc0794d
Arg [5] : 000000000000000000000000c2f13453f293cb44ecd7b41023814890432c20bb
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [7] : 416d616d69000000000000000000000000000000000000000000000000000000
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [9] : 416d616d69000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

5518:8322:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10184:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9883:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7411:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3101:148;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2566:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3258:256;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;326:103;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8705:268;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7599:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3523:206;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10290:111;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8982:892;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10074:101;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7865:150;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5716:115;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8024:130;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9977:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10514:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2666:110;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;438:131;;;:::i;:::-;;7503:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3738:216;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5591:118;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7691:165;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10410:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8163:339;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6284:64;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2958:134;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6049:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6016:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11114:265;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8511:185;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10184:97;10233:7;10258:13;;10251:20;;10184:97;:::o;9883:85::-;9926:7;9951;;9944:14;;9883:85;:::o;7411:83::-;7448:13;7481:5;7474:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7411:83;:::o;3101:148::-;3166:4;3183:36;3192:10;3204:7;3213:5;3183:8;:36::i;:::-;3237:4;3230:11;;3101:148;;;;:::o;2566:91::-;2610:7;2637:12;;2630:19;;2566:91;:::o;3258:256::-;3347:4;3364:36;3374:6;3382:9;3393:6;3364:9;:36::i;:::-;3411:73;3420:6;3428:10;3440:43;3476:6;3440:11;:19;3452:6;3440:19;;;;;;;;;;;;;;;:31;3460:10;3440:31;;;;;;;;;;;;;;;;:35;;:43;;;;:::i;:::-;3411:8;:73::i;:::-;3502:4;3495:11;;3258:256;;;;;:::o;326:103::-;381:4;416:5;;;;;;;;;;;405:16;;:7;:16;;;398:23;;326:103;;;:::o;8705:268::-;237:19;245:10;237:7;:19::i;:::-;229:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8813:21:::1;8792:18;;:42;;;;;;;;;;;;;;;;;;8903:4;8845:32;:55;8878:21;8845:55;;;;;;;;;;;;;;;;:62;;;;;;;;;;;;;;;;;;8961:4;8918:17;:40;8936:21;8918:40;;;;;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;8705:268:::0;:::o;7599:83::-;7640:5;7665:9;;;;;;;;;;;7658:16;;7599:83;:::o;3523:206::-;3603:4;3620:79;3629:10;3641:7;3650:48;3687:10;3650:11;:23;3662:10;3650:23;;;;;;;;;;;;;;;:32;3674:7;3650:32;;;;;;;;;;;;;;;;:36;;:48;;;;:::i;:::-;3620:8;:79::i;:::-;3717:4;3710:11;;3523:206;;;;:::o;10290:111::-;10346:7;10371:20;;10364:27;;10290:111;:::o;8982:892::-;237:19;245:10;237:7;:19::i;:::-;229:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9084:21:::1;9108:1;9084:25;;9120:23;9146:36;9171:10;:8;:10::i;:::-;9165:2;:16;;;;:::i;:::-;9146:14;:18;;:36;;;;:::i;:::-;9120:62;;9193:24;9220:37;9246:10;:8;:10::i;:::-;9240:2;:16;;;;:::i;:::-;9220:15;:19;;:37;;;;:::i;:::-;9193:64;;9298:41;9335:3;9298:32;9316:13;:11;:13::i;:::-;9298;:17;;:32;;;;:::i;:::-;:36;;:41;;;;:::i;:::-;9279:15;:60;;9271:108;;;;;;;;;;;;:::i;:::-;;;;;;;;;9418:41;9455:3;9418:32;9436:13;:11;:13::i;:::-;9418;:17;;:32;;;;:::i;:::-;:36;;:41;;;;:::i;:::-;9398:16;:61;;9390:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;9537:13;:11;:13::i;:::-;9519:14;:31;9515:161;;9583:17;9567:13;:33;;;;9515:161;;;9649:15;9633:13;:31;;;;9515:161;9713:13;:11;:13::i;:::-;9694:15;:32;9690:177;;9766:17;9743:20;:40;;;;9690:177;;;9839:16;9816:20;:39;;;;9690:177;9073:801;;;8982:892:::0;;:::o;10074:101::-;10125:7;10150:15;;10143:22;;10074:101;:::o;7865:150::-;7916:7;7942:16;:24;;;7967:17;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8001:4;7942:65;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7935:72;;7865:150;:::o;5716:115::-;;;:::o;8024:130::-;237:19;245:10;237:7;:19::i;:::-;229:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8127:19:::1;8109:15;:37;;;;8024:130:::0;:::o;9977:87::-;10021:7;10046:8;;10039:15;;9977:87;:::o;10514:100::-;10565:4;10587:17;;;;;;;;;;;10580:24;;10514:100;:::o;2666:110::-;2723:7;2750:9;:18;2760:7;2750:18;;;;;;;;;;;;;;;;2743:25;;2666:110;;;:::o;438:131::-;237:19;245:10;237:7;:19::i;:::-;229:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;511:1:::1;495:5;;:18;;;;;;;;;;;;;;;;;;529:32;558:1;529:32;;;;;;:::i;:::-;;;;;;;;438:131::o:0;7503:87::-;7542:13;7575:7;7568:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7503:87;:::o;3738:216::-;3823:4;3840:84;3849:10;3861:7;3870:53;3907:15;3870:11;:23;3882:10;3870:23;;;;;;;;;;;;;;;:32;3894:7;3870:32;;;;;;;;;;;;;;;;:36;;:53;;;;:::i;:::-;3840:8;:84::i;:::-;3942:4;3935:11;;3738:216;;;;:::o;5591:118::-;;;:::o;7691:165::-;7769:4;7786:40;7796:10;7808:9;7819:6;7786:9;:40::i;:::-;7844:4;7837:11;;7691:165;;;;:::o;10410:95::-;10459:4;10481:14;;;;;;;;;;;10474:21;;10410:95;:::o;8163:339::-;237:19;245:10;237:7;:19::i;:::-;229:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8306:1:::1;8283:19;:24;;8275:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;8380:1;8356:20;:25;;8348:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8433:19;8423:7;:29;;;;8474:20;8463:8;:31;;;;8163:339:::0;;:::o;6284:64::-;;;;;;;;;;;;;;;;;;;;;;:::o;2958:134::-;3030:7;3057:11;:18;3069:5;3057:18;;;;;;;;;;;;;;;:27;3076:7;3057:27;;;;;;;;;;;;;;;;3050:34;;2958:134;;;;:::o;6049:27::-;;;;:::o;6016:26::-;;;;:::o;11114:265::-;11158:4;11175:15;11193:24;11211:4;11193:9;:24::i;:::-;11175:42;;11272:15;;11232:36;11254:13;:11;:13::i;:::-;11232:17;11244:4;11232:7;:11;;:17;;;;:::i;:::-;:21;;:36;;;;:::i;:::-;:55;11228:144;;11311:4;11304:11;;;;;11228:144;11355:5;11348:12;;;11114:265;;:::o;8511:185::-;237:19;245:10;237:7;:19::i;:::-;229:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8624:15:::1;8607:14;;:32;;;;;;;;;;;;;;;;;;8670:18;8650:17;;:38;;;;;;;;;;;;;;;;;;8511:185:::0;;:::o;4728:336::-;4838:1;4821:19;;:5;:19;;;4813:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4919:1;4900:21;;:7;:21;;;4892:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5004:5;4974:11;:18;4986:5;4974:18;;;;;;;;;;;;;;;:27;4993:7;4974:27;;;;;;;;;;;;;;;:35;;;;5041:7;5025:31;;5034:5;5025:31;;;5050:5;5025:31;;;;;;:::i;:::-;;;;;;;;4728:336;;;:::o;11708:2129::-;11856:1;11840:18;;:4;:18;;;11832:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11933:1;11919:16;;:2;:16;;;11911:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12004:1;11994:6;:11;11986:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;12053:14;;;;;;;;;;;12049:870;;;12096:5;;;;;;;;;;;12088:13;;:4;:13;;;;:28;;;;;12111:5;;;;;;;;;;;12105:11;;:2;:11;;;;12088:28;:48;;;;;12134:1;12120:16;;:2;:16;;;;12088:48;:73;;;;;12154:6;12140:21;;:2;:21;;;;12088:73;:88;;;;;12166:10;;;;;;;;;;;12165:11;12088:88;12084:824;;;12225:4;12201:28;;:20;:18;:20::i;:::-;:28;;;:69;;;;;12234:32;:36;12267:2;12234:36;;;;;;;;;;;;;;;;;;;;;;;;;12233:37;12201:69;12197:696;;;12313:20;;12303:6;:30;;12295:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;12446:13;;12429;12439:2;12429:9;:13::i;:::-;12420:6;:22;;;;:::i;:::-;:39;;12412:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12197:696;;;12538:2;12514:26;;:20;:18;:20::i;:::-;:26;;;:69;;;;;12545:32;:38;12578:4;12545:38;;;;;;;;;;;;;;;;;;;;;;;;;12544:39;12514:69;12510:383;;;12626:20;;12616:6;:30;;12608:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;12510:383;;;12737:32;:36;12770:2;12737:36;;;;;;;;;;;;;;;;;;;;;;;;;12732:161;;12832:13;;12815;12825:2;12815:9;:13::i;:::-;12806:6;:22;;;;:::i;:::-;:39;;12798:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;12732:161;12510:383;12197:696;12084:824;12049:870;12936:13;:11;:13::i;:::-;:34;;;;;12953:17;;;;;;;;;;;12936:34;:49;;;;;12975:10;;;;;;;;;;;12974:11;12936:49;:81;;;;;13013:4;12989:28;;:20;:18;:20::i;:::-;:28;;;;12936:81;:109;;;;;13022:17;:23;13040:4;13022:23;;;;;;;;;;;;;;;;;;;;;;;;;13021:24;12936:109;:135;;;;;13050:17;:21;13068:2;13050:21;;;;;;;;;;;;;;;;;;;;;;;;;13049:22;12936:135;12932:242;;;13101:4;13088:10;;:17;;;;;;;;;;;;;;;;;;13120:9;:7;:9::i;:::-;13157:5;13144:10;;:18;;;;;;;;;;;;;;;;;;12932:242;13187:12;13203:10;;;;;;;;;;;13202:11;13187:26;;13231:17;:23;13249:4;13231:23;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;13258:17;:21;13276:2;13258:21;;;;;;;;;;;;;;;;;;;;;;;;;13231:48;13227:96;;;13306:5;13296:15;;13227:96;13336:12;13367:7;13363:420;;;13419:2;13395:26;;:20;:18;:20::i;:::-;:26;;;:42;;;;;13436:1;13425:8;;:12;13395:42;13391:244;;;13465:29;13490:3;13465:20;13476:8;;13465:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;13458:36;;13391:244;;;13544:4;13520:28;;:20;:18;:20::i;:::-;:28;;;:43;;;;;13562:1;13552:7;;:11;13520:43;13516:119;;;13591:28;13615:3;13591:19;13602:7;;13591:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;13584:35;;13516:119;13391:244;13663:1;13656:4;:8;13652:91;;;13685:42;13701:4;13715;13722;13685:15;:42::i;:::-;13652:91;13767:4;13757:14;;;;;:::i;:::-;;;13363:420;13796:33;13812:4;13818:2;13822:6;13796:15;:33::i;:::-;11821:2016;;11708:2129;;;:::o;1528:185::-;1586:7;1619:1;1614;:6;;1606:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;1666:9;1682:1;1678;:5;;;;:::i;:::-;1666:17;;1704:1;1697:8;;;1528:185;;;;:::o;1340:182::-;1398:7;1418:9;1434:1;1430;:5;;;;:::i;:::-;1418:17;;1459:1;1454;:6;;1446:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1513:1;1506:8;;;1340:182;;;;:::o;1720:253::-;1778:7;1808:1;1803;:6;1799:47;;1833:1;1826:8;;;;1799:47;1859:9;1875:1;1871;:5;;;;:::i;:::-;1859:17;;1904:1;1899;1895;:5;;;;:::i;:::-;:10;1887:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1964:1;1957:8;;;1720:253;;;;;:::o;1979:177::-;2037:7;2069:1;2065;:5;2057:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;2112:9;2128:1;2124;:5;;;;:::i;:::-;2112:17;;2147:1;2140:8;;;1979:177;;;;:::o;11388:311::-;11427:17;11447:44;11486:4;11447:34;11465:15;;11447:13;:11;:13::i;:::-;:17;;:34;;;;:::i;:::-;:38;;:44;;;;:::i;:::-;11427:64;;11502:14;11519:16;11533:1;11519:9;:13;;:16;;;;:::i;:::-;11502:33;;11546:24;11563:6;11546:16;:24::i;:::-;11581:17;11613:6;11601:9;:18;;;;:::i;:::-;11581:38;;11630:58;11654:4;11661:15;;;;;;;;;;;11678:9;11630:15;:58::i;:::-;11416:283;;;11388:311::o;3963:438::-;4087:1;4069:20;;:6;:20;;;4061:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;4171:1;4150:23;;:9;:23;;;4142:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4247:29;4269:6;4247:9;:17;4257:6;4247:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;4227:9;:17;4237:6;4227:17;;;;;;;;;;;;;;;:49;;;;4310:32;4335:6;4310:9;:20;4320:9;4310:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;4287:9;:20;4297:9;4287:20;;;;;;;;;;;;;;;:55;;;;4375:9;4358:35;;4367:6;4358:35;;;4386:6;4358:35;;;;;;:::i;:::-;;;;;;;;3963:438;;;:::o;10623:482::-;10690:21;10728:1;10714:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10690:40;;10759:4;10741;10746:1;10741:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;10785:17;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10775:4;10780:1;10775:7;;;;;;;;:::i;:::-;;;;;;;:34;;;;;;;;;;;10823:64;10840:4;10855:17;10875:11;10823:8;:64::i;:::-;10901:17;:68;;;10984:11;11010:1;11026:4;11045:11;;;;;;;;;;;11071:15;10901:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10679:426;10623:482;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:139::-;811:6;806:3;801;795:23;852:1;843:6;838:3;834:16;827:27;722:139;;;:::o;867:102::-;908:6;959:2;955:7;950:2;943:5;939:14;935:28;925:38;;867:102;;;:::o;975:377::-;1063:3;1091:39;1124:5;1091:39;:::i;:::-;1146:71;1210:6;1205:3;1146:71;:::i;:::-;1139:78;;1226:65;1284:6;1279:3;1272:4;1265:5;1261:16;1226:65;:::i;:::-;1316:29;1338:6;1316:29;:::i;:::-;1311:3;1307:39;1300:46;;1067:285;975:377;;;;:::o;1358:313::-;1471:4;1509:2;1498:9;1494:18;1486:26;;1558:9;1552:4;1548:20;1544:1;1533:9;1529:17;1522:47;1586:78;1659:4;1650:6;1586:78;:::i;:::-;1578:86;;1358:313;;;;:::o;1758:117::-;1867:1;1864;1857:12;2004:126;2041:7;2081:42;2074:5;2070:54;2059:65;;2004:126;;;:::o;2136:96::-;2173:7;2202:24;2220:5;2202:24;:::i;:::-;2191:35;;2136:96;;;:::o;2238:122::-;2311:24;2329:5;2311:24;:::i;:::-;2304:5;2301:35;2291:63;;2350:1;2347;2340:12;2291:63;2238:122;:::o;2366:139::-;2412:5;2450:6;2437:20;2428:29;;2466:33;2493:5;2466:33;:::i;:::-;2366:139;;;;:::o;2511:122::-;2584:24;2602:5;2584:24;:::i;:::-;2577:5;2574:35;2564:63;;2623:1;2620;2613:12;2564:63;2511:122;:::o;2639:139::-;2685:5;2723:6;2710:20;2701:29;;2739:33;2766:5;2739:33;:::i;:::-;2639:139;;;;:::o;2784:474::-;2852:6;2860;2909:2;2897:9;2888:7;2884:23;2880:32;2877:119;;;2915:79;;:::i;:::-;2877:119;3035:1;3060:53;3105:7;3096:6;3085:9;3081:22;3060:53;:::i;:::-;3050:63;;3006:117;3162:2;3188:53;3233:7;3224:6;3213:9;3209:22;3188:53;:::i;:::-;3178:63;;3133:118;2784:474;;;;;:::o;3264:90::-;3298:7;3341:5;3334:13;3327:21;3316:32;;3264:90;;;:::o;3360:109::-;3441:21;3456:5;3441:21;:::i;:::-;3436:3;3429:34;3360:109;;:::o;3475:210::-;3562:4;3600:2;3589:9;3585:18;3577:26;;3613:65;3675:1;3664:9;3660:17;3651:6;3613:65;:::i;:::-;3475:210;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:329::-;4375:6;4424:2;4412:9;4403:7;4399:23;4395:32;4392:119;;;4430:79;;:::i;:::-;4392:119;4550:1;4575:53;4620:7;4611:6;4600:9;4596:22;4575:53;:::i;:::-;4565:63;;4521:117;4316:329;;;;:::o;4651:86::-;4686:7;4726:4;4719:5;4715:16;4704:27;;4651:86;;;:::o;4743:112::-;4826:22;4842:5;4826:22;:::i;:::-;4821:3;4814:35;4743:112;;:::o;4861:214::-;4950:4;4988:2;4977:9;4973:18;4965:26;;5001:67;5065:1;5054:9;5050:17;5041:6;5001:67;:::i;:::-;4861:214;;;;:::o;5081:474::-;5149:6;5157;5206:2;5194:9;5185:7;5181:23;5177:32;5174:119;;;5212:79;;:::i;:::-;5174:119;5332:1;5357:53;5402:7;5393:6;5382:9;5378:22;5357:53;:::i;:::-;5347:63;;5303:117;5459:2;5485:53;5530:7;5521:6;5510:9;5506:22;5485:53;:::i;:::-;5475:63;;5430:118;5081:474;;;;;:::o;5561:118::-;5648:24;5666:5;5648:24;:::i;:::-;5643:3;5636:37;5561:118;;:::o;5685:222::-;5778:4;5816:2;5805:9;5801:18;5793:26;;5829:71;5897:1;5886:9;5882:17;5873:6;5829:71;:::i;:::-;5685:222;;;;:::o;5913:60::-;5941:3;5962:5;5955:12;;5913:60;;;:::o;5979:142::-;6029:9;6062:53;6080:34;6089:24;6107:5;6089:24;:::i;:::-;6080:34;:::i;:::-;6062:53;:::i;:::-;6049:66;;5979:142;;;:::o;6127:126::-;6177:9;6210:37;6241:5;6210:37;:::i;:::-;6197:50;;6127:126;;;:::o;6259:151::-;6334:9;6367:37;6398:5;6367:37;:::i;:::-;6354:50;;6259:151;;;:::o;6416:181::-;6528:62;6584:5;6528:62;:::i;:::-;6523:3;6516:75;6416:181;;:::o;6603:272::-;6721:4;6759:2;6748:9;6744:18;6736:26;;6772:96;6865:1;6854:9;6850:17;6841:6;6772:96;:::i;:::-;6603:272;;;;:::o;6881:329::-;6940:6;6989:2;6977:9;6968:7;6964:23;6960:32;6957:119;;;6995:79;;:::i;:::-;6957:119;7115:1;7140:53;7185:7;7176:6;7165:9;7161:22;7140:53;:::i;:::-;7130:63;;7086:117;6881:329;;;;:::o;7216:152::-;7292:9;7325:37;7356:5;7325:37;:::i;:::-;7312:50;;7216:152;;;:::o;7374:183::-;7487:63;7544:5;7487:63;:::i;:::-;7482:3;7475:76;7374:183;;:::o;7563:274::-;7682:4;7720:2;7709:9;7705:18;7697:26;;7733:97;7827:1;7816:9;7812:17;7803:6;7733:97;:::i;:::-;7563:274;;;;:::o;7843:474::-;7911:6;7919;7968:2;7956:9;7947:7;7943:23;7939:32;7936:119;;;7974:79;;:::i;:::-;7936:119;8094:1;8119:53;8164:7;8155:6;8144:9;8140:22;8119:53;:::i;:::-;8109:63;;8065:117;8221:2;8247:53;8292:7;8283:6;8272:9;8268:22;8247:53;:::i;:::-;8237:63;;8192:118;7843:474;;;;;:::o;8323:116::-;8393:21;8408:5;8393:21;:::i;:::-;8386:5;8383:32;8373:60;;8429:1;8426;8419:12;8373:60;8323:116;:::o;8445:133::-;8488:5;8526:6;8513:20;8504:29;;8542:30;8566:5;8542:30;:::i;:::-;8445:133;;;;:::o;8584:462::-;8646:6;8654;8703:2;8691:9;8682:7;8678:23;8674:32;8671:119;;;8709:79;;:::i;:::-;8671:119;8829:1;8854:50;8896:7;8887:6;8876:9;8872:22;8854:50;:::i;:::-;8844:60;;8800:114;8953:2;8979:50;9021:7;9012:6;9001:9;8997:22;8979:50;:::i;:::-;8969:60;;8924:115;8584:462;;;;;:::o;9052:180::-;9100:77;9097:1;9090:88;9197:4;9194:1;9187:15;9221:4;9218:1;9211:15;9238:320;9282:6;9319:1;9313:4;9309:12;9299:22;;9366:1;9360:4;9356:12;9387:18;9377:81;;9443:4;9435:6;9431:17;9421:27;;9377:81;9505:2;9497:6;9494:14;9474:18;9471:38;9468:84;;9524:18;;:::i;:::-;9468:84;9289:269;9238:320;;;:::o;9564:223::-;9704:34;9700:1;9692:6;9688:14;9681:58;9773:6;9768:2;9760:6;9756:15;9749:31;9564:223;:::o;9793:366::-;9935:3;9956:67;10020:2;10015:3;9956:67;:::i;:::-;9949:74;;10032:93;10121:3;10032:93;:::i;:::-;10150:2;10145:3;10141:12;10134:19;;9793:366;;;:::o;10165:419::-;10331:4;10369:2;10358:9;10354:18;10346:26;;10418:9;10412:4;10408:20;10404:1;10393:9;10389:17;10382:47;10446:131;10572:4;10446:131;:::i;:::-;10438:139;;10165:419;;;:::o;10590:180::-;10638:77;10635:1;10628:88;10735:4;10732:1;10725:15;10759:4;10756:1;10749:15;10776:102;10818:8;10865:5;10862:1;10858:13;10837:34;;10776:102;;;:::o;10884:848::-;10945:5;10952:4;10976:6;10967:15;;11000:5;10991:14;;11014:712;11035:1;11025:8;11022:15;11014:712;;;11130:4;11125:3;11121:14;11115:4;11112:24;11109:50;;;11139:18;;:::i;:::-;11109:50;11189:1;11179:8;11175:16;11172:451;;;11604:4;11597:5;11593:16;11584:25;;11172:451;11654:4;11648;11644:15;11636:23;;11684:32;11707:8;11684:32;:::i;:::-;11672:44;;11014:712;;;10884:848;;;;;;;:::o;11738:1073::-;11792:5;11983:8;11973:40;;12004:1;11995:10;;12006:5;;11973:40;12032:4;12022:36;;12049:1;12040:10;;12051:5;;12022:36;12118:4;12166:1;12161:27;;;;12202:1;12197:191;;;;12111:277;;12161:27;12179:1;12170:10;;12181:5;;;12197:191;12242:3;12232:8;12229:17;12226:43;;;12249:18;;:::i;:::-;12226:43;12298:8;12295:1;12291:16;12282:25;;12333:3;12326:5;12323:14;12320:40;;;12340:18;;:::i;:::-;12320:40;12373:5;;;12111:277;;12497:2;12487:8;12484:16;12478:3;12472:4;12469:13;12465:36;12447:2;12437:8;12434:16;12429:2;12423:4;12420:12;12416:35;12400:111;12397:246;;;12553:8;12547:4;12543:19;12534:28;;12588:3;12581:5;12578:14;12575:40;;;12595:18;;:::i;:::-;12575:40;12628:5;;12397:246;12668:42;12706:3;12696:8;12690:4;12687:1;12668:42;:::i;:::-;12653:57;;;;12742:4;12737:3;12733:14;12726:5;12723:25;12720:51;;;12751:18;;:::i;:::-;12720:51;12800:4;12793:5;12789:16;12780:25;;11738:1073;;;;;;:::o;12817:281::-;12875:5;12899:23;12917:4;12899:23;:::i;:::-;12891:31;;12943:25;12959:8;12943:25;:::i;:::-;12931:37;;12987:104;13024:66;13014:8;13008:4;12987:104;:::i;:::-;12978:113;;12817:281;;;;:::o;13104:222::-;13244:34;13240:1;13232:6;13228:14;13221:58;13313:5;13308:2;13300:6;13296:15;13289:30;13104:222;:::o;13332:366::-;13474:3;13495:67;13559:2;13554:3;13495:67;:::i;:::-;13488:74;;13571:93;13660:3;13571:93;:::i;:::-;13689:2;13684:3;13680:12;13673:19;;13332:366;;;:::o;13704:419::-;13870:4;13908:2;13897:9;13893:18;13885:26;;13957:9;13951:4;13947:20;13943:1;13932:9;13928:17;13921:47;13985:131;14111:4;13985:131;:::i;:::-;13977:139;;13704:419;;;:::o;14129:224::-;14269:34;14265:1;14257:6;14253:14;14246:58;14338:7;14333:2;14325:6;14321:15;14314:32;14129:224;:::o;14359:366::-;14501:3;14522:67;14586:2;14581:3;14522:67;:::i;:::-;14515:74;;14598:93;14687:3;14598:93;:::i;:::-;14716:2;14711:3;14707:12;14700:19;;14359:366;;;:::o;14731:419::-;14897:4;14935:2;14924:9;14920:18;14912:26;;14984:9;14978:4;14974:20;14970:1;14959:9;14955:17;14948:47;15012:131;15138:4;15012:131;:::i;:::-;15004:139;;14731:419;;;:::o;15156:143::-;15213:5;15244:6;15238:13;15229:22;;15260:33;15287:5;15260:33;:::i;:::-;15156:143;;;;:::o;15305:351::-;15375:6;15424:2;15412:9;15403:7;15399:23;15395:32;15392:119;;;15430:79;;:::i;:::-;15392:119;15550:1;15575:64;15631:7;15622:6;15611:9;15607:22;15575:64;:::i;:::-;15565:74;;15521:128;15305:351;;;;:::o;15662:332::-;15783:4;15821:2;15810:9;15806:18;15798:26;;15834:71;15902:1;15891:9;15887:17;15878:6;15834:71;:::i;:::-;15915:72;15983:2;15972:9;15968:18;15959:6;15915:72;:::i;:::-;15662:332;;;;;:::o;16000:175::-;16140:27;16136:1;16128:6;16124:14;16117:51;16000:175;:::o;16181:366::-;16323:3;16344:67;16408:2;16403:3;16344:67;:::i;:::-;16337:74;;16420:93;16509:3;16420:93;:::i;:::-;16538:2;16533:3;16529:12;16522:19;;16181:366;;;:::o;16553:419::-;16719:4;16757:2;16746:9;16742:18;16734:26;;16806:9;16800:4;16796:20;16792:1;16781:9;16777:17;16770:47;16834:131;16960:4;16834:131;:::i;:::-;16826:139;;16553:419;;;:::o;16978:176::-;17118:28;17114:1;17106:6;17102:14;17095:52;16978:176;:::o;17160:366::-;17302:3;17323:67;17387:2;17382:3;17323:67;:::i;:::-;17316:74;;17399:93;17488:3;17399:93;:::i;:::-;17517:2;17512:3;17508:12;17501:19;;17160:366;;;:::o;17532:419::-;17698:4;17736:2;17725:9;17721:18;17713:26;;17785:9;17779:4;17775:20;17771:1;17760:9;17756:17;17749:47;17813:131;17939:4;17813:131;:::i;:::-;17805:139;;17532:419;;;:::o;17957:223::-;18097:34;18093:1;18085:6;18081:14;18074:58;18166:6;18161:2;18153:6;18149:15;18142:31;17957:223;:::o;18186:366::-;18328:3;18349:67;18413:2;18408:3;18349:67;:::i;:::-;18342:74;;18425:93;18514:3;18425:93;:::i;:::-;18543:2;18538:3;18534:12;18527:19;;18186:366;;;:::o;18558:419::-;18724:4;18762:2;18751:9;18747:18;18739:26;;18811:9;18805:4;18801:20;18797:1;18786:9;18782:17;18775:47;18839:131;18965:4;18839:131;:::i;:::-;18831:139;;18558:419;;;:::o;18983:221::-;19123:34;19119:1;19111:6;19107:14;19100:58;19192:4;19187:2;19179:6;19175:15;19168:29;18983:221;:::o;19210:366::-;19352:3;19373:67;19437:2;19432:3;19373:67;:::i;:::-;19366:74;;19449:93;19538:3;19449:93;:::i;:::-;19567:2;19562:3;19558:12;19551:19;;19210:366;;;:::o;19582:419::-;19748:4;19786:2;19775:9;19771:18;19763:26;;19835:9;19829:4;19825:20;19821:1;19810:9;19806:17;19799:47;19863:131;19989:4;19863:131;:::i;:::-;19855:139;;19582:419;;;:::o;20007:224::-;20147:34;20143:1;20135:6;20131:14;20124:58;20216:7;20211:2;20203:6;20199:15;20192:32;20007:224;:::o;20237:366::-;20379:3;20400:67;20464:2;20459:3;20400:67;:::i;:::-;20393:74;;20476:93;20565:3;20476:93;:::i;:::-;20594:2;20589:3;20585:12;20578:19;;20237:366;;;:::o;20609:419::-;20775:4;20813:2;20802:9;20798:18;20790:26;;20862:9;20856:4;20852:20;20848:1;20837:9;20833:17;20826:47;20890:131;21016:4;20890:131;:::i;:::-;20882:139;;20609:419;;;:::o;21034:222::-;21174:34;21170:1;21162:6;21158:14;21151:58;21243:5;21238:2;21230:6;21226:15;21219:30;21034:222;:::o;21262:366::-;21404:3;21425:67;21489:2;21484:3;21425:67;:::i;:::-;21418:74;;21501:93;21590:3;21501:93;:::i;:::-;21619:2;21614:3;21610:12;21603:19;;21262:366;;;:::o;21634:419::-;21800:4;21838:2;21827:9;21823:18;21815:26;;21887:9;21881:4;21877:20;21873:1;21862:9;21858:17;21851:47;21915:131;22041:4;21915:131;:::i;:::-;21907:139;;21634:419;;;:::o;22059:175::-;22199:27;22195:1;22187:6;22183:14;22176:51;22059:175;:::o;22240:366::-;22382:3;22403:67;22467:2;22462:3;22403:67;:::i;:::-;22396:74;;22479:93;22568:3;22479:93;:::i;:::-;22597:2;22592:3;22588:12;22581:19;;22240:366;;;:::o;22612:419::-;22778:4;22816:2;22805:9;22801:18;22793:26;;22865:9;22859:4;22855:20;22851:1;22840:9;22836:17;22829:47;22893:131;23019:4;22893:131;:::i;:::-;22885:139;;22612:419;;;:::o;23037:238::-;23177:34;23173:1;23165:6;23161:14;23154:58;23246:21;23241:2;23233:6;23229:15;23222:46;23037:238;:::o;23281:366::-;23423:3;23444:67;23508:2;23503:3;23444:67;:::i;:::-;23437:74;;23520:93;23609:3;23520:93;:::i;:::-;23638:2;23633:3;23629:12;23622:19;;23281:366;;;:::o;23653:419::-;23819:4;23857:2;23846:9;23842:18;23834:26;;23906:9;23900:4;23896:20;23892:1;23881:9;23877:17;23870:47;23934:131;24060:4;23934:131;:::i;:::-;23926:139;;23653:419;;;:::o;24078:191::-;24118:3;24137:20;24155:1;24137:20;:::i;:::-;24132:25;;24171:20;24189:1;24171:20;:::i;:::-;24166:25;;24214:1;24211;24207:9;24200:16;;24235:3;24232:1;24229:10;24226:36;;;24242:18;;:::i;:::-;24226:36;24078:191;;;;:::o;24275:169::-;24415:21;24411:1;24403:6;24399:14;24392:45;24275:169;:::o;24450:366::-;24592:3;24613:67;24677:2;24672:3;24613:67;:::i;:::-;24606:74;;24689:93;24778:3;24689:93;:::i;:::-;24807:2;24802:3;24798:12;24791:19;;24450:366;;;:::o;24822:419::-;24988:4;25026:2;25015:9;25011:18;25003:26;;25075:9;25069:4;25065:20;25061:1;25050:9;25046:17;25039:47;25103:131;25229:4;25103:131;:::i;:::-;25095:139;;24822:419;;;:::o;25247:243::-;25387:34;25383:1;25375:6;25371:14;25364:58;25456:26;25451:2;25443:6;25439:15;25432:51;25247:243;:::o;25496:366::-;25638:3;25659:67;25723:2;25718:3;25659:67;:::i;:::-;25652:74;;25735:93;25824:3;25735:93;:::i;:::-;25853:2;25848:3;25844:12;25837:19;;25496:366;;;:::o;25868:419::-;26034:4;26072:2;26061:9;26057:18;26049:26;;26121:9;26115:4;26111:20;26107:1;26096:9;26092:17;26085:47;26149:131;26275:4;26149:131;:::i;:::-;26141:139;;25868:419;;;:::o;26293:173::-;26433:25;26429:1;26421:6;26417:14;26410:49;26293:173;:::o;26472:366::-;26614:3;26635:67;26699:2;26694:3;26635:67;:::i;:::-;26628:74;;26711:93;26800:3;26711:93;:::i;:::-;26829:2;26824:3;26820:12;26813:19;;26472:366;;;:::o;26844:419::-;27010:4;27048:2;27037:9;27033:18;27025:26;;27097:9;27091:4;27087:20;27083:1;27072:9;27068:17;27061:47;27125:131;27251:4;27125:131;:::i;:::-;27117:139;;26844:419;;;:::o;27269:194::-;27309:4;27329:20;27347:1;27329:20;:::i;:::-;27324:25;;27363:20;27381:1;27363:20;:::i;:::-;27358:25;;27407:1;27404;27400:9;27392:17;;27431:1;27425:4;27422:11;27419:37;;;27436:18;;:::i;:::-;27419:37;27269:194;;;;:::o;27469:180::-;27609:32;27605:1;27597:6;27593:14;27586:56;27469:180;:::o;27655:366::-;27797:3;27818:67;27882:2;27877:3;27818:67;:::i;:::-;27811:74;;27894:93;27983:3;27894:93;:::i;:::-;28012:2;28007:3;28003:12;27996:19;;27655:366;;;:::o;28027:419::-;28193:4;28231:2;28220:9;28216:18;28208:26;;28280:9;28274:4;28270:20;28266:1;28255:9;28251:17;28244:47;28308:131;28434:4;28308:131;:::i;:::-;28300:139;;28027:419;;;:::o;28452:177::-;28592:29;28588:1;28580:6;28576:14;28569:53;28452:177;:::o;28635:366::-;28777:3;28798:67;28862:2;28857:3;28798:67;:::i;:::-;28791:74;;28874:93;28963:3;28874:93;:::i;:::-;28992:2;28987:3;28983:12;28976:19;;28635:366;;;:::o;29007:419::-;29173:4;29211:2;29200:9;29196:18;29188:26;;29260:9;29254:4;29250:20;29246:1;29235:9;29231:17;29224:47;29288:131;29414:4;29288:131;:::i;:::-;29280:139;;29007:419;;;:::o;29432:410::-;29472:7;29495:20;29513:1;29495:20;:::i;:::-;29490:25;;29529:20;29547:1;29529:20;:::i;:::-;29524:25;;29584:1;29581;29577:9;29606:30;29624:11;29606:30;:::i;:::-;29595:41;;29785:1;29776:7;29772:15;29769:1;29766:22;29746:1;29739:9;29719:83;29696:139;;29815:18;;:::i;:::-;29696:139;29480:362;29432:410;;;;:::o;29848:180::-;29896:77;29893:1;29886:88;29993:4;29990:1;29983:15;30017:4;30014:1;30007:15;30034:185;30074:1;30091:20;30109:1;30091:20;:::i;:::-;30086:25;;30125:20;30143:1;30125:20;:::i;:::-;30120:25;;30164:1;30154:35;;30169:18;;:::i;:::-;30154:35;30211:1;30208;30204:9;30199:14;;30034:185;;;;:::o;30225:220::-;30365:34;30361:1;30353:6;30349:14;30342:58;30434:3;30429:2;30421:6;30417:15;30410:28;30225:220;:::o;30451:366::-;30593:3;30614:67;30678:2;30673:3;30614:67;:::i;:::-;30607:74;;30690:93;30779:3;30690:93;:::i;:::-;30808:2;30803:3;30799:12;30792:19;;30451:366;;;:::o;30823:419::-;30989:4;31027:2;31016:9;31012:18;31004:26;;31076:9;31070:4;31066:20;31062:1;31051:9;31047:17;31040:47;31104:131;31230:4;31104:131;:::i;:::-;31096:139;;30823:419;;;:::o;31248:176::-;31388:28;31384:1;31376:6;31372:14;31365:52;31248:176;:::o;31430:366::-;31572:3;31593:67;31657:2;31652:3;31593:67;:::i;:::-;31586:74;;31669:93;31758:3;31669:93;:::i;:::-;31787:2;31782:3;31778:12;31771:19;;31430:366;;;:::o;31802:419::-;31968:4;32006:2;31995:9;31991:18;31983:26;;32055:9;32049:4;32045:20;32041:1;32030:9;32026:17;32019:47;32083:131;32209:4;32083:131;:::i;:::-;32075:139;;31802:419;;;:::o;32227:180::-;32275:77;32272:1;32265:88;32372:4;32369:1;32362:15;32396:4;32393:1;32386:15;32413:180;32461:77;32458:1;32451:88;32558:4;32555:1;32548:15;32582:4;32579:1;32572:15;32599:85;32644:7;32673:5;32662:16;;32599:85;;;:::o;32690:158::-;32748:9;32781:61;32799:42;32808:32;32834:5;32808:32;:::i;:::-;32799:42;:::i;:::-;32781:61;:::i;:::-;32768:74;;32690:158;;;:::o;32854:147::-;32949:45;32988:5;32949:45;:::i;:::-;32944:3;32937:58;32854:147;;:::o;33007:114::-;33074:6;33108:5;33102:12;33092:22;;33007:114;;;:::o;33127:184::-;33226:11;33260:6;33255:3;33248:19;33300:4;33295:3;33291:14;33276:29;;33127:184;;;;:::o;33317:132::-;33384:4;33407:3;33399:11;;33437:4;33432:3;33428:14;33420:22;;33317:132;;;:::o;33455:108::-;33532:24;33550:5;33532:24;:::i;:::-;33527:3;33520:37;33455:108;;:::o;33569:179::-;33638:10;33659:46;33701:3;33693:6;33659:46;:::i;:::-;33737:4;33732:3;33728:14;33714:28;;33569:179;;;;:::o;33754:113::-;33824:4;33856;33851:3;33847:14;33839:22;;33754:113;;;:::o;33903:732::-;34022:3;34051:54;34099:5;34051:54;:::i;:::-;34121:86;34200:6;34195:3;34121:86;:::i;:::-;34114:93;;34231:56;34281:5;34231:56;:::i;:::-;34310:7;34341:1;34326:284;34351:6;34348:1;34345:13;34326:284;;;34427:6;34421:13;34454:63;34513:3;34498:13;34454:63;:::i;:::-;34447:70;;34540:60;34593:6;34540:60;:::i;:::-;34530:70;;34386:224;34373:1;34370;34366:9;34361:14;;34326:284;;;34330:14;34626:3;34619:10;;34027:608;;;33903:732;;;;:::o;34641:831::-;34904:4;34942:3;34931:9;34927:19;34919:27;;34956:71;35024:1;35013:9;35009:17;35000:6;34956:71;:::i;:::-;35037:80;35113:2;35102:9;35098:18;35089:6;35037:80;:::i;:::-;35164:9;35158:4;35154:20;35149:2;35138:9;35134:18;35127:48;35192:108;35295:4;35286:6;35192:108;:::i;:::-;35184:116;;35310:72;35378:2;35367:9;35363:18;35354:6;35310:72;:::i;:::-;35392:73;35460:3;35449:9;35445:19;35436:6;35392:73;:::i;:::-;34641:831;;;;;;;;:::o

Swarm Source

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