POL Price: $0.321886 (+4.11%)
 

Overview

Max Total Supply

240,009,233.008284549725178414 TAT2

Holders

846 (0.00%)

Total Transfers

-

Market

Price

$0.00 @ 0.000000 POL

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

TattooMoney Token is a deflationary multi-blockchain token crafted for the global tattoo industry. It allows collection and transfer of financial assets, payments for services in tattoo studios and trade of NFT on the NFTattoo platform.

Contract Source Code Verified (Exact Match)

Contract Name:
TattooMoneyV2

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity Multiple files format)

File 4 of 4: TattooMoneyV2_Polygon.sol
// SPDX-License-Identifier: UNLICENSE

/**
About TattooMoney DeFi & NFT project:

Tattooing is a timeless phenomenon. The first human to be tattooed was Ötzi the Iceman when archaeologists discovered his body dating between 3,370 and 3,100 BC, or more than 5,000 years ago.
We bring tattoos to the cryptographic space...

https://app.TattooMoney.io/ - Our App
https://TattooMoney.io/ - Info about Project
*/

// ------------------------------------------------------------------------------------
// 'TattooMoneyV2' Token Contract
//
// Symbol      : TAT2
// Name        : TattooMoney
// Total Supply: 1,000,000,000 TAT2
// Decimals    : 18
//
// © By 'TattooMoney Co LTD' With 'TAT2' Symbol since 2019.
//
// This is BRIDGE TO POLYGON of token https://etherscan.io/token/0xb487d0328b109e302b9d817b6f46cbd738ea08c2
//
// ------------------------------------------------------------------------------------

import "./owned.sol";
import "./dao.sol";
import "./interfaces.sol";

pragma solidity 0.8.7;

contract TattooMoneyV2 is IERC20, Owned, DAO {
    constructor(address _owner, address _childChainManagerProxy) {
        owner = _owner;
        childChainManagerProxy = _childChainManagerProxy;
        dao = 0x1e3d5272aa13f0c6d911866DBEF3C5979d9B7b40;
        setfeesfree();
    }

    address public childChainManagerProxy;

    string public constant name = "TattooMoney";
    string public constant symbol = "TAT2";
    uint8 public constant decimals = 18;

    uint256 private constant maxFee = 10;

    uint256 private _totalSupply = 0;

    uint256 private FeeTotalCollected;
    uint256 private FeeTotalCollectedBurned;

    address private constant ZERO = address(0);
    mapping(address => uint256) private balances;
    mapping(address => mapping(address => uint256)) public override allowance;
    mapping(address => bool) public isFeeFreeSender;
    mapping(address => bool) public isFeeFreeRecipient;
    mapping(address => bool) public frozenAccount;

    uint256 public totalFee = 2; // Total procent fee deductet from transaction

    uint256 public burnFees = 40; // fee taken and burned
    address public burnaddress = 0x6db02EcbC19F1cd4044B1616D49BE1A5aD9F9A94; // Address Controled by TattoMoney All tokens from this addres should be moved to ETHEREUM and get burned!
    uint256 public charityFees = 20; // fee taken and added to the charity
    address public charityaddress = 0xA48E5C39c9AF0f3B1A948a63F44d63AB777CB684;
    uint256 public rewardsFees = 20; // fee taken and added to rewards
    address public rewardsaddress = 0x2794F6a795823EDebC41D1799c0829EcD36821d2;
    uint256 public systemFees = 0; // fee taken and added to system
    address public systemaddress = 0x705E0d5120511d823b813b9e24e5E34a58616C3A;
    uint256 public stakingFees = 20; // fee taken and added to staking pool
    address public stakingaddress = 0xEDC46D5dDb981b7Da1A743b2739e69e44c4FBCE7;

    uint256 public minTotalSupply =0; // min amount of tokens total supply

    // being proxified smart contract, most probably childChainManagerProxy contract's address
    // is not going to change ever, but still, lets keep it
    function updateChildChainManager(address newChildChainManagerProxy) external onlyOwner {
      require(newChildChainManagerProxy != address(0), "Bad ChildChainManagerProxy address");
      childChainManagerProxy = newChildChainManagerProxy;
    }

    function deposit(address user, bytes calldata depositData) external {
      require(msg.sender == childChainManagerProxy, "You're not allowed to deposit");
      uint256 amount = abi.decode(depositData, (uint256));
      // `amount` token getting minted here & equal amount got locked in RootChainManager

      _totalSupply += amount;
      balances[user] += amount;
      emit Transfer(ZERO, user, amount);
    }

    function withdraw(uint256 amount) external {
      require(balances[msg.sender] >= amount, "ERC20: burn amount exceeds balance");
      balances[msg.sender] -= amount;
      _totalSupply -= amount;

      emit Transfer(msg.sender, ZERO, amount);
    }

    /**
    * @dev Update charity address
    * @param _charityaddress new charity address
    */
    function updateCharityAddress( address _charityaddress ) external onlyDAO {
        charityaddress = _charityaddress;
        emit updateedCharityAddress( charityaddress );
    }

    /**
    * @dev Update burn address
    * @param _burnaddress new charity address
    */
    function updateBurnAddress( address _burnaddress ) external onlyDAO {
        burnaddress = _burnaddress;
        emit updateedBurnAddress( burnaddress );
    }

    /**
    * @dev Update rewards address
    * @param _rewardsaddress new charity address
    */
    function updateRewardsAddress( address _rewardsaddress ) external onlyDAO {
        rewardsaddress = _rewardsaddress;
        emit updateedRewardsAddress( rewardsaddress );
    }

    /**
    * @dev Update rewards address
    * @param _systemaddress new charity address
    */
    function updateSystemAddress( address _systemaddress ) external onlyDAO {
        systemaddress = _systemaddress;
        emit updateedSystemAddress( systemaddress );
    }

    /**
    * @dev Update staking address
    * @param _stakingaddress new charity address
    */
    function updateStakingAddress( address _stakingaddress ) external onlyDAO {
        stakingaddress = _stakingaddress;
        emit updateedStakingAddress( stakingaddress );
    }

    /**
    * @dev Updates fees
    * @param _totalFee total taken fee
    * @param _burnFees burn fees
    * @param _charityFees liquidity pool fees
    * @param _rewardsFees rewards fees
    */
    function updateFees( uint256 _totalFee, uint256 _burnFees, uint256 _charityFees, uint256 _rewardsFees, uint256 _systemFees, uint256 _stakingFees ) external onlyDAO {
       require( _totalFee <= maxFee, "VERIFY FEE: TOO BIG FEE" );
       require(  _verifyFees(_burnFees, _charityFees, _rewardsFees, _systemFees, _stakingFees), "VERIFY FEE: SUM DO NOT MATCH");

        totalFee = _totalFee;
        burnFees = _burnFees;
        charityFees = _charityFees;
        rewardsFees = _rewardsFees;
        systemFees = _systemFees;
        stakingFees = _stakingFees;

        emit FeesUpdated( totalFee, burnFees, charityFees, rewardsFees, systemFees, stakingFees );
    }

    /**
    * @dev verify fees
    * @param _burnFees liquidity pool fees
    * @param _charityFees charity fees
    * @param _rewardsFees rewards fees
    * @param _systemFees system fees
    * @param _stakingFees staking fees
    */
    function _verifyFees( uint256 _burnFees, uint256 _charityFees, uint256 _rewardsFees, uint256 _systemFees, uint256 _stakingFees) private pure returns (bool){
        uint256 _totalFees = _burnFees + _charityFees + _rewardsFees + _systemFees + _stakingFees;
        if(_totalFees == 100){
            return true;
        } else {
            return false;
        }
    }

    /**
    * @dev Emitted when dao is updated
    * @param dao dao address
    */
    event DAOUpdated(
      address dao
    );

    // ERC20 totalSupply
    function totalSupply() external view override returns (uint256) {
        return _totalSupply  - balances[ZERO];
    }

    /// Total fees collected
    function FeesCollected() external view returns (uint256) {
        return FeeTotalCollected;
    }
    /// Total fees collected burned
    function FeesCollectedBurned() external view returns (uint256) {
        return FeeTotalCollectedBurned;
    }


    // ERC20 balanceOf
    function balanceOf(address account)
        external
        view
        override
        returns (uint256)
    {
        return balances[account];
    }

    // ERC20 transfer
    function transfer(address recipient, uint256 amount)
        external
        override
        returns (bool)
    {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    // ERC20 approve
    function approve(address spender, uint256 amount)
        external
        override
        returns (bool)
    {
        _approve(msg.sender, spender, amount);
        return true;
    }

    // ERC20 transferFrom
    function transferFrom( address sender, address recipient, uint256 amount ) external override returns (bool) {
        uint256 amt = allowance[sender][msg.sender];
        require(amt >= amount, "ERC20: transfer amount exceeds allowance");
        // reduce only if not permament allowance (uniswap etc)
        allowance[sender][msg.sender] -= amount;
        _transfer(sender, recipient, amount);
        return true;
    }

    // ERC20 increaseAllowance
    function increaseAllowance(address spender, uint256 addedValue) external returns (bool) {
        _approve( msg.sender, spender, allowance[msg.sender][spender] + addedValue );
        return true;
    }

    // ERC20 decreaseAllowance
    function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool) {
        require( allowance[msg.sender][spender] >= subtractedValue, "ERC20: decreased allowance below zero" );
        _approve( msg.sender, spender, allowance[msg.sender][spender] - subtractedValue );
        return true;
    }

    // ERC20 burn
    function burn(uint256 amount) external {
        require(msg.sender != ZERO, "ERC20: burn from the zero address");
        _burn(msg.sender, amount);
    }

    // ERC20 burnFrom
    function burnFrom(address account, uint256 amount) external {
        require(account != ZERO, "ERC20: burn from the zero address");
        require(allowance[account][msg.sender] >= amount, "ERC20: burn amount exceeds allowance");
        allowance[account][msg.sender] -= amount;
        _burn(account, amount);
    }

    function _calcTransferFees( uint256 amount ) private view returns ( uint256 _FeesToTake, uint256 _toburn, uint256 _tocharity, uint256 _toreward, uint256 _tosystem, uint256 _tostaking )
      {
        _FeesToTake = amount * totalFee / 100;
        if((_totalSupply  - balances[ZERO]) > minTotalSupply){
            _toburn = _FeesToTake * burnFees / 100;
        } else {
            _toburn = 0;
        }

        _tocharity = _FeesToTake * charityFees / 100;
        _toreward =  _FeesToTake * rewardsFees / 100;
        _tosystem =  _FeesToTake * systemFees / 100;
        _tostaking =  _FeesToTake * stakingFees / 100;
        _FeesToTake = _toburn + _tocharity + _toreward + _tosystem + _tostaking;
      }

    /**
        Internal approve function, emit Approval event
        @param _owner approving address
        @param spender delegated spender
        @param amount amount of tokens
     */
    function _approve( address _owner, address spender, uint256 amount ) private {
        require(_owner != ZERO, "ERC20: approve from the zero address");
        require(spender != ZERO, "ERC20: approve to the zero address");

        allowance[_owner][spender] = amount;
        emit Approval(_owner, spender, amount);
    }

    /**
        Internal transfer function, calling feeFree if needed
        @param sender sender address
        @param recipient destination address
        @param Amount transfer amount
     */
    function _transfer( address sender, address recipient, uint256 Amount ) private {
        require(sender != ZERO, "ERC20: transfer from the zero address");
        require(recipient != ZERO, "ERC20: transfer to the zero address");
        require(!frozenAccount[sender], "DAO: transfer from this address frozen");
        require(!frozenAccount[recipient], "DAO: transfer to this address frozen");

        if (Amount > 0) {
            if (isFeeFreeSender[sender]){
              _feeFreeTransfer(sender, recipient, Amount);
            } else if(isFeeFreeRecipient[recipient]){
              _feeFreeTransfer(sender, recipient, Amount);
            } else {
                ( uint256 _FeesToTake, uint256 _toburn, uint256 _tocharity, uint256 _toreward, uint256 _tosystem, uint256 _tostaking ) = _calcTransferFees( Amount );

                uint256 _totransfer = Amount - _FeesToTake;
                uint256 _takefromsender = Amount - _toburn;
                FeeTotalCollected += _FeesToTake;
                balances[sender] -= _takefromsender;
                balances[recipient] += _totransfer;
                if(_toburn>0){
                    _burn(sender, _toburn);
                    FeeTotalCollectedBurned += _toburn;
                    emit Transfer(sender, burnaddress, _toburn);
                }
                if(_tocharity>0){
                    balances[charityaddress] += _tocharity;
                    emit Transfer(sender, charityaddress, _tocharity);
                }
                if(_toreward>0){
                    balances[rewardsaddress] += _toreward;
                    emit Transfer(sender, rewardsaddress, _toreward);
                }
                if(_tosystem>0){
                    balances[systemaddress] += _tosystem;
                    emit Transfer(sender, systemaddress, _tosystem);
                }
                if(_tostaking>0){
                    balances[stakingaddress] += _tostaking;
                    emit Transfer(sender, stakingaddress, _tostaking);
                }
                emit Transfer(sender, recipient, _totransfer);
            }
        } else emit Transfer(sender, recipient, 0);
    }


    /**
        Function provide fee-free transfer for selected addresses
        @param sender sender address
        @param recipient destination address
        @param Amount transfer amount
     */
    function _feeFreeTransfer( address sender, address recipient, uint256 Amount ) private {
        balances[sender] -= Amount;
        balances[recipient] += Amount;
        emit Transfer(sender, recipient, Amount);
    }


    /// internal burn function
    function _burn(address account, uint256 Amount) private {
        require( balances[account] >= Amount, "ERC20: burn amount exceeds balance" );
        balances[account] -= Amount;
        balances[burnaddress] += Amount;
    }

    /**
    * @dev Freez Account
    * @param _address adress to feez/unfreez
    * @param _freeze set state
    */
    function freezeAccount(address _address, bool _freeze) public onlyDAO {
      frozenAccount[_address] = _freeze;
    }

    /**
    * @dev Update charity address
    * @param _minTotalSupply new charity address
    */

    function updateminTotalSupply( uint256 _minTotalSupply ) external onlyDAO {
        minTotalSupply = _minTotalSupply;
        emit updatedminTotalSupply( minTotalSupply );
    }

    function setfeesfree() private{
        isFeeFreeSender[owner] = true;
        isFeeFreeSender[dao] = true;
        isFeeFreeSender[charityaddress] = true;
        isFeeFreeSender[rewardsaddress] = true;
        isFeeFreeSender[systemaddress] = true;
        isFeeFreeSender[stakingaddress] = true;
        isFeeFreeRecipient[charityaddress] = true;
    }

    /**
    * @dev Emitted when fees are updated
    * @param totalFee burn fees
    * @param burnFees liquidity pool fees
    * @param charityFees charity fees
    * @param rewardsFees rewards fees
    * @param systemFees system fees
    * @param stakingFees staking fees
    */
    event FeesUpdated( uint256 totalFee, uint256 burnFees, uint256 charityFees, uint256 rewardsFees, uint256 systemFees, uint256 stakingFees );

    /**
    * @dev Emitted when staking is updated
    * @param stakingaddress burn fees
    */
    event updateedStakingAddress( address stakingaddress );

    /**
    * @dev Emitted when system is updated
    * @param systemaddress burn fees
    */
    event updateedSystemAddress( address systemaddress );

    /**
    * @dev Emitted when rewards is updated
    * @param rewardsaddress burn fees
    */
    event updateedRewardsAddress( address rewardsaddress );

    /**
    * @dev Emitted when charity is updated
    * @param charityaddress burn fees
    */
    event updateedCharityAddress( address charityaddress );

    /**
    * @dev Emitted when burn is updated
    * @param burnaddress burn fees
    */
    event updateedBurnAddress( address burnaddress );

    /**
    * @dev Emitted when minTotalSupply is updated
    * @param minTotalSupply burn fees
    */
    event updatedminTotalSupply( uint256 minTotalSupply );

    //
    // Hard Ride
    //

    /**
        Add address that will not pay transfer fees
        @param user address to mark as fee-free
     */
    function addFeeFree(address user) external onlyDAO {
        isFeeFreeSender[user] = true;
    }

    /**
        Remove address form privileged list
        @param user user to remove
     */
    function removeFeeFree(address user) external onlyDAO {
        isFeeFreeSender[user] = false;
    }

    /**
        Add address that will recive tokens without fee
        @param user address to mark as fee-free
     */
    function addFeeFreeRecipient(address user) external onlyDAO {
        isFeeFreeRecipient[user] = true;
    }

    /**
        Remove address form privileged list
        @param user user to remove
     */
    function removeFeeFreeRecipient(address user) external onlyDAO {
        isFeeFreeRecipient[user] = false;
    }

    /**
        Take ETH accidentally send to contract
    */
    function withdrawEth() external onlyOwner {
        payable(owner).transfer(address(this).balance);
    }

    /**
        Take any ERC20 sent to contract
        @param token token address
    */
    function withdrawErc20(address token) external onlyOwner {
        uint256 balance = IERC20(token).balanceOf(address(this));
        require(balance > 0, "Nothing to withdraw");
        // use broken IERC20
        INterfacesNoR(token).transfer(owner, balance);
    }
}

//by Patrick

File 1 of 4: dao.sol
// SPDX-License-Identifier: UNLICENSE

pragma solidity ^0.8.7;

contract DAO {
    address public dao;

    event DAOChanged(address from, address to);

    constructor() {
        dao = msg.sender;
        emit DAOChanged(address(0), msg.sender);
    }

    modifier onlyDAO() {
        require(msg.sender == dao, "Only DAO");
        _;
    }

    function changeDAO(address _dao) external onlyDAO {
        require(_dao != address(0), "DAO to ZERO");
        address olddao = dao;
        dao = _dao;
        emit DAOChanged(olddao, dao);
    }

}

File 2 of 4: interfaces.sol
// SPDX-License-Identifier: UNLICENSE

pragma solidity ^0.8.7;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

// Interfaces for contract interaction
interface INterfaces {
    function balanceOf(address) external returns (uint256);

    function transfer(address, uint256) external returns (bool);

    function transferFrom(
        address,
        address,
        uint256
    ) external returns (bool);

}

// For tokens that do not return true on transfers eg. USDT
interface INterfacesNoR {
    function transfer(address, uint256) external;

    function transferFrom(
        address,
        address,
        uint256
    ) external;
}

File 3 of 4: owned.sol
// SPDX-License-Identifier: UNLICENSE

pragma solidity ^0.8.7;

contract Owned {
    address public owner;
    address public newOwner;

    event OwnershipChanged(address from, address to);

    constructor() {
        owner = msg.sender;
        emit OwnershipChanged(address(0), msg.sender);
    }

    modifier onlyOwner() {
        require(msg.sender == owner, "Only owner");
        _;
    }

    // owner can give super-rights to someone
    function giveOwnership(address user) external onlyOwner {
        require(user != address(0), "User renounceOwnership");
        newOwner = user;
    }

    // new owner need to accept
    function acceptOwnership() external {
        require(msg.sender == newOwner, "Only NewOwner");
        emit OwnershipChanged(owner, newOwner);
        owner = msg.sender;
        delete newOwner;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_childChainManagerProxy","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"}],"name":"DAOChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"dao","type":"address"}],"name":"DAOUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"totalFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"burnFees","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"charityFees","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"rewardsFees","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"systemFees","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"stakingFees","type":"uint256"}],"name":"FeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"minTotalSupply","type":"uint256"}],"name":"updatedminTotalSupply","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"burnaddress","type":"address"}],"name":"updateedBurnAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"charityaddress","type":"address"}],"name":"updateedCharityAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"rewardsaddress","type":"address"}],"name":"updateedRewardsAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"stakingaddress","type":"address"}],"name":"updateedStakingAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"systemaddress","type":"address"}],"name":"updateedSystemAddress","type":"event"},{"inputs":[],"name":"FeesCollected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FeesCollectedBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"addFeeFree","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"addFeeFreeRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burnFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burnaddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_dao","type":"address"}],"name":"changeDAO","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"charityFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"charityaddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"childChainManagerProxy","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dao","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes","name":"depositData","type":"bytes"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_freeze","type":"bool"}],"name":"freezeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"frozenAccount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"giveOwnership","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeFreeRecipient","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeFreeSender","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"newOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"removeFeeFree","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"removeFeeFreeRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardsFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsaddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingaddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"systemFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"systemaddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_burnaddress","type":"address"}],"name":"updateBurnAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_charityaddress","type":"address"}],"name":"updateCharityAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newChildChainManagerProxy","type":"address"}],"name":"updateChildChainManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_totalFee","type":"uint256"},{"internalType":"uint256","name":"_burnFees","type":"uint256"},{"internalType":"uint256","name":"_charityFees","type":"uint256"},{"internalType":"uint256","name":"_rewardsFees","type":"uint256"},{"internalType":"uint256","name":"_systemFees","type":"uint256"},{"internalType":"uint256","name":"_stakingFees","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_rewardsaddress","type":"address"}],"name":"updateRewardsAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_stakingaddress","type":"address"}],"name":"updateStakingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_systemaddress","type":"address"}],"name":"updateSystemAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minTotalSupply","type":"uint256"}],"name":"updateminTotalSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"withdrawErc20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawEth","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405260006004556002600c556028600d55736db02ecbc19f1cd4044b1616d49be1a5ad9f9a94600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506014600f5573a48e5c39c9af0f3b1a948a63f44d63ab777cb684601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506014601155732794f6a795823edebc41d1799c0829ecd36821d2601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060135573705e0d5120511d823b813b9e24e5e34a58616c3a601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460155573edc46d5ddb981b7da1a743b2739e69e44c4fbce7601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601755348015620001e257600080fd5b50604051620055903803806200559083398181016040528101906200020891906200075d565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b6000336040516200027c929190620007b5565b60405180910390a133600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f0429168a83556e356cd18563753346b9c9567cbf0fbea148d40aeb84a76cc5b9600033604051620002f9929190620007b5565b60405180910390a1816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550731e3d5272aa13f0c6d911866dbef3c5979d9b7b40600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620003e7620003ef60201b60201c565b505062000835565b6001600960008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550565b60008151905062000757816200081b565b92915050565b6000806040838503121562000777576200077662000816565b5b6000620007878582860162000746565b92505060206200079a8582860162000746565b9150509250929050565b620007af81620007e2565b82525050565b6000604082019050620007cc6000830185620007a4565b620007db6020830184620007a4565b9392505050565b6000620007ef82620007f6565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200082681620007e2565b81146200083257600080fd5b50565b614d4b80620008456000396000f3fe608060405234801561001057600080fd5b50600436106103425760003560e01c806379cc6790116101b8578063b376291911610104578063dadfc82d116100a2578063e3a0a1481161007c578063e3a0a1481461098d578063e5c5f1d5146109a9578063e724529c146109c7578063ef5552cd146109e357610342565b8063dadfc82d14610925578063dd62ed3e14610941578063e3501cb11461097157610342565b8063cf2c52cb116100de578063cf2c52cb146108af578063d3620f6c146108cb578063d46c83e6146108e9578063d4ee1d901461090757610342565b8063b376291914610845578063b414d4b614610863578063c7e42b1b1461089357610342565b8063992c58e411610171578063a457c2d71161014b578063a457c2d7146107ad578063a9059cbb146107dd578063ae5a17a71461080d578063b1b387d81461082957610342565b8063992c58e4146107695780639a2e751414610785578063a0ef91df146107a357610342565b806379cc6790146106b757806379db6346146106d35780638da5cb5b146106f1578063926c957f1461070f5780639302764d1461072d57806395d89b411461074b57610342565b8063395093511161029257806362f629e7116102305780636c5d47461161020a5780636c5d47461461062f5780636dca7e7b1461065f57806370a082311461067d57806379ba5097146106ad57610342565b806362f629e7146105d75780636a04d837146105f55780636bd89cdd1461061357610342565b80634162169f1161026c5780634162169f1461056557806342966c6814610583578063445a67971461059f5780635b06a1d1146105bb57610342565b806339509351146104f95780633f33b5ed1461052957806340f6ac311461054757610342565b80631d007f5f116102ff578063243d9571116102d9578063243d9571146104875780632c33d12b146104a35780632e1a7d4d146104bf578063313ce567146104db57610342565b80631d007f5f1461041d5780631df4ccfc1461043957806323b872dd1461045757610342565b806306fdde0314610347578063095ea7b3146103655780630a7a6d3e1461039557806313723253146103b357806313b5627e146103e357806318160ddd146103ff575b600080fd5b61034f6109ff565b60405161035c91906141ff565b60405180910390f35b61037f600480360381019061037a9190613cd2565b610a38565b60405161038c91906141c9565b60405180910390f35b61039d610a4f565b6040516103aa919061415c565b60405180910390f35b6103cd60048036038101906103c89190613b72565b610a75565b6040516103da91906141c9565b60405180910390f35b6103fd60048036038101906103f89190613b72565b610a95565b005b610407610b80565b60405161041491906144c1565b60405180910390f35b61043760048036038101906104329190613b72565b610bd4565b005b610441610d9b565b60405161044e91906144c1565b60405180910390f35b610471600480360381019061046c9190613bdf565b610da1565b60405161047e91906141c9565b60405180910390f35b6104a1600480360381019061049c9190613b72565b610f10565b005b6104bd60048036038101906104b89190613b72565b610ffb565b005b6104d960048036038101906104d49190613d12565b611128565b005b6104e3611282565b6040516104f0919061453d565b60405180910390f35b610513600480360381019061050e9190613cd2565b611287565b60405161052091906141c9565b60405180910390f35b610531611325565b60405161053e91906144c1565b60405180910390f35b61054f61132f565b60405161055c91906144c1565b60405180910390f35b61056d611335565b60405161057a919061415c565b60405180910390f35b61059d60048036038101906105989190613d12565b61135b565b005b6105b960048036038101906105b49190613b72565b6113d8565b005b6105d560048036038101906105d09190613b72565b61151a565b005b6105df611647565b6040516105ec919061415c565b60405180910390f35b6105fd61166d565b60405161060a919061415c565b60405180910390f35b61062d60048036038101906106289190613b72565b611693565b005b61064960048036038101906106449190613b72565b6117c0565b60405161065691906141c9565b60405180910390f35b6106676117e0565b60405161067491906144c1565b60405180910390f35b61069760048036038101906106929190613b72565b6117e6565b6040516106a491906144c1565b60405180910390f35b6106b561182f565b005b6106d160048036038101906106cc9190613cd2565b6119a1565b005b6106db611b71565b6040516106e891906144c1565b60405180910390f35b6106f9611b77565b604051610706919061415c565b60405180910390f35b610717611b9b565b60405161072491906144c1565b60405180910390f35b610735611ba5565b60405161074291906144c1565b60405180910390f35b610753611bab565b60405161076091906141ff565b60405180910390f35b610783600480360381019061077e9190613d6c565b611be4565b005b61078d611d83565b60405161079a919061415c565b60405180910390f35b6107ab611da9565b005b6107c760048036038101906107c29190613cd2565b611ea0565b6040516107d491906141c9565b60405180910390f35b6107f760048036038101906107f29190613cd2565b611ffd565b60405161080491906141c9565b60405180910390f35b61082760048036038101906108229190613b72565b612014565b005b610843600480360381019061083e9190613b72565b612141565b005b61084d61222c565b60405161085a91906144c1565b60405180910390f35b61087d60048036038101906108789190613b72565b612232565b60405161088a91906141c9565b60405180910390f35b6108ad60048036038101906108a89190613b72565b612252565b005b6108c960048036038101906108c49190613c72565b612441565b005b6108d36125bf565b6040516108e091906144c1565b60405180910390f35b6108f16125c5565b6040516108fe919061415c565b60405180910390f35b61090f6125eb565b60405161091c919061415c565b60405180910390f35b61093f600480360381019061093a9190613b72565b612611565b005b61095b60048036038101906109569190613b9f565b6126fc565b60405161096891906144c1565b60405180910390f35b61098b60048036038101906109869190613b72565b612721565b005b6109a760048036038101906109a29190613b72565b61284e565b005b6109b1612990565b6040516109be919061415c565b60405180910390f35b6109e160048036038101906109dc9190613c32565b6129b6565b005b6109fd60048036038101906109f89190613d12565b612aa1565b005b6040518060400160405280600b81526020017f546174746f6f4d6f6e657900000000000000000000000000000000000000000081525081565b6000610a45338484612b74565b6001905092915050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60096020528060005260406000206000915054906101000a900460ff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1c90614321565b60405180910390fd5b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600760008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600454610bcf9190614655565b905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5b90614321565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccb90614441565b60405180910390fd5b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f0429168a83556e356cd18563753346b9c9567cbf0fbea148d40aeb84a76cc5b981600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610d8f929190614177565b60405180910390a15050565b600c5481565b600080600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610e66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5d906143a1565b60405180910390fd5b82600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610ef29190614655565b92505081905550610f04858585612d3f565b60019150509392505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9790614321565b60405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461108b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108290614321565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f9729366ab323cf6115a06456475b209ab0c4352336b2a047e4c01fc9e3f65cff601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161111d919061415c565b60405180910390a150565b80600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156111aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a190614241565b60405180910390fd5b80600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111f99190614655565b9250508190555080600460008282546112129190614655565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161127791906144c1565b60405180910390a350565b601281565b600061131b338484600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113169190614574565b612b74565b6001905092915050565b6000600554905090565b600d5481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156113cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c2906143e1565b60405180910390fd5b6113d533826136c1565b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611466576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145d90614281565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156114d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cd90614261565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a190614321565b60405180910390fd5b80601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f4c7be1eca1b767a4c64094fd04d797f2a01ef1c97235f74b660d820f9eb61e92601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161163c919061415c565b60405180910390a150565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171a90614321565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f36249a4c59a5d2a26c9f67f5ae1d4bacc386e296d088fe964d8b2b7c84ec1c3f600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516117b5919061415c565b60405180910390a150565b600a6020528060005260406000206000915054906101000a900460ff1681565b60155481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b6906144a1565b60405180910390fd5b7f0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051611932929190614177565b60405180910390a1336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a08906143e1565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611ad0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac7906143c1565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b5c9190614655565b92505081905550611b6d82826136c1565b5050565b60175481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600654905090565b60135481565b6040518060400160405280600481526020017f544154320000000000000000000000000000000000000000000000000000000081525081565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6b90614321565b60405180910390fd5b600a861115611cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611caf90614341565b60405180910390fd5b611cc58585858585613815565b611d04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfb90614361565b60405180910390fd5b85600c8190555084600d8190555083600f819055508260118190555081601381905550806015819055507f2e494fbb5d1bda2269c90d7124ba22ca99044b61d2a920ece35a1a1726ff0c37600c54600d54600f54601154601354601554604051611d73969594939291906144dc565b60405180910390a1505050505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2e90614281565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611e9d573d6000803e3d6000fd5b50565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611f61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5890614481565b60405180910390fd5b611ff3338484600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fee9190614655565b612b74565b6001905092915050565b600061200a338484612d3f565b6001905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146120a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209b90614321565b60405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f2909f32e8993a2c6600b009c5dbfa98a5c473a19f8ffb5ec74d526424889da7b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051612136919061415c565b60405180910390a150565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146121d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c890614321565b60405180910390fd5b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60115481565b600b6020528060005260406000206000915054906101000a900460ff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146122e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d790614281565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161231b919061415c565b60206040518083038186803b15801561233357600080fd5b505afa158015612347573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236b9190613d3f565b9050600081116123b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a7906142a1565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161240b9291906141a0565b600060405180830381600087803b15801561242557600080fd5b505af1158015612439573d6000803e3d6000fd5b505050505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146124d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124c8906142c1565b60405180910390fd5b600082828101906124e29190613d12565b905080600460008282546124f69190614574565b9250508190555080600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461254c9190614574565b925050819055508373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125b191906144c1565b60405180910390a350505050565b600f5481565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146126a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269890614321565b60405180910390fd5b6001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6008602052816000526040600020602052806000526040600020600091509150505481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146127b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a890614321565b60405180910390fd5b80601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f36673455cdd5315e7174a64a6c145248fb9bcb1a49dae78b003607a20374ceff601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051612843919061415c565b60405180910390a150565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146128dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128d390614281565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561294c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294390614421565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612a46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a3d90614321565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612b31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b2890614321565b60405180910390fd5b806017819055507fe40eb1bbcefbab65467786ab8ac1a53236690eaad8ebdea0c540b13bce510021601754604051612b6991906144c1565b60405180910390a150565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612be4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bdb90614461565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612c54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4b906142e1565b60405180910390fd5b80600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612d3291906144c1565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612daf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612da690614401565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612e1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e1690614221565b60405180910390fd5b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ea390614381565b60405180910390fd5b600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612f39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f3090614301565b60405180910390fd5b600081111561365557600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612fa457612f9f838383613869565b613650565b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561300657613001838383613869565b61364f565b6000806000806000806130188761397f565b955095509550955095509550600086886130329190614655565b9050600086896130429190614655565b905087600560008282546130569190614574565b9250508190555080600760008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546130ac9190614655565b9250508190555081600760008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546131029190614574565b9250508190555060008711156131bd5761311c8b886136c1565b866006600082825461312e9190614574565b92505081905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef896040516131b491906144c1565b60405180910390a35b60008611156132c6578560076000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546132379190614574565b92505081905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040516132bd91906144c1565b60405180910390a35b60008511156133cf578460076000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546133409190614574565b92505081905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040516133c691906144c1565b60405180910390a35b60008411156134d8578360076000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546134499190614574565b92505081905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516134cf91906144c1565b60405180910390a35b60008311156135e1578260076000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546135529190614574565b92505081905550601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516135d891906144c1565b60405180910390a35b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161363e91906144c1565b60405180910390a350505050505050505b5b6136bc565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60006040516136b391906141e4565b60405180910390a35b505050565b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015613743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161373a90614241565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546137929190614655565b925050819055508060076000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461380a9190614574565b925050819055505050565b600080828486888a6138279190614574565b6138319190614574565b61383b9190614574565b6138459190614574565b9050606481141561385a576001915050613860565b60009150505b95945050505050565b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546138b89190614655565b9250508190555080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461390e9190614574565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161397291906144c1565b60405180910390a3505050565b6000806000806000806064600c548861399891906145fb565b6139a291906145ca565b9550601754600760008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546004546139f49190614655565b1115613a1b576064600d5487613a0a91906145fb565b613a1491906145ca565b9450613a20565b600094505b6064600f5487613a3091906145fb565b613a3a91906145ca565b9350606460115487613a4c91906145fb565b613a5691906145ca565b9250606460135487613a6891906145fb565b613a7291906145ca565b9150606460155487613a8491906145fb565b613a8e91906145ca565b90508082848688613a9f9190614574565b613aa99190614574565b613ab39190614574565b613abd9190614574565b955091939550919395565b600081359050613ad781614cd0565b92915050565b600081359050613aec81614ce7565b92915050565b60008083601f840112613b0857613b07614786565b5b8235905067ffffffffffffffff811115613b2557613b24614781565b5b602083019150836001820283011115613b4157613b4061478b565b5b9250929050565b600081359050613b5781614cfe565b92915050565b600081519050613b6c81614cfe565b92915050565b600060208284031215613b8857613b87614795565b5b6000613b9684828501613ac8565b91505092915050565b60008060408385031215613bb657613bb5614795565b5b6000613bc485828601613ac8565b9250506020613bd585828601613ac8565b9150509250929050565b600080600060608486031215613bf857613bf7614795565b5b6000613c0686828701613ac8565b9350506020613c1786828701613ac8565b9250506040613c2886828701613b48565b9150509250925092565b60008060408385031215613c4957613c48614795565b5b6000613c5785828601613ac8565b9250506020613c6885828601613add565b9150509250929050565b600080600060408486031215613c8b57613c8a614795565b5b6000613c9986828701613ac8565b935050602084013567ffffffffffffffff811115613cba57613cb9614790565b5b613cc686828701613af2565b92509250509250925092565b60008060408385031215613ce957613ce8614795565b5b6000613cf785828601613ac8565b9250506020613d0885828601613b48565b9150509250929050565b600060208284031215613d2857613d27614795565b5b6000613d3684828501613b48565b91505092915050565b600060208284031215613d5557613d54614795565b5b6000613d6384828501613b5d565b91505092915050565b60008060008060008060c08789031215613d8957613d88614795565b5b6000613d9789828a01613b48565b9650506020613da889828a01613b48565b9550506040613db989828a01613b48565b9450506060613dca89828a01613b48565b9350506080613ddb89828a01613b48565b92505060a0613dec89828a01613b48565b9150509295509295509295565b613e0281614689565b82525050565b613e118161469b565b82525050565b613e20816146de565b82525050565b6000613e3182614558565b613e3b8185614563565b9350613e4b8185602086016146f0565b613e548161479a565b840191505092915050565b6000613e6c602383614563565b9150613e77826147ab565b604082019050919050565b6000613e8f602283614563565b9150613e9a826147fa565b604082019050919050565b6000613eb2602283614563565b9150613ebd82614849565b604082019050919050565b6000613ed5600a83614563565b9150613ee082614898565b602082019050919050565b6000613ef8601383614563565b9150613f03826148c1565b602082019050919050565b6000613f1b601d83614563565b9150613f26826148ea565b602082019050919050565b6000613f3e602283614563565b9150613f4982614913565b604082019050919050565b6000613f61602483614563565b9150613f6c82614962565b604082019050919050565b6000613f84600883614563565b9150613f8f826149b1565b602082019050919050565b6000613fa7601783614563565b9150613fb2826149da565b602082019050919050565b6000613fca601c83614563565b9150613fd582614a03565b602082019050919050565b6000613fed602683614563565b9150613ff882614a2c565b604082019050919050565b6000614010602883614563565b915061401b82614a7b565b604082019050919050565b6000614033602483614563565b915061403e82614aca565b604082019050919050565b6000614056602183614563565b915061406182614b19565b604082019050919050565b6000614079602583614563565b915061408482614b68565b604082019050919050565b600061409c601683614563565b91506140a782614bb7565b602082019050919050565b60006140bf600b83614563565b91506140ca82614be0565b602082019050919050565b60006140e2602483614563565b91506140ed82614c09565b604082019050919050565b6000614105602583614563565b915061411082614c58565b604082019050919050565b6000614128600d83614563565b915061413382614ca7565b602082019050919050565b614147816146c7565b82525050565b614156816146d1565b82525050565b60006020820190506141716000830184613df9565b92915050565b600060408201905061418c6000830185613df9565b6141996020830184613df9565b9392505050565b60006040820190506141b56000830185613df9565b6141c2602083018461413e565b9392505050565b60006020820190506141de6000830184613e08565b92915050565b60006020820190506141f96000830184613e17565b92915050565b600060208201905081810360008301526142198184613e26565b905092915050565b6000602082019050818103600083015261423a81613e5f565b9050919050565b6000602082019050818103600083015261425a81613e82565b9050919050565b6000602082019050818103600083015261427a81613ea5565b9050919050565b6000602082019050818103600083015261429a81613ec8565b9050919050565b600060208201905081810360008301526142ba81613eeb565b9050919050565b600060208201905081810360008301526142da81613f0e565b9050919050565b600060208201905081810360008301526142fa81613f31565b9050919050565b6000602082019050818103600083015261431a81613f54565b9050919050565b6000602082019050818103600083015261433a81613f77565b9050919050565b6000602082019050818103600083015261435a81613f9a565b9050919050565b6000602082019050818103600083015261437a81613fbd565b9050919050565b6000602082019050818103600083015261439a81613fe0565b9050919050565b600060208201905081810360008301526143ba81614003565b9050919050565b600060208201905081810360008301526143da81614026565b9050919050565b600060208201905081810360008301526143fa81614049565b9050919050565b6000602082019050818103600083015261441a8161406c565b9050919050565b6000602082019050818103600083015261443a8161408f565b9050919050565b6000602082019050818103600083015261445a816140b2565b9050919050565b6000602082019050818103600083015261447a816140d5565b9050919050565b6000602082019050818103600083015261449a816140f8565b9050919050565b600060208201905081810360008301526144ba8161411b565b9050919050565b60006020820190506144d6600083018461413e565b92915050565b600060c0820190506144f1600083018961413e565b6144fe602083018861413e565b61450b604083018761413e565b614518606083018661413e565b614525608083018561413e565b61453260a083018461413e565b979650505050505050565b6000602082019050614552600083018461414d565b92915050565b600081519050919050565b600082825260208201905092915050565b600061457f826146c7565b915061458a836146c7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156145bf576145be614723565b5b828201905092915050565b60006145d5826146c7565b91506145e0836146c7565b9250826145f0576145ef614752565b5b828204905092915050565b6000614606826146c7565b9150614611836146c7565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561464a57614649614723565b5b828202905092915050565b6000614660826146c7565b915061466b836146c7565b92508282101561467e5761467d614723565b5b828203905092915050565b6000614694826146a7565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006146e9826146c7565b9050919050565b60005b8381101561470e5780820151818401526020810190506146f3565b8381111561471d576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f426164204368696c64436861696e4d616e6167657250726f787920616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f6e6c79206f776e657200000000000000000000000000000000000000000000600082015250565b7f4e6f7468696e6720746f20776974686472617700000000000000000000000000600082015250565b7f596f75277265206e6f7420616c6c6f77656420746f206465706f736974000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f44414f3a207472616e7366657220746f2074686973206164647265737320667260008201527f6f7a656e00000000000000000000000000000000000000000000000000000000602082015250565b7f4f6e6c792044414f000000000000000000000000000000000000000000000000600082015250565b7f564552494659204645453a20544f4f2042494720464545000000000000000000600082015250565b7f564552494659204645453a2053554d20444f204e4f54204d4154434800000000600082015250565b7f44414f3a207472616e736665722066726f6d207468697320616464726573732060008201527f66726f7a656e0000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f7760008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f557365722072656e6f756e63654f776e65727368697000000000000000000000600082015250565b7f44414f20746f205a45524f000000000000000000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f4f6e6c79204e65774f776e657200000000000000000000000000000000000000600082015250565b614cd981614689565b8114614ce457600080fd5b50565b614cf08161469b565b8114614cfb57600080fd5b50565b614d07816146c7565b8114614d1257600080fd5b5056fea2646970667358221220c273357f088bcdbe3dc85d4ce83247bd275b5da371d621f3d7bfb3a99ab579c564736f6c634300080700330000000000000000000000009f8e0bdada7ba929509ce92cbbbed0fb129c8832000000000000000000000000a6fa4fb5f76172d178d61b04b0ecd319c5d1c0aa

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106103425760003560e01c806379cc6790116101b8578063b376291911610104578063dadfc82d116100a2578063e3a0a1481161007c578063e3a0a1481461098d578063e5c5f1d5146109a9578063e724529c146109c7578063ef5552cd146109e357610342565b8063dadfc82d14610925578063dd62ed3e14610941578063e3501cb11461097157610342565b8063cf2c52cb116100de578063cf2c52cb146108af578063d3620f6c146108cb578063d46c83e6146108e9578063d4ee1d901461090757610342565b8063b376291914610845578063b414d4b614610863578063c7e42b1b1461089357610342565b8063992c58e411610171578063a457c2d71161014b578063a457c2d7146107ad578063a9059cbb146107dd578063ae5a17a71461080d578063b1b387d81461082957610342565b8063992c58e4146107695780639a2e751414610785578063a0ef91df146107a357610342565b806379cc6790146106b757806379db6346146106d35780638da5cb5b146106f1578063926c957f1461070f5780639302764d1461072d57806395d89b411461074b57610342565b8063395093511161029257806362f629e7116102305780636c5d47461161020a5780636c5d47461461062f5780636dca7e7b1461065f57806370a082311461067d57806379ba5097146106ad57610342565b806362f629e7146105d75780636a04d837146105f55780636bd89cdd1461061357610342565b80634162169f1161026c5780634162169f1461056557806342966c6814610583578063445a67971461059f5780635b06a1d1146105bb57610342565b806339509351146104f95780633f33b5ed1461052957806340f6ac311461054757610342565b80631d007f5f116102ff578063243d9571116102d9578063243d9571146104875780632c33d12b146104a35780632e1a7d4d146104bf578063313ce567146104db57610342565b80631d007f5f1461041d5780631df4ccfc1461043957806323b872dd1461045757610342565b806306fdde0314610347578063095ea7b3146103655780630a7a6d3e1461039557806313723253146103b357806313b5627e146103e357806318160ddd146103ff575b600080fd5b61034f6109ff565b60405161035c91906141ff565b60405180910390f35b61037f600480360381019061037a9190613cd2565b610a38565b60405161038c91906141c9565b60405180910390f35b61039d610a4f565b6040516103aa919061415c565b60405180910390f35b6103cd60048036038101906103c89190613b72565b610a75565b6040516103da91906141c9565b60405180910390f35b6103fd60048036038101906103f89190613b72565b610a95565b005b610407610b80565b60405161041491906144c1565b60405180910390f35b61043760048036038101906104329190613b72565b610bd4565b005b610441610d9b565b60405161044e91906144c1565b60405180910390f35b610471600480360381019061046c9190613bdf565b610da1565b60405161047e91906141c9565b60405180910390f35b6104a1600480360381019061049c9190613b72565b610f10565b005b6104bd60048036038101906104b89190613b72565b610ffb565b005b6104d960048036038101906104d49190613d12565b611128565b005b6104e3611282565b6040516104f0919061453d565b60405180910390f35b610513600480360381019061050e9190613cd2565b611287565b60405161052091906141c9565b60405180910390f35b610531611325565b60405161053e91906144c1565b60405180910390f35b61054f61132f565b60405161055c91906144c1565b60405180910390f35b61056d611335565b60405161057a919061415c565b60405180910390f35b61059d60048036038101906105989190613d12565b61135b565b005b6105b960048036038101906105b49190613b72565b6113d8565b005b6105d560048036038101906105d09190613b72565b61151a565b005b6105df611647565b6040516105ec919061415c565b60405180910390f35b6105fd61166d565b60405161060a919061415c565b60405180910390f35b61062d60048036038101906106289190613b72565b611693565b005b61064960048036038101906106449190613b72565b6117c0565b60405161065691906141c9565b60405180910390f35b6106676117e0565b60405161067491906144c1565b60405180910390f35b61069760048036038101906106929190613b72565b6117e6565b6040516106a491906144c1565b60405180910390f35b6106b561182f565b005b6106d160048036038101906106cc9190613cd2565b6119a1565b005b6106db611b71565b6040516106e891906144c1565b60405180910390f35b6106f9611b77565b604051610706919061415c565b60405180910390f35b610717611b9b565b60405161072491906144c1565b60405180910390f35b610735611ba5565b60405161074291906144c1565b60405180910390f35b610753611bab565b60405161076091906141ff565b60405180910390f35b610783600480360381019061077e9190613d6c565b611be4565b005b61078d611d83565b60405161079a919061415c565b60405180910390f35b6107ab611da9565b005b6107c760048036038101906107c29190613cd2565b611ea0565b6040516107d491906141c9565b60405180910390f35b6107f760048036038101906107f29190613cd2565b611ffd565b60405161080491906141c9565b60405180910390f35b61082760048036038101906108229190613b72565b612014565b005b610843600480360381019061083e9190613b72565b612141565b005b61084d61222c565b60405161085a91906144c1565b60405180910390f35b61087d60048036038101906108789190613b72565b612232565b60405161088a91906141c9565b60405180910390f35b6108ad60048036038101906108a89190613b72565b612252565b005b6108c960048036038101906108c49190613c72565b612441565b005b6108d36125bf565b6040516108e091906144c1565b60405180910390f35b6108f16125c5565b6040516108fe919061415c565b60405180910390f35b61090f6125eb565b60405161091c919061415c565b60405180910390f35b61093f600480360381019061093a9190613b72565b612611565b005b61095b60048036038101906109569190613b9f565b6126fc565b60405161096891906144c1565b60405180910390f35b61098b60048036038101906109869190613b72565b612721565b005b6109a760048036038101906109a29190613b72565b61284e565b005b6109b1612990565b6040516109be919061415c565b60405180910390f35b6109e160048036038101906109dc9190613c32565b6129b6565b005b6109fd60048036038101906109f89190613d12565b612aa1565b005b6040518060400160405280600b81526020017f546174746f6f4d6f6e657900000000000000000000000000000000000000000081525081565b6000610a45338484612b74565b6001905092915050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60096020528060005260406000206000915054906101000a900460ff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1c90614321565b60405180910390fd5b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600760008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600454610bcf9190614655565b905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5b90614321565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccb90614441565b60405180910390fd5b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f0429168a83556e356cd18563753346b9c9567cbf0fbea148d40aeb84a76cc5b981600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610d8f929190614177565b60405180910390a15050565b600c5481565b600080600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610e66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5d906143a1565b60405180910390fd5b82600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610ef29190614655565b92505081905550610f04858585612d3f565b60019150509392505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9790614321565b60405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461108b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108290614321565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f9729366ab323cf6115a06456475b209ab0c4352336b2a047e4c01fc9e3f65cff601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161111d919061415c565b60405180910390a150565b80600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156111aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a190614241565b60405180910390fd5b80600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111f99190614655565b9250508190555080600460008282546112129190614655565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161127791906144c1565b60405180910390a350565b601281565b600061131b338484600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113169190614574565b612b74565b6001905092915050565b6000600554905090565b600d5481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156113cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c2906143e1565b60405180910390fd5b6113d533826136c1565b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611466576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145d90614281565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156114d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cd90614261565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a190614321565b60405180910390fd5b80601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f4c7be1eca1b767a4c64094fd04d797f2a01ef1c97235f74b660d820f9eb61e92601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161163c919061415c565b60405180910390a150565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171a90614321565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f36249a4c59a5d2a26c9f67f5ae1d4bacc386e296d088fe964d8b2b7c84ec1c3f600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516117b5919061415c565b60405180910390a150565b600a6020528060005260406000206000915054906101000a900460ff1681565b60155481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b6906144a1565b60405180910390fd5b7f0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051611932929190614177565b60405180910390a1336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a08906143e1565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611ad0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac7906143c1565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b5c9190614655565b92505081905550611b6d82826136c1565b5050565b60175481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600654905090565b60135481565b6040518060400160405280600481526020017f544154320000000000000000000000000000000000000000000000000000000081525081565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6b90614321565b60405180910390fd5b600a861115611cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611caf90614341565b60405180910390fd5b611cc58585858585613815565b611d04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfb90614361565b60405180910390fd5b85600c8190555084600d8190555083600f819055508260118190555081601381905550806015819055507f2e494fbb5d1bda2269c90d7124ba22ca99044b61d2a920ece35a1a1726ff0c37600c54600d54600f54601154601354601554604051611d73969594939291906144dc565b60405180910390a1505050505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2e90614281565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611e9d573d6000803e3d6000fd5b50565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611f61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5890614481565b60405180910390fd5b611ff3338484600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fee9190614655565b612b74565b6001905092915050565b600061200a338484612d3f565b6001905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146120a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209b90614321565b60405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f2909f32e8993a2c6600b009c5dbfa98a5c473a19f8ffb5ec74d526424889da7b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051612136919061415c565b60405180910390a150565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146121d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c890614321565b60405180910390fd5b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60115481565b600b6020528060005260406000206000915054906101000a900460ff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146122e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d790614281565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161231b919061415c565b60206040518083038186803b15801561233357600080fd5b505afa158015612347573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236b9190613d3f565b9050600081116123b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a7906142a1565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161240b9291906141a0565b600060405180830381600087803b15801561242557600080fd5b505af1158015612439573d6000803e3d6000fd5b505050505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146124d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124c8906142c1565b60405180910390fd5b600082828101906124e29190613d12565b905080600460008282546124f69190614574565b9250508190555080600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461254c9190614574565b925050819055508373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125b191906144c1565b60405180910390a350505050565b600f5481565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146126a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269890614321565b60405180910390fd5b6001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6008602052816000526040600020602052806000526040600020600091509150505481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146127b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a890614321565b60405180910390fd5b80601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f36673455cdd5315e7174a64a6c145248fb9bcb1a49dae78b003607a20374ceff601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051612843919061415c565b60405180910390a150565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146128dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128d390614281565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561294c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294390614421565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612a46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a3d90614321565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612b31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b2890614321565b60405180910390fd5b806017819055507fe40eb1bbcefbab65467786ab8ac1a53236690eaad8ebdea0c540b13bce510021601754604051612b6991906144c1565b60405180910390a150565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612be4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bdb90614461565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612c54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4b906142e1565b60405180910390fd5b80600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612d3291906144c1565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612daf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612da690614401565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612e1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e1690614221565b60405180910390fd5b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ea390614381565b60405180910390fd5b600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612f39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f3090614301565b60405180910390fd5b600081111561365557600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612fa457612f9f838383613869565b613650565b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561300657613001838383613869565b61364f565b6000806000806000806130188761397f565b955095509550955095509550600086886130329190614655565b9050600086896130429190614655565b905087600560008282546130569190614574565b9250508190555080600760008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546130ac9190614655565b9250508190555081600760008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546131029190614574565b9250508190555060008711156131bd5761311c8b886136c1565b866006600082825461312e9190614574565b92505081905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef896040516131b491906144c1565b60405180910390a35b60008611156132c6578560076000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546132379190614574565b92505081905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040516132bd91906144c1565b60405180910390a35b60008511156133cf578460076000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546133409190614574565b92505081905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040516133c691906144c1565b60405180910390a35b60008411156134d8578360076000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546134499190614574565b92505081905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516134cf91906144c1565b60405180910390a35b60008311156135e1578260076000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546135529190614574565b92505081905550601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516135d891906144c1565b60405180910390a35b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161363e91906144c1565b60405180910390a350505050505050505b5b6136bc565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60006040516136b391906141e4565b60405180910390a35b505050565b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015613743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161373a90614241565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546137929190614655565b925050819055508060076000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461380a9190614574565b925050819055505050565b600080828486888a6138279190614574565b6138319190614574565b61383b9190614574565b6138459190614574565b9050606481141561385a576001915050613860565b60009150505b95945050505050565b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546138b89190614655565b9250508190555080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461390e9190614574565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161397291906144c1565b60405180910390a3505050565b6000806000806000806064600c548861399891906145fb565b6139a291906145ca565b9550601754600760008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546004546139f49190614655565b1115613a1b576064600d5487613a0a91906145fb565b613a1491906145ca565b9450613a20565b600094505b6064600f5487613a3091906145fb565b613a3a91906145ca565b9350606460115487613a4c91906145fb565b613a5691906145ca565b9250606460135487613a6891906145fb565b613a7291906145ca565b9150606460155487613a8491906145fb565b613a8e91906145ca565b90508082848688613a9f9190614574565b613aa99190614574565b613ab39190614574565b613abd9190614574565b955091939550919395565b600081359050613ad781614cd0565b92915050565b600081359050613aec81614ce7565b92915050565b60008083601f840112613b0857613b07614786565b5b8235905067ffffffffffffffff811115613b2557613b24614781565b5b602083019150836001820283011115613b4157613b4061478b565b5b9250929050565b600081359050613b5781614cfe565b92915050565b600081519050613b6c81614cfe565b92915050565b600060208284031215613b8857613b87614795565b5b6000613b9684828501613ac8565b91505092915050565b60008060408385031215613bb657613bb5614795565b5b6000613bc485828601613ac8565b9250506020613bd585828601613ac8565b9150509250929050565b600080600060608486031215613bf857613bf7614795565b5b6000613c0686828701613ac8565b9350506020613c1786828701613ac8565b9250506040613c2886828701613b48565b9150509250925092565b60008060408385031215613c4957613c48614795565b5b6000613c5785828601613ac8565b9250506020613c6885828601613add565b9150509250929050565b600080600060408486031215613c8b57613c8a614795565b5b6000613c9986828701613ac8565b935050602084013567ffffffffffffffff811115613cba57613cb9614790565b5b613cc686828701613af2565b92509250509250925092565b60008060408385031215613ce957613ce8614795565b5b6000613cf785828601613ac8565b9250506020613d0885828601613b48565b9150509250929050565b600060208284031215613d2857613d27614795565b5b6000613d3684828501613b48565b91505092915050565b600060208284031215613d5557613d54614795565b5b6000613d6384828501613b5d565b91505092915050565b60008060008060008060c08789031215613d8957613d88614795565b5b6000613d9789828a01613b48565b9650506020613da889828a01613b48565b9550506040613db989828a01613b48565b9450506060613dca89828a01613b48565b9350506080613ddb89828a01613b48565b92505060a0613dec89828a01613b48565b9150509295509295509295565b613e0281614689565b82525050565b613e118161469b565b82525050565b613e20816146de565b82525050565b6000613e3182614558565b613e3b8185614563565b9350613e4b8185602086016146f0565b613e548161479a565b840191505092915050565b6000613e6c602383614563565b9150613e77826147ab565b604082019050919050565b6000613e8f602283614563565b9150613e9a826147fa565b604082019050919050565b6000613eb2602283614563565b9150613ebd82614849565b604082019050919050565b6000613ed5600a83614563565b9150613ee082614898565b602082019050919050565b6000613ef8601383614563565b9150613f03826148c1565b602082019050919050565b6000613f1b601d83614563565b9150613f26826148ea565b602082019050919050565b6000613f3e602283614563565b9150613f4982614913565b604082019050919050565b6000613f61602483614563565b9150613f6c82614962565b604082019050919050565b6000613f84600883614563565b9150613f8f826149b1565b602082019050919050565b6000613fa7601783614563565b9150613fb2826149da565b602082019050919050565b6000613fca601c83614563565b9150613fd582614a03565b602082019050919050565b6000613fed602683614563565b9150613ff882614a2c565b604082019050919050565b6000614010602883614563565b915061401b82614a7b565b604082019050919050565b6000614033602483614563565b915061403e82614aca565b604082019050919050565b6000614056602183614563565b915061406182614b19565b604082019050919050565b6000614079602583614563565b915061408482614b68565b604082019050919050565b600061409c601683614563565b91506140a782614bb7565b602082019050919050565b60006140bf600b83614563565b91506140ca82614be0565b602082019050919050565b60006140e2602483614563565b91506140ed82614c09565b604082019050919050565b6000614105602583614563565b915061411082614c58565b604082019050919050565b6000614128600d83614563565b915061413382614ca7565b602082019050919050565b614147816146c7565b82525050565b614156816146d1565b82525050565b60006020820190506141716000830184613df9565b92915050565b600060408201905061418c6000830185613df9565b6141996020830184613df9565b9392505050565b60006040820190506141b56000830185613df9565b6141c2602083018461413e565b9392505050565b60006020820190506141de6000830184613e08565b92915050565b60006020820190506141f96000830184613e17565b92915050565b600060208201905081810360008301526142198184613e26565b905092915050565b6000602082019050818103600083015261423a81613e5f565b9050919050565b6000602082019050818103600083015261425a81613e82565b9050919050565b6000602082019050818103600083015261427a81613ea5565b9050919050565b6000602082019050818103600083015261429a81613ec8565b9050919050565b600060208201905081810360008301526142ba81613eeb565b9050919050565b600060208201905081810360008301526142da81613f0e565b9050919050565b600060208201905081810360008301526142fa81613f31565b9050919050565b6000602082019050818103600083015261431a81613f54565b9050919050565b6000602082019050818103600083015261433a81613f77565b9050919050565b6000602082019050818103600083015261435a81613f9a565b9050919050565b6000602082019050818103600083015261437a81613fbd565b9050919050565b6000602082019050818103600083015261439a81613fe0565b9050919050565b600060208201905081810360008301526143ba81614003565b9050919050565b600060208201905081810360008301526143da81614026565b9050919050565b600060208201905081810360008301526143fa81614049565b9050919050565b6000602082019050818103600083015261441a8161406c565b9050919050565b6000602082019050818103600083015261443a8161408f565b9050919050565b6000602082019050818103600083015261445a816140b2565b9050919050565b6000602082019050818103600083015261447a816140d5565b9050919050565b6000602082019050818103600083015261449a816140f8565b9050919050565b600060208201905081810360008301526144ba8161411b565b9050919050565b60006020820190506144d6600083018461413e565b92915050565b600060c0820190506144f1600083018961413e565b6144fe602083018861413e565b61450b604083018761413e565b614518606083018661413e565b614525608083018561413e565b61453260a083018461413e565b979650505050505050565b6000602082019050614552600083018461414d565b92915050565b600081519050919050565b600082825260208201905092915050565b600061457f826146c7565b915061458a836146c7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156145bf576145be614723565b5b828201905092915050565b60006145d5826146c7565b91506145e0836146c7565b9250826145f0576145ef614752565b5b828204905092915050565b6000614606826146c7565b9150614611836146c7565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561464a57614649614723565b5b828202905092915050565b6000614660826146c7565b915061466b836146c7565b92508282101561467e5761467d614723565b5b828203905092915050565b6000614694826146a7565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006146e9826146c7565b9050919050565b60005b8381101561470e5780820151818401526020810190506146f3565b8381111561471d576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f426164204368696c64436861696e4d616e6167657250726f787920616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f6e6c79206f776e657200000000000000000000000000000000000000000000600082015250565b7f4e6f7468696e6720746f20776974686472617700000000000000000000000000600082015250565b7f596f75277265206e6f7420616c6c6f77656420746f206465706f736974000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f44414f3a207472616e7366657220746f2074686973206164647265737320667260008201527f6f7a656e00000000000000000000000000000000000000000000000000000000602082015250565b7f4f6e6c792044414f000000000000000000000000000000000000000000000000600082015250565b7f564552494659204645453a20544f4f2042494720464545000000000000000000600082015250565b7f564552494659204645453a2053554d20444f204e4f54204d4154434800000000600082015250565b7f44414f3a207472616e736665722066726f6d207468697320616464726573732060008201527f66726f7a656e0000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f7760008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f557365722072656e6f756e63654f776e65727368697000000000000000000000600082015250565b7f44414f20746f205a45524f000000000000000000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f4f6e6c79204e65774f776e657200000000000000000000000000000000000000600082015250565b614cd981614689565b8114614ce457600080fd5b50565b614cf08161469b565b8114614cfb57600080fd5b50565b614d07816146c7565b8114614d1257600080fd5b5056fea2646970667358221220c273357f088bcdbe3dc85d4ce83247bd275b5da371d621f3d7bfb3a99ab579c564736f6c63430008070033

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

0000000000000000000000009f8e0bdada7ba929509ce92cbbbed0fb129c8832000000000000000000000000a6fa4fb5f76172d178d61b04b0ecd319c5d1c0aa

-----Decoded View---------------
Arg [0] : _owner (address): 0x9f8E0bDAdA7bA929509CE92cbbbEd0Fb129c8832
Arg [1] : _childChainManagerProxy (address): 0xA6FA4fB5f76172d178d61B04b0ecd319C5d1C0aa

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000009f8e0bdada7ba929509ce92cbbbed0fb129c8832
Arg [1] : 000000000000000000000000a6fa4fb5f76172d178d61b04b0ecd319c5d1c0aa


Deployed Bytecode Sourcemap

1003:16667:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1335:43;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7918:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2827:74;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1814:47;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16585:100;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7085:118;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;350:197:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1975:27:0;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8136:424;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17020:112;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4706:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3811:251;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1428:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8597:202;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7238:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2056:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;83:18:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9183:155:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3139:246;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5263:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1291:37;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2373:74;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4442:160;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1867:50;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2751:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7517:154;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;638:202:3;;;:::i;:::-;;9366:319:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2908:32;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;85:20:3;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7377:110:0;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2604:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1384:38;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5643:669;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2672:73;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17200:105;;;:::i;:::-;;8836:323;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7699:192;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4166:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16388:96;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2453:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1923:45;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17401:267;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3391:414;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2298:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2524:74;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;111:23:3;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16811:108:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1735:73;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4987:172;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;449:151:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2114:71:0;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14116:118;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14339:177;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1335:43;;;;;;;;;;;;;;;;;;;:::o;7918:186::-;8019:4;8039:37;8048:10;8060:7;8069:6;8039:8;:37::i;:::-;8093:4;8086:11;;7918:186;;;;:::o;2827:74::-;;;;;;;;;;;;;:::o;1814:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;16585:100::-;310:3:1;;;;;;;;;;;296:17;;:10;:17;;;288:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16673:5:0::1;16649:15;:21;16665:4;16649:21;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;16585:100:::0;:::o;7085:118::-;7140:7;7182:8;:14;1677:1;7182:14;;;;;;;;;;;;;;;;7166:12;;:30;;;;:::i;:::-;7159:37;;7085:118;:::o;350:197:1:-;310:3;;;;;;;;;;;296:17;;:10;:17;;;288:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;434:1:::1;418:18;;:4;:18;;;;410:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;462:14;479:3;;;;;;;;;;;462:20;;498:4;492:3;;:10;;;;;;;;;;;;;;;;;;517:23;528:6;536:3;;;;;;;;;;;517:23;;;;;;;:::i;:::-;;;;;;;;400:147;350:197:::0;:::o;1975:27:0:-;;;;:::o;8136:424::-;8238:4;8254:11;8268:9;:17;8278:6;8268:17;;;;;;;;;;;;;;;:29;8286:10;8268:29;;;;;;;;;;;;;;;;8254:43;;8322:6;8315:3;:13;;8307:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;8480:6;8447:9;:17;8457:6;8447:17;;;;;;;;;;;;;;;:29;8465:10;8447:29;;;;;;;;;;;;;;;;:39;;;;;;;:::i;:::-;;;;;;;;8496:36;8506:6;8514:9;8525:6;8496:9;:36::i;:::-;8549:4;8542:11;;;8136:424;;;;;:::o;17020:112::-;310:3:1;;;;;;;;;;;296:17;;:10;:17;;;288:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;17120:5:0::1;17093:18;:24;17112:4;17093:24;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;17020:112:::0;:::o;4706:178::-;310:3:1;;;;;;;;;;;296:17;;:10;:17;;;288:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;4807:15:0::1;4790:14;;:32;;;;;;;;;;;;;;;;;;4837:40;4861:14;;;;;;;;;;;4837:40;;;;;;:::i;:::-;;;;;;;;4706:178:::0;:::o;3811:251::-;3894:6;3870:8;:20;3879:10;3870:20;;;;;;;;;;;;;;;;:30;;3862:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;3971:6;3947:8;:20;3956:10;3947:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;4001:6;3985:12;;:22;;;;;;;:::i;:::-;;;;;;;;1677:1;4021:34;;4030:10;4021:34;;;4048:6;4021:34;;;;;;:::i;:::-;;;;;;;;3811:251;:::o;1428:35::-;1461:2;1428:35;:::o;8597:202::-;8679:4;8695:76;8705:10;8717:7;8759:10;8726:9;:21;8736:10;8726:21;;;;;;;;;;;;;;;:30;8748:7;8726:30;;;;;;;;;;;;;;;;:43;;;;:::i;:::-;8695:8;:76::i;:::-;8788:4;8781:11;;8597:202;;;;:::o;7238:98::-;7286:7;7312:17;;7305:24;;7238:98;:::o;2056:28::-;;;;:::o;83:18:1:-;;;;;;;;;;;;;:::o;9183:155:0:-;1677:1;9240:18;;:10;:18;;;;9232:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9306:25;9312:10;9324:6;9306:5;:25::i;:::-;9183:155;:::o;3139:246::-;359:5:3;;;;;;;;;;345:19;;:10;:19;;;337:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;3279:1:0::1;3242:39;;:25;:39;;;;3234:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;3353:25;3328:22;;:50;;;;;;;;;;;;;;;;;;3139:246:::0;:::o;5263:178::-;310:3:1;;;;;;;;;;;296:17;;:10;:17;;;288:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;5364:15:0::1;5347:14;;:32;;;;;;;;;;;;;;;;;;5394:40;5418:14;;;;;;;;;;;5394:40;;;;;;:::i;:::-;;;;;;;;5263:178:::0;:::o;1291:37::-;;;;;;;;;;;;;:::o;2373:74::-;;;;;;;;;;;;;:::o;4442:160::-;310:3:1;;;;;;;;;;;296:17;;:10;:17;;;288:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;4534:12:0::1;4520:11;;:26;;;;;;;;;;;;;;;;;;4561:34;4582:11;;;;;;;;;;;4561:34;;;;;;:::i;:::-;;;;;;;;4442:160:::0;:::o;1867:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;2751:31::-;;;;:::o;7517:154::-;7617:7;7647:8;:17;7656:7;7647:17;;;;;;;;;;;;;;;;7640:24;;7517:154;;;:::o;638:202:3:-;706:8;;;;;;;;;;;692:22;;:10;:22;;;684:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;747:33;764:5;;;;;;;;;;771:8;;;;;;;;;;;747:33;;;;;;;:::i;:::-;;;;;;;;798:10;790:5;;:18;;;;;;;;;;;;;;;;;;825:8;;818:15;;;;;;;;;;;638:202::o;9366:319:0:-;1677:1;9444:15;;:7;:15;;;;9436:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;9549:6;9515:9;:18;9525:7;9515:18;;;;;;;;;;;;;;;:30;9534:10;9515:30;;;;;;;;;;;;;;;;:40;;9507:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;9640:6;9606:9;:18;9616:7;9606:18;;;;;;;;;;;;;;;:30;9625:10;9606:30;;;;;;;;;;;;;;;;:40;;;;;;;:::i;:::-;;;;;;;;9656:22;9662:7;9671:6;9656:5;:22::i;:::-;9366:319;;:::o;2908:32::-;;;;:::o;85:20:3:-;;;;;;;;;;;;:::o;7377:110:0:-;7431:7;7457:23;;7450:30;;7377:110;:::o;2604:29::-;;;;:::o;1384:38::-;;;;;;;;;;;;;;;;;;;:::o;5643:669::-;310:3:1;;;;;;;;;;;296:17;;:10;:17;;;288:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;1504:2:0::1;5825:9;:19;;5816:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;5892:77;5904:9;5915:12;5929;5943:11;5956:12;5892:11;:77::i;:::-;5882:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;6024:9;6013:8;:20;;;;6054:9;6043:8;:20;;;;6087:12;6073:11;:26;;;;6123:12;6109:11;:26;;;;6158:11;6145:10;:24;;;;6193:12;6179:11;:26;;;;6221:84;6234:8;;6244;;6254:11;;6267;;6280:10;;6292:11;;6221:84;;;;;;;;;;;:::i;:::-;;;;;;;;5643:669:::0;;;;;;:::o;2672:73::-;;;;;;;;;;;;;:::o;17200:105::-;359:5:3;;;;;;;;;;345:19;;:10;:19;;;337:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;17260:5:0::1;::::0;::::1;;;;;;;;17252:23;;:46;17276:21;17252:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;17200:105::o:0;8836:323::-;8923:4;8982:15;8948:9;:21;8958:10;8948:21;;;;;;;;;;;;;;;:30;8970:7;8948:30;;;;;;;;;;;;;;;;:49;;8939:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;9050:81;9060:10;9072:7;9114:15;9081:9;:21;9091:10;9081:21;;;;;;;;;;;;;;;:30;9103:7;9081:30;;;;;;;;;;;;;;;;:48;;;;:::i;:::-;9050:8;:81::i;:::-;9148:4;9141:11;;8836:323;;;;:::o;7699:192::-;7803:4;7823:40;7833:10;7845:9;7856:6;7823:9;:40::i;:::-;7880:4;7873:11;;7699:192;;;;:::o;4166:178::-;310:3:1;;;;;;;;;;;296:17;;:10;:17;;;288:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;4267:15:0::1;4250:14;;:32;;;;;;;;;;;;;;;;;;4297:40;4321:14;;;;;;;;;;;4297:40;;;;;;:::i;:::-;;;;;;;;4166:178:::0;:::o;16388:96::-;310:3:1;;;;;;;;;;;296:17;;:10;:17;;;288:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16473:4:0::1;16449:15;:21;16465:4;16449:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;16388:96:::0;:::o;2453:31::-;;;;:::o;1923:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;17401:267::-;359:5:3;;;;;;;;;;345:19;;:10;:19;;;337:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;17468:15:0::1;17493:5;17486:23;;;17518:4;17486:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17468:56;;17552:1;17542:7;:11;17534:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;17630:5;17616:29;;;17646:5;::::0;::::1;;;;;;;;17653:7;17616:45;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;17458:210;17401:267:::0;:::o;3391:414::-;3489:22;;;;;;;;;;;3475:36;;:10;:36;;;3467:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;3553:14;3581:11;;3570:34;;;;;;;:::i;:::-;3553:51;;3719:6;3703:12;;:22;;;;;;;:::i;:::-;;;;;;;;3751:6;3733:8;:14;3742:4;3733:14;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;3785:4;3770:28;;1677:1;3770:28;;;3791:6;3770:28;;;;;;:::i;:::-;;;;;;;;3459:346;3391:414;;;:::o;2298:31::-;;;;:::o;2524:74::-;;;;;;;;;;;;;:::o;111:23:3:-;;;;;;;;;;;;;:::o;16811:108:0:-;310:3:1;;;;;;;;;;;296:17;;:10;:17;;;288:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16908:4:0::1;16881:18;:24;16900:4;16881:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;16811:108:::0;:::o;1735:73::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4987:172::-;310:3:1;;;;;;;;;;;296:17;;:10;:17;;;288:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;5085:14:0::1;5069:13;;:30;;;;;;;;;;;;;;;;;;5114:38;5137:13;;;;;;;;;;;5114:38;;;;;;:::i;:::-;;;;;;;;4987:172:::0;:::o;449:151:3:-;359:5;;;;;;;;;;345:19;;:10;:19;;;337:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;539:1:::1;523:18;;:4;:18;;;;515:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;589:4;578:8;;:15;;;;;;;;;;;;;;;;;;449:151:::0;:::o;2114:71:0:-;;;;;;;;;;;;;:::o;14116:118::-;310:3:1;;;;;;;;;;;296:17;;:10;:17;;;288:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14220:7:0::1;14194:13;:23;14208:8;14194:23;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;14116:118:::0;;:::o;14339:177::-;310:3:1;;;;;;;;;;;296:17;;:10;:17;;;288:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14440:15:0::1;14423:14;:32;;;;14470:39;14493:14;;14470:39;;;;;;:::i;:::-;;;;;;;;14339:177:::0;:::o;10600:323::-;1677:1;10695:14;;:6;:14;;;;10687:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;1677:1;10768:15;;:7;:15;;;;10760:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;10862:6;10833:9;:17;10843:6;10833:17;;;;;;;;;;;;;;;:26;10851:7;10833:26;;;;;;;;;;;;;;;:35;;;;10900:7;10883:33;;10892:6;10883:33;;;10909:6;10883:33;;;;;;:::i;:::-;;;;;;;;10600:323;;;:::o;11127:2174::-;1677:1;11225:14;;:6;:14;;;;11217:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;1677:1;11299:17;;:9;:17;;;;11291:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;11375:13;:21;11389:6;11375:21;;;;;;;;;;;;;;;;;;;;;;;;;11374:22;11366:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;11458:13;:24;11472:9;11458:24;;;;;;;;;;;;;;;;;;;;;;;;;11457:25;11449:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11547:1;11538:6;:10;11534:1760;;;11568:15;:23;11584:6;11568:23;;;;;;;;;;;;;;;;;;;;;;;;;11564:1679;;;11608:43;11625:6;11633:9;11644:6;11608:16;:43::i;:::-;11564:1679;;;11675:18;:29;11694:9;11675:29;;;;;;;;;;;;;;;;;;;;;;;;;11672:1571;;;11721:43;11738:6;11746:9;11757:6;11721:16;:43::i;:::-;11672:1571;;;11805:19;11826:15;11843:18;11863:17;11882;11901:18;11924:27;11943:6;11924:17;:27::i;:::-;11803:148;;;;;;;;;;;;11970:19;12001:11;11992:6;:20;;;;:::i;:::-;11970:42;;12030:23;12065:7;12056:6;:16;;;;:::i;:::-;12030:42;;12111:11;12090:17;;:32;;;;;;;:::i;:::-;;;;;;;;12160:15;12140:8;:16;12149:6;12140:16;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;12216:11;12193:8;:19;12202:9;12193:19;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;12256:1;12248:7;:9;12245:197;;;12280:22;12286:6;12294:7;12280:5;:22::i;:::-;12351:7;12324:23;;:34;;;;;;;:::i;:::-;;;;;;;;12402:11;;;;;;;;;;;12385:38;;12394:6;12385:38;;;12415:7;12385:38;;;;;;:::i;:::-;;;;;;;;12245:197;12473:1;12462:10;:12;12459:166;;;12525:10;12497:8;:24;12506:14;;;;;;;;;;;12497:24;;;;;;;;;;;;;;;;:38;;;;;;;:::i;:::-;;;;;;;;12579:14;;;;;;;;;;;12562:44;;12571:6;12562:44;;;12595:10;12562:44;;;;;;:::i;:::-;;;;;;;;12459:166;12655:1;12645:9;:11;12642:163;;;12707:9;12679:8;:24;12688:14;;;;;;;;;;;12679:24;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;12760:14;;;;;;;;;;;12743:43;;12752:6;12743:43;;;12776:9;12743:43;;;;;;:::i;:::-;;;;;;;;12642:163;12835:1;12825:9;:11;12822:161;;;12886:9;12859:8;:23;12868:13;;;;;;;;;;;12859:23;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;12939:13;;;;;;;;;;;12922:42;;12931:6;12922:42;;;12954:9;12922:42;;;;;;:::i;:::-;;;;;;;;12822:161;13014:1;13003:10;:12;13000:166;;;13066:10;13038:8;:24;13047:14;;;;;;;;;;;13038:24;;;;;;;;;;;;;;;;:38;;;;;;;:::i;:::-;;;;;;;;13120:14;;;;;;;;;;;13103:44;;13112:6;13103:44;;;13136:10;13103:44;;;;;;:::i;:::-;;;;;;;;13000:166;13205:9;13188:40;;13197:6;13188:40;;;13216:11;13188:40;;;;;;:::i;:::-;;;;;;;;11785:1458;;;;;;;;11672:1571;11564:1679;11534:1760;;;13281:9;13264:30;;13273:6;13264:30;;;13292:1;13264:30;;;;;;:::i;:::-;;;;;;;;11534:1760;11127:2174;;;:::o;13767:227::-;13863:6;13842:8;:17;13851:7;13842:17;;;;;;;;;;;;;;;;:27;;13833:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;13940:6;13919:8;:17;13928:7;13919:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;13981:6;13956:8;:21;13965:11;;;;;;;;;;;13956:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;13767:227;;:::o;6553:370::-;6703:4;6718:18;6795:12;6781:11;6766:12;6751;6739:9;:24;;;;:::i;:::-;:39;;;;:::i;:::-;:53;;;;:::i;:::-;:68;;;;:::i;:::-;6718:89;;6834:3;6820:10;:17;6817:100;;;6859:4;6852:11;;;;;6817:100;6901:5;6894:12;;;6553:370;;;;;;;;:::o;13510:219::-;13627:6;13607:8;:16;13616:6;13607:16;;;;;;;;;;;;;;;;:26;;;;;;;:::i;:::-;;;;;;;;13666:6;13643:8;:19;13652:9;13643:19;;;;;;;;;;;;;;;;:29;;;;;;;:::i;:::-;;;;;;;;13704:9;13687:35;;13696:6;13687:35;;;13715:6;13687:35;;;;;;:::i;:::-;;;;;;;;13510:219;;;:::o;9691:712::-;9759:19;9780:15;9797:18;9817:17;9836;9855:18;9926:3;9915:8;;9906:6;:17;;;;:::i;:::-;:23;;;;:::i;:::-;9892:37;;9977:14;;9959:8;:14;1677:1;9959:14;;;;;;;;;;;;;;;;9943:12;;:30;;;;:::i;:::-;9942:49;9939:158;;;10041:3;10030:8;;10016:11;:22;;;;:::i;:::-;:28;;;;:::i;:::-;10006:38;;9939:158;;;10085:1;10075:11;;9939:158;10148:3;10134:11;;10120;:25;;;;:::i;:::-;:31;;;;:::i;:::-;10107:44;;10202:3;10188:11;;10174;:25;;;;:::i;:::-;:31;;;;:::i;:::-;10161:44;;10255:3;10242:10;;10228:11;:24;;;;:::i;:::-;:30;;;;:::i;:::-;10215:43;;10310:3;10296:11;;10282;:25;;;;:::i;:::-;:31;;;;:::i;:::-;10268:45;;10384:10;10372:9;10360;10347:10;10337:7;:20;;;;:::i;:::-;:32;;;;:::i;:::-;:44;;;;:::i;:::-;:57;;;;:::i;:::-;10323:71;;9691:712;;;;;;;:::o;7:139:4:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:133::-;195:5;233:6;220:20;211:29;;249:30;273:5;249:30;:::i;:::-;152:133;;;;:::o;304:552::-;361:8;371:6;421:3;414:4;406:6;402:17;398:27;388:122;;429:79;;:::i;:::-;388:122;542:6;529:20;519:30;;572:18;564:6;561:30;558:117;;;594:79;;:::i;:::-;558:117;708:4;700:6;696:17;684:29;;762:3;754:4;746:6;742:17;732:8;728:32;725:41;722:128;;;769:79;;:::i;:::-;722:128;304:552;;;;;:::o;862:139::-;908:5;946:6;933:20;924:29;;962:33;989:5;962:33;:::i;:::-;862:139;;;;:::o;1007:143::-;1064:5;1095:6;1089:13;1080:22;;1111:33;1138:5;1111:33;:::i;:::-;1007:143;;;;:::o;1156:329::-;1215:6;1264:2;1252:9;1243:7;1239:23;1235:32;1232:119;;;1270:79;;:::i;:::-;1232:119;1390:1;1415:53;1460:7;1451:6;1440:9;1436:22;1415:53;:::i;:::-;1405:63;;1361:117;1156:329;;;;:::o;1491:474::-;1559:6;1567;1616:2;1604:9;1595:7;1591:23;1587:32;1584:119;;;1622:79;;:::i;:::-;1584:119;1742:1;1767:53;1812:7;1803:6;1792:9;1788:22;1767:53;:::i;:::-;1757:63;;1713:117;1869:2;1895:53;1940:7;1931:6;1920:9;1916:22;1895:53;:::i;:::-;1885:63;;1840:118;1491:474;;;;;:::o;1971:619::-;2048:6;2056;2064;2113:2;2101:9;2092:7;2088:23;2084:32;2081:119;;;2119:79;;:::i;:::-;2081:119;2239:1;2264:53;2309:7;2300:6;2289:9;2285:22;2264:53;:::i;:::-;2254:63;;2210:117;2366:2;2392:53;2437:7;2428:6;2417:9;2413:22;2392:53;:::i;:::-;2382:63;;2337:118;2494:2;2520:53;2565:7;2556:6;2545:9;2541:22;2520:53;:::i;:::-;2510:63;;2465:118;1971:619;;;;;:::o;2596:468::-;2661:6;2669;2718:2;2706:9;2697:7;2693:23;2689:32;2686:119;;;2724:79;;:::i;:::-;2686:119;2844:1;2869:53;2914:7;2905:6;2894:9;2890:22;2869:53;:::i;:::-;2859:63;;2815:117;2971:2;2997:50;3039:7;3030:6;3019:9;3015:22;2997:50;:::i;:::-;2987:60;;2942:115;2596:468;;;;;:::o;3070:672::-;3149:6;3157;3165;3214:2;3202:9;3193:7;3189:23;3185:32;3182:119;;;3220:79;;:::i;:::-;3182:119;3340:1;3365:53;3410:7;3401:6;3390:9;3386:22;3365:53;:::i;:::-;3355:63;;3311:117;3495:2;3484:9;3480:18;3467:32;3526:18;3518:6;3515:30;3512:117;;;3548:79;;:::i;:::-;3512:117;3661:64;3717:7;3708:6;3697:9;3693:22;3661:64;:::i;:::-;3643:82;;;;3438:297;3070:672;;;;;:::o;3748:474::-;3816:6;3824;3873:2;3861:9;3852:7;3848:23;3844:32;3841:119;;;3879:79;;:::i;:::-;3841:119;3999:1;4024:53;4069:7;4060:6;4049:9;4045:22;4024:53;:::i;:::-;4014:63;;3970:117;4126:2;4152:53;4197:7;4188:6;4177:9;4173:22;4152:53;:::i;:::-;4142:63;;4097:118;3748:474;;;;;:::o;4228:329::-;4287:6;4336:2;4324:9;4315:7;4311:23;4307:32;4304:119;;;4342:79;;:::i;:::-;4304:119;4462:1;4487:53;4532:7;4523:6;4512:9;4508:22;4487:53;:::i;:::-;4477:63;;4433:117;4228:329;;;;:::o;4563:351::-;4633:6;4682:2;4670:9;4661:7;4657:23;4653:32;4650:119;;;4688:79;;:::i;:::-;4650:119;4808:1;4833:64;4889:7;4880:6;4869:9;4865:22;4833:64;:::i;:::-;4823:74;;4779:128;4563:351;;;;:::o;4920:1057::-;5024:6;5032;5040;5048;5056;5064;5113:3;5101:9;5092:7;5088:23;5084:33;5081:120;;;5120:79;;:::i;:::-;5081:120;5240:1;5265:53;5310:7;5301:6;5290:9;5286:22;5265:53;:::i;:::-;5255:63;;5211:117;5367:2;5393:53;5438:7;5429:6;5418:9;5414:22;5393:53;:::i;:::-;5383:63;;5338:118;5495:2;5521:53;5566:7;5557:6;5546:9;5542:22;5521:53;:::i;:::-;5511:63;;5466:118;5623:2;5649:53;5694:7;5685:6;5674:9;5670:22;5649:53;:::i;:::-;5639:63;;5594:118;5751:3;5778:53;5823:7;5814:6;5803:9;5799:22;5778:53;:::i;:::-;5768:63;;5722:119;5880:3;5907:53;5952:7;5943:6;5932:9;5928:22;5907:53;:::i;:::-;5897:63;;5851:119;4920:1057;;;;;;;;:::o;5983:118::-;6070:24;6088:5;6070:24;:::i;:::-;6065:3;6058:37;5983:118;;:::o;6107:109::-;6188:21;6203:5;6188:21;:::i;:::-;6183:3;6176:34;6107:109;;:::o;6222:147::-;6317:45;6356:5;6317:45;:::i;:::-;6312:3;6305:58;6222:147;;:::o;6375:364::-;6463:3;6491:39;6524:5;6491:39;:::i;:::-;6546:71;6610:6;6605:3;6546:71;:::i;:::-;6539:78;;6626:52;6671:6;6666:3;6659:4;6652:5;6648:16;6626:52;:::i;:::-;6703:29;6725:6;6703:29;:::i;:::-;6698:3;6694:39;6687:46;;6467:272;6375:364;;;;:::o;6745:366::-;6887:3;6908:67;6972:2;6967:3;6908:67;:::i;:::-;6901:74;;6984:93;7073:3;6984:93;:::i;:::-;7102:2;7097:3;7093:12;7086:19;;6745:366;;;:::o;7117:::-;7259:3;7280:67;7344:2;7339:3;7280:67;:::i;:::-;7273:74;;7356:93;7445:3;7356:93;:::i;:::-;7474:2;7469:3;7465:12;7458:19;;7117:366;;;:::o;7489:::-;7631:3;7652:67;7716:2;7711:3;7652:67;:::i;:::-;7645:74;;7728:93;7817:3;7728:93;:::i;:::-;7846:2;7841:3;7837:12;7830:19;;7489:366;;;:::o;7861:::-;8003:3;8024:67;8088:2;8083:3;8024:67;:::i;:::-;8017:74;;8100:93;8189:3;8100:93;:::i;:::-;8218:2;8213:3;8209:12;8202:19;;7861:366;;;:::o;8233:::-;8375:3;8396:67;8460:2;8455:3;8396:67;:::i;:::-;8389:74;;8472:93;8561:3;8472:93;:::i;:::-;8590:2;8585:3;8581:12;8574:19;;8233:366;;;:::o;8605:::-;8747:3;8768:67;8832:2;8827:3;8768:67;:::i;:::-;8761:74;;8844:93;8933:3;8844:93;:::i;:::-;8962:2;8957:3;8953:12;8946:19;;8605:366;;;:::o;8977:::-;9119:3;9140:67;9204:2;9199:3;9140:67;:::i;:::-;9133:74;;9216:93;9305:3;9216:93;:::i;:::-;9334:2;9329:3;9325:12;9318:19;;8977:366;;;:::o;9349:::-;9491:3;9512:67;9576:2;9571:3;9512:67;:::i;:::-;9505:74;;9588:93;9677:3;9588:93;:::i;:::-;9706:2;9701:3;9697:12;9690:19;;9349:366;;;:::o;9721:365::-;9863:3;9884:66;9948:1;9943:3;9884:66;:::i;:::-;9877:73;;9959:93;10048:3;9959:93;:::i;:::-;10077:2;10072:3;10068:12;10061:19;;9721:365;;;:::o;10092:366::-;10234:3;10255:67;10319:2;10314:3;10255:67;:::i;:::-;10248:74;;10331:93;10420:3;10331:93;:::i;:::-;10449:2;10444:3;10440:12;10433:19;;10092:366;;;:::o;10464:::-;10606:3;10627:67;10691:2;10686:3;10627:67;:::i;:::-;10620:74;;10703:93;10792:3;10703:93;:::i;:::-;10821:2;10816:3;10812:12;10805:19;;10464:366;;;:::o;10836:::-;10978:3;10999:67;11063:2;11058:3;10999:67;:::i;:::-;10992:74;;11075:93;11164:3;11075:93;:::i;:::-;11193:2;11188:3;11184:12;11177:19;;10836:366;;;:::o;11208:::-;11350:3;11371:67;11435:2;11430:3;11371:67;:::i;:::-;11364:74;;11447:93;11536:3;11447:93;:::i;:::-;11565:2;11560:3;11556:12;11549:19;;11208:366;;;:::o;11580:::-;11722:3;11743:67;11807:2;11802:3;11743:67;:::i;:::-;11736:74;;11819:93;11908:3;11819:93;:::i;:::-;11937:2;11932:3;11928:12;11921:19;;11580:366;;;:::o;11952:::-;12094:3;12115:67;12179:2;12174:3;12115:67;:::i;:::-;12108:74;;12191:93;12280:3;12191:93;:::i;:::-;12309:2;12304:3;12300:12;12293:19;;11952:366;;;:::o;12324:::-;12466:3;12487:67;12551:2;12546:3;12487:67;:::i;:::-;12480:74;;12563:93;12652:3;12563:93;:::i;:::-;12681:2;12676:3;12672:12;12665:19;;12324:366;;;:::o;12696:::-;12838:3;12859:67;12923:2;12918:3;12859:67;:::i;:::-;12852:74;;12935:93;13024:3;12935:93;:::i;:::-;13053:2;13048:3;13044:12;13037:19;;12696:366;;;:::o;13068:::-;13210:3;13231:67;13295:2;13290:3;13231:67;:::i;:::-;13224:74;;13307:93;13396:3;13307:93;:::i;:::-;13425:2;13420:3;13416:12;13409:19;;13068:366;;;:::o;13440:::-;13582:3;13603:67;13667:2;13662:3;13603:67;:::i;:::-;13596:74;;13679:93;13768:3;13679:93;:::i;:::-;13797:2;13792:3;13788:12;13781:19;;13440:366;;;:::o;13812:::-;13954:3;13975:67;14039:2;14034:3;13975:67;:::i;:::-;13968:74;;14051:93;14140:3;14051:93;:::i;:::-;14169:2;14164:3;14160:12;14153:19;;13812:366;;;:::o;14184:::-;14326:3;14347:67;14411:2;14406:3;14347:67;:::i;:::-;14340:74;;14423:93;14512:3;14423:93;:::i;:::-;14541:2;14536:3;14532:12;14525:19;;14184:366;;;:::o;14556:118::-;14643:24;14661:5;14643:24;:::i;:::-;14638:3;14631:37;14556:118;;:::o;14680:112::-;14763:22;14779:5;14763:22;:::i;:::-;14758:3;14751:35;14680:112;;:::o;14798:222::-;14891:4;14929:2;14918:9;14914:18;14906:26;;14942:71;15010:1;14999:9;14995:17;14986:6;14942:71;:::i;:::-;14798:222;;;;:::o;15026:332::-;15147:4;15185:2;15174:9;15170:18;15162:26;;15198:71;15266:1;15255:9;15251:17;15242:6;15198:71;:::i;:::-;15279:72;15347:2;15336:9;15332:18;15323:6;15279:72;:::i;:::-;15026:332;;;;;:::o;15364:::-;15485:4;15523:2;15512:9;15508:18;15500:26;;15536:71;15604:1;15593:9;15589:17;15580:6;15536:71;:::i;:::-;15617:72;15685:2;15674:9;15670:18;15661:6;15617:72;:::i;:::-;15364:332;;;;;:::o;15702:210::-;15789:4;15827:2;15816:9;15812:18;15804:26;;15840:65;15902:1;15891:9;15887:17;15878:6;15840:65;:::i;:::-;15702:210;;;;:::o;15918:238::-;16019:4;16057:2;16046:9;16042:18;16034:26;;16070:79;16146:1;16135:9;16131:17;16122:6;16070:79;:::i;:::-;15918:238;;;;:::o;16162:313::-;16275:4;16313:2;16302:9;16298:18;16290:26;;16362:9;16356:4;16352:20;16348:1;16337:9;16333:17;16326:47;16390:78;16463:4;16454:6;16390:78;:::i;:::-;16382:86;;16162:313;;;;:::o;16481:419::-;16647:4;16685:2;16674:9;16670:18;16662:26;;16734:9;16728:4;16724:20;16720:1;16709:9;16705:17;16698:47;16762:131;16888:4;16762:131;:::i;:::-;16754:139;;16481:419;;;:::o;16906:::-;17072:4;17110:2;17099:9;17095:18;17087:26;;17159:9;17153:4;17149:20;17145:1;17134:9;17130:17;17123:47;17187:131;17313:4;17187:131;:::i;:::-;17179:139;;16906:419;;;:::o;17331:::-;17497:4;17535:2;17524:9;17520:18;17512:26;;17584:9;17578:4;17574:20;17570:1;17559:9;17555:17;17548:47;17612:131;17738:4;17612:131;:::i;:::-;17604:139;;17331:419;;;:::o;17756:::-;17922:4;17960:2;17949:9;17945:18;17937:26;;18009:9;18003:4;17999:20;17995:1;17984:9;17980:17;17973:47;18037:131;18163:4;18037:131;:::i;:::-;18029:139;;17756:419;;;:::o;18181:::-;18347:4;18385:2;18374:9;18370:18;18362:26;;18434:9;18428:4;18424:20;18420:1;18409:9;18405:17;18398:47;18462:131;18588:4;18462:131;:::i;:::-;18454:139;;18181:419;;;:::o;18606:::-;18772:4;18810:2;18799:9;18795:18;18787:26;;18859:9;18853:4;18849:20;18845:1;18834:9;18830:17;18823:47;18887:131;19013:4;18887:131;:::i;:::-;18879:139;;18606:419;;;:::o;19031:::-;19197:4;19235:2;19224:9;19220:18;19212:26;;19284:9;19278:4;19274:20;19270:1;19259:9;19255:17;19248:47;19312:131;19438:4;19312:131;:::i;:::-;19304:139;;19031:419;;;:::o;19456:::-;19622:4;19660:2;19649:9;19645:18;19637:26;;19709:9;19703:4;19699:20;19695:1;19684:9;19680:17;19673:47;19737:131;19863:4;19737:131;:::i;:::-;19729:139;;19456:419;;;:::o;19881:::-;20047:4;20085:2;20074:9;20070:18;20062:26;;20134:9;20128:4;20124:20;20120:1;20109:9;20105:17;20098:47;20162:131;20288:4;20162:131;:::i;:::-;20154:139;;19881:419;;;:::o;20306:::-;20472:4;20510:2;20499:9;20495:18;20487:26;;20559:9;20553:4;20549:20;20545:1;20534:9;20530:17;20523:47;20587:131;20713:4;20587:131;:::i;:::-;20579:139;;20306:419;;;:::o;20731:::-;20897:4;20935:2;20924:9;20920:18;20912:26;;20984:9;20978:4;20974:20;20970:1;20959:9;20955:17;20948:47;21012:131;21138:4;21012:131;:::i;:::-;21004:139;;20731:419;;;:::o;21156:::-;21322:4;21360:2;21349:9;21345:18;21337:26;;21409:9;21403:4;21399:20;21395:1;21384:9;21380:17;21373:47;21437:131;21563:4;21437:131;:::i;:::-;21429:139;;21156:419;;;:::o;21581:::-;21747:4;21785:2;21774:9;21770:18;21762:26;;21834:9;21828:4;21824:20;21820:1;21809:9;21805:17;21798:47;21862:131;21988:4;21862:131;:::i;:::-;21854:139;;21581:419;;;:::o;22006:::-;22172:4;22210:2;22199:9;22195:18;22187:26;;22259:9;22253:4;22249:20;22245:1;22234:9;22230:17;22223:47;22287:131;22413:4;22287:131;:::i;:::-;22279:139;;22006:419;;;:::o;22431:::-;22597:4;22635:2;22624:9;22620:18;22612:26;;22684:9;22678:4;22674:20;22670:1;22659:9;22655:17;22648:47;22712:131;22838:4;22712:131;:::i;:::-;22704:139;;22431:419;;;:::o;22856:::-;23022:4;23060:2;23049:9;23045:18;23037:26;;23109:9;23103:4;23099:20;23095:1;23084:9;23080:17;23073:47;23137:131;23263:4;23137:131;:::i;:::-;23129:139;;22856:419;;;:::o;23281:::-;23447:4;23485:2;23474:9;23470:18;23462:26;;23534:9;23528:4;23524:20;23520:1;23509:9;23505:17;23498:47;23562:131;23688:4;23562:131;:::i;:::-;23554:139;;23281:419;;;:::o;23706:::-;23872:4;23910:2;23899:9;23895:18;23887:26;;23959:9;23953:4;23949:20;23945:1;23934:9;23930:17;23923:47;23987:131;24113:4;23987:131;:::i;:::-;23979:139;;23706:419;;;:::o;24131:::-;24297:4;24335:2;24324:9;24320:18;24312:26;;24384:9;24378:4;24374:20;24370:1;24359:9;24355:17;24348:47;24412:131;24538:4;24412:131;:::i;:::-;24404:139;;24131:419;;;:::o;24556:::-;24722:4;24760:2;24749:9;24745:18;24737:26;;24809:9;24803:4;24799:20;24795:1;24784:9;24780:17;24773:47;24837:131;24963:4;24837:131;:::i;:::-;24829:139;;24556:419;;;:::o;24981:::-;25147:4;25185:2;25174:9;25170:18;25162:26;;25234:9;25228:4;25224:20;25220:1;25209:9;25205:17;25198:47;25262:131;25388:4;25262:131;:::i;:::-;25254:139;;24981:419;;;:::o;25406:222::-;25499:4;25537:2;25526:9;25522:18;25514:26;;25550:71;25618:1;25607:9;25603:17;25594:6;25550:71;:::i;:::-;25406:222;;;;:::o;25634:775::-;25867:4;25905:3;25894:9;25890:19;25882:27;;25919:71;25987:1;25976:9;25972:17;25963:6;25919:71;:::i;:::-;26000:72;26068:2;26057:9;26053:18;26044:6;26000:72;:::i;:::-;26082;26150:2;26139:9;26135:18;26126:6;26082:72;:::i;:::-;26164;26232:2;26221:9;26217:18;26208:6;26164:72;:::i;:::-;26246:73;26314:3;26303:9;26299:19;26290:6;26246:73;:::i;:::-;26329;26397:3;26386:9;26382:19;26373:6;26329:73;:::i;:::-;25634:775;;;;;;;;;:::o;26415:214::-;26504:4;26542:2;26531:9;26527:18;26519:26;;26555:67;26619:1;26608:9;26604:17;26595:6;26555:67;:::i;:::-;26415:214;;;;:::o;26716:99::-;26768:6;26802:5;26796:12;26786:22;;26716:99;;;:::o;26821:169::-;26905:11;26939:6;26934:3;26927:19;26979:4;26974:3;26970:14;26955:29;;26821:169;;;;:::o;26996:305::-;27036:3;27055:20;27073:1;27055:20;:::i;:::-;27050:25;;27089:20;27107:1;27089:20;:::i;:::-;27084:25;;27243:1;27175:66;27171:74;27168:1;27165:81;27162:107;;;27249:18;;:::i;:::-;27162:107;27293:1;27290;27286:9;27279:16;;26996:305;;;;:::o;27307:185::-;27347:1;27364:20;27382:1;27364:20;:::i;:::-;27359:25;;27398:20;27416:1;27398:20;:::i;:::-;27393:25;;27437:1;27427:35;;27442:18;;:::i;:::-;27427:35;27484:1;27481;27477:9;27472:14;;27307:185;;;;:::o;27498:348::-;27538:7;27561:20;27579:1;27561:20;:::i;:::-;27556:25;;27595:20;27613:1;27595:20;:::i;:::-;27590:25;;27783:1;27715:66;27711:74;27708:1;27705:81;27700:1;27693:9;27686:17;27682:105;27679:131;;;27790:18;;:::i;:::-;27679:131;27838:1;27835;27831:9;27820:20;;27498:348;;;;:::o;27852:191::-;27892:4;27912:20;27930:1;27912:20;:::i;:::-;27907:25;;27946:20;27964:1;27946:20;:::i;:::-;27941:25;;27985:1;27982;27979:8;27976:34;;;27990:18;;:::i;:::-;27976:34;28035:1;28032;28028:9;28020:17;;27852:191;;;;:::o;28049:96::-;28086:7;28115:24;28133:5;28115:24;:::i;:::-;28104:35;;28049:96;;;:::o;28151:90::-;28185:7;28228:5;28221:13;28214:21;28203:32;;28151:90;;;:::o;28247:126::-;28284:7;28324:42;28317:5;28313:54;28302:65;;28247:126;;;:::o;28379:77::-;28416:7;28445:5;28434:16;;28379:77;;;:::o;28462:86::-;28497:7;28537:4;28530:5;28526:16;28515:27;;28462:86;;;:::o;28554:121::-;28612:9;28645:24;28663:5;28645:24;:::i;:::-;28632:37;;28554:121;;;:::o;28681:307::-;28749:1;28759:113;28773:6;28770:1;28767:13;28759:113;;;28858:1;28853:3;28849:11;28843:18;28839:1;28834:3;28830:11;28823:39;28795:2;28792:1;28788:10;28783:15;;28759:113;;;28890:6;28887:1;28884:13;28881:101;;;28970:1;28961:6;28956:3;28952:16;28945:27;28881:101;28730:258;28681:307;;;:::o;28994:180::-;29042:77;29039:1;29032:88;29139:4;29136:1;29129:15;29163:4;29160:1;29153:15;29180:180;29228:77;29225:1;29218:88;29325:4;29322:1;29315:15;29349:4;29346:1;29339:15;29366:117;29475:1;29472;29465:12;29489:117;29598:1;29595;29588:12;29612:117;29721:1;29718;29711:12;29735:117;29844:1;29841;29834:12;29858:117;29967:1;29964;29957:12;29981:102;30022:6;30073:2;30069:7;30064:2;30057:5;30053:14;30049:28;30039:38;;29981:102;;;:::o;30089:222::-;30229:34;30225:1;30217:6;30213:14;30206:58;30298:5;30293:2;30285:6;30281:15;30274:30;30089:222;:::o;30317:221::-;30457:34;30453:1;30445:6;30441:14;30434:58;30526:4;30521:2;30513:6;30509:15;30502:29;30317:221;:::o;30544:::-;30684:34;30680:1;30672:6;30668:14;30661:58;30753:4;30748:2;30740:6;30736:15;30729:29;30544:221;:::o;30771:160::-;30911:12;30907:1;30899:6;30895:14;30888:36;30771:160;:::o;30937:169::-;31077:21;31073:1;31065:6;31061:14;31054:45;30937:169;:::o;31112:179::-;31252:31;31248:1;31240:6;31236:14;31229:55;31112:179;:::o;31297:221::-;31437:34;31433:1;31425:6;31421:14;31414:58;31506:4;31501:2;31493:6;31489:15;31482:29;31297:221;:::o;31524:223::-;31664:34;31660:1;31652:6;31648:14;31641:58;31733:6;31728:2;31720:6;31716:15;31709:31;31524:223;:::o;31753:158::-;31893:10;31889:1;31881:6;31877:14;31870:34;31753:158;:::o;31917:173::-;32057:25;32053:1;32045:6;32041:14;32034:49;31917:173;:::o;32096:178::-;32236:30;32232:1;32224:6;32220:14;32213:54;32096:178;:::o;32280:225::-;32420:34;32416:1;32408:6;32404:14;32397:58;32489:8;32484:2;32476:6;32472:15;32465:33;32280:225;:::o;32511:227::-;32651:34;32647:1;32639:6;32635:14;32628:58;32720:10;32715:2;32707:6;32703:15;32696:35;32511:227;:::o;32744:223::-;32884:34;32880:1;32872:6;32868:14;32861:58;32953:6;32948:2;32940:6;32936:15;32929:31;32744:223;:::o;32973:220::-;33113:34;33109:1;33101:6;33097:14;33090:58;33182:3;33177:2;33169:6;33165:15;33158:28;32973:220;:::o;33199:224::-;33339:34;33335:1;33327:6;33323:14;33316:58;33408:7;33403:2;33395:6;33391:15;33384:32;33199:224;:::o;33429:172::-;33569:24;33565:1;33557:6;33553:14;33546:48;33429:172;:::o;33607:161::-;33747:13;33743:1;33735:6;33731:14;33724:37;33607:161;:::o;33774:223::-;33914:34;33910:1;33902:6;33898:14;33891:58;33983:6;33978:2;33970:6;33966:15;33959:31;33774:223;:::o;34003:224::-;34143:34;34139:1;34131:6;34127:14;34120:58;34212:7;34207:2;34199:6;34195:15;34188:32;34003:224;:::o;34233:163::-;34373:15;34369:1;34361:6;34357:14;34350:39;34233:163;:::o;34402:122::-;34475:24;34493:5;34475:24;:::i;:::-;34468:5;34465:35;34455:63;;34514:1;34511;34504:12;34455:63;34402:122;:::o;34530:116::-;34600:21;34615:5;34600:21;:::i;:::-;34593:5;34590:32;34580:60;;34636:1;34633;34626:12;34580:60;34530:116;:::o;34652:122::-;34725:24;34743:5;34725:24;:::i;:::-;34718:5;34715:35;34705:63;;34764:1;34761;34754:12;34705:63;34652:122;:::o

Swarm Source

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