ERC-20
DeFi
Overview
Max Total Supply
10,000,000,000 PLY
Holders
737 (0.00%)
Market
Price
$0.00 @ 0.000000 ETH (+6.39%)
Onchain Market Cap
$661,700.00
Circulating Supply Market Cap
$273,813.00
Other Info
Token Contract (WITH 18 Decimals)
Balance
2,445,042.3085 PLYValue
$161.79 ( ~0.0449149845212675 Eth) [0.0245%]Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|---|---|---|---|---|
1 | Trisolaris | 0X09C9D464B58D96837F8D8B6F4D9FE4AD408D3A4F-0XC42C30AC6CC15FAC9BD938618BCAA1A1FAE8501D | $0.0001 0.0000000 Eth | $91.20 1,382,005.490 0X09C9D464B58D96837F8D8B6F4D9FE4AD408D3A4F | 100.0000% |
Contract Name:
Ply
Compiler Version
v0.8.11+commit.d7f03943
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-03-31 */ pragma solidity 0.8.11; contract Ply { address public governance; address public pendingGovernance; uint256 public createdAt; /// @notice EIP-20 token name for this token string public constant name = "Aurigami Token"; /// @notice EIP-20 token symbol for this token string public constant symbol = "PLY"; /// @notice EIP-20 token decimals for this token uint8 public constant decimals = 18; /// @notice Initial number of tokens in circulation uint private constant INITIAL_SUPPLY = 10_000_000_000e18; // 10 billion PLY /// @notice Total number of tokens in circulation uint public totalSupply; /// @notice Allowance amounts on behalf of others mapping (address => mapping (address => uint96)) internal allowances; /// @notice Official record of token balances for each account mapping (address => uint96) internal balances; /// @notice A record of each accounts delegate mapping (address => address) public delegates; /// @notice A checkpoint for marking number of votes from a given block struct Checkpoint { uint32 fromBlock; uint96 votes; } /// @notice A record of votes checkpoints for each account, by index mapping (address => mapping (uint32 => Checkpoint)) public checkpoints; /// @notice The number of checkpoints for each account mapping (address => uint32) public numCheckpoints; /// @notice The EIP-712 typehash for the contract's domain bytes32 public constant DOMAIN_TYPEHASH = keccak256("EIP712Domain(string name,uint256 chainId,address verifyingContract)"); /// @notice The EIP-712 typehash for the delegation struct used by the contract bytes32 public constant DELEGATION_TYPEHASH = keccak256("Delegation(address delegatee,uint256 nonce,uint256 expiry)"); /// @notice The EIP-712 typehash for the permit struct used by the contract bytes32 public constant PERMIT_TYPEHASH = keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"); /// @notice A record of states for signing / validating signatures mapping (address => uint) public nonces; /// @notice An event thats emitted when an account changes its delegate event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate); /// @notice An event thats emitted when a delegate account's vote balance changes event DelegateVotesChanged(address indexed delegate, uint previousBalance, uint newBalance); /// @notice The standard EIP-20 transfer event event Transfer(address indexed from, address indexed to, uint256 amount); /// @notice The standard EIP-20 approval event event Approval(address indexed owner, address indexed spender, uint256 amount); /// @notice Event for transfering Governance to a new address event TransferGovernance(address newGovernance); /// @notice Event for claiming Governance event ClaimGovernance(address newGovernance); modifier onlyGovernance() { require(governance == msg.sender, "Caller is not governance"); _; } /** * @notice Construct a new PLY token * @param account The initial account to grant all the tokens and Governance of the contract */ constructor(address account) { governance = account; balances[account] = uint96(INITIAL_SUPPLY); totalSupply = INITIAL_SUPPLY; createdAt = block.timestamp; emit Transfer(address(0), account, INITIAL_SUPPLY); } /** * @notice Transfer Governance to a new owner address */ function transferGovernance(address newGovernance) external onlyGovernance { pendingGovernance = newGovernance; emit TransferGovernance(newGovernance); } /** * @notice Claim Governance to the pending owner address */ function claimGovernance() external { require(msg.sender == pendingGovernance, "Wrong governance"); governance = pendingGovernance; pendingGovernance = address(0); emit ClaimGovernance(governance); } /** * @notice Mint Ply to an account, could only be done by governance address after at least 1 year * @param account The account to receive the Ply tokens * @param amount The amount to be minted */ function mintPly(address account, uint96 amount) external onlyGovernance { require(block.timestamp > createdAt + (1 days) * 365, "Must be after 1 year"); balances[account] = add96(balances[account], amount, "Ply::mintPly: new account balance overflows"); totalSupply = add96(uint96(totalSupply), amount, "Ply:mintPly: total supply overflows"); _moveDelegates(address(0), delegates[account], amount); emit Transfer(address(0), account, amount); } /** * @notice Get the number of tokens `spender` is approved to spend on behalf of `account` * @param account The address of the account holding the funds * @param spender The address of the account spending the funds * @return The number of tokens approved */ function allowance(address account, address spender) external view returns (uint) { return allowances[account][spender]; } /** * @notice Approve `spender` to transfer up to `amount` from `src` * @dev This will overwrite the approval amount for `spender` * and is subject to issues noted [here](https://eips.ethereum.org/EIPS/eip-20#approve) * @param spender The address of the account which may transfer tokens * @param rawAmount The number of tokens that are approved (2^256-1 means infinite) * @return Whether or not the approval succeeded */ function approve(address spender, uint rawAmount) external returns (bool) { uint96 amount; if (rawAmount == type(uint256).max) { amount = type(uint96).max; } else { amount = safe96(rawAmount, "Ply::approve: amount exceeds 96 bits"); } allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } /** * @notice Triggers an approval from owner to spends * @param owner The address to approve from * @param spender The address to be approved * @param rawAmount The number of tokens that are approved (2^256-1 means infinite) * @param deadline The time at which to expire the signature * @param v The recovery byte of the signature * @param r Half of the ECDSA signature pair * @param s Half of the ECDSA signature pair */ function permit(address owner, address spender, uint rawAmount, uint deadline, uint8 v, bytes32 r, bytes32 s) external { uint96 amount; if (rawAmount == type(uint256).max) { amount = type(uint96).max; } else { amount = safe96(rawAmount, "Ply::permit: amount exceeds 96 bits"); } bytes32 domainSeparator = keccak256(abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainId(), address(this))); bytes32 structHash = keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, rawAmount, nonces[owner]++, deadline)); bytes32 digest = keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash)); address signatory = ecrecover(digest, v, r, s); require(signatory != address(0), "Ply::permit: invalid signature"); require(signatory == owner, "Ply::permit: unauthorized"); require(block.timestamp <= deadline, "Ply::permit: signature expired"); allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @notice Get the number of tokens held by the `account` * @param account The address of the account to get the balance of * @return The number of tokens held */ function balanceOf(address account) external view returns (uint) { return balances[account]; } /** * @notice Transfer `amount` tokens from `msg.sender` to `dst` * @param dst The address of the destination account * @param rawAmount The number of tokens to transfer * @return Whether or not the transfer succeeded */ function transfer(address dst, uint rawAmount) external returns (bool) { uint96 amount = safe96(rawAmount, "Ply::transfer: amount exceeds 96 bits"); _transferTokens(msg.sender, dst, amount); return true; } /** * @notice Transfer `amount` tokens from `src` to `dst` * @param src The address of the source account * @param dst The address of the destination account * @param rawAmount The number of tokens to transfer * @return Whether or not the transfer succeeded */ function transferFrom(address src, address dst, uint rawAmount) external returns (bool) { address spender = msg.sender; uint96 spenderAllowance = allowances[src][spender]; uint96 amount = safe96(rawAmount, "Ply::approve: amount exceeds 96 bits"); if (spender != src && spenderAllowance != type(uint96).max) { uint96 newAllowance = sub96(spenderAllowance, amount, "Ply::transferFrom: transfer amount exceeds spender allowance"); allowances[src][spender] = newAllowance; emit Approval(src, spender, newAllowance); } _transferTokens(src, dst, amount); return true; } /** * @notice Delegate votes from `msg.sender` to `delegatee` * @param delegatee The address to delegate votes to */ function delegate(address delegatee) external { return _delegate(msg.sender, delegatee); } /** * @notice Delegates votes from signatory to `delegatee` * @param delegatee The address to delegate votes to * @param nonce The contract state required to match the signature * @param expiry The time at which to expire the signature * @param v The recovery byte of the signature * @param r Half of the ECDSA signature pair * @param s Half of the ECDSA signature pair */ function delegateBySig(address delegatee, uint nonce, uint expiry, uint8 v, bytes32 r, bytes32 s) external { bytes32 domainSeparator = keccak256(abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainId(), address(this))); bytes32 structHash = keccak256(abi.encode(DELEGATION_TYPEHASH, delegatee, nonce, expiry)); bytes32 digest = keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash)); address signatory = ecrecover(digest, v, r, s); require(signatory != address(0), "Ply::delegateBySig: invalid signature"); require(nonce == nonces[signatory]++, "Ply::delegateBySig: invalid nonce"); require(block.timestamp <= expiry, "Ply::delegateBySig: signature expired"); return _delegate(signatory, delegatee); } /** * @notice Gets the current votes balance for `account` * @param account The address to get votes balance * @return The number of current votes for `account` */ function getCurrentVotes(address account) external view returns (uint96) { uint32 nCheckpoints = numCheckpoints[account]; return nCheckpoints > 0 ? checkpoints[account][nCheckpoints - 1].votes : 0; } /** * @notice Determine the prior number of votes for an account as of a block number * @dev Block number must be a finalized block or else this function will revert to prevent misinformation. * @param account The address of the account to check * @param blockNumber The block number to get the vote balance at * @return The number of votes the account had as of the given block */ function getPriorVotes(address account, uint blockNumber) external view returns (uint96) { require(blockNumber < block.number, "Ply::getPriorVotes: not yet determined"); uint32 nCheckpoints = numCheckpoints[account]; if (nCheckpoints == 0) { return 0; } // First check most recent balance if (checkpoints[account][nCheckpoints - 1].fromBlock <= blockNumber) { return checkpoints[account][nCheckpoints - 1].votes; } // Next check implicit zero balance if (checkpoints[account][0].fromBlock > blockNumber) { return 0; } uint32 lower = 0; uint32 upper = nCheckpoints - 1; while (upper > lower) { uint32 center = upper - (upper - lower) / 2; // ceil, avoiding overflow Checkpoint memory cp = checkpoints[account][center]; if (cp.fromBlock == blockNumber) { return cp.votes; } else if (cp.fromBlock < blockNumber) { lower = center; } else { upper = center - 1; } } return checkpoints[account][lower].votes; } function _delegate(address delegator, address delegatee) internal { address currentDelegate = delegates[delegator]; uint96 delegatorBalance = balances[delegator]; delegates[delegator] = delegatee; emit DelegateChanged(delegator, currentDelegate, delegatee); _moveDelegates(currentDelegate, delegatee, delegatorBalance); } function _transferTokens(address src, address dst, uint96 amount) internal { require(src != address(0), "Ply::_transferTokens: cannot transfer from the zero address"); require(dst != address(0), "Ply::_transferTokens: cannot transfer to the zero address"); require(dst != address(this), "Ply::_transferTokens: cannot transfer to the token address"); balances[src] = sub96(balances[src], amount, "Ply::_transferTokens: transfer amount exceeds balance"); balances[dst] = add96(balances[dst], amount, "Ply::_transferTokens: transfer amount overflows"); emit Transfer(src, dst, amount); _moveDelegates(delegates[src], delegates[dst], amount); } function _moveDelegates(address srcRep, address dstRep, uint96 amount) internal { if (srcRep != dstRep && amount > 0) { if (srcRep != address(0)) { uint32 srcRepNum = numCheckpoints[srcRep]; uint96 srcRepOld = srcRepNum > 0 ? checkpoints[srcRep][srcRepNum - 1].votes : 0; uint96 srcRepNew = sub96(srcRepOld, amount, "Ply::_moveVotes: vote amount underflows"); _writeCheckpoint(srcRep, srcRepNum, srcRepOld, srcRepNew); } if (dstRep != address(0)) { uint32 dstRepNum = numCheckpoints[dstRep]; uint96 dstRepOld = dstRepNum > 0 ? checkpoints[dstRep][dstRepNum - 1].votes : 0; uint96 dstRepNew = add96(dstRepOld, amount, "Ply::_moveVotes: vote amount overflows"); _writeCheckpoint(dstRep, dstRepNum, dstRepOld, dstRepNew); } } } function _writeCheckpoint(address delegatee, uint32 nCheckpoints, uint96 oldVotes, uint96 newVotes) internal { uint32 blockNumber = safe32(block.number, "Ply::_writeCheckpoint: block number exceeds 32 bits"); if (nCheckpoints > 0 && checkpoints[delegatee][nCheckpoints - 1].fromBlock == blockNumber) { checkpoints[delegatee][nCheckpoints - 1].votes = newVotes; } else { checkpoints[delegatee][nCheckpoints] = Checkpoint(blockNumber, newVotes); numCheckpoints[delegatee] = nCheckpoints + 1; } emit DelegateVotesChanged(delegatee, oldVotes, newVotes); } function safe32(uint n, string memory errorMessage) internal pure returns (uint32) { require(n <= type(uint32).max, errorMessage); return uint32(n); } function safe96(uint n, string memory errorMessage) internal pure returns (uint96) { require(n <= type(uint96).max, errorMessage); return uint96(n); } function add96(uint96 a, uint96 b, string memory errorMessage) internal pure returns (uint96) { uint96 c = a + b; require(c >= a, errorMessage); return c; } function sub96(uint96 a, uint96 b, string memory errorMessage) internal pure returns (uint96) { require(b <= a, errorMessage); return a - b; } function getChainId() internal view returns (uint) { uint256 chainId; assembly { chainId := chainid() } return chainId; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newGovernance","type":"address"}],"name":"ClaimGovernance","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"fromDelegate","type":"address"},{"indexed":true,"internalType":"address","name":"toDelegate","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"DelegateVotesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newGovernance","type":"address"}],"name":"TransferGovernance","type":"event"},{"inputs":[],"name":"DELEGATION_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DOMAIN_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint32","name":"","type":"uint32"}],"name":"checkpoints","outputs":[{"internalType":"uint32","name":"fromBlock","type":"uint32"},{"internalType":"uint96","name":"votes","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimGovernance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"createdAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"name":"delegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"delegateBySig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getCurrentVotes","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPriorVotes","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"governance","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint96","name":"amount","type":"uint96"}],"name":"mintPly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"numCheckpoints","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingGovernance","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newGovernance","type":"address"}],"name":"transferGovernance","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b506040516200251338038062002513833981016040819052610031916100bf565b600080546001600160a01b0319166001600160a01b038316908117825580825260056020908152604080842080546b204fce5e3e250261100000006001600160601b0319909116811790915560038190554260025590519081529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3506100ef565b6000602082840312156100d157600080fd5b81516001600160a01b03811681146100e857600080fd5b9392505050565b61241480620000ff6000396000f3fe608060405234801561001057600080fd5b50600436106101b95760003560e01c8063775e9ce4116100f9578063cf09e0d011610097578063dd62ed3e11610071578063dd62ed3e146104a5578063e7a324dc146104e7578063f1127ed81461050e578063f39c38a01461057657600080fd5b8063cf09e0d014610476578063d38bfff41461047f578063d505accf1461049257600080fd5b806395d89b41116100d357806395d89b4114610401578063a9059cbb1461043d578063b4b5ea5714610450578063c3cda5201461046357600080fd5b8063775e9ce4146103a3578063782d6fe1146103b65780637ecebe00146103e157600080fd5b8063313ce567116101665780635c19a95c116101405780635c19a95c146103195780635d36b1901461032e5780636fcfff451461033657806370a082311461037157600080fd5b8063313ce567146102ab578063587cde1e146102c55780635aa6e6751461030657600080fd5b806320606b701161019757806320606b701461024a57806323b872dd1461027157806330adf81f1461028457600080fd5b806306fdde03146101be578063095ea7b31461021057806318160ddd14610233575b600080fd5b6101fa6040518060400160405280600e81526020017f4175726967616d6920546f6b656e00000000000000000000000000000000000081525081565b6040516102079190611e59565b60405180910390f35b61022361021e366004611eca565b610589565b6040519015158152602001610207565b61023c60035481565b604051908152602001610207565b61023c7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b61022361027f366004611ef4565b61064f565b61023c7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b6102b3601281565b60405160ff9091168152602001610207565b6102ee6102d3366004611f30565b6006602052600090815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610207565b6000546102ee906001600160a01b031681565b61032c610327366004611f30565b610799565b005b61032c6107a6565b61035c610344366004611f30565b60086020526000908152604090205463ffffffff1681565b60405163ffffffff9091168152602001610207565b61023c61037f366004611f30565b6001600160a01b03166000908152600560205260409020546001600160601b031690565b61032c6103b1366004611f4b565b61087b565b6103c96103c4366004611eca565b610a6c565b6040516001600160601b039091168152602001610207565b61023c6103ef366004611f30565b60096020526000908152604090205481565b6101fa6040518060400160405280600381526020017f504c59000000000000000000000000000000000000000000000000000000000081525081565b61022361044b366004611eca565b610d0c565b6103c961045e366004611f30565b610d48565b61032c610471366004611f9f565b610dc7565b61023c60025481565b61032c61048d366004611f30565b61112c565b61032c6104a0366004611ff7565b6111f2565b61023c6104b3366004612061565b6001600160a01b0391821660009081526004602090815260408083209390941682529190915220546001600160601b031690565b61023c7fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf81565b61055261051c366004612094565b600760209081526000928352604080842090915290825290205463ffffffff81169064010000000090046001600160601b031682565b6040805163ffffffff90931683526001600160601b03909116602083015201610207565b6001546102ee906001600160a01b031681565b6000806000198314156105a457506001600160601b036105c9565b6105c68360405180606001604052806024815260200161220560249139611612565b90505b3360008181526004602090815260408083206001600160a01b0389168085529083529281902080546bffffffffffffffffffffffff19166001600160601b03871690811790915590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a360019150505b92915050565b6001600160a01b03831660009081526004602090815260408083203380855290835281842054825160608101909352602480845291936001600160601b039091169285926106a7928892919061220590830139611612565b9050866001600160a01b0316836001600160a01b0316141580156106d457506001600160601b0382811614155b156107815760006106fe83836040518060600160405280603c81526020016123a3603c9139611645565b6001600160a01b038981166000818152600460209081526040808320948a168084529482529182902080546bffffffffffffffffffffffff19166001600160601b0387169081179091559151918252939450919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505b61078c87878361168f565b5060019695505050505050565b6107a33382611969565b50565b6001546001600160a01b031633146108055760405162461bcd60e51b815260206004820152601060248201527f57726f6e6720676f7665726e616e63650000000000000000000000000000000060448201526064015b60405180910390fd5b60018054600080546001600160a01b0383167fffffffffffffffffffffffff000000000000000000000000000000000000000091821681179092559091169091556040519081527f7ce9f0b2f920547bdcee6a4c6760e8545ed1d90004643f66b4872bdba125ba499060200160405180910390a1565b6000546001600160a01b031633146108d55760405162461bcd60e51b815260206004820152601860248201527f43616c6c6572206973206e6f7420676f7665726e616e6365000000000000000060448201526064016107fc565b6002546108e6906301e133806120f8565b42116109345760405162461bcd60e51b815260206004820152601460248201527f4d7573742062652061667465722031207965617200000000000000000000000060448201526064016107fc565b6001600160a01b03821660009081526005602090815260409182902054825160608101909352602b80845261097f936001600160601b03909216928592919061237890830139611a0b565b60056000846001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160601b0302191690836001600160601b031602179055506109ed6003548260405180606001604052806023815260200161235560239139611a0b565b6001600160601b03166003556001600160a01b03808316600090815260066020526040812054610a1e921683611a58565b6040516001600160601b03821681526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6000438210610ae35760405162461bcd60e51b815260206004820152602660248201527f506c793a3a6765745072696f72566f7465733a206e6f7420796574206465746560448201527f726d696e6564000000000000000000000000000000000000000000000000000060648201526084016107fc565b6001600160a01b03831660009081526008602052604090205463ffffffff1680610b11576000915050610649565b6001600160a01b03841660009081526007602052604081208491610b36600185612110565b63ffffffff90811682526020820192909252604001600020541611610baa576001600160a01b038416600090815260076020526040812090610b79600184612110565b63ffffffff16815260208101919091526040016000205464010000000090046001600160601b031691506106499050565b6001600160a01b038416600090815260076020908152604080832083805290915290205463ffffffff16831015610be5576000915050610649565b600080610bf3600184612110565b90505b8163ffffffff168163ffffffff161115610cc65760006002610c188484612110565b610c229190612135565b610c2c9083612110565b6001600160a01b038816600090815260076020908152604080832063ffffffff8581168552908352928190208151808301909252549283168082526401000000009093046001600160601b031691810191909152919250871415610c9a576020015194506106499350505050565b805163ffffffff16871115610cb157819350610cbf565b610cbc600183612110565b92505b5050610bf6565b506001600160a01b038516600090815260076020908152604080832063ffffffff909416835292905220546001600160601b036401000000009091041691505092915050565b600080610d31836040518060600160405280602581526020016122fb60259139611612565b9050610d3e33858361168f565b5060019392505050565b6001600160a01b03811660009081526008602052604081205463ffffffff1680610d73576000610dc0565b6001600160a01b038316600090815260076020526040812090610d97600184612110565b63ffffffff16815260208101919091526040016000205464010000000090046001600160601b03165b9392505050565b604080518082018252600e81527f4175726967616d6920546f6b656e00000000000000000000000000000000000060209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527fd124143b502bb80f6301883906fe154333e81a44ddfae9a08732bcae2c831cee81840152466060820152306080808301919091528351808303909101815260a0820184528051908301207fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60c08301526001600160a01b038a1660e08301526101008201899052610120808301899052845180840390910181526101408301909452835193909201929092207f19010000000000000000000000000000000000000000000000000000000000006101608401526101628301829052610182830181905290916000906101a20160408051601f198184030181528282528051602091820120600080855291840180845281905260ff8a169284019290925260608301889052608083018790529092509060019060a0016020604051602081039080840390855afa158015610f7a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166110035760405162461bcd60e51b815260206004820152602560248201527f506c793a3a64656c656761746542795369673a20696e76616c6964207369676e60448201527f617475726500000000000000000000000000000000000000000000000000000060648201526084016107fc565b6001600160a01b03811660009081526009602052604081208054916110278361217f565b91905055891461109f5760405162461bcd60e51b815260206004820152602160248201527f506c793a3a64656c656761746542795369673a20696e76616c6964206e6f6e6360448201527f650000000000000000000000000000000000000000000000000000000000000060648201526084016107fc565b874211156111155760405162461bcd60e51b815260206004820152602560248201527f506c793a3a64656c656761746542795369673a207369676e617475726520657860448201527f706972656400000000000000000000000000000000000000000000000000000060648201526084016107fc565b61111f818b611969565b505050505b505050505050565b6000546001600160a01b031633146111865760405162461bcd60e51b815260206004820152601860248201527f43616c6c6572206973206e6f7420676f7665726e616e6365000000000000000060448201526064016107fc565b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527fde4aabcd09171142d82dd9e667db43bf0dca12f30fa0aec30859875d35ecb5d69060200160405180910390a150565b600060001986141561120c57506001600160601b03611231565b61122e866040518060600160405280602381526020016122d860239139611612565b90505b604080518082018252600e81527f4175726967616d6920546f6b656e00000000000000000000000000000000000060209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527fd124143b502bb80f6301883906fe154333e81a44ddfae9a08732bcae2c831cee81840152466060820152306080808301919091528351808303909101815260a090910183528051908201206001600160a01b038b166000908152600990925291812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918c918c918c9190866113248361217f565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810188905260e001604051602081830303815290604052805190602001209050600082826040516020016113be9291907f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff8b169284019290925260608301899052608083018890529092509060019060a0016020604051602081039080840390855afa158015611429573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661148c5760405162461bcd60e51b815260206004820152601e60248201527f506c793a3a7065726d69743a20696e76616c6964207369676e6174757265000060448201526064016107fc565b8b6001600160a01b0316816001600160a01b0316146114ed5760405162461bcd60e51b815260206004820152601960248201527f506c793a3a7065726d69743a20756e617574686f72697a65640000000000000060448201526064016107fc565b8842111561153d5760405162461bcd60e51b815260206004820152601e60248201527f506c793a3a7065726d69743a207369676e61747572652065787069726564000060448201526064016107fc565b84600460008e6001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160601b0302191690836001600160601b031602179055508a6001600160a01b03168c6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925876040516115fc91906001600160601b0391909116815260200190565b60405180910390a3505050505050505050505050565b6000816001600160601b0384111561163d5760405162461bcd60e51b81526004016107fc9190611e59565b509192915050565b6000836001600160601b0316836001600160601b03161115829061167c5760405162461bcd60e51b81526004016107fc9190611e59565b50611687838561219a565b949350505050565b6001600160a01b03831661170b5760405162461bcd60e51b815260206004820152603b60248201527f506c793a3a5f7472616e73666572546f6b656e733a2063616e6e6f742074726160448201527f6e736665722066726f6d20746865207a65726f2061646472657373000000000060648201526084016107fc565b6001600160a01b0382166117875760405162461bcd60e51b815260206004820152603960248201527f506c793a3a5f7472616e73666572546f6b656e733a2063616e6e6f742074726160448201527f6e7366657220746f20746865207a65726f20616464726573730000000000000060648201526084016107fc565b6001600160a01b0382163014156118065760405162461bcd60e51b815260206004820152603a60248201527f506c793a3a5f7472616e73666572546f6b656e733a2063616e6e6f742074726160448201527f6e7366657220746f2074686520746f6b656e206164647265737300000000000060648201526084016107fc565b6001600160a01b038316600090815260056020908152604091829020548251606081019093526035808452611851936001600160601b03909216928592919061232090830139611645565b6001600160a01b03848116600090815260056020908152604080832080546bffffffffffffffffffffffff19166001600160601b0396871617905592861682529082902054825160608101909352602f8084526118be949190911692859290919061227690830139611a0b565b6001600160a01b0383811660008181526005602090815260409182902080546bffffffffffffffffffffffff19166001600160601b03968716179055905193851684529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36001600160a01b0380841660009081526006602052604080822054858416835291205461196492918216911683611a58565b505050565b6001600160a01b03808316600081815260066020818152604080842080546005845282862054949093528787167fffffffffffffffffffffffff000000000000000000000000000000000000000084168117909155905191909516946001600160601b039092169391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4611a05828483611a58565b50505050565b600080611a1884866121ba565b9050846001600160601b0316816001600160601b031610158390611a4f5760405162461bcd60e51b81526004016107fc9190611e59565b50949350505050565b816001600160a01b0316836001600160a01b031614158015611a8357506000816001600160601b0316115b15611964576001600160a01b03831615611b49576001600160a01b03831660009081526008602052604081205463ffffffff169081611ac3576000611b10565b6001600160a01b038516600090815260076020526040812090611ae7600185612110565b63ffffffff16815260208101919091526040016000205464010000000090046001600160601b03165b90506000611b37828560405180606001604052806027815260200161224f60279139611645565b9050611b4586848484611c02565b5050505b6001600160a01b03821615611964576001600160a01b03821660009081526008602052604081205463ffffffff169081611b84576000611bd1565b6001600160a01b038416600090815260076020526040812090611ba8600185612110565b63ffffffff16815260208101919091526040016000205464010000000090046001600160601b03165b90506000611bf8828560405180606001604052806026815260200161222960269139611a0b565b9050611124858484845b6000611c26436040518060600160405280603381526020016122a560339139611e35565b905060008463ffffffff16118015611c8057506001600160a01b038516600090815260076020526040812063ffffffff831691611c64600188612110565b63ffffffff908116825260208201929092526040016000205416145b15611d04576001600160a01b03851660009081526007602052604081208391611caa600188612110565b63ffffffff168152602081019190915260400160002080546001600160601b0392909216640100000000027fffffffffffffffffffffffffffffffff000000000000000000000000ffffffff909216919091179055611de0565b60408051808201825263ffffffff80841682526001600160601b0380861660208085019182526001600160a01b038b166000908152600782528681208b8616825290915294909420925183549451909116640100000000027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909416911617919091179055611d948460016121e5565b6001600160a01b038616600090815260086020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff929092169190911790555b604080516001600160601b038086168252841660208201526001600160a01b038716917fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724910160405180910390a25050505050565b60008163ffffffff84111561163d5760405162461bcd60e51b81526004016107fc91905b600060208083528351808285015260005b81811015611e8657858101830151858201604001528201611e6a565b81811115611e98576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114611ec557600080fd5b919050565b60008060408385031215611edd57600080fd5b611ee683611eae565b946020939093013593505050565b600080600060608486031215611f0957600080fd5b611f1284611eae565b9250611f2060208501611eae565b9150604084013590509250925092565b600060208284031215611f4257600080fd5b610dc082611eae565b60008060408385031215611f5e57600080fd5b611f6783611eae565b915060208301356001600160601b0381168114611f8357600080fd5b809150509250929050565b803560ff81168114611ec557600080fd5b60008060008060008060c08789031215611fb857600080fd5b611fc187611eae565b95506020870135945060408701359350611fdd60608801611f8e565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a03121561201257600080fd5b61201b88611eae565b965061202960208901611eae565b9550604088013594506060880135935061204560808901611f8e565b925060a0880135915060c0880135905092959891949750929550565b6000806040838503121561207457600080fd5b61207d83611eae565b915061208b60208401611eae565b90509250929050565b600080604083850312156120a757600080fd5b6120b083611eae565b9150602083013563ffffffff81168114611f8357600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561210b5761210b6120c9565b500190565b600063ffffffff8381169083168181101561212d5761212d6120c9565b039392505050565b600063ffffffff80841680612173577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910492915050565b6000600019821415612193576121936120c9565b5060010190565b60006001600160601b038381169083168181101561212d5761212d6120c9565b60006001600160601b038083168185168083038211156121dc576121dc6120c9565b01949350505050565b600063ffffffff8083168185168083038211156121dc576121dc6120c956fe506c793a3a617070726f76653a20616d6f756e7420657863656564732039362062697473506c793a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f7773506c793a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773506c793a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f7773506c793a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473506c793a3a7065726d69743a20616d6f756e7420657863656564732039362062697473506c793a3a7472616e736665723a20616d6f756e7420657863656564732039362062697473506c793a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e6365506c793a6d696e74506c793a20746f74616c20737570706c79206f766572666c6f7773506c793a3a6d696e74506c793a206e6577206163636f756e742062616c616e6365206f766572666c6f7773506c793a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e6365a2646970667358221220e781ef015064e63f6c67ce9e0e6df5b55b82150fd3d9b9bd26142dc3fd2bbeb364736f6c634300080b0033000000000000000000000000c86ed20c7b8a95aebd102e60e686f363f70d4938
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101b95760003560e01c8063775e9ce4116100f9578063cf09e0d011610097578063dd62ed3e11610071578063dd62ed3e146104a5578063e7a324dc146104e7578063f1127ed81461050e578063f39c38a01461057657600080fd5b8063cf09e0d014610476578063d38bfff41461047f578063d505accf1461049257600080fd5b806395d89b41116100d357806395d89b4114610401578063a9059cbb1461043d578063b4b5ea5714610450578063c3cda5201461046357600080fd5b8063775e9ce4146103a3578063782d6fe1146103b65780637ecebe00146103e157600080fd5b8063313ce567116101665780635c19a95c116101405780635c19a95c146103195780635d36b1901461032e5780636fcfff451461033657806370a082311461037157600080fd5b8063313ce567146102ab578063587cde1e146102c55780635aa6e6751461030657600080fd5b806320606b701161019757806320606b701461024a57806323b872dd1461027157806330adf81f1461028457600080fd5b806306fdde03146101be578063095ea7b31461021057806318160ddd14610233575b600080fd5b6101fa6040518060400160405280600e81526020017f4175726967616d6920546f6b656e00000000000000000000000000000000000081525081565b6040516102079190611e59565b60405180910390f35b61022361021e366004611eca565b610589565b6040519015158152602001610207565b61023c60035481565b604051908152602001610207565b61023c7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b61022361027f366004611ef4565b61064f565b61023c7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b6102b3601281565b60405160ff9091168152602001610207565b6102ee6102d3366004611f30565b6006602052600090815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610207565b6000546102ee906001600160a01b031681565b61032c610327366004611f30565b610799565b005b61032c6107a6565b61035c610344366004611f30565b60086020526000908152604090205463ffffffff1681565b60405163ffffffff9091168152602001610207565b61023c61037f366004611f30565b6001600160a01b03166000908152600560205260409020546001600160601b031690565b61032c6103b1366004611f4b565b61087b565b6103c96103c4366004611eca565b610a6c565b6040516001600160601b039091168152602001610207565b61023c6103ef366004611f30565b60096020526000908152604090205481565b6101fa6040518060400160405280600381526020017f504c59000000000000000000000000000000000000000000000000000000000081525081565b61022361044b366004611eca565b610d0c565b6103c961045e366004611f30565b610d48565b61032c610471366004611f9f565b610dc7565b61023c60025481565b61032c61048d366004611f30565b61112c565b61032c6104a0366004611ff7565b6111f2565b61023c6104b3366004612061565b6001600160a01b0391821660009081526004602090815260408083209390941682529190915220546001600160601b031690565b61023c7fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf81565b61055261051c366004612094565b600760209081526000928352604080842090915290825290205463ffffffff81169064010000000090046001600160601b031682565b6040805163ffffffff90931683526001600160601b03909116602083015201610207565b6001546102ee906001600160a01b031681565b6000806000198314156105a457506001600160601b036105c9565b6105c68360405180606001604052806024815260200161220560249139611612565b90505b3360008181526004602090815260408083206001600160a01b0389168085529083529281902080546bffffffffffffffffffffffff19166001600160601b03871690811790915590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a360019150505b92915050565b6001600160a01b03831660009081526004602090815260408083203380855290835281842054825160608101909352602480845291936001600160601b039091169285926106a7928892919061220590830139611612565b9050866001600160a01b0316836001600160a01b0316141580156106d457506001600160601b0382811614155b156107815760006106fe83836040518060600160405280603c81526020016123a3603c9139611645565b6001600160a01b038981166000818152600460209081526040808320948a168084529482529182902080546bffffffffffffffffffffffff19166001600160601b0387169081179091559151918252939450919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505b61078c87878361168f565b5060019695505050505050565b6107a33382611969565b50565b6001546001600160a01b031633146108055760405162461bcd60e51b815260206004820152601060248201527f57726f6e6720676f7665726e616e63650000000000000000000000000000000060448201526064015b60405180910390fd5b60018054600080546001600160a01b0383167fffffffffffffffffffffffff000000000000000000000000000000000000000091821681179092559091169091556040519081527f7ce9f0b2f920547bdcee6a4c6760e8545ed1d90004643f66b4872bdba125ba499060200160405180910390a1565b6000546001600160a01b031633146108d55760405162461bcd60e51b815260206004820152601860248201527f43616c6c6572206973206e6f7420676f7665726e616e6365000000000000000060448201526064016107fc565b6002546108e6906301e133806120f8565b42116109345760405162461bcd60e51b815260206004820152601460248201527f4d7573742062652061667465722031207965617200000000000000000000000060448201526064016107fc565b6001600160a01b03821660009081526005602090815260409182902054825160608101909352602b80845261097f936001600160601b03909216928592919061237890830139611a0b565b60056000846001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160601b0302191690836001600160601b031602179055506109ed6003548260405180606001604052806023815260200161235560239139611a0b565b6001600160601b03166003556001600160a01b03808316600090815260066020526040812054610a1e921683611a58565b6040516001600160601b03821681526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6000438210610ae35760405162461bcd60e51b815260206004820152602660248201527f506c793a3a6765745072696f72566f7465733a206e6f7420796574206465746560448201527f726d696e6564000000000000000000000000000000000000000000000000000060648201526084016107fc565b6001600160a01b03831660009081526008602052604090205463ffffffff1680610b11576000915050610649565b6001600160a01b03841660009081526007602052604081208491610b36600185612110565b63ffffffff90811682526020820192909252604001600020541611610baa576001600160a01b038416600090815260076020526040812090610b79600184612110565b63ffffffff16815260208101919091526040016000205464010000000090046001600160601b031691506106499050565b6001600160a01b038416600090815260076020908152604080832083805290915290205463ffffffff16831015610be5576000915050610649565b600080610bf3600184612110565b90505b8163ffffffff168163ffffffff161115610cc65760006002610c188484612110565b610c229190612135565b610c2c9083612110565b6001600160a01b038816600090815260076020908152604080832063ffffffff8581168552908352928190208151808301909252549283168082526401000000009093046001600160601b031691810191909152919250871415610c9a576020015194506106499350505050565b805163ffffffff16871115610cb157819350610cbf565b610cbc600183612110565b92505b5050610bf6565b506001600160a01b038516600090815260076020908152604080832063ffffffff909416835292905220546001600160601b036401000000009091041691505092915050565b600080610d31836040518060600160405280602581526020016122fb60259139611612565b9050610d3e33858361168f565b5060019392505050565b6001600160a01b03811660009081526008602052604081205463ffffffff1680610d73576000610dc0565b6001600160a01b038316600090815260076020526040812090610d97600184612110565b63ffffffff16815260208101919091526040016000205464010000000090046001600160601b03165b9392505050565b604080518082018252600e81527f4175726967616d6920546f6b656e00000000000000000000000000000000000060209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527fd124143b502bb80f6301883906fe154333e81a44ddfae9a08732bcae2c831cee81840152466060820152306080808301919091528351808303909101815260a0820184528051908301207fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60c08301526001600160a01b038a1660e08301526101008201899052610120808301899052845180840390910181526101408301909452835193909201929092207f19010000000000000000000000000000000000000000000000000000000000006101608401526101628301829052610182830181905290916000906101a20160408051601f198184030181528282528051602091820120600080855291840180845281905260ff8a169284019290925260608301889052608083018790529092509060019060a0016020604051602081039080840390855afa158015610f7a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166110035760405162461bcd60e51b815260206004820152602560248201527f506c793a3a64656c656761746542795369673a20696e76616c6964207369676e60448201527f617475726500000000000000000000000000000000000000000000000000000060648201526084016107fc565b6001600160a01b03811660009081526009602052604081208054916110278361217f565b91905055891461109f5760405162461bcd60e51b815260206004820152602160248201527f506c793a3a64656c656761746542795369673a20696e76616c6964206e6f6e6360448201527f650000000000000000000000000000000000000000000000000000000000000060648201526084016107fc565b874211156111155760405162461bcd60e51b815260206004820152602560248201527f506c793a3a64656c656761746542795369673a207369676e617475726520657860448201527f706972656400000000000000000000000000000000000000000000000000000060648201526084016107fc565b61111f818b611969565b505050505b505050505050565b6000546001600160a01b031633146111865760405162461bcd60e51b815260206004820152601860248201527f43616c6c6572206973206e6f7420676f7665726e616e6365000000000000000060448201526064016107fc565b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527fde4aabcd09171142d82dd9e667db43bf0dca12f30fa0aec30859875d35ecb5d69060200160405180910390a150565b600060001986141561120c57506001600160601b03611231565b61122e866040518060600160405280602381526020016122d860239139611612565b90505b604080518082018252600e81527f4175726967616d6920546f6b656e00000000000000000000000000000000000060209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527fd124143b502bb80f6301883906fe154333e81a44ddfae9a08732bcae2c831cee81840152466060820152306080808301919091528351808303909101815260a090910183528051908201206001600160a01b038b166000908152600990925291812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918c918c918c9190866113248361217f565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810188905260e001604051602081830303815290604052805190602001209050600082826040516020016113be9291907f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff8b169284019290925260608301899052608083018890529092509060019060a0016020604051602081039080840390855afa158015611429573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661148c5760405162461bcd60e51b815260206004820152601e60248201527f506c793a3a7065726d69743a20696e76616c6964207369676e6174757265000060448201526064016107fc565b8b6001600160a01b0316816001600160a01b0316146114ed5760405162461bcd60e51b815260206004820152601960248201527f506c793a3a7065726d69743a20756e617574686f72697a65640000000000000060448201526064016107fc565b8842111561153d5760405162461bcd60e51b815260206004820152601e60248201527f506c793a3a7065726d69743a207369676e61747572652065787069726564000060448201526064016107fc565b84600460008e6001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160601b0302191690836001600160601b031602179055508a6001600160a01b03168c6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925876040516115fc91906001600160601b0391909116815260200190565b60405180910390a3505050505050505050505050565b6000816001600160601b0384111561163d5760405162461bcd60e51b81526004016107fc9190611e59565b509192915050565b6000836001600160601b0316836001600160601b03161115829061167c5760405162461bcd60e51b81526004016107fc9190611e59565b50611687838561219a565b949350505050565b6001600160a01b03831661170b5760405162461bcd60e51b815260206004820152603b60248201527f506c793a3a5f7472616e73666572546f6b656e733a2063616e6e6f742074726160448201527f6e736665722066726f6d20746865207a65726f2061646472657373000000000060648201526084016107fc565b6001600160a01b0382166117875760405162461bcd60e51b815260206004820152603960248201527f506c793a3a5f7472616e73666572546f6b656e733a2063616e6e6f742074726160448201527f6e7366657220746f20746865207a65726f20616464726573730000000000000060648201526084016107fc565b6001600160a01b0382163014156118065760405162461bcd60e51b815260206004820152603a60248201527f506c793a3a5f7472616e73666572546f6b656e733a2063616e6e6f742074726160448201527f6e7366657220746f2074686520746f6b656e206164647265737300000000000060648201526084016107fc565b6001600160a01b038316600090815260056020908152604091829020548251606081019093526035808452611851936001600160601b03909216928592919061232090830139611645565b6001600160a01b03848116600090815260056020908152604080832080546bffffffffffffffffffffffff19166001600160601b0396871617905592861682529082902054825160608101909352602f8084526118be949190911692859290919061227690830139611a0b565b6001600160a01b0383811660008181526005602090815260409182902080546bffffffffffffffffffffffff19166001600160601b03968716179055905193851684529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36001600160a01b0380841660009081526006602052604080822054858416835291205461196492918216911683611a58565b505050565b6001600160a01b03808316600081815260066020818152604080842080546005845282862054949093528787167fffffffffffffffffffffffff000000000000000000000000000000000000000084168117909155905191909516946001600160601b039092169391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4611a05828483611a58565b50505050565b600080611a1884866121ba565b9050846001600160601b0316816001600160601b031610158390611a4f5760405162461bcd60e51b81526004016107fc9190611e59565b50949350505050565b816001600160a01b0316836001600160a01b031614158015611a8357506000816001600160601b0316115b15611964576001600160a01b03831615611b49576001600160a01b03831660009081526008602052604081205463ffffffff169081611ac3576000611b10565b6001600160a01b038516600090815260076020526040812090611ae7600185612110565b63ffffffff16815260208101919091526040016000205464010000000090046001600160601b03165b90506000611b37828560405180606001604052806027815260200161224f60279139611645565b9050611b4586848484611c02565b5050505b6001600160a01b03821615611964576001600160a01b03821660009081526008602052604081205463ffffffff169081611b84576000611bd1565b6001600160a01b038416600090815260076020526040812090611ba8600185612110565b63ffffffff16815260208101919091526040016000205464010000000090046001600160601b03165b90506000611bf8828560405180606001604052806026815260200161222960269139611a0b565b9050611124858484845b6000611c26436040518060600160405280603381526020016122a560339139611e35565b905060008463ffffffff16118015611c8057506001600160a01b038516600090815260076020526040812063ffffffff831691611c64600188612110565b63ffffffff908116825260208201929092526040016000205416145b15611d04576001600160a01b03851660009081526007602052604081208391611caa600188612110565b63ffffffff168152602081019190915260400160002080546001600160601b0392909216640100000000027fffffffffffffffffffffffffffffffff000000000000000000000000ffffffff909216919091179055611de0565b60408051808201825263ffffffff80841682526001600160601b0380861660208085019182526001600160a01b038b166000908152600782528681208b8616825290915294909420925183549451909116640100000000027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909416911617919091179055611d948460016121e5565b6001600160a01b038616600090815260086020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff929092169190911790555b604080516001600160601b038086168252841660208201526001600160a01b038716917fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724910160405180910390a25050505050565b60008163ffffffff84111561163d5760405162461bcd60e51b81526004016107fc91905b600060208083528351808285015260005b81811015611e8657858101830151858201604001528201611e6a565b81811115611e98576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114611ec557600080fd5b919050565b60008060408385031215611edd57600080fd5b611ee683611eae565b946020939093013593505050565b600080600060608486031215611f0957600080fd5b611f1284611eae565b9250611f2060208501611eae565b9150604084013590509250925092565b600060208284031215611f4257600080fd5b610dc082611eae565b60008060408385031215611f5e57600080fd5b611f6783611eae565b915060208301356001600160601b0381168114611f8357600080fd5b809150509250929050565b803560ff81168114611ec557600080fd5b60008060008060008060c08789031215611fb857600080fd5b611fc187611eae565b95506020870135945060408701359350611fdd60608801611f8e565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a03121561201257600080fd5b61201b88611eae565b965061202960208901611eae565b9550604088013594506060880135935061204560808901611f8e565b925060a0880135915060c0880135905092959891949750929550565b6000806040838503121561207457600080fd5b61207d83611eae565b915061208b60208401611eae565b90509250929050565b600080604083850312156120a757600080fd5b6120b083611eae565b9150602083013563ffffffff81168114611f8357600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561210b5761210b6120c9565b500190565b600063ffffffff8381169083168181101561212d5761212d6120c9565b039392505050565b600063ffffffff80841680612173577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910492915050565b6000600019821415612193576121936120c9565b5060010190565b60006001600160601b038381169083168181101561212d5761212d6120c9565b60006001600160601b038083168185168083038211156121dc576121dc6120c9565b01949350505050565b600063ffffffff8083168185168083038211156121dc576121dc6120c956fe506c793a3a617070726f76653a20616d6f756e7420657863656564732039362062697473506c793a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f7773506c793a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773506c793a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f7773506c793a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473506c793a3a7065726d69743a20616d6f756e7420657863656564732039362062697473506c793a3a7472616e736665723a20616d6f756e7420657863656564732039362062697473506c793a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e6365506c793a6d696e74506c793a20746f74616c20737570706c79206f766572666c6f7773506c793a3a6d696e74506c793a206e6577206163636f756e742062616c616e6365206f766572666c6f7773506c793a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e6365a2646970667358221220e781ef015064e63f6c67ce9e0e6df5b55b82150fd3d9b9bd26142dc3fd2bbeb364736f6c634300080b0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000c86ed20c7b8a95aebd102e60e686f363f70d4938
-----Decoded View---------------
Arg [0] : account (address): 0xC86ED20C7B8a95AebD102E60e686f363F70d4938
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000c86ed20c7b8a95aebd102e60e686f363f70d4938
Deployed Bytecode Sourcemap
27:16790:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;201:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;5881:433;;;;;;:::i;:::-;;:::i;:::-;;;1300:14:1;;1293:22;1275:41;;1263:2;1248:18;5881:433:0;1135:187:1;647:23:0;;;;;;;;;1473:25:1;;;1461:2;1446:18;647:23:0;1327:177:1;1535:122:0;;1577:80;1535:122;;9003:676;;;;;;:::i;:::-;;:::i;1958:137::-;;2000:95;1958:137;;408:35;;441:2;408:35;;;;;2196:4:1;2184:17;;;2166:36;;2154:2;2139:18;408:35:0;2024:184:1;985:45:0;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;985:45:0;;;;;;-1:-1:-1;;;;;2568:55:1;;;2550:74;;2538:2;2523:18;985:45:0;2404:226:1;47:25:0;;;;;-1:-1:-1;;;;;47:25:0;;;9827:104;;;;;;:::i;:::-;;:::i;:::-;;3990:240;;;:::i;1413:49::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2809:10:1;2797:23;;;2779:42;;2767:2;2752:18;1413:49:0;2635:192:1;8084:108:0;;;;;;:::i;:::-;-1:-1:-1;;;;;8167:17:0;8143:4;8167:17;;;:8;:17;;;;;;-1:-1:-1;;;;;8167:17:0;;8084:108;4466:497;;;;;;:::i;:::-;;:::i;12019:1219::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;3365:39:1;;;3347:58;;3335:2;3320:18;12019:1219:0;3203:208:1;2176:39:0;;;;;;:::i;:::-;;;;;;;;;;;;;;308:37;;;;;;;;;;;;;;;;;;;;;8456:237;;;;;;:::i;:::-;;:::i;11366:222::-;;;;;;:::i;:::-;;:::i;10365:800::-;;;;;;:::i;:::-;;:::i;118:24::-;;;;;;3726:176;;;;;;:::i;:::-;;:::i;6804:1077::-;;;;;;:::i;:::-;;:::i;5267:136::-;;;;;;:::i;:::-;-1:-1:-1;;;;;5367:19:0;;;5343:4;5367:19;;;:10;:19;;;;;;;;:28;;;;;;;;;;;;-1:-1:-1;;;;;5367:28:0;;5267:136;1751:117;;1797:71;1751:117;;1274:70;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1274:70:0;;;;;;;5544:10:1;5532:23;;;5514:42;;-1:-1:-1;;;;;5592:39:1;;;5587:2;5572:18;;5565:67;5487:18;1274:70:0;5344:294:1;79:32:0;;;;;-1:-1:-1;;;;;79:32:0;;;5881:433;5949:4;5966:13;-1:-1:-1;;5994:9:0;:30;5990:187;;;-1:-1:-1;;;;;;5990:187:0;;;6108:57;6115:9;6108:57;;;;;;;;;;;;;;;;;:6;:57::i;:::-;6099:66;;5990:187;6200:10;6189:22;;;;:10;:22;;;;;;;;-1:-1:-1;;;;;6189:31:0;;;;;;;;;;;;:40;;-1:-1:-1;;6189:40:0;-1:-1:-1;;;;;6189:40:0;;;;;;;;6247:37;;3347:58:1;;;6189:31:0;;6200:10;6247:37;;3320:18:1;6247:37:0;;;;;;;6302:4;6295:11;;;5881:433;;;;;:::o;9003:676::-;-1:-1:-1;;;;;9167:15:0;;9085:4;9167:15;;;:10;:15;;;;;;;;9120:10;9167:24;;;;;;;;;;9218:57;;;;;;;;;;;;9120:10;;-1:-1:-1;;;;;9167:24:0;;;;9085:4;;9218:57;;9225:9;;9218:57;;;;;;;:6;:57::i;:::-;9202:73;;9303:3;-1:-1:-1;;;;;9292:14:0;:7;-1:-1:-1;;;;;9292:14:0;;;:54;;;;-1:-1:-1;;;;;;9310:36:0;;;;;9292:54;9288:316;;;9363:19;9385:95;9391:16;9409:6;9385:95;;;;;;;;;;;;;;;;;:5;:95::i;:::-;-1:-1:-1;;;;;9495:15:0;;;;;;;:10;:15;;;;;;;;:24;;;;;;;;;;;;;:39;;-1:-1:-1;;9495:39:0;-1:-1:-1;;;;;9495:39:0;;;;;;;;9556:36;;3347:58:1;;;9495:39:0;;-1:-1:-1;9495:24:0;;:15;;9556:36;;3320:18:1;9556:36:0;;;;;;;9348:256;9288:316;9616:33;9632:3;9637;9642:6;9616:15;:33::i;:::-;-1:-1:-1;9667:4:0;;9003:676;-1:-1:-1;;;;;;9003:676:0:o;9827:104::-;9891:32;9901:10;9913:9;9891;:32::i;:::-;9827:104;:::o;3990:240::-;4059:17;;-1:-1:-1;;;;;4059:17:0;4045:10;:31;4037:60;;;;-1:-1:-1;;;4037:60:0;;6059:2:1;4037:60:0;;;6041:21:1;6098:2;6078:18;;;6071:30;6137:18;6117;;;6110:46;6173:18;;4037:60:0;;;;;;;;;4121:17;;;;4108:30;;-1:-1:-1;;;;;4121:17:0;;4108:30;;;;;;;;;4149;;;;;;4195:27;;2550:74:1;;;4195:27:0;;2538:2:1;2523:18;4195:27:0;;;;;;;3990:240::o;4466:497::-;3143:10;;-1:-1:-1;;;;;3143:10:0;3157;3143:24;3135:61;;;;-1:-1:-1;;;3135:61:0;;6404:2:1;3135:61:0;;;6386:21:1;6443:2;6423:18;;;6416:30;6482:26;6462:18;;;6455:54;6526:18;;3135:61:0;6202:348:1;3135:61:0;4576:9:::1;::::0;:26:::1;::::0;4588:14:::1;4576:26;:::i;:::-;4558:15;:44;4550:77;;;::::0;-1:-1:-1;;;4550:77:0;;7079:2:1;4550:77:0::1;::::0;::::1;7061:21:1::0;7118:2;7098:18;;;7091:30;7157:22;7137:18;;;7130:50;7197:18;;4550:77:0::1;6877:344:1::0;4550:77:0::1;-1:-1:-1::0;;;;;4664:17:0;::::1;;::::0;;;:8:::1;:17;::::0;;;;;;;;;4658:79;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;4664:17:0;;::::1;::::0;4683:6;;4658:79;;::::1;::::0;;::::1;;:5;:79::i;:::-;4638:8;:17;4647:7;-1:-1:-1::0;;;;;4638:17:0::1;-1:-1:-1::0;;;;;4638:17:0::1;;;;;;;;;;;;;:99;;;;;-1:-1:-1::0;;;;;4638:99:0::1;;;;;-1:-1:-1::0;;;;;4638:99:0::1;;;;;;4762:73;4775:11;;4789:6;4762:73;;;;;;;;;;;;;;;;;:5;:73::i;:::-;-1:-1:-1::0;;;;;4748:87:0::1;:11;:87:::0;-1:-1:-1;;;;;4873:18:0;;::::1;4869:1;4873:18:::0;;;:9:::1;:18;::::0;;;;;4846:54:::1;::::0;4873:18:::1;4893:6:::0;4846:14:::1;:54::i;:::-;4918:37;::::0;-1:-1:-1;;;;;3365:39:1;;3347:58;;-1:-1:-1;;;;;4918:37:0;::::1;::::0;4935:1:::1;::::0;4918:37:::1;::::0;3335:2:1;3320:18;4918:37:0::1;;;;;;;4466:497:::0;;:::o;12019:1219::-;12100:6;12141:12;12127:11;:26;12119:77;;;;-1:-1:-1;;;12119:77:0;;7428:2:1;12119:77:0;;;7410:21:1;7467:2;7447:18;;;7440:30;7506:34;7486:18;;;7479:62;7577:8;7557:18;;;7550:36;7603:19;;12119:77:0;7226:402:1;12119:77:0;-1:-1:-1;;;;;12231:23:0;;12209:19;12231:23;;;:14;:23;;;;;;;;12269:17;12265:58;;12310:1;12303:8;;;;;12265:58;-1:-1:-1;;;;;12383:20:0;;;;;;:11;:20;;;;;12435:11;;12404:16;12419:1;12404:12;:16;:::i;:::-;12383:38;;;;;;;;;;;;;;;-1:-1:-1;12383:38:0;:48;;:63;12379:147;;-1:-1:-1;;;;;12470:20:0;;;;;;:11;:20;;;;;;12491:16;12506:1;12491:12;:16;:::i;:::-;12470:38;;;;;;;;;;;;;-1:-1:-1;12470:38:0;:44;;;;-1:-1:-1;;;;;12470:44:0;;-1:-1:-1;12463:51:0;;-1:-1:-1;12463:51:0;12379:147;-1:-1:-1;;;;;12587:20:0;;;;;;:11;:20;;;;;;;;:23;;;;;;;;:33;:23;:33;:47;-1:-1:-1;12583:88:0;;;12658:1;12651:8;;;;;12583:88;12683:12;;12725:16;12740:1;12725:12;:16;:::i;:::-;12710:31;;12752:428;12767:5;12759:13;;:5;:13;;;12752:428;;;12789:13;12831:1;12814:13;12822:5;12814;:13;:::i;:::-;12813:19;;;;:::i;:::-;12805:27;;:5;:27;:::i;:::-;-1:-1:-1;;;;;12897:20:0;;12874;12897;;;:11;:20;;;;;;;;:28;;;;;;;;;;;;;12874:51;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12874:51:0;;;;;;;;12897:28;;-1:-1:-1;12944:27:0;;12940:229;;;12999:8;;;;-1:-1:-1;12992:15:0;;-1:-1:-1;;;;12992:15:0;12940:229;13033:12;;:26;;;-1:-1:-1;13029:140:0;;;13088:6;13080:14;;13029:140;;;13143:10;13152:1;13143:6;:10;:::i;:::-;13135:18;;13029:140;12774:406;;12752:428;;;-1:-1:-1;;;;;;13197:20:0;;;;;;:11;:20;;;;;;;;:27;;;;;;;;;;:33;-1:-1:-1;;;;;13197:33:0;;;;;;-1:-1:-1;;12019:1219:0;;;;:::o;8456:237::-;8521:4;8538:13;8554:58;8561:9;8554:58;;;;;;;;;;;;;;;;;:6;:58::i;:::-;8538:74;;8623:40;8639:10;8651:3;8656:6;8623:15;:40::i;:::-;-1:-1:-1;8681:4:0;;8456:237;-1:-1:-1;;;8456:237:0:o;11366:222::-;-1:-1:-1;;;;;11472:23:0;;11431:6;11472:23;;;:14;:23;;;;;;;;11513:16;:67;;11579:1;11513:67;;;-1:-1:-1;;;;;11532:20:0;;;;;;:11;:20;;;;;;11553:16;11568:1;11553:12;:16;:::i;:::-;11532:38;;;;;;;;;;;;;-1:-1:-1;11532:38:0;:44;;;;-1:-1:-1;;;;;11532:44:0;11513:67;11506:74;11366:222;-1:-1:-1;;;11366:222:0:o;10365:800::-;10563:4;;;;;;;;;;;;;;;;;10519:80;;1577;10519;;;8440:25:1;10547:22:0;8481:18:1;;;8474:34;16771:9:0;8524:18:1;;;8517:34;10593:4:0;8567:18:1;;;;8560:83;;;;10519:80:0;;;;;;;;;;8412:19:1;;;10519:80:0;;10509:91;;;;;;1797:71;10642:57;;;8885:25:1;-1:-1:-1;;;;;8946:55:1;;8926:18;;;8919:83;9018:18;;;9011:34;;;9061:18;;;;9054:34;;;10642:57:0;;;;;;;;;;8857:19:1;;;10642:57:0;;;10632:68;;;;;;;;;;9369:66:1;10738:57:0;;;9357:79:1;9452:11;;;9445:27;;;9488:12;;;9481:28;;;10509:91:0;;-1:-1:-1;;9525:12:1;;10738:57:0;;;-1:-1:-1;;10738:57:0;;;;;;;;;10728:68;;10738:57;10728:68;;;;10807:17;10827:26;;;;;;;;;9775:25:1;;;9848:4;9836:17;;9816:18;;;9809:45;;;;9870:18;;;9863:34;;;9913:18;;;9906:34;;;10728:68:0;;-1:-1:-1;10807:17:0;10827:26;;9747:19:1;;10827:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10827:26:0;;-1:-1:-1;;10827:26:0;;;-1:-1:-1;;;;;;;10872:23:0;;10864:73;;;;-1:-1:-1;;;10864:73:0;;10153:2:1;10864:73:0;;;10135:21:1;10192:2;10172:18;;;10165:30;10231:34;10211:18;;;10204:62;10302:7;10282:18;;;10275:35;10327:19;;10864:73:0;9951:401:1;10864:73:0;-1:-1:-1;;;;;10965:17:0;;;;;;:6;:17;;;;;:19;;;;;;:::i;:::-;;;;;10956:5;:28;10948:74;;;;-1:-1:-1;;;10948:74:0;;10759:2:1;10948:74:0;;;10741:21:1;10798:2;10778:18;;;10771:30;10837:34;10817:18;;;10810:62;10908:3;10888:18;;;10881:31;10929:19;;10948:74:0;10557:397:1;10948:74:0;11060:6;11041:15;:25;;11033:75;;;;-1:-1:-1;;;11033:75:0;;11161:2:1;11033:75:0;;;11143:21:1;11200:2;11180:18;;;11173:30;11239:34;11219:18;;;11212:62;11310:7;11290:18;;;11283:35;11335:19;;11033:75:0;10959:401:1;11033:75:0;11126:31;11136:9;11147;11126;:31::i;:::-;11119:38;;;;10365:800;;;;;;;:::o;3726:176::-;3143:10;;-1:-1:-1;;;;;3143:10:0;3157;3143:24;3135:61;;;;-1:-1:-1;;;3135:61:0;;6404:2:1;3135:61:0;;;6386:21:1;6443:2;6423:18;;;6416:30;6482:26;6462:18;;;6455:54;6526:18;;3135:61:0;6202:348:1;3135:61:0;3812:17:::1;:33:::0;;;::::1;-1:-1:-1::0;;;;;3812:33:0;::::1;::::0;;::::1;::::0;;;3861::::1;::::0;2550:74:1;;;3861:33:0::1;::::0;2538:2:1;2523:18;3861:33:0::1;;;;;;;3726:176:::0;:::o;6804:1077::-;6934:13;-1:-1:-1;;6962:9:0;:30;6958:186;;;-1:-1:-1;;;;;;6958:186:0;;;7076:56;7083:9;7076:56;;;;;;;;;;;;;;;;;:6;:56::i;:::-;7067:65;;6958:186;7236:4;;;;;;;;;;;;;;;;;7192:80;;1577;7192;;;8440:25:1;7220:22:0;8481:18:1;;;8474:34;16771:9:0;8524:18:1;;;8517:34;7266:4:0;8567:18:1;;;;8560:83;;;;7192:80:0;;;;;;;;;;8412:19:1;;;;7192:80:0;;7182:91;;;;;;-1:-1:-1;;;;;7370:13:0;;-1:-1:-1;7370:13:0;;;:6;:13;;;;;;:15;;2000:95;;7370:13;;7350:7;;7359:9;;7370:15;-1:-1:-1;7370:15:0;;;:::i;:::-;;;;-1:-1:-1;7315:81:0;;;;;;11652:25:1;;;;-1:-1:-1;;;;;11774:15:1;;;11754:18;;;11747:43;11826:15;;;;11806:18;;;11799:43;11858:18;;;11851:34;11901:19;;;11894:35;11945:19;;;11938:35;;;11624:19;;7315:81:0;;;;;;;;;;;;7305:92;;;;;;7284:113;;7408:14;7464:15;7481:10;7435:57;;;;;;;;9369:66:1;9357:79;;9461:1;9452:11;;9445:27;;;;9497:2;9488:12;;9481:28;9534:2;9525:12;;9099:444;7435:57:0;;;;-1:-1:-1;;7435:57:0;;;;;;;;;7425:68;;7435:57;7425:68;;;;7504:17;7524:26;;;;;;;;;9775:25:1;;;9848:4;9836:17;;9816:18;;;9809:45;;;;9870:18;;;9863:34;;;9913:18;;;9906:34;;;7425:68:0;;-1:-1:-1;7504:17:0;7524:26;;9747:19:1;;7524:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7524:26:0;;-1:-1:-1;;7524:26:0;;;-1:-1:-1;;;;;;;7569:23:0;;7561:66;;;;-1:-1:-1;;;7561:66:0;;12186:2:1;7561:66:0;;;12168:21:1;12225:2;12205:18;;;12198:30;12264:32;12244:18;;;12237:60;12314:18;;7561:66:0;11984:354:1;7561:66:0;7659:5;-1:-1:-1;;;;;7646:18:0;:9;-1:-1:-1;;;;;7646:18:0;;7638:56;;;;-1:-1:-1;;;7638:56:0;;12545:2:1;7638:56:0;;;12527:21:1;12584:2;12564:18;;;12557:30;12623:27;12603:18;;;12596:55;12668:18;;7638:56:0;12343:349:1;7638:56:0;7732:8;7713:15;:27;;7705:70;;;;-1:-1:-1;;;7705:70:0;;12899:2:1;7705:70:0;;;12881:21:1;12938:2;12918:18;;;12911:30;12977:32;12957:18;;;12950:60;13027:18;;7705:70:0;12697:354:1;7705:70:0;7817:6;7788:10;:17;7799:5;-1:-1:-1;;;;;7788:17:0;-1:-1:-1;;;;;7788:17:0;;;;;;;;;;;;:26;7806:7;-1:-1:-1;;;;;7788:26:0;-1:-1:-1;;;;;7788:26:0;;;;;;;;;;;;;:35;;;;;-1:-1:-1;;;;;7788:35:0;;;;;-1:-1:-1;;;;;7788:35:0;;;;;;7857:7;-1:-1:-1;;;;;7841:32:0;7850:5;-1:-1:-1;;;;;7841:32:0;;7866:6;7841:32;;;;;-1:-1:-1;;;;;3365:39:1;;;;3347:58;;3335:2;3320:18;;3203:208;7841:32:0;;;;;;;;6923:958;;;;;6804:1077;;;;;;;:::o;16111:173::-;16186:6;16236:12;-1:-1:-1;;;;;16213:21:0;;;16205:44;;;;-1:-1:-1;;;16205:44:0;;;;;;;;:::i;:::-;-1:-1:-1;16274:1:0;;16111:173;-1:-1:-1;;16111:173:0:o;16488:165::-;16574:6;16606:1;-1:-1:-1;;;;;16601:6:0;:1;-1:-1:-1;;;;;16601:6:0;;;16609:12;16593:29;;;;;-1:-1:-1;;;16593:29:0;;;;;;;;:::i;:::-;-1:-1:-1;16640:5:0;16644:1;16640;:5;:::i;:::-;16633:12;16488:165;-1:-1:-1;;;;16488:165:0:o;13629:712::-;-1:-1:-1;;;;;13723:17:0;;13715:89;;;;-1:-1:-1;;;13715:89:0;;13500:2:1;13715:89:0;;;13482:21:1;13539:2;13519:18;;;13512:30;13578:34;13558:18;;;13551:62;13649:29;13629:18;;;13622:57;13696:19;;13715:89:0;13298:423:1;13715:89:0;-1:-1:-1;;;;;13823:17:0;;13815:87;;;;-1:-1:-1;;;13815:87:0;;13928:2:1;13815:87:0;;;13910:21:1;13967:2;13947:18;;;13940:30;14006:34;13986:18;;;13979:62;14077:27;14057:18;;;14050:55;14122:19;;13815:87:0;13726:421:1;13815:87:0;-1:-1:-1;;;;;13921:20:0;;13936:4;13921:20;;13913:91;;;;-1:-1:-1;;;13913:91:0;;14354:2:1;13913:91:0;;;14336:21:1;14393:2;14373:18;;;14366:30;14432:34;14412:18;;;14405:62;14503:28;14483:18;;;14476:56;14549:19;;13913:91:0;14152:422:1;13913:91:0;-1:-1:-1;;;;;14039:13:0;;;;;;:8;:13;;;;;;;;;;14033:85;;;;;;;;;;;;;;-1:-1:-1;;;;;14039:13:0;;;;14054:6;;14033:85;;;;;;;:5;:85::i;:::-;-1:-1:-1;;;;;14017:13:0;;;;;;;:8;:13;;;;;;;;:101;;-1:-1:-1;;14017:101:0;-1:-1:-1;;;;;14017:101:0;;;;;;14151:13;;;;;;;;;;14145:79;;;;;;;;;;;;;;14151:13;;;;;14166:6;;14145:79;;;;;;;;:5;:79::i;:::-;-1:-1:-1;;;;;14129:13:0;;;;;;;:8;:13;;;;;;;;;:95;;-1:-1:-1;;14129:95:0;-1:-1:-1;;;;;14129:95:0;;;;;;14240:26;;3365:39:1;;;3347:58;;14129:13:0;;14240:26;;;;;;3320:18:1;14240:26:0;;;;;;;-1:-1:-1;;;;;14294:14:0;;;;;;;:9;:14;;;;;;;14310;;;;;;;;14279:54;;14294:14;;;;14310;14326:6;14279:14;:54::i;:::-;13629:712;;;:::o;13246:375::-;-1:-1:-1;;;;;13349:20:0;;;13323:23;13349:20;;;:9;:20;;;;;;;;;;13406:8;:19;;;;;;13436:20;;;;:32;;;;;;;;;;;13486:54;;13349:20;;;;;-1:-1:-1;;;;;13406:19:0;;;;13436:32;;13349:20;;;13486:54;;13323:23;13486:54;13553:60;13568:15;13585:9;13596:16;13553:14;:60::i;:::-;13312:309;;13246:375;;:::o;16292:188::-;16378:6;;16408:5;16412:1;16408;:5;:::i;:::-;16397:16;;16437:1;-1:-1:-1;;;;;16432:6:0;:1;-1:-1:-1;;;;;16432:6:0;;;16440:12;16424:29;;;;;-1:-1:-1;;;16424:29:0;;;;;;;;:::i;:::-;-1:-1:-1;16471:1:0;16292:188;-1:-1:-1;;;;16292:188:0:o;14349:937::-;14454:6;-1:-1:-1;;;;;14444:16:0;:6;-1:-1:-1;;;;;14444:16:0;;;:30;;;;;14473:1;14464:6;-1:-1:-1;;;;;14464:10:0;;14444:30;14440:839;;;-1:-1:-1;;;;;14495:20:0;;;14491:381;;-1:-1:-1;;;;;14555:22:0;;14536:16;14555:22;;;:14;:22;;;;;;;;;14615:13;:60;;14674:1;14615:60;;;-1:-1:-1;;;;;14631:19:0;;;;;;:11;:19;;;;;;14651:13;14663:1;14651:9;:13;:::i;:::-;14631:34;;;;;;;;;;;;;-1:-1:-1;14631:34:0;:40;;;;-1:-1:-1;;;;;14631:40:0;14615:60;14596:79;;14694:16;14713:67;14719:9;14730:6;14713:67;;;;;;;;;;;;;;;;;:5;:67::i;:::-;14694:86;;14799:57;14816:6;14824:9;14835;14846;14799:16;:57::i;:::-;14517:355;;;14491:381;-1:-1:-1;;;;;14892:20:0;;;14888:380;;-1:-1:-1;;;;;14952:22:0;;14933:16;14952:22;;;:14;:22;;;;;;;;;15012:13;:60;;15071:1;15012:60;;;-1:-1:-1;;;;;15028:19:0;;;;;;:11;:19;;;;;;15048:13;15060:1;15048:9;:13;:::i;:::-;15028:34;;;;;;;;;;;;;-1:-1:-1;15028:34:0;:40;;;;-1:-1:-1;;;;;15028:40:0;15012:60;14993:79;;15091:16;15110:66;15116:9;15127:6;15110:66;;;;;;;;;;;;;;;;;:5;:66::i;:::-;15091:85;;15195:57;15212:6;15220:9;15231;15242;15294:628;15412:18;15433:75;15440:12;15433:75;;;;;;;;;;;;;;;;;:6;:75::i;:::-;15412:96;;15538:1;15523:12;:16;;;:85;;;;-1:-1:-1;;;;;;15543:22:0;;;;;;:11;:22;;;;;:65;;;;15566:16;15581:1;15566:12;:16;:::i;:::-;15543:40;;;;;;;;;;;;;;;-1:-1:-1;15543:40:0;:50;;:65;15523:85;15519:329;;;-1:-1:-1;;;;;15623:22:0;;;;;;:11;:22;;;;;15672:8;;15646:16;15661:1;15646:12;:16;:::i;:::-;15623:40;;;;;;;;;;;;;-1:-1:-1;15623:40:0;:57;;-1:-1:-1;;;;;15623:57:0;;;;;;;;;;;;;;;;15519:329;;;15748:33;;;;;;;;;;;;;;-1:-1:-1;;;;;15748:33:0;;;;;;;;;;-1:-1:-1;;;;;15709:22:0;;-1:-1:-1;15709:22:0;;;:11;:22;;;;;:36;;;;;;;;;;;;:72;;;;;;;;;;;;;;;;;;;;;;;;15822:16;15732:12;15709:72;15822:16;:::i;:::-;-1:-1:-1;;;;;15794:25:0;;;;;;:14;:25;;;;;:44;;;;;;;;;;;;;;;15519:329;15863:51;;;-1:-1:-1;;;;;15296:15:1;;;15278:34;;15348:15;;15343:2;15328:18;;15321:43;-1:-1:-1;;;;;15863:51:0;;;;;15206:18:1;15863:51:0;;;;;;;15403:519;15294:628;;;;:::o;15930:173::-;16005:6;16055:12;16037:16;16032:21;;;16024:44;;;;-1:-1:-1;;;16024:44:0;;;;;;;14:656:1;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;586:2:1;574:15;-1:-1:-1;;570:88:1;555:104;;;;661:2;551:113;;14:656;-1:-1:-1;;;14:656:1:o;675:196::-;743:20;;-1:-1:-1;;;;;792:54:1;;782:65;;772:93;;861:1;858;851:12;772:93;675:196;;;:::o;876:254::-;944:6;952;1005:2;993:9;984:7;980:23;976:32;973:52;;;1021:1;1018;1011:12;973:52;1044:29;1063:9;1044:29;:::i;:::-;1034:39;1120:2;1105:18;;;;1092:32;;-1:-1:-1;;;876:254:1:o;1691:328::-;1768:6;1776;1784;1837:2;1825:9;1816:7;1812:23;1808:32;1805:52;;;1853:1;1850;1843:12;1805:52;1876:29;1895:9;1876:29;:::i;:::-;1866:39;;1924:38;1958:2;1947:9;1943:18;1924:38;:::i;:::-;1914:48;;2009:2;1998:9;1994:18;1981:32;1971:42;;1691:328;;;;;:::o;2213:186::-;2272:6;2325:2;2313:9;2304:7;2300:23;2296:32;2293:52;;;2341:1;2338;2331:12;2293:52;2364:29;2383:9;2364:29;:::i;2832:366::-;2899:6;2907;2960:2;2948:9;2939:7;2935:23;2931:32;2928:52;;;2976:1;2973;2966:12;2928:52;2999:29;3018:9;2999:29;:::i;:::-;2989:39;;3078:2;3067:9;3063:18;3050:32;-1:-1:-1;;;;;3115:5:1;3111:38;3104:5;3101:49;3091:77;;3164:1;3161;3154:12;3091:77;3187:5;3177:15;;;2832:366;;;;;:::o;3416:156::-;3482:20;;3542:4;3531:16;;3521:27;;3511:55;;3562:1;3559;3552:12;3577:531;3679:6;3687;3695;3703;3711;3719;3772:3;3760:9;3751:7;3747:23;3743:33;3740:53;;;3789:1;3786;3779:12;3740:53;3812:29;3831:9;3812:29;:::i;:::-;3802:39;;3888:2;3877:9;3873:18;3860:32;3850:42;;3939:2;3928:9;3924:18;3911:32;3901:42;;3962:36;3994:2;3983:9;3979:18;3962:36;:::i;:::-;3952:46;;4045:3;4034:9;4030:19;4017:33;4007:43;;4097:3;4086:9;4082:19;4069:33;4059:43;;3577:531;;;;;;;;:::o;4113:606::-;4224:6;4232;4240;4248;4256;4264;4272;4325:3;4313:9;4304:7;4300:23;4296:33;4293:53;;;4342:1;4339;4332:12;4293:53;4365:29;4384:9;4365:29;:::i;:::-;4355:39;;4413:38;4447:2;4436:9;4432:18;4413:38;:::i;:::-;4403:48;;4498:2;4487:9;4483:18;4470:32;4460:42;;4549:2;4538:9;4534:18;4521:32;4511:42;;4572:37;4604:3;4593:9;4589:19;4572:37;:::i;:::-;4562:47;;4656:3;4645:9;4641:19;4628:33;4618:43;;4708:3;4697:9;4693:19;4680:33;4670:43;;4113:606;;;;;;;;;;:::o;4724:260::-;4792:6;4800;4853:2;4841:9;4832:7;4828:23;4824:32;4821:52;;;4869:1;4866;4859:12;4821:52;4892:29;4911:9;4892:29;:::i;:::-;4882:39;;4940:38;4974:2;4963:9;4959:18;4940:38;:::i;:::-;4930:48;;4724:260;;;;;:::o;4989:350::-;5056:6;5064;5117:2;5105:9;5096:7;5092:23;5088:32;5085:52;;;5133:1;5130;5123:12;5085:52;5156:29;5175:9;5156:29;:::i;:::-;5146:39;;5235:2;5224:9;5220:18;5207:32;5279:10;5272:5;5268:22;5261:5;5258:33;5248:61;;5305:1;5302;5295:12;6555:184;6607:77;6604:1;6597:88;6704:4;6701:1;6694:15;6728:4;6725:1;6718:15;6744:128;6784:3;6815:1;6811:6;6808:1;6805:13;6802:39;;;6821:18;;:::i;:::-;-1:-1:-1;6857:9:1;;6744:128::o;7633:221::-;7672:4;7701:10;7761;;;;7731;;7783:12;;;7780:38;;;7798:18;;:::i;:::-;7835:13;;7633:221;-1:-1:-1;;;7633:221:1:o;7859:345::-;7898:1;7924:10;7961:2;7958:1;7954:10;7983:3;7973:191;;8020:77;8017:1;8010:88;8121:4;8118:1;8111:15;8149:4;8146:1;8139:15;7973:191;8182:10;;8178:20;;;;;7859:345;-1:-1:-1;;7859:345:1:o;10357:195::-;10396:3;-1:-1:-1;;10420:5:1;10417:77;10414:103;;;10497:18;;:::i;:::-;-1:-1:-1;10544:1:1;10533:13;;10357:195::o;13056:237::-;13095:4;-1:-1:-1;;;;;13200:10:1;;;;13170;;13222:12;;;13219:38;;;13237:18;;:::i;14579:244::-;14618:3;-1:-1:-1;;;;;14699:2:1;14696:1;14692:10;14729:2;14726:1;14722:10;14760:3;14756:2;14752:12;14747:3;14744:21;14741:47;;;14768:18;;:::i;:::-;14804:13;;14579:244;-1:-1:-1;;;;14579:244:1:o;14828:228::-;14867:3;14895:10;14932:2;14929:1;14925:10;14962:2;14959:1;14955:10;14993:3;14989:2;14985:12;14980:3;14977:21;14974:47;;;15001:18;;:::i
Swarm Source
ipfs://e781ef015064e63f6c67ce9e0e6df5b55b82150fd3d9b9bd26142dc3fd2bbeb3
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.