Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Latest 25 from a total of 31 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Resolve | 11432045 | 1919 days ago | IN | 0 ETH | 0.01171447 | ||||
| Claim | 11432006 | 1919 days ago | IN | 0 ETH | 0.00347998 | ||||
| Claim | 11431727 | 1919 days ago | IN | 0 ETH | 0.00147223 | ||||
| Claim | 11431606 | 1919 days ago | IN | 0 ETH | 0.00289109 | ||||
| Resolve | 11431486 | 1919 days ago | IN | 0 ETH | 0.00075463 | ||||
| Resolve | 11431485 | 1919 days ago | IN | 0 ETH | 0.00885409 | ||||
| Buy Up | 11431238 | 1919 days ago | IN | 0.01 ETH | 0.0022797 | ||||
| Buy Down | 11431212 | 1919 days ago | IN | 5 ETH | 0.0078894 | ||||
| Buy Down | 11431160 | 1919 days ago | IN | 0.1 ETH | 0.00289278 | ||||
| Buy Up | 11431124 | 1919 days ago | IN | 0.1 ETH | 0.00246434 | ||||
| Buy Down | 11431044 | 1919 days ago | IN | 1 ETH | 0.0096426 | ||||
| Buy Down | 11431005 | 1919 days ago | IN | 0.06 ETH | 0.00245448 | ||||
| Buy Down | 11430960 | 1919 days ago | IN | 1 ETH | 0.0035298 | ||||
| Resolve | 11430926 | 1919 days ago | IN | 0 ETH | 0.00708327 | ||||
| Buy Down | 11430759 | 1919 days ago | IN | 1 ETH | 0.00429534 | ||||
| Buy Down | 11430756 | 1919 days ago | IN | 1 ETH | 0.00543492 | ||||
| Buy Down | 11430649 | 1919 days ago | IN | 0.1 ETH | 0.004383 | ||||
| Buy Down | 11430634 | 1919 days ago | IN | 2 ETH | 0.00499662 | ||||
| Buy Down | 11430626 | 1919 days ago | IN | 1 ETH | 0.004383 | ||||
| Buy Down | 11430535 | 1919 days ago | IN | 0.5 ETH | 0.00624928 | ||||
| Buy Up | 11430504 | 1919 days ago | IN | 0.5 ETH | 0.00351854 | ||||
| Buy Down | 11430501 | 1919 days ago | IN | 0.5 ETH | 0.00523604 | ||||
| Buy Up | 11430442 | 1919 days ago | IN | 0.005 ETH | 0.00687962 | ||||
| Buy Down | 11430441 | 1919 days ago | IN | 0.01 ETH | 0.00788322 | ||||
| Claim | 11430430 | 1919 days ago | IN | 0 ETH | 0.00262584 |
Latest 8 internal transactions
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| - | 11432006 | 1919 days ago | 6.27863636 ETH | ||||
| - | 11432006 | 1919 days ago | 0.33045454 ETH | ||||
| - | 11431727 | 1919 days ago | 6.28425 ETH | ||||
| - | 11431727 | 1919 days ago | 0.33075 ETH | ||||
| - | 11431606 | 1919 days ago | 0.62786363 ETH | ||||
| - | 11431606 | 1919 days ago | 0.03304545 ETH | ||||
| - | 11430430 | 1919 days ago | 0.0285 ETH | ||||
| - | 11430430 | 1919 days ago | 0.0015 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
UpDownMarket
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2020-12-11
*/
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.6.12;
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) {
return sub(a, b, "SafeMath: subtraction overflow");
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting with custom message on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
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-contracts/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) {
return div(a, b, "SafeMath: division by zero");
}
/**
* @dev Returns the integer division of two unsigned integers. Reverts with custom message 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, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
/**
* @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) {
return mod(a, b, "SafeMath: modulo by zero");
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* Reverts with custom message 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, string memory errorMessage) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}
interface IERC20 {
function totalSupply() external view returns (uint);
function balanceOf(address account) external view returns (uint);
function transfer(address recipient, uint amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint);
function approve(address spender, uint amount) external returns (bool);
function transferFrom(address sender, address recipient, uint amount) external returns (bool);
}
interface IORACLE {
function price0Last(address _pair) external view returns (uint amountOut);
function update(address _pair) external;
function isUpdateRequired(address _pair) external view returns(bool);
function initialize() external;
function addPair(address _pair, uint _startTime) external;
function nextUpdateAt(address _pair) external view returns(uint);
function PERIOD() external view returns(uint);
}
contract ReentrancyGuard {
// Booleans are more expensive than uint256 or any type that takes up a full
// word because each write operation emits an extra SLOAD to first read the
// slot's contents, replace the bits taken up by the boolean, and then write
// back. This is the compiler's defense against contract upgrades and
// pointer aliasing, and it cannot be disabled.
// The values being non-zero value makes deployment a bit more expensive,
// but in exchange the refund on every call to nonReentrant will be lower in
// amount. Since refunds are capped to a percentage of the total
// transaction's gas, it is best to keep them low in cases like this one, to
// increase the likelihood of the full refund coming into effect.
uint256 private constant _NOT_ENTERED = 1;
uint256 private constant _ENTERED = 2;
uint256 private _status;
constructor () internal {
_status = _NOT_ENTERED;
}
/**
* @dev Prevents a contract from calling itself, directly or indirectly.
* Calling a `nonReentrant` function from another `nonReentrant`
* function is not supported. It is possible to prevent this from happening
* by making the `nonReentrant` function external, and make it call a
* `private` function that does the actual work.
*/
modifier nonReentrant() {
// On the first call to nonReentrant, _notEntered will be true
require(_status != _ENTERED, "ReentrancyGuard: reentrant call");
// Any calls to nonReentrant after this point will fail
_status = _ENTERED;
_;
// By storing the original value once again, a refund is triggered (see
// https://eips.ethereum.org/EIPS/eip-2200)
_status = _NOT_ENTERED;
}
}
contract Ownable {
address public owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor() internal {
owner = msg.sender;
emit OwnershipTransferred(address(0), owner);
}
modifier onlyOwner() {
require(isOwner(), "Ownable: caller is not the owner");
_;
}
function isOwner() public view returns (bool) {
return msg.sender == owner;
}
function renounceOwnership() public onlyOwner {
emit OwnershipTransferred(owner, address(0));
owner = address(0);
}
function transferOwnership(address newOwner) public onlyOwner {
_transferOwnership(newOwner);
}
function _transferOwnership(address newOwner) internal {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(owner, newOwner);
owner = newOwner;
}
}
contract UpDownMarket is Ownable, ReentrancyGuard {
using SafeMath for uint;
uint public constant MIN_BID_TIME = 1 minutes;
IORACLE public oracle;
address public oraclePair;
address public feeRecipient;
uint public latestBidTime = 30 minutes; // before resolution
mapping (uint => uint) public resolvedTo; // per epoch: 1 = up, 2 = down
mapping (uint => uint) public totalSharesUp; // per epoch
mapping (uint => uint) public totalSharesDown; // per epoch
mapping (uint => uint) public purchasedEpoch; // per epoch
mapping (uint => mapping (address => uint)) public purchasedOfUp; // epoch[account]
mapping (uint => mapping (address => uint)) public purchasedOfDown; // epoch[account]
mapping (uint => mapping (address => uint)) public sharesOfUp; // epoch[account]
mapping (uint => mapping (address => uint)) public sharesOfDown; // epoch[account]
// For the sake of simplicity, purchasedOf* and sharesOfUp* had different values in the previous implementation
// but are equal in this implementation
uint public currentEpoch = 0;
uint public lastTWAP;
uint public feeBps = 0;
uint public maxSupply = 200e18; // ETH
modifier checkTime() {
require(isTimeOpen(block.timestamp), "UpDownMarket: buying is closed");
_;
}
modifier enforceLimits() {
_;
require(purchasedEpoch[currentEpoch] <= maxSupply, "UpDownMarket: maxSupply reached");
}
constructor(IORACLE _oracle, address _oraclePair, uint _startTime) public {
oracle = _oracle;
oraclePair = _oraclePair;
oracle.initialize();
oracle.addPair(oraclePair, _startTime);
lastTWAP = oracle.price0Last(oraclePair);
}
function buyUp(uint _minShares) public payable checkTime enforceLimits nonReentrant {
_mintUp(msg.sender, currentEpoch, msg.value, _minShares);
}
function buyDown(uint _minShares) public payable checkTime enforceLimits nonReentrant {
_mintDown(msg.sender, currentEpoch, msg.value, _minShares);
}
function claim(uint _epoch) public nonReentrant {
uint transferAmount = winAmount(_epoch, msg.sender);
require(transferAmount > 0, "UpDownMarket: not a winner");
uint fee = transferAmount.mul(feeBps).div(10000);
_sendEth(feeRecipient, _epoch, fee);
transferAmount = transferAmount.sub(fee);
_sendEth(msg.sender, _epoch, transferAmount);
_burnAll(msg.sender, _epoch);
}
function resolve() public {
require(oracle.isUpdateRequired(oraclePair), "UpDownMarket: too early");
oracle.update(oraclePair);
uint currentTWAP = oracle.price0Last(oraclePair);
if (currentTWAP > lastTWAP) {
resolvedTo[currentEpoch] = 1;
_claimDustUp(currentEpoch);
} else if (currentTWAP < lastTWAP) {
resolvedTo[currentEpoch] = 2;
_claimDustDown(currentEpoch);
} else {
revert("UpDownMarket: twap not changed yet");
}
currentEpoch = currentEpoch.add(1);
lastTWAP = currentTWAP;
}
function setFeeBps(uint _value) public onlyOwner {
feeBps = _value;
}
function setFeeRecipent(address _feeRecipient) public onlyOwner {
feeRecipient = _feeRecipient;
}
function setLatestBidTime(uint _latestBidTime) public onlyOwner {
require(latestBidTime > MIN_BID_TIME, "UpDownMarket: latestBidTime too short");
latestBidTime = _latestBidTime;
}
function setMaxSupply(uint _maxSupply) public onlyOwner {
maxSupply = _maxSupply;
}
function totalSupplyEpoch(uint _epoch) public view returns(uint) {
return totalSharesUp[_epoch].add(totalSharesDown[_epoch]);
}
function winAmount(uint _epoch, address _account) public view returns(uint) {
// Up won
if (resolvedTo[_epoch] == 1) {
if (totalSharesUp[_epoch] == 0) {
return 0;
} else {
return purchasedEpoch[_epoch].mul(sharesOfUp[_epoch][_account]).div(totalSharesUp[_epoch]);
}
// Down won
} else if (resolvedTo[_epoch] == 2) {
if (totalSharesDown[_epoch] == 0) {
return 0;
} else {
return purchasedEpoch[_epoch].mul(sharesOfDown[_epoch][_account]).div(totalSharesDown[_epoch]);
}
} else {
return 0;
}
}
// Buying closes latestBidTime seconds before resolution
function isTimeOpen(uint _timestamp) public view returns(bool) {
return block.timestamp < oracle.nextUpdateAt(oraclePair).sub(latestBidTime);
}
// UP wins but there is nobody to collect the winnings = claim as fees
function _claimDustUp(uint _epoch) internal {
if (totalSharesUp[_epoch] == 0) {
_sendEth(feeRecipient, _epoch, purchasedEpoch[_epoch]);
purchasedEpoch[_epoch] = 0;
}
}
// DOWN wins but there is nobody to collect the winnings = claim as fees
function _claimDustDown(uint _epoch) internal {
if (totalSharesDown[_epoch] == 0) {
_sendEth(feeRecipient, _epoch, purchasedEpoch[_epoch]);
purchasedEpoch[_epoch] = 0;
}
}
function _mintUp(address _account, uint _epoch, uint _amount, uint _minShares) internal {
uint shares = _shares(_amount, _minShares);
purchasedOfUp[_epoch][_account] = purchasedOfUp[_epoch][_account].add(_amount);
purchasedEpoch[_epoch] = purchasedEpoch[_epoch].add(_amount);
totalSharesUp[_epoch] = totalSharesUp[_epoch].add(shares);
sharesOfUp[_epoch][_account] = sharesOfUp[_epoch][_account].add(shares);
}
function _mintDown(address _account, uint _epoch, uint _amount, uint _minShares) internal {
uint shares = _shares(_amount, _minShares);
purchasedOfDown[_epoch][_account] = purchasedOfDown[_epoch][_account].add(_amount);
purchasedEpoch[_epoch] = purchasedEpoch[_epoch].add(_amount);
totalSharesDown[_epoch] = totalSharesDown[_epoch].add(shares);
sharesOfDown[_epoch][_account] = sharesOfDown[_epoch][_account].add(shares);
}
function _shares(uint _amount, uint _minShares) internal view returns(uint) {
uint shares = _amount;
require(shares > _minShares, "UpDownMarket: shares > _minShares");
return shares;
}
function _burnUp(address _account, uint _epoch, uint _amount) internal {
totalSharesUp[_epoch] = totalSharesUp[_epoch].sub(_amount);
sharesOfUp[_epoch][_account] = sharesOfUp[_epoch][_account].sub(_amount);
}
function _burnDown(address _account, uint _epoch, uint _amount) internal {
totalSharesDown[_epoch] = totalSharesDown[_epoch].sub(_amount);
sharesOfDown[_epoch][_account] = sharesOfDown[_epoch][_account].sub(_amount);
}
function _burnAll(address _account, uint _epoch) internal {
_burnUp(_account, _epoch, sharesOfUp[_epoch][_account]);
_burnDown(_account, _epoch, sharesOfDown[_epoch][_account]);
}
function _sendEth(address _recipient, uint _epoch, uint _amount) internal {
purchasedEpoch[_epoch] = purchasedEpoch[_epoch].sub(_amount);
address(_recipient).call { value: _amount } (new bytes(0));
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"contract IORACLE","name":"_oracle","type":"address"},{"internalType":"address","name":"_oraclePair","type":"address"},{"internalType":"uint256","name":"_startTime","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"MIN_BID_TIME","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minShares","type":"uint256"}],"name":"buyDown","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minShares","type":"uint256"}],"name":"buyUp","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_epoch","type":"uint256"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeBps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeRecipient","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_timestamp","type":"uint256"}],"name":"isTimeOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastTWAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestBidTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oracle","outputs":[{"internalType":"contract IORACLE","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oraclePair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"purchasedEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"purchasedOfDown","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"purchasedOfUp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resolve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"resolvedTo","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"setFeeBps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_feeRecipient","type":"address"}],"name":"setFeeRecipent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_latestBidTime","type":"uint256"}],"name":"setLatestBidTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxSupply","type":"uint256"}],"name":"setMaxSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"sharesOfDown","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"sharesOfUp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"totalSharesDown","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"totalSharesUp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_epoch","type":"uint256"}],"name":"totalSupplyEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_epoch","type":"uint256"},{"internalType":"address","name":"_account","type":"address"}],"name":"winAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]Contract Creation Code
60806040526107086005556000600e556000601055680ad78ebc5ac62000006011553480156200002e57600080fd5b5060405162002f2038038062002f20833981810160405260608110156200005457600080fd5b81019080805190602001909291908051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36001808190555082600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638129fc1c6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200022857600080fd5b505af11580156200023d573d6000803e3d6000fd5b50505050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632a9fc698600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015620002f757600080fd5b505af11580156200030c573d6000803e3d6000fd5b50505050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e588a304600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015620003bc57600080fd5b505afa158015620003d1573d6000803e3d6000fd5b505050506040513d6020811015620003e857600080fd5b8101908080519060200190929190505050600f81905550505050612b0e80620004126000396000f3fe6080604052600436106101e35760003560e01c806372c27b6211610102578063adc244ac11610095578063e56988dd11610064578063e56988dd14610920578063eeb59cbd1461094b578063f2fde38b1461099a578063fa526f0f146109eb576101e3565b8063adc244ac14610838578063d5abeb0114610879578063d77a1d3a146108a4578063da66050c146108cf576101e3565b80638f32d59b116100d15780638f32d59b1461071f578063a0926f8c1461074c578063a13a90d4146107bb578063ad33d040146107e9576101e3565b806372c27b621461063757806376671808146106725780637dc0d1d01461069d5780638da5cb5b146106de576101e3565b8063469048401161017a5780636dbdd996116101495780636dbdd9961461053b5780636f8b44b0146105765780636fcb2e8d146105b1578063715018a614610620576101e3565b8063469048401461042f5780634a340993146104705780634e97f140146104c157806356e1761214610510576101e3565b8063281565c7116101b6578063281565c71461030857806335d0762314610377578063379607f5146103a55780633eebaa97146103e0576101e3565b806313f6a252146101e857806314a1d84f1461025757806324a9d853146102c65780632810e1d6146102f1575b600080fd5b3480156101f457600080fd5b506102416004803603604081101561020b57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a3a565b6040518082815260200191505060405180910390f35b34801561026357600080fd5b506102b06004803603604081101561027a57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a5f565b6040518082815260200191505060405180910390f35b3480156102d257600080fd5b506102db610a84565b6040518082815260200191505060405180910390f35b3480156102fd57600080fd5b50610306610a8a565b005b34801561031457600080fd5b506103616004803603604081101561032b57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e73565b6040518082815260200191505060405180910390f35b6103a36004803603602081101561038d57600080fd5b8101908080359060200190929190505050611046565b005b3480156103b157600080fd5b506103de600480360360208110156103c857600080fd5b81019080803590602001909291905050506111e7565b005b3480156103ec57600080fd5b506104196004803603602081101561040357600080fd5b810190808035906020019092919050505061137c565b6040518082815260200191505060405180910390f35b34801561043b57600080fd5b50610444611394565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561047c57600080fd5b506104bf6004803603602081101561049357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113ba565b005b3480156104cd57600080fd5b506104fa600480360360208110156104e457600080fd5b8101908080359060200190929190505050611478565b6040518082815260200191505060405180910390f35b34801561051c57600080fd5b506105256114ba565b6040518082815260200191505060405180910390f35b34801561054757600080fd5b506105746004803603602081101561055e57600080fd5b81019080803590602001909291905050506114bf565b005b34801561058257600080fd5b506105af6004803603602081101561059957600080fd5b810190808035906020019092919050505061159e565b005b3480156105bd57600080fd5b5061060a600480360360408110156105d457600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611622565b6040518082815260200191505060405180910390f35b34801561062c57600080fd5b50610635611647565b005b34801561064357600080fd5b506106706004803603602081101561065a57600080fd5b810190808035906020019092919050505061177f565b005b34801561067e57600080fd5b50610687611803565b6040518082815260200191505060405180910390f35b3480156106a957600080fd5b506106b2611809565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106ea57600080fd5b506106f361182f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561072b57600080fd5b50610734611853565b60405180821515815260200191505060405180910390f35b34801561075857600080fd5b506107a56004803603604081101561076f57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118aa565b6040518082815260200191505060405180910390f35b6107e7600480360360208110156107d157600080fd5b81019080803590602001909291905050506118cf565b005b3480156107f557600080fd5b506108226004803603602081101561080c57600080fd5b8101908080359060200190929190505050611a70565b6040518082815260200191505060405180910390f35b34801561084457600080fd5b5061084d611a88565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561088557600080fd5b5061088e611aae565b6040518082815260200191505060405180910390f35b3480156108b057600080fd5b506108b9611ab4565b6040518082815260200191505060405180910390f35b3480156108db57600080fd5b50610908600480360360208110156108f257600080fd5b8101908080359060200190929190505050611aba565b60405180821515815260200191505060405180910390f35b34801561092c57600080fd5b50610935611bbf565b6040518082815260200191505060405180910390f35b34801561095757600080fd5b506109846004803603602081101561096e57600080fd5b8101908080359060200190929190505050611bc5565b6040518082815260200191505060405180910390f35b3480156109a657600080fd5b506109e9600480360360208110156109bd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bdd565b005b3480156109f757600080fd5b50610a2460048036036020811015610a0e57600080fd5b8101908080359060200190929190505050611c63565b6040518082815260200191505060405180910390f35b600d602052816000526040600020602052806000526040600020600091509150505481565b600c602052816000526040600020602052806000526040600020600091509150505481565b60105481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630f37d654600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610b3557600080fd5b505afa158015610b49573d6000803e3d6000fd5b505050506040513d6020811015610b5f57600080fd5b8101908080519060200190929190505050610be2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f5570446f776e4d61726b65743a20746f6f206561726c7900000000000000000081525060200191505060405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631c1b8772600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015610c8f57600080fd5b505af1158015610ca3573d6000803e3d6000fd5b505050506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e588a304600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610d5457600080fd5b505afa158015610d68573d6000803e3d6000fd5b505050506040513d6020811015610d7e57600080fd5b81019080805190602001909291905050509050600f54811115610dc657600160066000600e54815260200190815260200160002081905550610dc1600e54611c7b565b610e4d565b600f54811015610dfb57600260066000600e54815260200190815260200160002081905550610df6600e54611cf4565b610e4c565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612a716022913960400191505060405180910390fd5b5b610e636001600e54611d6d90919063ffffffff16565b600e8190555080600f8190555050565b6000600160066000858152602001908152602001600020541415610f5857600060076000858152602001908152602001600020541415610eb65760009050611040565b610f516007600085815260200190815260200160002054610f43600c600087815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546009600088815260200190815260200160002054611df590919063ffffffff16565b611e7b90919063ffffffff16565b9050611040565b60026006600085815260200190815260200160002054141561103b57600060086000858152602001908152602001600020541415610f995760009050611040565b6110346008600085815260200190815260200160002054611026600d600087815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546009600088815260200190815260200160002054611df590919063ffffffff16565b611e7b90919063ffffffff16565b9050611040565b600090505b92915050565b61104f42611aba565b6110c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f5570446f776e4d61726b65743a20627579696e6720697320636c6f736564000081525060200191505060405180910390fd5b6002600154141561113a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b600260018190555061115033600e543484611ec5565b6001808190555060115460096000600e5481526020019081526020016000205411156111e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5570446f776e4d61726b65743a206d6178537570706c7920726561636865640081525060200191505060405180910390fd5b50565b60026001541415611260576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b600260018190555060006112748233610e73565b9050600081116112ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f5570446f776e4d61726b65743a206e6f7420612077696e6e657200000000000081525060200191505060405180910390fd5b600061131761271061130960105485611df590919063ffffffff16565b611e7b90919063ffffffff16565b9050611346600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684836120c2565b611359818361220590919063ffffffff16565b91506113663384846120c2565b611370338461224f565b50506001808190555050565b60066020528060005260406000206000915090505481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6113c2611853565b611434576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006114b360086000848152602001908152602001600020546007600085815260200190815260200160002054611d6d90919063ffffffff16565b9050919050565b603c81565b6114c7611853565b611539576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b603c60055411611594576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612ab46025913960400191505060405180910390fd5b8060058190555050565b6115a6611853565b611618576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060118190555050565b600a602052816000526040600020602052806000526040600020600091509150505481565b61164f611853565b6116c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611787611853565b6117f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060108190555050565b600e5481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b600b602052816000526040600020602052806000526040600020600091509150505481565b6118d842611aba565b61194a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f5570446f776e4d61726b65743a20627579696e6720697320636c6f736564000081525060200191505060405180910390fd5b600260015414156119c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60026001819055506119d933600e543484612309565b6001808190555060115460096000600e548152602001908152602001600020541115611a6d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5570446f776e4d61726b65743a206d6178537570706c7920726561636865640081525060200191505060405180910390fd5b50565b60086020528060005260406000206000915090505481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115481565b600f5481565b6000611bb6600554600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630a7af3a1600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611b6d57600080fd5b505afa158015611b81573d6000803e3d6000fd5b505050506040513d6020811015611b9757600080fd5b810190808051906020019092919050505061220590919063ffffffff16565b42109050919050565b60055481565b60096020528060005260406000206000915090505481565b611be5611853565b611c57576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b611c6081612506565b50565b60076020528060005260406000206000915090505481565b600060076000838152602001908152602001600020541415611cf157611cd7600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168260096000858152602001908152602001600020546120c2565b600060096000838152602001908152602001600020819055505b50565b600060086000838152602001908152602001600020541415611d6a57611d50600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168260096000858152602001908152602001600020546120c2565b600060096000838152602001908152602001600020819055505b50565b600080828401905083811015611deb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600080831415611e085760009050611e75565b6000828402905082848281611e1957fe5b0414611e70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612a936021913960400191505060405180910390fd5b809150505b92915050565b6000611ebd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612649565b905092915050565b6000611ed1838361270f565b9050611f3683600b600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d6d90919063ffffffff16565b600b600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fb0836009600087815260200190815260200160002054611d6d90919063ffffffff16565b6009600086815260200190815260200160002081905550611fed816008600087815260200190815260200160002054611d6d90919063ffffffff16565b600860008681526020019081526020016000208190555061206781600d600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d6d90919063ffffffff16565b600d600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050505050565b6120e881600960008581526020019081526020016000205461220590919063ffffffff16565b60096000848152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff1681600067ffffffffffffffff8111801561212f57600080fd5b506040519080825280601f01601f1916602001820160405280156121625781602001600182028036833780820191505090505b506040518082805190602001908083835b602083106121965780518252602082019150602081019050602083039250612173565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146121f8576040519150601f19603f3d011682016040523d82523d6000602084013e6121fd565b606091505b505050505050565b600061224783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612777565b905092915050565b6122aa8282600c600085815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612837565b6123058282600d600085815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612930565b5050565b6000612315838361270f565b905061237a83600a600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d6d90919063ffffffff16565b600a600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123f4836009600087815260200190815260200160002054611d6d90919063ffffffff16565b6009600086815260200190815260200160002081905550612431816007600087815260200190815260200160002054611d6d90919063ffffffff16565b60076000868152602001908152602001600020819055506124ab81600c600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d6d90919063ffffffff16565b600c600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561258c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612a4b6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080831182906126f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156126ba57808201518184015260208101905061269f565b50505050905090810190601f1680156126e75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161270157fe5b049050809150509392505050565b60008083905082811161276d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612a2a6021913960400191505060405180910390fd5b8091505092915050565b6000838311158290612824576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156127e95780820151818401526020810190506127ce565b50505050905090810190601f1680156128165780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b61285d81600760008581526020019081526020016000205461220590919063ffffffff16565b60076000848152602001908152602001600020819055506128d781600c600085815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461220590919063ffffffff16565b600c600084815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61295681600860008581526020019081526020016000205461220590919063ffffffff16565b60086000848152602001908152602001600020819055506129d081600d600085815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461220590919063ffffffff16565b600d600084815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505056fe5570446f776e4d61726b65743a20736861726573203e205f6d696e5368617265734f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573735570446f776e4d61726b65743a2074776170206e6f74206368616e67656420796574536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775570446f776e4d61726b65743a206c617465737442696454696d6520746f6f2073686f7274a2646970667358221220dbea95a1a3336c7321fa2d6f12be1bbef740f3b40cccc23dec00639f5e05f6de64736f6c634300060c003300000000000000000000000013252c8bf26647ceccd70a7dd49cf64e70ad3bf000000000000000000000000066e33d2605c5fb25ebb7cd7528e7997b0afa55e8000000000000000000000000000000000000000000000000000000005fd32700
Deployed Bytecode
0x6080604052600436106101e35760003560e01c806372c27b6211610102578063adc244ac11610095578063e56988dd11610064578063e56988dd14610920578063eeb59cbd1461094b578063f2fde38b1461099a578063fa526f0f146109eb576101e3565b8063adc244ac14610838578063d5abeb0114610879578063d77a1d3a146108a4578063da66050c146108cf576101e3565b80638f32d59b116100d15780638f32d59b1461071f578063a0926f8c1461074c578063a13a90d4146107bb578063ad33d040146107e9576101e3565b806372c27b621461063757806376671808146106725780637dc0d1d01461069d5780638da5cb5b146106de576101e3565b8063469048401161017a5780636dbdd996116101495780636dbdd9961461053b5780636f8b44b0146105765780636fcb2e8d146105b1578063715018a614610620576101e3565b8063469048401461042f5780634a340993146104705780634e97f140146104c157806356e1761214610510576101e3565b8063281565c7116101b6578063281565c71461030857806335d0762314610377578063379607f5146103a55780633eebaa97146103e0576101e3565b806313f6a252146101e857806314a1d84f1461025757806324a9d853146102c65780632810e1d6146102f1575b600080fd5b3480156101f457600080fd5b506102416004803603604081101561020b57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a3a565b6040518082815260200191505060405180910390f35b34801561026357600080fd5b506102b06004803603604081101561027a57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a5f565b6040518082815260200191505060405180910390f35b3480156102d257600080fd5b506102db610a84565b6040518082815260200191505060405180910390f35b3480156102fd57600080fd5b50610306610a8a565b005b34801561031457600080fd5b506103616004803603604081101561032b57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e73565b6040518082815260200191505060405180910390f35b6103a36004803603602081101561038d57600080fd5b8101908080359060200190929190505050611046565b005b3480156103b157600080fd5b506103de600480360360208110156103c857600080fd5b81019080803590602001909291905050506111e7565b005b3480156103ec57600080fd5b506104196004803603602081101561040357600080fd5b810190808035906020019092919050505061137c565b6040518082815260200191505060405180910390f35b34801561043b57600080fd5b50610444611394565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561047c57600080fd5b506104bf6004803603602081101561049357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113ba565b005b3480156104cd57600080fd5b506104fa600480360360208110156104e457600080fd5b8101908080359060200190929190505050611478565b6040518082815260200191505060405180910390f35b34801561051c57600080fd5b506105256114ba565b6040518082815260200191505060405180910390f35b34801561054757600080fd5b506105746004803603602081101561055e57600080fd5b81019080803590602001909291905050506114bf565b005b34801561058257600080fd5b506105af6004803603602081101561059957600080fd5b810190808035906020019092919050505061159e565b005b3480156105bd57600080fd5b5061060a600480360360408110156105d457600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611622565b6040518082815260200191505060405180910390f35b34801561062c57600080fd5b50610635611647565b005b34801561064357600080fd5b506106706004803603602081101561065a57600080fd5b810190808035906020019092919050505061177f565b005b34801561067e57600080fd5b50610687611803565b6040518082815260200191505060405180910390f35b3480156106a957600080fd5b506106b2611809565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106ea57600080fd5b506106f361182f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561072b57600080fd5b50610734611853565b60405180821515815260200191505060405180910390f35b34801561075857600080fd5b506107a56004803603604081101561076f57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118aa565b6040518082815260200191505060405180910390f35b6107e7600480360360208110156107d157600080fd5b81019080803590602001909291905050506118cf565b005b3480156107f557600080fd5b506108226004803603602081101561080c57600080fd5b8101908080359060200190929190505050611a70565b6040518082815260200191505060405180910390f35b34801561084457600080fd5b5061084d611a88565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561088557600080fd5b5061088e611aae565b6040518082815260200191505060405180910390f35b3480156108b057600080fd5b506108b9611ab4565b6040518082815260200191505060405180910390f35b3480156108db57600080fd5b50610908600480360360208110156108f257600080fd5b8101908080359060200190929190505050611aba565b60405180821515815260200191505060405180910390f35b34801561092c57600080fd5b50610935611bbf565b6040518082815260200191505060405180910390f35b34801561095757600080fd5b506109846004803603602081101561096e57600080fd5b8101908080359060200190929190505050611bc5565b6040518082815260200191505060405180910390f35b3480156109a657600080fd5b506109e9600480360360208110156109bd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bdd565b005b3480156109f757600080fd5b50610a2460048036036020811015610a0e57600080fd5b8101908080359060200190929190505050611c63565b6040518082815260200191505060405180910390f35b600d602052816000526040600020602052806000526040600020600091509150505481565b600c602052816000526040600020602052806000526040600020600091509150505481565b60105481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630f37d654600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610b3557600080fd5b505afa158015610b49573d6000803e3d6000fd5b505050506040513d6020811015610b5f57600080fd5b8101908080519060200190929190505050610be2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f5570446f776e4d61726b65743a20746f6f206561726c7900000000000000000081525060200191505060405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631c1b8772600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015610c8f57600080fd5b505af1158015610ca3573d6000803e3d6000fd5b505050506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e588a304600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610d5457600080fd5b505afa158015610d68573d6000803e3d6000fd5b505050506040513d6020811015610d7e57600080fd5b81019080805190602001909291905050509050600f54811115610dc657600160066000600e54815260200190815260200160002081905550610dc1600e54611c7b565b610e4d565b600f54811015610dfb57600260066000600e54815260200190815260200160002081905550610df6600e54611cf4565b610e4c565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612a716022913960400191505060405180910390fd5b5b610e636001600e54611d6d90919063ffffffff16565b600e8190555080600f8190555050565b6000600160066000858152602001908152602001600020541415610f5857600060076000858152602001908152602001600020541415610eb65760009050611040565b610f516007600085815260200190815260200160002054610f43600c600087815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546009600088815260200190815260200160002054611df590919063ffffffff16565b611e7b90919063ffffffff16565b9050611040565b60026006600085815260200190815260200160002054141561103b57600060086000858152602001908152602001600020541415610f995760009050611040565b6110346008600085815260200190815260200160002054611026600d600087815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546009600088815260200190815260200160002054611df590919063ffffffff16565b611e7b90919063ffffffff16565b9050611040565b600090505b92915050565b61104f42611aba565b6110c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f5570446f776e4d61726b65743a20627579696e6720697320636c6f736564000081525060200191505060405180910390fd5b6002600154141561113a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b600260018190555061115033600e543484611ec5565b6001808190555060115460096000600e5481526020019081526020016000205411156111e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5570446f776e4d61726b65743a206d6178537570706c7920726561636865640081525060200191505060405180910390fd5b50565b60026001541415611260576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b600260018190555060006112748233610e73565b9050600081116112ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f5570446f776e4d61726b65743a206e6f7420612077696e6e657200000000000081525060200191505060405180910390fd5b600061131761271061130960105485611df590919063ffffffff16565b611e7b90919063ffffffff16565b9050611346600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684836120c2565b611359818361220590919063ffffffff16565b91506113663384846120c2565b611370338461224f565b50506001808190555050565b60066020528060005260406000206000915090505481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6113c2611853565b611434576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006114b360086000848152602001908152602001600020546007600085815260200190815260200160002054611d6d90919063ffffffff16565b9050919050565b603c81565b6114c7611853565b611539576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b603c60055411611594576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612ab46025913960400191505060405180910390fd5b8060058190555050565b6115a6611853565b611618576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060118190555050565b600a602052816000526040600020602052806000526040600020600091509150505481565b61164f611853565b6116c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611787611853565b6117f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060108190555050565b600e5481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b600b602052816000526040600020602052806000526040600020600091509150505481565b6118d842611aba565b61194a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f5570446f776e4d61726b65743a20627579696e6720697320636c6f736564000081525060200191505060405180910390fd5b600260015414156119c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60026001819055506119d933600e543484612309565b6001808190555060115460096000600e548152602001908152602001600020541115611a6d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5570446f776e4d61726b65743a206d6178537570706c7920726561636865640081525060200191505060405180910390fd5b50565b60086020528060005260406000206000915090505481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115481565b600f5481565b6000611bb6600554600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630a7af3a1600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611b6d57600080fd5b505afa158015611b81573d6000803e3d6000fd5b505050506040513d6020811015611b9757600080fd5b810190808051906020019092919050505061220590919063ffffffff16565b42109050919050565b60055481565b60096020528060005260406000206000915090505481565b611be5611853565b611c57576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b611c6081612506565b50565b60076020528060005260406000206000915090505481565b600060076000838152602001908152602001600020541415611cf157611cd7600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168260096000858152602001908152602001600020546120c2565b600060096000838152602001908152602001600020819055505b50565b600060086000838152602001908152602001600020541415611d6a57611d50600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168260096000858152602001908152602001600020546120c2565b600060096000838152602001908152602001600020819055505b50565b600080828401905083811015611deb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600080831415611e085760009050611e75565b6000828402905082848281611e1957fe5b0414611e70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612a936021913960400191505060405180910390fd5b809150505b92915050565b6000611ebd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612649565b905092915050565b6000611ed1838361270f565b9050611f3683600b600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d6d90919063ffffffff16565b600b600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fb0836009600087815260200190815260200160002054611d6d90919063ffffffff16565b6009600086815260200190815260200160002081905550611fed816008600087815260200190815260200160002054611d6d90919063ffffffff16565b600860008681526020019081526020016000208190555061206781600d600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d6d90919063ffffffff16565b600d600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050505050565b6120e881600960008581526020019081526020016000205461220590919063ffffffff16565b60096000848152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff1681600067ffffffffffffffff8111801561212f57600080fd5b506040519080825280601f01601f1916602001820160405280156121625781602001600182028036833780820191505090505b506040518082805190602001908083835b602083106121965780518252602082019150602081019050602083039250612173565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146121f8576040519150601f19603f3d011682016040523d82523d6000602084013e6121fd565b606091505b505050505050565b600061224783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612777565b905092915050565b6122aa8282600c600085815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612837565b6123058282600d600085815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612930565b5050565b6000612315838361270f565b905061237a83600a600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d6d90919063ffffffff16565b600a600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123f4836009600087815260200190815260200160002054611d6d90919063ffffffff16565b6009600086815260200190815260200160002081905550612431816007600087815260200190815260200160002054611d6d90919063ffffffff16565b60076000868152602001908152602001600020819055506124ab81600c600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d6d90919063ffffffff16565b600c600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561258c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612a4b6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080831182906126f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156126ba57808201518184015260208101905061269f565b50505050905090810190601f1680156126e75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161270157fe5b049050809150509392505050565b60008083905082811161276d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612a2a6021913960400191505060405180910390fd5b8091505092915050565b6000838311158290612824576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156127e95780820151818401526020810190506127ce565b50505050905090810190601f1680156128165780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b61285d81600760008581526020019081526020016000205461220590919063ffffffff16565b60076000848152602001908152602001600020819055506128d781600c600085815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461220590919063ffffffff16565b600c600084815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61295681600860008581526020019081526020016000205461220590919063ffffffff16565b60086000848152602001908152602001600020819055506129d081600d600085815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461220590919063ffffffff16565b600d600084815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505056fe5570446f776e4d61726b65743a20736861726573203e205f6d696e5368617265734f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573735570446f776e4d61726b65743a2074776170206e6f74206368616e67656420796574536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775570446f776e4d61726b65743a206c617465737442696454696d6520746f6f2073686f7274a2646970667358221220dbea95a1a3336c7321fa2d6f12be1bbef740f3b40cccc23dec00639f5e05f6de64736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000013252c8bf26647ceccd70a7dd49cf64e70ad3bf000000000000000000000000066e33d2605c5fb25ebb7cd7528e7997b0afa55e8000000000000000000000000000000000000000000000000000000005fd32700
-----Decoded View---------------
Arg [0] : _oracle (address): 0x13252c8BF26647ceCCD70A7DD49Cf64e70aD3Bf0
Arg [1] : _oraclePair (address): 0x66e33d2605c5fB25eBb7cd7528E7997b0afA55E8
Arg [2] : _startTime (uint256): 1607673600
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000013252c8bf26647ceccd70a7dd49cf64e70ad3bf0
Arg [1] : 00000000000000000000000066e33d2605c5fb25ebb7cd7528e7997b0afa55e8
Arg [2] : 000000000000000000000000000000000000000000000000000000005fd32700
Deployed Bytecode Sourcemap
8453:7040:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9270:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9186:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9576:22;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10898:584;;;;;;;;;;;;;:::i;:::-;;12118:613;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10319:157;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10482:410;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8748:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8648:27;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11571:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11977:135;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8540:45;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11682:192;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11880:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9010:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7990:128;;;;;;;;;;;;;:::i;:::-;;11488:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9518:28;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8592:21;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7569:20;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7899:85;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9097:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10160:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8885:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8618:25;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9603:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9551:20;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12797:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8682:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8948:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8124:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8824:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9270:63;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9186:61::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9576:22::-;;;;:::o;10898:584::-;10939:6;;;;;;;;;;;:23;;;10963:10;;;;;;;;;;;10939:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10931:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11015:6;;;;;;;;;;;:13;;;11029:10;;;;;;;;;;;11015:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11049:16;11068:6;;;;;;;;;;;:17;;;11086:10;;;;;;;;;;;11068:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11049:48;;11124:8;;11110:11;:22;11106:299;;;11170:1;11143:10;:24;11154:12;;11143:24;;;;;;;;;;;:28;;;;11180:26;11193:12;;11180;:26::i;:::-;11106:299;;;11240:8;;11226:11;:22;11222:183;;;11286:1;11259:10;:24;11270:12;;11259:24;;;;;;;;;;;:28;;;;11296;11311:12;;11296:14;:28::i;:::-;11222:183;;;11353:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11222:183;11106:299;11428:19;11445:1;11428:12;;:16;;:19;;;;:::i;:::-;11413:12;:34;;;;11465:11;11454:8;:22;;;;10898:584;:::o;12118:613::-;12188:4;12244:1;12222:10;:18;12233:6;12222:18;;;;;;;;;;;;:23;12218:508;;;12285:1;12260:13;:21;12274:6;12260:21;;;;;;;;;;;;:26;12256:178;;;12306:1;12299:8;;;;12256:178;12341:83;12402:13;:21;12416:6;12402:21;;;;;;;;;;;;12341:56;12368:10;:18;12379:6;12368:18;;;;;;;;;;;:28;12387:8;12368:28;;;;;;;;;;;;;;;;12341:14;:22;12356:6;12341:22;;;;;;;;;;;;:26;;:56;;;;:::i;:::-;:60;;:83;;;;:::i;:::-;12334:90;;;;12218:508;12492:1;12470:10;:18;12481:6;12470:18;;;;;;;;;;;;:23;12466:260;;;12535:1;12508:15;:23;12524:6;12508:23;;;;;;;;;;;;:28;12504:184;;;12556:1;12549:8;;;;12504:184;12591:87;12654:15;:23;12670:6;12654:23;;;;;;;;;;;;12591:58;12618:12;:20;12631:6;12618:20;;;;;;;;;;;:30;12639:8;12618:30;;;;;;;;;;;;;;;;12591:14;:22;12606:6;12591:22;;;;;;;;;;;;:26;;:58;;;;:::i;:::-;:62;;:87;;;;:::i;:::-;12584:94;;;;12466:260;12717:1;12710:8;;12118:613;;;;;:::o;10319:157::-;9683:27;9694:15;9683:10;:27::i;:::-;9675:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6590:1:::2;7196:7;;:19;;7188:63;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;6590:1;7329:7;:18;;;;10412:58:::3;10422:10;10434:12;;10448:9;10459:10;10412:9;:58::i;:::-;6546:1:::2;7508:7:::0;:22:::2;;;;9845:9:::1;;9813:14;:28;9828:12;;9813:28;;;;;;;;;;;;:41;;9805:85;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;10319:157:::0;:::o;10482:410::-;6590:1;7196:7;;:19;;7188:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6590:1;7329:7;:18;;;;10537:19:::1;10559:29;10569:6;10577:10;10559:9;:29::i;:::-;10537:51;;10620:1;10603:14;:18;10595:57;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;10661:8;10672:37;10703:5;10672:26;10691:6;;10672:14;:18;;:26;;;;:::i;:::-;:30;;:37;;;;:::i;:::-;10661:48;;10716:35;10725:12;;;;;;;;;;;10739:6;10747:3;10716:8;:35::i;:::-;10775:23;10794:3;10775:14;:18;;:23;;;;:::i;:::-;10758:40;;10807:44;10816:10;10828:6;10836:14;10807:8;:44::i;:::-;10858:28;10867:10;10879:6;10858:8;:28::i;:::-;7360:1;;6546::::0;7508:7;:22;;;;10482:410;:::o;8748:40::-;;;;;;;;;;;;;;;;;:::o;8648:27::-;;;;;;;;;;;;;:::o;11571:105::-;7833:9;:7;:9::i;:::-;7825:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11657:13:::1;11642:12;;:28;;;;;;;;;;;;;;;;;;11571:105:::0;:::o;11977:135::-;12036:4;12056:50;12082:15;:23;12098:6;12082:23;;;;;;;;;;;;12056:13;:21;12070:6;12056:21;;;;;;;;;;;;:25;;:50;;;;:::i;:::-;12049:57;;11977:135;;;:::o;8540:45::-;8576:9;8540:45;:::o;11682:192::-;7833:9;:7;:9::i;:::-;7825:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8576:9:::1;11761:13;;:28;11753:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11854:14;11838:13;:30;;;;11682:192:::0;:::o;11880:91::-;7833:9;:7;:9::i;:::-;7825:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11955:10:::1;11943:9;:22;;;;11880:91:::0;:::o;9010:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7990:128::-;7833:9;:7;:9::i;:::-;7825:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8084:1:::1;8048:39;;8069:5;::::0;::::1;;;;;;;;8048:39;;;;;;;;;;;;8110:1;8094:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;7990:128::o:0;11488:77::-;7833:9;:7;:9::i;:::-;7825:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11553:6:::1;11544;:15;;;;11488:77:::0;:::o;9518:28::-;;;;:::o;8592:21::-;;;;;;;;;;;;;:::o;7569:20::-;;;;;;;;;;;;:::o;7899:85::-;7939:4;7973:5;;;;;;;;;;;7959:19;;:10;:19;;;7952:26;;7899:85;:::o;9097:66::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10160:153::-;9683:27;9694:15;9683:10;:27::i;:::-;9675:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6590:1:::2;7196:7;;:19;;7188:63;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;6590:1;7329:7;:18;;;;10251:56:::3;10259:10;10271:12;;10285:9;10296:10;10251:7;:56::i;:::-;6546:1:::2;7508:7:::0;:22:::2;;;;9845:9:::1;;9813:14;:28;9828:12;;9813:28;;;;;;;;;;;;:41;;9805:85;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;10160:153:::0;:::o;8885:45::-;;;;;;;;;;;;;;;;;:::o;8618:25::-;;;;;;;;;;;;;:::o;9603:30::-;;;;:::o;9551:20::-;;;;:::o;12797:151::-;12854:4;12892:50;12928:13;;12892:6;;;;;;;;;;;:19;;;12912:10;;;;;;;;;;;12892:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:35;;:50;;;;:::i;:::-;12874:15;:68;12867:75;;12797:151;;;:::o;8682:38::-;;;;:::o;8948:44::-;;;;;;;;;;;;;;;;;:::o;8124:103::-;7833:9;:7;:9::i;:::-;7825:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8193:28:::1;8212:8;8193:18;:28::i;:::-;8124:103:::0;:::o;8824:43::-;;;;;;;;;;;;;;;;;:::o;13028:194::-;13108:1;13083:13;:21;13097:6;13083:21;;;;;;;;;;;;:26;13079:138;;;13120:54;13129:12;;;;;;;;;;;13143:6;13151:14;:22;13166:6;13151:22;;;;;;;;;;;;13120:8;:54::i;:::-;13208:1;13183:14;:22;13198:6;13183:22;;;;;;;;;;;:26;;;;13079:138;13028:194;:::o;13304:198::-;13388:1;13361:15;:23;13377:6;13361:23;;;;;;;;;;;;:28;13357:140;;;13400:54;13409:12;;;;;;;;;;;13423:6;13431:14;:22;13446:6;13431:22;;;;;;;;;;;;13400:8;:54::i;:::-;13488:1;13463:14;:22;13478:6;13463:22;;;;;;;;;;;:26;;;;13357:140;13304:198;:::o;333:181::-;391:7;411:9;427:1;423;:5;411:17;;452:1;447;:6;;439:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;505:1;498:8;;;333:181;;;;:::o;1687:471::-;1745:7;1995:1;1990;:6;1986:47;;;2020:1;2013:8;;;;1986:47;2045:9;2061:1;2057;:5;2045:17;;2090:1;2085;2081;:5;;;;;;:10;2073:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2149:1;2142:8;;;1687:471;;;;;:::o;2634:132::-;2692:7;2719:39;2723:1;2726;2719:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2712:46;;2634:132;;;;:::o;13951:451::-;14048:11;14062:28;14070:7;14079:10;14062:7;:28::i;:::-;14048:42;;14133:46;14171:7;14133:15;:23;14149:6;14133:23;;;;;;;;;;;:33;14157:8;14133:33;;;;;;;;;;;;;;;;:37;;:46;;;;:::i;:::-;14097:15;:23;14113:6;14097:23;;;;;;;;;;;:33;14121:8;14097:33;;;;;;;;;;;;;;;:82;;;;14211:35;14238:7;14211:14;:22;14226:6;14211:22;;;;;;;;;;;;:26;;:35;;;;:::i;:::-;14186:14;:22;14201:6;14186:22;;;;;;;;;;;:60;;;;14279:35;14307:6;14279:15;:23;14295:6;14279:23;;;;;;;;;;;;:27;;:35;;;;:::i;:::-;14253:15;:23;14269:6;14253:23;;;;;;;;;;;:61;;;;14354:42;14389:6;14354:12;:20;14367:6;14354:20;;;;;;;;;;;:30;14375:8;14354:30;;;;;;;;;;;;;;;;:34;;:42;;;;:::i;:::-;14321:12;:20;14334:6;14321:20;;;;;;;;;;;:30;14342:8;14321:30;;;;;;;;;;;;;;;:75;;;;13951:451;;;;;:::o;15278:212::-;15384:35;15411:7;15384:14;:22;15399:6;15384:22;;;;;;;;;;;;:26;;:35;;;;:::i;:::-;15359:14;:22;15374:6;15359:22;;;;;;;;;;;:60;;;;15434:10;15426:24;;15460:7;15481:1;15471:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15426:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15278:212;;;:::o;797:136::-;855:7;882:43;886:1;889;882:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;875:50;;797:136;;;;:::o;15080:192::-;15145:55;15153:8;15163:6;15171:10;:18;15182:6;15171:18;;;;;;;;;;;:28;15190:8;15171:28;;;;;;;;;;;;;;;;15145:7;:55::i;:::-;15207:59;15217:8;15227:6;15235:12;:20;15248:6;15235:20;;;;;;;;;;;:30;15256:8;15235:30;;;;;;;;;;;;;;;;15207:9;:59::i;:::-;15080:192;;:::o;13508:437::-;13603:11;13617:28;13625:7;13634:10;13617:7;:28::i;:::-;13603:42;;13686:44;13722:7;13686:13;:21;13700:6;13686:21;;;;;;;;;;;:31;13708:8;13686:31;;;;;;;;;;;;;;;;:35;;:44;;;;:::i;:::-;13652:13;:21;13666:6;13652:21;;;;;;;;;;;:31;13674:8;13652:31;;;;;;;;;;;;;;;:78;;;;13762:35;13789:7;13762:14;:22;13777:6;13762:22;;;;;;;;;;;;:26;;:35;;;;:::i;:::-;13737:14;:22;13752:6;13737:22;;;;;;;;;;;:60;;;;13828:33;13854:6;13828:13;:21;13842:6;13828:21;;;;;;;;;;;;:25;;:33;;;;:::i;:::-;13804:13;:21;13818:6;13804:21;;;;;;;;;;;:57;;;;13899:40;13932:6;13899:10;:18;13910:6;13899:18;;;;;;;;;;;:28;13918:8;13899:28;;;;;;;;;;;;;;;;:32;;:40;;;;:::i;:::-;13868:10;:18;13879:6;13868:18;;;;;;;;;;;:28;13887:8;13868:28;;;;;;;;;;;;;;;:71;;;;13508:437;;;;;:::o;8233:213::-;8323:1;8303:22;;:8;:22;;;;8295:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8408:8;8380:37;;8401:5;;;;;;;;;;8380:37;;;;;;;;;;;;8432:8;8424:5;;:16;;;;;;;;;;;;;;;;;;8233:213;:::o;3262:278::-;3348:7;3380:1;3376;:5;3383:12;3368:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3407:9;3423:1;3419;:5;;;;;;3407:17;;3531:1;3524:8;;;3262:278;;;;;:::o;14408:202::-;14478:4;14491:11;14505:7;14491:21;;14536:10;14527:6;:19;14519:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14598:6;14591:13;;;14408:202;;;;:::o;1236:192::-;1322:7;1355:1;1350;:6;;1358:12;1342:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1382:9;1398:1;1394;:5;1382:17;;1419:1;1412:8;;;1236:192;;;;;:::o;14616:221::-;14718:34;14744:7;14718:13;:21;14732:6;14718:21;;;;;;;;;;;;:25;;:34;;;;:::i;:::-;14694:13;:21;14708:6;14694:21;;;;;;;;;;;:58;;;;14790:41;14823:7;14790:10;:18;14801:6;14790:18;;;;;;;;;;;:28;14809:8;14790:28;;;;;;;;;;;;;;;;:32;;:41;;;;:::i;:::-;14759:10;:18;14770:6;14759:18;;;;;;;;;;;:28;14778:8;14759:28;;;;;;;;;;;;;;;:72;;;;14616:221;;;:::o;14843:231::-;14949:36;14977:7;14949:15;:23;14965:6;14949:23;;;;;;;;;;;;:27;;:36;;;;:::i;:::-;14923:15;:23;14939:6;14923:23;;;;;;;;;;;:62;;;;15025:43;15060:7;15025:12;:20;15038:6;15025:20;;;;;;;;;;;:30;15046:8;15025:30;;;;;;;;;;;;;;;;:34;;:43;;;;:::i;:::-;14992:12;:20;15005:6;14992:20;;;;;;;;;;;:30;15013:8;14992:30;;;;;;;;;;;;;;;:76;;;;14843:231;;;:::o
Swarm Source
ipfs://dbea95a1a3336c7321fa2d6f12be1bbef740f3b40cccc23dec00639f5e05f6de
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.