Source Code
Overview
ETH Balance
0.01 ETH
Eth Value
$19.69 (@ $1,969.19/ETH)Latest 25 from a total of 58 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Finalize | 11826767 | 1845 days ago | IN | 0 ETH | 0.00462918 | ||||
| Finalize | 11813872 | 1847 days ago | IN | 0 ETH | 0.00360206 | ||||
| Finalize | 11807269 | 1848 days ago | IN | 0 ETH | 0.00410136 | ||||
| Finalize | 11800748 | 1849 days ago | IN | 0 ETH | 0.00429751 | ||||
| Finalize | 11787739 | 1851 days ago | IN | 0 ETH | 0.0071328 | ||||
| Finalize | 11234828 | 1936 days ago | IN | 0 ETH | 0.00056545 | ||||
| Finalize | 11228018 | 1937 days ago | IN | 0 ETH | 0.00137306 | ||||
| Finalize | 11228018 | 1937 days ago | IN | 0 ETH | 0.00046719 | ||||
| Finalize | 11214787 | 1939 days ago | IN | 0 ETH | 0.00057668 | ||||
| Finalize | 11208319 | 1940 days ago | IN | 0 ETH | 0.0008916 | ||||
| Finalize | 11201764 | 1941 days ago | IN | 0 ETH | 0.00160488 | ||||
| Finalize | 11195358 | 1942 days ago | IN | 0 ETH | 0.00053496 | ||||
| Finalize | 11188694 | 1943 days ago | IN | 0 ETH | 0.00057419 | ||||
| Finalize | 11169164 | 1946 days ago | IN | 0 ETH | 0.00060628 | ||||
| Finalize | 11162829 | 1947 days ago | IN | 0 ETH | 0.00053496 | ||||
| Finalize | 11156146 | 1948 days ago | IN | 0 ETH | 0.00124824 | ||||
| Finalize | 11149617 | 1949 days ago | IN | 0 ETH | 0.00092726 | ||||
| Finalize | 11143108 | 1950 days ago | IN | 0 ETH | 0.00092726 | ||||
| Finalize | 11136550 | 1951 days ago | IN | 0 ETH | 0.00064195 | ||||
| Finalize | 11130082 | 1952 days ago | IN | 0 ETH | 0.00213984 | ||||
| Finalize | 11123846 | 1953 days ago | IN | 0 ETH | 0.00053496 | ||||
| Finalize | 11117956 | 1954 days ago | IN | 0 ETH | 0.00057062 | ||||
| Finalize | 11110518 | 1955 days ago | IN | 0 ETH | 0.00105565 | ||||
| Finalize | 11104356 | 1956 days ago | IN | 0 ETH | 0.00106992 | ||||
| Finalize | 11097735 | 1957 days ago | IN | 0 ETH | 0.00171187 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0xF9313449...5C351a9Dd The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
CharityChallenge
Compiler Version
v0.5.2+commit.1df8f40c
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Multiple files format)
pragma solidity ^0.5.2;
import "./IRealityCheck.sol";
import "./SafeMath.sol";
contract CharityChallenge {
using SafeMath for uint256;
using SafeMath for uint8;
event Received(address indexed sender, uint256 value);
event Donated(address indexed npo, uint256 value);
event Fee(address indexed maker, uint256 value);
event Claimed(address indexed claimer, uint256 value);
event SafetyHatchClaimed(address indexed claimer, uint256 value);
string public constant VERSION = "0.4.0";
address payable public contractOwner;
// key is npo address, value is ratio
mapping(address => uint8) public npoRatios;
uint8 sumRatio;
address payable[] public npoAddresses;
address public marketAddress;
bool public unlockOnNo;
IRealityCheck realityCheck;
string public question;
address public arbitrator;
uint256 public timeout;
bytes32 public questionId;
uint256 public challengeEndTime;
// For a fee of 10.5%, pass 1050
uint256 public makerFee;
uint256 public challengeSafetyHatchTime1;
uint256 public challengeSafetyHatchTime2;
// Valid outcomes are 'YES', 'NO' and 'INVALID'
bool public isEventFinalized;
// hasChallengeAccomplished will be set to true if we got the expected
// result that allow to unlock the funds.
bool public hasChallengeAccomplished;
bool private safetyHatchClaimSucceeded;
mapping(address => uint256) public donorBalances;
uint256 public donorCount;
// We use a divider of 10000 instead of 100 to have more granularity for
// the maker fee
uint256 constant feeDivider = 10000;
bool private mReentrancyLock = false;
modifier nonReentrant() {
require(!mReentrancyLock);
mReentrancyLock = true;
_;
mReentrancyLock = false;
}
constructor(
address payable _contractOwner,
address payable[] memory _npoAddresses,
uint8[] memory _ratios,
address _marketAddress,
string memory _question,
address _arbitrator,
uint256 _timeout,
uint256 _challengeEndTime,
uint256 _makerFee,
bool _unlockOnNo
) public
{
require(_npoAddresses.length == _ratios.length);
require(makerFee < feeDivider);
uint length = _npoAddresses.length;
for (uint i = 0; i < length; i++) {
address payable npo = _npoAddresses[i];
npoAddresses.push(npo);
require(_ratios[i] > 0, "Ratio must be a positive number");
npoRatios[npo] = _ratios[i];
sumRatio += _ratios[i];
}
contractOwner = _contractOwner;
marketAddress = _marketAddress;
realityCheck = IRealityCheck(_marketAddress);
question = _question;
arbitrator = _arbitrator;
timeout = _timeout;
challengeEndTime = _challengeEndTime;
makerFee = _makerFee;
questionId = realityCheck.askQuestion(0, question, arbitrator, uint32(timeout), uint32(challengeEndTime), 0);
unlockOnNo = _unlockOnNo;
challengeSafetyHatchTime1 = challengeEndTime + 26 weeks;
challengeSafetyHatchTime2 = challengeSafetyHatchTime1 + 52 weeks;
isEventFinalized = false;
hasChallengeAccomplished = false;
}
function() external payable {
require(now <= challengeEndTime);
require(msg.value > 0);
if (donorBalances[msg.sender] == 0 && msg.value > 0) {
donorCount++;
}
donorBalances[msg.sender] += msg.value;
emit Received(msg.sender, msg.value);
}
function balanceOf(address _donorAddress) public view returns (uint256) {
if (safetyHatchClaimSucceeded) {
return 0;
}
return donorBalances[_donorAddress];
}
function finalize() nonReentrant external {
require(now > challengeEndTime);
require(now <= challengeSafetyHatchTime1);
require(!isEventFinalized);
doFinalize();
}
function doFinalize() private {
bool hasError;
(hasChallengeAccomplished, hasError) = checkRealitio();
if (!hasError) {
isEventFinalized = true;
if (hasChallengeAccomplished) {
uint length = npoAddresses.length;
if (makerFee > 0) {
uint256 amount = address(this).balance.mul(makerFee).div(feeDivider);
contractOwner.transfer(amount);
emit Fee(contractOwner, amount);
}
for (uint i = 0; i < length - 1; i++) {
address payable npo = npoAddresses[i];
uint8 ratio = npoRatios[npo];
uint256 amount = address(this).balance.mul(ratio).div(sumRatio);
npo.transfer(amount);
emit Donated(npo, amount);
}
// Don't want to keep any amount in the contract
uint256 amount = address(this).balance;
address payable npo = npoAddresses[length - 1];
npo.transfer(amount);
emit Donated(npo, amount);
}
}
}
function getExpectedDonationAmount(address payable _npo) view external returns (uint256) {
require(npoRatios[_npo] > 0);
uint256 amountForNPO = address(this).balance.sub(address(this).balance.mul(makerFee).div(feeDivider));
uint8 ratio = npoRatios[_npo];
return amountForNPO.mul(ratio).div(sumRatio);
}
function claim() nonReentrant external {
require(now > challengeEndTime);
require(isEventFinalized || now > challengeSafetyHatchTime1);
require(!hasChallengeAccomplished || now > challengeSafetyHatchTime1);
require(balanceOf(msg.sender) > 0);
uint256 claimedAmount = balanceOf(msg.sender);
donorBalances[msg.sender] = 0;
msg.sender.transfer(claimedAmount);
emit Claimed(msg.sender, claimedAmount);
}
function safetyHatchClaim() external {
require(now > challengeSafetyHatchTime2);
require(msg.sender == contractOwner);
uint totalContractBalance = address(this).balance;
safetyHatchClaimSucceeded = true;
contractOwner.transfer(address(this).balance);
emit SafetyHatchClaimed(contractOwner, totalContractBalance);
}
function checkRealitio() private view returns (bool happened, bool errored) {
if (realityCheck.isFinalized(questionId)) {
bytes32 answer = realityCheck.getFinalAnswer(questionId);
if (answer == 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) {
// Treat 'invalid' outcome as 'no'
// because 'invalid' is one of the valid outcomes
return (false, false);
} else {
if (unlockOnNo) {
return (answer == 0x0000000000000000000000000000000000000000000000000000000000000000, false);
}
return (answer == 0x0000000000000000000000000000000000000000000000000000000000000001, false);
}
} else {
return (false, true);
}
}
}
pragma solidity ^0.5.2;
// RealityCheck API used to interract with realit.io, we only need to describe the
// functions we'll be using.
// cf https://raw.githubusercontent.com/realitio/realitio-dapp/master/truffle/contracts/RealityCheck.sol
interface IRealityCheck {
function askQuestion(
uint256 template_id, string calldata question,
address arbitrator, uint32 timeout, uint32 opening_ts, uint256 nonce) external returns (bytes32);
function isFinalized(bytes32 question_id) external view returns (bool);
function getFinalAnswer(bytes32 question_id) external view returns (bytes32);
function getOpeningTS(bytes32 question_id) external view returns(uint32);
}
pragma solidity ^0.5.0;
/**
* @dev Wrappers over Solidity's arithmetic operations with added overflow
* checks.
*
* Arithmetic operations in Solidity wrap on overflow. This can easily result
* in bugs, because programmers usually assume that an overflow raises an
* error, which is the standard behavior in high level programming languages.
* `SafeMath` restores this intuition by reverting the transaction when an
* operation overflows.
*
* Using this library instead of the unchecked operations eliminates an entire
* class of bugs, so it's recommended to use it always.
*/
library SafeMath {
/**
* @dev Returns the addition of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `+` operator.
*
* Requirements:
* - Addition cannot overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
require(b <= a, "SafeMath: subtraction overflow");
uint256 c = a - b;
return c;
}
/**
* @dev Returns the multiplication of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `*` operator.
*
* Requirements:
* - Multiplication cannot overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
// Gas optimization: this is cheaper than requiring 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
/**
* @dev Returns the integer division of two unsigned integers. Reverts on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
// Solidity only automatically asserts when dividing by 0
require(b > 0, "SafeMath: division by zero");
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* Reverts when dividing by zero.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
* - The divisor cannot be zero.
*/
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
require(b != 0, "SafeMath: modulo by zero");
return a % b;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":false,"inputs":[],"name":"safetyHatchClaim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"npoAddresses","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"hasChallengeAccomplished","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"question","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finalize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"npoRatios","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_npo","type":"address"}],"name":"getExpectedDonationAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"arbitrator","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_donorAddress","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"timeout","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"donorBalances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"challengeSafetyHatchTime1","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"marketAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"questionId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isEventFinalized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"unlockOnNo","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"challengeEndTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"donorCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"contractOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"challengeSafetyHatchTime2","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"makerFee","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"VERSION","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_contractOwner","type":"address"},{"name":"_npoAddresses","type":"address[]"},{"name":"_ratios","type":"uint8[]"},{"name":"_marketAddress","type":"address"},{"name":"_question","type":"string"},{"name":"_arbitrator","type":"address"},{"name":"_timeout","type":"uint256"},{"name":"_challengeEndTime","type":"uint256"},{"name":"_makerFee","type":"uint256"},{"name":"_unlockOnNo","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Received","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"npo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Donated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"maker","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Fee","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"claimer","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"claimer","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"SafetyHatchClaimed","type":"event"}]Contract Creation Code
0x60806040526000601160006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b50604051620020cb380380620020cb83398101806040526101408110156200005357600080fd5b810190808051906020019092919080516401000000008111156200007657600080fd5b828101905060208101848111156200008d57600080fd5b8151856020820283011164010000000082111715620000ab57600080fd5b50509291906020018051640100000000811115620000c857600080fd5b82810190506020810184811115620000df57600080fd5b8151856020820283011164010000000082111715620000fd57600080fd5b50509291906020018051906020019092919080516401000000008111156200012457600080fd5b828101905060208101848111156200013b57600080fd5b81518560018202830111640100000000821117156200015957600080fd5b5050929190602001805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919050505087518951141515620001a757600080fd5b612710600b54101515620001ba57600080fd5b60008951905060008090505b81811015620003aa5760008b82815181101515620001e057fe5b90602001906020020151905060038190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060008b838151811015156200026357fe5b9060200190602002015160ff16111515620002e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526174696f206d757374206265206120706f736974697665206e756d6265720081525060200191505060405180910390fd5b8a82815181101515620002f557fe5b90602001906020020151600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055508a828151811015156200036557fe5b90602001906020020151600260008282829054906101000a900460ff160192506101000a81548160ff021916908360ff160217905550508080600101915050620001c6565b508a6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555087600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555087600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508660069080519060200190620004859291906200074a565b5085600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508460088190555083600a8190555082600b81905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663762c38fd60006006600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600854600a5460006040518763ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180878152602001806020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff168152602001838152602001828103825287818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015620006635780601f10620006375761010080835404028352916020019162000663565b820191906000526020600020905b8154815290600101906020018083116200064557829003601f168201915b5050975050505050505050602060405180830381600087803b1580156200068957600080fd5b505af11580156200069e573d6000803e3d6000fd5b505050506040513d6020811015620006b557600080fd5b810190808051906020019092919050505060098190555081600460146101000a81548160ff02191690831515021790555062eff100600a5401600c819055506301dfe200600c5401600d819055506000600e60006101000a81548160ff0219169083151502179055506000600e60016101000a81548160ff0219169083151502179055505050505050505050505050620007f9565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200078d57805160ff1916838001178555620007be565b82800160010185558215620007be579182015b82811115620007bd578251825591602001919060010190620007a0565b5b509050620007cd9190620007d1565b5090565b620007f691905b80821115620007f2576000816000905550600101620007d8565b5090565b90565b6118c280620008096000396000f3fe60806040526004361061015d576000357c0100000000000000000000000000000000000000000000000000000000900480637b8c8de1116100d3578063bc3fde4e1161008c578063bc3fde4e14610727578063c407670f14610752578063ce606ee01461077d578063d87a328a146107d4578063fc741c7c146107ff578063ffa1ad741461082a5761015d565b80637b8c8de1146105b7578063877303091461061c5780639562364114610647578063b06a5c521461069e578063b77309d6146106c9578063ba7fd2fb146106f85761015d565b80634e71d92d116101255780634e71d92d146103e95780635ead3d4b146104005780635f95eb4d1461046b5780636cc6cde1146104d057806370a082311461052757806370dea79a1461058c5761015d565b806307171d7f146102815780630ed7e49914610298578063306a7ce0146103135780633fad9ae0146103425780634bb278f3146103d2575b600a54421115151561016e57600080fd5b60003411151561017d57600080fd5b6000600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541480156101cc5750600034115b156101e4576010600081548092919060010191905055505b34600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff167f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874346040518082815260200191505060405180910390a2005b34801561028d57600080fd5b506102966108ba565b005b3480156102a457600080fd5b506102d1600480360360208110156102bb57600080fd5b8101908080359060200190929190505050610a4d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561031f57600080fd5b50610328610a8b565b604051808215151515815260200191505060405180910390f35b34801561034e57600080fd5b50610357610a9e565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561039757808201518184015260208101905061037c565b50505050905090810190601f1680156103c45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103de57600080fd5b506103e7610b3c565b005b3480156103f557600080fd5b506103fe610bd5565b005b34801561040c57600080fd5b5061044f6004803603602081101561042357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d87565b604051808260ff1660ff16815260200191505060405180910390f35b34801561047757600080fd5b506104ba6004803603602081101561048e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610da7565b6040518082815260200191505060405180910390f35b3480156104dc57600080fd5b506104e5610f07565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561053357600080fd5b506105766004803603602081101561054a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f2d565b6040518082815260200191505060405180910390f35b34801561059857600080fd5b506105a1610f95565b6040518082815260200191505060405180910390f35b3480156105c357600080fd5b50610606600480360360208110156105da57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f9b565b6040518082815260200191505060405180910390f35b34801561062857600080fd5b50610631610fb3565b6040518082815260200191505060405180910390f35b34801561065357600080fd5b5061065c610fb9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106aa57600080fd5b506106b3610fdf565b6040518082815260200191505060405180910390f35b3480156106d557600080fd5b506106de610fe5565b604051808215151515815260200191505060405180910390f35b34801561070457600080fd5b5061070d610ff8565b604051808215151515815260200191505060405180910390f35b34801561073357600080fd5b5061073c61100b565b6040518082815260200191505060405180910390f35b34801561075e57600080fd5b50610767611011565b6040518082815260200191505060405180910390f35b34801561078957600080fd5b50610792611017565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107e057600080fd5b506107e961103c565b6040518082815260200191505060405180910390f35b34801561080b57600080fd5b50610814611042565b6040518082815260200191505060405180910390f35b34801561083657600080fd5b5061083f611048565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561087f578082015181840152602081019050610864565b50505050905090810190601f1680156108ac5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600d54421115156108ca57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561092557600080fd5b60003073ffffffffffffffffffffffffffffffffffffffff163190506001600e60026101000a81548160ff0219169083151502179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501580156109da573d6000803e3d6000fd5b506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f1ac1e39f5a410afcc9fd213aab1b92287e00cf00e216f3776f352ab328d124f9826040518082815260200191505060405180910390a250565b600381815481101515610a5c57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60019054906101000a900460ff1681565b60068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b345780601f10610b0957610100808354040283529160200191610b34565b820191906000526020600020905b815481529060010190602001808311610b1757829003601f168201915b505050505081565b601160009054906101000a900460ff16151515610b5857600080fd5b6001601160006101000a81548160ff021916908315150217905550600a5442111515610b8357600080fd5b600c544211151515610b9457600080fd5b600e60009054906101000a900460ff16151515610bb057600080fd5b610bb8611081565b6000601160006101000a81548160ff021916908315150217905550565b601160009054906101000a900460ff16151515610bf157600080fd5b6001601160006101000a81548160ff021916908315150217905550600a5442111515610c1c57600080fd5b600e60009054906101000a900460ff1680610c385750600c5442115b1515610c4357600080fd5b600e60019054906101000a900460ff161580610c605750600c5442115b1515610c6b57600080fd5b6000610c7633610f2d565b111515610c8257600080fd5b6000610c8d33610f2d565b90506000600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610d1a573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff167fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a826040518082815260200191505060405180910390a2506000601160006101000a81548160ff021916908315150217905550565b60016020528060005260406000206000915054906101000a900460ff1681565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16111515610e0657600080fd5b6000610e71610e4b612710610e3d600b543073ffffffffffffffffffffffffffffffffffffffff16316114aa90919063ffffffff16565b61153490919063ffffffff16565b3073ffffffffffffffffffffffffffffffffffffffff16316115c790919063ffffffff16565b90506000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050610efe600260009054906101000a900460ff1660ff16610ef08360ff16856114aa90919063ffffffff16565b61153490919063ffffffff16565b92505050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600e60029054906101000a900460ff1615610f4d5760009050610f90565b600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b919050565b60085481565b600f6020528060005260406000206000915090505481565b600c5481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b600e60009054906101000a900460ff1681565b600460149054906101000a900460ff1681565b600a5481565b60105481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b600b5481565b6040805190810160405280600581526020017f302e342e3000000000000000000000000000000000000000000000000000000081525081565b600061108b611652565b600e60018294508391906101000a81548160ff02191690831515021790555050508015156114a7576001600e60006101000a81548160ff021916908315150217905550600e60019054906101000a900460ff16156114a657600060038054905090506000600b54111561121557600061113a61271061112c600b543073ffffffffffffffffffffffffffffffffffffffff16316114aa90919063ffffffff16565b61153490919063ffffffff16565b90506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156111a3573d6000803e3d6000fd5b506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7bd3aa7d673767f759ebf216e7f6c12844986c661ae6e0f1d988cf7eb7394d1d826040518082815260200191505060405180910390a2505b60008090505b600182038110156113af57600060038281548110151561123757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690506000611308600260009054906101000a900460ff1660ff166112fa8460ff163073ffffffffffffffffffffffffffffffffffffffff16316114aa90919063ffffffff16565b61153490919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611350573d6000803e3d6000fd5b508273ffffffffffffffffffffffffffffffffffffffff167f2a01595cddf097c90216094025db714da3f4e5bd8877b56ba86a24ecead8e543826040518082815260200191505060405180910390a2505050808060010191505061121b565b5060003073ffffffffffffffffffffffffffffffffffffffff1631905060006003600184038154811015156113e057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015611453573d6000803e3d6000fd5b508073ffffffffffffffffffffffffffffffffffffffff167f2a01595cddf097c90216094025db714da3f4e5bd8877b56ba86a24ecead8e543836040518082815260200191505060405180910390a25050505b5b50565b6000808314156114bd576000905061152e565b600082840290508284828115156114d057fe5b04141515611529576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806118766021913960400191505060405180910390fd5b809150505b92915050565b600080821115156115ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b600082848115156115ba57fe5b0490508091505092915050565b6000828211151515611641576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637f8d429e6009546040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b1580156116e657600080fd5b505afa1580156116fa573d6000803e3d6000fd5b505050506040513d602081101561171057600080fd5b810190808051906020019092919050505015611868576000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a462fb7b6009546040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b1580156117b957600080fd5b505afa1580156117cd573d6000803e3d6000fd5b505050506040513d60208110156117e357600080fd5b810190808051906020019092919050505090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60010281141561182e576000809250925050611871565b600460149054906101000a900460ff1615611856576000600102811460009250925050611871565b60018002811460009250925050611871565b60006001915091505b909156fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a165627a7a723058206a185583f3993457811f70afe496e3446649afc02ae92eb9ee088c7312738e180029000000000000000000000000a1ad7b176110d40e664399bb9c7b910bc25229cd00000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000180000000000000000000000000325a2e0f3cca2ddbaebb4dfc38df8d19ca165b4700000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000dc0a2185031ecf89f091a39c63c2857a7d5c301a0000000000000000000000000000000000000000000000000000000000015180000000000000000000000000000000000000000000000000000000005f34828000000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000af9ab7dd439da29943af29d2d537d1eb15675dce00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000003c57696c6c2074657374206368616c6c656e6765206265666f7265203132204a756c20323032302031313a3539706d2028555443202b30373a3030293f00000000
Deployed Bytecode
0x60806040526004361061015d576000357c0100000000000000000000000000000000000000000000000000000000900480637b8c8de1116100d3578063bc3fde4e1161008c578063bc3fde4e14610727578063c407670f14610752578063ce606ee01461077d578063d87a328a146107d4578063fc741c7c146107ff578063ffa1ad741461082a5761015d565b80637b8c8de1146105b7578063877303091461061c5780639562364114610647578063b06a5c521461069e578063b77309d6146106c9578063ba7fd2fb146106f85761015d565b80634e71d92d116101255780634e71d92d146103e95780635ead3d4b146104005780635f95eb4d1461046b5780636cc6cde1146104d057806370a082311461052757806370dea79a1461058c5761015d565b806307171d7f146102815780630ed7e49914610298578063306a7ce0146103135780633fad9ae0146103425780634bb278f3146103d2575b600a54421115151561016e57600080fd5b60003411151561017d57600080fd5b6000600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541480156101cc5750600034115b156101e4576010600081548092919060010191905055505b34600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff167f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874346040518082815260200191505060405180910390a2005b34801561028d57600080fd5b506102966108ba565b005b3480156102a457600080fd5b506102d1600480360360208110156102bb57600080fd5b8101908080359060200190929190505050610a4d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561031f57600080fd5b50610328610a8b565b604051808215151515815260200191505060405180910390f35b34801561034e57600080fd5b50610357610a9e565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561039757808201518184015260208101905061037c565b50505050905090810190601f1680156103c45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103de57600080fd5b506103e7610b3c565b005b3480156103f557600080fd5b506103fe610bd5565b005b34801561040c57600080fd5b5061044f6004803603602081101561042357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d87565b604051808260ff1660ff16815260200191505060405180910390f35b34801561047757600080fd5b506104ba6004803603602081101561048e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610da7565b6040518082815260200191505060405180910390f35b3480156104dc57600080fd5b506104e5610f07565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561053357600080fd5b506105766004803603602081101561054a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f2d565b6040518082815260200191505060405180910390f35b34801561059857600080fd5b506105a1610f95565b6040518082815260200191505060405180910390f35b3480156105c357600080fd5b50610606600480360360208110156105da57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f9b565b6040518082815260200191505060405180910390f35b34801561062857600080fd5b50610631610fb3565b6040518082815260200191505060405180910390f35b34801561065357600080fd5b5061065c610fb9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106aa57600080fd5b506106b3610fdf565b6040518082815260200191505060405180910390f35b3480156106d557600080fd5b506106de610fe5565b604051808215151515815260200191505060405180910390f35b34801561070457600080fd5b5061070d610ff8565b604051808215151515815260200191505060405180910390f35b34801561073357600080fd5b5061073c61100b565b6040518082815260200191505060405180910390f35b34801561075e57600080fd5b50610767611011565b6040518082815260200191505060405180910390f35b34801561078957600080fd5b50610792611017565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107e057600080fd5b506107e961103c565b6040518082815260200191505060405180910390f35b34801561080b57600080fd5b50610814611042565b6040518082815260200191505060405180910390f35b34801561083657600080fd5b5061083f611048565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561087f578082015181840152602081019050610864565b50505050905090810190601f1680156108ac5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600d54421115156108ca57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561092557600080fd5b60003073ffffffffffffffffffffffffffffffffffffffff163190506001600e60026101000a81548160ff0219169083151502179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501580156109da573d6000803e3d6000fd5b506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f1ac1e39f5a410afcc9fd213aab1b92287e00cf00e216f3776f352ab328d124f9826040518082815260200191505060405180910390a250565b600381815481101515610a5c57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60019054906101000a900460ff1681565b60068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b345780601f10610b0957610100808354040283529160200191610b34565b820191906000526020600020905b815481529060010190602001808311610b1757829003601f168201915b505050505081565b601160009054906101000a900460ff16151515610b5857600080fd5b6001601160006101000a81548160ff021916908315150217905550600a5442111515610b8357600080fd5b600c544211151515610b9457600080fd5b600e60009054906101000a900460ff16151515610bb057600080fd5b610bb8611081565b6000601160006101000a81548160ff021916908315150217905550565b601160009054906101000a900460ff16151515610bf157600080fd5b6001601160006101000a81548160ff021916908315150217905550600a5442111515610c1c57600080fd5b600e60009054906101000a900460ff1680610c385750600c5442115b1515610c4357600080fd5b600e60019054906101000a900460ff161580610c605750600c5442115b1515610c6b57600080fd5b6000610c7633610f2d565b111515610c8257600080fd5b6000610c8d33610f2d565b90506000600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610d1a573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff167fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a826040518082815260200191505060405180910390a2506000601160006101000a81548160ff021916908315150217905550565b60016020528060005260406000206000915054906101000a900460ff1681565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16111515610e0657600080fd5b6000610e71610e4b612710610e3d600b543073ffffffffffffffffffffffffffffffffffffffff16316114aa90919063ffffffff16565b61153490919063ffffffff16565b3073ffffffffffffffffffffffffffffffffffffffff16316115c790919063ffffffff16565b90506000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050610efe600260009054906101000a900460ff1660ff16610ef08360ff16856114aa90919063ffffffff16565b61153490919063ffffffff16565b92505050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600e60029054906101000a900460ff1615610f4d5760009050610f90565b600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b919050565b60085481565b600f6020528060005260406000206000915090505481565b600c5481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b600e60009054906101000a900460ff1681565b600460149054906101000a900460ff1681565b600a5481565b60105481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b600b5481565b6040805190810160405280600581526020017f302e342e3000000000000000000000000000000000000000000000000000000081525081565b600061108b611652565b600e60018294508391906101000a81548160ff02191690831515021790555050508015156114a7576001600e60006101000a81548160ff021916908315150217905550600e60019054906101000a900460ff16156114a657600060038054905090506000600b54111561121557600061113a61271061112c600b543073ffffffffffffffffffffffffffffffffffffffff16316114aa90919063ffffffff16565b61153490919063ffffffff16565b90506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156111a3573d6000803e3d6000fd5b506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7bd3aa7d673767f759ebf216e7f6c12844986c661ae6e0f1d988cf7eb7394d1d826040518082815260200191505060405180910390a2505b60008090505b600182038110156113af57600060038281548110151561123757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690506000611308600260009054906101000a900460ff1660ff166112fa8460ff163073ffffffffffffffffffffffffffffffffffffffff16316114aa90919063ffffffff16565b61153490919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611350573d6000803e3d6000fd5b508273ffffffffffffffffffffffffffffffffffffffff167f2a01595cddf097c90216094025db714da3f4e5bd8877b56ba86a24ecead8e543826040518082815260200191505060405180910390a2505050808060010191505061121b565b5060003073ffffffffffffffffffffffffffffffffffffffff1631905060006003600184038154811015156113e057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015611453573d6000803e3d6000fd5b508073ffffffffffffffffffffffffffffffffffffffff167f2a01595cddf097c90216094025db714da3f4e5bd8877b56ba86a24ecead8e543836040518082815260200191505060405180910390a25050505b5b50565b6000808314156114bd576000905061152e565b600082840290508284828115156114d057fe5b04141515611529576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806118766021913960400191505060405180910390fd5b809150505b92915050565b600080821115156115ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b600082848115156115ba57fe5b0490508091505092915050565b6000828211151515611641576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637f8d429e6009546040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b1580156116e657600080fd5b505afa1580156116fa573d6000803e3d6000fd5b505050506040513d602081101561171057600080fd5b810190808051906020019092919050505015611868576000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a462fb7b6009546040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b1580156117b957600080fd5b505afa1580156117cd573d6000803e3d6000fd5b505050506040513d60208110156117e357600080fd5b810190808051906020019092919050505090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60010281141561182e576000809250925050611871565b600460149054906101000a900460ff1615611856576000600102811460009250925050611871565b60018002811460009250925050611871565b60006001915091505b909156fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a165627a7a723058206a185583f3993457811f70afe496e3446649afc02ae92eb9ee088c7312738e180029
Deployed Bytecode Sourcemap
81:7165:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3378:16;;3371:3;:23;;3363:32;;;;;;;;3425:1;3413:9;:13;3405:22;;;;;;;;3470:1;3441:13;:25;3455:10;3441:25;;;;;;;;;;;;;;;;:30;:47;;;;;3487:1;3475:9;:13;3441:47;3437:90;;;3504:10;;:12;;;;;;;;;;;;;3437:90;3565:9;3536:13;:25;3550:10;3536:25;;;;;;;;;;;;;;;;:38;;;;;;;;;;;3598:10;3589:31;;;3610:9;3589:31;;;;;;;;;;;;;;;;;;81:7165;6042:367;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6042:367:0;;;:::i;:::-;;679:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;679:37:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;679:37:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1349:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1349:36:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;820:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;820:22:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;820:22:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3836:199;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3836:199:0;;;:::i;:::-;;5568:468;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5568:468:0;;;:::i;:::-;;609:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;609:42:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;609:42:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5224:338;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5224:338:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5224:338:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;849:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;849:25:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3633:197;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3633:197:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3633:197:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;881:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;881:22:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1437:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1437:48:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1437:48:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1047:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1047:40:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;723:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;723:28:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;910:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;910:25:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1193:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1193:28:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;758:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;758:22:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;942:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;942:31:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1492:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1492:25:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;524:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;524:36:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1094:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1094:40:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1017:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1017:23:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;477:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;477:40:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;477:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6042:367;6103:25;;6097:3;:31;6089:40;;;;;;;;6161:13;;;;;;;;;;;6147:27;;:10;:27;;;6139:36;;;;;;;;6186:25;6222:4;6214:21;;;6186:49;;6273:4;6245:25;;:32;;;;;;;;;;;;;;;;;;6287:13;;;;;;;;;;;:22;;:45;6318:4;6310:21;;;6287:45;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6287:45:0;6366:13;;;;;;;;;;;6347:55;;;6381:20;6347:55;;;;;;;;;;;;;;;;;;6042:367;:::o;679:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1349:36::-;;;;;;;;;;;;;:::o;820:22::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3836:199::-;1749:15;;;;;;;;;;;1748:16;1740:25;;;;;;;;1793:4;1775:15;;:22;;;;;;;;;;;;;;;;;;3902:16;;3896:3;:22;3888:31;;;;;;;;3944:25;;3937:3;:32;;3929:41;;;;;;;;3989:16;;;;;;;;;;;3988:17;3980:26;;;;;;;;4016:12;:10;:12::i;:::-;1836:5;1818:15;;:23;;;;;;;;;;;;;;;;;;3836:199::o;5568:468::-;1749:15;;;;;;;;;;;1748:16;1740:25;;;;;;;;1793:4;1775:15;;:22;;;;;;;;;;;;;;;;;;5631:16;;5625:3;:22;5617:31;;;;;;;;5666:16;;;;;;;;;;;:51;;;;5692:25;;5686:3;:31;5666:51;5658:60;;;;;;;;5737:24;;;;;;;;;;;5736:25;:60;;;;5771:25;;5765:3;:31;5736:60;5728:69;;;;;;;;5839:1;5815:21;5825:10;5815:9;:21::i;:::-;:25;5807:34;;;;;;;;5852:21;5876;5886:10;5876:9;:21::i;:::-;5852:45;;5935:1;5907:13;:25;5921:10;5907:25;;;;;;;;;;;;;;;:29;;;;5946:10;:19;;:34;5966:13;5946:34;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5946:34:0;6003:10;5995:34;;;6015:13;5995:34;;;;;;;;;;;;;;;;;;1807:1;1836:5;1818:15;;:23;;;;;;;;;;;;;;;;;;5568:468::o;609:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;5224:338::-;5304:7;5349:1;5331:9;:15;5341:4;5331:15;;;;;;;;;;;;;;;;;;;;;;;;;:19;;;5323:28;;;;;;;;5361:20;5384:78;5410:51;1652:5;5410:35;5436:8;;5418:4;5410:21;;;:25;;:35;;;;:::i;:::-;:39;;:51;;;;:::i;:::-;5392:4;5384:21;;;:25;;:78;;;;:::i;:::-;5361:101;;5472:11;5486:9;:15;5496:4;5486:15;;;;;;;;;;;;;;;;;;;;;;;;;5472:29;;5518:37;5546:8;;;;;;;;;;;5518:37;;:23;5535:5;5518:23;;:12;:16;;:23;;;;:::i;:::-;:27;;:37;;;;:::i;:::-;5511:44;;;;5224:338;;;:::o;849:25::-;;;;;;;;;;;;;:::o;3633:197::-;3696:7;3719:25;;;;;;;;;;;3715:64;;;3767:1;3760:8;;;;3715:64;3795:13;:28;3809:13;3795:28;;;;;;;;;;;;;;;;3788:35;;3633:197;;;;:::o;881:22::-;;;;:::o;1437:48::-;;;;;;;;;;;;;;;;;:::o;1047:40::-;;;;:::o;723:28::-;;;;;;;;;;;;;:::o;910:25::-;;;;:::o;1193:28::-;;;;;;;;;;;;;:::o;758:22::-;;;;;;;;;;;;;:::o;942:31::-;;;;:::o;1492:25::-;;;;:::o;524:36::-;;;;;;;;;;;;;:::o;1094:40::-;;;;:::o;1017:23::-;;;;:::o;477:40::-;;;;;;;;;;;;;;;;;;;;:::o;4041:1177::-;4081:13;4143:15;:13;:15::i;:::-;4105:24;;4104:54;;;;;;;;;;;;;;;;;;;;;;;;;;4173:8;4172:9;4168:1044;;;4216:4;4197:16;;:23;;;;;;;;;;;;;;;;;;4238:24;;;;;;;;;;;4234:968;;;4282:11;4296:12;:19;;;;4282:33;;4348:1;4337:8;;:12;4333:232;;;4373:14;4390:51;1652:5;4390:35;4416:8;;4398:4;4390:21;;;:25;;:35;;;;:::i;:::-;:39;;:51;;;;:::i;:::-;4373:68;;4463:13;;;;;;;;;;;:22;;:30;4486:6;4463:30;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4463:30:0;4524:13;;;;;;;;;;;4520:26;;;4539:6;4520:26;;;;;;;;;;;;;;;;;;4333:232;;4587:6;4596:1;4587:10;;4582:340;4612:1;4603:6;:10;4599:1;:14;4582:340;;;4642:19;4664:12;4677:1;4664:15;;;;;;;;;;;;;;;;;;;;;;;;;;;4642:37;;4701:11;4715:9;:14;4725:3;4715:14;;;;;;;;;;;;;;;;;;;;;;;;;4701:28;;4751:14;4768:46;4805:8;;;;;;;;;;;4768:46;;:32;4794:5;4768:32;;4776:4;4768:21;;;:25;;:32;;;;:::i;:::-;:36;;:46;;;;:::i;:::-;4751:63;;4836:3;:12;;:20;4849:6;4836:20;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4836:20:0;4891:3;4883:20;;;4896:6;4883:20;;;;;;;;;;;;;;;;;;4582:340;;;4615:3;;;;;;;4582:340;;;;5004:14;5029:4;5021:21;;;5004:38;;5060:19;5082:12;5104:1;5095:6;:10;5082:24;;;;;;;;;;;;;;;;;;;;;;;;;;;5060:46;;5124:3;:12;;:20;5137:6;5124:20;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5124:20:0;5175:3;5167:20;;;5180:6;5167:20;;;;;;;;;;;;;;;;;;4234:968;;;;4168:1044;4041:1177;:::o;1693:458:2:-;1751:7;1996:1;1991;:6;1987:45;;;2020:1;2013:8;;;;1987:45;2042:9;2058:1;2054;:5;2042:17;;2086:1;2081;2077;:5;;;;;;;;:10;2069:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2143:1;2136:8;;;1693:458;;;;;:::o;2606:326::-;2664:7;2761:1;2757;:5;2749:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2803:9;2819:1;2815;:5;;;;;;;;2803:17;;2924:1;2917:8;;;2606:326;;;;:::o;1274:179::-;1332:7;1364:1;1359;:6;;1351:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1410:9;1426:1;1422;:5;1410:17;;1445:1;1438:8;;;1274:179;;;;:::o;6415:829:0:-;6462:13;6477:12;6505;;;;;;;;;;;:24;;;6530:10;;6505:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6505:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6505:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6505:36:0;;;;;;;;;;;;;;;;6501:737;;;6557:14;6574:12;;;;;;;;;;;:27;;;6602:10;;6574:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6574:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6574:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6574:39:0;;;;;;;;;;;;;;;;6557:56;;6641:66;6631:76;;:6;:76;6627:550;;;6852:5;6859;6844:21;;;;;;;6627:550;6908:10;;;;;;;;;;;6904:149;;;6960:66;6950:76;;:6;:76;7028:5;6942:92;;;;;;;6904:149;7088:66;7078:76;;:6;:76;7156:5;7070:92;;;;;;;6501:737;7215:5;7222:4;7207:20;;;;6415:829;;;:::o
Swarm Source
bzzr://6a185583f3993457811f70afe496e3446649afc02ae92eb9ee088c7312738e18
Loading...
Loading
Loading...
Loading
Net Worth in USD
$19.68
Net Worth in ETH
0.009996
Token Allocations
ETH
100.00%
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ETH | 100.00% | $1,968.31 | 0.01 | $19.68 |
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.