ETH Price: $3,329.82 (-0.41%)

Token

ChinToHaCoin (CTHC)
 

Overview

Max Total Supply

1,760 CTHC

Holders

102

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 0 Decimals)

Balance
2 CTHC

Value
$0.00
0x72e2d029c1019b035eafa99642c5f90016db9910
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
ChinToHaCoin

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU GPLv2 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-02-17
*/

pragma solidity ^0.4.25;

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address public owner;

  event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

  /**
   * @dev The constructor sets the original `owner` of the contract to the sender
   * account.
   */
    constructor() public
    {
       owner = msg.sender;
    }

  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }


  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function transferOwnership(address newOwner) onlyOwner public {
    require(newOwner != address(0));
    emit OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }
}

contract Token {

    /// @return total amount of tokens
    function totalSupply() constant returns (uint256 supply) {}

    /// @param _owner The address from which the balance will be retrieved
    /// @return The balance
    function balanceOf(address _owner) constant returns (uint256 balance) {}

    /// @notice send `_value` token to `_to` from `msg.sender`
    /// @param _to The address of the recipient
    /// @param _value The amount of token to be transferred
    /// @return Whether the transfer was successful or not
    function transfer(address _to, uint256 _value) returns (bool success) {}

    /// @notice send `_value` token to `_to` from `_from` on the condition it is approved by `_from`
    /// @param _from The address of the sender
    /// @param _to The address of the recipient
    /// @param _value The amount of token to be transferred
    /// @return Whether the transfer was successful or not
    function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {}

    /// @notice `msg.sender` approves `_addr` to spend `_value` tokens
    /// @param _spender The address of the account able to transfer the tokens
    /// @param _value The amount of wei to be approved for transfer
    /// @return Whether the approval was successful or not
    function approve(address _spender, uint256 _value) returns (bool success) {}

    /// @param _owner The address of the account owning tokens
    /// @param _spender The address of the account able to transfer the tokens
    /// @return Amount of remaining tokens allowed to spent
    function allowance(address _owner, address _spender) constant returns (uint256 remaining) {}

    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
    event setNewBlockEvent(string SecretKey_Pre, string Name_New, string TxHash_Pre, string DigestCode_New, string Image_New, string Note_New);
}

contract COLLATERAL  {
    
    function decimals() pure returns (uint) {}
    function CreditRate()  pure returns (uint256) {}
    function credit(uint256 _value) public {}
    function repayment(uint256 _amount) public returns (bool) {}
}

contract StandardToken is Token {

    COLLATERAL dc;
    address public collateral_contract;
    uint public constant decimals = 0;

 function transfer(address _to, uint256 _value) returns(bool success) {
        //Default assumes totalSupply can't be over max (2^256 - 1).
        //If your token leaves out totalSupply and can issue more tokens as time goes on, you need to check if it doesn't wrap.
        //Replace the if with this one instead.
        //if (balances[msg.sender] >= _value && balances[_to] + _value > balances[_to]) {
        if (balances[msg.sender] >= _value && _value > 0) {
            balances[msg.sender] -= _value;
            balances[_to] += _value;
            emit Transfer(msg.sender, _to, _value);
            return true;
        } else { return false; }
    }

    function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {
        //same as above. Replace this line with the following if you want to protect against wrapping uints.
        //if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && balances[_to] + _value > balances[_to]) {
        if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && _value > 0) {
            balances[_to] += _value;
            balances[_from] -= _value;
            allowed[_from][msg.sender] -= _value;
            emit Transfer(_from, _to, _value);
            return true;
        } else { return false; }
    }

    function balanceOf(address _owner) constant returns (uint256 balance) {
        return balances[_owner];
    }

    function approve(address _spender, uint256 _value) returns (bool success) {
        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
        return allowed[_owner][_spender];
    }

    mapping (address => uint256) balances;
    mapping (address => mapping (address => uint256)) allowed;
    uint256 public totalSupply;
}


/**
 * @title Debitable token
 * @dev ERC20 Token, with debitable token creation
 */
contract DebitableToken is StandardToken, Ownable {
  event Debit(address collateral_contract, uint256 amount);
  event Deposit(address indexed _to_debitor, uint256 _value);  
  event DebitFinished();

  using SafeMath for uint256;
  bool public debitingFinished = false;

  modifier canDebit() {
    require(!debitingFinished);
    _;
  }

  modifier hasDebitPermission() {
    require(msg.sender == owner);
    _;
  }
  
  /**
   * @dev Function to debit tokens
   * @param _to The address that will receive the drawdown tokens.
   * @param _amount The amount of tokens to debit.
   * @return A boolean that indicates if the operation was successful.
   */
  function debit(
    address _to,
    uint256 _amount
  )
    public
    hasDebitPermission
    canDebit
    returns (bool)
  {
    dc = COLLATERAL(collateral_contract);
    uint256 rate = dc.CreditRate();
    uint256 deci = 10 ** decimals; 
    uint256 _amount_1 =  _amount / deci / rate;
    uint256 _amount_2 =  _amount_1 * deci * rate;
    
    require( _amount_1 > 0);
    dc.credit( _amount_1 );  
    
    uint256 _amountx = _amount_2;
    totalSupply = totalSupply.add(_amountx);
    balances[_to] = balances[_to].add(_amountx);
    emit Debit(collateral_contract, _amountx);
    emit Deposit( _to, _amountx);
    return true;
  }

  /**
   * @dev To stop debiting tokens.
   * @return True if the operation was successful.
   */
  function finishDebit() public onlyOwner canDebit returns (bool) {
    debitingFinished = true;
    emit DebitFinished();
    return true;
  }

  
}



/**
 * @title Repaymentable Token
 * @dev Debitor that can be repay to creditor.
 */
contract RepaymentToken is StandardToken, Ownable {
    using SafeMath for uint256;
    event Repayment(address collateral_contract, uint256 value);
    event Withdraw(address debitor, uint256 value);
    
    modifier hasRepayPermission() {
      require(msg.sender == owner);
      _;
    }

    function repayment( uint256 _value )
    hasRepayPermission
    public 
    {
        require(_value > 0);
        require(_value <= balances[msg.sender]);

        dc = COLLATERAL(collateral_contract);
        address debitor = msg.sender;
        uint256 rate = dc.CreditRate();
        uint256 deci = 10 ** decimals; 
        uint256 _unitx = _value / deci / rate;
        uint256 _value1 = _unitx * deci * rate;
        balances[debitor] = balances[debitor].sub(_value1);
        totalSupply = totalSupply.sub(_value1);

        require(_unitx > 0);
        dc.repayment( _unitx );
    
        emit Repayment( collateral_contract, _value1 );
        emit Withdraw( debitor, _value1 );
    }
    
}


contract ChinToHaCoin is DebitableToken, RepaymentToken  {


    constructor() public {    
        totalSupply = INITIAL_SUPPLY;
        balances[msg.sender] = INITIAL_SUPPLY;
    }
    
    function connectContract(address _collateral_address ) public onlyOwner {
        collateral_contract = _collateral_address;
    }
    
    function getCreditRate() public view returns (uint256 result) {
        dc = COLLATERAL( collateral_contract );
        return dc.CreditRate();
    }
    
    /* Public variables of the token */

    /*
    NOTE:
    The following variables are OPTIONAL vanities. One does not have to include them.
    They allow one to customise the token contract & in no way influences the core functionality.
    Some wallets/interfaces might not even bother to look at this information.
    */
    
    string public name = "ChinToHaCoin";
    string public symbol = "CTHC";
    uint256 public constant INITIAL_SUPPLY = 0 * (10 ** uint256(decimals));
    string public Image_root = "https://swarm.chainbacon.com/bzz:/3fe13660887b606b8dc90e4f232f835d51dc6b71e182fd079f22ec8f643b8853/";
    string public Note_root = "https://swarm.chainbacon.com/bzz:/73bcc5fda8642dd9b82b5e065fdb2288830bb7e8e93c404e0578bc4c896fa199/";
    string public Document_root = "https://swarm.chainbacon.com/bzz:/67ddcef52dce4cd6c0b8f39c291970572fb1d0b1f43c9d98b3d2202ca52e57fd/";
    string public DigestCode_root = "9d7f53442ec1c2874bee0091f82d046a7cfce963ca84b9c5f5c6b0b011d23ea1";
    function getIssuer() public pure returns(string) { return  "ChinToHa"; }
    string public TxHash_root = "genesis";

    string public ContractSource = "";
    string public CodeVersion = "v0.1";
    
    string public SecretKey_Pre = "";
    string public Name_New = "";
    string public TxHash_Pre = "";
    string public DigestCode_New = "";
    string public Image_New = "";
    string public Note_New = "";
    uint256 public DebitRate = 100 * (10 ** uint256(decimals));
   
    function getName() public view returns(string) { return name; }
    function getDigestCodeRoot() public view returns(string) { return DigestCode_root; }
    function getTxHashRoot() public view returns(string) { return TxHash_root; }
    function getImageRoot() public view returns(string) { return Image_root; }
    function getNoteRoot() public view returns(string) { return Note_root; }
    function getCodeVersion() public view returns(string) { return CodeVersion; }
    function getContractSource() public view returns(string) { return ContractSource; }

    function getSecretKeyPre() public view returns(string) { return SecretKey_Pre; }
    function getNameNew() public view returns(string) { return Name_New; }
    function getTxHashPre() public view returns(string) { return TxHash_Pre; }
    function getDigestCodeNew() public view returns(string) { return DigestCode_New; }
    function getImageNew() public view returns(string) { return Image_New; }
    function getNoteNew() public view returns(string) { return Note_New; }
    function updateDebitRate(uint256 _rate) public onlyOwner returns (uint256) {
        DebitRate = _rate;
        return DebitRate;
    }

    function setNewBlock(string _SecretKey_Pre, string _Name_New, string _TxHash_Pre, string _DigestCode_New, string _Image_New, string _Note_New )  returns (bool success) {
        SecretKey_Pre = _SecretKey_Pre;
        Name_New = _Name_New;
        TxHash_Pre = _TxHash_Pre;
        DigestCode_New = _DigestCode_New;
        Image_New = _Image_New;
        Note_New = _Note_New;
        emit setNewBlockEvent(SecretKey_Pre, Name_New, TxHash_Pre, DigestCode_New, Image_New, Note_New);
        return true;
    }

    /* Approves and then calls the receiving contract */
    function approveAndCall(address _spender, uint256 _value, bytes _extraData) returns (bool success) {
        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);

        //call the receiveApproval function on the contract you want to be notified. This crafts the function signature manually so one doesn't have to include a contract in here just for this.
        //receiveApproval(address _from, uint256 _value, address _tokenContract, bytes _extraData)
        //it is assumed that when does this that the call *should* succeed, otherwise one would use vanilla approve instead.
        require(!_spender.call(bytes4(bytes32(keccak256("receiveApproval(address,uint256,address,bytes)"))), msg.sender, _value, this, _extraData));
        return true;
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getName","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getDigestCodeRoot","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ContractSource","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getDigestCodeNew","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getContractSource","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getNoteRoot","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"INITIAL_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getTxHashRoot","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TxHash_root","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CodeVersion","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_collateral_address","type":"address"}],"name":"connectContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"finishDebit","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getIssuer","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"getImageRoot","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DigestCode_New","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"Image_root","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"debit","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"repayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getNoteNew","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"debitingFinished","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getTxHashPre","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_SecretKey_Pre","type":"string"},{"name":"_Name_New","type":"string"},{"name":"_TxHash_Pre","type":"string"},{"name":"_DigestCode_New","type":"string"},{"name":"_Image_New","type":"string"},{"name":"_Note_New","type":"string"}],"name":"setNewBlock","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DigestCode_root","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getNameNew","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCodeVersion","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCreditRate","outputs":[{"name":"result","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"Note_root","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"Document_root","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getImageNew","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_rate","type":"uint256"}],"name":"updateDebitRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"DebitRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TxHash_Pre","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"},{"name":"_extraData","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getSecretKeyPre","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"Name_New","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SecretKey_Pre","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"Image_New","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"Note_New","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"collateral_contract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"collateral_contract","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Repayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"debitor","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"collateral_contract","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Debit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_to_debitor","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[],"name":"DebitFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"SecretKey_Pre","type":"string"},{"indexed":false,"name":"Name_New","type":"string"},{"indexed":false,"name":"TxHash_Pre","type":"string"},{"indexed":false,"name":"DigestCode_New","type":"string"},{"indexed":false,"name":"Image_New","type":"string"},{"indexed":false,"name":"Note_New","type":"string"}],"name":"setNewBlockEvent","type":"event"}]

60806040526000600560146101000a81548160ff0219169083151502179055506040805190810160405280600c81526020017f4368696e546f4861436f696e0000000000000000000000000000000000000000815250600690805190602001906200006c929190620005e7565b506040805190810160405280600481526020017f435448430000000000000000000000000000000000000000000000000000000081525060079080519060200190620000ba929190620005e7565b5060a060405190810160405280606381526020017f68747470733a2f2f737761726d2e636861696e6261636f6e2e636f6d2f627a7a81526020017f3a2f33666531333636303838376236303662386463393065346632333266383381526020017f356435316463366237316531383266643037396632326563386636343362383881526020017f35332f0000000000000000000000000000000000000000000000000000000000815250600890805190602001906200017b929190620005e7565b5060a060405190810160405280606381526020017f68747470733a2f2f737761726d2e636861696e6261636f6e2e636f6d2f627a7a81526020017f3a2f37336263633566646138363432646439623832623565303635666462323281526020017f383838333062623765386539336334303465303537386263346338393666613181526020017f39392f0000000000000000000000000000000000000000000000000000000000815250600990805190602001906200023c929190620005e7565b5060a060405190810160405280606381526020017f68747470733a2f2f737761726d2e636861696e6261636f6e2e636f6d2f627a7a81526020017f3a2f36376464636566353264636534636436633062386633396332393139373081526020017f353732666231643062316634336339643938623364323230326361353265353781526020017f66642f0000000000000000000000000000000000000000000000000000000000815250600a9080519060200190620002fd929190620005e7565b50606060405190810160405280604081526020017f396437663533343432656331633238373462656530303931663832643034366181526020017f3763666365393633636138346239633566356336623062303131643233656131815250600b908051906020019062000372929190620005e7565b506040805190810160405280600781526020017f67656e6573697300000000000000000000000000000000000000000000000000815250600c9080519060200190620003c0929190620005e7565b506020604051908101604052806000815250600d9080519060200190620003e9929190620005e7565b506040805190810160405280600481526020017f76302e3100000000000000000000000000000000000000000000000000000000815250600e908051906020019062000437929190620005e7565b506020604051908101604052806000815250600f908051906020019062000460929190620005e7565b5060206040519081016040528060008152506010908051906020019062000489929190620005e7565b50602060405190810160405280600081525060119080519060200190620004b2929190620005e7565b50602060405190810160405280600081525060129080519060200190620004db929190620005e7565b5060206040519081016040528060008152506013908051906020019062000504929190620005e7565b506020604051908101604052806000815250601490805190602001906200052d929190620005e7565b506000600a0a6064026015553480156200054657600080fd5b5033600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600a0a6000026004819055506000600a0a600002600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000696565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200062a57805160ff19168380011785556200065b565b828001600101855582156200065b579182015b828111156200065a5782518255916020019190600101906200063d565b5b5090506200066a91906200066e565b5090565b6200069391905b808211156200068f57600081600090555060010162000675565b5090565b90565b61473280620006a66000396000f30060806040526004361061025c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610261578063095ea7b3146102f157806317d7de7c1461035657806318160ddd146103e657806319c59768146104115780631e1fc057146104a15780632272f1a31461053157806323b872dd146105c15780632f34ad85146106465780632f58b235146106d65780632ff2e9dc14610766578063313ce56714610791578063340a5f2d146107bc57806338e135061461084c57806339f68111146108dc57806347724b651461096c5780634ac9a05a146109af57806352556421146109de578063529d2cea14610a6e57806358dfd4e514610afe57806359e0568514610b8e578063636be27a14610c1e5780636737b31e14610c835780636dae214714610cb05780636efbad0b14610d4057806370a0823114610d6f5780637584f24b14610dc65780638a43c8e614610e565780638da5cb5b146110355780638f1a9d791461108c57806395d89b411461111c5780639a677c69146111ac578063a029b0961461123c578063a80edb4a146112cc578063a9059cbb146112f7578063ad3962601461135c578063b994a3a4146113ec578063ba270c711461147c578063bbe302541461150c578063beaf48f61461154d578063c59e176714611578578063cae9ca5114611608578063ceb62914146116b3578063d74d880814611743578063dd62ed3e146117d3578063e03535be1461184a578063f0fbaea6146118da578063f144820e1461196a578063f16e9f7e146119fa578063f2fde38b14611a51575b600080fd5b34801561026d57600080fd5b50610276611a94565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102b657808201518184015260208101905061029b565b50505050905090810190601f1680156102e35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102fd57600080fd5b5061033c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b32565b604051808215151515815260200191505060405180910390f35b34801561036257600080fd5b5061036b611c24565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103ab578082015181840152602081019050610390565b50505050905090810190601f1680156103d85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103f257600080fd5b506103fb611cc6565b6040518082815260200191505060405180910390f35b34801561041d57600080fd5b50610426611ccc565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561046657808201518184015260208101905061044b565b50505050905090810190601f1680156104935780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104ad57600080fd5b506104b6611d6e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104f65780820151818401526020810190506104db565b50505050905090810190601f1680156105235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561053d57600080fd5b50610546611e0c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561058657808201518184015260208101905061056b565b50505050905090810190601f1680156105b35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105cd57600080fd5b5061062c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611eae565b604051808215151515815260200191505060405180910390f35b34801561065257600080fd5b5061065b61212a565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561069b578082015181840152602081019050610680565b50505050905090810190601f1680156106c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156106e257600080fd5b506106eb6121cc565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561072b578082015181840152602081019050610710565b50505050905090810190601f1680156107585780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561077257600080fd5b5061077b61226e565b6040518082815260200191505060405180910390f35b34801561079d57600080fd5b506107a6612279565b6040518082815260200191505060405180910390f35b3480156107c857600080fd5b506107d161227e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108115780820151818401526020810190506107f6565b50505050905090810190601f16801561083e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561085857600080fd5b50610861612320565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108a1578082015181840152602081019050610886565b50505050905090810190601f1680156108ce5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108e857600080fd5b506108f16123be565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610931578082015181840152602081019050610916565b50505050905090810190601f16801561095e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561097857600080fd5b506109ad600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061245c565b005b3480156109bb57600080fd5b506109c46124fc565b604051808215151515815260200191505060405180910390f35b3480156109ea57600080fd5b506109f36125c4565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a33578082015181840152602081019050610a18565b50505050905090810190601f168015610a605780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610a7a57600080fd5b50610a83612601565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610ac3578082015181840152602081019050610aa8565b50505050905090810190601f168015610af05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610b0a57600080fd5b50610b136126a3565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b53578082015181840152602081019050610b38565b50505050905090810190601f168015610b805780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610b9a57600080fd5b50610ba3612741565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610be3578082015181840152602081019050610bc8565b50505050905090810190601f168015610c105780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610c2a57600080fd5b50610c69600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506127df565b604051808215151515815260200191505060405180910390f35b348015610c8f57600080fd5b50610cae60048036038101908080359060200190929190505050612bff565b005b348015610cbc57600080fd5b50610cc5613099565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610d05578082015181840152602081019050610cea565b50505050905090810190601f168015610d325780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610d4c57600080fd5b50610d5561313b565b604051808215151515815260200191505060405180910390f35b348015610d7b57600080fd5b50610db0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061314e565b6040518082815260200191505060405180910390f35b348015610dd257600080fd5b50610ddb613197565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610e1b578082015181840152602081019050610e00565b50505050905090810190601f168015610e485780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610e6257600080fd5b5061101b600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050613239565b604051808215151515815260200191505060405180910390f35b34801561104157600080fd5b5061104a613644565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561109857600080fd5b506110a161366a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156110e15780820151818401526020810190506110c6565b50505050905090810190601f16801561110e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561112857600080fd5b50611131613708565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611171578082015181840152602081019050611156565b50505050905090810190601f16801561119e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156111b857600080fd5b506111c16137a6565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156112015780820151818401526020810190506111e6565b50505050905090810190601f16801561122e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561124857600080fd5b50611251613848565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611291578082015181840152602081019050611276565b50505050905090810190601f1680156112be5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156112d857600080fd5b506112e16138ea565b6040518082815260200191505060405180910390f35b34801561130357600080fd5b50611342600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613a13565b604051808215151515815260200191505060405180910390f35b34801561136857600080fd5b50611371613b7c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156113b1578082015181840152602081019050611396565b50505050905090810190601f1680156113de5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156113f857600080fd5b50611401613c1a565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611441578082015181840152602081019050611426565b50505050905090810190601f16801561146e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561148857600080fd5b50611491613cb8565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156114d15780820151818401526020810190506114b6565b50505050905090810190601f1680156114fe5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561151857600080fd5b5061153760048036038101908080359060200190929190505050613d5a565b6040518082815260200191505060405180910390f35b34801561155957600080fd5b50611562613dc9565b6040518082815260200191505060405180910390f35b34801561158457600080fd5b5061158d613dcf565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156115cd5780820151818401526020810190506115b2565b50505050905090810190601f1680156115fa5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561161457600080fd5b50611699600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050613e6d565b604051808215151515815260200191505060405180910390f35b3480156116bf57600080fd5b506116c861410b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156117085780820151818401526020810190506116ed565b50505050905090810190601f1680156117355780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561174f57600080fd5b506117586141ad565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561179857808201518184015260208101905061177d565b50505050905090810190601f1680156117c55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156117df57600080fd5b50611834600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061424b565b6040518082815260200191505060405180910390f35b34801561185657600080fd5b5061185f6142d2565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561189f578082015181840152602081019050611884565b50505050905090810190601f1680156118cc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156118e657600080fd5b506118ef614370565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561192f578082015181840152602081019050611914565b50505050905090810190601f16801561195c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561197657600080fd5b5061197f61440e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156119bf5780820151818401526020810190506119a4565b50505050905090810190601f1680156119ec5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015611a0657600080fd5b50611a0f6144ac565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015611a5d57600080fd5b50611a92600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506144d2565b005b60068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b2a5780601f10611aff57610100808354040283529160200191611b2a565b820191906000526020600020905b815481529060010190602001808311611b0d57829003601f168201915b505050505081565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b606060068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611cbc5780601f10611c9157610100808354040283529160200191611cbc565b820191906000526020600020905b815481529060010190602001808311611c9f57829003601f168201915b5050505050905090565b60045481565b6060600b8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d645780601f10611d3957610100808354040283529160200191611d64565b820191906000526020600020905b815481529060010190602001808311611d4757829003601f168201915b5050505050905090565b600d8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611e045780601f10611dd957610100808354040283529160200191611e04565b820191906000526020600020905b815481529060010190602001808311611de757829003601f168201915b505050505081565b606060128054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611ea45780601f10611e7957610100808354040283529160200191611ea4565b820191906000526020600020905b815481529060010190602001808311611e8757829003601f168201915b5050505050905090565b600081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015611f7b575081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b8015611f875750600082115b1561211e5781600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050612123565b600090505b9392505050565b6060600d8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156121c25780601f10612197576101008083540402835291602001916121c2565b820191906000526020600020905b8154815290600101906020018083116121a557829003601f168201915b5050505050905090565b606060098054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122645780601f1061223957610100808354040283529160200191612264565b820191906000526020600020905b81548152906001019060200180831161224757829003601f168201915b5050505050905090565b6000600a0a60000281565b600081565b6060600c8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123165780601f106122eb57610100808354040283529160200191612316565b820191906000526020600020905b8154815290600101906020018083116122f957829003601f168201915b5050505050905090565b600c8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123b65780601f1061238b576101008083540402835291602001916123b6565b820191906000526020600020905b81548152906001019060200180831161239957829003601f168201915b505050505081565b600e8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124545780601f1061242957610100808354040283529160200191612454565b820191906000526020600020905b81548152906001019060200180831161243757829003601f168201915b505050505081565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156124b857600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561255a57600080fd5b600560149054906101000a900460ff1615151561257657600080fd5b6001600560146101000a81548160ff0219169083151502179055507fbc7be1847ea06c3d53f7042109447747b319a90c8822f4a4c43c399225b6180660405160405180910390a16001905090565b60606040805190810160405280600881526020017f4368696e546f4861000000000000000000000000000000000000000000000000815250905090565b606060088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156126995780601f1061266e57610100808354040283529160200191612699565b820191906000526020600020905b81548152906001019060200180831161267c57829003601f168201915b5050505050905090565b60128054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127395780601f1061270e57610100808354040283529160200191612739565b820191906000526020600020905b81548152906001019060200180831161271c57829003601f168201915b505050505081565b60088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127d75780601f106127ac576101008083540402835291602001916127d7565b820191906000526020600020905b8154815290600101906020018083116127ba57829003601f168201915b505050505081565b600080600080600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561284457600080fd5b600560149054906101000a900460ff1615151561286057600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166343334ce86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561294757600080fd5b505af115801561295b573d6000803e3d6000fd5b505050506040513d602081101561297157600080fd5b810190808051906020019092919050505094506000600a0a935084848881151561299757fe5b048115156129a157fe5b049250848484020291506000831115156129ba57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166378da744b846040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b158015612a4a57600080fd5b505af1158015612a5e573d6000803e3d6000fd5b50505050819050612a7a8160045461462a90919063ffffffff16565b600481905550612ad281600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461462a90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f59c79d79be0fadf59fe689b6952b7ebe90201a3a1f00d4a31982377890bc6046600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a18773ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c826040518082815260200191505060405180910390a260019550505050505092915050565b6000806000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c6357600080fd5b600086111515612c7257600080fd5b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548611151515612cc057600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503394506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166343334ce86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612daa57600080fd5b505af1158015612dbe573d6000803e3d6000fd5b505050506040513d6020811015612dd457600080fd5b810190808051906020019092919050505093506000600a0a9250838387811515612dfa57fe5b04811515612e0457fe5b04915083838302029050612e6081600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461464890919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612eb88160045461464890919063ffffffff16565b600481905550600082111515612ecd57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636737b31e836040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b158015612f5d57600080fd5b505af1158015612f71573d6000803e3d6000fd5b505050506040513d6020811015612f8757600080fd5b8101908080519060200190929190505050507fbb284f7f8cb8b1b8c98ee9a7d765413efc44bbb17352a0302ada1d737cdaef1b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a17f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243648582604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1505050505050565b606060148054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131315780601f1061310657610100808354040283529160200191613131565b820191906000526020600020905b81548152906001019060200180831161311457829003601f168201915b5050505050905090565b600560149054906101000a900460ff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060118054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561322f5780601f106132045761010080835404028352916020019161322f565b820191906000526020600020905b81548152906001019060200180831161321257829003601f168201915b5050505050905090565b600086600f9080519060200190613251929190614661565b508560109080519060200190613268929190614661565b50846011908051906020019061327f929190614661565b508360129080519060200190613296929190614661565b5082601390805190602001906132ad929190614661565b5081601490805190602001906132c4929190614661565b507f76b794936344483a0e529b4c747bdaccfc63ce7d42758c188d25a4924cefd339600f601060116012601360146040518080602001806020018060200180602001806020018060200187810387528d81815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561338f5780601f106133645761010080835404028352916020019161338f565b820191906000526020600020905b81548152906001019060200180831161337257829003601f168201915b505087810386528c8181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156134125780601f106133e757610100808354040283529160200191613412565b820191906000526020600020905b8154815290600101906020018083116133f557829003601f168201915b505087810385528b8181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156134955780601f1061346a57610100808354040283529160200191613495565b820191906000526020600020905b81548152906001019060200180831161347857829003601f168201915b505087810384528a8181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156135185780601f106134ed57610100808354040283529160200191613518565b820191906000526020600020905b8154815290600101906020018083116134fb57829003601f168201915b505087810383528981815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561359b5780601f106135705761010080835404028352916020019161359b565b820191906000526020600020905b81548152906001019060200180831161357e57829003601f168201915b505087810382528881815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561361e5780601f106135f35761010080835404028352916020019161361e565b820191906000526020600020905b81548152906001019060200180831161360157829003601f168201915b50509c5050505050505050505050505060405180910390a1600190509695505050505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156137005780601f106136d557610100808354040283529160200191613700565b820191906000526020600020905b8154815290600101906020018083116136e357829003601f168201915b505050505081565b60078054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561379e5780601f106137735761010080835404028352916020019161379e565b820191906000526020600020905b81548152906001019060200180831161378157829003601f168201915b505050505081565b606060108054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561383e5780601f106138135761010080835404028352916020019161383e565b820191906000526020600020905b81548152906001019060200180831161382157829003601f168201915b5050505050905090565b6060600e8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156138e05780601f106138b5576101008083540402835291602001916138e0565b820191906000526020600020905b8154815290600101906020018083116138c357829003601f168201915b5050505050905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166343334ce86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156139d357600080fd5b505af11580156139e7573d6000803e3d6000fd5b505050506040513d60208110156139fd57600080fd5b8101908080519060200190929190505050905090565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015613a645750600082115b15613b715781600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050613b76565b600090505b92915050565b60098054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613c125780601f10613be757610100808354040283529160200191613c12565b820191906000526020600020905b815481529060010190602001808311613bf557829003601f168201915b505050505081565b600a8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613cb05780601f10613c8557610100808354040283529160200191613cb0565b820191906000526020600020905b815481529060010190602001808311613c9357829003601f168201915b505050505081565b606060138054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613d505780601f10613d2557610100808354040283529160200191613d50565b820191906000526020600020905b815481529060010190602001808311613d3357829003601f168201915b5050505050905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613db857600080fd5b816015819055506015549050919050565b60155481565b60118054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613e655780601f10613e3a57610100808354040283529160200191613e65565b820191906000526020600020905b815481529060010190602001808311613e4857829003601f168201915b505050505081565b600082600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff1660405180807f72656365697665417070726f76616c28616464726573732c75696e743235362c81526020017f616464726573732c627974657329000000000000000000000000000000000000815250602e01905060405180910390207c01000000000000000000000000000000000000000000000000000000009004338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828051906020019080838360005b838110156140ae578082015181840152602081019050614093565b50505050905090810190601f1680156140db5780820380516001836020036101000a031916815260200191505b509450505050506000604051808303816000875af19250505015151561410057600080fd5b600190509392505050565b6060600f8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156141a35780601f10614178576101008083540402835291602001916141a3565b820191906000526020600020905b81548152906001019060200180831161418657829003601f168201915b5050505050905090565b60108054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156142435780601f1061421857610100808354040283529160200191614243565b820191906000526020600020905b81548152906001019060200180831161422657829003601f168201915b505050505081565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156143685780601f1061433d57610100808354040283529160200191614368565b820191906000526020600020905b81548152906001019060200180831161434b57829003601f168201915b505050505081565b60138054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156144065780601f106143db57610100808354040283529160200191614406565b820191906000526020600020905b8154815290600101906020018083116143e957829003601f168201915b505050505081565b60148054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156144a45780601f10614479576101008083540402835291602001916144a4565b820191906000526020600020905b81548152906001019060200180831161448757829003601f168201915b505050505081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561452e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561456a57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080828401905083811015151561463e57fe5b8091505092915050565b600082821115151561465657fe5b818303905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106146a257805160ff19168380011785556146d0565b828001600101855582156146d0579182015b828111156146cf5782518255916020019190600101906146b4565b5b5090506146dd91906146e1565b5090565b61470391905b808211156146ff5760008160009055506001016146e7565b5090565b905600a165627a7a72305820b935e384cb67a3b6d508b5b1f3cd674234c08c8ed45e4177d6ba2c0e055bc8c10029

Deployed Bytecode

0x60806040526004361061025c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610261578063095ea7b3146102f157806317d7de7c1461035657806318160ddd146103e657806319c59768146104115780631e1fc057146104a15780632272f1a31461053157806323b872dd146105c15780632f34ad85146106465780632f58b235146106d65780632ff2e9dc14610766578063313ce56714610791578063340a5f2d146107bc57806338e135061461084c57806339f68111146108dc57806347724b651461096c5780634ac9a05a146109af57806352556421146109de578063529d2cea14610a6e57806358dfd4e514610afe57806359e0568514610b8e578063636be27a14610c1e5780636737b31e14610c835780636dae214714610cb05780636efbad0b14610d4057806370a0823114610d6f5780637584f24b14610dc65780638a43c8e614610e565780638da5cb5b146110355780638f1a9d791461108c57806395d89b411461111c5780639a677c69146111ac578063a029b0961461123c578063a80edb4a146112cc578063a9059cbb146112f7578063ad3962601461135c578063b994a3a4146113ec578063ba270c711461147c578063bbe302541461150c578063beaf48f61461154d578063c59e176714611578578063cae9ca5114611608578063ceb62914146116b3578063d74d880814611743578063dd62ed3e146117d3578063e03535be1461184a578063f0fbaea6146118da578063f144820e1461196a578063f16e9f7e146119fa578063f2fde38b14611a51575b600080fd5b34801561026d57600080fd5b50610276611a94565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102b657808201518184015260208101905061029b565b50505050905090810190601f1680156102e35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102fd57600080fd5b5061033c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b32565b604051808215151515815260200191505060405180910390f35b34801561036257600080fd5b5061036b611c24565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103ab578082015181840152602081019050610390565b50505050905090810190601f1680156103d85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103f257600080fd5b506103fb611cc6565b6040518082815260200191505060405180910390f35b34801561041d57600080fd5b50610426611ccc565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561046657808201518184015260208101905061044b565b50505050905090810190601f1680156104935780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104ad57600080fd5b506104b6611d6e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104f65780820151818401526020810190506104db565b50505050905090810190601f1680156105235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561053d57600080fd5b50610546611e0c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561058657808201518184015260208101905061056b565b50505050905090810190601f1680156105b35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105cd57600080fd5b5061062c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611eae565b604051808215151515815260200191505060405180910390f35b34801561065257600080fd5b5061065b61212a565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561069b578082015181840152602081019050610680565b50505050905090810190601f1680156106c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156106e257600080fd5b506106eb6121cc565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561072b578082015181840152602081019050610710565b50505050905090810190601f1680156107585780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561077257600080fd5b5061077b61226e565b6040518082815260200191505060405180910390f35b34801561079d57600080fd5b506107a6612279565b6040518082815260200191505060405180910390f35b3480156107c857600080fd5b506107d161227e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108115780820151818401526020810190506107f6565b50505050905090810190601f16801561083e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561085857600080fd5b50610861612320565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108a1578082015181840152602081019050610886565b50505050905090810190601f1680156108ce5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108e857600080fd5b506108f16123be565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610931578082015181840152602081019050610916565b50505050905090810190601f16801561095e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561097857600080fd5b506109ad600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061245c565b005b3480156109bb57600080fd5b506109c46124fc565b604051808215151515815260200191505060405180910390f35b3480156109ea57600080fd5b506109f36125c4565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a33578082015181840152602081019050610a18565b50505050905090810190601f168015610a605780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610a7a57600080fd5b50610a83612601565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610ac3578082015181840152602081019050610aa8565b50505050905090810190601f168015610af05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610b0a57600080fd5b50610b136126a3565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b53578082015181840152602081019050610b38565b50505050905090810190601f168015610b805780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610b9a57600080fd5b50610ba3612741565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610be3578082015181840152602081019050610bc8565b50505050905090810190601f168015610c105780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610c2a57600080fd5b50610c69600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506127df565b604051808215151515815260200191505060405180910390f35b348015610c8f57600080fd5b50610cae60048036038101908080359060200190929190505050612bff565b005b348015610cbc57600080fd5b50610cc5613099565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610d05578082015181840152602081019050610cea565b50505050905090810190601f168015610d325780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610d4c57600080fd5b50610d5561313b565b604051808215151515815260200191505060405180910390f35b348015610d7b57600080fd5b50610db0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061314e565b6040518082815260200191505060405180910390f35b348015610dd257600080fd5b50610ddb613197565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610e1b578082015181840152602081019050610e00565b50505050905090810190601f168015610e485780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610e6257600080fd5b5061101b600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050613239565b604051808215151515815260200191505060405180910390f35b34801561104157600080fd5b5061104a613644565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561109857600080fd5b506110a161366a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156110e15780820151818401526020810190506110c6565b50505050905090810190601f16801561110e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561112857600080fd5b50611131613708565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611171578082015181840152602081019050611156565b50505050905090810190601f16801561119e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156111b857600080fd5b506111c16137a6565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156112015780820151818401526020810190506111e6565b50505050905090810190601f16801561122e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561124857600080fd5b50611251613848565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611291578082015181840152602081019050611276565b50505050905090810190601f1680156112be5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156112d857600080fd5b506112e16138ea565b6040518082815260200191505060405180910390f35b34801561130357600080fd5b50611342600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613a13565b604051808215151515815260200191505060405180910390f35b34801561136857600080fd5b50611371613b7c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156113b1578082015181840152602081019050611396565b50505050905090810190601f1680156113de5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156113f857600080fd5b50611401613c1a565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611441578082015181840152602081019050611426565b50505050905090810190601f16801561146e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561148857600080fd5b50611491613cb8565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156114d15780820151818401526020810190506114b6565b50505050905090810190601f1680156114fe5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561151857600080fd5b5061153760048036038101908080359060200190929190505050613d5a565b6040518082815260200191505060405180910390f35b34801561155957600080fd5b50611562613dc9565b6040518082815260200191505060405180910390f35b34801561158457600080fd5b5061158d613dcf565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156115cd5780820151818401526020810190506115b2565b50505050905090810190601f1680156115fa5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561161457600080fd5b50611699600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050613e6d565b604051808215151515815260200191505060405180910390f35b3480156116bf57600080fd5b506116c861410b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156117085780820151818401526020810190506116ed565b50505050905090810190601f1680156117355780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561174f57600080fd5b506117586141ad565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561179857808201518184015260208101905061177d565b50505050905090810190601f1680156117c55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156117df57600080fd5b50611834600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061424b565b6040518082815260200191505060405180910390f35b34801561185657600080fd5b5061185f6142d2565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561189f578082015181840152602081019050611884565b50505050905090810190601f1680156118cc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156118e657600080fd5b506118ef614370565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561192f578082015181840152602081019050611914565b50505050905090810190601f16801561195c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561197657600080fd5b5061197f61440e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156119bf5780820151818401526020810190506119a4565b50505050905090810190601f1680156119ec5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015611a0657600080fd5b50611a0f6144ac565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015611a5d57600080fd5b50611a92600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506144d2565b005b60068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b2a5780601f10611aff57610100808354040283529160200191611b2a565b820191906000526020600020905b815481529060010190602001808311611b0d57829003601f168201915b505050505081565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b606060068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611cbc5780601f10611c9157610100808354040283529160200191611cbc565b820191906000526020600020905b815481529060010190602001808311611c9f57829003601f168201915b5050505050905090565b60045481565b6060600b8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d645780601f10611d3957610100808354040283529160200191611d64565b820191906000526020600020905b815481529060010190602001808311611d4757829003601f168201915b5050505050905090565b600d8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611e045780601f10611dd957610100808354040283529160200191611e04565b820191906000526020600020905b815481529060010190602001808311611de757829003601f168201915b505050505081565b606060128054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611ea45780601f10611e7957610100808354040283529160200191611ea4565b820191906000526020600020905b815481529060010190602001808311611e8757829003601f168201915b5050505050905090565b600081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015611f7b575081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b8015611f875750600082115b1561211e5781600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050612123565b600090505b9392505050565b6060600d8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156121c25780601f10612197576101008083540402835291602001916121c2565b820191906000526020600020905b8154815290600101906020018083116121a557829003601f168201915b5050505050905090565b606060098054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122645780601f1061223957610100808354040283529160200191612264565b820191906000526020600020905b81548152906001019060200180831161224757829003601f168201915b5050505050905090565b6000600a0a60000281565b600081565b6060600c8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123165780601f106122eb57610100808354040283529160200191612316565b820191906000526020600020905b8154815290600101906020018083116122f957829003601f168201915b5050505050905090565b600c8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123b65780601f1061238b576101008083540402835291602001916123b6565b820191906000526020600020905b81548152906001019060200180831161239957829003601f168201915b505050505081565b600e8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124545780601f1061242957610100808354040283529160200191612454565b820191906000526020600020905b81548152906001019060200180831161243757829003601f168201915b505050505081565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156124b857600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561255a57600080fd5b600560149054906101000a900460ff1615151561257657600080fd5b6001600560146101000a81548160ff0219169083151502179055507fbc7be1847ea06c3d53f7042109447747b319a90c8822f4a4c43c399225b6180660405160405180910390a16001905090565b60606040805190810160405280600881526020017f4368696e546f4861000000000000000000000000000000000000000000000000815250905090565b606060088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156126995780601f1061266e57610100808354040283529160200191612699565b820191906000526020600020905b81548152906001019060200180831161267c57829003601f168201915b5050505050905090565b60128054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127395780601f1061270e57610100808354040283529160200191612739565b820191906000526020600020905b81548152906001019060200180831161271c57829003601f168201915b505050505081565b60088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127d75780601f106127ac576101008083540402835291602001916127d7565b820191906000526020600020905b8154815290600101906020018083116127ba57829003601f168201915b505050505081565b600080600080600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561284457600080fd5b600560149054906101000a900460ff1615151561286057600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166343334ce86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561294757600080fd5b505af115801561295b573d6000803e3d6000fd5b505050506040513d602081101561297157600080fd5b810190808051906020019092919050505094506000600a0a935084848881151561299757fe5b048115156129a157fe5b049250848484020291506000831115156129ba57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166378da744b846040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b158015612a4a57600080fd5b505af1158015612a5e573d6000803e3d6000fd5b50505050819050612a7a8160045461462a90919063ffffffff16565b600481905550612ad281600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461462a90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f59c79d79be0fadf59fe689b6952b7ebe90201a3a1f00d4a31982377890bc6046600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a18773ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c826040518082815260200191505060405180910390a260019550505050505092915050565b6000806000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c6357600080fd5b600086111515612c7257600080fd5b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548611151515612cc057600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503394506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166343334ce86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612daa57600080fd5b505af1158015612dbe573d6000803e3d6000fd5b505050506040513d6020811015612dd457600080fd5b810190808051906020019092919050505093506000600a0a9250838387811515612dfa57fe5b04811515612e0457fe5b04915083838302029050612e6081600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461464890919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612eb88160045461464890919063ffffffff16565b600481905550600082111515612ecd57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636737b31e836040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b158015612f5d57600080fd5b505af1158015612f71573d6000803e3d6000fd5b505050506040513d6020811015612f8757600080fd5b8101908080519060200190929190505050507fbb284f7f8cb8b1b8c98ee9a7d765413efc44bbb17352a0302ada1d737cdaef1b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a17f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243648582604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1505050505050565b606060148054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131315780601f1061310657610100808354040283529160200191613131565b820191906000526020600020905b81548152906001019060200180831161311457829003601f168201915b5050505050905090565b600560149054906101000a900460ff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060118054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561322f5780601f106132045761010080835404028352916020019161322f565b820191906000526020600020905b81548152906001019060200180831161321257829003601f168201915b5050505050905090565b600086600f9080519060200190613251929190614661565b508560109080519060200190613268929190614661565b50846011908051906020019061327f929190614661565b508360129080519060200190613296929190614661565b5082601390805190602001906132ad929190614661565b5081601490805190602001906132c4929190614661565b507f76b794936344483a0e529b4c747bdaccfc63ce7d42758c188d25a4924cefd339600f601060116012601360146040518080602001806020018060200180602001806020018060200187810387528d81815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561338f5780601f106133645761010080835404028352916020019161338f565b820191906000526020600020905b81548152906001019060200180831161337257829003601f168201915b505087810386528c8181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156134125780601f106133e757610100808354040283529160200191613412565b820191906000526020600020905b8154815290600101906020018083116133f557829003601f168201915b505087810385528b8181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156134955780601f1061346a57610100808354040283529160200191613495565b820191906000526020600020905b81548152906001019060200180831161347857829003601f168201915b505087810384528a8181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156135185780601f106134ed57610100808354040283529160200191613518565b820191906000526020600020905b8154815290600101906020018083116134fb57829003601f168201915b505087810383528981815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561359b5780601f106135705761010080835404028352916020019161359b565b820191906000526020600020905b81548152906001019060200180831161357e57829003601f168201915b505087810382528881815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561361e5780601f106135f35761010080835404028352916020019161361e565b820191906000526020600020905b81548152906001019060200180831161360157829003601f168201915b50509c5050505050505050505050505060405180910390a1600190509695505050505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156137005780601f106136d557610100808354040283529160200191613700565b820191906000526020600020905b8154815290600101906020018083116136e357829003601f168201915b505050505081565b60078054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561379e5780601f106137735761010080835404028352916020019161379e565b820191906000526020600020905b81548152906001019060200180831161378157829003601f168201915b505050505081565b606060108054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561383e5780601f106138135761010080835404028352916020019161383e565b820191906000526020600020905b81548152906001019060200180831161382157829003601f168201915b5050505050905090565b6060600e8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156138e05780601f106138b5576101008083540402835291602001916138e0565b820191906000526020600020905b8154815290600101906020018083116138c357829003601f168201915b5050505050905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166343334ce86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156139d357600080fd5b505af11580156139e7573d6000803e3d6000fd5b505050506040513d60208110156139fd57600080fd5b8101908080519060200190929190505050905090565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015613a645750600082115b15613b715781600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050613b76565b600090505b92915050565b60098054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613c125780601f10613be757610100808354040283529160200191613c12565b820191906000526020600020905b815481529060010190602001808311613bf557829003601f168201915b505050505081565b600a8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613cb05780601f10613c8557610100808354040283529160200191613cb0565b820191906000526020600020905b815481529060010190602001808311613c9357829003601f168201915b505050505081565b606060138054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613d505780601f10613d2557610100808354040283529160200191613d50565b820191906000526020600020905b815481529060010190602001808311613d3357829003601f168201915b5050505050905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613db857600080fd5b816015819055506015549050919050565b60155481565b60118054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613e655780601f10613e3a57610100808354040283529160200191613e65565b820191906000526020600020905b815481529060010190602001808311613e4857829003601f168201915b505050505081565b600082600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff1660405180807f72656365697665417070726f76616c28616464726573732c75696e743235362c81526020017f616464726573732c627974657329000000000000000000000000000000000000815250602e01905060405180910390207c01000000000000000000000000000000000000000000000000000000009004338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828051906020019080838360005b838110156140ae578082015181840152602081019050614093565b50505050905090810190601f1680156140db5780820380516001836020036101000a031916815260200191505b509450505050506000604051808303816000875af19250505015151561410057600080fd5b600190509392505050565b6060600f8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156141a35780601f10614178576101008083540402835291602001916141a3565b820191906000526020600020905b81548152906001019060200180831161418657829003601f168201915b5050505050905090565b60108054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156142435780601f1061421857610100808354040283529160200191614243565b820191906000526020600020905b81548152906001019060200180831161422657829003601f168201915b505050505081565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156143685780601f1061433d57610100808354040283529160200191614368565b820191906000526020600020905b81548152906001019060200180831161434b57829003601f168201915b505050505081565b60138054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156144065780601f106143db57610100808354040283529160200191614406565b820191906000526020600020905b8154815290600101906020018083116143e957829003601f168201915b505050505081565b60148054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156144a45780601f10614479576101008083540402835291602001916144a4565b820191906000526020600020905b81548152906001019060200180831161448757829003601f168201915b505050505081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561452e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561456a57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080828401905083811015151561463e57fe5b8091505092915050565b600082821115151561465657fe5b818303905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106146a257805160ff19168380011785556146d0565b828001600101855582156146d0579182015b828111156146cf5782518255916020019190600101906146b4565b5b5090506146dd91906146e1565b5090565b61470391905b808211156146ff5760008160009055506001016146e7565b5090565b905600a165627a7a72305820b935e384cb67a3b6d508b5b1f3cd674234c08c8ed45e4177d6ba2c0e055bc8c10029

Deployed Bytecode Sourcemap

9091:4611:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9941:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9941:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;9941:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5750:207;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5750:207:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11107:63;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11107:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;11107:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6222:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6222:26:0;;;;;;;;;;;;;;;;;;;;;;;11176:84;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11176:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;11176:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10732:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10732:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10732:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11922:82;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11922:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;11922:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4956:666;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4956:666:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11589:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11589:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;11589:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11428:72;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11428:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;11428:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10019:70;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10019:70:0;;;;;;;;;;;;;;;;;;;;;;;4236:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4236:33:0;;;;;;;;;;;;;;;;;;;;;;;11266:76;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11266:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;11266:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10686:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10686:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10686:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10772:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10772:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10772:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9291:132;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9291:132:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7801:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7801:145:0;;;;;;;;;;;;;;;;;;;;;;;;;;;10608:72;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10608:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10608:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11348:74;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11348:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;11348:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10928:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10928:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10928:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10096:128;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10096:128:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10096:128:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7032:661;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7032:661:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8360:716;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8360:716:0;;;;;;;;;;;;;;;;;;;;;;;;;;12088:70;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12088:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;12088:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6587:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6587:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;5630:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5630:112:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11842:74;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11842:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;11842:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12310:518;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12310:518:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1049:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1049:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;10503:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10503:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10503:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9983:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9983:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;9983:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11766:70;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11766:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;11766:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11506:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11506:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;11506:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9435:152;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9435:152:0;;;;;;;;;;;;;;;;;;;;;;;4275:673;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4275:673:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10231:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10231:127:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10231:127:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10365:131;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10365:131:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10365:131:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12010:72;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12010:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;12010:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12164:138;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12164:138:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11037:58;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11037:58:0;;;;;;;;;;;;;;;;;;;;;;;10892:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10892:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10892:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12894:805;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12894:805:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11680:80;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11680:80:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;11680:80:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10858:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10858:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10858:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5965:141;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5965:141:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10819:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10819:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10819:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10968:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10968:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10968:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11003:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11003:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;11003:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4195:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4195:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1666:178;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1666:178:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9941:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5750:207::-;5810:12;5867:6;5835:7;:19;5843:10;5835:19;;;;;;;;;;;;;;;:29;5855:8;5835:29;;;;;;;;;;;;;;;:38;;;;5910:8;5889:38;;5898:10;5889:38;;;5920:6;5889:38;;;;;;;;;;;;;;;;;;5945:4;5938:11;;5750:207;;;;:::o;11107:63::-;11146:6;11163:4;11156:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11107:63;:::o;6222:26::-;;;;:::o;11176:84::-;11225:6;11242:15;11235:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11176:84;:::o;10732:33::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11922:82::-;11970:6;11987:14;11980:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11922:82;:::o;4956:666::-;5031:12;5315:6;5296:8;:15;5305:5;5296:15;;;;;;;;;;;;;;;;:25;;:65;;;;;5355:6;5325:7;:14;5333:5;5325:14;;;;;;;;;;;;;;;:26;5340:10;5325:26;;;;;;;;;;;;;;;;:36;;5296:65;:79;;;;;5374:1;5365:6;:10;5296:79;5292:323;;;5409:6;5392:8;:13;5401:3;5392:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;5449:6;5430:8;:15;5439:5;5430:15;;;;;;;;;;;;;;;;:25;;;;;;;;;;;5500:6;5470:7;:14;5478:5;5470:14;;;;;;;;;;;;;;;:26;5485:10;5470:26;;;;;;;;;;;;;;;;:36;;;;;;;;;;;5542:3;5526:28;;5535:5;5526:28;;;5547:6;5526:28;;;;;;;;;;;;;;;;;;5576:4;5569:11;;;;5292:323;5607:5;5600:12;;4956:666;;;;;;:::o;11589:83::-;11638:6;11655:14;11648:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11589:83;:::o;11428:72::-;11471:6;11488:9;11481:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11428:72;:::o;10019:70::-;4268:1;10065:2;:23;10060:1;:29;10019:70;:::o;4236:33::-;4268:1;4236:33;:::o;11266:76::-;11311:6;11328:11;11321:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11266:76;:::o;10686:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10772:34::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9291:132::-;1477:5;;;;;;;;;;;1463:19;;:10;:19;;;1455:28;;;;;;;;9396:19;9374;;:41;;;;;;;;;;;;;;;;;;9291:132;:::o;7801:145::-;7859:4;1477:5;;;;;;;;;;;1463:19;;:10;:19;;;1455:28;;;;;;;;6666:16;;;;;;;;;;;6665:17;6657:26;;;;;;;;7891:4;7872:16;;:23;;;;;;;;;;;;;;;;;;7907:15;;;;;;;;;;7936:4;7929:11;;7801:145;:::o;10608:72::-;10649:6;10659:18;;;;;;;;;;;;;;;;;;;;10608:72;:::o;11348:74::-;11392:6;11409:10;11402:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11348:74;:::o;10928:33::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10096:128::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7032:661::-;7156:4;7215:12;7252;7289:17;7338;7462:16;6762:5;;;;;;;;;;;6748:19;;:10;:19;;;6740:28;;;;;;;;6666:16;;;;;;;;;;;6665:17;6657:26;;;;;;;;7188:19;;;;;;;;;;;7172:2;;:36;;;;;;;;;;;;;;;;;;7230:2;;;;;;;;;;;:13;;;:15;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7230:15:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7230:15:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7230:15:0;;;;;;;;;;;;;;;;7215:30;;4268:1;7267:2;:14;7252:29;;7327:4;7320;7310:7;:14;;;;;;;;:21;;;;;;;;7289:42;;7378:4;7371;7359:9;:16;:23;7338:44;;7416:1;7404:9;:13;7395:23;;;;;;;;7425:2;;;;;;;;;;;:9;;;7436;7425:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7425:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7425:22:0;;;;7481:9;7462:28;;7511:25;7527:8;7511:11;;:15;;:25;;;;:::i;:::-;7497:11;:39;;;;7559:27;7577:8;7559;:13;7568:3;7559:13;;;;;;;;;;;;;;;;:17;;:27;;;;:::i;:::-;7543:8;:13;7552:3;7543:13;;;;;;;;;;;;;;;:43;;;;7598:36;7604:19;;;;;;;;;;;7625:8;7598:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;7655:3;7646:23;;;7660:8;7646:23;;;;;;;;;;;;;;;;;;7683:4;7676:11;;7032:661;;;;;;;;;:::o;8360:716::-;8579:15;8618:12;8659;8700:14;8748:15;8328:5;;;;;;;;;;;8314:19;;:10;:19;;;8306:28;;;;;;;;8467:1;8458:6;:10;8450:19;;;;;;;;8498:8;:20;8507:10;8498:20;;;;;;;;;;;;;;;;8488:6;:30;;8480:39;;;;;;;;8548:19;;;;;;;;;;;8532:2;;:36;;;;;;;;;;;;;;;;;;8597:10;8579:28;;8633:2;;;;;;;;;;;:13;;;:15;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8633:15:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8633:15:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8633:15:0;;;;;;;;;;;;;;;;8618:30;;4268:1;8674:2;:14;8659:29;;8733:4;8726;8717:6;:13;;;;;;;;:20;;;;;;;;8700:37;;8782:4;8775;8766:6;:13;:20;8748:38;;8817:30;8839:7;8817:8;:17;8826:7;8817:17;;;;;;;;;;;;;;;;:21;;:30;;;;:::i;:::-;8797:8;:17;8806:7;8797:17;;;;;;;;;;;;;;;:50;;;;8872:24;8888:7;8872:11;;:15;;:24;;;;:::i;:::-;8858:11;:38;;;;8926:1;8917:6;:10;8909:19;;;;;;;;8939:2;;;;;;;;;;;:12;;;8953:6;8939:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8939:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8939:22:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8939:22:0;;;;;;;;;;;;;;;;;8983:41;8994:19;;;;;;;;;;;9015:7;8983:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;9040:28;9050:7;9059;9040:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;8360:716;;;;;;:::o;12088:70::-;12130:6;12147:8;12140:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12088:70;:::o;6587:36::-;;;;;;;;;;;;;:::o;5630:112::-;5683:15;5718:8;:16;5727:6;5718:16;;;;;;;;;;;;;;;;5711:23;;5630:112;;;:::o;11842:74::-;11886:6;11903:10;11896:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11842:74;:::o;12310:518::-;12464:12;12505:14;12489:13;:30;;;;;;;;;;;;:::i;:::-;;12541:9;12530:8;:20;;;;;;;;;;;;:::i;:::-;;12574:11;12561:10;:24;;;;;;;;;;;;:::i;:::-;;12613:15;12596:14;:32;;;;;;;;;;;;:::i;:::-;;12651:10;12639:9;:22;;;;;;;;;;;;:::i;:::-;;12683:9;12672:8;:20;;;;;;;;;;;;:::i;:::-;;12708:90;12725:13;12740:8;12750:10;12762:14;12778:9;12789:8;12708:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12816:4;12809:11;;12310:518;;;;;;;;:::o;1049:20::-;;;;;;;;;;;;;:::o;10503:98::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9983:29::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11766:70::-;11808:6;11825:8;11818:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11766:70;:::o;11506:77::-;11552:6;11569:11;11562:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11506:77;:::o;9435:152::-;9481:14;9525:19;;;;;;;;;;;9508:2;;:38;;;;;;;;;;;;;;;;;;9564:2;;;;;;;;;;;:13;;;:15;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9564:15:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9564:15:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9564:15:0;;;;;;;;;;;;;;;;9557:22;;9435:152;:::o;4275:673::-;4330:12;4722:6;4698:8;:20;4707:10;4698:20;;;;;;;;;;;;;;;;:30;;:44;;;;;4741:1;4732:6;:10;4698:44;4694:247;;;4783:6;4759:8;:20;4768:10;4759:20;;;;;;;;;;;;;;;;:30;;;;;;;;;;;4821:6;4804:8;:13;4813:3;4804:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;4868:3;4847:33;;4856:10;4847:33;;;4873:6;4847:33;;;;;;;;;;;;;;;;;;4902:4;4895:11;;;;4694:247;4933:5;4926:12;;4275:673;;;;;:::o;10231:127::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10365:131::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12010:72::-;12053:6;12070:9;12063:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12010:72;:::o;12164:138::-;12230:7;1477:5;;;;;;;;;;;1463:19;;:10;:19;;;1455:28;;;;;;;;12262:5;12250:9;:17;;;;12285:9;;12278:16;;12164:138;;;:::o;11037:58::-;;;;:::o;10892:29::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12894:805::-;12979:12;13036:6;13004:7;:19;13012:10;13004:19;;;;;;;;;;;;;;;:29;13024:8;13004:29;;;;;;;;;;;;;;;:38;;;;13079:8;13058:38;;13067:10;13058:38;;;13089:6;13058:38;;;;;;;;;;;;;;;;;;13539:8;:13;;13568:59;;;;;;;;;;;;;;;;;;;;;;;;13539:129;;;13631:10;13643:6;13651:4;13657:10;13539:129;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;13539:129:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13538:130;13530:139;;;;;;;;13687:4;13680:11;;12894:805;;;;;:::o;11680:80::-;11727:6;11744:13;11737:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11680:80;:::o;10858:27::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5965:141::-;6036:17;6073:7;:15;6081:6;6073:15;;;;;;;;;;;;;;;:25;6089:8;6073:25;;;;;;;;;;;;;;;;6066:32;;5965:141;;;;:::o;10819:32::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10968:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11003:27::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4195:34::-;;;;;;;;;;;;;:::o;1666:178::-;1477:5;;;;;;;;;;;1463:19;;:10;:19;;;1455:28;;;;;;;;1763:1;1743:22;;:8;:22;;;;1735:31;;;;;;;;1806:8;1778:37;;1799:5;;;;;;;;;;;1778:37;;;;;;;;;;;;1830:8;1822:5;;:16;;;;;;;;;;;;;;;;;;1666:178;:::o;692:133::-;750:7;766:9;782:1;778;:5;766:17;;802:1;797;:6;;790:14;;;;;;818:1;811:8;;692:133;;;;;:::o;573:113::-;631:7;659:1;654;:6;;647:14;;;;;;679:1;675;:5;668:12;;573:113;;;;:::o;9091:4611::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://b935e384cb67a3b6d508b5b1f3cd674234c08c8ed45e4177d6ba2c0e055bc8c1
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.