Latest 25 from a total of 8,326 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 21387998 | 2 days ago | IN | 0 ETH | 0.00182015 | ||||
Transfer | 21377871 | 3 days ago | IN | 0 ETH | 0.00067467 | ||||
Transfer | 21374933 | 4 days ago | IN | 0 ETH | 0.00107892 | ||||
Transfer | 21187999 | 30 days ago | IN | 0 ETH | 0.00093226 | ||||
Transfer | 21153644 | 34 days ago | IN | 0 ETH | 0.00057632 | ||||
Approve | 21102921 | 42 days ago | IN | 0 ETH | 0.00014769 | ||||
Approve | 21102793 | 42 days ago | IN | 0 ETH | 0.0002571 | ||||
Approve | 21047789 | 49 days ago | IN | 0 ETH | 0.00016226 | ||||
Transfer | 21047694 | 49 days ago | IN | 0 ETH | 0.00020869 | ||||
Transfer | 20866195 | 75 days ago | IN | 0 ETH | 0.00310638 | ||||
Approve | 20835966 | 79 days ago | IN | 0 ETH | 0.00158141 | ||||
Approve | 20800066 | 84 days ago | IN | 0 ETH | 0.00067472 | ||||
Transfer | 20786783 | 86 days ago | IN | 0 ETH | 0.00089316 | ||||
Approve | 20784936 | 86 days ago | IN | 0 ETH | 0.00131883 | ||||
Approve | 20671058 | 102 days ago | IN | 0 ETH | 0.00018668 | ||||
Transfer | 20631044 | 107 days ago | IN | 0 ETH | 0.00003968 | ||||
Approve | 20606817 | 111 days ago | IN | 0 ETH | 0.00008317 | ||||
Transfer | 20606813 | 111 days ago | IN | 0 ETH | 0.00010432 | ||||
Approve | 20604819 | 111 days ago | IN | 0 ETH | 0.00008597 | ||||
Transfer | 20604790 | 111 days ago | IN | 0 ETH | 0.00004875 | ||||
Approve | 20604097 | 111 days ago | IN | 0 ETH | 0.00003807 | ||||
Transfer | 20471042 | 130 days ago | IN | 0 ETH | 0.00023324 | ||||
Transfer | 20461588 | 131 days ago | IN | 0 ETH | 0.00125428 | ||||
Transfer | 20298007 | 154 days ago | IN | 0 ETH | 0.00010282 | ||||
Approve | 19929941 | 205 days ago | IN | 0 ETH | 0.00029666 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
S4FE
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-09-27 */ pragma solidity ^0.4.24; // File: zos-lib/contracts/migrations/Migratable.sol /** * @title Migratable * Helper contract to support intialization and migration schemes between * different implementations of a contract in the context of upgradeability. * To use it, replace the constructor with a function that has the * `isInitializer` modifier starting with `"0"` as `migrationId`. * When you want to apply some migration code during an upgrade, increase * the `migrationId`. Or, if the migration code must be applied only after * another migration has been already applied, use the `isMigration` modifier. * This helper supports multiple inheritance. * WARNING: It is the developer's responsibility to ensure that migrations are * applied in a correct order, or that they are run at all. * See `Initializable` for a simpler version. */ contract Migratable { /** * @dev Emitted when the contract applies a migration. * @param contractName Name of the Contract. * @param migrationId Identifier of the migration applied. */ event Migrated(string contractName, string migrationId); /** * @dev Mapping of the already applied migrations. * (contractName => (migrationId => bool)) */ mapping (string => mapping (string => bool)) internal migrated; /** * @dev Internal migration id used to specify that a contract has already been initialized. */ string constant private INITIALIZED_ID = "initialized"; /** * @dev Modifier to use in the initialization function of a contract. * @param contractName Name of the contract. * @param migrationId Identifier of the migration. */ modifier isInitializer(string contractName, string migrationId) { validateMigrationIsPending(contractName, INITIALIZED_ID); validateMigrationIsPending(contractName, migrationId); _; emit Migrated(contractName, migrationId); migrated[contractName][migrationId] = true; migrated[contractName][INITIALIZED_ID] = true; } /** * @dev Modifier to use in the migration of a contract. * @param contractName Name of the contract. * @param requiredMigrationId Identifier of the previous migration, required * to apply new one. * @param newMigrationId Identifier of the new migration to be applied. */ modifier isMigration(string contractName, string requiredMigrationId, string newMigrationId) { require(isMigrated(contractName, requiredMigrationId), "Prerequisite migration ID has not been run yet"); validateMigrationIsPending(contractName, newMigrationId); _; emit Migrated(contractName, newMigrationId); migrated[contractName][newMigrationId] = true; } /** * @dev Returns true if the contract migration was applied. * @param contractName Name of the contract. * @param migrationId Identifier of the migration. * @return true if the contract migration was applied, false otherwise. */ function isMigrated(string contractName, string migrationId) public view returns(bool) { return migrated[contractName][migrationId]; } /** * @dev Initializer that marks the contract as initialized. * It is important to run this if you had deployed a previous version of a Migratable contract. * For more information see https://github.com/zeppelinos/zos-lib/issues/158. */ function initialize() isInitializer("Migratable", "1.2.1") public { } /** * @dev Reverts if the requested migration was already executed. * @param contractName Name of the contract. * @param migrationId Identifier of the migration. */ function validateMigrationIsPending(string contractName, string migrationId) private { require(!isMigrated(contractName, migrationId), "Requested target migration ID has already been run"); } } // File: openzeppelin-zos/contracts/token/ERC20/ERC20Basic.sol /** * @title ERC20Basic * @dev Simpler version of ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/179 */ 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); } // File: openzeppelin-zos/contracts/token/ERC20/ERC20.sol /** * @title ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ 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); } // File: openzeppelin-zos/contracts/token/ERC20/DetailedERC20.sol contract DetailedERC20 is Migratable, ERC20 { string public name; string public symbol; uint8 public decimals; function initialize(string _name, string _symbol, uint8 _decimals) public isInitializer("DetailedERC20", "1.9.0") { name = _name; symbol = _symbol; decimals = _decimals; } } // File: openzeppelin-zos/contracts/math/SafeMath.sol /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256 c) { if (a == 0) { return 0; } c = a * b; assert(c / a == b); return c; } /** * @dev Integer division of two numbers, truncating the quotient. */ 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 a / b; } /** * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256 c) { c = a + b; assert(c >= a); return c; } } // File: openzeppelin-zos/contracts/token/ERC20/BasicToken.sol /** * @title Basic token * @dev Basic version of StandardToken, with no allowances. */ contract BasicToken is ERC20Basic { using SafeMath for uint256; mapping(address => uint256) balances; uint256 totalSupply_; /** * @dev total number of tokens in existence */ function totalSupply() public view returns (uint256) { return totalSupply_; } /** * @dev transfer token for a specified address * @param _to The address to transfer to. * @param _value The amount to be transferred. */ function transfer(address _to, uint256 _value) public returns (bool) { require(_to != address(0)); require(_value <= balances[msg.sender]); balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); emit Transfer(msg.sender, _to, _value); return true; } /** * @dev Gets the balance of the specified address. * @param _owner The address to query the the balance of. * @return An uint256 representing the amount owned by the passed address. */ function balanceOf(address _owner) public view returns (uint256) { return balances[_owner]; } } // File: openzeppelin-zos/contracts/token/ERC20/StandardToken.sol /** * @title Standard ERC20 token * * @dev Implementation of the basic standard token. * @dev https://github.com/ethereum/EIPs/issues/20 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol */ contract StandardToken is ERC20, BasicToken { mapping (address => mapping (address => uint256)) internal allowed; /** * @dev Transfer tokens from one address to another * @param _from address The address which you want to send tokens from * @param _to address The address which you want to transfer to * @param _value uint256 the amount of tokens to be transferred */ function transferFrom(address _from, address _to, uint256 _value) public returns (bool) { require(_to != address(0)); require(_value <= balances[_from]); require(_value <= allowed[_from][msg.sender]); 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; } /** * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. * * Beware that changing an allowance with this method brings the risk that someone may use both the old * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * @param _spender The address which will spend the funds. * @param _value The amount of tokens to be spent. */ function approve(address _spender, uint256 _value) public returns (bool) { allowed[msg.sender][_spender] = _value; emit Approval(msg.sender, _spender, _value); return true; } /** * @dev Function to check the amount of tokens that an owner allowed to a spender. * @param _owner address The address which owns the funds. * @param _spender address The address which will spend the funds. * @return A uint256 specifying the amount of tokens still available for the spender. */ function allowance(address _owner, address _spender) public view returns (uint256) { return allowed[_owner][_spender]; } /** * @dev Increase the amount of tokens that an owner allowed to a spender. * * approve should be called when allowed[_spender] == 0. To increment * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * @param _spender The address which will spend the funds. * @param _addedValue The amount of tokens to increase the allowance by. */ function increaseApproval(address _spender, uint _addedValue) public returns (bool) { allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue); emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } /** * @dev Decrease the amount of tokens that an owner allowed to a spender. * * approve should be called when allowed[_spender] == 0. To decrement * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * @param _spender The address which will spend the funds. * @param _subtractedValue The amount of tokens to decrease the allowance by. */ function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) { uint 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; } } // File: openzeppelin-zos/contracts/ownership/Ownable.sol /** * @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 is Migratable { address public owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ function initialize(address _sender) public isInitializer("Ownable", "1.9.0") { owner = _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) public onlyOwner { require(newOwner != address(0)); emit OwnershipTransferred(owner, newOwner); owner = newOwner; } } // File: openzeppelin-zos/contracts/token/ERC20/MintableToken.sol /** * @title Mintable token * @dev Simple ERC20 Token example, with mintable token creation * @dev Issue: * https://github.com/OpenZeppelin/openzeppelin-solidity/issues/120 * Based on code by TokenMarketNet: https://github.com/TokenMarketNet/ico/blob/master/contracts/MintableToken.sol */ contract MintableToken is Migratable, Ownable, StandardToken { event Mint(address indexed to, uint256 amount); event MintFinished(); bool public mintingFinished = false; modifier canMint() { require(!mintingFinished); _; } function initialize(address _sender) isInitializer("MintableToken", "1.9.0") public { Ownable.initialize(_sender); } /** * @dev Function to mint tokens * @param _to The address that will receive the minted tokens. * @param _amount The amount of tokens to mint. * @return A boolean that indicates if the operation was successful. */ function mint(address _to, uint256 _amount) onlyOwner canMint public returns (bool) { totalSupply_ = totalSupply_.add(_amount); balances[_to] = balances[_to].add(_amount); emit Mint(_to, _amount); emit Transfer(address(0), _to, _amount); return true; } /** * @dev Function to stop minting new tokens. * @return True if the operation was successful. */ function finishMinting() onlyOwner canMint public returns (bool) { mintingFinished = true; emit MintFinished(); return true; } } // File: openzeppelin-zos/contracts/token/ERC20/DetailedPremintedToken.sol contract DetailedPremintedToken is Migratable, DetailedERC20, StandardToken { function initialize( address _sender, string _name, string _symbol, uint8 _decimals, uint256 _initialBalance ) isInitializer("DetailedPremintedToken", "1.9.0") public { DetailedERC20.initialize(_name, _symbol, _decimals); _premint(_sender, _initialBalance); } function _premint(address _to, uint256 _value) internal { totalSupply_ += _value; balances[_to] += _value; emit Transfer(0, _to, _value); } } // File: contracts/S4FE.sol /** * @title S4FE * @dev ERC20 Token, where all tokens are pre-assigned to the creator. * Note they can later distribute these tokens as they wish using `transfer` */ contract S4FE is Ownable, DetailedPremintedToken { uint256 public INITIAL_SUPPLY; bool public transferLocked; mapping (address => bool) public transferWhitelist; /** * @dev Constructor that gives msg.sender all of existing tokens. */ constructor() public { } /** * @dev initialize method to start constructor logic * * @param _owner address of owner */ function initializeS4FE(address _owner) isInitializer('S4FE', '0') public { INITIAL_SUPPLY = 1000000000 * (10 ** uint256(18)); Ownable.initialize(_owner); DetailedPremintedToken.initialize(_owner, "S4FE", "S4F", 18, INITIAL_SUPPLY); } /** * @dev if ether is sent to this address, send it back. */ function () public { revert(); } /** * @dev transfer token for a specified address * @param _to The address to transfer to. * @param _value The amount to be transferred. */ function transfer(address _to, uint256 _value) public returns (bool) { require(msg.sender == owner || transferLocked == false || transferWhitelist[msg.sender] == true); bool result = super.transfer(_to , _value); return result; } /** * @dev transfer lock status * @param _transferLocked Boolean indicating if transfer is locked */ function setTransferLocked(bool _transferLocked) onlyOwner public returns (bool) { transferLocked = _transferLocked; return transferLocked; } /** * @dev transfer lock status * @param _address Address of account indicating if allowed * @param _transferLocked Boolean indicating if transfer is locked */ function setTransferWhitelist(address _address, bool _transferLocked) onlyOwner public returns (bool) { transferWhitelist[_address] = _transferLocked; return _transferLocked; } /** * @dev whitelist addresses * @param _addresses Array of address of account for whitelist */ function whitelist(address[] _addresses) onlyOwner public { for(uint i = 0; i < _addresses.length ; i ++) { transferWhitelist[_addresses[i]] = true; } } /** * @dev blacklist addresses * @param _addresses Array of address of account for whitelist */ function blacklist(address[] _addresses) onlyOwner public { for(uint i = 0; i < _addresses.length ; i ++) { transferWhitelist[_addresses[i]] = false; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[{"name":"_addresses","type":"address[]"}],"name":"blacklist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"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":"transferLocked","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_symbol","type":"string"},{"name":"_decimals","type":"uint8"}],"name":"initialize","outputs":[],"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":"_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":"INITIAL_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_transferLocked","type":"bool"}],"name":"setTransferLocked","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"transferWhitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"initialize","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":"_addresses","type":"address[]"}],"name":"whitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"contractName","type":"string"},{"name":"migrationId","type":"string"}],"name":"isMigrated","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_sender","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_sender","type":"address"},{"name":"_name","type":"string"},{"name":"_symbol","type":"string"},{"name":"_decimals","type":"uint8"},{"name":"_initialBalance","type":"uint256"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"},{"name":"_transferLocked","type":"bool"}],"name":"setTransferWhitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"initializeS4FE","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":false,"stateMutability":"nonpayable","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":"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":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"contractName","type":"string"},{"indexed":false,"name":"migrationId","type":"string"}],"name":"Migrated","type":"event"}]
Contract Creation Code
608060405234801561001057600080fd5b5061368a806100206000396000f300608060405260043610610154576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063041f173f1461016657806306fdde03146101cc578063095ea7b31461025c57806312686aae146102c15780631624f6c6146102f057806318160ddd146103ac57806323b872dd146103d75780632ff2e9dc1461045c578063313ce5671461048757806335e60bd4146104b857806366188463146104ff57806370a08231146105645780637ffbe241146105bb5780638129fc1c146106165780638da5cb5b1461062d57806395d89b4114610684578063a9059cbb14610714578063bd8aa78014610779578063c0bac1a8146107df578063c4d66de8146108a6578063d72bdc53146108e9578063d73dd623146109cf578063dd62ed3e14610a34578063e4a34dce14610aab578063f2fde38b14610b12578063f7f5886e14610b55575b34801561016057600080fd5b50600080fd5b34801561017257600080fd5b506101ca60048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610b98565b005b3480156101d857600080fd5b506101e1610c84565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610221578082015181840152602081019050610206565b50505050905090810190601f16801561024e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561026857600080fd5b506102a7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d22565b604051808215151515815260200191505060405180910390f35b3480156102cd57600080fd5b506102d6610e14565b604051808215151515815260200191505060405180910390f35b3480156102fc57600080fd5b506103aa600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610e27565b005b3480156103b857600080fd5b506103c1611244565b6040518082815260200191505060405180910390f35b3480156103e357600080fd5b50610442600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061124e565b604051808215151515815260200191505060405180910390f35b34801561046857600080fd5b5061047161160d565b6040518082815260200191505060405180910390f35b34801561049357600080fd5b5061049c611613565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104c457600080fd5b506104e5600480360381019080803515159060200190929190505050611626565b604051808215151515815260200191505060405180910390f35b34801561050b57600080fd5b5061054a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116b5565b604051808215151515815260200191505060405180910390f35b34801561057057600080fd5b506105a5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611946565b6040518082815260200191505060405180910390f35b3480156105c757600080fd5b506105fc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061198f565b604051808215151515815260200191505060405180910390f35b34801561062257600080fd5b5061062b6119af565b005b34801561063957600080fd5b50610642611d80565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561069057600080fd5b50610699611da6565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106d95780820151818401526020810190506106be565b50505050905090810190601f1680156107065780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561072057600080fd5b5061075f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e44565b604051808215151515815260200191505060405180910390f35b34801561078557600080fd5b506107dd60048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050611f32565b005b3480156107eb57600080fd5b5061088c600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061201e565b604051808215151515815260200191505060405180910390f35b3480156108b257600080fd5b506108e7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612109565b005b3480156108f557600080fd5b506109cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291908035906020019092919050505061251c565b005b3480156109db57600080fd5b50610a1a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612907565b604051808215151515815260200191505060405180910390f35b348015610a4057600080fd5b50610a95600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b03565b6040518082815260200191505060405180910390f35b348015610ab757600080fd5b50610af8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612b8a565b604051808215151515815260200191505060405180910390f35b348015610b1e57600080fd5b50610b53600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c48565b005b348015610b6157600080fd5b50610b96600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612da0565b005b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bf657600080fd5b600090505b8151811015610c80576000600a60008484815181101515610c1857fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050610bfb565b5050565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d1a5780601f10610cef57610100808354040283529160200191610d1a565b820191906000526020600020905b815481529060010190602001808311610cfd57829003601f168201915b505050505081565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600960009054906101000a900460ff1681565b6040805190810160405280600d81526020017f44657461696c65644552433230000000000000000000000000000000000000008152506040805190810160405280600581526020017f312e392e30000000000000000000000000000000000000000000000000000000815250610ed2826040805190810160405280600b81526020017f696e697469616c697a6564000000000000000000000000000000000000000000815250613206565b610edc8282613206565b8460029080519060200190610ef29291906135b9565b508360039080519060200190610f099291906135b9565b5082600460006101000a81548160ff021916908360ff1602179055507fdd117a11c22118c9dee4b5a67ce578bc44529dce21ee0ccc439588fbb9fb4ea38282604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015610f8c578082015181840152602081019050610f71565b50505050905090810190601f168015610fb95780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015610ff2578082015181840152602081019050610fd7565b50505050905090810190601f16801561101f5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a160016000836040518082805190602001908083835b6020831015156110685780518252602082019150602081019050602083039250611043565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020826040518082805190602001908083835b6020831015156110d157805182526020820191506020810190506020830392506110ac565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690831515021790555060016000836040518082805190602001908083835b6020831015156111555780518252602082019150602081019050602083039250611130565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206040805190810160405280600b81526020017f696e697469616c697a65640000000000000000000000000000000000000000008152506040518082805190602001908083835b6020831015156111f357805182526020820191506020810190506020830392506111ce565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff0219169083151502179055505050505050565b6000600654905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561128b57600080fd5b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156112d957600080fd5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561136457600080fd5b6113b682600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132af90919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061144b82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132c890919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061151d82600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132af90919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60085481565b600460009054906101000a900460ff1681565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561168457600080fd5b81600960006101000a81548160ff021916908315150217905550600960009054906101000a900460ff169050919050565b600080600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808311156117c6576000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061185a565b6117d983826132af90919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a6020528060005260406000206000915054906101000a900460ff1681565b6040805190810160405280600a81526020017f4d696772617461626c65000000000000000000000000000000000000000000008152506040805190810160405280600581526020017f312e322e31000000000000000000000000000000000000000000000000000000815250611a5a826040805190810160405280600b81526020017f696e697469616c697a6564000000000000000000000000000000000000000000815250613206565b611a648282613206565b7fdd117a11c22118c9dee4b5a67ce578bc44529dce21ee0ccc439588fbb9fb4ea38282604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015611acb578082015181840152602081019050611ab0565b50505050905090810190601f168015611af85780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015611b31578082015181840152602081019050611b16565b50505050905090810190601f168015611b5e5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a160016000836040518082805190602001908083835b602083101515611ba75780518252602082019150602081019050602083039250611b82565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020826040518082805190602001908083835b602083101515611c105780518252602082019150602081019050602083039250611beb565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690831515021790555060016000836040518082805190602001908083835b602083101515611c945780518252602082019150602081019050602083039250611c6f565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206040805190810160405280600b81526020017f696e697469616c697a65640000000000000000000000000000000000000000008152506040518082805190602001908083835b602083101515611d325780518252602082019150602081019050602083039250611d0d565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff0219169083151502179055505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611e3c5780601f10611e1157610100808354040283529160200191611e3c565b820191906000526020600020905b815481529060010190602001808311611e1f57829003601f168201915b505050505081565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611eb6575060001515600960009054906101000a900460ff161515145b80611f11575060011515600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b1515611f1c57600080fd5b611f2684846132e4565b90508091505092915050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f9057600080fd5b600090505b815181101561201a576001600a60008484815181101515611fb257fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050611f95565b5050565b600080836040518082805190602001908083835b6020831015156120575780518252602082019150602081019050602083039250612032565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020826040518082805190602001908083835b6020831015156120c0578051825260208201915060208101905060208303925061209b565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900460ff16905092915050565b6040805190810160405280600781526020017f4f776e61626c65000000000000000000000000000000000000000000000000008152506040805190810160405280600581526020017f312e392e300000000000000000000000000000000000000000000000000000008152506121b4826040805190810160405280600b81526020017f696e697469616c697a6564000000000000000000000000000000000000000000815250613206565b6121be8282613206565b82600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fdd117a11c22118c9dee4b5a67ce578bc44529dce21ee0ccc439588fbb9fb4ea38282604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561226657808201518184015260208101905061224b565b50505050905090810190601f1680156122935780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156122cc5780820151818401526020810190506122b1565b50505050905090810190601f1680156122f95780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a160016000836040518082805190602001908083835b602083101515612342578051825260208201915060208101905060208303925061231d565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020826040518082805190602001908083835b6020831015156123ab5780518252602082019150602081019050602083039250612386565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690831515021790555060016000836040518082805190602001908083835b60208310151561242f578051825260208201915060208101905060208303925061240a565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206040805190810160405280600b81526020017f696e697469616c697a65640000000000000000000000000000000000000000008152506040518082805190602001908083835b6020831015156124cd57805182526020820191506020810190506020830392506124a8565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff021916908315150217905550505050565b6040805190810160405280601681526020017f44657461696c65645072656d696e746564546f6b656e000000000000000000008152506040805190810160405280600581526020017f312e392e300000000000000000000000000000000000000000000000000000008152506125c7826040805190810160405280600b81526020017f696e697469616c697a6564000000000000000000000000000000000000000000815250613206565b6125d18282613206565b6125dc868686610e27565b6125e68784613508565b7fdd117a11c22118c9dee4b5a67ce578bc44529dce21ee0ccc439588fbb9fb4ea38282604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561264d578082015181840152602081019050612632565b50505050905090810190601f16801561267a5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156126b3578082015181840152602081019050612698565b50505050905090810190601f1680156126e05780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a160016000836040518082805190602001908083835b6020831015156127295780518252602082019150602081019050602083039250612704565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020826040518082805190602001908083835b602083101515612792578051825260208201915060208101905060208303925061276d565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690831515021790555060016000836040518082805190602001908083835b60208310151561281657805182526020820191506020810190506020830392506127f1565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206040805190810160405280600b81526020017f696e697469616c697a65640000000000000000000000000000000000000000008152506040518082805190602001908083835b6020831015156128b4578051825260208201915060208101905060208303925061288f565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690831515021790555050505050505050565b600061299882600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132c890919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612be857600080fd5b81600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612ca457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612ce057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040805190810160405280600481526020017f53344645000000000000000000000000000000000000000000000000000000008152506040805190810160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250612e4b826040805190810160405280600b81526020017f696e697469616c697a6564000000000000000000000000000000000000000000815250613206565b612e558282613206565b6012600a0a633b9aca0002600881905550612e6f83612109565b612ee9836040805190810160405280600481526020017f53344645000000000000000000000000000000000000000000000000000000008152506040805190810160405280600381526020017f5334460000000000000000000000000000000000000000000000000000000000815250601260085461251c565b7fdd117a11c22118c9dee4b5a67ce578bc44529dce21ee0ccc439588fbb9fb4ea38282604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015612f50578082015181840152602081019050612f35565b50505050905090810190601f168015612f7d5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015612fb6578082015181840152602081019050612f9b565b50505050905090810190601f168015612fe35780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a160016000836040518082805190602001908083835b60208310151561302c5780518252602082019150602081019050602083039250613007565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020826040518082805190602001908083835b6020831015156130955780518252602082019150602081019050602083039250613070565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690831515021790555060016000836040518082805190602001908083835b60208310151561311957805182526020820191506020810190506020830392506130f4565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206040805190810160405280600b81526020017f696e697469616c697a65640000000000000000000000000000000000000000008152506040518082805190602001908083835b6020831015156131b75780518252602082019150602081019050602083039250613192565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff021916908315150217905550505050565b613210828261201e565b1515156132ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f52657175657374656420746172676574206d6967726174696f6e20494420686181526020017f7320616c7265616479206265656e2072756e000000000000000000000000000081525060400191505060405180910390fd5b5050565b60008282111515156132bd57fe5b818303905092915050565b600081830190508281101515156132db57fe5b80905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561332157600080fd5b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561336f57600080fd5b6133c182600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132af90919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061345682600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132c890919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b8060066000828254019250508190555080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106135fa57805160ff1916838001178555613628565b82800160010185558215613628579182015b8281111561362757825182559160200191906001019061360c565b5b5090506136359190613639565b5090565b61365b91905b8082111561365757600081600090555060010161363f565b5090565b905600a165627a7a723058203737cfca0d8046d1c80e1080222ad6134c5140ee9eac7ade746e435ffa1782230029
Deployed Bytecode
0x608060405260043610610154576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063041f173f1461016657806306fdde03146101cc578063095ea7b31461025c57806312686aae146102c15780631624f6c6146102f057806318160ddd146103ac57806323b872dd146103d75780632ff2e9dc1461045c578063313ce5671461048757806335e60bd4146104b857806366188463146104ff57806370a08231146105645780637ffbe241146105bb5780638129fc1c146106165780638da5cb5b1461062d57806395d89b4114610684578063a9059cbb14610714578063bd8aa78014610779578063c0bac1a8146107df578063c4d66de8146108a6578063d72bdc53146108e9578063d73dd623146109cf578063dd62ed3e14610a34578063e4a34dce14610aab578063f2fde38b14610b12578063f7f5886e14610b55575b34801561016057600080fd5b50600080fd5b34801561017257600080fd5b506101ca60048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610b98565b005b3480156101d857600080fd5b506101e1610c84565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610221578082015181840152602081019050610206565b50505050905090810190601f16801561024e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561026857600080fd5b506102a7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d22565b604051808215151515815260200191505060405180910390f35b3480156102cd57600080fd5b506102d6610e14565b604051808215151515815260200191505060405180910390f35b3480156102fc57600080fd5b506103aa600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610e27565b005b3480156103b857600080fd5b506103c1611244565b6040518082815260200191505060405180910390f35b3480156103e357600080fd5b50610442600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061124e565b604051808215151515815260200191505060405180910390f35b34801561046857600080fd5b5061047161160d565b6040518082815260200191505060405180910390f35b34801561049357600080fd5b5061049c611613565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104c457600080fd5b506104e5600480360381019080803515159060200190929190505050611626565b604051808215151515815260200191505060405180910390f35b34801561050b57600080fd5b5061054a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116b5565b604051808215151515815260200191505060405180910390f35b34801561057057600080fd5b506105a5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611946565b6040518082815260200191505060405180910390f35b3480156105c757600080fd5b506105fc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061198f565b604051808215151515815260200191505060405180910390f35b34801561062257600080fd5b5061062b6119af565b005b34801561063957600080fd5b50610642611d80565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561069057600080fd5b50610699611da6565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106d95780820151818401526020810190506106be565b50505050905090810190601f1680156107065780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561072057600080fd5b5061075f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e44565b604051808215151515815260200191505060405180910390f35b34801561078557600080fd5b506107dd60048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050611f32565b005b3480156107eb57600080fd5b5061088c600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061201e565b604051808215151515815260200191505060405180910390f35b3480156108b257600080fd5b506108e7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612109565b005b3480156108f557600080fd5b506109cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291908035906020019092919050505061251c565b005b3480156109db57600080fd5b50610a1a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612907565b604051808215151515815260200191505060405180910390f35b348015610a4057600080fd5b50610a95600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b03565b6040518082815260200191505060405180910390f35b348015610ab757600080fd5b50610af8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612b8a565b604051808215151515815260200191505060405180910390f35b348015610b1e57600080fd5b50610b53600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c48565b005b348015610b6157600080fd5b50610b96600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612da0565b005b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bf657600080fd5b600090505b8151811015610c80576000600a60008484815181101515610c1857fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050610bfb565b5050565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d1a5780601f10610cef57610100808354040283529160200191610d1a565b820191906000526020600020905b815481529060010190602001808311610cfd57829003601f168201915b505050505081565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600960009054906101000a900460ff1681565b6040805190810160405280600d81526020017f44657461696c65644552433230000000000000000000000000000000000000008152506040805190810160405280600581526020017f312e392e30000000000000000000000000000000000000000000000000000000815250610ed2826040805190810160405280600b81526020017f696e697469616c697a6564000000000000000000000000000000000000000000815250613206565b610edc8282613206565b8460029080519060200190610ef29291906135b9565b508360039080519060200190610f099291906135b9565b5082600460006101000a81548160ff021916908360ff1602179055507fdd117a11c22118c9dee4b5a67ce578bc44529dce21ee0ccc439588fbb9fb4ea38282604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015610f8c578082015181840152602081019050610f71565b50505050905090810190601f168015610fb95780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015610ff2578082015181840152602081019050610fd7565b50505050905090810190601f16801561101f5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a160016000836040518082805190602001908083835b6020831015156110685780518252602082019150602081019050602083039250611043565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020826040518082805190602001908083835b6020831015156110d157805182526020820191506020810190506020830392506110ac565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690831515021790555060016000836040518082805190602001908083835b6020831015156111555780518252602082019150602081019050602083039250611130565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206040805190810160405280600b81526020017f696e697469616c697a65640000000000000000000000000000000000000000008152506040518082805190602001908083835b6020831015156111f357805182526020820191506020810190506020830392506111ce565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff0219169083151502179055505050505050565b6000600654905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561128b57600080fd5b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156112d957600080fd5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561136457600080fd5b6113b682600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132af90919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061144b82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132c890919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061151d82600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132af90919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60085481565b600460009054906101000a900460ff1681565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561168457600080fd5b81600960006101000a81548160ff021916908315150217905550600960009054906101000a900460ff169050919050565b600080600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808311156117c6576000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061185a565b6117d983826132af90919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a6020528060005260406000206000915054906101000a900460ff1681565b6040805190810160405280600a81526020017f4d696772617461626c65000000000000000000000000000000000000000000008152506040805190810160405280600581526020017f312e322e31000000000000000000000000000000000000000000000000000000815250611a5a826040805190810160405280600b81526020017f696e697469616c697a6564000000000000000000000000000000000000000000815250613206565b611a648282613206565b7fdd117a11c22118c9dee4b5a67ce578bc44529dce21ee0ccc439588fbb9fb4ea38282604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015611acb578082015181840152602081019050611ab0565b50505050905090810190601f168015611af85780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015611b31578082015181840152602081019050611b16565b50505050905090810190601f168015611b5e5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a160016000836040518082805190602001908083835b602083101515611ba75780518252602082019150602081019050602083039250611b82565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020826040518082805190602001908083835b602083101515611c105780518252602082019150602081019050602083039250611beb565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690831515021790555060016000836040518082805190602001908083835b602083101515611c945780518252602082019150602081019050602083039250611c6f565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206040805190810160405280600b81526020017f696e697469616c697a65640000000000000000000000000000000000000000008152506040518082805190602001908083835b602083101515611d325780518252602082019150602081019050602083039250611d0d565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff0219169083151502179055505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611e3c5780601f10611e1157610100808354040283529160200191611e3c565b820191906000526020600020905b815481529060010190602001808311611e1f57829003601f168201915b505050505081565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611eb6575060001515600960009054906101000a900460ff161515145b80611f11575060011515600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b1515611f1c57600080fd5b611f2684846132e4565b90508091505092915050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f9057600080fd5b600090505b815181101561201a576001600a60008484815181101515611fb257fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050611f95565b5050565b600080836040518082805190602001908083835b6020831015156120575780518252602082019150602081019050602083039250612032565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020826040518082805190602001908083835b6020831015156120c0578051825260208201915060208101905060208303925061209b565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900460ff16905092915050565b6040805190810160405280600781526020017f4f776e61626c65000000000000000000000000000000000000000000000000008152506040805190810160405280600581526020017f312e392e300000000000000000000000000000000000000000000000000000008152506121b4826040805190810160405280600b81526020017f696e697469616c697a6564000000000000000000000000000000000000000000815250613206565b6121be8282613206565b82600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fdd117a11c22118c9dee4b5a67ce578bc44529dce21ee0ccc439588fbb9fb4ea38282604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561226657808201518184015260208101905061224b565b50505050905090810190601f1680156122935780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156122cc5780820151818401526020810190506122b1565b50505050905090810190601f1680156122f95780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a160016000836040518082805190602001908083835b602083101515612342578051825260208201915060208101905060208303925061231d565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020826040518082805190602001908083835b6020831015156123ab5780518252602082019150602081019050602083039250612386565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690831515021790555060016000836040518082805190602001908083835b60208310151561242f578051825260208201915060208101905060208303925061240a565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206040805190810160405280600b81526020017f696e697469616c697a65640000000000000000000000000000000000000000008152506040518082805190602001908083835b6020831015156124cd57805182526020820191506020810190506020830392506124a8565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff021916908315150217905550505050565b6040805190810160405280601681526020017f44657461696c65645072656d696e746564546f6b656e000000000000000000008152506040805190810160405280600581526020017f312e392e300000000000000000000000000000000000000000000000000000008152506125c7826040805190810160405280600b81526020017f696e697469616c697a6564000000000000000000000000000000000000000000815250613206565b6125d18282613206565b6125dc868686610e27565b6125e68784613508565b7fdd117a11c22118c9dee4b5a67ce578bc44529dce21ee0ccc439588fbb9fb4ea38282604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561264d578082015181840152602081019050612632565b50505050905090810190601f16801561267a5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156126b3578082015181840152602081019050612698565b50505050905090810190601f1680156126e05780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a160016000836040518082805190602001908083835b6020831015156127295780518252602082019150602081019050602083039250612704565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020826040518082805190602001908083835b602083101515612792578051825260208201915060208101905060208303925061276d565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690831515021790555060016000836040518082805190602001908083835b60208310151561281657805182526020820191506020810190506020830392506127f1565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206040805190810160405280600b81526020017f696e697469616c697a65640000000000000000000000000000000000000000008152506040518082805190602001908083835b6020831015156128b4578051825260208201915060208101905060208303925061288f565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690831515021790555050505050505050565b600061299882600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132c890919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612be857600080fd5b81600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612ca457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612ce057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040805190810160405280600481526020017f53344645000000000000000000000000000000000000000000000000000000008152506040805190810160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250612e4b826040805190810160405280600b81526020017f696e697469616c697a6564000000000000000000000000000000000000000000815250613206565b612e558282613206565b6012600a0a633b9aca0002600881905550612e6f83612109565b612ee9836040805190810160405280600481526020017f53344645000000000000000000000000000000000000000000000000000000008152506040805190810160405280600381526020017f5334460000000000000000000000000000000000000000000000000000000000815250601260085461251c565b7fdd117a11c22118c9dee4b5a67ce578bc44529dce21ee0ccc439588fbb9fb4ea38282604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015612f50578082015181840152602081019050612f35565b50505050905090810190601f168015612f7d5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015612fb6578082015181840152602081019050612f9b565b50505050905090810190601f168015612fe35780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a160016000836040518082805190602001908083835b60208310151561302c5780518252602082019150602081019050602083039250613007565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020826040518082805190602001908083835b6020831015156130955780518252602082019150602081019050602083039250613070565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690831515021790555060016000836040518082805190602001908083835b60208310151561311957805182526020820191506020810190506020830392506130f4565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206040805190810160405280600b81526020017f696e697469616c697a65640000000000000000000000000000000000000000008152506040518082805190602001908083835b6020831015156131b75780518252602082019150602081019050602083039250613192565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff021916908315150217905550505050565b613210828261201e565b1515156132ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f52657175657374656420746172676574206d6967726174696f6e20494420686181526020017f7320616c7265616479206265656e2072756e000000000000000000000000000081525060400191505060405180910390fd5b5050565b60008282111515156132bd57fe5b818303905092915050565b600081830190508281101515156132db57fe5b80905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561332157600080fd5b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561336f57600080fd5b6133c182600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132af90919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061345682600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132c890919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b8060066000828254019250508190555080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106135fa57805160ff1916838001178555613628565b82800160010185558215613628579182015b8281111561362757825182559160200191906001019061360c565b5b5090506136359190613639565b5090565b61365b91905b8082111561365757600081600090555060010161363f565b5090565b905600a165627a7a723058203737cfca0d8046d1c80e1080222ad6134c5140ee9eac7ade746e435ffa1782230029
Swarm Source
bzzr://3737cfca0d8046d1c80e1080222ad6134c5140ee9eac7ade746e435ffa178223
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.