Polygon Sponsored slots available. Book your slot here!
Overview
MATIC Balance
0 MATIC
MATIC Value
$0.00Token Holdings
More Info
Private Name Tags
ContractCreator:
Sponsored
Latest 25 from a total of 209,780 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Withdraw Game To... | 25554014 | 755 days ago | IN | 0 MATIC | 0.00123536 | ||||
Withdraw Game To... | 25554005 | 755 days ago | IN | 0 MATIC | 0.0012209 | ||||
Withdraw Game To... | 25553972 | 755 days ago | IN | 0 MATIC | 0.00136559 | ||||
Withdraw Game To... | 25553962 | 755 days ago | IN | 0 MATIC | 0.0013797 | ||||
Execute Meta Tra... | 25544373 | 756 days ago | IN | 0 MATIC | 0.00310963 | ||||
Execute Meta Tra... | 25541492 | 756 days ago | IN | 0 MATIC | 0.00335988 | ||||
Execute Meta Tra... | 25540126 | 756 days ago | IN | 0 MATIC | 0.00197322 | ||||
Execute Meta Tra... | 25539295 | 756 days ago | IN | 0 MATIC | 0.00197863 | ||||
Execute Meta Tra... | 25538705 | 756 days ago | IN | 0 MATIC | 0.00179831 | ||||
Execute Meta Tra... | 25538109 | 756 days ago | IN | 0 MATIC | 0.00198356 | ||||
Execute Meta Tra... | 25537937 | 756 days ago | IN | 0 MATIC | 0.00153263 | ||||
Execute Meta Tra... | 25537393 | 756 days ago | IN | 0 MATIC | 0.00183078 | ||||
Execute Meta Tra... | 25535976 | 756 days ago | IN | 0 MATIC | 0.00164025 | ||||
Execute Meta Tra... | 25535976 | 756 days ago | IN | 0 MATIC | 0.00164105 | ||||
Execute Meta Tra... | 25534631 | 756 days ago | IN | 0 MATIC | 0.00099311 | ||||
Execute Meta Tra... | 25534630 | 756 days ago | IN | 0 MATIC | 0.00149321 | ||||
Execute Meta Tra... | 25533917 | 756 days ago | IN | 0 MATIC | 0.00198356 | ||||
Execute Meta Tra... | 25531618 | 756 days ago | IN | 0 MATIC | 0.0019737 | ||||
Execute Meta Tra... | 25530844 | 756 days ago | IN | 0 MATIC | 0.00203037 | ||||
Execute Meta Tra... | 25529973 | 756 days ago | IN | 0 MATIC | 0.00174904 | ||||
Execute Meta Tra... | 25520399 | 756 days ago | IN | 0 MATIC | 0.00161523 | ||||
Execute Meta Tra... | 25516873 | 756 days ago | IN | 0 MATIC | 0.0017544 | ||||
Execute Meta Tra... | 25516165 | 756 days ago | IN | 0 MATIC | 0.00202544 | ||||
Execute Meta Tra... | 25512912 | 757 days ago | IN | 0 MATIC | 0.00332369 | ||||
Withdraw Game To... | 25512132 | 757 days ago | IN | 0 MATIC | 0.00138386 |
Loading...
Loading
Contract Name:
dgTreasury
Compiler Version
v0.7.4+commit.3f05b770
Contract Source Code (Solidity)
/** *Submitted for verification at polygonscan.com on 2021-06-10 */ // SPDX-License-Identifier: -- 🎲 -- pragma solidity ^0.7.4; 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) { require(b <= a, 'SafeMath: subtraction overflow'); 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) { require(b > 0, 'SafeMath: division by zero'); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b != 0, 'SafeMath: modulo by zero'); return a % b; } } interface ERC20Token { 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 HashChain { bytes32 public tail; function _setTail(bytes32 _tail) internal { tail = _tail; } function _consume(bytes32 _parent) internal { require( keccak256( abi.encodePacked(_parent) ) == tail, 'hash-chain: wrong parent' ); tail = _parent; } } contract AccessController { address public ceoAddress; address public workerAddress; bool public paused = false; // mapping (address => enumRoles) accessRoles; // multiple operators idea event CEOSet(address newCEO); event WorkerSet(address newWorker); event Paused(); event Unpaused(); constructor() { ceoAddress = msg.sender; workerAddress = msg.sender; emit CEOSet(ceoAddress); emit WorkerSet(workerAddress); } modifier onlyCEO() { require( msg.sender == ceoAddress, 'AccessControl: CEO access denied' ); _; } modifier onlyWorker() { require( msg.sender == workerAddress, 'AccessControl: worker access denied' ); _; } modifier whenNotPaused() { require( !paused, 'AccessControl: currently paused' ); _; } modifier whenPaused { require( paused, 'AccessControl: currenlty not paused' ); _; } function setCEO(address _newCEO) public onlyCEO { require( _newCEO != address(0x0), 'AccessControl: invalid CEO address' ); ceoAddress = _newCEO; emit CEOSet(ceoAddress); } function setWorker(address _newWorker) external { require( _newWorker != address(0x0), 'AccessControl: invalid worker address' ); require( msg.sender == ceoAddress || msg.sender == workerAddress, 'AccessControl: invalid worker address' ); workerAddress = _newWorker; emit WorkerSet(workerAddress); } function pause() external onlyWorker whenNotPaused { paused = true; emit Paused(); } function unpause() external onlyCEO whenPaused { paused = false; emit Unpaused(); } } contract EIP712Base { struct EIP712Domain { string name; string version; uint256 chainId; address verifyingContract; } bytes32 internal constant EIP712_DOMAIN_TYPEHASH = keccak256(bytes("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)")); bytes32 internal domainSeperator; constructor(string memory name, string memory version) { domainSeperator = keccak256(abi.encode( EIP712_DOMAIN_TYPEHASH, keccak256(bytes(name)), keccak256(bytes(version)), getChainID(), address(this) )); } function getChainID() internal pure returns (uint256 id) { assembly { id := 1 // set to Goerli for now, Mainnet later } } function getDomainSeperator() private view returns(bytes32) { return domainSeperator; } /** * Accept message hash and returns hash message in EIP712 compatible form * So that it can be used to recover signer from signature signed using EIP712 formatted data * https://eips.ethereum.org/EIPS/eip-712 * "\\x19" makes the encoding deterministic * "\\x01" is the version byte to make it compatible to EIP-191 */ function toTypedMessageHash(bytes32 messageHash) internal view returns(bytes32) { return keccak256(abi.encodePacked("\x19\x01", getDomainSeperator(), messageHash)); } } abstract contract EIP712MetaTransaction is EIP712Base { using SafeMath for uint256; bytes32 private constant META_TRANSACTION_TYPEHASH = keccak256( bytes( "MetaTransaction(uint256 nonce,address from,bytes functionSignature)" ) ); event MetaTransactionExecuted( address userAddress, address payable relayerAddress, bytes functionSignature ); mapping(address => uint256) internal nonces; /* * Meta transaction structure. * No point of including value field here as if user is doing value transfer then he has the funds to pay for gas * He should call the desired function directly in that case. */ struct MetaTransaction { uint256 nonce; address from; bytes functionSignature; } function executeMetaTransaction( address userAddress, bytes memory functionSignature, bytes32 sigR, bytes32 sigS, uint8 sigV ) public payable returns(bytes memory) { MetaTransaction memory metaTx = MetaTransaction( { nonce: nonces[userAddress], from: userAddress, functionSignature: functionSignature } ); require( verify( userAddress, metaTx, sigR, sigS, sigV ), "Signer and signature do not match" ); nonces[userAddress] = nonces[userAddress].add(1); // Append userAddress at the end to extract it from calling context (bool success, bytes memory returnData) = address(this).call( abi.encodePacked( functionSignature, userAddress ) ); require( success, 'Function call not successful' ); emit MetaTransactionExecuted( userAddress, msg.sender, functionSignature ); return returnData; } function hashMetaTransaction( MetaTransaction memory metaTx ) internal pure returns (bytes32) { return keccak256( abi.encode( META_TRANSACTION_TYPEHASH, metaTx.nonce, metaTx.from, keccak256(metaTx.functionSignature) ) ); } uint256 constant defaultTimeFrame = 12 hours; mapping(address => uint256) public enabledTill; mapping(address => uint256) public timeFrame; modifier onlyEnabledOrNewAccount(address _account) { require( isEnabled(_account) || enabledTill[_account] == 0, 'Treasury: disabled account!' ); _; } modifier onlyEnabledAccountStrict(address _account) { require( isEnabled(_account), 'Treasury: disabled account!' ); _; } function enableAccount( uint256 _sessionDuration ) external { _enableAccount( msgSender(), _sessionDuration ); } event AccountEnabled( address _user, uint256 _sessionDuration ); function _enableAccount( address _user, uint256 _sessionDuration ) internal { emit AccountEnabled( _user, _sessionDuration ); timeFrame[_user] = _sessionDuration; enabledTill[_user] = block.timestamp.add(timeFrame[_user]); } function getTimeFrame( address _account ) internal view returns (uint256) { return timeFrame[_account] > 0 ? timeFrame[_account] : defaultTimeFrame; } function isEnabled( address _account ) public view returns (bool) { return enabledTill[_account] > block.timestamp; } function getNonce( address user ) external view returns(uint256 nonce) { nonce = nonces[user]; } function verify( address user, MetaTransaction memory metaTx, bytes32 sigR, bytes32 sigS, uint8 sigV ) internal view returns (bool) { address signer = ecrecover( toTypedMessageHash( hashMetaTransaction(metaTx) ), sigV, sigR, sigS ); require( signer != address(0x0), 'Invalid signature' ); return signer == user; } function msgSender() internal view returns(address sender) { if(msg.sender == address(this)) { bytes memory array = msg.data; uint256 index = msg.data.length; assembly { // Load the 32 bytes word from memory with the address on the lower 20 bytes, and mask those. sender := and(mload(add(array, index)), 0xffffffffffffffffffffffffffffffffffffffff) } } else { sender = msg.sender; } return sender; } } contract TransferHelper { bytes4 private constant TRANSFER = bytes4( keccak256( bytes( 'transfer(address,uint256)' // 0xa9059cbb ) ) ); bytes4 private constant TRANSFER_FROM = bytes4( keccak256( bytes( 'transferFrom(address,address,uint256)' // 0x23b872dd ) ) ); function safeTransfer( address _token, address _to, uint256 _value ) internal { (bool success, bytes memory data) = _token.call( abi.encodeWithSelector( TRANSFER, // 0xa9059cbb _to, _value ) ); require( success && ( data.length == 0 || abi.decode( data, (bool) ) ), 'TransferHelper: TRANSFER_FAILED' ); } function safeTransferFrom( address _token, address _from, address _to, uint _value ) internal { (bool success, bytes memory data) = _token.call( abi.encodeWithSelector( TRANSFER_FROM, _from, _to, _value ) ); require( success && ( data.length == 0 || abi.decode( data, (bool) ) ), 'TransferHelper: TRANSFER_FROM_FAILED' ); } } contract GameController is AccessController { using SafeMath for uint256; enum GameStatus { Empty, Enabled, Disabled } struct Game { address gameAddress; string gameName; } struct GameSettings { uint8 index; GameStatus status; } Game[] public treasuryGames; mapping(address => GameSettings) public settings; mapping(uint8 => mapping(uint8 => uint256)) gameTokens; mapping(uint8 => mapping(uint8 => uint128)) maximumBet; modifier onlyDeclaredGame(uint8 _gameIndex) { require( settings[ treasuryGames[_gameIndex].gameAddress ].status != GameStatus.Empty, "Treasury: game is not declared!" ); _; } modifier onlyEnabledGame(uint8 _gameIndex) { require( settings[ treasuryGames[_gameIndex].gameAddress ].status == GameStatus.Enabled, "Treasury: game must be enabled!" ); _; } modifier onlyDisabledGame(uint8 _gameIndex) { require( settings[ treasuryGames[_gameIndex].gameAddress ].status == GameStatus.Disabled, "Treasury: game must be disabled!" ); _; } function addGame( address _newGameAddress, string calldata _newGameName, bool _isActive ) external onlyCEO { require( settings[_newGameAddress].status == GameStatus.Empty, 'Treasury: game already declared!' ); treasuryGames.push( Game( { gameAddress: _newGameAddress, gameName: _newGameName } ) ); settings[_newGameAddress].index = uint8(treasuryGames.length - 1); settings[_newGameAddress].status = _isActive == true ? GameStatus.Enabled : GameStatus.Disabled; } function getGameIndex( address _gameAddress ) internal view returns (uint8) { require( settings[_gameAddress].status != GameStatus.Empty, 'Treasury: game is not declared!' ); return settings[_gameAddress].index; } function updateGameAddress( uint8 _gameIndex, address _newGameAddress ) external onlyCEO onlyDeclaredGame(_gameIndex) { require( settings[_newGameAddress].status == GameStatus.Empty, 'Treasury: game with new address already declared!' ); settings[_newGameAddress] = settings[treasuryGames[_gameIndex].gameAddress]; delete settings[treasuryGames[_gameIndex].gameAddress]; treasuryGames[_gameIndex].gameAddress = _newGameAddress; } function updateGameName( uint8 _gameIndex, string calldata _newGameName ) external onlyCEO { treasuryGames[_gameIndex].gameName = _newGameName; } function enableGame( uint8 _gameIndex ) external onlyCEO onlyDisabledGame(_gameIndex) { settings[treasuryGames[_gameIndex].gameAddress].status = GameStatus.Enabled; } function disableGame( uint8 _gameIndex ) external onlyCEO onlyEnabledGame(_gameIndex) { settings[treasuryGames[_gameIndex].gameAddress].status = GameStatus.Disabled; } function addGameTokens( uint8 _gameIndex, uint8 _tokenIndex, uint256 _amount ) internal { gameTokens[_gameIndex][_tokenIndex] = gameTokens[_gameIndex][_tokenIndex].add(_amount); } function subGameTokens( uint8 _gameIndex, uint8 _tokenIndex, uint256 _amount ) internal { gameTokens[_gameIndex][_tokenIndex] = gameTokens[_gameIndex][_tokenIndex].sub(_amount); } } contract TokenController is AccessController { struct Token { address tokenAddress; string tokenName; } Token[] public treasuryTokens; function addToken( address _tokenAddress, string memory _tokenName ) public onlyCEO { treasuryTokens.push( Token( { tokenAddress: _tokenAddress, tokenName: _tokenName } ) ); } function getTokenInstance( uint8 _tokenIndex ) internal view returns (ERC20Token) { return ERC20Token(treasuryTokens[_tokenIndex].tokenAddress); } function getTokenAddress( uint8 _tokenIndex ) public view returns (address) { return treasuryTokens[_tokenIndex].tokenAddress; } function getTokenName( uint8 _tokenIndex ) external view returns (string memory) { return treasuryTokens[_tokenIndex].tokenName; } function updateTokenAddress( uint8 _tokenIndex, address _newTokenAddress ) external onlyCEO { treasuryTokens[_tokenIndex].tokenAddress = _newTokenAddress; } function updateTokenName( uint8 _tokenIndex, string calldata _newTokenName ) external onlyCEO { treasuryTokens[_tokenIndex].tokenName = _newTokenName; } function deleteToken( uint8 _tokenIndex ) external onlyCEO { ERC20Token token = getTokenInstance( _tokenIndex ); require( token.balanceOf(address(this)) == 0, 'TokenController: balance detected' ); delete treasuryTokens[_tokenIndex]; } } contract dgTreasury is GameController, TokenController, HashChain, TransferHelper, EIP712MetaTransaction { using SafeMath for uint256; constructor( address _defaultTokenAddress, string memory _defaultTokenName ) EIP712Base('Treasury', 'v4.0') { addToken( _defaultTokenAddress, _defaultTokenName ); } function disableAccount( address _account ) external onlyWorker { enabledTill[_account] = block.timestamp; } function tokenInboundTransfer( uint8 _tokenIndex, address _from, uint256 _amount ) external onlyEnabledOrNewAccount(_from) returns (bool) { uint8 _gameIndex = getGameIndex(msg.sender); address _token = getTokenAddress(_tokenIndex); addGameTokens( _gameIndex, _tokenIndex, _amount ); safeTransferFrom( _token, _from, address(this), _amount ); enabledTill[_from] = block.timestamp.add(getTimeFrame(msg.sender)); return true; } function tokenOutboundTransfer( uint8 _tokenIndex, address _to, uint256 _amount ) external onlyEnabledAccountStrict(_to) returns (bool) { uint8 _gameIndex = getGameIndex(msg.sender); address _token = getTokenAddress(_tokenIndex); subGameTokens( _gameIndex, _tokenIndex, _amount ); safeTransfer( _token, _to, _amount ); return true; } function setMaximumBet( uint8 _gameIndex, uint8 _tokenIndex, uint128 _maximumBet ) external onlyCEO onlyDeclaredGame(_gameIndex) { maximumBet[_gameIndex][_tokenIndex] = _maximumBet; } function gameMaximumBet( uint8 _gameIndex, uint8 _tokenIndex ) external view onlyDeclaredGame(_gameIndex) returns (uint256) { return maximumBet[_gameIndex][_tokenIndex]; } function getMaximumBet( uint8 _tokenIndex ) external view returns (uint128) { uint8 _gameIndex = getGameIndex(msg.sender); return maximumBet[_gameIndex][_tokenIndex]; } function deleteGame( uint8 _gameIndex ) public onlyCEO { for (uint8 _tokenIndex = 0; _tokenIndex < treasuryTokens.length; _tokenIndex++) { _withdrawGameTokens( _gameIndex, _tokenIndex, gameTokens[_gameIndex][_tokenIndex] ); gameTokens[_gameIndex][_tokenIndex] = 0; maximumBet[_gameIndex][_tokenIndex] = 0; } delete treasuryGames[_gameIndex]; } function checkApproval( address _userAddress, uint8 _tokenIndex ) external view returns (uint256) { return getTokenInstance(_tokenIndex).allowance( _userAddress, address(this) ); } receive() external payable { revert(); } function addFunds( uint8 _gameIndex, uint8 _tokenIndex, uint256 _tokenAmount ) external { require( _gameIndex < treasuryGames.length, 'Treasury: unregistered gameIndex' ); require( _tokenIndex < treasuryTokens.length, 'Treasury: unregistered tokenIndex' ); ERC20Token token = getTokenInstance( _tokenIndex ); addGameTokens( _gameIndex, _tokenIndex, _tokenAmount ); token.transferFrom( msg.sender, address(this), _tokenAmount ); } function checkAllocatedTokens( uint8 _tokenIndex ) external view returns (uint256) { uint8 _gameIndex = getGameIndex(msg.sender); return _checkAllocatedTokens( _gameIndex, _tokenIndex ); } function _checkAllocatedTokens( uint8 _gameIndex, uint8 _tokenIndex ) internal view returns (uint256) { return gameTokens[_gameIndex][_tokenIndex]; } function checkGameTokens( uint8 _gameIndex, uint8 _tokenIndex ) external view returns (uint256) { return _checkAllocatedTokens( _gameIndex, _tokenIndex ); } function _withdrawGameTokens( uint8 _gameIndex, uint8 _tokenIndex, uint256 _amount ) internal { ERC20Token token = getTokenInstance( _tokenIndex ); subGameTokens( _gameIndex, _tokenIndex, _amount ); token.transfer( ceoAddress, _amount ); } function withdrawGameTokens( uint8 _gameIndex, uint8 _tokenIndex, uint256 _amount ) external onlyCEO { _withdrawGameTokens( _gameIndex, _tokenIndex, _amount ); } function withdrawTreasuryTokens( uint8 _tokenIndex ) public onlyCEO { ERC20Token token = getTokenInstance( _tokenIndex ); uint256 amount = token.balanceOf( address(this) ); for (uint256 i = 0; i < treasuryGames.length; i++) { uint8 _gameIndex = settings[treasuryGames[i].gameAddress].index; gameTokens[_gameIndex][_tokenIndex] = 0; } token.transfer( ceoAddress, amount ); } function setTail( bytes32 _tail ) external onlyCEO { _setTail(_tail); } function consumeHash( bytes32 _localhash ) external returns (bool) { require( settings[msg.sender].status == GameStatus.Enabled, 'Treasury: active-game not present' ); _consume(_localhash); return true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_defaultTokenAddress","type":"address"},{"internalType":"string","name":"_defaultTokenName","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_user","type":"address"},{"indexed":false,"internalType":"uint256","name":"_sessionDuration","type":"uint256"}],"name":"AccountEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newCEO","type":"address"}],"name":"CEOSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"userAddress","type":"address"},{"indexed":false,"internalType":"address payable","name":"relayerAddress","type":"address"},{"indexed":false,"internalType":"bytes","name":"functionSignature","type":"bytes"}],"name":"MetaTransactionExecuted","type":"event"},{"anonymous":false,"inputs":[],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newWorker","type":"address"}],"name":"WorkerSet","type":"event"},{"inputs":[{"internalType":"uint8","name":"_gameIndex","type":"uint8"},{"internalType":"uint8","name":"_tokenIndex","type":"uint8"},{"internalType":"uint256","name":"_tokenAmount","type":"uint256"}],"name":"addFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newGameAddress","type":"address"},{"internalType":"string","name":"_newGameName","type":"string"},{"internalType":"bool","name":"_isActive","type":"bool"}],"name":"addGame","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"},{"internalType":"string","name":"_tokenName","type":"string"}],"name":"addToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ceoAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"_tokenIndex","type":"uint8"}],"name":"checkAllocatedTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_userAddress","type":"address"},{"internalType":"uint8","name":"_tokenIndex","type":"uint8"}],"name":"checkApproval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"_gameIndex","type":"uint8"},{"internalType":"uint8","name":"_tokenIndex","type":"uint8"}],"name":"checkGameTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_localhash","type":"bytes32"}],"name":"consumeHash","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_gameIndex","type":"uint8"}],"name":"deleteGame","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_tokenIndex","type":"uint8"}],"name":"deleteToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"disableAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_gameIndex","type":"uint8"}],"name":"disableGame","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sessionDuration","type":"uint256"}],"name":"enableAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_gameIndex","type":"uint8"}],"name":"enableGame","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"enabledTill","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"bytes","name":"functionSignature","type":"bytes"},{"internalType":"bytes32","name":"sigR","type":"bytes32"},{"internalType":"bytes32","name":"sigS","type":"bytes32"},{"internalType":"uint8","name":"sigV","type":"uint8"}],"name":"executeMetaTransaction","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_gameIndex","type":"uint8"},{"internalType":"uint8","name":"_tokenIndex","type":"uint8"}],"name":"gameMaximumBet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"_tokenIndex","type":"uint8"}],"name":"getMaximumBet","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getNonce","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"_tokenIndex","type":"uint8"}],"name":"getTokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"_tokenIndex","type":"uint8"}],"name":"getTokenName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"isEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"_newCEO","type":"address"}],"name":"setCEO","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_gameIndex","type":"uint8"},{"internalType":"uint8","name":"_tokenIndex","type":"uint8"},{"internalType":"uint128","name":"_maximumBet","type":"uint128"}],"name":"setMaximumBet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_tail","type":"bytes32"}],"name":"setTail","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWorker","type":"address"}],"name":"setWorker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"settings","outputs":[{"internalType":"uint8","name":"index","type":"uint8"},{"internalType":"enum GameController.GameStatus","name":"status","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tail","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"timeFrame","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"_tokenIndex","type":"uint8"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"tokenInboundTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_tokenIndex","type":"uint8"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"tokenOutboundTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"treasuryGames","outputs":[{"internalType":"address","name":"gameAddress","type":"address"},{"internalType":"string","name":"gameName","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"treasuryTokens","outputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"string","name":"tokenName","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_gameIndex","type":"uint8"},{"internalType":"address","name":"_newGameAddress","type":"address"}],"name":"updateGameAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_gameIndex","type":"uint8"},{"internalType":"string","name":"_newGameName","type":"string"}],"name":"updateGameName","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_tokenIndex","type":"uint8"},{"internalType":"address","name":"_newTokenAddress","type":"address"}],"name":"updateTokenAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_tokenIndex","type":"uint8"},{"internalType":"string","name":"_newTokenName","type":"string"}],"name":"updateTokenName","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_gameIndex","type":"uint8"},{"internalType":"uint8","name":"_tokenIndex","type":"uint8"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawGameTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_tokenIndex","type":"uint8"}],"name":"withdrawTreasuryTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"workerAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526001805460ff60a01b191690553480156200001e57600080fd5b5060405162003cc538038062003cc5833981810160405260408110156200004457600080fd5b8151602083018051604051929492938301929190846401000000008211156200006c57600080fd5b9083019060208201858111156200008257600080fd5b82516401000000008111828201881017156200009d57600080fd5b82525081516020918201929091019080838360005b83811015620000cc578181015183820152602001620000b2565b50505050905090810190601f168015620000fa5780820380516001836020036101000a031916815260200191505b50604081810181526008825267547265617375727960c01b602080840191909152815180830183526004815263076342e360e41b8183015260008054336001600160a01b03199182168117928390556001805490921617905583516001600160a01b039091168152925193965094507ff97cbb4246b709036319093e5ff31674b9f6759076d153e1bea1f60392170fc09350908290030190a1600154604080516001600160a01b039092168252517f54841e992da2f7bcaa3127409f02e1849c79072740593c398d6670f65f995fa79181900360200190a160405180608001604052806052815260200162003c73605291398051906020012082805190602001208280519060200120620002136200026e60201b60201c565b6040805160208082019690965280820194909452606084019290925260808301523060a0808401919091528151808403909101815260c09092019052805191012060085550620002669050828262000273565b50506200042c565b600190565b6000546001600160a01b03163314620002d3576040805162461bcd60e51b815260206004820181905260248201527f416363657373436f6e74726f6c3a2043454f206163636573732064656e696564604482015290519081900360640190fd5b604080518082019091526001600160a01b03838116825260208083018481526006805460018101825560009190915284517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f600290920291820180546001600160a01b031916919095161784559051805162000379937ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4090930192919091019062000380565b5050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620003b8576000855562000403565b82601f10620003d357805160ff191683800117855562000403565b8280016001018555821562000403579182015b8281111562000403578251825591602001919060010190620003e6565b506200041192915062000415565b5090565b5b8082111562000411576000815560010162000416565b613837806200043c6000396000f3fe6080604052600436106102605760003560e01c806370b5e63611610144578063c2c9a884116100b6578063e2373ab31161007a578063e2373ab314610c8b578063e99405cc14610ce9578063f010b54114610d16578063f342336f14610d43578063f887cf0014610d80578063f8ce7b4b14610dbc5761026a565b8063c2c9a88414610b98578063c70620b514610bc5578063c7646ebb14610bf2578063cbd88f4814610c39578063d845317214610c4e5761026a565b80638c79ba3a116101085780638c79ba3a14610a615780639015d37114610a945780639122c23914610ac7578063a3a8df9514610af4578063ae260ac014610b30578063c26f6d4414610b655761026a565b806370b5e6361461092257806371da23e9146109af5780637749bc11146109f85780637cb8e8cd14610a225780638456cb5914610a4c5761026a565b806331297992116101dd5780635ad3f918116101a15780635ad3f918146108235780635c975abb146108505780636431930f1461086557806365afb44f1461089857806365f6517a146108c25780636ca489fb146108f55761026a565b806331297992146106b557806332b4a5941461070b5780633de6f379146107905780633f4ba83a146107cc57806341d4c74f146107e15761026a565b806313d8c8401161022457806313d8c8401461053d57806327d7874c146105645780632c613a14146105975780632c8da560146105c15780632d0335ab146106825761026a565b8063082622171461026f5780630a0f8168146103215780630c53c51c146103525780630e363e3b146104895780630ea4a4fa146105105761026a565b3661026a57600080fd5b600080fd5b34801561027b57600080fd5b506102996004803603602081101561029257600080fd5b5035610df1565b60405180836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156102e55781810151838201526020016102cd565b50505050905090810190601f1680156103125780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34801561032d57600080fd5b50610336610eb6565b604080516001600160a01b039092168252519081900360200190f35b610414600480360360a081101561036857600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561039257600080fd5b8201836020820111156103a457600080fd5b803590602001918460018302840111600160201b831117156103c557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550508235935050506020810135906040013560ff16610ec5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561044e578181015183820152602001610436565b50505050905090810190601f16801561047b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561049557600080fd5b5061050e600480360360408110156104ac57600080fd5b60ff8235169190810190604081016020820135600160201b8111156104d057600080fd5b8201836020820111156104e257600080fd5b803590602001918460018302840111600160201b8311171561050357600080fd5b5090925090506111d2565b005b34801561051c57600080fd5b5061050e6004803603602081101561053357600080fd5b503560ff16611255565b34801561054957600080fd5b5061055261139f565b60408051918252519081900360200190f35b34801561057057600080fd5b5061050e6004803603602081101561058757600080fd5b50356001600160a01b03166113a5565b3480156105a357600080fd5b50610299600480360360208110156105ba57600080fd5b5035611491565b3480156105cd57600080fd5b5061050e600480360360408110156105e457600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561060e57600080fd5b82018360208201111561062057600080fd5b803590602001918460018302840111600160201b8311171561064157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506114a1945050505050565b34801561068e57600080fd5b50610552600480360360208110156106a557600080fd5b50356001600160a01b0316611599565b3480156106c157600080fd5b506106f7600480360360608110156106d857600080fd5b5060ff813516906001600160a01b0360208201351690604001356115b4565b604080519115158252519081900360200190f35b34801561071757600080fd5b5061050e6004803603604081101561072e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561075257600080fd5b82018360208201111561076457600080fd5b803590602001918460018302840111600160201b8311171561078557600080fd5b50909250905061164e565b34801561079c57600080fd5b5061050e600480360360408110156107b357600080fd5b50803560ff1690602001356001600160a01b03166116ad565b3480156107d857600080fd5b5061050e61173d565b3480156107ed57600080fd5b506106f76004803603606081101561080457600080fd5b5060ff813516906001600160a01b03602082013516906040013561180a565b34801561082f57600080fd5b506103366004803603602081101561084657600080fd5b503560ff166118f3565b34801561085c57600080fd5b506106f7611925565b34801561087157600080fd5b506105526004803603602081101561088857600080fd5b50356001600160a01b0316611935565b3480156108a457600080fd5b506106f7600480360360208110156108bb57600080fd5b5035611947565b3480156108ce57600080fd5b50610552600480360360208110156108e557600080fd5b50356001600160a01b03166119bb565b34801561090157600080fd5b506104146004803603602081101561091857600080fd5b503560ff166119cd565b34801561092e57600080fd5b5061050e6004803603606081101561094557600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561096f57600080fd5b82018360208201111561098157600080fd5b803590602001918460018302840111600160201b831117156109a257600080fd5b9193509150351515611a90565b3480156109bb57600080fd5b506109dc600480360360208110156109d257600080fd5b503560ff16611c82565b604080516001600160801b039092168252519081900360200190f35b348015610a0457600080fd5b5061050e60048036036020811015610a1b57600080fd5b5035611cbf565b348015610a2e57600080fd5b5061050e60048036036020811015610a4557600080fd5b5035611d18565b348015610a5857600080fd5b5061050e611d29565b348015610a6d57600080fd5b5061050e60048036036020811015610a8457600080fd5b50356001600160a01b0316611e0f565b348015610aa057600080fd5b506106f760048036036020811015610ab757600080fd5b50356001600160a01b0316611e74565b348015610ad357600080fd5b5061050e60048036036020811015610aea57600080fd5b503560ff16611e91565b348015610b0057600080fd5b5061050e60048036036040811015610b1757600080fd5b50803560ff1690602001356001600160a01b0316612059565b348015610b3c57600080fd5b5061055260048036036040811015610b5357600080fd5b5060ff813581169160200135166122b8565b348015610b7157600080fd5b5061050e60048036036020811015610b8857600080fd5b50356001600160a01b031661237d565b348015610ba457600080fd5b5061050e60048036036020811015610bbb57600080fd5b503560ff1661247a565b348015610bd157600080fd5b5061055260048036036020811015610be857600080fd5b503560ff166125cf565b348015610bfe57600080fd5b5061050e60048036036060811015610c1557600080fd5b50803560ff90811691602081013590911690604001356001600160801b03166125ee565b348015610c4557600080fd5b50610336612712565b348015610c5a57600080fd5b5061050e60048036036060811015610c7157600080fd5b5060ff813581169160208101359091169060400135612721565b348015610c9757600080fd5b50610cbe60048036036020811015610cae57600080fd5b50356001600160a01b031661285c565b604051808360ff168152602001826002811115610cd757fe5b81526020019250505060405180910390f35b348015610cf557600080fd5b5061050e60048036036020811015610d0c57600080fd5b503560ff1661287a565b348015610d2257600080fd5b5061050e60048036036020811015610d3957600080fd5b503560ff16612993565b348015610d4f57600080fd5b5061050e60048036036060811015610d6657600080fd5b5060ff813581169160208101359091169060400135612a9b565b348015610d8c57600080fd5b5061055260048036036040811015610da357600080fd5b5080356001600160a01b0316906020013560ff16612af3565b348015610dc857600080fd5b5061055260048036036040811015610ddf57600080fd5b5060ff81358116916020013516612b8e565b60028181548110610e0157600080fd5b600091825260209182902060029182020180546001808301805460408051601f600019958416156101000295909501909216969096049283018790048702810187019095528185526001600160a01b0390921695509193909190830182828015610eac5780601f10610e8157610100808354040283529160200191610eac565b820191906000526020600020905b815481529060010190602001808311610e8f57829003601f168201915b5050505050905082565b6000546001600160a01b031681565b6060610ecf613468565b50604080516060810182526001600160a01b03881660008181526009602090815290849020548352820152908101869052610f0d8782878787612b9a565b610f485760405162461bcd60e51b815260040180806020018281038252602181526020018061377a6021913960400191505060405180910390fd5b6001600160a01b038716600090815260096020526040902054610f6c906001612c84565b60096000896001600160a01b03166001600160a01b031681526020019081526020016000208190555060006060306001600160a01b0316888a6040516020018083805190602001908083835b60208310610fd75780518252601f199092019160209182019101610fb8565b6001836020036101000a038019825116818451168082178552505050505050905001826001600160a01b031660601b8152601401925050506040516020818303038152906040526040518082805190602001908083835b6020831061104d5780518252601f19909201916020918201910161102e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146110af576040519150601f19603f3d011682016040523d82523d6000602084013e6110b4565b606091505b50915091508161110b576040805162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c00000000604482015290519081900360640190fd5b7f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b89338a60405180846001600160a01b03168152602001836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561118a578181015183820152602001611172565b50505050905090810190601f1680156111b75780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a198975050505050505050565b6000546001600160a01b0316331461121f576040805162461bcd60e51b815260206004820181905260248201526000805160206136d3833981519152604482015290519081900360640190fd5b818160028560ff168154811061123157fe5b9060005260206000209060020201600101919061124f929190613492565b50505050565b6000546001600160a01b031633146112a2576040805162461bcd60e51b815260206004820181905260248201526000805160206136d3833981519152604482015290519081900360640190fd5b60006112ad826118f3565b9050806001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156112fc57600080fd5b505afa158015611310573d6000803e3d6000fd5b505050506040513d602081101561132657600080fd5b5051156113645760405162461bcd60e51b81526004018080602001828103825260218152602001806137596021913960400191505060405180910390fd5b60068260ff168154811061137457fe5b60009182526020822060029091020180546001600160a01b03191681559061124f600183018261351e565b60075481565b6000546001600160a01b031633146113f2576040805162461bcd60e51b815260206004820181905260248201526000805160206136d3833981519152604482015290519081900360640190fd5b6001600160a01b0381166114375760405162461bcd60e51b81526004018080602001828103825260228152602001806136f36022913960400191505060405180910390fd5b600080546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517ff97cbb4246b709036319093e5ff31674b9f6759076d153e1bea1f60392170fc0916020908290030190a150565b60068181548110610e0157600080fd5b6000546001600160a01b031633146114ee576040805162461bcd60e51b815260206004820181905260248201526000805160206136d3833981519152604482015290519081900360640190fd5b604080518082019091526001600160a01b03838116825260208083018481526006805460018101825560009190915284517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f600290920291820180546001600160a01b0319169190951617845590518051611592937ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d40909301929190910190613562565b5050505050565b6001600160a01b031660009081526009602052604090205490565b6000826115c081611e74565b611611576040805162461bcd60e51b815260206004820152601b60248201527f54726561737572793a2064697361626c6564206163636f756e74210000000000604482015290519081900360640190fd5b600061161c33612cde565b90506000611629876118f3565b9050611636828887612d6d565b611641818787612dc2565b5060019695505050505050565b6000546001600160a01b0316331461169b576040805162461bcd60e51b815260206004820181905260248201526000805160206136d3833981519152604482015290519081900360640190fd5b818160068560ff168154811061123157fe5b6000546001600160a01b031633146116fa576040805162461bcd60e51b815260206004820181905260248201526000805160206136d3833981519152604482015290519081900360640190fd5b8060068360ff168154811061170b57fe5b6000918252602090912060029091020180546001600160a01b0319166001600160a01b03929092169190911790555050565b6000546001600160a01b0316331461178a576040805162461bcd60e51b815260206004820181905260248201526000805160206136d3833981519152604482015290519081900360640190fd5b600154600160a01b900460ff166117d25760405162461bcd60e51b81526004018080602001828103825260238152602001806137bb6023913960400191505060405180910390fd5b6001805460ff60a01b191690556040517fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d1693390600090a1565b60008261181681611e74565b8061183757506001600160a01b0381166000908152600a6020526040902054155b611888576040805162461bcd60e51b815260206004820152601b60248201527f54726561737572793a2064697361626c6564206163636f756e74210000000000604482015290519081900360640190fd5b600061189333612cde565b905060006118a0876118f3565b90506118ad828887612f55565b6118b981873088612f7f565b6118cc6118c5336130fc565b4290612c84565b6001600160a01b0387166000908152600a6020526040902055506001925050509392505050565b600060068260ff168154811061190557fe5b60009182526020909120600290910201546001600160a01b031692915050565b600154600160a01b900460ff1681565b600b6020526000908152604090205481565b6000600133600090815260036020526040902054610100900460ff16600281111561196e57fe5b146119aa5760405162461bcd60e51b81526004018080602001828103825260218152602001806137386021913960400191505060405180910390fd5b6119b382613141565b506001919050565b600a6020526000908152604090205481565b606060068260ff16815481106119df57fe5b90600052602060002090600202016001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a845780601f10611a5957610100808354040283529160200191611a84565b820191906000526020600020905b815481529060010190602001808311611a6757829003601f168201915b50505050509050919050565b6000546001600160a01b03163314611add576040805162461bcd60e51b815260206004820181905260248201526000805160206136d3833981519152604482015290519081900360640190fd5b60006001600160a01b038516600090815260036020526040902054610100900460ff166002811115611b0b57fe5b14611b5d576040805162461bcd60e51b815260206004820181905260248201527f54726561737572793a2067616d6520616c7265616479206465636c6172656421604482015290519081900360640190fd5b60026040518060400160405280866001600160a01b0316815260200185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250939094525050835460018082018655948252602091829020845160029092020180546001600160a01b0319166001600160a01b0390921691909117815583820151805194959194611c029450918501920190613562565b50506002546001600160a01b0386166000908152600360205260409020805460ff191660001990920160ff1691909117905550801515600114611c46576002611c49565b60015b6001600160a01b0385166000908152600360205260409020805461ff001916610100836002811115611c7757fe5b021790555050505050565b600080611c8e33612cde565b60ff9081166000908152600560209081526040808320938716835292905220546001600160801b0316915050919050565b6000546001600160a01b03163314611d0c576040805162461bcd60e51b815260206004820181905260248201526000805160206136d3833981519152604482015290519081900360640190fd5b611d15816131b6565b50565b611d15611d236131bb565b82613219565b6001546001600160a01b03163314611d725760405162461bcd60e51b81526004018080602001828103825260238152602001806137156023913960400191505060405180910390fd5b600154600160a01b900460ff1615611dd1576040805162461bcd60e51b815260206004820152601f60248201527f416363657373436f6e74726f6c3a2063757272656e746c792070617573656400604482015290519081900360640190fd5b6001805460ff60a01b1916600160a01b1790556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a1565b6001546001600160a01b03163314611e585760405162461bcd60e51b81526004018080602001828103825260238152602001806137156023913960400191505060405180910390fd5b6001600160a01b03166000908152600a60205260409020429055565b6001600160a01b03166000908152600a6020526040902054421090565b6000546001600160a01b03163314611ede576040805162461bcd60e51b815260206004820181905260248201526000805160206136d3833981519152604482015290519081900360640190fd5b6000611ee9826118f3565b90506000816001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611f3a57600080fd5b505afa158015611f4e573d6000803e3d6000fd5b505050506040513d6020811015611f6457600080fd5b5051905060005b600254811015611fd75760006003600060028481548110611f8857fe5b600091825260208083206002909202909101546001600160a01b0316835282810193909352604091820181205460ff908116825260048452828220908916825290925281205550600101611f6b565b50600080546040805163a9059cbb60e01b81526001600160a01b0392831660048201526024810185905290519185169263a9059cbb926044808401936020939083900390910190829087803b15801561202f57600080fd5b505af1158015612043573d6000803e3d6000fd5b505050506040513d602081101561159257600080fd5b6000546001600160a01b031633146120a6576040805162461bcd60e51b815260206004820181905260248201526000805160206136d3833981519152604482015290519081900360640190fd5b8160006003600060028460ff16815481106120bd57fe5b60009182526020808320600292830201546001600160a01b031684528301939093526040909101902054610100900460ff16908111156120f957fe5b141561213a576040805162461bcd60e51b815260206004820152601f602482015260008051602061379b833981519152604482015290519081900360640190fd5b60006001600160a01b038316600090815260036020526040902054610100900460ff16600281111561216857fe5b146121a45760405162461bcd60e51b81526004018080602001828103825260318152602001806136a26031913960400191505060405180910390fd5b6003600060028560ff16815481106121b857fe5b60009182526020808320600292830201546001600160a01b03908116855284820195909552604093840183209487168352600390529190208254815460ff191660ff91821617808355845492936101009384900490921692849261ff001990921691849081111561222557fe5b02179055509050506003600060028560ff168154811061224157fe5b60009182526020808320600292830201546001600160a01b0316845283019390935260409091019020805461ffff19169055805483919060ff861690811061228557fe5b6000918252602090912060029091020180546001600160a01b0319166001600160a01b0392909216919091179055505050565b600082816003600060028460ff16815481106122d057fe5b60009182526020808320600292830201546001600160a01b031684528301939093526040909101902054610100900460ff169081111561230c57fe5b141561234d576040805162461bcd60e51b815260206004820152601f602482015260008051602061379b833981519152604482015290519081900360640190fd5b505060ff91821660009081526005602090815260408083209390941682529190915220546001600160801b031690565b6001600160a01b0381166123c25760405162461bcd60e51b81526004018080602001828103825260258152602001806135f46025913960400191505060405180910390fd5b6000546001600160a01b03163314806123e557506001546001600160a01b031633145b6124205760405162461bcd60e51b81526004018080602001828103825260258152602001806135f46025913960400191505060405180910390fd5b600180546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f54841e992da2f7bcaa3127409f02e1849c79072740593c398d6670f65f995fa7916020908290030190a150565b6000546001600160a01b031633146124c7576040805162461bcd60e51b815260206004820181905260248201526000805160206136d3833981519152604482015290519081900360640190fd5b8060026003600060028460ff16815481106124de57fe5b60009182526020808320600292830201546001600160a01b031684528301939093526040909101902054610100900460ff169081111561251a57fe5b1461256c576040805162461bcd60e51b815260206004820181905260248201527f54726561737572793a2067616d65206d7573742062652064697361626c656421604482015290519081900360640190fd5b60016003600060028560ff168154811061258257fe5b60009182526020808320600292830201546001600160a01b03168452830193909352604090910190208054909161ff0019909116906101009084908111156125c657fe5b02179055505050565b6000806125db33612cde565b90506125e781846132a2565b9392505050565b6000546001600160a01b0316331461263b576040805162461bcd60e51b815260206004820181905260248201526000805160206136d3833981519152604482015290519081900360640190fd5b8260006003600060028460ff168154811061265257fe5b60009182526020808320600292830201546001600160a01b031684528301939093526040909101902054610100900460ff169081111561268e57fe5b14156126cf576040805162461bcd60e51b815260206004820152601f602482015260008051602061379b833981519152604482015290519081900360640190fd5b5060ff92831660009081526005602090815260408083209490951682529290925291902080546001600160801b0319166001600160801b03909216919091179055565b6001546001600160a01b031681565b60025460ff84161061277a576040805162461bcd60e51b815260206004820181905260248201527f54726561737572793a20756e726567697374657265642067616d65496e646578604482015290519081900360640190fd5b60065460ff8316106127bd5760405162461bcd60e51b81526004018080602001828103825260218152602001806136196021913960400191505060405180910390fd5b60006127c8836118f3565b90506127d5848484612f55565b604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b038316916323b872dd9160648083019260209291908290030181600087803b15801561282a57600080fd5b505af115801561283e573d6000803e3d6000fd5b505050506040513d602081101561285457600080fd5b505050505050565b60036020526000908152604090205460ff8082169161010090041682565b6000546001600160a01b031633146128c7576040805162461bcd60e51b815260206004820181905260248201526000805160206136d3833981519152604482015290519081900360640190fd5b60005b60065460ff821610156129525760ff80831660009081526004602090815260408083209385168352929052205461290490839083906132c7565b60ff80831660008181526004602090815260408083209486168084529482528083208390559282526005815282822093825292909252902080546001600160801b03191690556001016128ca565b5060028160ff168154811061296357fe5b60009182526020822060029091020180546001600160a01b03191681559061298e600183018261351e565b505050565b6000546001600160a01b031633146129e0576040805162461bcd60e51b815260206004820181905260248201526000805160206136d3833981519152604482015290519081900360640190fd5b8060016003600060028460ff16815481106129f757fe5b60009182526020808320600292830201546001600160a01b031684528301939093526040909101902054610100900460ff1690811115612a3357fe5b14612a85576040805162461bcd60e51b815260206004820152601f60248201527f54726561737572793a2067616d65206d75737420626520656e61626c65642100604482015290519081900360640190fd5b60026003600060028560ff168154811061258257fe5b6000546001600160a01b03163314612ae8576040805162461bcd60e51b815260206004820181905260248201526000805160206136d3833981519152604482015290519081900360640190fd5b61298e8383836132c7565b6000612afe826118f3565b6001600160a01b031663dd62ed3e84306040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b031681526020019250505060206040518083038186803b158015612b5b57600080fd5b505afa158015612b6f573d6000803e3d6000fd5b505050506040513d6020811015612b8557600080fd5b50519392505050565b60006125e783836132a2565b6000806001612bb0612bab88613336565b6133b9565b84878760405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612c07573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612c63576040805162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b604482015290519081900360640190fd5b866001600160a01b0316816001600160a01b03161491505095945050505050565b6000828201838110156125e7576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000806001600160a01b038316600090815260036020526040902054610100900460ff166002811115612d0d57fe5b1415612d4e576040805162461bcd60e51b815260206004820152601f602482015260008051602061379b833981519152604482015290519081900360640190fd5b506001600160a01b031660009081526003602052604090205460ff1690565b60ff808416600090815260046020908152604080832093861683529290522054612d979082613405565b60ff938416600090815260046020908152604080832095909616825293909352929091209190915550565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b1781529251815160009460609489169392918291908083835b60208310612e6f5780518252601f199092019160209182019101612e50565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612ed1576040519150601f19603f3d011682016040523d82523d6000602084013e612ed6565b606091505b5091509150818015612f04575080511580612f045750808060200190516020811015612f0157600080fd5b50515b611592576040805162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b60ff808416600090815260046020908152604080832093861683529290522054612d979082612c84565b60006060856001600160a01b031660405180606001604052806025815260200161363a602591398051602091820120604080516001600160a01b03808b166024830152891660448201526064808201899052825180830390910181526084909101825292830180516001600160e01b03166001600160e01b0319909316929092178252518251909182918083835b6020831061302c5780518252601f19909201916020918201910161300d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461308e576040519150601f19603f3d011682016040523d82523d6000602084013e613093565b606091505b50915091508180156130c15750805115806130c157508080602001905160208110156130be57600080fd5b50515b6128545760405162461bcd60e51b81526004018080602001828103825260248152602001806137de6024913960400191505060405180910390fd5b6001600160a01b0381166000908152600b60205260408120546131215761a8c061313b565b6001600160a01b0382166000908152600b60205260409020545b92915050565b6007546040805160208082018590528251808303820181529183019092528051910120146131b6576040805162461bcd60e51b815260206004820152601860248201527f686173682d636861696e3a2077726f6e6720706172656e740000000000000000604482015290519081900360640190fd5b600755565b6000333014156132135760606000368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b031691506132169050565b50335b90565b604080516001600160a01b03841681526020810183905281517fc013b897e18cef75cd10c876b6b78ae296a1d877e477f5e51f021be6c5a9a4f1929181900390910190a16001600160a01b0382166000908152600b602052604090208190556132824282612c84565b6001600160a01b039092166000908152600a602052604090209190915550565b60ff918216600090815260046020908152604080832093909416825291909152205490565b60006132d2836118f3565b90506132df848484612d6d565b600080546040805163a9059cbb60e01b81526001600160a01b0392831660048201526024810186905290519184169263a9059cbb926044808401936020939083900390910190829087803b15801561282a57600080fd5b600060405180608001604052806043815260200161365f60439139805190602001208260000151836020015184604001518051906020012060405160200180858152602001848152602001836001600160a01b03168152602001828152602001945050505050604051602081830303815290604052805190602001209050919050565b60006133c3613462565b82604051602001808061190160f01b81525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050919050565b60008282111561345c576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60085490565b60405180606001604052806000815260200160006001600160a01b03168152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826134c8576000855561350e565b82601f106134e15782800160ff1982351617855561350e565b8280016001018555821561350e579182015b8281111561350e5782358255916020019190600101906134f3565b5061351a9291506135de565b5090565b50805460018160011615610100020316600290046000825580601f106135445750611d15565b601f016020900490600052602060002090810190611d1591906135de565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282613598576000855561350e565b82601f106135b157805160ff191683800117855561350e565b8280016001018555821561350e579182015b8281111561350e5782518255916020019190600101906135c3565b5b8082111561351a57600081556001016135df56fe416363657373436f6e74726f6c3a20696e76616c696420776f726b6572206164647265737354726561737572793a20756e7265676973746572656420746f6b656e496e6465787472616e7366657246726f6d28616464726573732c616464726573732c75696e74323536294d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e61747572652954726561737572793a2067616d652077697468206e6577206164647265737320616c7265616479206465636c6172656421416363657373436f6e74726f6c3a2043454f206163636573732064656e696564416363657373436f6e74726f6c3a20696e76616c69642043454f2061646472657373416363657373436f6e74726f6c3a20776f726b6572206163636573732064656e69656454726561737572793a206163746976652d67616d65206e6f742070726573656e74546f6b656e436f6e74726f6c6c65723a2062616c616e63652064657465637465645369676e657220616e64207369676e617475726520646f206e6f74206d6174636854726561737572793a2067616d65206973206e6f74206465636c617265642100416363657373436f6e74726f6c3a2063757272656e6c7479206e6f74207061757365645472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544a26469706673582212202ee39dea46b136aa399d6141ddd8b1ee21f15b63df7d65e5fdcb27eaae55a1bb64736f6c63430007040033454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429000000000000000000000000a1c57f48f0deb89f569dfbe6e2b7f46d33606fd4000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000044d414e4100000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106102605760003560e01c806370b5e63611610144578063c2c9a884116100b6578063e2373ab31161007a578063e2373ab314610c8b578063e99405cc14610ce9578063f010b54114610d16578063f342336f14610d43578063f887cf0014610d80578063f8ce7b4b14610dbc5761026a565b8063c2c9a88414610b98578063c70620b514610bc5578063c7646ebb14610bf2578063cbd88f4814610c39578063d845317214610c4e5761026a565b80638c79ba3a116101085780638c79ba3a14610a615780639015d37114610a945780639122c23914610ac7578063a3a8df9514610af4578063ae260ac014610b30578063c26f6d4414610b655761026a565b806370b5e6361461092257806371da23e9146109af5780637749bc11146109f85780637cb8e8cd14610a225780638456cb5914610a4c5761026a565b806331297992116101dd5780635ad3f918116101a15780635ad3f918146108235780635c975abb146108505780636431930f1461086557806365afb44f1461089857806365f6517a146108c25780636ca489fb146108f55761026a565b806331297992146106b557806332b4a5941461070b5780633de6f379146107905780633f4ba83a146107cc57806341d4c74f146107e15761026a565b806313d8c8401161022457806313d8c8401461053d57806327d7874c146105645780632c613a14146105975780632c8da560146105c15780632d0335ab146106825761026a565b8063082622171461026f5780630a0f8168146103215780630c53c51c146103525780630e363e3b146104895780630ea4a4fa146105105761026a565b3661026a57600080fd5b600080fd5b34801561027b57600080fd5b506102996004803603602081101561029257600080fd5b5035610df1565b60405180836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156102e55781810151838201526020016102cd565b50505050905090810190601f1680156103125780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34801561032d57600080fd5b50610336610eb6565b604080516001600160a01b039092168252519081900360200190f35b610414600480360360a081101561036857600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561039257600080fd5b8201836020820111156103a457600080fd5b803590602001918460018302840111600160201b831117156103c557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550508235935050506020810135906040013560ff16610ec5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561044e578181015183820152602001610436565b50505050905090810190601f16801561047b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561049557600080fd5b5061050e600480360360408110156104ac57600080fd5b60ff8235169190810190604081016020820135600160201b8111156104d057600080fd5b8201836020820111156104e257600080fd5b803590602001918460018302840111600160201b8311171561050357600080fd5b5090925090506111d2565b005b34801561051c57600080fd5b5061050e6004803603602081101561053357600080fd5b503560ff16611255565b34801561054957600080fd5b5061055261139f565b60408051918252519081900360200190f35b34801561057057600080fd5b5061050e6004803603602081101561058757600080fd5b50356001600160a01b03166113a5565b3480156105a357600080fd5b50610299600480360360208110156105ba57600080fd5b5035611491565b3480156105cd57600080fd5b5061050e600480360360408110156105e457600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561060e57600080fd5b82018360208201111561062057600080fd5b803590602001918460018302840111600160201b8311171561064157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506114a1945050505050565b34801561068e57600080fd5b50610552600480360360208110156106a557600080fd5b50356001600160a01b0316611599565b3480156106c157600080fd5b506106f7600480360360608110156106d857600080fd5b5060ff813516906001600160a01b0360208201351690604001356115b4565b604080519115158252519081900360200190f35b34801561071757600080fd5b5061050e6004803603604081101561072e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561075257600080fd5b82018360208201111561076457600080fd5b803590602001918460018302840111600160201b8311171561078557600080fd5b50909250905061164e565b34801561079c57600080fd5b5061050e600480360360408110156107b357600080fd5b50803560ff1690602001356001600160a01b03166116ad565b3480156107d857600080fd5b5061050e61173d565b3480156107ed57600080fd5b506106f76004803603606081101561080457600080fd5b5060ff813516906001600160a01b03602082013516906040013561180a565b34801561082f57600080fd5b506103366004803603602081101561084657600080fd5b503560ff166118f3565b34801561085c57600080fd5b506106f7611925565b34801561087157600080fd5b506105526004803603602081101561088857600080fd5b50356001600160a01b0316611935565b3480156108a457600080fd5b506106f7600480360360208110156108bb57600080fd5b5035611947565b3480156108ce57600080fd5b50610552600480360360208110156108e557600080fd5b50356001600160a01b03166119bb565b34801561090157600080fd5b506104146004803603602081101561091857600080fd5b503560ff166119cd565b34801561092e57600080fd5b5061050e6004803603606081101561094557600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561096f57600080fd5b82018360208201111561098157600080fd5b803590602001918460018302840111600160201b831117156109a257600080fd5b9193509150351515611a90565b3480156109bb57600080fd5b506109dc600480360360208110156109d257600080fd5b503560ff16611c82565b604080516001600160801b039092168252519081900360200190f35b348015610a0457600080fd5b5061050e60048036036020811015610a1b57600080fd5b5035611cbf565b348015610a2e57600080fd5b5061050e60048036036020811015610a4557600080fd5b5035611d18565b348015610a5857600080fd5b5061050e611d29565b348015610a6d57600080fd5b5061050e60048036036020811015610a8457600080fd5b50356001600160a01b0316611e0f565b348015610aa057600080fd5b506106f760048036036020811015610ab757600080fd5b50356001600160a01b0316611e74565b348015610ad357600080fd5b5061050e60048036036020811015610aea57600080fd5b503560ff16611e91565b348015610b0057600080fd5b5061050e60048036036040811015610b1757600080fd5b50803560ff1690602001356001600160a01b0316612059565b348015610b3c57600080fd5b5061055260048036036040811015610b5357600080fd5b5060ff813581169160200135166122b8565b348015610b7157600080fd5b5061050e60048036036020811015610b8857600080fd5b50356001600160a01b031661237d565b348015610ba457600080fd5b5061050e60048036036020811015610bbb57600080fd5b503560ff1661247a565b348015610bd157600080fd5b5061055260048036036020811015610be857600080fd5b503560ff166125cf565b348015610bfe57600080fd5b5061050e60048036036060811015610c1557600080fd5b50803560ff90811691602081013590911690604001356001600160801b03166125ee565b348015610c4557600080fd5b50610336612712565b348015610c5a57600080fd5b5061050e60048036036060811015610c7157600080fd5b5060ff813581169160208101359091169060400135612721565b348015610c9757600080fd5b50610cbe60048036036020811015610cae57600080fd5b50356001600160a01b031661285c565b604051808360ff168152602001826002811115610cd757fe5b81526020019250505060405180910390f35b348015610cf557600080fd5b5061050e60048036036020811015610d0c57600080fd5b503560ff1661287a565b348015610d2257600080fd5b5061050e60048036036020811015610d3957600080fd5b503560ff16612993565b348015610d4f57600080fd5b5061050e60048036036060811015610d6657600080fd5b5060ff813581169160208101359091169060400135612a9b565b348015610d8c57600080fd5b5061055260048036036040811015610da357600080fd5b5080356001600160a01b0316906020013560ff16612af3565b348015610dc857600080fd5b5061055260048036036040811015610ddf57600080fd5b5060ff81358116916020013516612b8e565b60028181548110610e0157600080fd5b600091825260209182902060029182020180546001808301805460408051601f600019958416156101000295909501909216969096049283018790048702810187019095528185526001600160a01b0390921695509193909190830182828015610eac5780601f10610e8157610100808354040283529160200191610eac565b820191906000526020600020905b815481529060010190602001808311610e8f57829003601f168201915b5050505050905082565b6000546001600160a01b031681565b6060610ecf613468565b50604080516060810182526001600160a01b03881660008181526009602090815290849020548352820152908101869052610f0d8782878787612b9a565b610f485760405162461bcd60e51b815260040180806020018281038252602181526020018061377a6021913960400191505060405180910390fd5b6001600160a01b038716600090815260096020526040902054610f6c906001612c84565b60096000896001600160a01b03166001600160a01b031681526020019081526020016000208190555060006060306001600160a01b0316888a6040516020018083805190602001908083835b60208310610fd75780518252601f199092019160209182019101610fb8565b6001836020036101000a038019825116818451168082178552505050505050905001826001600160a01b031660601b8152601401925050506040516020818303038152906040526040518082805190602001908083835b6020831061104d5780518252601f19909201916020918201910161102e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146110af576040519150601f19603f3d011682016040523d82523d6000602084013e6110b4565b606091505b50915091508161110b576040805162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c00000000604482015290519081900360640190fd5b7f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b89338a60405180846001600160a01b03168152602001836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561118a578181015183820152602001611172565b50505050905090810190601f1680156111b75780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a198975050505050505050565b6000546001600160a01b0316331461121f576040805162461bcd60e51b815260206004820181905260248201526000805160206136d3833981519152604482015290519081900360640190fd5b818160028560ff168154811061123157fe5b9060005260206000209060020201600101919061124f929190613492565b50505050565b6000546001600160a01b031633146112a2576040805162461bcd60e51b815260206004820181905260248201526000805160206136d3833981519152604482015290519081900360640190fd5b60006112ad826118f3565b9050806001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156112fc57600080fd5b505afa158015611310573d6000803e3d6000fd5b505050506040513d602081101561132657600080fd5b5051156113645760405162461bcd60e51b81526004018080602001828103825260218152602001806137596021913960400191505060405180910390fd5b60068260ff168154811061137457fe5b60009182526020822060029091020180546001600160a01b03191681559061124f600183018261351e565b60075481565b6000546001600160a01b031633146113f2576040805162461bcd60e51b815260206004820181905260248201526000805160206136d3833981519152604482015290519081900360640190fd5b6001600160a01b0381166114375760405162461bcd60e51b81526004018080602001828103825260228152602001806136f36022913960400191505060405180910390fd5b600080546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517ff97cbb4246b709036319093e5ff31674b9f6759076d153e1bea1f60392170fc0916020908290030190a150565b60068181548110610e0157600080fd5b6000546001600160a01b031633146114ee576040805162461bcd60e51b815260206004820181905260248201526000805160206136d3833981519152604482015290519081900360640190fd5b604080518082019091526001600160a01b03838116825260208083018481526006805460018101825560009190915284517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f600290920291820180546001600160a01b0319169190951617845590518051611592937ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d40909301929190910190613562565b5050505050565b6001600160a01b031660009081526009602052604090205490565b6000826115c081611e74565b611611576040805162461bcd60e51b815260206004820152601b60248201527f54726561737572793a2064697361626c6564206163636f756e74210000000000604482015290519081900360640190fd5b600061161c33612cde565b90506000611629876118f3565b9050611636828887612d6d565b611641818787612dc2565b5060019695505050505050565b6000546001600160a01b0316331461169b576040805162461bcd60e51b815260206004820181905260248201526000805160206136d3833981519152604482015290519081900360640190fd5b818160068560ff168154811061123157fe5b6000546001600160a01b031633146116fa576040805162461bcd60e51b815260206004820181905260248201526000805160206136d3833981519152604482015290519081900360640190fd5b8060068360ff168154811061170b57fe5b6000918252602090912060029091020180546001600160a01b0319166001600160a01b03929092169190911790555050565b6000546001600160a01b0316331461178a576040805162461bcd60e51b815260206004820181905260248201526000805160206136d3833981519152604482015290519081900360640190fd5b600154600160a01b900460ff166117d25760405162461bcd60e51b81526004018080602001828103825260238152602001806137bb6023913960400191505060405180910390fd5b6001805460ff60a01b191690556040517fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d1693390600090a1565b60008261181681611e74565b8061183757506001600160a01b0381166000908152600a6020526040902054155b611888576040805162461bcd60e51b815260206004820152601b60248201527f54726561737572793a2064697361626c6564206163636f756e74210000000000604482015290519081900360640190fd5b600061189333612cde565b905060006118a0876118f3565b90506118ad828887612f55565b6118b981873088612f7f565b6118cc6118c5336130fc565b4290612c84565b6001600160a01b0387166000908152600a6020526040902055506001925050509392505050565b600060068260ff168154811061190557fe5b60009182526020909120600290910201546001600160a01b031692915050565b600154600160a01b900460ff1681565b600b6020526000908152604090205481565b6000600133600090815260036020526040902054610100900460ff16600281111561196e57fe5b146119aa5760405162461bcd60e51b81526004018080602001828103825260218152602001806137386021913960400191505060405180910390fd5b6119b382613141565b506001919050565b600a6020526000908152604090205481565b606060068260ff16815481106119df57fe5b90600052602060002090600202016001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a845780601f10611a5957610100808354040283529160200191611a84565b820191906000526020600020905b815481529060010190602001808311611a6757829003601f168201915b50505050509050919050565b6000546001600160a01b03163314611add576040805162461bcd60e51b815260206004820181905260248201526000805160206136d3833981519152604482015290519081900360640190fd5b60006001600160a01b038516600090815260036020526040902054610100900460ff166002811115611b0b57fe5b14611b5d576040805162461bcd60e51b815260206004820181905260248201527f54726561737572793a2067616d6520616c7265616479206465636c6172656421604482015290519081900360640190fd5b60026040518060400160405280866001600160a01b0316815260200185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250939094525050835460018082018655948252602091829020845160029092020180546001600160a01b0319166001600160a01b0390921691909117815583820151805194959194611c029450918501920190613562565b50506002546001600160a01b0386166000908152600360205260409020805460ff191660001990920160ff1691909117905550801515600114611c46576002611c49565b60015b6001600160a01b0385166000908152600360205260409020805461ff001916610100836002811115611c7757fe5b021790555050505050565b600080611c8e33612cde565b60ff9081166000908152600560209081526040808320938716835292905220546001600160801b0316915050919050565b6000546001600160a01b03163314611d0c576040805162461bcd60e51b815260206004820181905260248201526000805160206136d3833981519152604482015290519081900360640190fd5b611d15816131b6565b50565b611d15611d236131bb565b82613219565b6001546001600160a01b03163314611d725760405162461bcd60e51b81526004018080602001828103825260238152602001806137156023913960400191505060405180910390fd5b600154600160a01b900460ff1615611dd1576040805162461bcd60e51b815260206004820152601f60248201527f416363657373436f6e74726f6c3a2063757272656e746c792070617573656400604482015290519081900360640190fd5b6001805460ff60a01b1916600160a01b1790556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a1565b6001546001600160a01b03163314611e585760405162461bcd60e51b81526004018080602001828103825260238152602001806137156023913960400191505060405180910390fd5b6001600160a01b03166000908152600a60205260409020429055565b6001600160a01b03166000908152600a6020526040902054421090565b6000546001600160a01b03163314611ede576040805162461bcd60e51b815260206004820181905260248201526000805160206136d3833981519152604482015290519081900360640190fd5b6000611ee9826118f3565b90506000816001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611f3a57600080fd5b505afa158015611f4e573d6000803e3d6000fd5b505050506040513d6020811015611f6457600080fd5b5051905060005b600254811015611fd75760006003600060028481548110611f8857fe5b600091825260208083206002909202909101546001600160a01b0316835282810193909352604091820181205460ff908116825260048452828220908916825290925281205550600101611f6b565b50600080546040805163a9059cbb60e01b81526001600160a01b0392831660048201526024810185905290519185169263a9059cbb926044808401936020939083900390910190829087803b15801561202f57600080fd5b505af1158015612043573d6000803e3d6000fd5b505050506040513d602081101561159257600080fd5b6000546001600160a01b031633146120a6576040805162461bcd60e51b815260206004820181905260248201526000805160206136d3833981519152604482015290519081900360640190fd5b8160006003600060028460ff16815481106120bd57fe5b60009182526020808320600292830201546001600160a01b031684528301939093526040909101902054610100900460ff16908111156120f957fe5b141561213a576040805162461bcd60e51b815260206004820152601f602482015260008051602061379b833981519152604482015290519081900360640190fd5b60006001600160a01b038316600090815260036020526040902054610100900460ff16600281111561216857fe5b146121a45760405162461bcd60e51b81526004018080602001828103825260318152602001806136a26031913960400191505060405180910390fd5b6003600060028560ff16815481106121b857fe5b60009182526020808320600292830201546001600160a01b03908116855284820195909552604093840183209487168352600390529190208254815460ff191660ff91821617808355845492936101009384900490921692849261ff001990921691849081111561222557fe5b02179055509050506003600060028560ff168154811061224157fe5b60009182526020808320600292830201546001600160a01b0316845283019390935260409091019020805461ffff19169055805483919060ff861690811061228557fe5b6000918252602090912060029091020180546001600160a01b0319166001600160a01b0392909216919091179055505050565b600082816003600060028460ff16815481106122d057fe5b60009182526020808320600292830201546001600160a01b031684528301939093526040909101902054610100900460ff169081111561230c57fe5b141561234d576040805162461bcd60e51b815260206004820152601f602482015260008051602061379b833981519152604482015290519081900360640190fd5b505060ff91821660009081526005602090815260408083209390941682529190915220546001600160801b031690565b6001600160a01b0381166123c25760405162461bcd60e51b81526004018080602001828103825260258152602001806135f46025913960400191505060405180910390fd5b6000546001600160a01b03163314806123e557506001546001600160a01b031633145b6124205760405162461bcd60e51b81526004018080602001828103825260258152602001806135f46025913960400191505060405180910390fd5b600180546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f54841e992da2f7bcaa3127409f02e1849c79072740593c398d6670f65f995fa7916020908290030190a150565b6000546001600160a01b031633146124c7576040805162461bcd60e51b815260206004820181905260248201526000805160206136d3833981519152604482015290519081900360640190fd5b8060026003600060028460ff16815481106124de57fe5b60009182526020808320600292830201546001600160a01b031684528301939093526040909101902054610100900460ff169081111561251a57fe5b1461256c576040805162461bcd60e51b815260206004820181905260248201527f54726561737572793a2067616d65206d7573742062652064697361626c656421604482015290519081900360640190fd5b60016003600060028560ff168154811061258257fe5b60009182526020808320600292830201546001600160a01b03168452830193909352604090910190208054909161ff0019909116906101009084908111156125c657fe5b02179055505050565b6000806125db33612cde565b90506125e781846132a2565b9392505050565b6000546001600160a01b0316331461263b576040805162461bcd60e51b815260206004820181905260248201526000805160206136d3833981519152604482015290519081900360640190fd5b8260006003600060028460ff168154811061265257fe5b60009182526020808320600292830201546001600160a01b031684528301939093526040909101902054610100900460ff169081111561268e57fe5b14156126cf576040805162461bcd60e51b815260206004820152601f602482015260008051602061379b833981519152604482015290519081900360640190fd5b5060ff92831660009081526005602090815260408083209490951682529290925291902080546001600160801b0319166001600160801b03909216919091179055565b6001546001600160a01b031681565b60025460ff84161061277a576040805162461bcd60e51b815260206004820181905260248201527f54726561737572793a20756e726567697374657265642067616d65496e646578604482015290519081900360640190fd5b60065460ff8316106127bd5760405162461bcd60e51b81526004018080602001828103825260218152602001806136196021913960400191505060405180910390fd5b60006127c8836118f3565b90506127d5848484612f55565b604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b038316916323b872dd9160648083019260209291908290030181600087803b15801561282a57600080fd5b505af115801561283e573d6000803e3d6000fd5b505050506040513d602081101561285457600080fd5b505050505050565b60036020526000908152604090205460ff8082169161010090041682565b6000546001600160a01b031633146128c7576040805162461bcd60e51b815260206004820181905260248201526000805160206136d3833981519152604482015290519081900360640190fd5b60005b60065460ff821610156129525760ff80831660009081526004602090815260408083209385168352929052205461290490839083906132c7565b60ff80831660008181526004602090815260408083209486168084529482528083208390559282526005815282822093825292909252902080546001600160801b03191690556001016128ca565b5060028160ff168154811061296357fe5b60009182526020822060029091020180546001600160a01b03191681559061298e600183018261351e565b505050565b6000546001600160a01b031633146129e0576040805162461bcd60e51b815260206004820181905260248201526000805160206136d3833981519152604482015290519081900360640190fd5b8060016003600060028460ff16815481106129f757fe5b60009182526020808320600292830201546001600160a01b031684528301939093526040909101902054610100900460ff1690811115612a3357fe5b14612a85576040805162461bcd60e51b815260206004820152601f60248201527f54726561737572793a2067616d65206d75737420626520656e61626c65642100604482015290519081900360640190fd5b60026003600060028560ff168154811061258257fe5b6000546001600160a01b03163314612ae8576040805162461bcd60e51b815260206004820181905260248201526000805160206136d3833981519152604482015290519081900360640190fd5b61298e8383836132c7565b6000612afe826118f3565b6001600160a01b031663dd62ed3e84306040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b031681526020019250505060206040518083038186803b158015612b5b57600080fd5b505afa158015612b6f573d6000803e3d6000fd5b505050506040513d6020811015612b8557600080fd5b50519392505050565b60006125e783836132a2565b6000806001612bb0612bab88613336565b6133b9565b84878760405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612c07573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612c63576040805162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b604482015290519081900360640190fd5b866001600160a01b0316816001600160a01b03161491505095945050505050565b6000828201838110156125e7576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000806001600160a01b038316600090815260036020526040902054610100900460ff166002811115612d0d57fe5b1415612d4e576040805162461bcd60e51b815260206004820152601f602482015260008051602061379b833981519152604482015290519081900360640190fd5b506001600160a01b031660009081526003602052604090205460ff1690565b60ff808416600090815260046020908152604080832093861683529290522054612d979082613405565b60ff938416600090815260046020908152604080832095909616825293909352929091209190915550565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b1781529251815160009460609489169392918291908083835b60208310612e6f5780518252601f199092019160209182019101612e50565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612ed1576040519150601f19603f3d011682016040523d82523d6000602084013e612ed6565b606091505b5091509150818015612f04575080511580612f045750808060200190516020811015612f0157600080fd5b50515b611592576040805162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b60ff808416600090815260046020908152604080832093861683529290522054612d979082612c84565b60006060856001600160a01b031660405180606001604052806025815260200161363a602591398051602091820120604080516001600160a01b03808b166024830152891660448201526064808201899052825180830390910181526084909101825292830180516001600160e01b03166001600160e01b0319909316929092178252518251909182918083835b6020831061302c5780518252601f19909201916020918201910161300d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461308e576040519150601f19603f3d011682016040523d82523d6000602084013e613093565b606091505b50915091508180156130c15750805115806130c157508080602001905160208110156130be57600080fd5b50515b6128545760405162461bcd60e51b81526004018080602001828103825260248152602001806137de6024913960400191505060405180910390fd5b6001600160a01b0381166000908152600b60205260408120546131215761a8c061313b565b6001600160a01b0382166000908152600b60205260409020545b92915050565b6007546040805160208082018590528251808303820181529183019092528051910120146131b6576040805162461bcd60e51b815260206004820152601860248201527f686173682d636861696e3a2077726f6e6720706172656e740000000000000000604482015290519081900360640190fd5b600755565b6000333014156132135760606000368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b031691506132169050565b50335b90565b604080516001600160a01b03841681526020810183905281517fc013b897e18cef75cd10c876b6b78ae296a1d877e477f5e51f021be6c5a9a4f1929181900390910190a16001600160a01b0382166000908152600b602052604090208190556132824282612c84565b6001600160a01b039092166000908152600a602052604090209190915550565b60ff918216600090815260046020908152604080832093909416825291909152205490565b60006132d2836118f3565b90506132df848484612d6d565b600080546040805163a9059cbb60e01b81526001600160a01b0392831660048201526024810186905290519184169263a9059cbb926044808401936020939083900390910190829087803b15801561282a57600080fd5b600060405180608001604052806043815260200161365f60439139805190602001208260000151836020015184604001518051906020012060405160200180858152602001848152602001836001600160a01b03168152602001828152602001945050505050604051602081830303815290604052805190602001209050919050565b60006133c3613462565b82604051602001808061190160f01b81525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050919050565b60008282111561345c576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60085490565b60405180606001604052806000815260200160006001600160a01b03168152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826134c8576000855561350e565b82601f106134e15782800160ff1982351617855561350e565b8280016001018555821561350e579182015b8281111561350e5782358255916020019190600101906134f3565b5061351a9291506135de565b5090565b50805460018160011615610100020316600290046000825580601f106135445750611d15565b601f016020900490600052602060002090810190611d1591906135de565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282613598576000855561350e565b82601f106135b157805160ff191683800117855561350e565b8280016001018555821561350e579182015b8281111561350e5782518255916020019190600101906135c3565b5b8082111561351a57600081556001016135df56fe416363657373436f6e74726f6c3a20696e76616c696420776f726b6572206164647265737354726561737572793a20756e7265676973746572656420746f6b656e496e6465787472616e7366657246726f6d28616464726573732c616464726573732c75696e74323536294d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e61747572652954726561737572793a2067616d652077697468206e6577206164647265737320616c7265616479206465636c6172656421416363657373436f6e74726f6c3a2043454f206163636573732064656e696564416363657373436f6e74726f6c3a20696e76616c69642043454f2061646472657373416363657373436f6e74726f6c3a20776f726b6572206163636573732064656e69656454726561737572793a206163746976652d67616d65206e6f742070726573656e74546f6b656e436f6e74726f6c6c65723a2062616c616e63652064657465637465645369676e657220616e64207369676e617475726520646f206e6f74206d6174636854726561737572793a2067616d65206973206e6f74206465636c617265642100416363657373436f6e74726f6c3a2063757272656e6c7479206e6f74207061757365645472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544a26469706673582212202ee39dea46b136aa399d6141ddd8b1ee21f15b63df7d65e5fdcb27eaae55a1bb64736f6c63430007040033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000a1c57f48f0deb89f569dfbe6e2b7f46d33606fd4000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000044d414e4100000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _defaultTokenAddress (address): 0xA1c57f48F0Deb89f569dFbE6E2B7f46D33606fD4
Arg [1] : _defaultTokenName (string): MANA
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000a1c57f48f0deb89f569dfbe6e2b7f46d33606fd4
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [3] : 4d414e4100000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
18942:6654:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22356:8;;;18942:6654;;;;13129:27;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13129:27:0;;:::i;:::-;;;;;-1:-1:-1;;;;;13129:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2327:25;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;2327:25:0;;;;;;;;;;;;;;6611:1317;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6611:1317:0;;;;;;;;;;;;;;;-1:-1:-1;;;6611:1317:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6611:1317:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6611:1317:0;;-1:-1:-1;;6611:1317:0;;;-1:-1:-1;;;6611:1317:0;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15792:205;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;15792:205:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;15792:205:0;;;;;;;;;;-1:-1:-1;15792:205:0;;-1:-1:-1;15792:205:0;-1:-1:-1;15792:205:0;:::i;:::-;;18570:365;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18570:365:0;;;;:::i;1938:19::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;3450:239;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3450:239:0;-1:-1:-1;;;;;3450:239:0;;:::i;17126:29::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17126:29:0;;:::i;17164:346::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17164:346:0;;;;;;;;;;;;;;;-1:-1:-1;;;17164:346:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;17164:346:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17164:346:0;;-1:-1:-1;17164:346:0;;-1:-1:-1;;;;;17164:346:0:i;9950:156::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9950:156:0;-1:-1:-1;;;;;9950:156:0;;:::i;20175:549::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20175:549:0;;;;;-1:-1:-1;;;;;20175:549:0;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;18350:212;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;18350:212:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;18350:212:0;;;;;;;;;;-1:-1:-1;18350:212:0;;-1:-1:-1;18350:212:0;-1:-1:-1;18350:212:0;:::i;18126:216::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18126:216:0;;;;;;;;-1:-1:-1;;;;;18126:216:0;;:::i;4230:106::-;;;;;;;;;;;;;:::i;19516:651::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19516:651:0;;;;;-1:-1:-1;;;;;19516:651:0;;;;;;;;;;:::i;17732:188::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17732:188:0;;;;:::i;2396:26::-;;;;;;;;;;;;;:::i;8420:44::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8420:44:0;-1:-1:-1;;;;;8420:44:0;;:::i;25281:312::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25281:312:0;;:::i;8367:46::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8367:46:0;-1:-1:-1;;;;;8367:46:0;;:::i;17928:190::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17928:190:0;;;;:::i;14156:733::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14156:733:0;;;;;;;;;;;;;;;-1:-1:-1;;;14156:733:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14156:733:0;;;;;;;;;;;;-1:-1:-1;14156:733:0;-1:-1:-1;14156:733:0;;;;:::i;21258:237::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21258:237:0;;;;:::i;:::-;;;;-1:-1:-1;;;;;21258:237:0;;;;;;;;;;;;;;25151:122;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25151:122:0;;:::i;8891:189::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8891:189:0;;:::i;4115:107::-;;;;;;;;;;;;;:::i;19349:159::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19349:159:0;-1:-1:-1;;;;;19349:159:0;;:::i;9765:177::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9765:177:0;-1:-1:-1;;;;;9765:177:0;;:::i;24593:550::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24593:550:0;;;;:::i;15222:562::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15222:562:0;;;;;;;;-1:-1:-1;;;;;15222:562:0;;:::i;21001:249::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21001:249:0;;;;;;;;;;;:::i;3697:410::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3697:410:0;-1:-1:-1;;;;;3697:410:0;;:::i;16005:226::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16005:226:0;;;;:::i;23109:294::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23109:294:0;;;;:::i;20732:261::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20732:261:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20732:261:0;;:::i;2359:28::-;;;;;;;;;;;;;:::i;22380:721::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22380:721:0;;;;;;;;;;;;;;;;;;:::i;13163:48::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13163:48:0;-1:-1:-1;;;;;13163:48:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21503:515;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21503:515:0;;;;:::i;16239:227::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16239:227:0;;;;:::i;24307:278::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24307:278:0;;;;;;;;;;;;;;;;;;:::i;22026:284::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22026:284:0;;-1:-1:-1;;;;;22026:284:0;;;;;;;;:::i;23605:260::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23605:260:0;;;;;;;;;;;:::i;13129:27::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13129:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13129:27:0;;;;-1:-1:-1;13129:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2327:25::-;;;-1:-1:-1;;;;;2327:25:0;;:::o;6611:1317::-;6838:12;6868:29;;:::i;:::-;-1:-1:-1;6900:192:0;;;;;;;;-1:-1:-1;;;;;6956:19:0;;-1:-1:-1;6956:19:0;;;:6;:19;;;;;;;;;6900:192;;;;;;;;;;;7127:145;6963:11;6900:192;7207:4;7230;7253;7127:6;:145::i;:::-;7105:215;;;;-1:-1:-1;;;7105:215:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7358:19:0;;;;;;:6;:19;;;;;;:26;;7382:1;7358:23;:26::i;:::-;7330:6;:19;7337:11;-1:-1:-1;;;;;7330:19:0;-1:-1:-1;;;;;7330:19:0;;;;;;;;;;;;:54;;;;7475:12;7489:23;7524:4;-1:-1:-1;;;;;7516:18:0;7584:17;7620:11;7549:97;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7549:97:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7549:97:0;;;;;;;;;;;;;;;;;;;;;;;7516:141;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7516:141:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7474:183;;;;7692:7;7670:85;;;;;-1:-1:-1;;;7670:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7773:117;7811:11;7837:10;7862:17;7773:117;;;;-1:-1:-1;;;;;7773:117:0;;;;;;-1:-1:-1;;;;;7773:117:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7910:10;6611:1317;-1:-1:-1;;;;;;;;6611:1317:0:o;15792:205::-;2877:10;;-1:-1:-1;;;;;2877:10:0;2863;:24;2841:106;;;;;-1:-1:-1;;;2841:106:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2841:106:0;;;;;;;;;;;;;;;15977:12:::1;;15940:13;15954:10;15940:25;;;;;;;;;;;;;;;;;;;;:34;;:49;;;;;;;:::i;:::-;;15792:205:::0;;;:::o;18570:365::-;2877:10;;-1:-1:-1;;;;;2877:10:0;2863;:24;2841:106;;;;;-1:-1:-1;;;2841:106:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2841:106:0;;;;;;;;;;;;;;;18677:16:::1;18696:53;18727:11;18696:16;:53::i;:::-;18677:72;;18784:5;-1:-1:-1::0;;;;;18784:15:0::1;;18808:4;18784:30;;;;;;;;;;;;;-1:-1:-1::0;;;;;18784:30:0::1;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;18784:30:0;:35;18762:118:::1;;;;-1:-1:-1::0;;;18762:118:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18900:14;18915:11;18900:27;;;;;;;;;;;::::0;;;::::1;::::0;;::::1;::::0;;::::1;;18893:34:::0;;-1:-1:-1;;;;;;18893:34:0::1;::::0;;18900:27;18893:34:::1;::::0;;::::1;18900:27:::0;18893:34:::1;:::i;1938:19::-:0;;;;:::o;3450:239::-;2877:10;;-1:-1:-1;;;;;2877:10:0;2863;:24;2841:106;;;;;-1:-1:-1;;;2841:106:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2841:106:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;3531:23:0;::::1;3509:107;;;;-1:-1:-1::0;;;3509:107:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3627:10;:20:::0;;-1:-1:-1;;;;;;3627:20:0::1;-1:-1:-1::0;;;;;3627:20:0;;::::1;::::0;;;::::1;::::0;;;;3663:18:::1;::::0;;3670:10;;;::::1;3663:18:::0;;;::::1;::::0;::::1;::::0;;;;;;::::1;3450:239:::0;:::o;17126:29::-;;;;;;;;;;;;17164:346;2877:10;;-1:-1:-1;;;;;2877:10:0;2863;:24;2841:106;;;;;-1:-1:-1;;;2841:106:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2841:106:0;;;;;;;;;;;;;;;17339:152:::1;::::0;;;;::::1;::::0;;;-1:-1:-1;;;;;17339:152:0;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;17305:14:::1;:197:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;17305:197:0;;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;;;;17305:197:0::1;::::0;;;::::1;;::::0;;;;;;::::1;::::0;;;;;;;;;::::1;::::0;::::1;:::i;:::-;;;;17164:346:::0;;:::o;9950:156::-;-1:-1:-1;;;;;10086:12:0;10047:13;10086:12;;;:6;:12;;;;;;;9950:156::o;20175:549::-;20364:4;20341:3;8787:19;8797:8;8787:9;:19::i;:::-;8765:96;;;;;-1:-1:-1;;;8765:96:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;20386:16:::1;20405:24;20418:10;20405:12;:24::i;:::-;20386:43;;20440:14;20457:28;20473:11;20457:15;:28::i;:::-;20440:45;;20498:97;20526:10;20551:11;20577:7;20498:13;:97::i;:::-;20608:84;20635:6;20656:3;20674:7;20608:12;:84::i;:::-;-1:-1:-1::0;20712:4:0::1;::::0;20175:549;-1:-1:-1;;;;;;20175:549:0:o;18350:212::-;2877:10;;-1:-1:-1;;;;;2877:10:0;2863;:24;2841:106;;;;;-1:-1:-1;;;2841:106:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2841:106:0;;;;;;;;;;;;;;;18541:13:::1;;18501:14;18516:11;18501:27;;;;;;;;;18126:216:::0;2877:10;;-1:-1:-1;;;;;2877:10:0;2863;:24;2841:106;;;;;-1:-1:-1;;;2841:106:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2841:106:0;;;;;;;;;;;;;;;18318:16:::1;18275:14;18290:11;18275:27;;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;;:59:::0;;-1:-1:-1;;;;;;18275:59:0::1;-1:-1:-1::0;;;;;18275:59:0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;18126:216:0:o;4230:106::-;2877:10;;-1:-1:-1;;;;;2877:10:0;2863;:24;2841:106;;;;;-1:-1:-1;;;2841:106:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2841:106:0;;;;;;;;;;;;;;;3353:6:::1;::::0;-1:-1:-1;;;3353:6:0;::::1;;;3331:91;;;;-1:-1:-1::0;;;3331:91:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4288:6:::2;:14:::0;;-1:-1:-1;;;;4288:14:0::2;::::0;;4318:10:::2;::::0;::::2;::::0;4297:5:::2;::::0;4318:10:::2;4230:106::o:0;19516:651::-;19707:4;19682:5;8557:19;8567:8;8557:9;:19::i;:::-;:62;;;-1:-1:-1;;;;;;8593:21:0;;;;;;:11;:21;;;;;;:26;8557:62;8535:139;;;;;-1:-1:-1;;;8535:139:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;19729:16:::1;19748:24;19761:10;19748:12;:24::i;:::-;19729:43;;19783:14;19800:28;19816:11;19800:15;:28::i;:::-;19783:45;;19841:97;19869:10;19894:11;19920:7;19841:13;:97::i;:::-;19951:105;19982:6;20003:5;20031:4;20038:7;19951:16;:105::i;:::-;20090:45;20110:24;20123:10;20110:12;:24::i;:::-;20090:15;::::0;:19:::1;:45::i;:::-;-1:-1:-1::0;;;;;20069:18:0;::::1;;::::0;;;:11:::1;:18;::::0;;;;:66;-1:-1:-1;20155:4:0::1;::::0;-1:-1:-1;;19516:651:0;;;;;;:::o;17732:188::-;17840:7;17872:14;17887:11;17872:27;;;;;;;;;;;;;;;;;;;;;;;:40;-1:-1:-1;;;;;17872:40:0;;17732:188;-1:-1:-1;;17732:188:0:o;2396:26::-;;;-1:-1:-1;;;2396:26:0;;;;;:::o;8420:44::-;;;;;;;;;;;;;:::o;25281:312::-;25374:4;25449:18;25427:10;25418:20;;;;:8;:20;;;;;:27;;;;;;:49;;;;;;;;;25396:132;;;;-1:-1:-1;;;25396:132:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25541:20;25550:10;25541:8;:20::i;:::-;-1:-1:-1;25581:4:0;25281:312;;;:::o;8367:46::-;;;;;;;;;;;;;:::o;17928:190::-;18035:13;18073:14;18088:11;18073:27;;;;;;;;;;;;;;;;;;;;:37;;18066:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17928:190;;;:::o;14156:733::-;2877:10;;-1:-1:-1;;;;;2877:10:0;2863;:24;2841:106;;;;;-1:-1:-1;;;2841:106:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2841:106:0;;;;;;;;;;;;;;;14387:16:::1;-1:-1:-1::0;;;;;14351:25:0;::::1;;::::0;;;:8:::1;:25;::::0;;;;:32;::::1;::::0;::::1;;;:52;::::0;::::1;;;;;;;14329:134;;;::::0;;-1:-1:-1;;;14329:134:0;;::::1;;::::0;::::1;::::0;;;;;;;::::1;::::0;;;;;;;;;;;;;::::1;;14476:13;14509:153;;;;;;;;14568:15;-1:-1:-1::0;;;;;14509:153:0::1;;;;;14616:12;;14509:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;-1:-1:-1;14509:153:0;;;;-1:-1:-1;;14476:197:0;;::::1;::::0;;::::1;::::0;;;;;::::1;::::0;;;;;;::::1;::::0;;::::1;;::::0;;-1:-1:-1;;;;;;14476:197:0::1;-1:-1:-1::0;;;;;14476:197:0;;::::1;::::0;;;::::1;::::0;;;;::::1;::::0;;;;;;;::::1;::::0;-1:-1:-1;14476:197:0;;::::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;;14724:13:0::1;:20:::0;-1:-1:-1;;;;;14684:25:0;::::1;;::::0;;;:8:::1;:25;::::0;;;;:65;;-1:-1:-1;;14684:65:0::1;-1:-1:-1::0;;14724:24:0;;;14684:65:::1;;::::0;;;::::1;::::0;;-1:-1:-1;14795:17:0;::::1;;-1:-1:-1::0;14795:17:0::1;:86;;14862:19;14795:86;;;14828:18;14795:86;-1:-1:-1::0;;;;;14760:25:0;::::1;;::::0;;;:8:::1;:25;::::0;;;;:121;;-1:-1:-1;;14760:121:0::1;;::::0;::::1;::::0;::::1;;;;;;;;;;;14156:733:::0;;;;:::o;21258:237::-;21366:7;21391:16;21410:24;21423:10;21410:12;:24::i;:::-;21452:22;;;;;;;;:10;:22;;;;;;;;:35;;;;;;;;;;-1:-1:-1;;;;;21452:35:0;;-1:-1:-1;;21258:237:0;;;:::o;25151:122::-;2877:10;;-1:-1:-1;;;;;2877:10:0;2863;:24;2841:106;;;;;-1:-1:-1;;;2841:106:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2841:106:0;;;;;;;;;;;;;;;25250:15:::1;25259:5;25250:8;:15::i;:::-;25151:122:::0;:::o;8891:189::-;8990:82;9019:11;:9;:11::i;:::-;9045:16;8990:14;:82::i;4115:107::-;3044:13;;-1:-1:-1;;;;;3044:13:0;3030:10;:27;3008:112;;;;-1:-1:-1;;;3008:112:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3207:6:::1;::::0;-1:-1:-1;;;3207:6:0;::::1;;;3206:7;3184:88;;;::::0;;-1:-1:-1;;;3184:88:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;4186:4:::2;4177:13:::0;;-1:-1:-1;;;;4177:13:0::2;-1:-1:-1::0;;;4177:13:0::2;::::0;;4206:8:::2;::::0;::::2;::::0;4177:13;;4206:8:::2;4115:107::o:0;19349:159::-;3044:13;;-1:-1:-1;;;;;3044:13:0;3030:10;:27;3008:112;;;;-1:-1:-1;;;3008:112:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19461:21:0::1;;::::0;;;:11:::1;:21;::::0;;;;19485:15:::1;19461:39:::0;;19349:159::o;9765:177::-;-1:-1:-1;;;;;9895:21:0;9866:4;9895:21;;;:11;:21;;;;;;9919:15;-1:-1:-1;;9765:177:0:o;24593:550::-;2877:10;;-1:-1:-1;;;;;2877:10:0;2863;:24;2841:106;;;;;-1:-1:-1;;;2841:106:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2841:106:0;;;;;;;;;;;;;;;24688:16:::1;24707:53;24738:11;24707:16;:53::i;:::-;24688:72;;24773:14;24790:5;-1:-1:-1::0;;;;;24790:15:0::1;;24828:4;24790:54;;;;;;;;;;;;;-1:-1:-1::0;;;;;24790:54:0::1;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;24790:54:0;;-1:-1:-1;24862:9:0::1;24857:195;24881:13;:20:::0;24877:24;::::1;24857:195;;;24923:16;24942:8;:38;24951:13;24965:1;24951:16;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;:28:::0;-1:-1:-1;;;;;24951:28:0::1;24942:38:::0;;;;::::1;::::0;;;;;;;;;;:44;::::1;::::0;;::::1;25001:22:::0;;:10:::1;:22:::0;;;;;:35;;::::1;::::0;;;;;;;:39;-1:-1:-1;24951:28:0;24903:3:::1;24857:195;;;-1:-1:-1::0;25093:10:0::1;::::0;;25064:71:::1;::::0;;-1:-1:-1;;;25064:71:0;;-1:-1:-1;;;;;25093:10:0;;::::1;25064:71;::::0;::::1;::::0;;;;;;;;;:14;;::::1;::::0;::::1;::::0;:71;;;;;::::1;::::0;;;;;;;;;;;:14;:71;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;15222:562:::0;2877:10;;-1:-1:-1;;;;;2877:10:0;2863;:24;2841:106;;;;;-1:-1:-1;;;2841:106:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2841:106:0;;;;;;;;;;;;;;;15378:10;13509:16:::1;13419:8;:79;13446:13;13460:10;13446:25;;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;;:37:::0;-1:-1:-1;;;;;13446:37:0::1;13419:79:::0;;;::::1;::::0;;;;;;;;;;:86;13446:37:::1;13419:86:::0;::::1;;;::::0;:106;::::1;;;;;;;;13397:187;;;::::0;;-1:-1:-1;;;13397:187:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;;;13397:187:0;;;;;;;;;;;;;::::1;;15464:16:::2;-1:-1:-1::0;;;;;15428:25:0;::::2;;::::0;;;:8:::2;:25;::::0;;;;:32;::::2;::::0;::::2;;;:52;::::0;::::2;;;;;;;15406:151;;;;-1:-1:-1::0;;;15406:151:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15598:8;:47;15607:13;15621:10;15607:25;;;;;;;;;;;::::0;;;::::2;::::0;;;::::2;::::0;;::::2;;:37:::0;-1:-1:-1;;;;;15607:37:0;;::::2;15598:47:::0;;;;::::2;::::0;;;;;;;;;;15570:25;;::::2;::::0;;:8:::2;:25:::0;;;;;:75;;;;-1:-1:-1;;15570:75:0::2;;::::0;;::::2;;::::0;;;;;:25;;15607:37:::2;15570:75:::0;;;::::2;::::0;;::::2;::::0;:25;;-1:-1:-1;;15570:75:0;;::::2;::::0;;;;::::2;;;;;;;;;;;;;;15663:8;:47;15672:13;15686:10;15672:25;;;;;;;;;;;::::0;;;::::2;::::0;;;::::2;::::0;;::::2;;:37:::0;-1:-1:-1;;;;;15672:37:0::2;15663:47:::0;;;::::2;::::0;;;;;;;;;;15656:54;;-1:-1:-1;;15656:54:0;;;15721:25;;15761:15;;15672:25;15656:54:::2;15721:25:::0;::::2;::::0;;::::2;;;;;;::::0;;;::::2;::::0;;;::::2;::::0;;::::2;;:55:::0;;-1:-1:-1;;;;;;15721:55:0::2;-1:-1:-1::0;;;;;15721:55:0;;;::::2;::::0;;;::::2;::::0;;-1:-1:-1;;;15222:562:0:o;21001:249::-;21175:7;21145:10;21175:7;13419:8;:79;13446:13;13460:10;13446:25;;;;;;;;;;;;;;;;;;;;;;;:37;-1:-1:-1;;;;;13446:37:0;13419:79;;;;;;;;;;;;;;:86;13446:37;13419:86;;;;;:106;;;;;;;;;13397:187;;;;;-1:-1:-1;;;13397:187:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;13397:187:0;;;;;;;;;;;;;;;-1:-1:-1;;21207:22:0::1;::::0;;::::1;;::::0;;;:10:::1;:22;::::0;;;;;;;:35;;;::::1;::::0;;;;;;;;-1:-1:-1;;;;;21207:35:0::1;::::0;21001:249::o;3697:410::-;-1:-1:-1;;;;;3778:26:0;;3756:113;;;;-1:-1:-1;;;3756:113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3916:10;;-1:-1:-1;;;;;3916:10:0;3902;:24;;:55;;-1:-1:-1;3944:13:0;;-1:-1:-1;;;;;3944:13:0;3930:10;:27;3902:55;3880:142;;;;-1:-1:-1;;;3880:142:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4033:13;:26;;-1:-1:-1;;;;;;4033:26:0;-1:-1:-1;;;;;4033:26:0;;;;;;;;;;;4075:24;;;4085:13;;;;4075:24;;;;;;;;;;;;;3697:410;:::o;16005:226::-;2877:10;;-1:-1:-1;;;;;2877:10:0;2863;:24;2841:106;;;;;-1:-1:-1;;;2841:106:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2841:106:0;;;;;;;;;;;;;;;16120:10;14050:19:::1;13960:8;:79;13987:13;14001:10;13987:25;;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;;:37:::0;-1:-1:-1;;;;;13987:37:0::1;13960:79:::0;;;::::1;::::0;;;;;;;;;;:86;13987:37:::1;13960:86:::0;::::1;;;::::0;:109;::::1;;;;;;;13938:191;;;::::0;;-1:-1:-1;;;13938:191:0;;::::1;;::::0;::::1;::::0;;;;;;;::::1;::::0;;;;;;;;;;;;;::::1;;16205:18:::2;16148:8;:47;16157:13;16171:10;16157:25;;;;;;;;;;;::::0;;;::::2;::::0;;;::::2;::::0;;::::2;;:37:::0;-1:-1:-1;;;;;16157:37:0::2;16148:47:::0;;;::::2;::::0;;;;;;;;;;:75;;:47;;-1:-1:-1;;16148:75:0;;::::2;::::0;16157:37:::2;::::0;16148:75;;;::::2;;;;;;;;;;;2958:1:::1;16005:226:::0;:::o;23109:294::-;23224:7;23249:16;23268:24;23281:10;23268:12;:24::i;:::-;23249:43;;23312:83;23348:10;23373:11;23312:21;:83::i;:::-;23305:90;23109:294;-1:-1:-1;;;23109:294:0:o;20732:261::-;2877:10;;-1:-1:-1;;;;;2877:10:0;2863;:24;2841:106;;;;;-1:-1:-1;;;2841:106:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2841:106:0;;;;;;;;;;;;;;;20908:10;13509:16:::1;13419:8;:79;13446:13;13460:10;13446:25;;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;;:37:::0;-1:-1:-1;;;;;13446:37:0::1;13419:79:::0;;;::::1;::::0;;;;;;;;;;:86;13446:37:::1;13419:86:::0;::::1;;;::::0;:106;::::1;;;;;;;;13397:187;;;::::0;;-1:-1:-1;;;13397:187:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;;;;;;;13397:187:0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;20936:22:0::2;::::0;;::::2;;::::0;;;:10:::2;:22;::::0;;;;;;;:35;;;::::2;::::0;;;;;;;;;:49;;-1:-1:-1;;;;;;20936:49:0::2;-1:-1:-1::0;;;;;20936:49:0;;::::2;::::0;;;::::2;::::0;;20732:261::o;2359:28::-;;;-1:-1:-1;;;;;2359:28:0;;:::o;22380:721::-;22560:13;:20;22547:33;;;;22525:115;;;;;-1:-1:-1;;;22525:115:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22689:14;:21;22675:35;;;;22653:118;;;;-1:-1:-1;;;22653:118:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22784:16;22803:53;22834:11;22803:16;:53::i;:::-;22784:72;;22869:102;22897:10;22922:11;22948:12;22869:13;:102::i;:::-;22984:109;;;-1:-1:-1;;;22984:109:0;;23017:10;22984:109;;;;23050:4;22984:109;;;;;;;;;;;;-1:-1:-1;;;;;22984:18:0;;;;;:109;;;;;;;;;;;;;;-1:-1:-1;22984:18:0;:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;22380:721:0:o;13163:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;21503:515::-;2877:10;;-1:-1:-1;;;;;2877:10:0;2863;:24;2841:106;;;;;-1:-1:-1;;;2841:106:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2841:106:0;;;;;;;;;;;;;;;21611:17:::1;21606:362;21648:14;:21:::0;21634:35:::1;::::0;::::1;;21606:362;;;21798:22;::::0;;::::1;;::::0;;;:10:::1;:22;::::0;;;;;;;:35;;::::1;::::0;;;;;;;21701:147:::1;::::0;21739:10;;21768:11;;21701:19:::1;:147::i;:::-;21863:22;::::0;;::::1;21901:1;21863:22:::0;;;:10:::1;:22;::::0;;;;;;;:35;;::::1;::::0;;;;;;;;;:39;;;21917:22;;;:10:::1;:22:::0;;;;;:35;;;;;;;;;:39;;-1:-1:-1;;;;;;21917:39:0::1;::::0;;;21671:13:::1;21606:362;;;;21985:13;21999:10;21985:25;;;;;;;;;;;::::0;;;::::1;::::0;;::::1;::::0;;::::1;;21978:32:::0;;-1:-1:-1;;;;;;21978:32:0::1;::::0;;21985:25;21978:32:::1;::::0;;::::1;21985:25:::0;21978:32:::1;:::i;:::-;;;21503:515:::0;:::o;16239:227::-;2877:10;;-1:-1:-1;;;;;2877:10:0;2863;:24;2841:106;;;;;-1:-1:-1;;;2841:106:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2841:106:0;;;;;;;;;;;;;;;16354:10;13778:18:::1;13688:8;:79;13715:13;13729:10;13715:25;;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;;:37:::0;-1:-1:-1;;;;;13715:37:0::1;13688:79:::0;;;::::1;::::0;;;;;;;;;;:86;13715:37:::1;13688:86:::0;::::1;;;::::0;:108;::::1;;;;;;;13666:189;;;::::0;;-1:-1:-1;;;13666:189:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;16439:19:::2;16382:8;:47;16391:13;16405:10;16391:25;;;;;;;;;24307:278:::0;2877:10;;-1:-1:-1;;;;;2877:10:0;2863;:24;2841:106;;;;;-1:-1:-1;;;2841:106:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2841:106:0;;;;;;;;;;;;;;;24474:103:::1;24508:10;24533:11;24559:7;24474:19;:103::i;22026:284::-:0;22165:7;22197:29;22214:11;22197:16;:29::i;:::-;-1:-1:-1;;;;;22197:39:0;;22251:12;22286:4;22197:105;;;;;;;;;;;;;-1:-1:-1;;;;;22197:105:0;;;;;;-1:-1:-1;;;;;22197:105:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22197:105:0;;22026:284;-1:-1:-1;;;22026:284:0:o;23605:260::-;23742:7;23774:83;23810:10;23835:11;23774:21;:83::i;10114:546::-;10317:4;10339:14;10356:171;10380:79;10417:27;10437:6;10417:19;:27::i;:::-;10380:18;:79::i;:::-;10474:4;10493;10512;10356:171;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10356:171:0;;-1:-1:-1;;10356:171:0;;;-1:-1:-1;;;;;;;10562:22:0;;10540:89;;;;;-1:-1:-1;;;10540:89:0;;;;;;;;;;;;-1:-1:-1;;;10540:89:0;;;;;;;;;;;;;;;10651:4;-1:-1:-1;;;;;10641:14:0;:6;-1:-1:-1;;;;;10641:14:0;;10634:21;;;10114:546;;;;;;;:::o;95:179::-;153:7;185:5;;;209:6;;;;201:46;;;;;-1:-1:-1;;;201:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;14897:317;15007:5;;-1:-1:-1;;;;;15052:22:0;;;;;;:8;:22;;;;;:29;;;;;;:49;;;;;;;;;;15030:130;;;;;-1:-1:-1;;;15030:130:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;15030:130:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;;15178:22:0;;;;;:8;:22;;;;;:28;;;;14897:317::o;16730:248::-;16922:22;;;;;;;;:10;:22;;;;;;;;:35;;;;;;;;;;:48;;16962:7;16922:39;:48::i;:::-;16875:22;;;;;;;;:10;:22;;;;;;;;:35;;;;;;;;;;;;;;:95;;;;-1:-1:-1;16730:248:0:o;11629:564::-;11322:80;;;;;;;;;;;;;;;;;11826:125;;-1:-1:-1;;;;;11826:125:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11826:125:0;-1:-1:-1;;;11826:125:0;;;11800:162;;;;11765:12;;11779:17;;11800:11;;;11826:125;11800:162;;;11826:125;11800:162;;11826:125;11800:162;;;;;;;;;;-1:-1:-1;;11800:162:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11764:198;;;;11997:7;:129;;;;-1:-1:-1;12027:11:0;;:16;;:84;;;12080:4;12047:64;;;;;;;;;;;;;;;-1:-1:-1;12047:64:0;12027:84;11975:210;;;;;-1:-1:-1;;;11975:210:0;;;;;;;;;;;;;;;;;;;;;;;;;;;16474:248;16666:22;;;;;;;;:10;:22;;;;;;;;:35;;;;;;;;;;:48;;16706:7;16666:39;:48::i;12201:609::-;12362:12;12376:17;12397:6;-1:-1:-1;;;;;12397:11:0;11510:92;;;;;;;;;;;;;;;;;11486:127;;;;;;;12423:140;;;-1:-1:-1;;;;;12423:140:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12423:140:0;-1:-1:-1;;;;;;12423:140:0;;;;;;;;;12397:177;;;;;;;;;12423:140;12397:177;;;;;;;;;;-1:-1:-1;;12397:177:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12361:213;;;;12609:7;:129;;;;-1:-1:-1;12639:11:0;;:16;;:84;;;12692:4;12659:64;;;;;;;;;;;;;;;-1:-1:-1;12659:64:0;12639:84;12587:215;;;;-1:-1:-1;;;12587:215:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9521:236;-1:-1:-1;;;;;9672:19:0;;9627:7;9672:19;;;:9;:19;;;;;;:77;;8350:8;9672:77;;;-1:-1:-1;;;;;9711:19:0;;;;;;:9;:19;;;;;;9672:77;9652:97;9521:236;-1:-1:-1;;9521:236:0:o;2047:238::-;2196:4;;2152:25;;;;;;;;;;;;;;;;;;;;;;;;;2124:68;;;;;:76;2102:150;;;;;-1:-1:-1;;;2102:150:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;2263:4;:14;2047:238::o;10668:538::-;10711:14;10741:10;10763:4;10741:27;10738:437;;;10785:18;10806:8;;10785:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;10845:8:0;11034:17;11028:24;-1:-1:-1;;;;;11024:73:0;;-1:-1:-1;10884:228:0;;-1:-1:-1;10884:228:0;;-1:-1:-1;11153:10:0;10738:437;10668:538;:::o;9183:330::-;9312:76;;;-1:-1:-1;;;;;9312:76:0;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9401:16:0;;;;;;:9;:16;;;;;:35;;;9468:37;:15;9420:16;9468:19;:37::i;:::-;-1:-1:-1;;;;;9447:18:0;;;;;;;:11;:18;;;;;:58;;;;-1:-1:-1;9183:330:0:o;23411:186::-;23554:22;;;;23527:7;23554:22;;;:10;:22;;;;;;;;:35;;;;;;;;;;;;;23411:186::o;23873:426::-;24024:16;24043:53;24074:11;24043:16;:53::i;:::-;24024:72;;24109:97;24137:10;24162:11;24188:7;24109:13;:97::i;:::-;24248:10;;;24219:72;;;-1:-1:-1;;;24219:72:0;;-1:-1:-1;;;;;24248:10:0;;;24219:72;;;;;;;;;;;;:14;;;;;;:72;;;;;;;;;;;;;;;;;:14;:72;;;;;;;;;;7936:370;8062:7;5937:108;;;;;;;;;;;;;;;;;5913:143;;;;;;8179:6;:12;;;8210:6;:11;;;8250:6;:24;;;8240:35;;;;;;8106:184;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8106:184:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;8088:213;;;;;;8081:220;;7936:370;;;:::o;5564:180::-;5635:7;5701:20;:18;:20::i;:::-;5723:11;5672:63;;;;;;-1:-1:-1;;;5672:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5662:74;;;;;;5655:81;;5564:180;;;:::o;282:182::-;340:7;373:1;368;:6;;360:49;;;;;-1:-1:-1;;;360:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;432:5:0;;;282:182::o;5109:92::-;5181:15;;5109:92;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Swarm Source
ipfs://2ee39dea46b136aa399d6141ddd8b1ee21f15b63df7d65e5fdcb27eaae55a1bb
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.