Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 231 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Unstake | 21271329 | 65 days ago | IN | 0 ETH | 0.00129602 | ||||
Unstake | 21243243 | 69 days ago | IN | 0 ETH | 0.00301161 | ||||
Unstake | 20385452 | 188 days ago | IN | 0 ETH | 0.00049196 | ||||
Unstake | 20385125 | 188 days ago | IN | 0 ETH | 0.00126767 | ||||
Claim | 20385107 | 188 days ago | IN | 0 ETH | 0.00016945 | ||||
Unstake | 20171369 | 218 days ago | IN | 0 ETH | 0.0009445 | ||||
Unstake | 20171345 | 218 days ago | IN | 0 ETH | 0.00174822 | ||||
Unstake | 20171328 | 218 days ago | IN | 0 ETH | 0.00037876 | ||||
Unstake | 20171316 | 218 days ago | IN | 0 ETH | 0.00118773 | ||||
Unstake | 20171313 | 218 days ago | IN | 0 ETH | 0.00134002 | ||||
Unstake | 20171308 | 218 days ago | IN | 0 ETH | 0.00038956 | ||||
Unstake | 20171291 | 218 days ago | IN | 0 ETH | 0.00036348 | ||||
Unstake | 20171285 | 218 days ago | IN | 0 ETH | 0.00122699 | ||||
Claim | 20001027 | 242 days ago | IN | 0 ETH | 0.00018049 | ||||
Unstake | 19791405 | 271 days ago | IN | 0 ETH | 0.0004836 | ||||
Unstake | 19791402 | 271 days ago | IN | 0 ETH | 0.00157357 | ||||
Claim | 19791365 | 271 days ago | IN | 0 ETH | 0.00017457 | ||||
Claim | 19791356 | 271 days ago | IN | 0 ETH | 0.00037206 | ||||
Unstake | 19704411 | 283 days ago | IN | 0 ETH | 0.00137083 | ||||
Claim | 19697307 | 284 days ago | IN | 0 ETH | 0.00034737 | ||||
Unstake | 19685558 | 286 days ago | IN | 0 ETH | 0.00199144 | ||||
Stake | 19598078 | 298 days ago | IN | 0 ETH | 0.00510994 | ||||
Unstake | 19597868 | 298 days ago | IN | 0 ETH | 0.00172949 | ||||
Stake | 19597809 | 298 days ago | IN | 0 ETH | 0.00216975 | ||||
Stake | 19597797 | 298 days ago | IN | 0 ETH | 0.00248011 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
19791356 | 271 days ago | 0.0000359 ETH | ||||
19525085 | 309 days ago | 0.00124918 ETH | ||||
19513101 | 310 days ago | 0.00087545 ETH | ||||
19495328 | 313 days ago | 0.0053 ETH | ||||
19013202 | 380 days ago | 0.00048293 ETH | ||||
18925517 | 393 days ago | 0.00062125 ETH | ||||
18832418 | 406 days ago | 0.000456 ETH | ||||
18795775 | 411 days ago | 0.00017226 ETH | ||||
18795775 | 411 days ago | 0.00011484 ETH | ||||
18782671 | 413 days ago | 0.00001065 ETH | ||||
18782671 | 413 days ago | 0.0000071 ETH | ||||
18772044 | 414 days ago | 0.0000297 ETH | ||||
18772044 | 414 days ago | 0.0000198 ETH | ||||
18758495 | 416 days ago | 0.0000297 ETH | ||||
18758495 | 416 days ago | 0.0000198 ETH | ||||
18753406 | 417 days ago | 0.00002376 ETH | ||||
18753406 | 417 days ago | 0.00001584 ETH | ||||
18750043 | 417 days ago | 0.00001188 ETH | ||||
18750043 | 417 days ago | 0.00000792 ETH | ||||
18745742 | 418 days ago | 0.00002414 ETH | ||||
18745600 | 418 days ago | 0.00001188 ETH | ||||
18745600 | 418 days ago | 0.00000792 ETH | ||||
18744372 | 418 days ago | 0.0000297 ETH | ||||
18744372 | 418 days ago | 0.0000198 ETH | ||||
18743861 | 418 days ago | 0.0000891 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Dividend
Compiler Version
v0.8.16+commit.07a7930e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-06-23 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.16; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; return msg.data; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // 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) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } interface IERC20 { function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external; function transferFrom(address sender, address recipient, uint256 amount) external; } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function isOwner() public view returns (bool) { return msg.sender == _owner; } function renouncedOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0x000000000000000000000000000000000000dEaD)); _owner = address(0x000000000000000000000000000000000000dEaD); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IDividend { function deposit() external payable; } // Token dividend contract Dividend is Ownable { using SafeMath for uint256; address public _distributor; IERC20 public _sToken = IERC20(0x8954D907520532c1f0d89d42569232Fd0f995Fdf); struct Share { uint256 amount; uint256 totalExcluded; uint256 totalRealised; uint256 reserved; } mapping (address => Share) public shares; uint256 public totalShares; uint256 public totalDividends; uint256 public totalDistributed; uint256 public dividendsPerShare; uint256 public totalReserved; uint256 public dividendsPerShareAccuracyFactor = 10 ** 26; modifier onlyDistributor() { require(msg.sender == _distributor); _; } event tokenStaked(address _user,uint _amount,uint _stamp); event tokenUnstaked(address _user,uint _amount,uint _stamp); constructor() { _distributor = msg.sender; } function stake(uint amount) external { address shareholder = msg.sender; _sToken.transferFrom(shareholder, address(this), amount); if(shares[shareholder].amount > 0){ distributeDividend(shareholder); } totalShares = totalShares.add(amount); shares[shareholder].amount += amount; shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); emit tokenStaked(shareholder,amount,block.timestamp); } function unstake(uint amount) external { address shareholder = msg.sender; uint userStaked = shares[shareholder].amount; require(userStaked >= amount,"Error: Invalid Amount!"); if(shares[shareholder].amount > 0){ distributeDividend(shareholder); } totalShares = totalShares.sub(amount); shares[shareholder].amount -= amount; shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); _sToken.transfer(shareholder, amount); emit tokenUnstaked(shareholder,amount,block.timestamp); } function claim() external { address user = msg.sender; distributeDividend(user); uint subtotal = shares[user].reserved; if(subtotal > 0) { shares[user].reserved = 0; totalReserved = totalReserved.sub(subtotal); payable(user).transfer(subtotal); } } function deposit() external payable onlyDistributor() { uint256 amount = msg.value; totalDividends = totalDividends.add(amount); dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares)); } function distributeDividend(address shareholder) internal { if(shares[shareholder].amount == 0){ return; } uint256 amount = calEarning(shareholder); if(amount > 0){ totalDistributed = totalDistributed.add(amount); shares[shareholder].reserved += amount; totalReserved += amount; shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount); shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); } } function getUnpaidEarning(address shareholder) public view returns (uint256) { uint calReward = calEarning(shareholder); uint reservedReward = shares[shareholder].reserved; return calReward.add(reservedReward); } function calEarning(address shareholder) internal view returns (uint256) { if(shares[shareholder].amount == 0){ return 0; } uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount); uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded; if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; } return shareholderTotalDividends.sub(shareholderTotalExcluded); } function getCumulativeDividends(uint256 share) internal view returns (uint256) { return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor); } function setToken(address _token) external onlyOwner { _sToken = IERC20(_token); } function setDistributor(address _newDistributor) external onlyOwner { _distributor = address(_newDistributor); } function withdrawToken(address _token,uint _amount) external onlyOwner { IERC20(_token).transfer(msg.sender, _amount); } function withdrawFunds() external onlyOwner { payable(msg.sender).transfer(address(this).balance); } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_user","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_stamp","type":"uint256"}],"name":"tokenStaked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_user","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_stamp","type":"uint256"}],"name":"tokenUnstaked","type":"event"},{"inputs":[],"name":"_distributor","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"dividendsPerShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dividendsPerShareAccuracyFactor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getUnpaidEarning","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renouncedOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newDistributor","type":"address"}],"name":"setDistributor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"setToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"shares","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"totalExcluded","type":"uint256"},{"internalType":"uint256","name":"totalRealised","type":"uint256"},{"internalType":"uint256","name":"reserved","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalDistributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalReserved","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052738954d907520532c1f0d89d42569232fd0f995fdf600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506a52b7d2dcc80cd2e400000060095534801561007457600080fd5b50600061008561016960201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610171565b600033905090565b612100806101806000396000f3fe6080604052600436106101395760003560e01c8063997664d7116100ab578063c71b0e1c1161006f578063c71b0e1c146103c1578063ce7c2ac2146103ec578063d0e30db01461042c578063e2d2e21914610436578063efca2eed14610461578063f2fde38b1461048c57610140565b8063997664d7146102ee5780639e281a9814610319578063a694fc3a14610342578063b76cde271461036b578063c391f90d1461039657610140565b80632e17de78116100fd5780632e17de78146102045780633a98ef391461022d5780634e71d92d1461025857806375619ab51461026f5780638da5cb5b146102985780638f32d59b146102c357610140565b80630650c7871461014557806311ce023d14610182578063144fa6d7146101ad57806320365d5f146101d657806324600fc3146101ed57610140565b3661014057005b600080fd5b34801561015157600080fd5b5061016c600480360381019061016791906119af565b6104b5565b60405161017991906119f5565b60405180910390f35b34801561018e57600080fd5b50610197610526565b6040516101a491906119f5565b60405180910390f35b3480156101b957600080fd5b506101d460048036038101906101cf91906119af565b61052c565b005b3480156101e257600080fd5b506101eb610605565b005b3480156101f957600080fd5b5061020261075a565b005b34801561021057600080fd5b5061022b60048036038101906102269190611a3c565b610838565b005b34801561023957600080fd5b50610242610af0565b60405161024f91906119f5565b60405180910390f35b34801561026457600080fd5b5061026d610af6565b005b34801561027b57600080fd5b50610296600480360381019061029191906119af565b610c03565b005b3480156102a457600080fd5b506102ad610cdc565b6040516102ba9190611a78565b60405180910390f35b3480156102cf57600080fd5b506102d8610d05565b6040516102e59190611aae565b60405180910390f35b3480156102fa57600080fd5b50610303610d5c565b60405161031091906119f5565b60405180910390f35b34801561032557600080fd5b50610340600480360381019061033b9190611ac9565b610d62565b005b34801561034e57600080fd5b5061036960048036038101906103649190611a3c565b610e68565b005b34801561037757600080fd5b50610380611097565b60405161038d9190611a78565b60405180910390f35b3480156103a257600080fd5b506103ab6110bd565b6040516103b89190611b68565b60405180910390f35b3480156103cd57600080fd5b506103d66110e3565b6040516103e391906119f5565b60405180910390f35b3480156103f857600080fd5b50610413600480360381019061040e91906119af565b6110e9565b6040516104239493929190611b83565b60405180910390f35b610434611119565b005b34801561044257600080fd5b5061044b6111d9565b60405161045891906119f5565b60405180910390f35b34801561046d57600080fd5b506104766111df565b60405161048391906119f5565b60405180910390f35b34801561049857600080fd5b506104b360048036038101906104ae91906119af565b6111e5565b005b6000806104c1836113a6565b90506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154905061051d81836114bf90919063ffffffff16565b92505050919050565b60095481565b61053461151d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b890611c25565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61060d61151d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461069a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069190611c25565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61076261151d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e690611c25565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610835573d6000803e3d6000fd5b50565b60003390506000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050828110156108c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108be90611c91565b60405180910390fd5b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154111561091c5761091b82611525565b5b6109318360045461174590919063ffffffff16565b60048190555082600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282546109899190611ce0565b925050819055506109db600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461178f565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83856040518363ffffffff1660e01b8152600401610a7e929190611d14565b600060405180830381600087803b158015610a9857600080fd5b505af1158015610aac573d6000803e3d6000fd5b505050507f0e373ac7857e09ad961f02eeba26d39a5777dbaab3671687b4ec902307a0e576828442604051610ae393929190611d3d565b60405180910390a1505050565b60045481565b6000339050610b0481611525565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015490506000811115610bff576000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030181905550610bb18160085461174590919063ffffffff16565b6008819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610bfd573d6000803e3d6000fd5b505b5050565b610c0b61151d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8f90611c25565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b60055481565b610d6a61151d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dee90611c25565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610e32929190611d14565b600060405180830381600087803b158015610e4c57600080fd5b505af1158015610e60573d6000803e3d6000fd5b505050505050565b6000339050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd8230856040518463ffffffff1660e01b8152600401610ecc93929190611d74565b600060405180830381600087803b158015610ee657600080fd5b505af1158015610efa573d6000803e3d6000fd5b505050506000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541115610f5357610f5281611525565b5b610f68826004546114bf90919063ffffffff16565b60048190555081600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000828254610fc09190611dab565b92505081905550611012600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461178f565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055507f7b83f3cd55e1408476372ae257e3c41664571aef60c030bdca3aa5d4c6bba69181834260405161108b93929190611d3d565b60405180910390a15050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b60036020528060005260406000206000915090508060000154908060010154908060020154908060030154905084565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461117357600080fd5b600034905061118d816005546114bf90919063ffffffff16565b6005819055506111d06111bf6004546111b1846009546117c190919063ffffffff16565b61183b90919063ffffffff16565b6007546114bf90919063ffffffff16565b60078190555050565b60075481565b60065481565b6111ed61151d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461127a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127190611c25565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e090611e51565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154036113fa57600090506114ba565b6000611447600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461178f565b90506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490508082116114a2576000925050506114ba565b6114b5818361174590919063ffffffff16565b925050505b919050565b60008082846114ce9190611dab565b905083811015611513576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150a90611ebd565b60405180910390fd5b8091505092915050565b600033905090565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154031561174257600061157b826113a6565b905060008111156117405761159b816006546114bf90919063ffffffff16565b60068190555080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008282546115f39190611dab565b92505081905550806008600082825461160c9190611dab565b9250508190555061166881600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546114bf90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055506116f9600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461178f565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b505b50565b600061178783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611885565b905092915050565b60006117ba6009546117ac600754856117c190919063ffffffff16565b61183b90919063ffffffff16565b9050919050565b60008083036117d35760009050611835565b600082846117e19190611edd565b90508284826117f09190611f66565b14611830576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182790612009565b60405180910390fd5b809150505b92915050565b600061187d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118e9565b905092915050565b60008383111582906118cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c491906120a8565b60405180910390fd5b50600083856118dc9190611ce0565b9050809150509392505050565b60008083118290611930576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192791906120a8565b60405180910390fd5b506000838561193f9190611f66565b9050809150509392505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061197c82611951565b9050919050565b61198c81611971565b811461199757600080fd5b50565b6000813590506119a981611983565b92915050565b6000602082840312156119c5576119c461194c565b5b60006119d38482850161199a565b91505092915050565b6000819050919050565b6119ef816119dc565b82525050565b6000602082019050611a0a60008301846119e6565b92915050565b611a19816119dc565b8114611a2457600080fd5b50565b600081359050611a3681611a10565b92915050565b600060208284031215611a5257611a5161194c565b5b6000611a6084828501611a27565b91505092915050565b611a7281611971565b82525050565b6000602082019050611a8d6000830184611a69565b92915050565b60008115159050919050565b611aa881611a93565b82525050565b6000602082019050611ac36000830184611a9f565b92915050565b60008060408385031215611ae057611adf61194c565b5b6000611aee8582860161199a565b9250506020611aff85828601611a27565b9150509250929050565b6000819050919050565b6000611b2e611b29611b2484611951565b611b09565b611951565b9050919050565b6000611b4082611b13565b9050919050565b6000611b5282611b35565b9050919050565b611b6281611b47565b82525050565b6000602082019050611b7d6000830184611b59565b92915050565b6000608082019050611b9860008301876119e6565b611ba560208301866119e6565b611bb260408301856119e6565b611bbf60608301846119e6565b95945050505050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611c0f602083611bc8565b9150611c1a82611bd9565b602082019050919050565b60006020820190508181036000830152611c3e81611c02565b9050919050565b7f4572726f723a20496e76616c696420416d6f756e742100000000000000000000600082015250565b6000611c7b601683611bc8565b9150611c8682611c45565b602082019050919050565b60006020820190508181036000830152611caa81611c6e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611ceb826119dc565b9150611cf6836119dc565b9250828203905081811115611d0e57611d0d611cb1565b5b92915050565b6000604082019050611d296000830185611a69565b611d3660208301846119e6565b9392505050565b6000606082019050611d526000830186611a69565b611d5f60208301856119e6565b611d6c60408301846119e6565b949350505050565b6000606082019050611d896000830186611a69565b611d966020830185611a69565b611da360408301846119e6565b949350505050565b6000611db6826119dc565b9150611dc1836119dc565b9250828201905080821115611dd957611dd8611cb1565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611e3b602683611bc8565b9150611e4682611ddf565b604082019050919050565b60006020820190508181036000830152611e6a81611e2e565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000611ea7601b83611bc8565b9150611eb282611e71565b602082019050919050565b60006020820190508181036000830152611ed681611e9a565b9050919050565b6000611ee8826119dc565b9150611ef3836119dc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611f2c57611f2b611cb1565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611f71826119dc565b9150611f7c836119dc565b925082611f8c57611f8b611f37565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000611ff3602183611bc8565b9150611ffe82611f97565b604082019050919050565b6000602082019050818103600083015261202281611fe6565b9050919050565b600081519050919050565b60005b83811015612052578082015181840152602081019050612037565b60008484015250505050565b6000601f19601f8301169050919050565b600061207a82612029565b6120848185611bc8565b9350612094818560208601612034565b61209d8161205e565b840191505092915050565b600060208201905081810360008301526120c2818461206f565b90509291505056fea2646970667358221220ca4765f3f394befec287191e590e71a477e52748cc2f73a593813445099aae7864736f6c63430008100033
Deployed Bytecode
0x6080604052600436106101395760003560e01c8063997664d7116100ab578063c71b0e1c1161006f578063c71b0e1c146103c1578063ce7c2ac2146103ec578063d0e30db01461042c578063e2d2e21914610436578063efca2eed14610461578063f2fde38b1461048c57610140565b8063997664d7146102ee5780639e281a9814610319578063a694fc3a14610342578063b76cde271461036b578063c391f90d1461039657610140565b80632e17de78116100fd5780632e17de78146102045780633a98ef391461022d5780634e71d92d1461025857806375619ab51461026f5780638da5cb5b146102985780638f32d59b146102c357610140565b80630650c7871461014557806311ce023d14610182578063144fa6d7146101ad57806320365d5f146101d657806324600fc3146101ed57610140565b3661014057005b600080fd5b34801561015157600080fd5b5061016c600480360381019061016791906119af565b6104b5565b60405161017991906119f5565b60405180910390f35b34801561018e57600080fd5b50610197610526565b6040516101a491906119f5565b60405180910390f35b3480156101b957600080fd5b506101d460048036038101906101cf91906119af565b61052c565b005b3480156101e257600080fd5b506101eb610605565b005b3480156101f957600080fd5b5061020261075a565b005b34801561021057600080fd5b5061022b60048036038101906102269190611a3c565b610838565b005b34801561023957600080fd5b50610242610af0565b60405161024f91906119f5565b60405180910390f35b34801561026457600080fd5b5061026d610af6565b005b34801561027b57600080fd5b50610296600480360381019061029191906119af565b610c03565b005b3480156102a457600080fd5b506102ad610cdc565b6040516102ba9190611a78565b60405180910390f35b3480156102cf57600080fd5b506102d8610d05565b6040516102e59190611aae565b60405180910390f35b3480156102fa57600080fd5b50610303610d5c565b60405161031091906119f5565b60405180910390f35b34801561032557600080fd5b50610340600480360381019061033b9190611ac9565b610d62565b005b34801561034e57600080fd5b5061036960048036038101906103649190611a3c565b610e68565b005b34801561037757600080fd5b50610380611097565b60405161038d9190611a78565b60405180910390f35b3480156103a257600080fd5b506103ab6110bd565b6040516103b89190611b68565b60405180910390f35b3480156103cd57600080fd5b506103d66110e3565b6040516103e391906119f5565b60405180910390f35b3480156103f857600080fd5b50610413600480360381019061040e91906119af565b6110e9565b6040516104239493929190611b83565b60405180910390f35b610434611119565b005b34801561044257600080fd5b5061044b6111d9565b60405161045891906119f5565b60405180910390f35b34801561046d57600080fd5b506104766111df565b60405161048391906119f5565b60405180910390f35b34801561049857600080fd5b506104b360048036038101906104ae91906119af565b6111e5565b005b6000806104c1836113a6565b90506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154905061051d81836114bf90919063ffffffff16565b92505050919050565b60095481565b61053461151d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b890611c25565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61060d61151d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461069a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069190611c25565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61076261151d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e690611c25565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610835573d6000803e3d6000fd5b50565b60003390506000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050828110156108c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108be90611c91565b60405180910390fd5b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154111561091c5761091b82611525565b5b6109318360045461174590919063ffffffff16565b60048190555082600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282546109899190611ce0565b925050819055506109db600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461178f565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83856040518363ffffffff1660e01b8152600401610a7e929190611d14565b600060405180830381600087803b158015610a9857600080fd5b505af1158015610aac573d6000803e3d6000fd5b505050507f0e373ac7857e09ad961f02eeba26d39a5777dbaab3671687b4ec902307a0e576828442604051610ae393929190611d3d565b60405180910390a1505050565b60045481565b6000339050610b0481611525565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015490506000811115610bff576000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030181905550610bb18160085461174590919063ffffffff16565b6008819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610bfd573d6000803e3d6000fd5b505b5050565b610c0b61151d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8f90611c25565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b60055481565b610d6a61151d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dee90611c25565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610e32929190611d14565b600060405180830381600087803b158015610e4c57600080fd5b505af1158015610e60573d6000803e3d6000fd5b505050505050565b6000339050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd8230856040518463ffffffff1660e01b8152600401610ecc93929190611d74565b600060405180830381600087803b158015610ee657600080fd5b505af1158015610efa573d6000803e3d6000fd5b505050506000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541115610f5357610f5281611525565b5b610f68826004546114bf90919063ffffffff16565b60048190555081600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000828254610fc09190611dab565b92505081905550611012600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461178f565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055507f7b83f3cd55e1408476372ae257e3c41664571aef60c030bdca3aa5d4c6bba69181834260405161108b93929190611d3d565b60405180910390a15050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b60036020528060005260406000206000915090508060000154908060010154908060020154908060030154905084565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461117357600080fd5b600034905061118d816005546114bf90919063ffffffff16565b6005819055506111d06111bf6004546111b1846009546117c190919063ffffffff16565b61183b90919063ffffffff16565b6007546114bf90919063ffffffff16565b60078190555050565b60075481565b60065481565b6111ed61151d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461127a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127190611c25565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e090611e51565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154036113fa57600090506114ba565b6000611447600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461178f565b90506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490508082116114a2576000925050506114ba565b6114b5818361174590919063ffffffff16565b925050505b919050565b60008082846114ce9190611dab565b905083811015611513576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150a90611ebd565b60405180910390fd5b8091505092915050565b600033905090565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154031561174257600061157b826113a6565b905060008111156117405761159b816006546114bf90919063ffffffff16565b60068190555080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008282546115f39190611dab565b92505081905550806008600082825461160c9190611dab565b9250508190555061166881600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546114bf90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055506116f9600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461178f565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b505b50565b600061178783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611885565b905092915050565b60006117ba6009546117ac600754856117c190919063ffffffff16565b61183b90919063ffffffff16565b9050919050565b60008083036117d35760009050611835565b600082846117e19190611edd565b90508284826117f09190611f66565b14611830576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182790612009565b60405180910390fd5b809150505b92915050565b600061187d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118e9565b905092915050565b60008383111582906118cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c491906120a8565b60405180910390fd5b50600083856118dc9190611ce0565b9050809150509392505050565b60008083118290611930576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192791906120a8565b60405180910390fd5b506000838561193f9190611f66565b9050809150509392505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061197c82611951565b9050919050565b61198c81611971565b811461199757600080fd5b50565b6000813590506119a981611983565b92915050565b6000602082840312156119c5576119c461194c565b5b60006119d38482850161199a565b91505092915050565b6000819050919050565b6119ef816119dc565b82525050565b6000602082019050611a0a60008301846119e6565b92915050565b611a19816119dc565b8114611a2457600080fd5b50565b600081359050611a3681611a10565b92915050565b600060208284031215611a5257611a5161194c565b5b6000611a6084828501611a27565b91505092915050565b611a7281611971565b82525050565b6000602082019050611a8d6000830184611a69565b92915050565b60008115159050919050565b611aa881611a93565b82525050565b6000602082019050611ac36000830184611a9f565b92915050565b60008060408385031215611ae057611adf61194c565b5b6000611aee8582860161199a565b9250506020611aff85828601611a27565b9150509250929050565b6000819050919050565b6000611b2e611b29611b2484611951565b611b09565b611951565b9050919050565b6000611b4082611b13565b9050919050565b6000611b5282611b35565b9050919050565b611b6281611b47565b82525050565b6000602082019050611b7d6000830184611b59565b92915050565b6000608082019050611b9860008301876119e6565b611ba560208301866119e6565b611bb260408301856119e6565b611bbf60608301846119e6565b95945050505050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611c0f602083611bc8565b9150611c1a82611bd9565b602082019050919050565b60006020820190508181036000830152611c3e81611c02565b9050919050565b7f4572726f723a20496e76616c696420416d6f756e742100000000000000000000600082015250565b6000611c7b601683611bc8565b9150611c8682611c45565b602082019050919050565b60006020820190508181036000830152611caa81611c6e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611ceb826119dc565b9150611cf6836119dc565b9250828203905081811115611d0e57611d0d611cb1565b5b92915050565b6000604082019050611d296000830185611a69565b611d3660208301846119e6565b9392505050565b6000606082019050611d526000830186611a69565b611d5f60208301856119e6565b611d6c60408301846119e6565b949350505050565b6000606082019050611d896000830186611a69565b611d966020830185611a69565b611da360408301846119e6565b949350505050565b6000611db6826119dc565b9150611dc1836119dc565b9250828201905080821115611dd957611dd8611cb1565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611e3b602683611bc8565b9150611e4682611ddf565b604082019050919050565b60006020820190508181036000830152611e6a81611e2e565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000611ea7601b83611bc8565b9150611eb282611e71565b602082019050919050565b60006020820190508181036000830152611ed681611e9a565b9050919050565b6000611ee8826119dc565b9150611ef3836119dc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611f2c57611f2b611cb1565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611f71826119dc565b9150611f7c836119dc565b925082611f8c57611f8b611f37565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000611ff3602183611bc8565b9150611ffe82611f97565b604082019050919050565b6000602082019050818103600083015261202281611fe6565b9050919050565b600081519050919050565b60005b83811015612052578082015181840152602081019050612037565b60008484015250505050565b6000601f19601f8301169050919050565b600061207a82612029565b6120848185611bc8565b9350612094818560208601612034565b61209d8161205e565b840191505092915050565b600060208201905081810360008301526120c2818461206f565b90509291505056fea2646970667358221220ca4765f3f394befec287191e590e71a477e52748cc2f73a593813445099aae7864736f6c63430008100033
Deployed Bytecode Sourcemap
3385:4739:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6682:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3954:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7588:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2800:231;;;;;;;;;;;;;:::i;:::-;;7968:114;;;;;;;;;;;;;:::i;:::-;;4856:631;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3771:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5495:337;;;;;;;;;;;;;:::i;:::-;;7692:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2475:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2700:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3804:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7826:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4320:528;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3458:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3492:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3917:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3718:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;5840:267;;;:::i;:::-;;3878:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3840:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3039:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6682;6750:7;6770:14;6787:23;6798:11;6787:10;:23::i;:::-;6770:40;;6821:19;6843:6;:19;6850:11;6843:19;;;;;;;;;;;;;;;:28;;;6821:50;;6889:29;6903:14;6889:9;:13;;:29;;;;:::i;:::-;6882:36;;;;6682:244;;;:::o;3954:57::-;;;;:::o;7588:96::-;2619:12;:10;:12::i;:::-;2609:22;;:6;;;;;;;;;;:22;;;2601:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7669:6:::1;7652:7;;:24;;;;;;;;;;;;;;;;;;7588:96:::0;:::o;2800:231::-;2619:12;:10;:12::i;:::-;2609:22;;:6;;;;;;;;;;:22;;;2601:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2908:42:::1;2871:81;;2892:6;::::0;::::1;;;;;;;;2871:81;;;;;;;;;;;;2980:42;2963:6;::::0;:60:::1;;;;;;;;;;;;;;;;;;2800:231::o:0;7968:114::-;2619:12;:10;:12::i;:::-;2609:22;;:6;;;;;;;;;;:22;;;2601:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8031:10:::1;8023:28;;:51;8052:21;8023:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;7968:114::o:0;4856:631::-;4908:19;4930:10;4908:32;;4951:15;4969:6;:19;4976:11;4969:19;;;;;;;;;;;;;;;:26;;;4951:44;;5028:6;5014:10;:20;;5006:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;5109:1;5080:6;:19;5087:11;5080:19;;;;;;;;;;;;;;;:26;;;:30;5077:92;;;5126:31;5145:11;5126:18;:31::i;:::-;5077:92;5195:23;5211:6;5195:11;;:15;;:23;;;;:::i;:::-;5181:11;:37;;;;5259:6;5229;:19;5236:11;5229:19;;;;;;;;;;;;;;;:26;;;:36;;;;;;;:::i;:::-;;;;;;;;5312:50;5335:6;:19;5342:11;5335:19;;;;;;;;;;;;;;;:26;;;5312:22;:50::i;:::-;5276:6;:19;5283:11;5276:19;;;;;;;;;;;;;;;:33;;:86;;;;5375:7;;;;;;;;;;;:16;;;5392:11;5405:6;5375:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5430:49;5444:11;5456:6;5463:15;5430:49;;;;;;;;:::i;:::-;;;;;;;;4895:592;;4856:631;:::o;3771:26::-;;;;:::o;5495:337::-;5532:12;5547:10;5532:25;;5568:24;5587:4;5568:18;:24::i;:::-;5603:13;5619:6;:12;5626:4;5619:12;;;;;;;;;;;;;;;:21;;;5603:37;;5665:1;5654:8;:12;5651:174;;;5707:1;5683:6;:12;5690:4;5683:12;;;;;;;;;;;;;;;:21;;:25;;;;5739:27;5757:8;5739:13;;:17;;:27;;;;:::i;:::-;5723:13;:43;;;;5789:4;5781:22;;:32;5804:8;5781:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5651:174;5521:311;;5495:337::o;7692:126::-;2619:12;:10;:12::i;:::-;2609:22;;:6;;;;;;;;;;:22;;;2601:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7794:15:::1;7771:12;;:39;;;;;;;;;;;;;;;;;;7692:126:::0;:::o;2475:79::-;2513:7;2540:6;;;;;;;;;;;2533:13;;2475:79;:::o;2700:92::-;2740:4;2778:6;;;;;;;;;;;2764:20;;:10;:20;;;2757:27;;2700:92;:::o;3804:29::-;;;;:::o;7826:134::-;2619:12;:10;:12::i;:::-;2609:22;;:6;;;;;;;;;;:22;;;2601:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7915:6:::1;7908:23;;;7932:10;7944:7;7908:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;7826:134:::0;;:::o;4320:528::-;4378:19;4400:10;4378:32;;4423:7;;;;;;;;;;;:20;;;4444:11;4465:4;4472:6;4423:56;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4524:1;4495:6;:19;4502:11;4495:19;;;;;;;;;;;;;;;:26;;;:30;4492:92;;;4541:31;4560:11;4541:18;:31::i;:::-;4492:92;4608:23;4624:6;4608:11;;:15;;:23;;;;:::i;:::-;4594:11;:37;;;;4672:6;4642;:19;4649:11;4642:19;;;;;;;;;;;;;;;:26;;;:36;;;;;;;:::i;:::-;;;;;;;;4725:50;4748:6;:19;4755:11;4748:19;;;;;;;;;;;;;;;:26;;;4725:22;:50::i;:::-;4689:6;:19;4696:11;4689:19;;;;;;;;;;;;;;;:33;;:86;;;;4793:47;4805:11;4817:6;4824:15;4793:47;;;;;;;;:::i;:::-;;;;;;;;4357:491;4320:528;:::o;3458:27::-;;;;;;;;;;;;;:::o;3492:74::-;;;;;;;;;;;;;:::o;3917:28::-;;;;:::o;3718:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5840:267::-;4080:12;;;;;;;;;;;4066:26;;:10;:26;;;4058:35;;;;;;5905:14:::1;5922:9;5905:26;;5959;5978:6;5959:14;;:18;;:26;;;;:::i;:::-;5942:14;:43;;;;6016:83;6038:60;6086:11;;6038:43;6074:6;6038:31;;:35;;:43;;;;:::i;:::-;:47;;:60;;;;:::i;:::-;6016:17;;:21;;:83;;;;:::i;:::-;5996:17;:103;;;;5894:213;5840:267::o:0;3878:32::-;;;;:::o;3840:31::-;;;;:::o;3039:244::-;2619:12;:10;:12::i;:::-;2609:22;;:6;;;;;;;;;;:22;;;2601:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3148:1:::1;3128:22;;:8;:22;;::::0;3120:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3238:8;3209:38;;3230:6;::::0;::::1;;;;;;;;3209:38;;;;;;;;;;;;3267:8;3258:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3039:244:::0;:::o;6934:468::-;6998:7;7051:1;7021:6;:19;7028:11;7021:19;;;;;;;;;;;;;;;:26;;;:31;7018:48;;7062:1;7055:8;;;;7018:48;7076:33;7112:50;7135:6;:19;7142:11;7135:19;;;;;;;;;;;;;;;:26;;;7112:22;:50::i;:::-;7076:86;;7173:32;7208:6;:19;7215:11;7208:19;;;;;;;;;;;;;;;:33;;;7173:68;;7284:24;7255:25;:53;7252:70;;7318:1;7311:8;;;;;;7252:70;7339:55;7369:24;7339:25;:29;;:55;;;;:::i;:::-;7332:62;;;;6934:468;;;;:::o;368:181::-;426:7;446:9;462:1;458;:5;;;;:::i;:::-;446:17;;487:1;482;:6;;474:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;540:1;533:8;;;368:181;;;;:::o;98:115::-;151:15;194:10;179:26;;98:115;:::o;6115:559::-;6217:1;6187:6;:19;6194:11;6187:19;;;;;;;;;;;;;;;:26;;;:31;6184:46;6221:7;6184:46;6240:14;6257:23;6268:11;6257:10;:23::i;:::-;6240:40;;6303:1;6294:6;:10;6291:376;;;6339:28;6360:6;6339:16;;:20;;:28;;;;:::i;:::-;6320:16;:47;;;;6414:6;6382;:19;6389:11;6382:19;;;;;;;;;;;;;;;:28;;;:38;;;;;;;:::i;:::-;;;;;;;;6452:6;6435:13;;:23;;;;;;;:::i;:::-;;;;;;;;6509:45;6547:6;6509;:19;6516:11;6509:19;;;;;;;;;;;;;;;:33;;;:37;;:45;;;;:::i;:::-;6473:6;:19;6480:11;6473:19;;;;;;;;;;;;;;;:33;;:81;;;;6605:50;6628:6;:19;6635:11;6628:19;;;;;;;;;;;;;;;:26;;;6605:22;:50::i;:::-;6569:6;:19;6576:11;6569:19;;;;;;;;;;;;;;;:33;;:86;;;;6291:376;6173:501;6115:559;;:::o;557:136::-;615:7;642:43;646:1;649;642:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;635:50;;557:136;;;;:::o;7410:170::-;7480:7;7507:65;7540:31;;7507:28;7517:17;;7507:5;:9;;:28;;;;:::i;:::-;:32;;:65;;;;:::i;:::-;7500:72;;7410:170;;;:::o;901:250::-;959:7;988:1;983;:6;979:47;;1013:1;1006:8;;;;979:47;1038:9;1054:1;1050;:5;;;;:::i;:::-;1038:17;;1083:1;1078;1074;:5;;;;:::i;:::-;:10;1066:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1142:1;1135:8;;;901:250;;;;;:::o;1159:132::-;1217:7;1244:39;1248:1;1251;1244:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1237:46;;1159:132;;;;:::o;701:192::-;787:7;820:1;815;:6;;823:12;807:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;847:9;863:1;859;:5;;;;:::i;:::-;847:17;;884:1;877:8;;;701:192;;;;;:::o;1299:278::-;1385:7;1417:1;1413;:5;1420:12;1405:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1444:9;1460:1;1456;:5;;;;:::i;:::-;1444:17;;1568:1;1561:8;;;1299:278;;;;;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:77::-;1213:7;1242:5;1231:16;;1176:77;;;:::o;1259:118::-;1346:24;1364:5;1346:24;:::i;:::-;1341:3;1334:37;1259:118;;:::o;1383:222::-;1476:4;1514:2;1503:9;1499:18;1491:26;;1527:71;1595:1;1584:9;1580:17;1571:6;1527:71;:::i;:::-;1383:222;;;;:::o;1611:122::-;1684:24;1702:5;1684:24;:::i;:::-;1677:5;1674:35;1664:63;;1723:1;1720;1713:12;1664:63;1611:122;:::o;1739:139::-;1785:5;1823:6;1810:20;1801:29;;1839:33;1866:5;1839:33;:::i;:::-;1739:139;;;;:::o;1884:329::-;1943:6;1992:2;1980:9;1971:7;1967:23;1963:32;1960:119;;;1998:79;;:::i;:::-;1960:119;2118:1;2143:53;2188:7;2179:6;2168:9;2164:22;2143:53;:::i;:::-;2133:63;;2089:117;1884:329;;;;:::o;2219:118::-;2306:24;2324:5;2306:24;:::i;:::-;2301:3;2294:37;2219:118;;:::o;2343:222::-;2436:4;2474:2;2463:9;2459:18;2451:26;;2487:71;2555:1;2544:9;2540:17;2531:6;2487:71;:::i;:::-;2343:222;;;;:::o;2571:90::-;2605:7;2648:5;2641:13;2634:21;2623:32;;2571:90;;;:::o;2667:109::-;2748:21;2763:5;2748:21;:::i;:::-;2743:3;2736:34;2667:109;;:::o;2782:210::-;2869:4;2907:2;2896:9;2892:18;2884:26;;2920:65;2982:1;2971:9;2967:17;2958:6;2920:65;:::i;:::-;2782:210;;;;:::o;2998:474::-;3066:6;3074;3123:2;3111:9;3102:7;3098:23;3094:32;3091:119;;;3129:79;;:::i;:::-;3091:119;3249:1;3274:53;3319:7;3310:6;3299:9;3295:22;3274:53;:::i;:::-;3264:63;;3220:117;3376:2;3402:53;3447:7;3438:6;3427:9;3423:22;3402:53;:::i;:::-;3392:63;;3347:118;2998:474;;;;;:::o;3478:60::-;3506:3;3527:5;3520:12;;3478:60;;;:::o;3544:142::-;3594:9;3627:53;3645:34;3654:24;3672:5;3654:24;:::i;:::-;3645:34;:::i;:::-;3627:53;:::i;:::-;3614:66;;3544:142;;;:::o;3692:126::-;3742:9;3775:37;3806:5;3775:37;:::i;:::-;3762:50;;3692:126;;;:::o;3824:140::-;3888:9;3921:37;3952:5;3921:37;:::i;:::-;3908:50;;3824:140;;;:::o;3970:159::-;4071:51;4116:5;4071:51;:::i;:::-;4066:3;4059:64;3970:159;;:::o;4135:250::-;4242:4;4280:2;4269:9;4265:18;4257:26;;4293:85;4375:1;4364:9;4360:17;4351:6;4293:85;:::i;:::-;4135:250;;;;:::o;4391:553::-;4568:4;4606:3;4595:9;4591:19;4583:27;;4620:71;4688:1;4677:9;4673:17;4664:6;4620:71;:::i;:::-;4701:72;4769:2;4758:9;4754:18;4745:6;4701:72;:::i;:::-;4783;4851:2;4840:9;4836:18;4827:6;4783:72;:::i;:::-;4865;4933:2;4922:9;4918:18;4909:6;4865:72;:::i;:::-;4391:553;;;;;;;:::o;4950:169::-;5034:11;5068:6;5063:3;5056:19;5108:4;5103:3;5099:14;5084:29;;4950:169;;;;:::o;5125:182::-;5265:34;5261:1;5253:6;5249:14;5242:58;5125:182;:::o;5313:366::-;5455:3;5476:67;5540:2;5535:3;5476:67;:::i;:::-;5469:74;;5552:93;5641:3;5552:93;:::i;:::-;5670:2;5665:3;5661:12;5654:19;;5313:366;;;:::o;5685:419::-;5851:4;5889:2;5878:9;5874:18;5866:26;;5938:9;5932:4;5928:20;5924:1;5913:9;5909:17;5902:47;5966:131;6092:4;5966:131;:::i;:::-;5958:139;;5685:419;;;:::o;6110:172::-;6250:24;6246:1;6238:6;6234:14;6227:48;6110:172;:::o;6288:366::-;6430:3;6451:67;6515:2;6510:3;6451:67;:::i;:::-;6444:74;;6527:93;6616:3;6527:93;:::i;:::-;6645:2;6640:3;6636:12;6629:19;;6288:366;;;:::o;6660:419::-;6826:4;6864:2;6853:9;6849:18;6841:26;;6913:9;6907:4;6903:20;6899:1;6888:9;6884:17;6877:47;6941:131;7067:4;6941:131;:::i;:::-;6933:139;;6660:419;;;:::o;7085:180::-;7133:77;7130:1;7123:88;7230:4;7227:1;7220:15;7254:4;7251:1;7244:15;7271:194;7311:4;7331:20;7349:1;7331:20;:::i;:::-;7326:25;;7365:20;7383:1;7365:20;:::i;:::-;7360:25;;7409:1;7406;7402:9;7394:17;;7433:1;7427:4;7424:11;7421:37;;;7438:18;;:::i;:::-;7421:37;7271:194;;;;:::o;7471:332::-;7592:4;7630:2;7619:9;7615:18;7607:26;;7643:71;7711:1;7700:9;7696:17;7687:6;7643:71;:::i;:::-;7724:72;7792:2;7781:9;7777:18;7768:6;7724:72;:::i;:::-;7471:332;;;;;:::o;7809:442::-;7958:4;7996:2;7985:9;7981:18;7973:26;;8009:71;8077:1;8066:9;8062:17;8053:6;8009:71;:::i;:::-;8090:72;8158:2;8147:9;8143:18;8134:6;8090:72;:::i;:::-;8172;8240:2;8229:9;8225:18;8216:6;8172:72;:::i;:::-;7809:442;;;;;;:::o;8257:::-;8406:4;8444:2;8433:9;8429:18;8421:26;;8457:71;8525:1;8514:9;8510:17;8501:6;8457:71;:::i;:::-;8538:72;8606:2;8595:9;8591:18;8582:6;8538:72;:::i;:::-;8620;8688:2;8677:9;8673:18;8664:6;8620:72;:::i;:::-;8257:442;;;;;;:::o;8705:191::-;8745:3;8764:20;8782:1;8764:20;:::i;:::-;8759:25;;8798:20;8816:1;8798:20;:::i;:::-;8793:25;;8841:1;8838;8834:9;8827:16;;8862:3;8859:1;8856:10;8853:36;;;8869:18;;:::i;:::-;8853:36;8705:191;;;;:::o;8902:225::-;9042:34;9038:1;9030:6;9026:14;9019:58;9111:8;9106:2;9098:6;9094:15;9087:33;8902:225;:::o;9133:366::-;9275:3;9296:67;9360:2;9355:3;9296:67;:::i;:::-;9289:74;;9372:93;9461:3;9372:93;:::i;:::-;9490:2;9485:3;9481:12;9474:19;;9133:366;;;:::o;9505:419::-;9671:4;9709:2;9698:9;9694:18;9686:26;;9758:9;9752:4;9748:20;9744:1;9733:9;9729:17;9722:47;9786:131;9912:4;9786:131;:::i;:::-;9778:139;;9505:419;;;:::o;9930:177::-;10070:29;10066:1;10058:6;10054:14;10047:53;9930:177;:::o;10113:366::-;10255:3;10276:67;10340:2;10335:3;10276:67;:::i;:::-;10269:74;;10352:93;10441:3;10352:93;:::i;:::-;10470:2;10465:3;10461:12;10454:19;;10113:366;;;:::o;10485:419::-;10651:4;10689:2;10678:9;10674:18;10666:26;;10738:9;10732:4;10728:20;10724:1;10713:9;10709:17;10702:47;10766:131;10892:4;10766:131;:::i;:::-;10758:139;;10485:419;;;:::o;10910:348::-;10950:7;10973:20;10991:1;10973:20;:::i;:::-;10968:25;;11007:20;11025:1;11007:20;:::i;:::-;11002:25;;11195:1;11127:66;11123:74;11120:1;11117:81;11112:1;11105:9;11098:17;11094:105;11091:131;;;11202:18;;:::i;:::-;11091:131;11250:1;11247;11243:9;11232:20;;10910:348;;;;:::o;11264:180::-;11312:77;11309:1;11302:88;11409:4;11406:1;11399:15;11433:4;11430:1;11423:15;11450:185;11490:1;11507:20;11525:1;11507:20;:::i;:::-;11502:25;;11541:20;11559:1;11541:20;:::i;:::-;11536:25;;11580:1;11570:35;;11585:18;;:::i;:::-;11570:35;11627:1;11624;11620:9;11615:14;;11450:185;;;;:::o;11641:220::-;11781:34;11777:1;11769:6;11765:14;11758:58;11850:3;11845:2;11837:6;11833:15;11826:28;11641:220;:::o;11867:366::-;12009:3;12030:67;12094:2;12089:3;12030:67;:::i;:::-;12023:74;;12106:93;12195:3;12106:93;:::i;:::-;12224:2;12219:3;12215:12;12208:19;;11867:366;;;:::o;12239:419::-;12405:4;12443:2;12432:9;12428:18;12420:26;;12492:9;12486:4;12482:20;12478:1;12467:9;12463:17;12456:47;12520:131;12646:4;12520:131;:::i;:::-;12512:139;;12239:419;;;:::o;12664:99::-;12716:6;12750:5;12744:12;12734:22;;12664:99;;;:::o;12769:246::-;12850:1;12860:113;12874:6;12871:1;12868:13;12860:113;;;12959:1;12954:3;12950:11;12944:18;12940:1;12935:3;12931:11;12924:39;12896:2;12893:1;12889:10;12884:15;;12860:113;;;13007:1;12998:6;12993:3;12989:16;12982:27;12831:184;12769:246;;;:::o;13021:102::-;13062:6;13113:2;13109:7;13104:2;13097:5;13093:14;13089:28;13079:38;;13021:102;;;:::o;13129:377::-;13217:3;13245:39;13278:5;13245:39;:::i;:::-;13300:71;13364:6;13359:3;13300:71;:::i;:::-;13293:78;;13380:65;13438:6;13433:3;13426:4;13419:5;13415:16;13380:65;:::i;:::-;13470:29;13492:6;13470:29;:::i;:::-;13465:3;13461:39;13454:46;;13221:285;13129:377;;;;:::o;13512:313::-;13625:4;13663:2;13652:9;13648:18;13640:26;;13712:9;13706:4;13702:20;13698:1;13687:9;13683:17;13676:47;13740:78;13813:4;13804:6;13740:78;:::i;:::-;13732:86;;13512:313;;;;:::o
Swarm Source
ipfs://ca4765f3f394befec287191e590e71a477e52748cc2f73a593813445099aae78
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.