ERC-20
Fintech
Overview
Max Total Supply
1,999,999,999.9896424 ECKN
Holders
75,661 (0.00%)
Market
Price
$0.00 @ 0.000000 MATIC
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
EcobankaToken
Compiler Version
v0.7.0+commit.9e61f92b
Contract Source Code (Solidity)
/** *Submitted for verification at polygonscan.com on 2021-11-16 */ pragma solidity ^0.7.0; //Layer 2 version of https://etherscan.io/token/0xee7827d3d267648371a05c2468981d74b93c55b7 interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } contract Context { constructor () { } function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; return msg.data; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } library Address { function isContract(address account) internal view returns (bool) { bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } } contract ERC20 is Context, IERC20 { using SafeMath for uint256; using Address for address; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; uint8 private _decimals; constructor (string memory name, string memory symbol) { _name = name; _symbol = symbol; _decimals = 4; } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } 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"); _beforeTokenTransfer(sender, recipient, amount); _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance"); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } 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); } function _setupDecimals(uint8 decimals_) internal { _decimals = decimals_; } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { } } abstract contract ERC20Capped is ERC20 { using SafeMath for uint256; uint256 private _cap; constructor (uint256 cap) { require(cap > 0, "ERC20Capped: cap is 0"); _cap = cap; } function cap() public view returns (uint256) { return _cap; } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual override { super._beforeTokenTransfer(from, to, amount); if (from == address(0)) { // When minting tokens require(totalSupply().add(amount) <= _cap, "ERC20Capped: cap exceeded"); } } } abstract contract ERC20Burnable is Context, ERC20 { using SafeMath for uint256; function burn(uint256 amount) public virtual { _burn(_msgSender(), amount); } function burnFrom(address account, uint256 amount) public virtual { uint256 decreasedAllowance = allowance(account, _msgSender()).sub(amount, "ERC20: burn amount exceeds allowance"); _approve(account, _msgSender(), decreasedAllowance); _burn(account, amount); } } interface IERC165 { function supportsInterface(bytes4 interfaceId) external view returns (bool); } interface IERC1363 is IERC20, IERC165 { function transferAndCall(address to, uint256 value) external returns (bool); function transferAndCall(address to, uint256 value, bytes calldata data) external returns (bool); function transferFromAndCall(address from, address to, uint256 value) external returns (bool); function transferFromAndCall(address from, address to, uint256 value, bytes calldata data) external returns (bool); function approveAndCall(address spender, uint256 value) external returns (bool); function approveAndCall(address spender, uint256 value, bytes calldata data) external returns (bool); } // File: @openzeppelin/contracts/introspection/ERC165.sol contract ERC165 is IERC165 { bytes4 private constant _INTERFACE_ID_ERC165 = 0x01ffc9a7; mapping(bytes4 => bool) private _supportedInterfaces; constructor () { _registerInterface(_INTERFACE_ID_ERC165); } function supportsInterface(bytes4 interfaceId) public view override returns (bool) { return _supportedInterfaces[interfaceId]; } function _registerInterface(bytes4 interfaceId) internal virtual { require(interfaceId != 0xffffffff, "ERC165: invalid interface id"); _supportedInterfaces[interfaceId] = true; } } interface IERC1363Receiver { function onTransferReceived(address operator, address from, uint256 value, bytes calldata data) external returns (bytes4); // solhint-disable-line max-line-length } interface IERC1363Spender { function onApprovalReceived(address owner, uint256 value, bytes calldata data) external returns (bytes4); } library ERC165Checker { bytes4 private constant _INTERFACE_ID_INVALID = 0xffffffff; bytes4 private constant _INTERFACE_ID_ERC165 = 0x01ffc9a7; function supportsERC165(address account) internal view returns (bool) { return _supportsERC165Interface(account, _INTERFACE_ID_ERC165) && !_supportsERC165Interface(account, _INTERFACE_ID_INVALID); } function supportsInterface(address account, bytes4 interfaceId) internal view returns (bool) { return supportsERC165(account) && _supportsERC165Interface(account, interfaceId); } function supportsAllInterfaces(address account, bytes4[] memory interfaceIds) internal view returns (bool) { if (!supportsERC165(account)) { return false; } for (uint256 i = 0; i < interfaceIds.length; i++) { if (!_supportsERC165Interface(account, interfaceIds[i])) { return false; } } return true; } function _supportsERC165Interface(address account, bytes4 interfaceId) private view returns (bool) { (bool success, bool result) = _callERC165SupportsInterface(account, interfaceId); return (success && result); } function _callERC165SupportsInterface(address account, bytes4 interfaceId) private view returns (bool, bool) { bytes memory encodedParams = abi.encodeWithSelector(_INTERFACE_ID_ERC165, interfaceId); (bool success, bytes memory result) = account.staticcall{ gas: 3000000 }(encodedParams); if (result.length < 32) return (false, false); return (success, abi.decode(result, (bool))); } } contract ERC1363 is ERC20, IERC1363, ERC165 { using Address for address; bytes4 internal constant _INTERFACE_ID_ERC1363_TRANSFER = 0x4bbee2df; bytes4 internal constant _INTERFACE_ID_ERC1363_APPROVE = 0xfb9ec8ce; bytes4 private constant _ERC1363_RECEIVED = 0x88a7ca5c; bytes4 private constant _ERC1363_APPROVED = 0x7b04a2d0; constructor ( string memory name, string memory symbol ) payable ERC20(name, symbol) { _registerInterface(_INTERFACE_ID_ERC1363_TRANSFER); _registerInterface(_INTERFACE_ID_ERC1363_APPROVE); } function transferAndCall(address to, uint256 value) public override returns (bool) { return transferAndCall(to, value, ""); } function transferAndCall(address to, uint256 value, bytes memory data) public override returns (bool) { transfer(to, value); require(_checkAndCallTransfer(_msgSender(), to, value, data), "ERC1363: _checkAndCallTransfer reverts"); return true; } function transferFromAndCall(address from, address to, uint256 value) public override returns (bool) { return transferFromAndCall(from, to, value, ""); } function transferFromAndCall(address from, address to, uint256 value, bytes memory data) public override returns (bool) { transferFrom(from, to, value); require(_checkAndCallTransfer(from, to, value, data), "ERC1363: _checkAndCallTransfer reverts"); return true; } function approveAndCall(address spender, uint256 value) public override returns (bool) { return approveAndCall(spender, value, ""); } function approveAndCall(address spender, uint256 value, bytes memory data) public override returns (bool) { approve(spender, value); require(_checkAndCallApprove(spender, value, data), "ERC1363: _checkAndCallApprove reverts"); return true; } function _checkAndCallTransfer(address from, address to, uint256 value, bytes memory data) internal returns (bool) { if (!to.isContract()) { return false; } bytes4 retval = IERC1363Receiver(to).onTransferReceived( _msgSender(), from, value, data ); return (retval == _ERC1363_RECEIVED); } function _checkAndCallApprove(address spender, uint256 value, bytes memory data) internal returns (bool) { if (!spender.isContract()) { return false; } bytes4 retval = IERC1363Spender(spender).onApprovalReceived( _msgSender(), value, data ); return (retval == _ERC1363_APPROVED); } } library EnumerableSet { struct Set { bytes32[] _values; mapping (bytes32 => uint256) _indexes; } function _add(Set storage set, bytes32 value) private returns (bool) { if (!_contains(set, value)) { set._values.push(value); set._indexes[value] = set._values.length; return true; } else { return false; } } function _remove(Set storage set, bytes32 value) private returns (bool) { uint256 valueIndex = set._indexes[value]; if (valueIndex != 0) { uint256 toDeleteIndex = valueIndex - 1; uint256 lastIndex = set._values.length - 1; bytes32 lastvalue = set._values[lastIndex]; set._values[toDeleteIndex] = lastvalue; set._indexes[lastvalue] = toDeleteIndex + 1; set._values.pop(); delete set._indexes[value]; return true; } else { return false; } } function _contains(Set storage set, bytes32 value) private view returns (bool) { return set._indexes[value] != 0; } function _length(Set storage set) private view returns (uint256) { return set._values.length; } function _at(Set storage set, uint256 index) private view returns (bytes32) { require(set._values.length > index, "EnumerableSet: index out of bounds"); return set._values[index]; } struct AddressSet { Set _inner; } function add(AddressSet storage set, address value) internal returns (bool) { return _add(set._inner, bytes32(uint256(value))); } function remove(AddressSet storage set, address value) internal returns (bool) { return _remove(set._inner, bytes32(uint256(value))); } function contains(AddressSet storage set, address value) internal view returns (bool) { return _contains(set._inner, bytes32(uint256(value))); } function length(AddressSet storage set) internal view returns (uint256) { return _length(set._inner); } function at(AddressSet storage set, uint256 index) internal view returns (address) { return address(uint256(_at(set._inner, index))); } struct UintSet { Set _inner; } function add(UintSet storage set, uint256 value) internal returns (bool) { return _add(set._inner, bytes32(value)); } function remove(UintSet storage set, uint256 value) internal returns (bool) { return _remove(set._inner, bytes32(value)); } function contains(UintSet storage set, uint256 value) internal view returns (bool) { return _contains(set._inner, bytes32(value)); } function length(UintSet storage set) internal view returns (uint256) { return _length(set._inner); } function at(UintSet storage set, uint256 index) internal view returns (uint256) { return uint256(_at(set._inner, index)); } } abstract contract AccessControl is Context { using EnumerableSet for EnumerableSet.AddressSet; using Address for address; struct RoleData { EnumerableSet.AddressSet members; bytes32 adminRole; } mapping (bytes32 => RoleData) private _roles; bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00; event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender); event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender); function hasRole(bytes32 role, address account) public view returns (bool) { return _roles[role].members.contains(account); } function getRoleMemberCount(bytes32 role) public view returns (uint256) { return _roles[role].members.length(); } function getRoleMember(bytes32 role, uint256 index) public view returns (address) { return _roles[role].members.at(index); } function getRoleAdmin(bytes32 role) public view returns (bytes32) { return _roles[role].adminRole; } function grantRole(bytes32 role, address account) public virtual { require(hasRole(_roles[role].adminRole, _msgSender()), "AccessControl: sender must be an admin to grant"); _grantRole(role, account); } function revokeRole(bytes32 role, address account) public virtual { require(hasRole(_roles[role].adminRole, _msgSender()), "AccessControl: sender must be an admin to revoke"); _revokeRole(role, account); } function renounceRole(bytes32 role, address account) public virtual { require(account == _msgSender(), "AccessControl: can only renounce roles for self"); _revokeRole(role, account); } function _setupRole(bytes32 role, address account) internal virtual { _grantRole(role, account); } function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual { _roles[role].adminRole = adminRole; } function _grantRole(bytes32 role, address account) private { if (_roles[role].members.add(account)) { emit RoleGranted(role, account, _msgSender()); } } function _revokeRole(bytes32 role, address account) private { if (_roles[role].members.remove(account)) { emit RoleRevoked(role, account, _msgSender()); } } } contract Roles is AccessControl { bytes32 public constant MINTER_ROLE = keccak256("MINTER"); bytes32 public constant OPERATOR_ROLE = keccak256("OPERATOR"); constructor () { _setupRole(DEFAULT_ADMIN_ROLE, _msgSender()); _setupRole(MINTER_ROLE, _msgSender()); _setupRole(OPERATOR_ROLE, _msgSender()); } modifier onlyMinter() { require(hasRole(MINTER_ROLE, _msgSender()), "Roles: caller does not have the MINTER role"); _; } modifier onlyOperator() { require(hasRole(OPERATOR_ROLE, _msgSender()), "Roles: caller does not have the OPERATOR role"); _; } } contract Ownable is Context { address payable private _owner; event OwnershipTransferred(address payable indexed previousOwner, address payable indexed newOwner); constructor () { address payable msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address payable) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address payable newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract TokenRecover is Ownable { function recoverERC20(address tokenAddress, uint256 tokenAmount) public onlyOwner { IERC20(tokenAddress).transfer(owner(), tokenAmount); } } // SPDX-License-Identifier: MIT contract EcobankaToken is ERC20Capped, ERC20Burnable, ERC1363, Roles, TokenRecover { using SafeMath for uint256; bool private _mintingFinished = false; bool private _transferEnabled = false; bool private _paused = false; uint256 private _rate = 215087879; event MintFinished(); event TransferEnabled(); event Paused(); event PauseFinished(); modifier canMint() { require(!_paused && !_mintingFinished, "EcobankaToken: minting not enabled"); _; } modifier canTransfer(address from) { require( !_paused && (_transferEnabled || hasRole(OPERATOR_ROLE, from)), "EcobankaToken: transfer is not enabled or from does not have the OPERATOR role" ); _; } constructor( string memory name, string memory symbol, uint8 decimals, uint256 cap, uint256 rate, uint256 initialSupply, bool transferEnabled, bool mintingFinished ) ERC20Capped(cap) ERC1363(name, symbol) { ( mintingFinished == false || cap == initialSupply, "EcobankaToken: if finish minting, cap must be equal to initialSupply" ); _rate = rate; _setupDecimals(decimals); if (initialSupply > 0) { _mint(owner(), initialSupply); } if (mintingFinished) { finishMinting(); } if (transferEnabled) { enableTransfer(); } } receive() external payable { createTokens(); } function crowdsaleRate() public view returns (uint256) { return _rate; } function paused() public view returns (bool) { return _paused; } function mintingFinished() public view returns (bool) { return _mintingFinished; } function transferEnabled() public view returns (bool) { return _transferEnabled; } function createTokens() payable public canMint { require(msg.value > 0, "Value should be greater than zero"); uint256 tokens = msg.value.mul(_rate).div(1000000000000000000); require(tokens > 0, "Tokens should be greater than zero"); _mint(msg.sender, tokens); owner().transfer(msg.value); } function changeCrowdsaleRate(uint256 _value) public onlyOwner { require(_value >= 1 , "Rate cant be zero"); _rate = _value; } function mint(address to, uint256 value) public canMint onlyMinter { _mint(to, value); } function transfer(address to, uint256 value) public virtual override(ERC20) canTransfer(_msgSender()) returns (bool) { return super.transfer(to, value); } function transferFrom(address from, address to, uint256 value) public virtual override(ERC20) canTransfer(from) returns (bool) { return super.transferFrom(from, to, value); } function finishCrowdsale() public onlyOwner { uint256 remainingTokens = cap().sub(totalSupply()); _mint(owner(), remainingTokens); _mintingFinished = true; emit MintFinished(); } function finishMinting() public onlyOwner { _mintingFinished = true; emit MintFinished(); } function pause() public onlyOwner { _paused = true; emit Paused(); } function resume() public onlyOwner { _paused = false; emit PauseFinished(); } function enableTransfer() public onlyOwner { _transferEnabled = true; emit TransferEnabled(); } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual override(ERC20, ERC20Capped) { super._beforeTokenTransfer(from, to, amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"uint256","name":"cap","type":"uint256"},{"internalType":"uint256","name":"rate","type":"uint256"},{"internalType":"uint256","name":"initialSupply","type":"uint256"},{"internalType":"bool","name":"transferEnabled","type":"bool"},{"internalType":"bool","name":"mintingFinished","type":"bool"}],"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":[],"name":"MintFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address payable","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address payable","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"PauseFinished","type":"event"},{"anonymous":false,"inputs":[],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[],"name":"TransferEnabled","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINTER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OPERATOR_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"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":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approveAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"approveAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"changeCrowdsaleRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"createTokens","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"crowdsaleRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finishCrowdsale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finishMinting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","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":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mintingFinished","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"recoverERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resume","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"transferAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"transferFromAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFromAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526009805462ffffff60a01b19169055630cd1fb07600a553480156200002857600080fd5b50604051620038663803806200386683398181016040526101008110156200004f57600080fd5b81019080805160405193929190846401000000008211156200007057600080fd5b9083019060208201858111156200008657600080fd5b8251640100000000811182820188101715620000a157600080fd5b82525081516020918201929091019080838360005b83811015620000d0578181015183820152602001620000b6565b50505050905090810190601f168015620000fe5780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200012257600080fd5b9083019060208201858111156200013857600080fd5b82516401000000008111828201881017156200015357600080fd5b82525081516020918201929091019080838360005b838110156200018257818101518382015260200162000168565b50505050905090810190601f168015620001b05780820380516001836020036101000a031916815260200191505b506040908152602082810151918301516060840151608085015160a086015160c0909601518a5195985092965090949093909289918991889184918491620001ff916003919085019062000a62565b5080516200021590600490602084019062000a62565b50506005805460ff1916600417905550806200029257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f45524332304361707065643a2063617020697320300000000000000000000000604482015290519081900360640190fd5b600655620002c07f01ffc9a70000000000000000000000000000000000000000000000000000000062000451565b620002eb7f4bbee2df0000000000000000000000000000000000000000000000000000000062000451565b620003167ffb9ec8ce0000000000000000000000000000000000000000000000000000000062000451565b506200032f905060006200032962000520565b62000524565b6200035e7ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc96200032962000520565b6200038d7f523a704056dcd17bcf83bed8b68c59416dac1119be77755efe3bde0a64e46e0c6200032962000520565b60006200039962000520565b600980546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350801580620003f457508285145b50600a849055620004058662000534565b82156200042157620004216200041a6200054a565b8462000559565b801562000432576200043262000682565b811562000443576200044362000747565b505050505050505062000afe565b7fffffffff000000000000000000000000000000000000000000000000000000008082161415620004e357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b7fffffffff00000000000000000000000000000000000000000000000000000000166000908152600760205260409020805460ff19166001179055565b3390565b6200053082826200080d565b5050565b6005805460ff191660ff92909216919091179055565b6009546001600160a01b031690565b6001600160a01b038216620005cf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b620005dd6000838362000888565b620005f981600254620008a560201b62001c6f1790919060201c565b6002556001600160a01b038216600090815260208181526040909120546200062c91839062001c6f620008a5821b17901c565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6200068c62000520565b6009546001600160a01b03908116911614620006f857604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201819052602482015260008051602062003846833981519152604482015290519081900360640190fd5b6009805460ff60a01b1916740100000000000000000000000000000000000000001790556040517fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0890600090a1565b6200075162000520565b6009546001600160a01b03908116911614620007bd57604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201819052602482015260008051602062003846833981519152604482015290519081900360640190fd5b6009805460ff60a81b191675010000000000000000000000000000000000000000001790556040517f75fce015c314a132947a3e42f6ab79ab8e05397dabf35b4d742dea228bbadc2d90600090a1565b60008281526008602090815260409091206200083491839062001cc962000923821b17901c565b1562000530576200084462000520565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b620008a08383836200093a60201b62001cde1760201c565b505050565b6000828201838110156200091a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b60006200091a836001600160a01b038416620009f5565b62000952838383620008a060201b6200149b1760201c565b6001600160a01b038316620008a05760065462000987826200097362000a44565b620008a560201b62001c6f1790919060201c565b1115620008a057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f45524332304361707065643a2063617020657863656564656400000000000000604482015290519081900360640190fd5b600062000a03838362000a4a565b62000a3b575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200091d565b5060006200091d565b60025490565b60009081526001919091016020526040902054151590565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062000aa557805160ff191683800117855562000ad5565b8280016001018555821562000ad5579182015b8281111562000ad557825182559160200191906001019062000ab8565b5062000ae392915062000ae7565b5090565b5b8082111562000ae3576000815560010162000ae8565b612d388062000b0e6000396000f3fe60806040526004361061028c5760003560e01c8063715018a61161015a578063b4427263116100c1578063d547741f1161007a578063d547741f14610b6b578063d8fbe99414610ba4578063dd62ed3e14610be7578063f1b50c1d14610c22578063f2fde38b14610c37578063f5b541a614610c6a5761029b565b8063b442726314610974578063b80cdcf61461097c578063c1d34b8914610991578063ca15c87314610a64578063cae9ca5114610a8e578063d539139314610b565761029b565b80639010d07c116101135780639010d07c1461086f57806391d148541461089f57806395d89b41146108d8578063a217fddf146108ed578063a457c2d714610902578063a9059cbb1461093b5761029b565b8063715018a61461078d57806379cc6790146107a25780637d64bcb4146107db5780638456cb59146107f05780638980f11f146108055780638da5cb5b1461083e5761029b565b80633177029f116101fe57806340c10f19116101b757806340c10f19146106a357806342966c68146106dc5780634cd412d5146107065780635c07ac941461071b5780635c975abb1461074557806370a082311461075a5761029b565b80633177029f1461050657806335200cda1461053f578063355274ea1461055457806336568abe1461056957806339509351146105a25780634000aea0146105db5761029b565b80631296ee62116102505780631296ee62146103d557806318160ddd1461040e57806323b872dd14610435578063248a9ca3146104785780632f2ff15d146104a2578063313ce567146104db5761029b565b806301ffc9a7146102a0578063046f7da2146102e857806305d2035b146102fd57806306fdde0314610312578063095ea7b31461039c5761029b565b3661029b57610299610c7f565b005b600080fd5b3480156102ac57600080fd5b506102d4600480360360208110156102c357600080fd5b50356001600160e01b031916610dd5565b604080519115158252519081900360200190f35b3480156102f457600080fd5b50610299610df4565b34801561030957600080fd5b506102d4610e84565b34801561031e57600080fd5b50610327610e94565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610361578181015183820152602001610349565b50505050905090810190601f16801561038e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103a857600080fd5b506102d4600480360360408110156103bf57600080fd5b506001600160a01b038135169060200135610f2a565b3480156103e157600080fd5b506102d4600480360360408110156103f857600080fd5b506001600160a01b038135169060200135610f48565b34801561041a57600080fd5b50610423610f6b565b60408051918252519081900360200190f35b34801561044157600080fd5b506102d46004803603606081101561045857600080fd5b506001600160a01b03813581169160208101359091169060400135610f71565b34801561048457600080fd5b506104236004803603602081101561049b57600080fd5b5035611017565b3480156104ae57600080fd5b50610299600480360360408110156104c557600080fd5b50803590602001356001600160a01b031661102c565b3480156104e757600080fd5b506104f0611094565b6040805160ff9092168252519081900360200190f35b34801561051257600080fd5b506102d46004803603604081101561052957600080fd5b506001600160a01b03813516906020013561109d565b34801561054b57600080fd5b506104236110b9565b34801561056057600080fd5b506104236110bf565b34801561057557600080fd5b506102996004803603604081101561058c57600080fd5b50803590602001356001600160a01b03166110c5565b3480156105ae57600080fd5b506102d4600480360360408110156105c557600080fd5b506001600160a01b038135169060200135611126565b3480156105e757600080fd5b506102d4600480360360608110156105fe57600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561062e57600080fd5b82018360208201111561064057600080fd5b8035906020019184600183028401116401000000008311171561066257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611179945050505050565b3480156106af57600080fd5b50610299600480360360408110156106c657600080fd5b506001600160a01b0381351690602001356111de565b3480156106e857600080fd5b50610299600480360360208110156106ff57600080fd5b50356112ae565b34801561071257600080fd5b506102d46112c2565b34801561072757600080fd5b506102996004803603602081101561073e57600080fd5b50356112d2565b34801561075157600080fd5b506102d4611379565b34801561076657600080fd5b506104236004803603602081101561077d57600080fd5b50356001600160a01b0316611389565b34801561079957600080fd5b506102996113a4565b3480156107ae57600080fd5b50610299600480360360408110156107c557600080fd5b506001600160a01b038135169060200135611446565b3480156107e757600080fd5b506102996114a0565b3480156107fc57600080fd5b50610299611536565b34801561081157600080fd5b506102996004803603604081101561082857600080fd5b506001600160a01b0381351690602001356115cc565b34801561084a57600080fd5b506108536116b2565b604080516001600160a01b039092168252519081900360200190f35b34801561087b57600080fd5b506108536004803603604081101561089257600080fd5b50803590602001356116c1565b3480156108ab57600080fd5b506102d4600480360360408110156108c257600080fd5b50803590602001356001600160a01b03166116d9565b3480156108e457600080fd5b506103276116f1565b3480156108f957600080fd5b50610423611752565b34801561090e57600080fd5b506102d46004803603604081101561092557600080fd5b506001600160a01b038135169060200135611757565b34801561094757600080fd5b506102d46004803603604081101561095e57600080fd5b506001600160a01b0381351690602001356117bf565b610299610c7f565b34801561098857600080fd5b50610299611868565b34801561099d57600080fd5b506102d4600480360360808110156109b457600080fd5b6001600160a01b038235811692602081013590911691604082013591908101906080810160608201356401000000008111156109ef57600080fd5b820183602082011115610a0157600080fd5b80359060200191846001830284011164010000000083111715610a2357600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061192d945050505050565b348015610a7057600080fd5b5061042360048036036020811015610a8757600080fd5b503561198d565b348015610a9a57600080fd5b506102d460048036036060811015610ab157600080fd5b6001600160a01b0382351691602081013591810190606081016040820135640100000000811115610ae157600080fd5b820183602082011115610af357600080fd5b80359060200191846001830284011164010000000083111715610b1557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506119a4945050505050565b348015610b6257600080fd5b506104236119f7565b348015610b7757600080fd5b5061029960048036036040811015610b8e57600080fd5b50803590602001356001600160a01b0316611a1b565b348015610bb057600080fd5b506102d460048036036060811015610bc757600080fd5b506001600160a01b03813581169160208101359091169060400135611a74565b348015610bf357600080fd5b5061042360048036036040811015610c0a57600080fd5b506001600160a01b0381358116916020013516611a91565b348015610c2e57600080fd5b50610299611abc565b348015610c4357600080fd5b5061029960048036036020811015610c5a57600080fd5b50356001600160a01b0316611b52565b348015610c7657600080fd5b50610423611c4b565b600954600160b01b900460ff16158015610ca35750600954600160a01b900460ff16155b610cde5760405162461bcd60e51b8152600401808060200182810382526022815260200180612aac6022913960400191505060405180910390fd5b60003411610d1d5760405162461bcd60e51b8152600401808060200182810382526021815260200180612c6a6021913960400191505060405180910390fd5b6000610d46670de0b6b3a7640000610d40600a5434611d5f90919063ffffffff16565b90611db8565b905060008111610d875760405162461bcd60e51b8152600401808060200182810382526022815260200180612ace6022913960400191505060405180910390fd5b610d913382611dfa565b610d996116b2565b6001600160a01b03166108fc349081150290604051600060405180830381858888f19350505050158015610dd1573d6000803e3d6000fd5b5050565b6001600160e01b03191660009081526007602052604090205460ff1690565b610dfc611eea565b6009546001600160a01b03908116911614610e4c576040805162461bcd60e51b81526020600482018190526024820152600080516020612be0833981519152604482015290519081900360640190fd5b6009805460ff60b01b191690556040517f276ac144d232a94090b24d455aaef4f930f5413f8b53eb27eda80c670a2b0fda90600090a1565b600954600160a01b900460ff1690565b60038054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610f205780601f10610ef557610100808354040283529160200191610f20565b820191906000526020600020905b815481529060010190602001808311610f0357829003601f168201915b5050505050905090565b6000610f3e610f37611eea565b8484611eee565b5060015b92915050565b6000610f64838360405180602001604052806000815250611179565b9392505050565b60025490565b6009546000908490600160b01b900460ff16158015610fc85750600954600160a81b900460ff1680610fc85750610fc87f523a704056dcd17bcf83bed8b68c59416dac1119be77755efe3bde0a64e46e0c826116d9565b6110035760405162461bcd60e51b815260040180806020018281038252604e815260200180612a5e604e913960600191505060405180910390fd5b61100e858585611fda565b95945050505050565b60009081526008602052604090206002015490565b60008281526008602052604090206002015461104f9061104a611eea565b6116d9565b61108a5760405162461bcd60e51b815260040180806020018281038252602f8152602001806129a0602f913960400191505060405180910390fd5b610dd18282612052565b60055460ff1690565b6000610f648383604051806020016040528060008152506119a4565b600a5490565b60065490565b6110cd611eea565b6001600160a01b0316816001600160a01b03161461111c5760405162461bcd60e51b815260040180806020018281038252602f815260200180612cd4602f913960400191505060405180910390fd5b610dd182826120bb565b6000610f3e611133611eea565b846111748560016000611144611eea565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611c6f565b611eee565b600061118584846117bf565b50611199611191611eea565b858585612124565b6111d45760405162461bcd60e51b8152600401808060200182810382526026815260200180612b716026913960400191505060405180910390fd5b5060019392505050565b600954600160b01b900460ff161580156112025750600954600160a01b900460ff16155b61123d5760405162461bcd60e51b8152600401808060200182810382526022815260200180612aac6022913960400191505060405180910390fd5b6112697ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc961104a611eea565b6112a45760405162461bcd60e51b815260040180806020018281038252602b815260200180612b46602b913960400191505060405180910390fd5b610dd18282611dfa565b6112bf6112b9611eea565b82612269565b50565b600954600160a81b900460ff1690565b6112da611eea565b6009546001600160a01b0390811691161461132a576040805162461bcd60e51b81526020600482018190526024820152600080516020612be0833981519152604482015290519081900360640190fd5b6001811015611374576040805162461bcd60e51b8152602060048201526011602482015270526174652063616e74206265207a65726f60781b604482015290519081900360640190fd5b600a55565b600954600160b01b900460ff1690565b6001600160a01b031660009081526020819052604090205490565b6113ac611eea565b6009546001600160a01b039081169116146113fc576040805162461bcd60e51b81526020600482018190526024820152600080516020612be0833981519152604482015290519081900360640190fd5b6009546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600980546001600160a01b0319169055565b600061147d82604051806060016040528060248152602001612c006024913961147686611471611eea565b611a91565b9190612365565b90506114918361148b611eea565b83611eee565b61149b8383612269565b505050565b6114a8611eea565b6009546001600160a01b039081169116146114f8576040805162461bcd60e51b81526020600482018190526024820152600080516020612be0833981519152604482015290519081900360640190fd5b6009805460ff60a01b1916600160a01b1790556040517fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0890600090a1565b61153e611eea565b6009546001600160a01b0390811691161461158e576040805162461bcd60e51b81526020600482018190526024820152600080516020612be0833981519152604482015290519081900360640190fd5b6009805460ff60b01b1916600160b01b1790556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a1565b6115d4611eea565b6009546001600160a01b03908116911614611624576040805162461bcd60e51b81526020600482018190526024820152600080516020612be0833981519152604482015290519081900360640190fd5b816001600160a01b031663a9059cbb61163b6116b2565b836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561168257600080fd5b505af1158015611696573d6000803e3d6000fd5b505050506040513d60208110156116ac57600080fd5b50505050565b6009546001600160a01b031690565b6000828152600860205260408120610f6490836123fc565b6000828152600860205260408120610f649083612408565b60048054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610f205780601f10610ef557610100808354040283529160200191610f20565b600081565b6000610f3e611764611eea565b8461117485604051806060016040528060258152602001612caf602591396001600061178e611eea565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190612365565b60006117c9611eea565b600954600160b01b900460ff1615801561181b5750600954600160a81b900460ff168061181b575061181b7f523a704056dcd17bcf83bed8b68c59416dac1119be77755efe3bde0a64e46e0c826116d9565b6118565760405162461bcd60e51b815260040180806020018281038252604e815260200180612a5e604e913960600191505060405180910390fd5b611860848461241d565b949350505050565b611870611eea565b6009546001600160a01b039081169116146118c0576040805162461bcd60e51b81526020600482018190526024820152600080516020612be0833981519152604482015290519081900360640190fd5b60006118db6118cd610f6b565b6118d56110bf565b90612431565b90506118ee6118e86116b2565b82611dfa565b6009805460ff60a01b1916600160a01b1790556040517fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0890600090a150565b600061193a858585610f71565b5061194785858585612124565b6119825760405162461bcd60e51b8152600401808060200182810382526026815260200180612b716026913960400191505060405180910390fd5b506001949350505050565b6000818152600860205260408120610f4290612473565b60006119b08484610f2a565b506119bc84848461247e565b6111d45760405162461bcd60e51b8152600401808060200182810382526025815260200180612a396025913960400191505060405180910390fd5b7ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc981565b600082815260086020526040902060020154611a399061104a611eea565b61111c5760405162461bcd60e51b8152600401808060200182810382526030815260200180612b166030913960400191505060405180910390fd5b60006118608484846040518060200160405280600081525061192d565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b611ac4611eea565b6009546001600160a01b03908116911614611b14576040805162461bcd60e51b81526020600482018190526024820152600080516020612be0833981519152604482015290519081900360640190fd5b6009805460ff60a81b1916600160a81b1790556040517f75fce015c314a132947a3e42f6ab79ab8e05397dabf35b4d742dea228bbadc2d90600090a1565b611b5a611eea565b6009546001600160a01b03908116911614611baa576040805162461bcd60e51b81526020600482018190526024820152600080516020612be0833981519152604482015290519081900360640190fd5b6001600160a01b038116611bef5760405162461bcd60e51b81526004018080602001828103825260268152602001806129f16026913960400191505060405180910390fd5b6009546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600980546001600160a01b0319166001600160a01b0392909216919091179055565b7f523a704056dcd17bcf83bed8b68c59416dac1119be77755efe3bde0a64e46e0c81565b600082820183811015610f64576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610f64836001600160a01b0384166125b1565b611ce983838361149b565b6001600160a01b03831661149b57600654611d0c82611d06610f6b565b90611c6f565b111561149b576040805162461bcd60e51b815260206004820152601960248201527f45524332304361707065643a2063617020657863656564656400000000000000604482015290519081900360640190fd5b600082611d6e57506000610f42565b82820282848281611d7b57fe5b0414610f645760405162461bcd60e51b8152600401808060200182810382526021815260200180612b976021913960400191505060405180910390fd5b6000610f6483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125fb565b6001600160a01b038216611e55576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b611e6160008383612660565b600254611e6e9082611c6f565b6002556001600160a01b038216600090815260208190526040902054611e949082611c6f565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b3390565b6001600160a01b038316611f335760405162461bcd60e51b8152600401808060200182810382526024815260200180612c8b6024913960400191505060405180910390fd5b6001600160a01b038216611f785760405162461bcd60e51b8152600401808060200182810382526022815260200180612a176022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6000611fe784848461266b565b6111d484611ff3611eea565b61117485604051806060016040528060288152602001612bb8602891396001600160a01b038a16600090815260016020526040812090612031611eea565b6001600160a01b031681526020810191909152604001600020549190612365565b600082815260086020526040902061206a9082611cc9565b15610dd157612077611eea565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526008602052604090206120d390826127c6565b15610dd1576120e0611eea565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6000612138846001600160a01b03166127db565b61214457506000611860565b6000846001600160a01b03166388a7ca5c61215d611eea565b8887876040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156121d05781810151838201526020016121b8565b50505050905090810190601f1680156121fd5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561221f57600080fd5b505af1158015612233573d6000803e3d6000fd5b505050506040513d602081101561224957600080fd5b50516001600160e01b031916632229f29760e21b14915050949350505050565b6001600160a01b0382166122ae5760405162461bcd60e51b8152600401808060200182810382526021815260200180612c246021913960400191505060405180910390fd5b6122ba82600083612660565b6122f7816040518060600160405280602281526020016129cf602291396001600160a01b0385166000908152602081905260409020549190612365565b6001600160a01b03831660009081526020819052604090205560025461231d9082612431565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600081848411156123f45760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156123b95781810151838201526020016123a1565b50505050905090810190601f1680156123e65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000610f648383612814565b6000610f64836001600160a01b038416612878565b6000610f3e61242a611eea565b848461266b565b6000610f6483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612365565b6000610f4282612890565b6000612492846001600160a01b03166127db565b61249e57506000610f64565b6000846001600160a01b0316637b04a2d06124b7611eea565b86866040518463ffffffff1660e01b815260040180846001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561251a578181015183820152602001612502565b50505050905090810190601f1680156125475780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561256857600080fd5b505af115801561257c573d6000803e3d6000fd5b505050506040513d602081101561259257600080fd5b50516001600160e01b0319166307b04a2d60e41b149150509392505050565b60006125bd8383612878565b6125f357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610f42565b506000610f42565b6000818361264a5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156123b95781810151838201526020016123a1565b50600083858161265657fe5b0495945050505050565b61149b838383611cde565b6001600160a01b0383166126b05760405162461bcd60e51b8152600401808060200182810382526025815260200180612c456025913960400191505060405180910390fd5b6001600160a01b0382166126f55760405162461bcd60e51b815260040180806020018281038252602381526020018061297d6023913960400191505060405180910390fd5b612700838383612660565b61273d81604051806060016040528060268152602001612af0602691396001600160a01b0386166000908152602081905260409020549190612365565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461276c9082611c6f565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000610f64836001600160a01b038416612894565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590611860575050151592915050565b815460009082106128565760405162461bcd60e51b815260040180806020018281038252602281526020018061295b6022913960400191505060405180910390fd5b82600001828154811061286557fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b6000818152600183016020526040812054801561295057835460001980830191908101906000908790839081106128c757fe5b90600052602060002001549050808760000184815481106128e457fe5b60009182526020808320909101929092558281526001898101909252604090209084019055865487908061291457fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610f42565b6000915050610f4256fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e647345524332303a207472616e7366657220746f20746865207a65726f2061646472657373416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e7445524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373455243313336333a205f636865636b416e6443616c6c417070726f7665207265766572747345636f62616e6b61546f6b656e3a207472616e73666572206973206e6f7420656e61626c6564206f722066726f6d20646f6573206e6f74206861766520746865204f50455241544f5220726f6c6545636f62616e6b61546f6b656e3a206d696e74696e67206e6f7420656e61626c6564546f6b656e732073686f756c642062652067726561746572207468616e207a65726f45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b65526f6c65733a2063616c6c657220646f6573206e6f74206861766520746865204d494e54455220726f6c65455243313336333a205f636865636b416e6443616c6c5472616e736665722072657665727473536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657245524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737356616c75652073686f756c642062652067726561746572207468616e207a65726f45524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a2646970667358221220586c9f5a289c3646f693aed2b8012d91ca0e3a764cd675292fa0d08a2a979cbc64736f6c634300070000334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000006765c793fa10079d00000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000006765c793fa10079d000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000645636f62616e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000445434b4e00000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x60806040526004361061028c5760003560e01c8063715018a61161015a578063b4427263116100c1578063d547741f1161007a578063d547741f14610b6b578063d8fbe99414610ba4578063dd62ed3e14610be7578063f1b50c1d14610c22578063f2fde38b14610c37578063f5b541a614610c6a5761029b565b8063b442726314610974578063b80cdcf61461097c578063c1d34b8914610991578063ca15c87314610a64578063cae9ca5114610a8e578063d539139314610b565761029b565b80639010d07c116101135780639010d07c1461086f57806391d148541461089f57806395d89b41146108d8578063a217fddf146108ed578063a457c2d714610902578063a9059cbb1461093b5761029b565b8063715018a61461078d57806379cc6790146107a25780637d64bcb4146107db5780638456cb59146107f05780638980f11f146108055780638da5cb5b1461083e5761029b565b80633177029f116101fe57806340c10f19116101b757806340c10f19146106a357806342966c68146106dc5780634cd412d5146107065780635c07ac941461071b5780635c975abb1461074557806370a082311461075a5761029b565b80633177029f1461050657806335200cda1461053f578063355274ea1461055457806336568abe1461056957806339509351146105a25780634000aea0146105db5761029b565b80631296ee62116102505780631296ee62146103d557806318160ddd1461040e57806323b872dd14610435578063248a9ca3146104785780632f2ff15d146104a2578063313ce567146104db5761029b565b806301ffc9a7146102a0578063046f7da2146102e857806305d2035b146102fd57806306fdde0314610312578063095ea7b31461039c5761029b565b3661029b57610299610c7f565b005b600080fd5b3480156102ac57600080fd5b506102d4600480360360208110156102c357600080fd5b50356001600160e01b031916610dd5565b604080519115158252519081900360200190f35b3480156102f457600080fd5b50610299610df4565b34801561030957600080fd5b506102d4610e84565b34801561031e57600080fd5b50610327610e94565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610361578181015183820152602001610349565b50505050905090810190601f16801561038e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103a857600080fd5b506102d4600480360360408110156103bf57600080fd5b506001600160a01b038135169060200135610f2a565b3480156103e157600080fd5b506102d4600480360360408110156103f857600080fd5b506001600160a01b038135169060200135610f48565b34801561041a57600080fd5b50610423610f6b565b60408051918252519081900360200190f35b34801561044157600080fd5b506102d46004803603606081101561045857600080fd5b506001600160a01b03813581169160208101359091169060400135610f71565b34801561048457600080fd5b506104236004803603602081101561049b57600080fd5b5035611017565b3480156104ae57600080fd5b50610299600480360360408110156104c557600080fd5b50803590602001356001600160a01b031661102c565b3480156104e757600080fd5b506104f0611094565b6040805160ff9092168252519081900360200190f35b34801561051257600080fd5b506102d46004803603604081101561052957600080fd5b506001600160a01b03813516906020013561109d565b34801561054b57600080fd5b506104236110b9565b34801561056057600080fd5b506104236110bf565b34801561057557600080fd5b506102996004803603604081101561058c57600080fd5b50803590602001356001600160a01b03166110c5565b3480156105ae57600080fd5b506102d4600480360360408110156105c557600080fd5b506001600160a01b038135169060200135611126565b3480156105e757600080fd5b506102d4600480360360608110156105fe57600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561062e57600080fd5b82018360208201111561064057600080fd5b8035906020019184600183028401116401000000008311171561066257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611179945050505050565b3480156106af57600080fd5b50610299600480360360408110156106c657600080fd5b506001600160a01b0381351690602001356111de565b3480156106e857600080fd5b50610299600480360360208110156106ff57600080fd5b50356112ae565b34801561071257600080fd5b506102d46112c2565b34801561072757600080fd5b506102996004803603602081101561073e57600080fd5b50356112d2565b34801561075157600080fd5b506102d4611379565b34801561076657600080fd5b506104236004803603602081101561077d57600080fd5b50356001600160a01b0316611389565b34801561079957600080fd5b506102996113a4565b3480156107ae57600080fd5b50610299600480360360408110156107c557600080fd5b506001600160a01b038135169060200135611446565b3480156107e757600080fd5b506102996114a0565b3480156107fc57600080fd5b50610299611536565b34801561081157600080fd5b506102996004803603604081101561082857600080fd5b506001600160a01b0381351690602001356115cc565b34801561084a57600080fd5b506108536116b2565b604080516001600160a01b039092168252519081900360200190f35b34801561087b57600080fd5b506108536004803603604081101561089257600080fd5b50803590602001356116c1565b3480156108ab57600080fd5b506102d4600480360360408110156108c257600080fd5b50803590602001356001600160a01b03166116d9565b3480156108e457600080fd5b506103276116f1565b3480156108f957600080fd5b50610423611752565b34801561090e57600080fd5b506102d46004803603604081101561092557600080fd5b506001600160a01b038135169060200135611757565b34801561094757600080fd5b506102d46004803603604081101561095e57600080fd5b506001600160a01b0381351690602001356117bf565b610299610c7f565b34801561098857600080fd5b50610299611868565b34801561099d57600080fd5b506102d4600480360360808110156109b457600080fd5b6001600160a01b038235811692602081013590911691604082013591908101906080810160608201356401000000008111156109ef57600080fd5b820183602082011115610a0157600080fd5b80359060200191846001830284011164010000000083111715610a2357600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061192d945050505050565b348015610a7057600080fd5b5061042360048036036020811015610a8757600080fd5b503561198d565b348015610a9a57600080fd5b506102d460048036036060811015610ab157600080fd5b6001600160a01b0382351691602081013591810190606081016040820135640100000000811115610ae157600080fd5b820183602082011115610af357600080fd5b80359060200191846001830284011164010000000083111715610b1557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506119a4945050505050565b348015610b6257600080fd5b506104236119f7565b348015610b7757600080fd5b5061029960048036036040811015610b8e57600080fd5b50803590602001356001600160a01b0316611a1b565b348015610bb057600080fd5b506102d460048036036060811015610bc757600080fd5b506001600160a01b03813581169160208101359091169060400135611a74565b348015610bf357600080fd5b5061042360048036036040811015610c0a57600080fd5b506001600160a01b0381358116916020013516611a91565b348015610c2e57600080fd5b50610299611abc565b348015610c4357600080fd5b5061029960048036036020811015610c5a57600080fd5b50356001600160a01b0316611b52565b348015610c7657600080fd5b50610423611c4b565b600954600160b01b900460ff16158015610ca35750600954600160a01b900460ff16155b610cde5760405162461bcd60e51b8152600401808060200182810382526022815260200180612aac6022913960400191505060405180910390fd5b60003411610d1d5760405162461bcd60e51b8152600401808060200182810382526021815260200180612c6a6021913960400191505060405180910390fd5b6000610d46670de0b6b3a7640000610d40600a5434611d5f90919063ffffffff16565b90611db8565b905060008111610d875760405162461bcd60e51b8152600401808060200182810382526022815260200180612ace6022913960400191505060405180910390fd5b610d913382611dfa565b610d996116b2565b6001600160a01b03166108fc349081150290604051600060405180830381858888f19350505050158015610dd1573d6000803e3d6000fd5b5050565b6001600160e01b03191660009081526007602052604090205460ff1690565b610dfc611eea565b6009546001600160a01b03908116911614610e4c576040805162461bcd60e51b81526020600482018190526024820152600080516020612be0833981519152604482015290519081900360640190fd5b6009805460ff60b01b191690556040517f276ac144d232a94090b24d455aaef4f930f5413f8b53eb27eda80c670a2b0fda90600090a1565b600954600160a01b900460ff1690565b60038054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610f205780601f10610ef557610100808354040283529160200191610f20565b820191906000526020600020905b815481529060010190602001808311610f0357829003601f168201915b5050505050905090565b6000610f3e610f37611eea565b8484611eee565b5060015b92915050565b6000610f64838360405180602001604052806000815250611179565b9392505050565b60025490565b6009546000908490600160b01b900460ff16158015610fc85750600954600160a81b900460ff1680610fc85750610fc87f523a704056dcd17bcf83bed8b68c59416dac1119be77755efe3bde0a64e46e0c826116d9565b6110035760405162461bcd60e51b815260040180806020018281038252604e815260200180612a5e604e913960600191505060405180910390fd5b61100e858585611fda565b95945050505050565b60009081526008602052604090206002015490565b60008281526008602052604090206002015461104f9061104a611eea565b6116d9565b61108a5760405162461bcd60e51b815260040180806020018281038252602f8152602001806129a0602f913960400191505060405180910390fd5b610dd18282612052565b60055460ff1690565b6000610f648383604051806020016040528060008152506119a4565b600a5490565b60065490565b6110cd611eea565b6001600160a01b0316816001600160a01b03161461111c5760405162461bcd60e51b815260040180806020018281038252602f815260200180612cd4602f913960400191505060405180910390fd5b610dd182826120bb565b6000610f3e611133611eea565b846111748560016000611144611eea565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611c6f565b611eee565b600061118584846117bf565b50611199611191611eea565b858585612124565b6111d45760405162461bcd60e51b8152600401808060200182810382526026815260200180612b716026913960400191505060405180910390fd5b5060019392505050565b600954600160b01b900460ff161580156112025750600954600160a01b900460ff16155b61123d5760405162461bcd60e51b8152600401808060200182810382526022815260200180612aac6022913960400191505060405180910390fd5b6112697ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc961104a611eea565b6112a45760405162461bcd60e51b815260040180806020018281038252602b815260200180612b46602b913960400191505060405180910390fd5b610dd18282611dfa565b6112bf6112b9611eea565b82612269565b50565b600954600160a81b900460ff1690565b6112da611eea565b6009546001600160a01b0390811691161461132a576040805162461bcd60e51b81526020600482018190526024820152600080516020612be0833981519152604482015290519081900360640190fd5b6001811015611374576040805162461bcd60e51b8152602060048201526011602482015270526174652063616e74206265207a65726f60781b604482015290519081900360640190fd5b600a55565b600954600160b01b900460ff1690565b6001600160a01b031660009081526020819052604090205490565b6113ac611eea565b6009546001600160a01b039081169116146113fc576040805162461bcd60e51b81526020600482018190526024820152600080516020612be0833981519152604482015290519081900360640190fd5b6009546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600980546001600160a01b0319169055565b600061147d82604051806060016040528060248152602001612c006024913961147686611471611eea565b611a91565b9190612365565b90506114918361148b611eea565b83611eee565b61149b8383612269565b505050565b6114a8611eea565b6009546001600160a01b039081169116146114f8576040805162461bcd60e51b81526020600482018190526024820152600080516020612be0833981519152604482015290519081900360640190fd5b6009805460ff60a01b1916600160a01b1790556040517fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0890600090a1565b61153e611eea565b6009546001600160a01b0390811691161461158e576040805162461bcd60e51b81526020600482018190526024820152600080516020612be0833981519152604482015290519081900360640190fd5b6009805460ff60b01b1916600160b01b1790556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a1565b6115d4611eea565b6009546001600160a01b03908116911614611624576040805162461bcd60e51b81526020600482018190526024820152600080516020612be0833981519152604482015290519081900360640190fd5b816001600160a01b031663a9059cbb61163b6116b2565b836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561168257600080fd5b505af1158015611696573d6000803e3d6000fd5b505050506040513d60208110156116ac57600080fd5b50505050565b6009546001600160a01b031690565b6000828152600860205260408120610f6490836123fc565b6000828152600860205260408120610f649083612408565b60048054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610f205780601f10610ef557610100808354040283529160200191610f20565b600081565b6000610f3e611764611eea565b8461117485604051806060016040528060258152602001612caf602591396001600061178e611eea565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190612365565b60006117c9611eea565b600954600160b01b900460ff1615801561181b5750600954600160a81b900460ff168061181b575061181b7f523a704056dcd17bcf83bed8b68c59416dac1119be77755efe3bde0a64e46e0c826116d9565b6118565760405162461bcd60e51b815260040180806020018281038252604e815260200180612a5e604e913960600191505060405180910390fd5b611860848461241d565b949350505050565b611870611eea565b6009546001600160a01b039081169116146118c0576040805162461bcd60e51b81526020600482018190526024820152600080516020612be0833981519152604482015290519081900360640190fd5b60006118db6118cd610f6b565b6118d56110bf565b90612431565b90506118ee6118e86116b2565b82611dfa565b6009805460ff60a01b1916600160a01b1790556040517fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0890600090a150565b600061193a858585610f71565b5061194785858585612124565b6119825760405162461bcd60e51b8152600401808060200182810382526026815260200180612b716026913960400191505060405180910390fd5b506001949350505050565b6000818152600860205260408120610f4290612473565b60006119b08484610f2a565b506119bc84848461247e565b6111d45760405162461bcd60e51b8152600401808060200182810382526025815260200180612a396025913960400191505060405180910390fd5b7ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc981565b600082815260086020526040902060020154611a399061104a611eea565b61111c5760405162461bcd60e51b8152600401808060200182810382526030815260200180612b166030913960400191505060405180910390fd5b60006118608484846040518060200160405280600081525061192d565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b611ac4611eea565b6009546001600160a01b03908116911614611b14576040805162461bcd60e51b81526020600482018190526024820152600080516020612be0833981519152604482015290519081900360640190fd5b6009805460ff60a81b1916600160a81b1790556040517f75fce015c314a132947a3e42f6ab79ab8e05397dabf35b4d742dea228bbadc2d90600090a1565b611b5a611eea565b6009546001600160a01b03908116911614611baa576040805162461bcd60e51b81526020600482018190526024820152600080516020612be0833981519152604482015290519081900360640190fd5b6001600160a01b038116611bef5760405162461bcd60e51b81526004018080602001828103825260268152602001806129f16026913960400191505060405180910390fd5b6009546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600980546001600160a01b0319166001600160a01b0392909216919091179055565b7f523a704056dcd17bcf83bed8b68c59416dac1119be77755efe3bde0a64e46e0c81565b600082820183811015610f64576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610f64836001600160a01b0384166125b1565b611ce983838361149b565b6001600160a01b03831661149b57600654611d0c82611d06610f6b565b90611c6f565b111561149b576040805162461bcd60e51b815260206004820152601960248201527f45524332304361707065643a2063617020657863656564656400000000000000604482015290519081900360640190fd5b600082611d6e57506000610f42565b82820282848281611d7b57fe5b0414610f645760405162461bcd60e51b8152600401808060200182810382526021815260200180612b976021913960400191505060405180910390fd5b6000610f6483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125fb565b6001600160a01b038216611e55576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b611e6160008383612660565b600254611e6e9082611c6f565b6002556001600160a01b038216600090815260208190526040902054611e949082611c6f565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b3390565b6001600160a01b038316611f335760405162461bcd60e51b8152600401808060200182810382526024815260200180612c8b6024913960400191505060405180910390fd5b6001600160a01b038216611f785760405162461bcd60e51b8152600401808060200182810382526022815260200180612a176022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6000611fe784848461266b565b6111d484611ff3611eea565b61117485604051806060016040528060288152602001612bb8602891396001600160a01b038a16600090815260016020526040812090612031611eea565b6001600160a01b031681526020810191909152604001600020549190612365565b600082815260086020526040902061206a9082611cc9565b15610dd157612077611eea565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526008602052604090206120d390826127c6565b15610dd1576120e0611eea565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6000612138846001600160a01b03166127db565b61214457506000611860565b6000846001600160a01b03166388a7ca5c61215d611eea565b8887876040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156121d05781810151838201526020016121b8565b50505050905090810190601f1680156121fd5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561221f57600080fd5b505af1158015612233573d6000803e3d6000fd5b505050506040513d602081101561224957600080fd5b50516001600160e01b031916632229f29760e21b14915050949350505050565b6001600160a01b0382166122ae5760405162461bcd60e51b8152600401808060200182810382526021815260200180612c246021913960400191505060405180910390fd5b6122ba82600083612660565b6122f7816040518060600160405280602281526020016129cf602291396001600160a01b0385166000908152602081905260409020549190612365565b6001600160a01b03831660009081526020819052604090205560025461231d9082612431565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600081848411156123f45760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156123b95781810151838201526020016123a1565b50505050905090810190601f1680156123e65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000610f648383612814565b6000610f64836001600160a01b038416612878565b6000610f3e61242a611eea565b848461266b565b6000610f6483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612365565b6000610f4282612890565b6000612492846001600160a01b03166127db565b61249e57506000610f64565b6000846001600160a01b0316637b04a2d06124b7611eea565b86866040518463ffffffff1660e01b815260040180846001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561251a578181015183820152602001612502565b50505050905090810190601f1680156125475780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561256857600080fd5b505af115801561257c573d6000803e3d6000fd5b505050506040513d602081101561259257600080fd5b50516001600160e01b0319166307b04a2d60e41b149150509392505050565b60006125bd8383612878565b6125f357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610f42565b506000610f42565b6000818361264a5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156123b95781810151838201526020016123a1565b50600083858161265657fe5b0495945050505050565b61149b838383611cde565b6001600160a01b0383166126b05760405162461bcd60e51b8152600401808060200182810382526025815260200180612c456025913960400191505060405180910390fd5b6001600160a01b0382166126f55760405162461bcd60e51b815260040180806020018281038252602381526020018061297d6023913960400191505060405180910390fd5b612700838383612660565b61273d81604051806060016040528060268152602001612af0602691396001600160a01b0386166000908152602081905260409020549190612365565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461276c9082611c6f565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000610f64836001600160a01b038416612894565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590611860575050151592915050565b815460009082106128565760405162461bcd60e51b815260040180806020018281038252602281526020018061295b6022913960400191505060405180910390fd5b82600001828154811061286557fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b6000818152600183016020526040812054801561295057835460001980830191908101906000908790839081106128c757fe5b90600052602060002001549050808760000184815481106128e457fe5b60009182526020808320909101929092558281526001898101909252604090209084019055865487908061291457fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610f42565b6000915050610f4256fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e647345524332303a207472616e7366657220746f20746865207a65726f2061646472657373416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e7445524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373455243313336333a205f636865636b416e6443616c6c417070726f7665207265766572747345636f62616e6b61546f6b656e3a207472616e73666572206973206e6f7420656e61626c6564206f722066726f6d20646f6573206e6f74206861766520746865204f50455241544f5220726f6c6545636f62616e6b61546f6b656e3a206d696e74696e67206e6f7420656e61626c6564546f6b656e732073686f756c642062652067726561746572207468616e207a65726f45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b65526f6c65733a2063616c6c657220646f6573206e6f74206861766520746865204d494e54455220726f6c65455243313336333a205f636865636b416e6443616c6c5472616e736665722072657665727473536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657245524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737356616c75652073686f756c642062652067726561746572207468616e207a65726f45524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a2646970667358221220586c9f5a289c3646f693aed2b8012d91ca0e3a764cd675292fa0d08a2a979cbc64736f6c63430007000033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000006765c793fa10079d00000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000006765c793fa10079d000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000645636f62616e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000445434b4e00000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : name (string): Ecoban
Arg [1] : symbol (string): ECKN
Arg [2] : decimals (uint8): 18
Arg [3] : cap (uint256): 2000000000000000000000000000
Arg [4] : rate (uint256): 1
Arg [5] : initialSupply (uint256): 2000000000000000000000000000
Arg [6] : transferEnabled (bool): True
Arg [7] : mintingFinished (bool): True
-----Encoded View---------------
12 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000140
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 000000000000000000000000000000000000000006765c793fa10079d0000000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [5] : 000000000000000000000000000000000000000006765c793fa10079d0000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [9] : 45636f62616e0000000000000000000000000000000000000000000000000000
Arg [10] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [11] : 45434b4e00000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
22376:4026:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24060:14;:12;:14::i;:::-;22376:4026;;;;;9804:142;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9804:142:0;-1:-1:-1;;;;;;9804:142:0;;:::i;:::-;;;;;;;;;;;;;;;;;;25980:100;;;;;;;;;;;;;:::i;24288:96::-;;;;;;;;;;;;;:::i;3835:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4689:169;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4689:169:0;;;;;;;;:::i;12856:139::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;12856:139:0;;;;;;;;:::i;4112:100::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;25315:188;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;25315:188:0;;;;;;;;;;;;;;;;;:::i;19025:114::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19025:114:0;;:::i;19147:227::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19147:227:0;;;;;;-1:-1:-1;;;;;19147:227:0;;:::i;4021:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13766:147;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;13766:147:0;;;;;;;;:::i;24096:86::-;;;;;;;;;;;;;:::i;7834:75::-;;;;;;;;;;;;;:::i;19620:209::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19620:209:0;;;;;;-1:-1:-1;;;;;19620:209:0;;:::i;5195:218::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5195:218:0;;;;;;;;:::i;13003:276::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13003:276:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13003:276:0;;-1:-1:-1;13003:276:0;;-1:-1:-1;;;;;13003:276:0:i;25025:102::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;25025:102:0;;;;;;;;:::i;8335:91::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8335:91:0;;:::i;24394:96::-;;;;;;;;;;;;;:::i;24866:149::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24866:149:0;;:::i;24196:78::-;;;;;;;;;;;;;:::i;4220:119::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4220:119:0;-1:-1:-1;;;;;4220:119:0;;:::i;21727:148::-;;;;;;;;;;;;;:::i;8434:295::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8434:295:0;;;;;;;;:::i;25745:116::-;;;;;;;;;;;;;:::i;25875:91::-;;;;;;;;;;;;;:::i;22184:152::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;22184:152:0;;;;;;;;:::i;21505:87::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;21505:87:0;;;;;;;;;;;;;;18879:138;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18879:138:0;;;;;;;:::i;18595:139::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18595:139:0;;;;;;-1:-1:-1;;;;;18595:139:0;;:::i;3926:87::-;;;;;;;;;;;;;:::i;18343:49::-;;;;;;;;;;;;;:::i;5423:269::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5423:269:0;;;;;;;;:::i;25137:168::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;25137:168:0;;;;;;;;:::i;24502:344::-;;;:::i;25515:220::-;;;;;;;;;;;;;:::i;13462:296::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13462:296:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13462:296:0;;-1:-1:-1;13462:296:0;;-1:-1:-1;;;;;13462:296:0:i;18744:127::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18744:127:0;;:::i;13921:273::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13921:273:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13921:273:0;;-1:-1:-1;13921:273:0;;-1:-1:-1;;;;;13921:273:0:i;20527:57::-;;;;;;;;;;;;;:::i;19382:230::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19382:230:0;;;;;;-1:-1:-1;;;;;19382:230:0;;:::i;13287:167::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;13287:167:0;;;;;;;;;;;;;;;;;:::i;4530:151::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4530:151:0;;;;;;;;;;:::i;26090:120::-;;;;;;;;;;;;;:::i;21883:252::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21883:252:0;-1:-1:-1;;;;;21883:252:0;;:::i;20591:61::-;;;;;;;;;;;;;:::i;24502:344::-;22841:7;;-1:-1:-1;;;22841:7:0;;;;22840:8;:29;;;;-1:-1:-1;22853:16:0;;-1:-1:-1;;;22853:16:0;;;;22852:17;22840:29;22832:76;;;;-1:-1:-1;;;22832:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24582:1:::1;24569:9;:14;24561:60;;;;-1:-1:-1::0;;;24561:60:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24632:15;24650:45;24675:19;24650:20;24664:5;;24650:9;:13;;:20;;;;:::i;:::-;:24:::0;::::1;:45::i;:::-;24632:63;;24724:1;24714:6;:11;24706:58;;;;-1:-1:-1::0;;;24706:58:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24775:25;24781:10;24793:6;24775:5;:25::i;:::-;24811:7;:5;:7::i;:::-;-1:-1:-1::0;;;;;24811:16:0::1;:27;24828:9;24811:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;22919:1;24502:344::o:0;9804:142::-;-1:-1:-1;;;;;;9905:33:0;9881:4;9905:33;;;:20;:33;;;;;;;;;9804:142::o;25980:100::-;21650:12;:10;:12::i;:::-;21640:6;;-1:-1:-1;;;;;21640:6:0;;;:22;;;21632:67;;;;;-1:-1:-1;;;21632:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;21632:67:0;;;;;;;;;;;;;;;26026:7:::1;:15:::0;;-1:-1:-1;;;;26026:15:0::1;::::0;;26057::::1;::::0;::::1;::::0;26036:5:::1;::::0;26057:15:::1;25980:100::o:0;24288:96::-;24360:16;;-1:-1:-1;;;24360:16:0;;;;;24288:96::o;3835:83::-;3905:5;3898:12;;;;;;;;-1:-1:-1;;3898:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3872:13;;3898:12;;3905:5;;3898:12;;3905:5;3898:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3835:83;:::o;4689:169::-;4772:4;4789:39;4798:12;:10;:12::i;:::-;4812:7;4821:6;4789:8;:39::i;:::-;-1:-1:-1;4846:4:0;4689:169;;;;;:::o;12856:139::-;12933:4;12957:30;12973:2;12977:5;12957:30;;;;;;;;;;;;:15;:30::i;:::-;12950:37;12856:139;-1:-1:-1;;;12856:139:0:o;4112:100::-;4192:12;;4112:100;:::o;25315:188::-;23005:7;;25436:4;;25421;;-1:-1:-1;;;23005:7:0;;;;23004:8;:62;;;;-1:-1:-1;23017:16:0;;-1:-1:-1;;;23017:16:0;;;;;:48;;;23037:28;20631:21;23060:4;23037:7;:28::i;:::-;22982:190;;;;-1:-1:-1;;;22982:190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25460:35:::1;25479:4;25485:2;25489:5;25460:18;:35::i;:::-;25453:42:::0;25315:188;-1:-1:-1;;;;;25315:188:0:o;19025:114::-;19082:7;19109:12;;;:6;:12;;;;;:22;;;;19025:114::o;19147:227::-;19239:12;;;;:6;:12;;;;;:22;;;19231:45;;19263:12;:10;:12::i;:::-;19231:7;:45::i;:::-;19223:105;;;;-1:-1:-1;;;19223:105:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19341:25;19352:4;19358:7;19341:10;:25::i;4021:83::-;4087:9;;;;4021:83;:::o;13766:147::-;13847:4;13871:34;13886:7;13895:5;13871:34;;;;;;;;;;;;:14;:34::i;24096:86::-;24169:5;;24096:86;:::o;7834:75::-;7897:4;;7834:75;:::o;19620:209::-;19718:12;:10;:12::i;:::-;-1:-1:-1;;;;;19707:23:0;:7;-1:-1:-1;;;;;19707:23:0;;19699:83;;;;-1:-1:-1;;;19699:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19795:26;19807:4;19813:7;19795:11;:26::i;5195:218::-;5283:4;5300:83;5309:12;:10;:12::i;:::-;5323:7;5332:50;5371:10;5332:11;:25;5344:12;:10;:12::i;:::-;-1:-1:-1;;;;;5332:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;5332:25:0;;;:34;;;;;;;;;;;:38;:50::i;:::-;5300:8;:83::i;13003:276::-;13099:4;13116:19;13125:2;13129:5;13116:8;:19::i;:::-;;13154:52;13176:12;:10;:12::i;:::-;13190:2;13194:5;13201:4;13154:21;:52::i;:::-;13146:103;;;;-1:-1:-1;;;13146:103:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13267:4:0;13003:276;;;;;:::o;25025:102::-;22841:7;;-1:-1:-1;;;22841:7:0;;;;22840:8;:29;;;;-1:-1:-1;22853:16:0;;-1:-1:-1;;;22853:16:0;;;;22852:17;22840:29;22832:76;;;;-1:-1:-1;;;22832:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20886:34:::1;20565:19;20907:12;:10;:12::i;20886:34::-;20878:90;;;;-1:-1:-1::0;;;20878:90:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25103:16:::2;25109:2;25113:5;25103;:16::i;8335:91::-:0;8391:27;8397:12;:10;:12::i;:::-;8411:6;8391:5;:27::i;:::-;8335:91;:::o;24394:96::-;24466:16;;-1:-1:-1;;;24466:16:0;;;;;24394:96::o;24866:149::-;21650:12;:10;:12::i;:::-;21640:6;;-1:-1:-1;;;;;21640:6:0;;;:22;;;21632:67;;;;;-1:-1:-1;;;21632:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;21632:67:0;;;;;;;;;;;;;;;24957:1:::1;24947:6;:11;;24939:43;;;::::0;;-1:-1:-1;;;24939:43:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;24939:43:0;;;;;;;;;;;;;::::1;;24993:5;:14:::0;24866:149::o;24196:78::-;24259:7;;-1:-1:-1;;;24259:7:0;;;;;24196:78::o;4220:119::-;-1:-1:-1;;;;;4313:18:0;4286:7;4313:18;;;;;;;;;;;;4220:119::o;21727:148::-;21650:12;:10;:12::i;:::-;21640:6;;-1:-1:-1;;;;;21640:6:0;;;:22;;;21632:67;;;;;-1:-1:-1;;;21632:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;21632:67:0;;;;;;;;;;;;;;;21818:6:::1;::::0;21797:40:::1;::::0;21834:1:::1;::::0;-1:-1:-1;;;;;21818:6:0::1;::::0;21797:40:::1;::::0;21834:1;;21797:40:::1;21848:6;:19:::0;;-1:-1:-1;;;;;;21848:19:0::1;::::0;;21727:148::o;8434:295::-;8511:26;8540:84;8577:6;8540:84;;;;;;;;;;;;;;;;;:32;8550:7;8559:12;:10;:12::i;:::-;8540:9;:32::i;:::-;:36;:84;:36;:84::i;:::-;8511:113;;8637:51;8646:7;8655:12;:10;:12::i;:::-;8669:18;8637:8;:51::i;:::-;8699:22;8705:7;8714:6;8699:5;:22::i;:::-;8434:295;;;:::o;25745:116::-;21650:12;:10;:12::i;:::-;21640:6;;-1:-1:-1;;;;;21640:6:0;;;:22;;;21632:67;;;;;-1:-1:-1;;;21632:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;21632:67:0;;;;;;;;;;;;;;;25798:16:::1;:23:::0;;-1:-1:-1;;;;25798:23:0::1;-1:-1:-1::0;;;25798:23:0::1;::::0;;25839:14:::1;::::0;::::1;::::0;25798:23;;25839:14:::1;25745:116::o:0;25875:91::-;21650:12;:10;:12::i;:::-;21640:6;;-1:-1:-1;;;;;21640:6:0;;;:22;;;21632:67;;;;;-1:-1:-1;;;21632:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;21632:67:0;;;;;;;;;;;;;;;25920:7:::1;:14:::0;;-1:-1:-1;;;;25920:14:0::1;-1:-1:-1::0;;;25920:14:0::1;::::0;;25950:8:::1;::::0;::::1;::::0;25920:14;;25950:8:::1;25875:91::o:0;22184:152::-;21650:12;:10;:12::i;:::-;21640:6;;-1:-1:-1;;;;;21640:6:0;;;:22;;;21632:67;;;;;-1:-1:-1;;;21632:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;21632:67:0;;;;;;;;;;;;;;;22284:12:::1;-1:-1:-1::0;;;;;22277:29:0::1;;22307:7;:5;:7::i;:::-;22316:11;22277:51;;;;;;;;;;;;;-1:-1:-1::0;;;;;22277:51:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;;;22184:152:0:o;21505:87::-;21578:6;;-1:-1:-1;;;;;21578:6:0;21505:87;:::o;18879:138::-;18952:7;18979:12;;;:6;:12;;;;;:30;;19003:5;18979:23;:30::i;18595:139::-;18664:4;18688:12;;;:6;:12;;;;;:38;;18718:7;18688:29;:38::i;3926:87::-;3998:7;3991:14;;;;;;;;-1:-1:-1;;3991:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3965:13;;3991:14;;3998:7;;3991:14;;3998:7;3991:14;;;;;;;;;;;;;;;;;;;;;;;;18343:49;18388:4;18343:49;:::o;5423:269::-;5516:4;5533:129;5542:12;:10;:12::i;:::-;5556:7;5565:96;5604:15;5565:96;;;;;;;;;;;;;;;;;:11;:25;5577:12;:10;:12::i;:::-;-1:-1:-1;;;;;5565:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;5565:25:0;;;:34;;;;;;;;;;;:96;:38;:96::i;25137:168::-;25248:4;25225:12;:10;:12::i;:::-;23005:7;;-1:-1:-1;;;23005:7:0;;;;23004:8;:62;;;;-1:-1:-1;23017:16:0;;-1:-1:-1;;;23017:16:0;;;;;:48;;;23037:28;20631:21;23060:4;23037:7;:28::i;:::-;22982:190;;;;-1:-1:-1;;;22982:190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25272:25:::1;25287:2;25291:5;25272:14;:25::i;:::-;25265:32:::0;25137:168;-1:-1:-1;;;;25137:168:0:o;25515:220::-;21650:12;:10;:12::i;:::-;21640:6;;-1:-1:-1;;;;;21640:6:0;;;:22;;;21632:67;;;;;-1:-1:-1;;;21632:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;21632:67:0;;;;;;;;;;;;;;;25570:24:::1;25597;25607:13;:11;:13::i;:::-;25597:5;:3;:5::i;:::-;:9:::0;::::1;:24::i;:::-;25570:51;;25632:31;25638:7;:5;:7::i;:::-;25647:15;25632:5;:31::i;:::-;25674:16;:23:::0;;-1:-1:-1;;;;25674:23:0::1;-1:-1:-1::0;;;25674:23:0::1;::::0;;25713:14:::1;::::0;::::1;::::0;25674:23;;25713:14:::1;21710:1;25515:220::o:0;13462:296::-;13576:4;13593:29;13606:4;13612:2;13616:5;13593:12;:29::i;:::-;;13641:44;13663:4;13669:2;13673:5;13680:4;13641:21;:44::i;:::-;13633:95;;;;-1:-1:-1;;;13633:95:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13746:4:0;13462:296;;;;;;:::o;18744:127::-;18807:7;18834:12;;;:6;:12;;;;;:29;;:27;:29::i;13921:273::-;14021:4;14038:23;14046:7;14055:5;14038:7;:23::i;:::-;;14080:42;14101:7;14110:5;14117:4;14080:20;:42::i;:::-;14072:92;;;;-1:-1:-1;;;14072:92:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20527:57;20565:19;20527:57;:::o;19382:230::-;19475:12;;;;:6;:12;;;;;:22;;;19467:45;;19499:12;:10;:12::i;19467:45::-;19459:106;;;;-1:-1:-1;;;19459:106:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13287:167;13382:4;13406:40;13426:4;13432:2;13436:5;13406:40;;;;;;;;;;;;:19;:40::i;4530:151::-;-1:-1:-1;;;;;4646:18:0;;;4619:7;4646:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4530:151::o;26090:120::-;21650:12;:10;:12::i;:::-;21640:6;;-1:-1:-1;;;;;21640:6:0;;;:22;;;21632:67;;;;;-1:-1:-1;;;21632:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;21632:67:0;;;;;;;;;;;;;;;26144:16:::1;:23:::0;;-1:-1:-1;;;;26144:23:0::1;-1:-1:-1::0;;;26144:23:0::1;::::0;;26185:17:::1;::::0;::::1;::::0;26144:23;;26185:17:::1;26090:120::o:0;21883:252::-;21650:12;:10;:12::i;:::-;21640:6;;-1:-1:-1;;;;;21640:6:0;;;:22;;;21632:67;;;;;-1:-1:-1;;;21632:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;21632:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;21980:22:0;::::1;21972:73;;;;-1:-1:-1::0;;;21972:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22082:6;::::0;22061:38:::1;::::0;-1:-1:-1;;;;;22061:38:0;;::::1;::::0;22082:6:::1;::::0;22061:38:::1;::::0;22082:6:::1;::::0;22061:38:::1;22110:6;:17:::0;;-1:-1:-1;;;;;;22110:17:0::1;-1:-1:-1::0;;;;;22110:17:0;;;::::1;::::0;;;::::1;::::0;;21883:252::o;20591:61::-;20631:21;20591:61;:::o;1125:181::-;1183:7;1215:5;;;1239:6;;;;1231:46;;;;;-1:-1:-1;;;1231:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;16528:143;16598:4;16622:41;16627:3;-1:-1:-1;;;;;16647:14:0;;16622:4;:41::i;7917:318::-;8026:44;8053:4;8059:2;8063:6;8026:26;:44::i;:::-;-1:-1:-1;;;;;8087:18:0;;8083:145;;8182:4;;8153:25;8171:6;8153:13;:11;:13::i;:::-;:17;;:25::i;:::-;:33;;8145:71;;;;;-1:-1:-1;;;8145:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1658:250;1716:7;1740:6;1736:47;;-1:-1:-1;1770:1:0;1763:8;;1736:47;1807:5;;;1811:1;1807;:5;:1;1831:5;;;;;:10;1823:56;;;;-1:-1:-1;;;1823:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1916:132;1974:7;2001:39;2005:1;2008;2001:39;;;;;;;;;;;;;;;;;:3;:39::i;6247:378::-;-1:-1:-1;;;;;6331:21:0;;6323:65;;;;;-1:-1:-1;;;6323:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;6401:49;6430:1;6434:7;6443:6;6401:20;:49::i;:::-;6478:12;;:24;;6495:6;6478:16;:24::i;:::-;6463:12;:39;-1:-1:-1;;;;;6534:18:0;;:9;:18;;;;;;;;;;;:30;;6557:6;6534:22;:30::i;:::-;-1:-1:-1;;;;;6513:18:0;;:9;:18;;;;;;;;;;;:51;;;;6580:37;;;;;;;6513:18;;:9;;6580:37;;;;;;;;;;6247:378;;:::o;865:106::-;953:10;865:106;:::o;7059:346::-;-1:-1:-1;;;;;7161:19:0;;7153:68;;;;-1:-1:-1;;;7153:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7240:21:0;;7232:68;;;;-1:-1:-1;;;7232:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7313:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7365:32;;;;;;;;;;;;;;;;;7059:346;;;:::o;4866:321::-;4972:4;4989:36;4999:6;5007:9;5018:6;4989:9;:36::i;:::-;5036:121;5045:6;5053:12;:10;:12::i;:::-;5067:89;5105:6;5067:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5067:19:0;;;;;;:11;:19;;;;;;5087:12;:10;:12::i;:::-;-1:-1:-1;;;;;5067:33:0;;;;;;;;;;;;-1:-1:-1;5067:33:0;;;:89;:37;:89::i;20091:188::-;20165:12;;;;:6;:12;;;;;:33;;20190:7;20165:24;:33::i;:::-;20161:111;;;20247:12;:10;:12::i;:::-;-1:-1:-1;;;;;20220:40:0;20238:7;-1:-1:-1;;;;;20220:40:0;20232:4;20220:40;;;;;;;;;;20091:188;;:::o;20287:192::-;20362:12;;;;:6;:12;;;;;:36;;20390:7;20362:27;:36::i;:::-;20358:114;;;20447:12;:10;:12::i;:::-;-1:-1:-1;;;;;20420:40:0;20438:7;-1:-1:-1;;;;;20420:40:0;20432:4;20420:40;;;;;;;;;;20287:192;;:::o;14202:364::-;14311:4;14333:15;:2;-1:-1:-1;;;;;14333:13:0;;:15::i;:::-;14328:61;;-1:-1:-1;14372:5:0;14365:12;;14328:61;14399:13;14432:2;-1:-1:-1;;;;;14415:39:0;;14469:12;:10;:12::i;:::-;14483:4;14489:5;14496:4;14415:96;;;;;;;;;;;;;-1:-1:-1;;;;;14415:96:0;;;;;;-1:-1:-1;;;;;14415:96:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14415:96:0;-1:-1:-1;;;;;;14530:27:0;-1:-1:-1;;;14530:27:0;;-1:-1:-1;;14202:364:0;;;;;;:::o;6633:418::-;-1:-1:-1;;;;;6717:21:0;;6709:67;;;;-1:-1:-1;;;6709:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6789:49;6810:7;6827:1;6831:6;6789:20;:49::i;:::-;6872:68;6895:6;6872:68;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6872:18:0;;:9;:18;;;;;;;;;;;;:68;:22;:68::i;:::-;-1:-1:-1;;;;;6851:18:0;;:9;:18;;;;;;;;;;:89;6966:12;;:24;;6983:6;6966:16;:24::i;:::-;6951:12;:39;7006:37;;;;;;;;7032:1;;-1:-1:-1;;;;;7006:37:0;;;;;;;;;;;;6633:418;;:::o;1458:192::-;1544:7;1580:12;1572:6;;;;1564:29;;;;-1:-1:-1;;;1564:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1616:5:0;;;1458:192::o;17131:149::-;17205:7;17248:22;17252:3;17264:5;17248:3;:22::i;16838:158::-;16918:4;16942:46;16952:3;-1:-1:-1;;;;;16972:14:0;;16942:9;:46::i;4347:175::-;4433:4;4450:42;4460:12;:10;:12::i;:::-;4474:9;4485:6;4450:9;:42::i;1314:136::-;1372:7;1399:43;1403:1;1406;1399:43;;;;;;;;;;;;;;;;;:3;:43::i;17006:117::-;17069:7;17096:19;17104:3;17096:7;:19::i;14574:357::-;14673:4;14695:20;:7;-1:-1:-1;;;;;14695:18:0;;:20::i;:::-;14690:66;;-1:-1:-1;14739:5:0;14732:12;;14690:66;14766:13;14798:7;-1:-1:-1;;;;;14782:43:0;;14840:12;:10;:12::i;:::-;14854:5;14861:4;14782:94;;;;;;;;;;;;;-1:-1:-1;;;;;14782:94:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14782:94:0;-1:-1:-1;;;;;;14895:27:0;-1:-1:-1;;;14895:27:0;;-1:-1:-1;;14574:357:0;;;;;:::o;15074:291::-;15137:4;15159:21;15169:3;15174:5;15159:9;:21::i;:::-;15154:204;;-1:-1:-1;15197:23:0;;;;;;;;:11;:23;;;;;;;;;;;;;15257:18;;15235:19;;;:12;;;:19;;;;;;:40;;;;15290:11;;15154:204;-1:-1:-1;15341:5:0;15334:12;;2056:191;2142:7;2177:12;2170:5;2162:28;;;;-1:-1:-1;;;2162:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2201:9;2217:1;2213;:5;;;;;;;2056:191;-1:-1:-1;;;;;2056:191:0:o;26218:181::-;26347:44;26374:4;26380:2;26384:6;26347:26;:44::i;5700:539::-;-1:-1:-1;;;;;5806:20:0;;5798:70;;;;-1:-1:-1;;;5798:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5887:23:0;;5879:71;;;;-1:-1:-1;;;5879:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5963:47;5984:6;5992:9;6003:6;5963:20;:47::i;:::-;6043:71;6065:6;6043:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6043:17:0;;:9;:17;;;;;;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;6023:17:0;;;:9;:17;;;;;;;;;;;:91;;;;6148:20;;;;;;;:32;;6173:6;6148:24;:32::i;:::-;-1:-1:-1;;;;;6125:20:0;;;:9;:20;;;;;;;;;;;;:55;;;;6196:35;;;;;;;6125:20;;6196:35;;;;;;;;;;;;;5700:539;;;:::o;16681:149::-;16754:4;16778:44;16786:3;-1:-1:-1;;;;;16806:14:0;;16778:7;:44::i;2589:322::-;2649:4;2820:20;;2718:66;2860:23;;;;;;:42;;-1:-1:-1;;2887:15:0;;;2852:51;-1:-1:-1;;2589:322:0:o;16255:204::-;16350:18;;16322:7;;16350:26;-1:-1:-1;16342:73:0;;;;-1:-1:-1;;;16342:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16433:3;:11;;16445:5;16433:18;;;;;;;;;;;;;;;;16426:25;;16255:204;;;;:::o;15997:129::-;16070:4;16094:19;;;:12;;;;;:19;;;;;;:24;;;15997:129::o;16136:109::-;16219:18;;16136:109::o;15373:614::-;15439:4;15477:19;;;:12;;;:19;;;;;;15513:15;;15509:471;;15621:18;;-1:-1:-1;;15572:14:0;;;;15621:22;;;;15548:21;;15621:3;;:22;;15680;;;;;;;;;;;;;;15660:42;;15748:9;15719:3;:11;;15731:13;15719:26;;;;;;;;;;;;;;;;;;;:38;;;;15774:23;;;15816:1;15774:12;;;:23;;;;;;15800:17;;;15774:43;;15835:17;;15774:3;;15835:17;;;;;;;;;;;;;;;;;;;;;;15876:3;:12;;:19;15889:5;15876:19;;;;;;;;;;;15869:26;;;15919:4;15912:11;;;;;;;;15509:471;15963:5;15956:12;;;;
Swarm Source
ipfs://586c9f5a289c3646f693aed2b8012d91ca0e3a764cd675292fa0d08a2a979cbc
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.