Token WATTTON

 

Overview [ERC-20]

Max Total Supply:
1,000,000,000 WATT

Holders:
52 ( -3.846%)

Transfers:
-

 
Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

OVERVIEW

WATTTON project is an 'idea-energy trading platform' that will discover, introduce, and develop sustainable, carbon-free, eco-friendly, economical, and mysterious energy.

# Exchange Pair Price  24H Volume % Volume
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Wattton

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-01-06
*/

/**
 *Submitted for verification at Etherscan.io on 2020-11-24
*/

pragma solidity 0.4.25;

contract ERC20Basic {
    function totalSupply() public view returns (uint256);
    function balanceOf(address who) public view returns (uint256);
    function transfer(address  to, uint256 value) public returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
}

contract ERC20 is ERC20Basic {
    function allowance(address owner, address spender) public view returns (uint256);
    function transferFrom(address from, address  to, uint256 value) public returns (bool);
    function approve(address  spender, uint256 value) public returns (bool);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract DetailedERC20 is ERC20 {
    string public name;
    string public symbol;
    uint8 public decimals;
    
    constructor(string _name, string _symbol, uint8 _decimals) public {
        name = _name;
        symbol = _symbol;
        decimals = _decimals;
    }
}

contract BasicToken is ERC20Basic {
    using SafeMath for uint256;
    event Approval(address indexed owner, address indexed spender, uint256 value);
    mapping(address => uint256)  balances;
    uint256  _totalSupply;
    
    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }
    
    
    function transfer(address _to, uint256 _value) public returns (bool) {
        require(_to != address(0) && _value != 0 &&_value <= balances[msg.sender],"Please check the amount of transmission error and the amount you send.");
        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);
        emit Transfer(msg.sender, _to, _value);
        
        return true;
    }
    
    function balanceOf(address _owner) public view returns (uint256 balance) {
        return balances[_owner];
    }
}

contract ERC20Token is BasicToken, ERC20 {
    using SafeMath for uint256;
    event Approval(address indexed owner, address indexed spender, uint256 value);
    mapping (address => mapping (address => uint256))  allowed;
    mapping (address => uint256) public freezeOf;

    function approve(address _spender, uint256 _value) public returns (bool) {
        
        require(_value == 0 || allowed[msg.sender][_spender] == 0,"Please check the amount you want to approve.");
        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }
    
    function allowance(address _owner, address _spender) public view returns (uint256 remaining) {
        return allowed[_owner][_spender];
    }
    
    function increaseApproval(address _spender, uint256 _addedValue) public returns (bool success) {
        allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
        emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }
    
    function decreaseApproval(address _spender, uint256 _subtractedValue) public returns (bool success) {
        uint256 oldValue = allowed[msg.sender][_spender];
        if (_subtractedValue >= oldValue) {
            allowed[msg.sender][_spender] = 0;
        } else {
            allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
        }
        emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }
}

contract Ownable {
    
    address public owner;
    mapping (address => bool) public admin;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    
    constructor() public {
        owner = msg.sender;
    }
    
    modifier onlyOwner() {
        require(msg.sender == owner,"I am not the owner of the wallet.");
        _;
    }
    
    modifier onlyOwnerOrAdmin() {
        require(msg.sender == owner || admin[msg.sender] == true,"It is not the owner or manager wallet address.");
        _;
    }
    
    function transferOwnership(address newOwner) onlyOwner public {
        require(newOwner != address(0) && newOwner != owner && admin[newOwner] == true,"It must be the existing manager wallet, not the existing owner's wallet.");
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }
    
    function setAdmin(address newAdmin) onlyOwner public {
        require(admin[newAdmin] != true && owner != newAdmin,"It is not an existing administrator wallet, and it must not be the owner wallet of the token.");
        admin[newAdmin] = true;
    }
    
    function unsetAdmin(address Admin) onlyOwner public {
        require(admin[Admin] != false && owner != Admin,"This is an existing admin wallet, it must not be a token holder wallet.");
        admin[Admin] = false;
    }

}

contract Pausable is Ownable {
    event Pause();
    event Unpause();
    bool public paused = false;
    
    modifier whenNotPaused() {
        require(!paused,"There is a pause.");
        _;
    }
    
    modifier whenPaused() {
        require(paused,"It is not paused.");
        _;
    }
    
    function pause() onlyOwner whenNotPaused public {
        paused = true;
        emit Pause();
    }
    
    function unpause() onlyOwner whenPaused public {
        paused = false;
        emit Unpause();
    }

}

library SafeMath {
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {return 0; }	
        uint256 c = a * b;
        require(c / a == b,"An error occurred in the calculation process");
        return c;
    }
    
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b !=0,"The number you want to divide must be non-zero.");
        uint256 c = a / b;
        require(c * b == a,"An error occurred in the calculation process");
        return c;
    }
    
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a,"There are more to deduct.");
        return a - b;
    }
    
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a,"The number did not increase.");
        return c;
    }
}

contract BurnableToken is BasicToken, Ownable {
    
    event Burn(address indexed burner, uint256 amount);

    function burn(uint256 _value) onlyOwner public {
        balances[msg.sender] = balances[msg.sender].sub(_value);
        _totalSupply = _totalSupply.sub(_value);
        emit Burn(msg.sender, _value);
        emit Transfer(msg.sender, address(0), _value);
    }

  
}




contract FreezeToken is BasicToken, Ownable {
    
    event Freezen(address indexed freezer, uint256 amount);
    event UnFreezen(address indexed freezer, uint256 amount);
    mapping (address => uint256) public freezeOf;
    
    function freeze(uint256 _value) onlyOwner public {
        balances[msg.sender] = balances[msg.sender].sub(_value);
        freezeOf[msg.sender] = freezeOf[msg.sender].add(_value);
        _totalSupply = _totalSupply.sub(_value);
        emit Freezen(msg.sender, _value);
    }
    
    function unfreeze(uint256 _value) onlyOwner public {
        require(freezeOf[msg.sender] >= _value,"The number to be processed is more than the total amount and the number currently frozen.");
        balances[msg.sender] = balances[msg.sender].add(_value);
        freezeOf[msg.sender] = freezeOf[msg.sender].sub(_value);
        _totalSupply = _totalSupply.add(_value);
        emit Freezen(msg.sender, _value);
    }
}


contract Wattton is BurnableToken,FreezeToken, DetailedERC20, ERC20Token,Pausable{
    using SafeMath for uint256;
    
    event Approval(address indexed owner, address indexed spender, uint256 value);
    event LockerChanged(address indexed owner, uint256 amount);
    mapping(address => uint) locker;
    
    string  private constant _symbol = "WATT";
    string  private constant _name = "WATTTON";
    uint8  private constant _decimals = 4;
    uint256 private constant TOTAL_SUPPLY = 7880000000*(10**uint256(_decimals));
    
    constructor() DetailedERC20(_name, _symbol, _decimals) public {
        _totalSupply = TOTAL_SUPPLY;
        balances[owner] = _totalSupply;
        emit Transfer(address(0x0), msg.sender, _totalSupply);
    }
    
    function transfer(address _to, uint256 _value)  public whenNotPaused returns (bool){
        require(balances[msg.sender].sub(_value) >= locker[msg.sender],"Attempting to send more than the locked number");
        return super.transfer(_to, _value);
    }
    
    function transferFrom(address _from, address _to, uint256 _value) public whenNotPaused returns (bool){
    
        require(_to > address(0) && _from > address(0),"Please check the address" );
        require(balances[_from] >= _value && allowed[_from][msg.sender] >= _value,"Please check the amount of transmission error and the amount you send.");
        require(balances[_from].sub(_value) >= locker[_from],"Attempting to send more than the locked number" );
        
        balances[_from] = balances[_from].sub(_value);
        balances[_to] = balances[_to].add(_value);
        allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
        
        emit Transfer(_from, _to, _value);
        
        return true;
        
    }
    
    function lockOf(address _address) public view returns (uint256 _locker) {
        return locker[_address];
    }
    
    function setLock(address _address, uint256 _value) public onlyOwnerOrAdmin {
        require(_value <= _totalSupply &&_address != address(0),"It is the first wallet or attempted to lock an amount greater than the total holding.");
        locker[_address] = _value;
        emit LockerChanged(_address, _value);
    }
    function setLockList(address[] _recipients, uint256[] _balances) external onlyOwnerOrAdmin{
        require(_recipients.length == _balances.length,"The number of wallet arrangements and the number of amounts are different.");
        
        for (uint i=0; i < _recipients.length; i++) {
            require(_recipients[i] != address(0),'Please check the address');
            
            locker[_recipients[i]] = _balances[i];
            emit LockerChanged(_recipients[i], _balances[i]);
        }
    }
    
  
    function transferList(address[] _recipients, uint256[] _balances) external onlyOwnerOrAdmin{
        require(_recipients.length == _balances.length,"The number of wallet arrangements and the number of amounts are different.");
        
        for (uint i=0; i < _recipients.length; i++) {
            balances[msg.sender] = balances[msg.sender].sub(_balances[i]);
            balances[_recipients[i]] = balances[_recipients[i]].add(_balances[i]);
            emit Transfer(msg.sender,_recipients[i],_balances[i]);
        }
    }
    
 
    function() public payable {
        revert();
    }
}

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":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_recipients","type":"address[]"},{"name":"_balances","type":"uint256[]"}],"name":"setLockList","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"Admin","type":"address"}],"name":"unsetAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"lockOf","outputs":[{"name":"_locker","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"admin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"unfreeze","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_recipients","type":"address[]"},{"name":"_balances","type":"uint256[]"}],"name":"transferList","outputs":[],"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":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"},{"name":"_value","type":"uint256"}],"name":"setLock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"freezeOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"freeze","outputs":[],"payable":false,"stateMutability":"nonpayable","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":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"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":true,"name":"owner","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LockerChanged","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"freezer","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Freezen","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"freezer","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"UnFreezen","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"burner","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Burn","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"}]

60806040526000600a60006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b506040805190810160405280600781526020017f57415454544f4e000000000000000000000000000000000000000000000000008152506040805190810160405280600481526020017f5741545400000000000000000000000000000000000000000000000000000000815250600433600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260059080519060200190620000f492919062000216565b5081600690805190602001906200010d92919062000216565b5080600760006101000a81548160ff021916908360ff160217905550505050600460ff16600a0a6401d5af420002600181905550600154600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6001546040518082815260200191505060405180910390a3620002c5565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200025957805160ff19168380011785556200028a565b828001600101855582156200028a579182015b82811115620002895782518255916020019190600101906200026c565b5b5090506200029991906200029d565b5090565b620002c291905b80821115620002be576000816000905550600101620002a4565b5090565b90565b613fd080620002d56000396000f30060806040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610164578063095ea7b3146101f457806318160ddd146102595780631d5397641461028457806323b872dd146102d7578063313ce5671461035c5780633f4ba83a1461038d57806342966c68146103a45780634d253b50146103d15780635a46d3b5146104145780635c975abb1461046b57806363a846f81461049a57806366188463146104f55780636623fc461461055a578063704b6c021461058757806370a08231146105ca5780638456cb5914610621578063859bc2f3146106385780638da5cb5b1461068b57806395d89b41146106e2578063a9059cbb14610772578063b0fc29e6146107d7578063cd4217c114610824578063d73dd6231461087b578063d7a78db8146108e0578063dd62ed3e1461090d578063f2fde38b14610984575b600080fd5b34801561017057600080fd5b506101796109c7565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101b957808201518184015260208101905061019e565b50505050905090810190601f1680156101e65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020057600080fd5b5061023f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a65565b604051808215151515815260200191505060405180910390f35b34801561026557600080fd5b5061026e610c7b565b6040518082815260200191505060405180910390f35b34801561029057600080fd5b506102d5600480360381019080803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050610c85565b005b3480156102e357600080fd5b50610342600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611097565b604051808215151515815260200191505060405180910390f35b34801561036857600080fd5b50610371611756565b604051808260ff1660ff16815260200191505060405180910390f35b34801561039957600080fd5b506103a2611769565b005b3480156103b057600080fd5b506103cf60048036038101908080359060200190929190505050611921565b005b3480156103dd57600080fd5b50610412600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b71565b005b34801561042057600080fd5b50610455600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e26565b6040518082815260200191505060405180910390f35b34801561047757600080fd5b50610480611e6f565b604051808215151515815260200191505060405180910390f35b3480156104a657600080fd5b506104db600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e82565b604051808215151515815260200191505060405180910390f35b34801561050157600080fd5b50610540600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ea2565b604051808215151515815260200191505060405180910390f35b34801561056657600080fd5b5061058560048036038101908080359060200190929190505050612134565b005b34801561059357600080fd5b506105c8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124b6565b005b3480156105d657600080fd5b5061060b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061276b565b6040518082815260200191505060405180910390f35b34801561062d57600080fd5b506106366127b3565b005b34801561064457600080fd5b5061068960048036038101908080359060200190820180359060200191909192939192939080359060200190820180359060200191909192939192939050505061296c565b005b34801561069757600080fd5b506106a0612de6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106ee57600080fd5b506106f7612e0c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561073757808201518184015260208101905061071c565b50505050905090810190601f1680156107645780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561077e57600080fd5b506107bd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612eaa565b604051808215151515815260200191505060405180910390f35b3480156107e357600080fd5b50610822600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613070565b005b34801561083057600080fd5b50610865600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061334b565b6040518082815260200191505060405180910390f35b34801561088757600080fd5b506108c6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613363565b604051808215151515815260200191505060405180910390f35b3480156108ec57600080fd5b5061090b6004803603810190808035906020019092919050505061355f565b005b34801561091957600080fd5b5061096e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506137de565b6040518082815260200191505060405180910390f35b34801561099057600080fd5b506109c5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613865565b005b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a5d5780601f10610a3257610100808354040283529160200191610a5d565b820191906000526020600020905b815481529060010190602001808311610a4057829003601f168201915b505050505081565b600080821480610af157506000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b1515610b8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f506c6561736520636865636b2074686520616d6f756e7420796f752077616e7481526020017f20746f20617070726f76652e000000000000000000000000000000000000000081525060400191505060405180910390fd5b81600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610d33575060011515600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b1515610dcd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f4974206973206e6f7420746865206f776e6572206f72206d616e61676572207781526020017f616c6c657420616464726573732e00000000000000000000000000000000000081525060400191505060405180910390fd5b8282905085859050141515610e96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604a8152602001807f546865206e756d626572206f662077616c6c657420617272616e67656d656e7481526020017f7320616e6420746865206e756d626572206f6620616d6f756e7473206172652081526020017f646966666572656e742e0000000000000000000000000000000000000000000081525060600191505060405180910390fd5b600090505b8484905081101561109057600073ffffffffffffffffffffffffffffffffffffffff168585838181101515610ecc57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610f75576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f506c6561736520636865636b207468652061646472657373000000000000000081525060200191505060405180910390fd5b8282828181101515610f8357fe5b90506020020135600b60008787858181101515610f9c57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550848482818110151561100557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f173c6954f6574ae8ea8afd3eed2fc6ddd6f1aac55aab5e2c3a10edc59ba2dfd3848484818110151561106757fe5b905060200201356040518082815260200191505060405180910390a28080600101915050610e9b565b5050505050565b6000600a60009054906101000a900460ff1615151561111e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f546865726520697320612070617573652e00000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161180156111865750600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16115b15156111fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f506c6561736520636865636b207468652061646472657373000000000000000081525060200191505060405180910390fd5b816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101580156112c4575081600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b1515611384576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260468152602001807f506c6561736520636865636b2074686520616d6f756e74206f66207472616e7381526020017f6d697373696f6e206572726f7220616e642074686520616d6f756e7420796f7581526020017f2073656e642e000000000000000000000000000000000000000000000000000081525060600191505060405180910390fd5b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611415836000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613bb790919063ffffffff16565b101515156114b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f417474656d7074696e6720746f2073656e64206d6f7265207468616e2074686581526020017f206c6f636b6564206e756d62657200000000000000000000000000000000000081525060400191505060405180910390fd5b611502826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613bb790919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611595826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c3c90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061166682600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613bb790919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600760009054906101000a900460ff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611854576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4920616d206e6f7420746865206f776e6572206f66207468652077616c6c657481526020017f2e0000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600a60009054906101000a900460ff1615156118d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f4974206973206e6f74207061757365642e00000000000000000000000000000081525060200191505060405180910390fd5b6000600a60006101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a0c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4920616d206e6f7420746865206f776e6572206f66207468652077616c6c657481526020017f2e0000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b611a5d816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613bb790919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ab481600154613bb790919063ffffffff16565b6001819055503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c5c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4920616d206e6f7420746865206f776e6572206f66207468652077616c6c657481526020017f2e0000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60001515600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514158015611d0b57508073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b1515611dcb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260478152602001807f5468697320697320616e206578697374696e672061646d696e2077616c6c657481526020017f2c206974206d757374206e6f74206265206120746f6b656e20686f6c6465722081526020017f77616c6c65742e0000000000000000000000000000000000000000000000000081525060600191505060405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a60009054906101000a900460ff1681565b60036020528060005260406000206000915054906101000a900460ff1681565b600080600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508083101515611fb4576000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612048565b611fc78382613bb790919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561221f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4920616d206e6f7420746865206f776e6572206f66207468652077616c6c657481526020017f2e0000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515612322576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260598152602001807f546865206e756d62657220746f2062652070726f636573736564206973206d6f81526020017f7265207468616e2074686520746f74616c20616d6f756e7420616e642074686581526020017f206e756d6265722063757272656e746c792066726f7a656e2e0000000000000081525060600191505060405180910390fd5b612373816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c3c90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061240781600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613bb790919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061245f81600154613c3c90919063ffffffff16565b6001819055503373ffffffffffffffffffffffffffffffffffffffff167fcac76f4972d9ff5ad35f15943c99ef30a49b3a0203cc98c4ef401ab7b8d1a509826040518082815260200191505060405180910390a250565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156125a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4920616d206e6f7420746865206f776e6572206f66207468652077616c6c657481526020017f2e0000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60011515600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415801561265057508073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b1515612710576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252605d8152602001807f4974206973206e6f7420616e206578697374696e672061646d696e697374726181526020017f746f722077616c6c65742c20616e64206974206d757374206e6f74206265207481526020017f6865206f776e65722077616c6c6574206f662074686520746f6b656e2e00000081525060600191505060405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561289e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4920616d206e6f7420746865206f776e6572206f66207468652077616c6c657481526020017f2e0000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600a60009054906101000a900460ff16151515612923576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f546865726520697320612070617573652e00000000000000000000000000000081525060200191505060405180910390fd5b6001600a60006101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612a1a575060011515600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b1515612ab4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f4974206973206e6f7420746865206f776e6572206f72206d616e61676572207781526020017f616c6c657420616464726573732e00000000000000000000000000000000000081525060400191505060405180910390fd5b8282905085859050141515612b7d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604a8152602001807f546865206e756d626572206f662077616c6c657420617272616e67656d656e7481526020017f7320616e6420746865206e756d626572206f6620616d6f756e7473206172652081526020017f646966666572656e742e0000000000000000000000000000000000000000000081525060600191505060405180910390fd5b600090505b84849050811015612ddf57612bf28383838181101515612b9e57fe5b905060200201356000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613bb790919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612cc38383838181101515612c4557fe5b905060200201356000808888868181101515612c5d57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c3c90919063ffffffff16565b6000808787858181101515612cd457fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508484828181101515612d3d57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8585858181101515612db657fe5b905060200201356040518082815260200191505060405180910390a38080600101915050612b82565b5050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612ea25780601f10612e7757610100808354040283529160200191612ea2565b820191906000526020600020905b815481529060010190602001808311612e8557829003601f168201915b505050505081565b6000600a60009054906101000a900460ff16151515612f31576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f546865726520697320612070617573652e00000000000000000000000000000081525060200191505060405180910390fd5b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fc2836000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613bb790919063ffffffff16565b1015151561305e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f417474656d7074696e6720746f2073656e64206d6f7265207468616e2074686581526020017f206c6f636b6564206e756d62657200000000000000000000000000000000000081525060400191505060405180910390fd5b6130688383613cc6565b905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061311c575060011515600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15156131b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f4974206973206e6f7420746865206f776e6572206f72206d616e61676572207781526020017f616c6c657420616464726573732e00000000000000000000000000000000000081525060400191505060405180910390fd5b60015481111580156131f55750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156132b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260558152602001807f4974206973207468652066697273742077616c6c6574206f7220617474656d7081526020017f74656420746f206c6f636b20616e20616d6f756e74206772656174657220746881526020017f616e2074686520746f74616c20686f6c64696e672e000000000000000000000081525060600191505060405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167f173c6954f6574ae8ea8afd3eed2fc6ddd6f1aac55aab5e2c3a10edc59ba2dfd3826040518082815260200191505060405180910390a25050565b60096020528060005260406000206000915090505481565b60006133f482600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c3c90919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561364a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4920616d206e6f7420746865206f776e6572206f66207468652077616c6c657481526020017f2e0000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61369b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613bb790919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061372f81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c3c90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061378781600154613bb790919063ffffffff16565b6001819055503373ffffffffffffffffffffffffffffffffffffffff167fcac76f4972d9ff5ad35f15943c99ef30a49b3a0203cc98c4ef401ab7b8d1a509826040518082815260200191505060405180910390a250565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613950576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4920616d206e6f7420746865206f776e6572206f66207468652077616c6c657481526020017f2e0000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156139db5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015613a37575060011515600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b1515613af7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260488152602001807f4974206d75737420626520746865206578697374696e67206d616e616765722081526020017f77616c6c65742c206e6f7420746865206578697374696e67206f776e6572277381526020017f2077616c6c65742e00000000000000000000000000000000000000000000000081525060600191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000828211151515613c31576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f546865726520617265206d6f726520746f206465647563742e0000000000000081525060200191505060405180910390fd5b818303905092915050565b6000808284019050838110151515613cbc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f546865206e756d62657220646964206e6f7420696e6372656173652e0000000081525060200191505060405180910390fd5b8091505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015613d05575060008214155b8015613d4f57506000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211155b1515613e0f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260468152602001807f506c6561736520636865636b2074686520616d6f756e74206f66207472616e7381526020017f6d697373696f6e206572726f7220616e642074686520616d6f756e7420796f7581526020017f2073656e642e000000000000000000000000000000000000000000000000000081525060600191505060405180910390fd5b613e60826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613bb790919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613ef3826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c3c90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050929150505600a165627a7a72305820f50fde39372dc9135dba8877c11c88fffa7dcf2f574a3eb9605904ea0242a0a90029

Deployed ByteCode Sourcemap

7767:3417:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11165:8;;;822:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;822:18: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;822:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2266:332;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2266:332:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1306:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1306:91:0;;;;;;;;;;;;;;;;;;;;;;;10042:517;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10042:517:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8812:765;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8812:765:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;874:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;874:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;5376:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5376:105:0;;;;;;6514:267;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6514:267:0;;;;;;;;;;;;;;;;;;;;;;;;;;4707:224;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4707:224:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9589:114;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9589:114:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5018:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5018:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;3598:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3598:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3069:465;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3069:465:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7332:426;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7332:426:0;;;;;;;;;;;;;;;;;;;;;;;;;;4441:254;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4441:254:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;1861:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1861:115:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5261:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5261:103:0;;;;;;10575:538;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10575:538:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3571:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3571:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;847;;8:9:-1;5:2;;;30:1;27;20:12;5:2;847:20: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;847:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8541:259;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8541:259:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9715:321;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9715:321:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2213:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2213:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2766:291;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2766:291:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7038:282;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7038:282:0;;;;;;;;;;;;;;;;;;;;;;;;;;2610:144;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2610:144:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4114:315;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4114:315:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;822:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2266:332::-;2333:4;2378:1;2368:6;:11;:49;;;;2416:1;2383:7;:19;2391:10;2383:19;;;;;;;;;;;;;;;:29;2403:8;2383:29;;;;;;;;;;;;;;;;:34;2368:49;2360:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2508:6;2476:7;:19;2484:10;2476:19;;;;;;;;;;;;;;;:29;2496:8;2476:29;;;;;;;;;;;;;;;:38;;;;2551:8;2530:38;;2539:10;2530:38;;;2561:6;2530:38;;;;;;;;;;;;;;;;;;2586:4;2579:11;;2266:332;;;;:::o;1306:91::-;1350:7;1377:12;;1370:19;;1306:91;:::o;10042:517::-;10293:6;3998:5;;;;;;;;;;;3984:19;;:10;:19;;;:48;;;;4028:4;4007:25;;:5;:17;4013:10;4007:17;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;3984:48;3976:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10173:9;;:16;;10151:11;;:18;;:38;10143:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10300:1;10293:8;;10288:264;10307:11;;:18;;10303:1;:22;10288:264;;;10381:1;10355:28;;:11;;10367:1;10355:14;;;;;;;;;;;;;;;;;:28;;;;10347:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10465:9;;10475:1;10465:12;;;;;;;;;;;;;;;10440:6;:22;10447:11;;10459:1;10447:14;;;;;;;;;;;;;;;;;10440:22;;;;;;;;;;;;;;;:37;;;;10511:11;;10523:1;10511:14;;;;;;;;;;;;;;;;;10497:43;;;10527:9;;10537:1;10527:12;;;;;;;;;;;;;;;10497:43;;;;;;;;;;;;;;;;;;10327:3;;;;;;;10288:264;;;10042:517;;;;;:::o;8812:765::-;8908:4;5102:6;;;;;;;;;;;5101:7;5093:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8952:1;8938:16;;:3;:16;;;:38;;;;;8974:1;8958:18;;:5;:18;;;8938:38;8930:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9043:6;9024:8;:15;9033:5;9024:15;;;;;;;;;;;;;;;;:25;;:65;;;;;9083:6;9053:7;:14;9061:5;9053:14;;;;;;;;;;;;;;;:26;9068:10;9053:26;;;;;;;;;;;;;;;;:36;;9024:65;9016:147;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9213:6;:13;9220:5;9213:13;;;;;;;;;;;;;;;;9182:27;9202:6;9182:8;:15;9191:5;9182:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;:44;;9174:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9316:27;9336:6;9316:8;:15;9325:5;9316:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9298:8;:15;9307:5;9298:15;;;;;;;;;;;;;;;:45;;;;9370:25;9388:6;9370:8;:13;9379:3;9370:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;9354:8;:13;9363:3;9354:13;;;;;;;;;;;;;;;:41;;;;9435:38;9466:6;9435:7;:14;9443:5;9435:14;;;;;;;;;;;;;;;:26;9450:10;9435:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;9406:7;:14;9414:5;9406:14;;;;;;;;;;;;;;;:26;9421:10;9406:26;;;;;;;;;;;;;;;:67;;;;9515:3;9499:28;;9508:5;9499:28;;;9520:6;9499:28;;;;;;;;;;;;;;;;;;9555:4;9548:11;;8812:765;;;;;:::o;874:21::-;;;;;;;;;;;;;:::o;5376:105::-;3863:5;;;;;;;;;;;3849:19;;:10;:19;;;3841:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5202:6;;;;;;;;;;;5194:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5443:5;5434:6;;:14;;;;;;;;;;;;;;;;;;5464:9;;;;;;;;;;5376:105::o;6514:267::-;3863:5;;;;;;;;;;;3849:19;;:10;:19;;;3841:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6595:32;6620:6;6595:8;:20;6604:10;6595:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;6572:8;:20;6581:10;6572:20;;;;;;;;;;;;;;;:55;;;;6653:24;6670:6;6653:12;;:16;;:24;;;;:::i;:::-;6638:12;:39;;;;6698:10;6693:24;;;6710:6;6693:24;;;;;;;;;;;;;;;;;;6762:1;6733:40;;6742:10;6733:40;;;6766:6;6733:40;;;;;;;;;;;;;;;;;;6514:267;:::o;4707:224::-;3863:5;;;;;;;;;;;3849:19;;:10;:19;;;3841:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4794:5;4778:21;;:5;:12;4784:5;4778:12;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;;:39;;;;;4812:5;4803:14;;:5;;;;;;;;;;;:14;;;;4778:39;4770:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4918:5;4903;:12;4909:5;4903:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;4707:224;:::o;9589:114::-;9644:15;9679:6;:16;9686:8;9679:16;;;;;;;;;;;;;;;;9672:23;;9589:114;;;:::o;5018:26::-;;;;;;;;;;;;;:::o;3598:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;3069:465::-;3155:12;3180:16;3199:7;:19;3207:10;3199:19;;;;;;;;;;;;;;;:29;3219:8;3199:29;;;;;;;;;;;;;;;;3180:48;;3263:8;3243:16;:28;;3239:189;;;3320:1;3288:7;:19;3296:10;3288:19;;;;;;;;;;;;;;;:29;3308:8;3288:29;;;;;;;;;;;;;;;:33;;;;3239:189;;;3386:30;3399:16;3386:8;:12;;:30;;;;:::i;:::-;3354:7;:19;3362:10;3354:19;;;;;;;;;;;;;;;:29;3374:8;3354:29;;;;;;;;;;;;;;;:62;;;;3239:189;3464:8;3443:61;;3452:10;3443:61;;;3474:7;:19;3482:10;3474:19;;;;;;;;;;;;;;;:29;3494:8;3474:29;;;;;;;;;;;;;;;;3443:61;;;;;;;;;;;;;;;;;;3522:4;3515:11;;3069:465;;;;;:::o;7332:426::-;3863:5;;;;;;;;;;;3849:19;;:10;:19;;;3841:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7426:6;7402:8;:20;7411:10;7402:20;;;;;;;;;;;;;;;;:30;;7394:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7559:32;7584:6;7559:8;:20;7568:10;7559:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;7536:8;:20;7545:10;7536:20;;;;;;;;;;;;;;;:55;;;;7625:32;7650:6;7625:8;:20;7634:10;7625:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;7602:8;:20;7611:10;7602:20;;;;;;;;;;;;;;;:55;;;;7683:24;7700:6;7683:12;;:16;;:24;;;;:::i;:::-;7668:12;:39;;;;7731:10;7723:27;;;7743:6;7723:27;;;;;;;;;;;;;;;;;;7332:426;:::o;4441:254::-;3863:5;;;;;;;;;;;3849:19;;:10;:19;;;3841:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4532:4;4513:23;;:5;:15;4519:8;4513:15;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;;:44;;;;;4549:8;4540:17;;:5;;;;;;;;;;;:17;;;;4513:44;4505:149;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4683:4;4665:5;:15;4671:8;4665:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;4441:254;:::o;1861:115::-;1917:15;1952:8;:16;1961:6;1952:16;;;;;;;;;;;;;;;;1945:23;;1861:115;;;:::o;5261:103::-;3863:5;;;;;;;;;;;3849:19;;:10;:19;;;3841:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5102:6;;;;;;;;;;;5101:7;5093:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5329:4;5320:6;;:13;;;;;;;;;;;;;;;;;;5349:7;;;;;;;;;;5261:103::o;10575:538::-;10827:6;3998:5;;;;;;;;;;;3984:19;;:10;:19;;;:48;;;;4028:4;4007:25;;:5;:17;4013:10;4007:17;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;3984:48;3976:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10707:9;;:16;;10685:11;;:18;;:38;10677:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10834:1;10827:8;;10822:284;10841:11;;:18;;10837:1;:22;10822:284;;;10904:38;10929:9;;10939:1;10929:12;;;;;;;;;;;;;;;10904:8;:20;10913:10;10904:20;;;;;;;;;;;;;;;;:24;;:38;;;;:::i;:::-;10881:8;:20;10890:10;10881:20;;;;;;;;;;;;;;;:61;;;;10984:42;11013:9;;11023:1;11013:12;;;;;;;;;;;;;;;10984:8;:24;10993:11;;11005:1;10993:14;;;;;;;;;;;;;;;;;10984:24;;;;;;;;;;;;;;;;:28;;:42;;;;:::i;:::-;10957:8;:24;10966:11;;10978:1;10966:14;;;;;;;;;;;;;;;;;10957:24;;;;;;;;;;;;;;;:69;;;;11066:11;;11078:1;11066:14;;;;;;;;;;;;;;;;;11046:48;;11055:10;11046:48;;;11081:9;;11091:1;11081:12;;;;;;;;;;;;;;;11046:48;;;;;;;;;;;;;;;;;;10861:3;;;;;;;10822:284;;;10575:538;;;;;:::o;3571:20::-;;;;;;;;;;;;;:::o;847:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8541:259::-;8619:4;5102:6;;;;;;;;;;;5101:7;5093:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8679:6;:18;8686:10;8679:18;;;;;;;;;;;;;;;;8643:32;8668:6;8643:8;:20;8652:10;8643:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;:54;;8635:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8765:27;8780:3;8785:6;8765:14;:27::i;:::-;8758:34;;8541:259;;;;:::o;9715:321::-;3998:5;;;;;;;;;;;3984:19;;:10;:19;;;:48;;;;4028:4;4007:25;;:5;:17;4013:10;4007:17;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;3984:48;3976:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9819:12;;9809:6;:22;;:47;;;;;9854:1;9834:22;;:8;:22;;;;9809:47;9801:144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9975:6;9956;:16;9963:8;9956:16;;;;;;;;;;;;;;;:25;;;;10011:8;9997:31;;;10021:6;9997:31;;;;;;;;;;;;;;;;;;9715:321;;:::o;2213:44::-;;;;;;;;;;;;;;;;;:::o;2766:291::-;2847:12;2904:46;2938:11;2904:7;:19;2912:10;2904:19;;;;;;;;;;;;;;;:29;2924:8;2904:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;2872:7;:19;2880:10;2872:19;;;;;;;;;;;;;;;:29;2892:8;2872:29;;;;;;;;;;;;;;;:78;;;;2987:8;2966:61;;2975:10;2966:61;;;2997:7;:19;3005:10;2997:19;;;;;;;;;;;;;;;:29;3017:8;2997:29;;;;;;;;;;;;;;;;2966:61;;;;;;;;;;;;;;;;;;3045:4;3038:11;;2766:291;;;;:::o;7038:282::-;3863:5;;;;;;;;;;;3849:19;;:10;:19;;;3841:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7121:32;7146:6;7121:8;:20;7130:10;7121:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;7098:8;:20;7107:10;7098:20;;;;;;;;;;;;;;;:55;;;;7187:32;7212:6;7187:8;:20;7196:10;7187:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;7164:8;:20;7173:10;7164:20;;;;;;;;;;;;;;;:55;;;;7245:24;7262:6;7245:12;;:16;;:24;;;;:::i;:::-;7230:12;:39;;;;7293:10;7285:27;;;7305:6;7285:27;;;;;;;;;;;;;;;;;;7038:282;:::o;2610:144::-;2684:17;2721:7;:15;2729:6;2721:15;;;;;;;;;;;;;;;:25;2737:8;2721:25;;;;;;;;;;;;;;;;2714:32;;2610:144;;;;:::o;4114:315::-;3863:5;;;;;;;;;;;3849:19;;:10;:19;;;3841:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4215:1;4195:22;;:8;:22;;;;:43;;;;;4233:5;;;;;;;;;;;4221:17;;:8;:17;;;;4195:43;:70;;;;;4261:4;4242:23;;:5;:15;4248:8;4242:15;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;4195:70;4187:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4385:8;4357:37;;4378:5;;;;;;;;;;;4357:37;;;;;;;;;;;;4413:8;4405:5;;:16;;;;;;;;;;;;;;;;;;4114:315;:::o;6046:152::-;6104:7;6137:1;6132;:6;;6124:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6189:1;6185;:5;6178:12;;6046:152;;;;:::o;6210:179::-;6268:7;6288:9;6304:1;6300;:5;6288:17;;6329:1;6324;:6;;6316:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6380:1;6373:8;;6210:179;;;;;:::o;1415:434::-;1478:4;1518:1;1503:17;;:3;:17;;;;:32;;;;;1534:1;1524:6;:11;;1503:32;:65;;;;;1548:8;:20;1557:10;1548:20;;;;;;;;;;;;;;;;1538:6;:30;;1503:65;1495:147;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:32;1701:6;1676:8;:20;1685:10;1676:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;1653:8;:20;1662:10;1653:20;;;;;;;;;;;;;;;:55;;;;1735:25;1753:6;1735:8;:13;1744:3;1735:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;1719:8;:13;1728:3;1719:13;;;;;;;;;;;;;;;:41;;;;1797:3;1776:33;;1785:10;1776:33;;;1802:6;1776:33;;;;;;;;;;;;;;;;;;1837:4;1830:11;;1415:434;;;;:::o

Swarm Source

bzzr://f50fde39372dc9135dba8877c11c88fffa7dcf2f574a3eb9605904ea0242a0a9

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.