Contract Address Details
contract

0xaE8BED11cAD069dC4AC10031Fe54B5805b8e3dcE

Sponsored: 

Overview

XVI Balance

737.45 XVI

XVI Value

Less than $0.000001

Token Holdings

Fetching tokens...

More Info

Private Name Tags

Last Balance Update

Blocks Validated

Sponsored

Contract name:
StakeXVI




Optimization enabled
true
Compiler version
v0.8.0+commit.c7dfd78e




Optimization runs
200
EVM Version
default




Verified at
2024-08-27T00:16:46.491845Z

Contract source code

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract StakeXVI {
address public owner;
uint256 public constant referralCommission = 20; // 20% on maturity to the referrer
uint256 public constant minimumStakeForBonus = 50 ether; // Minimum stake to receive bonuses
uint256 private nextInvestmentId = 1; // Unique ID for investments
struct Investment {
uint256 id;
uint256 amount;
uint256 startTime;
uint256 duration;
uint256 maturityTime;
address referrer;
bool isUnstaked;
}
struct ReferralInfo {
address referrer;
uint256 totalStaked;
uint256 directBonus;
uint256[18] referralLevels; // Rewards for each of the 18 levels
mapping(uint256 => address[]) levelMembers; // Members in each of the 18 levels
}
struct ReferralTransaction {
address from;
uint256 date;
uint256 amount;
uint256 level;
}
mapping(address => Investment[]) public investments;
mapping(address => ReferralInfo) public referrals;
mapping(address => ReferralTransaction[]) public referralTransactions;
event Staked(address indexed user, uint256 amount, uint256 duration, address indexed referrer);
event ReferralReward(address indexed user, uint256 amount, uint256 level);
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Contract ABI

[{"type":"constructor","stateMutability":"nonpayable","inputs":[]},{"type":"event","name":"ReferralReward","inputs":[{"type":"address","name":"user","internalType":"address","indexed":true},{"type":"uint256","name":"amount","internalType":"uint256","indexed":false},{"type":"uint256","name":"level","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"Staked","inputs":[{"type":"address","name":"user","internalType":"address","indexed":true},{"type":"uint256","name":"amount","internalType":"uint256","indexed":false},{"type":"uint256","name":"duration","internalType":"uint256","indexed":false},{"type":"address","name":"referrer","internalType":"address","indexed":true}],"anonymous":false},{"type":"event","name":"Unstaked","inputs":[{"type":"address","name":"user","internalType":"address","indexed":true},{"type":"uint256","name":"amount","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"function","stateMutability":"pure","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"calculateMaturityAmount","inputs":[{"type":"uint256","name":"_amount","internalType":"uint256"},{"type":"uint256","name":"_duration","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"tuple[]","name":"","internalType":"struct StakeXVI.Investment[]","components":[{"type":"uint256","name":"id","internalType":"uint256"},{"type":"uint256","name":"amount","internalType":"uint256"},{"type":"uint256","name":"startTime","internalType":"uint256"},{"type":"uint256","name":"duration","internalType":"uint256"},{"type":"uint256","name":"maturityTime","internalType":"uint256"},{"type":"address","name":"referrer","internalType":"address"},{"type":"bool","name":"isUnstaked","internalType":"bool"}]}],"name":"getInvestmentTransactions","inputs":[{"type":"address","name":"_user","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"id","internalType":"uint256"},{"type":"uint256","name":"amount","internalType":"uint256"},{"type":"uint256","name":"startTime","internalType":"uint256"},{"type":"uint256","name":"duration","internalType":"uint256"},{"type":"uint256","name":"maturityTime","internalType":"uint256"},{"type":"address","name":"referrer","internalType":"address"},{"type":"bool","name":"isUnstaked","internalType":"bool"}],"name":"investments","inputs":[{"type":"address","name":"","internalType":"address"},{"type":"uint256","name":"","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"minimumStakeForBonus","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"owner","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"referralCommission","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"from","internalType":"address"},{"type":"uint256","name":"date","internalType":"uint256"},{"type":"uint256","name":"amount","internalType":"uint256"},{"type":"uint256","name":"level","internalType":"uint256"}],"name":"referralTransactions","inputs":[{"type":"address","name":"","internalType":"address"},{"type":"uint256","name":"","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"referrer","internalType":"address"},{"type":"uint256","name":"totalStaked","internalType":"uint256"},{"type":"uint256","name":"directBonus","internalType":"uint256"}],"name":"referrals","inputs":[{"type":"address","name":"","internalType":"address"}]},{"type":"function","stateMutability":"payable","outputs":[],"name":"stake","inputs":[{"type":"uint256","name":"_duration","internalType":"uint256"},{"type":"address","name":"_referrer","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"unstake","inputs":[{"type":"uint256","name":"_index","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"updateInvestments","inputs":[{"type":"address","name":"_user","internalType":"address"},{"type":"uint256","name":"_index","internalType":"uint256"},{"type":"uint256","name":"_newMaturityTime","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"viewActiveLevel1Members","inputs":[{"type":"address","name":"_user","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"viewDirectBonus","inputs":[{"type":"address","name":"_user","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address[]","name":"","internalType":"address[]"},{"type":"uint256[]","name":"","internalType":"uint256[]"},{"type":"uint256[]","name":"","internalType":"uint256[]"},{"type":"bool[]","name":"","internalType":"bool[]"},{"type":"bool[]","name":"","internalType":"bool[]"}],"name":"viewLevelWiseMembers","inputs":[{"type":"address","name":"_user","internalType":"address"},{"type":"uint256","name":"level","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256[]","name":"","internalType":"uint256[]"}],"name":"viewMaturityAmount","inputs":[{"type":"address","name":"_user","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"viewReferralRewards","inputs":[{"type":"address","name":"_user","internalType":"address"},{"type":"uint256","name":"level","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"tuple[]","name":"","internalType":"struct StakeXVI.ReferralTransaction[]","components":[{"type":"address","name":"from","internalType":"address"},{"type":"uint256","name":"date","internalType":"uint256"},{"type":"uint256","name":"amount","internalType":"uint256"},{"type":"uint256","name":"level","internalType":"uint256"}]}],"name":"viewReferralTransactions","inputs":[{"type":"address","name":"_user","internalType":"address"}]},{"type":"receive","stateMutability":"payable"}]
              

Contract Creation Code

0x60806040526001805534801561001457600080fd5b50600080546001600160a01b03191633179055611fb4806100366000396000f3fe6080604052600436106101025760003560e01c80638da5cb5b11610095578063a1eb5bba11610064578063a1eb5bba146102e0578063bfa2d1ee1461030d578063ce3fdca91461032d578063d664080814610342578063dd968e971461036f57610109565b80638da5cb5b1461023e5780638fac82c31461026057806395f90ce9146102915780639ca423b3146102b157610109565b80637606c4aa116100d15780637606c4aa146101bc578063785c18ef146101de5780637acb77571461020b5780638b2c046e1461021e57610109565b806315f0edaa1461010e5780632e17de78146101475780633e6d97701461016957806359ef0dad1461019c57610109565b3661010957005b600080fd5b34801561011a57600080fd5b5061012e610129366004611a07565b61038f565b60405161013e9493929190611b66565b60405180910390f35b34801561015357600080fd5b50610167610162366004611a62565b6103df565b005b34801561017557600080fd5b50610189610184366004611a07565b61066e565b60405161013e9796959493929190611ea4565b3480156101a857600080fd5b506101676101b7366004611a30565b6106d7565b3480156101c857600080fd5b506101d161078d565b60405161013e9190611e8d565b3480156101ea57600080fd5b506101fe6101f93660046119ed565b61079a565b60405161013e9190611d18565b610167610219366004611a7a565b610905565b34801561022a57600080fd5b506101d16102393660046119ed565b610b4b565b34801561024a57600080fd5b50610253610b69565b60405161013e9190611b31565b34801561026c57600080fd5b5061028061027b366004611a07565b610b78565b60405161013e959493929190611b8c565b34801561029d57600080fd5b506101d16102ac3660046119ed565b611111565b3480156102bd57600080fd5b506102d16102cc3660046119ed565b61124e565b60405161013e93929190611b45565b3480156102ec57600080fd5b506103006102fb3660046119ed565b611279565b60405161013e9190611c2b565b34801561031957600080fd5b506101d1610328366004611aa5565b61133f565b34801561033957600080fd5b506101d1611406565b34801561034e57600080fd5b5061036261035d3660046119ed565b61140b565b60405161013e9190611cb8565b34801561037b57600080fd5b506101d161038a366004611a07565b6114a0565b600460205281600052604060002081815481106103ab57600080fd5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b039092169450925084565b3360009081526002602052604090205481106104165760405162461bcd60e51b815260040161040d90611e1f565b60405180910390fd5b33600090815260026020526040812080548390811061044557634e487b7160e01b600052603260045260246000fd5b9060005260206000209060060201905080600401544210156104795760405162461bcd60e51b815260040161040d90611d55565b6005810154600160a01b900460ff16156104a55760405162461bcd60e51b815260040161040d90611d8c565b60006104b98260010154836003015461133f565b9050600060646104ca601484611f17565b6104d49190611ef7565b905060006104e28284611f36565b60058501805460ff60a01b1916600160a01b17908190559091506001600160a01b0316156105f85760058401546001600160a01b031660009081526003602052604081206002018054849290610539908490611edf565b90915550506005840180546001600160a01b0390811660009081526004602081815260408084208151608081018352338152428185019081528184018b815260016060840181815285548083018755958a5296892093519490970290920180546001600160a01b03191693891693909317835551948201949094559251600284015590516003909201919091559254925192909116916108fc85150291859190818181858888f193505050501580156105f6573d6000803e3d6000fd5b505b604051339082156108fc029083906000818181858888f19350505050158015610625573d6000803e3d6000fd5b50336001600160a01b03167f0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f758260405161065f9190611e8d565b60405180910390a25050505050565b6002602052816000526040600020818154811061068a57600080fd5b60009182526020909120600690910201805460018201546002830154600384015460048501546005909501549396509194509290916001600160a01b03811690600160a01b900460ff1687565b6000546001600160a01b031633146107015760405162461bcd60e51b815260040161040d90611e56565b6001600160a01b03831660009081526002602052604090205482106107385760405162461bcd60e51b815260040161040d90611e1f565b6001600160a01b038316600090815260026020526040902080548291908490811061077357634e487b7160e01b600052603260045260246000fd5b906000526020600020906006020160040181905550505050565b6802b5e3af16b188000081565b6001600160a01b0381166000908152600260205260408120546060918167ffffffffffffffff8111156107dd57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610806578160200160208202803683370190505b50905060005b828110156108fb576001600160a01b038516600090815260026020526040902080546108be91908390811061085157634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016001015460026000886001600160a01b03166001600160a01b0316815260200190815260200160002083815481106108a757634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016003015461133f565b8282815181106108de57634e487b7160e01b600052603260045260246000fd5b6020908102919091010152806108f381611f4d565b91505061080c565b509150505b919050565b6802b5e3af16b188000034101561092e5760405162461bcd60e51b815260040161040d90611dea565b600282101580156109405750600a8211155b61095c5760405162461bcd60e51b815260040161040d90611d2b565b600061096c836301e13380611f17565b6109769042611edf565b33600090815260026020526040808220815160e081019092526001805494955090939192839291906109a783611f4d565b9091555081523460208083019190915242604080840191909152606080840189905260808085018890526001600160a01b03808a1660a0808801829052600060c09889018190528a5460018181018d559b8252908890208a5160069092020190815596890151998701999099559387015160028601559186015160038501558501516004840155948401516005909201805494909301511515600160a01b0260ff60a01b19929095166001600160a01b031990941693909317169290921790915515610af957336000908152600360205260409020546001600160a01b0316610ab35733600090815260036020526040902080546001600160a01b0319166001600160a01b0384161790555b6001600160a01b03821660009081526003602052604081206001018054349290610ade908490611edf565b90915550610aee905082336114ed565b610af9338334611578565b816001600160a01b0316336001600160a01b03167f5ae77307cc03bbda7560de83c96d2f4af38c75edfc362603be8fd0b66a57dba73486604051610b3e929190611e96565b60405180910390a3505050565b6001600160a01b031660009081526003602052604090206002015490565b6000546001600160a01b031681565b606080606080606060018610158015610b92575060128611155b610bae5760405162461bcd60e51b815260040161040d90611dc3565b6001600160a01b0387166000908152600360209081526040808320898452601501825280832080548251818502810185019093528083529192909190830182828015610c2357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610c05575b505050505090506000815167ffffffffffffffff811115610c5457634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610c7d578160200160208202803683370190505b5090506000825167ffffffffffffffff811115610caa57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610cd3578160200160208202803683370190505b5090506000835167ffffffffffffffff811115610d0057634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610d29578160200160208202803683370190505b5090506000845167ffffffffffffffff811115610d5657634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610d7f578160200160208202803683370190505b50905060005b85518110156110fd576000600019815b600260008a8681518110610db957634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000208054905081101561107c57600260008a8681518110610e1057634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000208181548110610e5757634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016001015483610e749190611edf565b925081600260008b8781518110610e9b57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000208281548110610ee257634e487b7160e01b600052603260045260246000fd5b906000526020600020906006020160040154101561106a57600260008a8681518110610f1e57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000208181548110610f6557634e487b7160e01b600052603260045260246000fd5b906000526020600020906006020160040154915081421015868581518110610f9d57634e487b7160e01b600052603260045260246000fd5b602002602001019015159081151581525050600260008a8681518110610fd357634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020818154811061101a57634e487b7160e01b600052603260045260246000fd5b906000526020600020906006020160050160149054906101000a900460ff1685858151811061105957634e487b7160e01b600052603260045260246000fd5b911515602092830291909101909101525b8061107481611f4d565b915050610d95565b508187848151811061109e57634e487b7160e01b600052603260045260246000fd5b60200260200101818152505060001981146110b957806110bc565b60005b8684815181106110dc57634e487b7160e01b600052603260045260246000fd5b602002602001018181525050505080806110f590611f4d565b915050610d85565b50939b929a50909850965090945092505050565b6001600160a01b03811660009081526003602090815260408083206001845260150182528083208054825181850281018501909352808352849383018282801561118457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611166575b505050505090506000805b82518110156108fb576000805b82811015611227578481815181106111c457634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03168584815181106111f557634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031614156112155760019150611227565b8061121f81611f4d565b91505061119c565b508061123b578261123781611f4d565b9350505b508061124681611f4d565b91505061118f565b6003602052600090815260409020805460018201546002909201546001600160a01b03909116919083565b6001600160a01b0381166000908152600260209081526040808320805482518185028101850190935280835260609492939192909184015b828210156113345760008481526020908190206040805160e0810182526006860290920180548352600180820154848601526002820154928401929092526003810154606084015260048101546080840152600501546001600160a01b03811660a0840152600160a01b900460ff16151560c083015290835290920191016112b1565b505050509050919050565b6000816002141561135c57611355836002611f17565b9050611400565b816003141561137057611355836003611f17565b816004141561138457611355836007611f17565b81600514156113985761135583600a611f17565b81600614156113ac5761135583600e611f17565b81600714156113c057611355836014611f17565b81600814156113d45761135583601e611f17565b81600914156113e857611355836032611f17565b81600a14156113fc57611355836064611f17565b5060005b92915050565b601481565b6001600160a01b0381166000908152600460209081526040808320805482518185028101850190935280835260609492939192909184015b82821015611334576000848152602090819020604080516080810182526004860290920180546001600160a01b03168352600180820154848601526002820154928401929092526003015460608301529083529092019101611443565b6001600160a01b03821660009081526003602081905260408220016114c6600184611f36565b601281106114e457634e487b7160e01b600052603260045260246000fd5b01549392505050565b8160015b60128111611572576001600160a01b03821661150c57611572565b6001600160a01b03918216600081815260036020818152604080842086855260158101835290842080546001810182559085528285200180546001600160a01b03191689891617905593909252905254909116908061156a81611f4d565b9150506114f1565b50505050565b8160015b6012811161175c576001600160a01b0382166115975761175c565b6001600160a01b0382166000908152600360205260409020600101546802b5e3af16b188000011156115c85761175c565b60006115d5848385611763565b9050801561172b576001600160a01b0383166000908152600360208190526040909120829101611606600185611f36565b6012811061162457634e487b7160e01b600052603260045260246000fd5b0160008282546116349190611edf565b90915550506001600160a01b03838116600081815260046020818152604080842081516080810183528d88168152428185019081528184018a8152606083018c8152845460018082018755958a5296892093519690970290920180546001600160a01b03191695909916949094178855925190870155905160028601559051600390940193909355915190916108fc841502918491818181858888f193505050501580156116e6573d6000803e3d6000fd5b50826001600160a01b03167f11e2632065f1504a0a08dadf5f932c16b0675fba004713f09983b752cb04787d8284604051611722929190611e96565b60405180910390a25b506001600160a01b03918216600090815260036020526040902054909116908061175481611f4d565b91505061157c565b5050505050565b6000826001141561193b576001600160a01b0382166000908152600360209081526040808320600184526015018252808320805482518185028101850190935280835284938301828280156117e157602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116117c3575b5050505050905060005b81518110156118ac57600160005b828110156118845783818151811061182157634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031684848151811061185257634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031614156118725760009150611884565b8061187c81611f4d565b9150506117f9565b508015611899578361189581611f4d565b9450505b50806118a481611f4d565b9150506117eb565b5081600114156118d65760646118c3876005611f17565b6118cd9190611ef7565b925050506119cf565b81600214156118ec5760646118c3876006611f17565b81600314156119025760646118c3876007611f17565b81600414156119185760646118c3876008611f17565b816005141561192e5760646118c3876009611f17565b60646118c387600a611f17565b8260021415611962576064611951856004611f17565b61195b9190611ef7565b90506119cf565b82600314806119715750826004145b15611983576064611951856003611f17565b600583101580156119955750600a8311155b156119a7576064611951856002611f17565b600b83101580156119b9575060128311155b156119cb576064611951856001611f17565b5060005b9392505050565b80356001600160a01b038116811461090057600080fd5b6000602082840312156119fe578081fd5b6119cf826119d6565b60008060408385031215611a19578081fd5b611a22836119d6565b946020939093013593505050565b600080600060608486031215611a44578081fd5b611a4d846119d6565b95602085013595506040909401359392505050565b600060208284031215611a73578081fd5b5035919050565b60008060408385031215611a8c578182fd5b82359150611a9c602084016119d6565b90509250929050565b60008060408385031215611ab7578182fd5b50508035926020909101359150565b6000815180845260208085019450808401835b83811015611af7578151151587529582019590820190600101611ad9565b509495945050505050565b6000815180845260208085019450808401835b83811015611af757815187529582019590820190600101611b15565b6001600160a01b0391909116815260200190565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b60a0808252865190820181905260009060209060c0840190828a01845b82811015611bce5781516001600160a01b031684529284019290840190600101611ba9565b50505083810382850152611be28189611b02565b9150508281036040840152611bf78187611b02565b90508281036060840152611c0b8186611ac6565b90508281036080840152611c1f8185611ac6565b98975050505050505050565b602080825282518282018190526000919060409081850190868401855b82811015611cab5781518051855286810151878601528581015186860152606080820151908601526080808201519086015260a0808201516001600160a01b03169086015260c09081015115159085015260e09093019290850190600101611c48565b5091979650505050505050565b602080825282518282018190526000919060409081850190868401855b82811015611cab57815180516001600160a01b03168552868101518786015285810151868601526060908101519085015260809093019290850190600101611cd5565b6000602082526119cf6020830184611b02565b60208082526010908201526f24b73b30b634b210323ab930ba34b7b760811b604082015260600190565b60208082526019908201527f5374616b6520686173206e6f7420796574206d61747572656400000000000000604082015260600190565b6020808252601b908201527f496e766573746d656e7420616c726561647920756e7374616b65640000000000604082015260600190565b6020808252600d908201526c125b9d985b1a59081b195d995b609a1b604082015260600190565b6020808252818101527f4d696e696d756d207374616b65206f6620353020585649207265717569726564604082015260600190565b60208082526018908201527f496e76616c696420696e766573746d656e7420696e6465780000000000000000604082015260600190565b6020808252601b908201527f4f6e6c79206f776e65722063616e206578656375746520746869730000000000604082015260600190565b90815260200190565b918252602082015260400190565b96875260208701959095526040860193909352606085019190915260808401526001600160a01b031660a0830152151560c082015260e00190565b60008219821115611ef257611ef2611f68565b500190565b600082611f1257634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611f3157611f31611f68565b500290565b600082821015611f4857611f48611f68565b500390565b6000600019821415611f6157611f61611f68565b5060010190565b634e487b7160e01b600052601160045260246000fdfea26469706673582212203f597c682f89c0eb04dc212ffad6d46ae7c1d3f5d2208a0481be75883778030d64736f6c63430008000033

Deployed ByteCode

0x6080604052600436106101025760003560e01c80638da5cb5b11610095578063a1eb5bba11610064578063a1eb5bba146102e0578063bfa2d1ee1461030d578063ce3fdca91461032d578063d664080814610342578063dd968e971461036f57610109565b80638da5cb5b1461023e5780638fac82c31461026057806395f90ce9146102915780639ca423b3146102b157610109565b80637606c4aa116100d15780637606c4aa146101bc578063785c18ef146101de5780637acb77571461020b5780638b2c046e1461021e57610109565b806315f0edaa1461010e5780632e17de78146101475780633e6d97701461016957806359ef0dad1461019c57610109565b3661010957005b600080fd5b34801561011a57600080fd5b5061012e610129366004611a07565b61038f565b60405161013e9493929190611b66565b60405180910390f35b34801561015357600080fd5b50610167610162366004611a62565b6103df565b005b34801561017557600080fd5b50610189610184366004611a07565b61066e565b60405161013e9796959493929190611ea4565b3480156101a857600080fd5b506101676101b7366004611a30565b6106d7565b3480156101c857600080fd5b506101d161078d565b60405161013e9190611e8d565b3480156101ea57600080fd5b506101fe6101f93660046119ed565b61079a565b60405161013e9190611d18565b610167610219366004611a7a565b610905565b34801561022a57600080fd5b506101d16102393660046119ed565b610b4b565b34801561024a57600080fd5b50610253610b69565b60405161013e9190611b31565b34801561026c57600080fd5b5061028061027b366004611a07565b610b78565b60405161013e959493929190611b8c565b34801561029d57600080fd5b506101d16102ac3660046119ed565b611111565b3480156102bd57600080fd5b506102d16102cc3660046119ed565b61124e565b60405161013e93929190611b45565b3480156102ec57600080fd5b506103006102fb3660046119ed565b611279565b60405161013e9190611c2b565b34801561031957600080fd5b506101d1610328366004611aa5565b61133f565b34801561033957600080fd5b506101d1611406565b34801561034e57600080fd5b5061036261035d3660046119ed565b61140b565b60405161013e9190611cb8565b34801561037b57600080fd5b506101d161038a366004611a07565b6114a0565b600460205281600052604060002081815481106103ab57600080fd5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b039092169450925084565b3360009081526002602052604090205481106104165760405162461bcd60e51b815260040161040d90611e1f565b60405180910390fd5b33600090815260026020526040812080548390811061044557634e487b7160e01b600052603260045260246000fd5b9060005260206000209060060201905080600401544210156104795760405162461bcd60e51b815260040161040d90611d55565b6005810154600160a01b900460ff16156104a55760405162461bcd60e51b815260040161040d90611d8c565b60006104b98260010154836003015461133f565b9050600060646104ca601484611f17565b6104d49190611ef7565b905060006104e28284611f36565b60058501805460ff60a01b1916600160a01b17908190559091506001600160a01b0316156105f85760058401546001600160a01b031660009081526003602052604081206002018054849290610539908490611edf565b90915550506005840180546001600160a01b0390811660009081526004602081815260408084208151608081018352338152428185019081528184018b815260016060840181815285548083018755958a5296892093519490970290920180546001600160a01b03191693891693909317835551948201949094559251600284015590516003909201919091559254925192909116916108fc85150291859190818181858888f193505050501580156105f6573d6000803e3d6000fd5b505b604051339082156108fc029083906000818181858888f19350505050158015610625573d6000803e3d6000fd5b50336001600160a01b03167f0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f758260405161065f9190611e8d565b60405180910390a25050505050565b6002602052816000526040600020818154811061068a57600080fd5b60009182526020909120600690910201805460018201546002830154600384015460048501546005909501549396509194509290916001600160a01b03811690600160a01b900460ff1687565b6000546001600160a01b031633146107015760405162461bcd60e51b815260040161040d90611e56565b6001600160a01b03831660009081526002602052604090205482106107385760405162461bcd60e51b815260040161040d90611e1f565b6001600160a01b038316600090815260026020526040902080548291908490811061077357634e487b7160e01b600052603260045260246000fd5b906000526020600020906006020160040181905550505050565b6802b5e3af16b188000081565b6001600160a01b0381166000908152600260205260408120546060918167ffffffffffffffff8111156107dd57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610806578160200160208202803683370190505b50905060005b828110156108fb576001600160a01b038516600090815260026020526040902080546108be91908390811061085157634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016001015460026000886001600160a01b03166001600160a01b0316815260200190815260200160002083815481106108a757634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016003015461133f565b8282815181106108de57634e487b7160e01b600052603260045260246000fd5b6020908102919091010152806108f381611f4d565b91505061080c565b509150505b919050565b6802b5e3af16b188000034101561092e5760405162461bcd60e51b815260040161040d90611dea565b600282101580156109405750600a8211155b61095c5760405162461bcd60e51b815260040161040d90611d2b565b600061096c836301e13380611f17565b6109769042611edf565b33600090815260026020526040808220815160e081019092526001805494955090939192839291906109a783611f4d565b9091555081523460208083019190915242604080840191909152606080840189905260808085018890526001600160a01b03808a1660a0808801829052600060c09889018190528a5460018181018d559b8252908890208a5160069092020190815596890151998701999099559387015160028601559186015160038501558501516004840155948401516005909201805494909301511515600160a01b0260ff60a01b19929095166001600160a01b031990941693909317169290921790915515610af957336000908152600360205260409020546001600160a01b0316610ab35733600090815260036020526040902080546001600160a01b0319166001600160a01b0384161790555b6001600160a01b03821660009081526003602052604081206001018054349290610ade908490611edf565b90915550610aee905082336114ed565b610af9338334611578565b816001600160a01b0316336001600160a01b03167f5ae77307cc03bbda7560de83c96d2f4af38c75edfc362603be8fd0b66a57dba73486604051610b3e929190611e96565b60405180910390a3505050565b6001600160a01b031660009081526003602052604090206002015490565b6000546001600160a01b031681565b606080606080606060018610158015610b92575060128611155b610bae5760405162461bcd60e51b815260040161040d90611dc3565b6001600160a01b0387166000908152600360209081526040808320898452601501825280832080548251818502810185019093528083529192909190830182828015610c2357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610c05575b505050505090506000815167ffffffffffffffff811115610c5457634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610c7d578160200160208202803683370190505b5090506000825167ffffffffffffffff811115610caa57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610cd3578160200160208202803683370190505b5090506000835167ffffffffffffffff811115610d0057634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610d29578160200160208202803683370190505b5090506000845167ffffffffffffffff811115610d5657634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610d7f578160200160208202803683370190505b50905060005b85518110156110fd576000600019815b600260008a8681518110610db957634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000208054905081101561107c57600260008a8681518110610e1057634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000208181548110610e5757634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016001015483610e749190611edf565b925081600260008b8781518110610e9b57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000208281548110610ee257634e487b7160e01b600052603260045260246000fd5b906000526020600020906006020160040154101561106a57600260008a8681518110610f1e57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000208181548110610f6557634e487b7160e01b600052603260045260246000fd5b906000526020600020906006020160040154915081421015868581518110610f9d57634e487b7160e01b600052603260045260246000fd5b602002602001019015159081151581525050600260008a8681518110610fd357634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020818154811061101a57634e487b7160e01b600052603260045260246000fd5b906000526020600020906006020160050160149054906101000a900460ff1685858151811061105957634e487b7160e01b600052603260045260246000fd5b911515602092830291909101909101525b8061107481611f4d565b915050610d95565b508187848151811061109e57634e487b7160e01b600052603260045260246000fd5b60200260200101818152505060001981146110b957806110bc565b60005b8684815181106110dc57634e487b7160e01b600052603260045260246000fd5b602002602001018181525050505080806110f590611f4d565b915050610d85565b50939b929a50909850965090945092505050565b6001600160a01b03811660009081526003602090815260408083206001845260150182528083208054825181850281018501909352808352849383018282801561118457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611166575b505050505090506000805b82518110156108fb576000805b82811015611227578481815181106111c457634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03168584815181106111f557634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031614156112155760019150611227565b8061121f81611f4d565b91505061119c565b508061123b578261123781611f4d565b9350505b508061124681611f4d565b91505061118f565b6003602052600090815260409020805460018201546002909201546001600160a01b03909116919083565b6001600160a01b0381166000908152600260209081526040808320805482518185028101850190935280835260609492939192909184015b828210156113345760008481526020908190206040805160e0810182526006860290920180548352600180820154848601526002820154928401929092526003810154606084015260048101546080840152600501546001600160a01b03811660a0840152600160a01b900460ff16151560c083015290835290920191016112b1565b505050509050919050565b6000816002141561135c57611355836002611f17565b9050611400565b816003141561137057611355836003611f17565b816004141561138457611355836007611f17565b81600514156113985761135583600a611f17565b81600614156113ac5761135583600e611f17565b81600714156113c057611355836014611f17565b81600814156113d45761135583601e611f17565b81600914156113e857611355836032611f17565b81600a14156113fc57611355836064611f17565b5060005b92915050565b601481565b6001600160a01b0381166000908152600460209081526040808320805482518185028101850190935280835260609492939192909184015b82821015611334576000848152602090819020604080516080810182526004860290920180546001600160a01b03168352600180820154848601526002820154928401929092526003015460608301529083529092019101611443565b6001600160a01b03821660009081526003602081905260408220016114c6600184611f36565b601281106114e457634e487b7160e01b600052603260045260246000fd5b01549392505050565b8160015b60128111611572576001600160a01b03821661150c57611572565b6001600160a01b03918216600081815260036020818152604080842086855260158101835290842080546001810182559085528285200180546001600160a01b03191689891617905593909252905254909116908061156a81611f4d565b9150506114f1565b50505050565b8160015b6012811161175c576001600160a01b0382166115975761175c565b6001600160a01b0382166000908152600360205260409020600101546802b5e3af16b188000011156115c85761175c565b60006115d5848385611763565b9050801561172b576001600160a01b0383166000908152600360208190526040909120829101611606600185611f36565b6012811061162457634e487b7160e01b600052603260045260246000fd5b0160008282546116349190611edf565b90915550506001600160a01b03838116600081815260046020818152604080842081516080810183528d88168152428185019081528184018a8152606083018c8152845460018082018755958a5296892093519690970290920180546001600160a01b03191695909916949094178855925190870155905160028601559051600390940193909355915190916108fc841502918491818181858888f193505050501580156116e6573d6000803e3d6000fd5b50826001600160a01b03167f11e2632065f1504a0a08dadf5f932c16b0675fba004713f09983b752cb04787d8284604051611722929190611e96565b60405180910390a25b506001600160a01b03918216600090815260036020526040902054909116908061175481611f4d565b91505061157c565b5050505050565b6000826001141561193b576001600160a01b0382166000908152600360209081526040808320600184526015018252808320805482518185028101850190935280835284938301828280156117e157602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116117c3575b5050505050905060005b81518110156118ac57600160005b828110156118845783818151811061182157634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031684848151811061185257634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031614156118725760009150611884565b8061187c81611f4d565b9150506117f9565b508015611899578361189581611f4d565b9450505b50806118a481611f4d565b9150506117eb565b5081600114156118d65760646118c3876005611f17565b6118cd9190611ef7565b925050506119cf565b81600214156118ec5760646118c3876006611f17565b81600314156119025760646118c3876007611f17565b81600414156119185760646118c3876008611f17565b816005141561192e5760646118c3876009611f17565b60646118c387600a611f17565b8260021415611962576064611951856004611f17565b61195b9190611ef7565b90506119cf565b82600314806119715750826004145b15611983576064611951856003611f17565b600583101580156119955750600a8311155b156119a7576064611951856002611f17565b600b83101580156119b9575060128311155b156119cb576064611951856001611f17565b5060005b9392505050565b80356001600160a01b038116811461090057600080fd5b6000602082840312156119fe578081fd5b6119cf826119d6565b60008060408385031215611a19578081fd5b611a22836119d6565b946020939093013593505050565b600080600060608486031215611a44578081fd5b611a4d846119d6565b95602085013595506040909401359392505050565b600060208284031215611a73578081fd5b5035919050565b60008060408385031215611a8c578182fd5b82359150611a9c602084016119d6565b90509250929050565b60008060408385031215611ab7578182fd5b50508035926020909101359150565b6000815180845260208085019450808401835b83811015611af7578151151587529582019590820190600101611ad9565b509495945050505050565b6000815180845260208085019450808401835b83811015611af757815187529582019590820190600101611b15565b6001600160a01b0391909116815260200190565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b60a0808252865190820181905260009060209060c0840190828a01845b82811015611bce5781516001600160a01b031684529284019290840190600101611ba9565b50505083810382850152611be28189611b02565b9150508281036040840152611bf78187611b02565b90508281036060840152611c0b8186611ac6565b90508281036080840152611c1f8185611ac6565b98975050505050505050565b602080825282518282018190526000919060409081850190868401855b82811015611cab5781518051855286810151878601528581015186860152606080820151908601526080808201519086015260a0808201516001600160a01b03169086015260c09081015115159085015260e09093019290850190600101611c48565b5091979650505050505050565b602080825282518282018190526000919060409081850190868401855b82811015611cab57815180516001600160a01b03168552868101518786015285810151868601526060908101519085015260809093019290850190600101611cd5565b6000602082526119cf6020830184611b02565b60208082526010908201526f24b73b30b634b210323ab930ba34b7b760811b604082015260600190565b60208082526019908201527f5374616b6520686173206e6f7420796574206d61747572656400000000000000604082015260600190565b6020808252601b908201527f496e766573746d656e7420616c726561647920756e7374616b65640000000000604082015260600190565b6020808252600d908201526c125b9d985b1a59081b195d995b609a1b604082015260600190565b6020808252818101527f4d696e696d756d207374616b65206f6620353020585649207265717569726564604082015260600190565b60208082526018908201527f496e76616c696420696e766573746d656e7420696e6465780000000000000000604082015260600190565b6020808252601b908201527f4f6e6c79206f776e65722063616e206578656375746520746869730000000000604082015260600190565b90815260200190565b918252602082015260400190565b96875260208701959095526040860193909352606085019190915260808401526001600160a01b031660a0830152151560c082015260e00190565b60008219821115611ef257611ef2611f68565b500190565b600082611f1257634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611f3157611f31611f68565b500290565b600082821015611f4857611f48611f68565b500390565b6000600019821415611f6157611f61611f68565b5060010190565b634e487b7160e01b600052601160045260246000fdfea26469706673582212203f597c682f89c0eb04dc212ffad6d46ae7c1d3f5d2208a0481be75883778030d64736f6c63430008000033