Overview
Max Total Supply
52,085,806.94518030792941261 HYPE
Holders
29,916 (0.00%)
Market
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Filtered by Token Holder
Status: Research & Development MultiSigBalance
500 HYPEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
HYPEtoken
Compiler Version
v0.5.10+commit.5a6ea5b1
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2019-07-20
*/
pragma solidity 0.5.10; /*
___________________________________________________________________
_ _ ______
| | / / /
--|-/|-/-----__---/----__----__---_--_----__-------/-------__------
|/ |/ /___) / / ' / ) / / ) /___) / / )
__/__|____(___ _/___(___ _(___/_/_/__/_(___ _____/______(___/__o_o_
██╗ ██╗██╗ ██╗██████╗ ███████╗ ████████╗ ██████╗ ██╗ ██╗███████╗███╗ ██╗
██║ ██║╚██╗ ██╔╝██╔══██╗██╔════╝ ╚══██╔══╝██╔═══██╗██║ ██╔╝██╔════╝████╗ ██║
███████║ ╚████╔╝ ██████╔╝█████╗ ██║ ██║ ██║█████╔╝ █████╗ ██╔██╗ ██║
██╔══██║ ╚██╔╝ ██╔═══╝ ██╔══╝ ██║ ██║ ██║██╔═██╗ ██╔══╝ ██║╚██╗██║
██║ ██║ ██║ ██║ ███████╗ ██║ ╚██████╔╝██║ ██╗███████╗██║ ╚████║
╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═══╝
----------------------------------------------------------------------------------------------------
=== MAIN FEATURES ===
=> Higher degree of control by owner - safeGuard functionality
=> SafeMath implementation
=> Earning on token for fixed-deposit
------------------------------------------------------------------------------------------------------
Copyright (c) 2019 onwards HYPE Inc. ( https://hypetoken.io )
Contract designed with ❤ by EtherAuthority ( https://EtherAuthority.io )
------------------------------------------------------------------------------------------------------
*/
/* Safemath library */
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;
}
}
// Owner Handler
contract ownerShip // Auction Contract Owner and OwherShip change
{
//Global storage declaration
address payable public owner;
address payable public newOwner;
bool public safeGuard ; // To hault all non owner functions in case of imergency
//Event defined for ownership transfered
event OwnershipTransferredEv(address payable indexed previousOwner, address payable indexed newOwner);
//Sets owner only on first run
constructor() public
{
//Set contract owner
owner = msg.sender;
// Disabled global hault on first deploy
safeGuard = false;
}
//This will restrict function only for owner where attached
modifier onlyOwner()
{
require(msg.sender == owner);
_;
}
function transferOwnership(address payable _newOwner) public onlyOwner
{
newOwner = _newOwner;
}
//the reason for this flow is to protect owners from sending ownership to unintended address due to human error
function acceptOwnership() public
{
require(msg.sender == newOwner);
emit OwnershipTransferredEv(owner, newOwner);
owner = newOwner;
newOwner = address(0);
}
function changesafeGuardStatus() onlyOwner public
{
if (safeGuard == false)
{
safeGuard = true;
}
else
{
safeGuard = false;
}
}
}
contract tokenERC20 is ownerShip
{
// Public variables of the token
using SafeMath for uint256;
bytes32 public name;
bytes8 public symbol;
uint8 public decimals; // places of decimal
uint256 public totalSupply;
uint256 public totalMintAfterInitial;
uint256 public maximumSupply;
uint public burningRate = 500; // 500=5%
// struct to store token and ether value
struct userBalance
{
uint256 totalValue;
uint256 freezeValue;
uint256 freezeDate;
uint256 meltValue;
}
// Mapped storage for token ( If token address is 0 means ether)
mapping (address => mapping (address => userBalance)) public tokens;
// This creates an array with all balances
mapping (address => uint256) public balanceOf;
mapping (address => mapping (address => uint256)) public allowance;
/* Records for the fronzen accounts */
mapping (address => bool) public frozenAccount;
/* This generates a public event on the blockchain that will notify clients */
event FrozenFunds(address target, bool frozen);
// This generates a public event on the blockchain that will notify clients
event Transfer(address indexed from, address indexed to, uint256 value);
// This notifies clients about the amount burnt
event Burn(address indexed from, uint256 value);
//Calculate percent and return result
function calculatePercentage(uint256 PercentOf, uint256 percentTo ) internal pure returns (uint256)
{
uint256 factor = 10000;
require(percentTo <= factor);
uint256 c = PercentOf.mul(percentTo).div(factor);
return c;
}
function setBurningRate(uint _burningRate) onlyOwner public returns(bool success)
{
burningRate = _burningRate;
return true;
}
//Token type defnition
struct tokenTypeData
{
bytes32 tokenName;
bytes8 tokenSymbol;
uint decimalCount;
uint minFreezingValue;
uint rateFactor; // % of token balance amount = "effective balance amount" to calculate interest
uint perDayFreezeRate; //1000 = 10% ,10 = 0.1%, 1 = 0.01%
bool freezingAllowed; // If false this token type is not allowed or accepted to freeze
}
// Mapped storage struct for token type data
mapping (address => tokenTypeData) public tokenTypeDatas;
/**
* Constrctor function
*
* Initializes contract with initial supply tokens to the creator of the contract
*/
constructor () public {
decimals = 18; // 18 decimal places
totalSupply = 50000000000000000000000000; // 50 Million with 18 decimal places
maximumSupply = 100000000000000000000000000; // 100 Million with 18 decimal places
balanceOf[msg.sender]=totalSupply; // tokens will be sent to owner
tokens[address(this)][owner].totalValue = balanceOf[msg.sender];
name = "HYPE Token"; // Set the name for display purposes
symbol = "HYPE"; // Set the symbol for display purposes
//In house token type data update
tokenTypeData memory temp;
temp.tokenName=name;
temp.tokenSymbol=symbol;
temp.decimalCount=decimals;
temp.minFreezingValue=100;
temp.rateFactor=10000; //10000 = 100% means token amount = effective amount
temp.perDayFreezeRate=100; // 1% daily freezing reward
temp.freezingAllowed=true;
tokenTypeDatas[address(this)] = temp;
emit Transfer(address(0), msg.sender, totalSupply);
}
/* Internal transfer, only can be called by this contract */
function _transfer(address _from, address _to, uint _value) internal {
require(!safeGuard,"safeGuard Active");
require (_to != address(0),"to is address 0"); // Prevent transfer to 0x0 address. Use burn() instead
require (balanceOf[_from] >= _value, "no balance in from"); // Check if the sender has enough
require (balanceOf[_to].add(_value) >= balanceOf[_to],"overflow balance"); // Check for overflows
require(!frozenAccount[_from],"from account frozen"); // Check if sender is frozen
require(!frozenAccount[_to],"to account frozen"); // Check if recipient is frozen
balanceOf[_from] = balanceOf[_from].sub(_value); // Subtract from the sender
tokens[address(this)][_from].totalValue = tokens[address(this)][_from].totalValue.sub(_value); //parallel record for multi token addressing need
balanceOf[_to] = balanceOf[_to].add(_value); // Add the same to the recipient
tokens[address(this)][_to].totalValue = tokens[address(this)][_to].totalValue.add(_value); //parallel record for multi token addressing need
uint burnValue;
if(!(msg.sender == owner || msg.sender == address(this))) // burn if sender is not this contract or owner
{
burnValue = calculatePercentage(_value,burningRate); //amount to burn
require(burnInternal(_to, burnValue),"burning failed"); // burnt from receiver
}
emit Transfer(_from, _to,_value);
}
function burnInternal(address _burnFrom, uint _burnValue) internal returns(bool success)
{
require(!safeGuard,"safeGuard Active");
require(_burnFrom != address(0));
require(balanceOf[_burnFrom] >= _burnValue); // Check if the sender has enough
require(!frozenAccount[_burnFrom],"to account frozen"); // Check if recipient is frozen
balanceOf[_burnFrom] = balanceOf[_burnFrom].sub(_burnValue); // Subtract from the sender
tokens[address(this)][_burnFrom].totalValue = tokens[address(this)][_burnFrom].totalValue.sub(_burnValue); //parallel record for multi token addressing need
balanceOf[address(0)] = balanceOf[address(0)].add(_burnValue); // Add the same to the recipient
tokens[address(this)][address(0)].totalValue = tokens[address(this)][address(0)].totalValue.add(_burnValue); //parallel record for multi token addressing need
totalSupply = totalSupply.sub(_burnValue);
emit Transfer(_burnFrom, address(0),_burnValue); // Update totalSupply
return true;
}
function mintInternal(uint256 mintedAmount) internal returns (bool success) {
totalSupply = totalSupply.add(mintedAmount);
totalMintAfterInitial = totalMintAfterInitial.add(mintedAmount);
//emit Transfer(address(0), address(this), mintedAmount);
return true;
}
/**
* Transfer tokens
*
* Send `_value` tokens to `_to` from your account
*
* @param _to The address of the recipient
* @param _value the amount to send
*/
function transfer(address _to, uint256 _value) public returns (bool success) {
_transfer(msg.sender, _to, _value);
return true;
}
/**
* Transfer tokens from other address
*
* Send `_value` tokens to `_to` in behalf of `_from`
*
* @param _from The address of the sender
* @param _to The address of the recipient
* @param _value the amount to send
*/
function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
require(!safeGuard);
require(_from != address(0),"transfer from adderss(0) is invalid");
require(_value <= allowance[_from][msg.sender]); // Check allowance
allowance[_from][msg.sender] = allowance[_from][msg.sender].sub(_value);
_transfer(_from, _to, _value);
return true;
}
/**
* Set allowance for other address
*
* Allows `_spender` to spend no more than `_value` tokens in your behalf
*
* @param _spender The address authorized to spend
* @param _value the max amount they can spend
*/
function approve(address _spender, uint256 _value) public
returns (bool success) {
require(!safeGuard);
allowance[msg.sender][_spender] = _value;
return true;
}
/// @notice Create `mintedAmount` tokens and send it to `target`
/// @param target Address to receive the tokens
/// @param mintedAmount the amount of tokens it will receive
function mintToken(address target, uint256 mintedAmount) public onlyOwner returns (bool success) {
balanceOf[target] = balanceOf[target].add(mintedAmount);
tokens[address(this)][target].totalValue = tokens[address(this)][target].totalValue.add(mintedAmount); //parallel record for multi token addressing need
totalSupply = totalSupply.add(mintedAmount);
totalMintAfterInitial = totalMintAfterInitial.add(mintedAmount);
emit Transfer(address(0), address(this), mintedAmount);
return true;
}
/**
* Destroy tokens
*
* Remove `_value` tokens from the system irreversibly
*
* @param _value the amount of money to burn
*/
function burn(uint256 _value) public onlyOwner returns (bool success) {
burnInternal(msg.sender, _value);
return true;
}
/**
* Destroy tokens from other account
*
* Remove `_value` tokens from the system irreversibly on behalf of `_from`.
*
* @param _from the address of the sender
* @param _value the amount of money to burn
*/
function burnFrom(address _from, uint256 _value) public onlyOwner returns (bool success) {
burnInternal(_from, _value);
return true;
}
}
interface ERC20Essential
{
function transfer(address _to, uint256 _amount) external returns (bool);
function transferFrom(address _from, address _to, uint256 _amount) external returns (bool);
}
//Main contract starts here
contract HYPEtoken is tokenERC20
{
using SafeMath for uint256;
/*************************************/
/* User whitelisting functionality */
/*************************************/
bool public whitelistingStatus = false;
mapping (address => bool) public whitelisted;
/**
* Change whitelisting status on or off
*
* When whitelisting is true, then crowdsale will only accept investors who are whitelisted.
*/
function changeWhitelistingStatus() onlyOwner public{
if (whitelistingStatus == false){
whitelistingStatus = true;
whitelisted[owner]= true;
}
else{
whitelistingStatus = false;
}
}
/**
* Whitelist any user address - only Owner can do this
*
* It will add user address in whitelisted mapping
*/
function whitelistUser(address userAddress) onlyOwner public{
require(whitelistingStatus == true);
require(userAddress != address(0));
whitelisted[userAddress] = true;
}
/// @notice `freeze? Prevent | Allow` `target` from sending & receiving tokens
/// @param target Address to be frozen
/// @param freeze either to freeze it or not
function freezeAccount(address target, bool freeze) onlyOwner public {
frozenAccount[target] = freeze;
emit FrozenFunds(target, freeze);
}
//Just in case, owner wants to transfer Tokens from contract to owner address
function manualWithdrawToken(uint256 _amount) onlyOwner public {
uint256 tokenAmount = _amount.mul(100);
_transfer(address(this), msg.sender, tokenAmount);
}
//Just in case, owner wants to transfer Ether from contract to owner address
function manualWithdrawEther()onlyOwner public{
uint256 amount=address(this).balance;
owner.transfer(amount);
}
//To air drop
function airDrop(address[] memory recipients,uint[] memory tokenAmount) public onlyOwner returns (bool) {
uint reciversLength = recipients.length;
require(reciversLength <= 150);
for(uint i = 0; i < reciversLength; i++)
{
//This will loop through all the recipients and send them the specified tokens
_transfer(owner, recipients[i], tokenAmount[i]);
}
return true;
}
uint public meltHoldSeconds = 172800; // 172800 seconds = 48 Hr. user can withdraw only after this period
//Event for eexternal token deposit and withdraw
event tokenDepositEv(address token, address user, uint amount, uint balance);
event tokenWithdrawEv(address token, address user, uint amount, uint balance);
function setWithdrawWaitingPeriod(uint valueInSeconds) onlyOwner public returns (bool)
{
meltHoldSeconds = valueInSeconds;
return true;
}
function newTokenTypeData(address token,bytes32 _tokenName, bytes8 _tokenSymbol, uint _decimalCount, uint _minFreezingValue, uint _rateFactor, uint _perDayFreezeRate) onlyOwner public returns (bool)
{
tokenTypeData memory temp;
temp.tokenName=_tokenName;
temp.tokenSymbol=_tokenSymbol;
temp.decimalCount=_decimalCount;
temp.minFreezingValue=_minFreezingValue;
temp.rateFactor=_rateFactor;
temp.perDayFreezeRate=_perDayFreezeRate;
temp.freezingAllowed=true;
tokenTypeDatas[token] = temp;
return true;
}
function freezingOnOffForTokenType(address token) onlyOwner public returns (bool)
{
if (tokenTypeDatas[token].freezingAllowed == false)
{
tokenTypeDatas[token].freezingAllowed = true;
}
else
{
tokenTypeDatas[token].freezingAllowed = false;
}
return true;
}
function setMinFreezingValue(address token, uint _minFreezingValue) onlyOwner public returns (bool)
{
tokenTypeDatas[token].minFreezingValue = _minFreezingValue;
return true;
}
function setRateFactor(address token, uint _rateFactor) onlyOwner public returns (bool)
{
tokenTypeDatas[token].rateFactor = _rateFactor;
return true;
}
function setPerDayFreezeRate(address token, uint _perDayFreezeRate) onlyOwner public returns (bool)
{
tokenTypeDatas[token].perDayFreezeRate = _perDayFreezeRate;
return true;
}
//To deposit token
function tokenDeposit(address token, uint amount) public
{
//remember to call Token(address).approve(this, amount) or this contract will not be able to do the transfer on your behalf.
require(token!=address(0),"Address(0) found, can't continue");
require(ERC20Essential(token).transferFrom(msg.sender, address(this), amount),"ERC20 'transferFrom' call failed");
tokens[token][msg.sender].totalValue = tokens[token][msg.sender].totalValue.add(amount);
emit tokenDepositEv(token, msg.sender, amount, tokens[token][msg.sender].totalValue);
}
//To withdraw token
function tokenWithdraw(address token, uint amount) public
{
require(!safeGuard,"System Paused By Admin");
require(token != address(this));
require(token!=address(0),"Address(0) found, can't continue");
if(now.sub(meltHoldSeconds) > tokens[token][msg.sender].freezeDate)
{
tokens[token][msg.sender].meltValue = 0;
}
require(tokens[token][msg.sender].totalValue.sub(tokens[token][msg.sender].freezeValue.add(tokens[token][msg.sender].meltValue)) >= amount,"Required amount is not free to withdraw");
tokens[token][msg.sender].totalValue = tokens[token][msg.sender].totalValue.sub(amount);
ERC20Essential(token).transfer(msg.sender, amount);
emit tokenWithdrawEv(token, msg.sender, amount, tokens[token][msg.sender].totalValue);
}
event releaseMyHypeEv(address token, uint amount);
//releasing after minumum waiting period to withdraw HYPE
function releaseMyHype(address token) public returns (bool)
{
require(!safeGuard,"System Paused By Admin");
require(token!=address(0),"Address(0) found, can't continue");
require(token == address(this),"Only pissible for HYPE ");
require(now.sub(meltHoldSeconds) > tokens[token][msg.sender].freezeDate,"wait period is not over");
uint amount = tokens[token][msg.sender].meltValue;
balanceOf[msg.sender] = balanceOf[msg.sender].add(amount);
tokens[token][msg.sender].totalValue = balanceOf[msg.sender].add(tokens[token][msg.sender].freezeValue );
tokens[token][msg.sender].meltValue = 0;
emit releaseMyHypeEv(token, amount);
return true;
}
event tokenBalanceFreezeEv(address token, uint amount, uint earning);
function tokenBalanceFreeze(address token, uint amount) public returns (bool)
{
require(!safeGuard,"System Paused By Admin");
require(tokenTypeDatas[token].freezingAllowed,"token type not allowed to freeze");
require(token!=address(0),"Address(0) found, can't continue");
address callingUser = msg.sender;
require(msg.sender != address(0),"Address(0) found, can't continue");
require(amount <= tokens[token][callingUser].totalValue.sub(tokens[token][callingUser].freezeValue.add(tokens[token][callingUser].meltValue)) && amount >= tokenTypeDatas[token].minFreezingValue, "less than required or less balance");
//before adding more freezing amount calculating earning on existing freeze amount and updating same in user ether balance
uint freezeValue = tokens[token][callingUser].freezeValue;
uint earnedValue;
if (freezeValue > 0)
{
earnedValue = getEarning(token,callingUser,freezeValue);
require(mintInternal(earnedValue),"minting failed");
tokens[address(this)][callingUser].meltValue = tokens[address(this)][callingUser].meltValue.add(earnedValue);
}
tokens[token][callingUser].freezeValue = tokens[token][callingUser].freezeValue.add(amount);
if (token==address(this))
{
balanceOf[callingUser] = balanceOf[callingUser].sub(amount);
}
tokens[token][callingUser].freezeDate = now;
emit tokenBalanceFreezeEv(token,amount,earnedValue);
return true;
}
function getEarning(address token,address user,uint amount) internal view returns(uint256)
{
uint effectiveAmount = calculatePercentage(amount,tokenTypeDatas[token].rateFactor);
uint interestAmount = calculatePercentage(effectiveAmount,tokenTypeDatas[token].perDayFreezeRate);
uint secondsPassed = (now - tokens[token][user].freezeDate);
uint daysPassed=0;
if (secondsPassed >= 86400) // if less than one day earning will be zero
{
daysPassed = secondsPassed.div(86400);
}
return daysPassed.mul(interestAmount);
}
event tokenBalanceMeltEv(address token, uint amount, uint earning);
function tokenBalanceMelt(address token, uint amount) public returns (bool)
{
require(!safeGuard,"System Paused By Admin");
require(token!=address(0),"Address(0) found, can't continue");
address callingUser = msg.sender;
require(msg.sender != address(0),"Address(0) found, can't continue");
require(amount <= tokens[token][callingUser].freezeValue && amount > 0, "less than required or less balance");
//before melting amount calculating earning on existing freeze amount and updating same in user ether balance
uint freezeValue = tokens[token][callingUser].freezeValue;
uint earnedValue = getEarning(token,callingUser,freezeValue);
require(mintInternal(earnedValue),"minting failed");
tokens[address(this)][callingUser].meltValue = tokens[address(this)][callingUser].meltValue.add(earnedValue);
tokens[token][callingUser].freezeValue = tokens[token][callingUser].freezeValue.sub(amount);
if (token==address(this))
{
tokens[token][callingUser].meltValue = tokens[token][callingUser].meltValue.add(amount);
}
tokens[token][callingUser].freezeDate = now;
emit tokenBalanceMeltEv(token,amount,earnedValue);
return true;
}
function viewMyReward(address token) public view returns(uint freezedValue, uint rewardValue)
{
address callingUser = msg.sender;
uint freezeValue = tokens[token][callingUser].freezeValue;
uint earnedValue = getEarning(token,callingUser,freezeValue);
return (freezeValue,earnedValue);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"maximumSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"token","type":"address"}],"name":"viewMyReward","outputs":[{"name":"freezedValue","type":"uint256"},{"name":"rewardValue","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"tokenTypeDatas","outputs":[{"name":"tokenName","type":"bytes32"},{"name":"tokenSymbol","type":"bytes8"},{"name":"decimalCount","type":"uint256"},{"name":"minFreezingValue","type":"uint256"},{"name":"rateFactor","type":"uint256"},{"name":"perDayFreezeRate","type":"uint256"},{"name":"freezingAllowed","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"tokenDeposit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"userAddress","type":"address"}],"name":"whitelistUser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"},{"name":"_tokenName","type":"bytes32"},{"name":"_tokenSymbol","type":"bytes8"},{"name":"_decimalCount","type":"uint256"},{"name":"_minFreezingValue","type":"uint256"},{"name":"_rateFactor","type":"uint256"},{"name":"_perDayFreezeRate","type":"uint256"}],"name":"newTokenTypeData","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"tokens","outputs":[{"name":"totalValue","type":"uint256"},{"name":"freezeValue","type":"uint256"},{"name":"freezeDate","type":"uint256"},{"name":"meltValue","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"manualWithdrawEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"manualWithdrawToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"recipients","type":"address[]"},{"name":"tokenAmount","type":"uint256[]"}],"name":"airDrop","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"}],"name":"releaseMyHype","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"safeGuard","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"target","type":"address"},{"name":"mintedAmount","type":"uint256"}],"name":"mintToken","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"}],"name":"burnFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"}],"name":"freezingOnOffForTokenType","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"changeWhitelistingStatus","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"bytes8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"frozenAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"whitelistingStatus","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"tokenWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalMintAfterInitial","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"meltHoldSeconds","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"changesafeGuardStatus","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelisted","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"valueInSeconds","type":"uint256"}],"name":"setWithdrawWaitingPeriod","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"burningRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"target","type":"address"},{"name":"freeze","type":"bool"}],"name":"freezeAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"},{"name":"_perDayFreezeRate","type":"uint256"}],"name":"setPerDayFreezeRate","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"},{"name":"_minFreezingValue","type":"uint256"}],"name":"setMinFreezingValue","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_burningRate","type":"uint256"}],"name":"setBurningRate","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"tokenBalanceMelt","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"},{"name":"_rateFactor","type":"uint256"}],"name":"setRateFactor","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"tokenBalanceFreeze","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"user","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"balance","type":"uint256"}],"name":"tokenDepositEv","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"user","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"balance","type":"uint256"}],"name":"tokenWithdrawEv","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"releaseMyHypeEv","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"earning","type":"uint256"}],"name":"tokenBalanceFreezeEv","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"earning","type":"uint256"}],"name":"tokenBalanceMeltEv","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"target","type":"address"},{"indexed":false,"name":"frozen","type":"bool"}],"name":"FrozenFunds","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferredEv","type":"event"}]Contract Creation Code
608060409081526101f4600755600d805460ff191690556202a300600f5560008054336001600160a01b0319909116811782556001805460ff60a01b191690556003805460ff60401b1916681200000000000000001781556a295be96e6406697200000060048190556a52b7d2dcc80cd2e4000000600655918352600960209081528484208390553084526008815284842084546001600160a01b03168552905292909120557f4859504520546f6b656e0000000000000000000000000000000000000000000060025580546001600160401b0319166748595045000000001790556100e96101e4565b6002805482526003805460c081811b6001600160c01b03191660208087019182526801000000000000000090930460ff16604080880191825260646060890181815261271060808b0190815260a08b019283526001878c01818152306000908152600c8b528681208e518155985192890180546001600160401b03191693909a1c92909217909855945199860199909955519684019690965595516004808401919091559451600583015591516006909101805460ff191691151591909117905591548351908152925133937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92908290030190a350610220565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b612d408061022f6000396000f3fe608060405234801561001057600080fd5b506004361061028a5760003560e01c80637ec69c501161015c578063d936547e116100ce578063ee3f39c211610087578063ee3f39c2146108fe578063eee3ea471461092a578063efea921f14610947578063f04fd98c14610973578063f2fde38b1461099f578063ff4496c0146109c55761028a565b8063d936547e1461082b578063dd62ed3e14610851578063e56ccc3b1461087f578063e64c3e921461089c578063e724529c146108a4578063edd9a46b146108d25761028a565b8063bd694af211610120578063bd694af2146107d7578063be50af2e146107df578063c01830a11461080b578063c3e3f8fd14610813578063d085f6ea1461081b578063d4ee1d90146108235761028a565b80637ec69c50146107345780638da5cb5b1461073c57806395d89b4114610760578063a9059cbb14610785578063b414d4b6146107b15761028a565b80634b2210841161020057806370a08231116101b957806370a082311461068057806379279fd1146106a657806379ba5097146106ae57806379c65068146106b657806379cc6790146106e25780637c022bb41461070e5761028a565b80634b22108414610466578063508493bc146104ba5780635954c8c51461050e5780635d22a3521461051657806365216a41146105335780636d7525d91461065a5761028a565b806323784ea71161025257806323784ea71461033857806323b872dd146103a1578063313ce567146103d757806342966c68146103f5578063443f41d5146104125780634a4c560d146104405761028a565b80630480e58b1461028f57806306fdde03146102a9578063095ea7b3146102b15780630f2e92d3146102f157806318160ddd14610330575b600080fd5b6102976109f1565b60408051918252519081900360200190f35b6102976109f7565b6102dd600480360360408110156102c757600080fd5b506001600160a01b0381351690602001356109fd565b604080519115158252519081900360200190f35b6103176004803603602081101561030757600080fd5b50356001600160a01b0316610a47565b6040805192835260208301919091528051918290030190f35b610297610a8a565b61035e6004803603602081101561034e57600080fd5b50356001600160a01b0316610a90565b604080519788526001600160c01b03199096166020880152868601949094526060860192909252608085015260a0840152151560c0830152519081900360e00190f35b6102dd600480360360608110156103b757600080fd5b506001600160a01b03813581169160208101359091169060400135610ad5565b6103df610bd1565b6040805160ff9092168252519081900360200190f35b6102dd6004803603602081101561040b57600080fd5b5035610be6565b61043e6004803603604081101561042857600080fd5b506001600160a01b038135169060200135610c11565b005b61043e6004803603602081101561045657600080fd5b50356001600160a01b0316610dd3565b6102dd600480360360e081101561047c57600080fd5b506001600160a01b03813516906020810135906001600160c01b03196040820135169060608101359060808101359060a08101359060c00135610e35565b6104e8600480360360408110156104d057600080fd5b506001600160a01b0381358116916020013516610f01565b604080519485526020850193909352838301919091526060830152519081900360800190f35b61043e610f33565b61043e6004803603602081101561052c57600080fd5b5035610f8a565b6102dd6004803603604081101561054957600080fd5b81019060208101813564010000000081111561056457600080fd5b82018360208201111561057657600080fd5b8035906020019184602083028401116401000000008311171561059857600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156105e857600080fd5b8201836020820111156105fa57600080fd5b8035906020019184602083028401116401000000008311171561061c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610fc1945050505050565b6102dd6004803603602081101561067057600080fd5b50356001600160a01b0316611047565b6102976004803603602081101561069657600080fd5b50356001600160a01b03166112cc565b6102dd6112de565b61043e6112ee565b6102dd600480360360408110156106cc57600080fd5b506001600160a01b038135169060200135611369565b6102dd600480360360408110156106f857600080fd5b506001600160a01b03813516906020013561147d565b6102dd6004803603602081101561072457600080fd5b50356001600160a01b031661149f565b61043e611531565b610744611597565b604080516001600160a01b039092168252519081900360200190f35b6107686115a6565b604080516001600160c01b03199092168252519081900360200190f35b6102dd6004803603604081101561079b57600080fd5b506001600160a01b0381351690602001356115af565b6102dd600480360360208110156107c757600080fd5b50356001600160a01b03166115bc565b6102dd6115d1565b61043e600480360360408110156107f557600080fd5b506001600160a01b0381351690602001356115da565b6102976118dc565b6102976118e2565b61043e6118e8565b610744611937565b6102dd6004803603602081101561084157600080fd5b50356001600160a01b0316611946565b6102976004803603604081101561086757600080fd5b506001600160a01b038135811691602001351661195b565b6102dd6004803603602081101561089557600080fd5b5035611978565b610297611999565b61043e600480360360408110156108ba57600080fd5b506001600160a01b038135169060200135151561199f565b6102dd600480360360408110156108e857600080fd5b506001600160a01b038135169060200135611a1a565b6102dd6004803603604081101561091457600080fd5b506001600160a01b038135169060200135611a56565b6102dd6004803603602081101561094057600080fd5b5035611a92565b6102dd6004803603604081101561095d57600080fd5b506001600160a01b038135169060200135611ab3565b6102dd6004803603604081101561098957600080fd5b506001600160a01b038135169060200135611e2a565b61043e600480360360208110156109b557600080fd5b50356001600160a01b0316611e66565b6102dd600480360360408110156109db57600080fd5b506001600160a01b038135169060200135611e9f565b60065481565b60025481565b600154600090600160a01b900460ff1615610a1757600080fd5b50336000908152600a602090815260408083206001600160a01b0386168452909152902081905560015b92915050565b6001600160a01b038116600090815260086020908152604080832033808552925282206001015482919082610a7d8684846122db565b9194509092505050915091565b60045481565b600c602052600090815260409020805460018201546002830154600384015460048501546005860154600690960154949560c09490941b949293919290919060ff1687565b600154600090600160a01b900460ff1615610aef57600080fd5b6001600160a01b038416610b345760405162461bcd60e51b8152600401808060200182810382526023815260200180612c5f6023913960400191505060405180910390fd5b6001600160a01b0384166000908152600a60209081526040808320338452909152902054821115610b6457600080fd5b6001600160a01b0384166000908152600a60209081526040808320338452909152902054610b98908363ffffffff61239f16565b6001600160a01b0385166000908152600a60209081526040808320338452909152902055610bc78484846123fc565b5060019392505050565b60035468010000000000000000900460ff1681565b600080546001600160a01b03163314610bfe57600080fd5b610c08338361280a565b50600192915050565b6001600160a01b038216610c5a576040805162461bcd60e51b81526020600482018190526024820152600080516020612ca9833981519152604482015290519081900360640190fd5b604080516323b872dd60e01b81523360048201523060248201526044810183905290516001600160a01b038416916323b872dd9160648083019260209291908290030181600087803b158015610caf57600080fd5b505af1158015610cc3573d6000803e3d6000fd5b505050506040513d6020811015610cd957600080fd5b5051610d2c576040805162461bcd60e51b815260206004820181905260248201527f455243323020277472616e7366657246726f6d272063616c6c206661696c6564604482015290519081900360640190fd5b6001600160a01b0382166000908152600860209081526040808320338452909152902054610d60908263ffffffff612a8a16565b6001600160a01b03831660008181526008602090815260408083203380855290835292819020859055805193845290830191909152818101849052606082019290925290517fe57520e183743e5e5fb8e2304562449ccfe980ba4144b066aff77bcd98b678c19181900360800190a15050565b6000546001600160a01b03163314610dea57600080fd5b600d5460ff161515600114610dfe57600080fd5b6001600160a01b038116610e1157600080fd5b6001600160a01b03166000908152600e60205260409020805460ff19166001179055565b600080546001600160a01b03163314610e4d57600080fd5b610e55612c22565b968752506001600160c01b03199490941660208087019182526040808801958652606088019485526080880193845260a08801968752600160c0808a018281526001600160a01b039b909b166000908152600c90945291909220975188559151878201805467ffffffffffffffff19169190931c1790915592516002860155905160038501555160048401559051600583015591516006909101805460ff191691151591909117905590565b600860209081526000928352604080842090915290825290208054600182015460028301546003909301549192909184565b6000546001600160a01b03163314610f4a57600080fd5b600080546040513031926001600160a01b03909216916108fc841502918491818181858888f19350505050158015610f86573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610fa157600080fd5b6000610fb482606463ffffffff612aeb16565b9050610f863033836123fc565b600080546001600160a01b03163314610fd957600080fd5b82516096811115610fe957600080fd5b60005b8181101561103c576000548551611034916001600160a01b03169087908490811061101357fe5b602002602001015186848151811061102757fe5b60200260200101516123fc565b600101610fec565b506001949350505050565b600154600090600160a01b900460ff16156110a2576040805162461bcd60e51b815260206004820152601660248201527529bcb9ba32b6902830bab9b2b210213c9020b236b4b760511b604482015290519081900360640190fd5b6001600160a01b0382166110eb576040805162461bcd60e51b81526020600482018190526024820152600080516020612ca9833981519152604482015290519081900360640190fd5b6001600160a01b0382163014611148576040805162461bcd60e51b815260206004820152601760248201527f4f6e6c79207069737369626c6520666f72204859504520000000000000000000604482015290519081900360640190fd5b6001600160a01b0382166000908152600860209081526040808320338452909152902060020154600f5461118390429063ffffffff61239f16565b116111d5576040805162461bcd60e51b815260206004820152601760248201527f7761697420706572696f64206973206e6f74206f766572000000000000000000604482015290519081900360640190fd5b6001600160a01b0382166000908152600860209081526040808320338452825280832060030154600990925290912054611215908263ffffffff612a8a16565b3360008181526009602081815260408084208690556001600160a01b0389168452600882528084209484529381529290912060010154915261125d919063ffffffff612a8a16565b6001600160a01b038416600081815260086020908152604080832033845282528083209485556003909401919091558251918252810183905281517f0fa859234b3c35d2136476e097ebfb39666c05648f72caece35e93d5d985184d929181900390910190a150600192915050565b60096020526000908152604090205481565b600154600160a01b900460ff1681565b6001546001600160a01b0316331461130557600080fd5b600154600080546040516001600160a01b0393841693909116917f7b9f4dbf19021732cc1236215fb8368569be3a9c57a729f6c306471afc35505191a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b600080546001600160a01b0316331461138157600080fd5b6001600160a01b0383166000908152600960205260409020546113aa908363ffffffff612a8a16565b6001600160a01b038416600081815260096020908152604080832094909455308252600881528382209282529190915220546113ec908363ffffffff612a8a16565b3060009081526008602090815260408083206001600160a01b0388168452909152902055600454611423908363ffffffff612a8a16565b600455600554611439908363ffffffff612a8a16565b60055560408051838152905130916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600192915050565b600080546001600160a01b0316331461149557600080fd5b610bc7838361280a565b600080546001600160a01b031633146114b757600080fd5b6001600160a01b0382166000908152600c602052604090206006015460ff16611505576001600160a01b0382166000908152600c60205260409020600601805460ff19166001179055611529565b6001600160a01b0382166000908152600c60205260409020600601805460ff191690555b506001919050565b6000546001600160a01b0316331461154857600080fd5b600d5460ff1661158a57600d8054600160ff199182168117909255600080546001600160a01b03168152600e6020526040902080549091169091179055611595565b600d805460ff191690555b565b6000546001600160a01b031681565b60035460c01b81565b6000610c083384846123fc565b600b6020526000908152604090205460ff1681565b600d5460ff1681565b600154600160a01b900460ff1615611632576040805162461bcd60e51b815260206004820152601660248201527529bcb9ba32b6902830bab9b2b210213c9020b236b4b760511b604482015290519081900360640190fd5b6001600160a01b03821630141561164857600080fd5b6001600160a01b038216611691576040805162461bcd60e51b81526020600482018190526024820152600080516020612ca9833981519152604482015290519081900360640190fd5b6001600160a01b0382166000908152600860209081526040808320338452909152902060020154600f546116cc90429063ffffffff61239f16565b11156116fa576001600160a01b03821660009081526008602090815260408083203384529091528120600301555b6001600160a01b03821660009081526008602090815260408083203384529091529020600381015460019091015482916117679161173791612a8a565b6001600160a01b03851660009081526008602090815260408083203384529091529020549063ffffffff61239f16565b10156117a45760405162461bcd60e51b8152600401808060200182810382526027815260200180612c826027913960400191505060405180910390fd5b6001600160a01b03821660009081526008602090815260408083203384529091529020546117d8908263ffffffff61239f16565b6001600160a01b03831660008181526008602090815260408083203380855290835281842095909555805163a9059cbb60e01b815260048101959095526024850186905251929363a9059cbb9360448083019491928390030190829087803b15801561184357600080fd5b505af1158015611857573d6000803e3d6000fd5b505050506040513d602081101561186d57600080fd5b50506001600160a01b03821660008181526008602090815260408083203380855290835292819020548151948552918401929092528282018490526060830152517f544b39701afd1119e68c6e95a6107ec843364e9fbaae5e99637a368cc82adfc89181900360800190a15050565b60055481565b600f5481565b6000546001600160a01b031633146118ff57600080fd5b600154600160a01b900460ff16611928576001805460ff60a01b1916600160a01b179055611595565b6001805460ff60a01b19169055565b6001546001600160a01b031681565b600e6020526000908152604090205460ff1681565b600a60209081526000928352604080842090915290825290205481565b600080546001600160a01b0316331461199057600080fd5b50600f55600190565b60075481565b6000546001600160a01b031633146119b657600080fd5b6001600160a01b0382166000818152600b6020908152604091829020805460ff191685151590811790915582519384529083015280517f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a59281900390910190a15050565b600080546001600160a01b03163314611a3257600080fd5b506001600160a01b03919091166000908152600c6020526040902060050155600190565b600080546001600160a01b03163314611a6e57600080fd5b506001600160a01b03919091166000908152600c6020526040902060030155600190565b600080546001600160a01b03163314611aaa57600080fd5b50600755600190565b600154600090600160a01b900460ff1615611b0e576040805162461bcd60e51b815260206004820152601660248201527529bcb9ba32b6902830bab9b2b210213c9020b236b4b760511b604482015290519081900360640190fd5b6001600160a01b038316611b57576040805162461bcd60e51b81526020600482018190526024820152600080516020612ca9833981519152604482015290519081900360640190fd5b3380611b98576040805162461bcd60e51b81526020600482018190526024820152600080516020612ca9833981519152604482015290519081900360640190fd5b6001600160a01b038085166000908152600860209081526040808320938516835292905220600101548311801590611bd05750600083115b611c0b5760405162461bcd60e51b8152600401808060200182810382526022815260200180612cea6022913960400191505060405180910390fd5b6001600160a01b03808516600090815260086020908152604080832093851683529290529081206001015490611c428684846122db565b9050611c4d81612b44565b611c8f576040805162461bcd60e51b815260206004820152600e60248201526d1b5a5b9d1a5b99c819985a5b195960921b604482015290519081900360640190fd5b3060009081526008602090815260408083206001600160a01b0387168452909152902060030154611cc6908263ffffffff612a8a16565b3060009081526008602081815260408084206001600160a01b0389811680875291845282862060030196909655948b168452918152818320938352929092522060010154611d1a908663ffffffff61239f16565b6001600160a01b03808816600081815260086020908152604080832094891683529390529190912060010191909155301415611db3576001600160a01b03808716600090815260086020908152604080832093871683529290522060030154611d89908663ffffffff612a8a16565b6001600160a01b038088166000908152600860209081526040808320938816835292905220600301555b6001600160a01b038087166000818152600860209081526040808320948816835293815290839020426002909101558251918252810187905280820183905290517f05ed4f81bc443fc929332d09ad813fcbd31f52653b5e27569abd927f851836d39181900360600190a150600195945050505050565b600080546001600160a01b03163314611e4257600080fd5b506001600160a01b03919091166000908152600c6020526040902060040155600190565b6000546001600160a01b03163314611e7d57600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600154600090600160a01b900460ff1615611efa576040805162461bcd60e51b815260206004820152601660248201527529bcb9ba32b6902830bab9b2b210213c9020b236b4b760511b604482015290519081900360640190fd5b6001600160a01b0383166000908152600c602052604090206006015460ff16611f6a576040805162461bcd60e51b815260206004820181905260248201527f746f6b656e2074797065206e6f7420616c6c6f77656420746f20667265657a65604482015290519081900360640190fd5b6001600160a01b038316611fb3576040805162461bcd60e51b81526020600482018190526024820152600080516020612ca9833981519152604482015290519081900360640190fd5b3380611ff4576040805162461bcd60e51b81526020600482018190526024820152600080516020612ca9833981519152604482015290519081900360640190fd5b6001600160a01b0384811660009081526008602090815260408083209385168352929052206003810154600190910154612064916120329190612a8a565b6001600160a01b038087166000908152600860209081526040808320938716835292905220549063ffffffff61239f16565b831115801561208e57506001600160a01b0384166000908152600c60205260409020600301548310155b6120c95760405162461bcd60e51b8152600401808060200182810382526022815260200180612cea6022913960400191505060405180910390fd5b6001600160a01b0380851660009081526008602090815260408083209385168352929052908120600101549081156121b2576121068684846122db565b905061211181612b44565b612153576040805162461bcd60e51b815260206004820152600e60248201526d1b5a5b9d1a5b99c819985a5b195960921b604482015290519081900360640190fd5b3060009081526008602090815260408083206001600160a01b038716845290915290206003015461218a908263ffffffff612a8a16565b3060009081526008602090815260408083206001600160a01b03881684529091529020600301555b6001600160a01b038087166000908152600860209081526040808320938716835292905220600101546121eb908663ffffffff612a8a16565b6001600160a01b03808816600081815260086020908152604080832094891683529390529190912060010191909155301415612264576001600160a01b03831660009081526009602052604090205461224a908663ffffffff61239f16565b6001600160a01b0384166000908152600960205260409020555b6001600160a01b038087166000818152600860209081526040808320948816835293815290839020426002909101558251918252810187905280820183905290517f72cb02c58250b8f066d50b43c9a45a6d81b4ac7435f56ae25ed9f7e0e2f8ecfc9181900360600190a150600195945050505050565b6001600160a01b0383166000908152600c60205260408120600401548190612304908490612b7b565b6001600160a01b0386166000908152600c60205260408120600501549192509061232f908390612b7b565b6001600160a01b038088166000908152600860209081526040808320938a1683529290529081206002015491925042919091039062015180821061238357612380826201518063ffffffff612bb816565b90505b612393818463ffffffff612aeb16565b98975050505050505050565b6000828211156123f6576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600154600160a01b900460ff161561244e576040805162461bcd60e51b815260206004820152601060248201526f7361666547756172642041637469766560801b604482015290519081900360640190fd5b6001600160a01b03821661249b576040805162461bcd60e51b815260206004820152600f60248201526e0746f2069732061646472657373203608c1b604482015290519081900360640190fd5b6001600160a01b0383166000908152600960205260409020548111156124fd576040805162461bcd60e51b81526020600482015260126024820152716e6f2062616c616e636520696e2066726f6d60701b604482015290519081900360640190fd5b6001600160a01b038216600090815260096020526040902054612526818363ffffffff612a8a16565b101561256c576040805162461bcd60e51b815260206004820152601060248201526f6f766572666c6f772062616c616e636560801b604482015290519081900360640190fd5b6001600160a01b0383166000908152600b602052604090205460ff16156125d0576040805162461bcd60e51b8152602060048201526013602482015272333937b69030b1b1b7bab73a10333937bd32b760691b604482015290519081900360640190fd5b6001600160a01b0382166000908152600b602052604090205460ff1615612632576040805162461bcd60e51b81526020600482015260116024820152703a379030b1b1b7bab73a10333937bd32b760791b604482015290519081900360640190fd5b6001600160a01b03831660009081526009602052604090205461265b908263ffffffff61239f16565b6001600160a01b0384166000818152600960209081526040808320949094553082526008815283822092825291909152205461269d908263ffffffff61239f16565b3060009081526008602090815260408083206001600160a01b0388811685529083528184209490945592851682526009905220546126e1908263ffffffff612a8a16565b6001600160a01b03831660008181526009602090815260408083209490945530825260088152838220928252919091522054612723908263ffffffff612a8a16565b3060009081526008602090815260408083206001600160a01b0387811685529252822092909255805490911633148061275b57503330145b6127b95761276b82600754612b7b565b9050612777838261280a565b6127b9576040805162461bcd60e51b815260206004820152600e60248201526d189d5c9b9a5b99c819985a5b195960921b604482015290519081900360640190fd5b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a350505050565b600154600090600160a01b900460ff161561285f576040805162461bcd60e51b815260206004820152601060248201526f7361666547756172642041637469766560801b604482015290519081900360640190fd5b6001600160a01b03831661287257600080fd5b6001600160a01b03831660009081526009602052604090205482111561289757600080fd5b6001600160a01b0383166000908152600b602052604090205460ff16156128f9576040805162461bcd60e51b81526020600482015260116024820152703a379030b1b1b7bab73a10333937bd32b760791b604482015290519081900360640190fd5b6001600160a01b038316600090815260096020526040902054612922908363ffffffff61239f16565b6001600160a01b03841660008181526009602090815260408083209490945530825260088152838220928252919091522054612964908363ffffffff61239f16565b3060009081526008602090815260408083206001600160a01b038816845282528220929092558052600990527fec8156718a8372b1db44bb411437d0870f3e3790d4a08526d024ce1b0b668f6b546129c2908363ffffffff612a8a16565b7fec8156718a8372b1db44bb411437d0870f3e3790d4a08526d024ce1b0b668f6b55306000908152600860209081526040808320838052909152902054612a0f908363ffffffff612a8a16565b306000908152600860209081526040808320838052909152902055600454612a3d908363ffffffff61239f16565b6004556040805183815290516000916001600160a01b038616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600192915050565b600082820183811015612ae4576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600082612afa57506000610a41565b82820282848281612b0757fe5b0414612ae45760405162461bcd60e51b8152600401808060200182810382526021815260200180612cc96021913960400191505060405180910390fd5b600454600090612b5a908363ffffffff612a8a16565b600455600554612b70908363ffffffff612a8a16565b600555506001919050565b600061271080831115612b8d57600080fd5b6000612baf82612ba3878763ffffffff612aeb16565b9063ffffffff612bb816565b95945050505050565b6000808211612c0e576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481612c1957fe5b04949350505050565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c08101919091529056fe7472616e736665722066726f6d206164646572737328302920697320696e76616c6964526571756972656420616d6f756e74206973206e6f74206672656520746f2077697468647261774164647265737328302920666f756e642c2063616e277420636f6e74696e7565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f776c657373207468616e207265717569726564206f72206c6573732062616c616e6365a265627a7a7230582055853f24039b1ded6754d632b64fdf8c6b70c28cf4b1871f527687a98130d4d964736f6c634300050a0032
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061028a5760003560e01c80637ec69c501161015c578063d936547e116100ce578063ee3f39c211610087578063ee3f39c2146108fe578063eee3ea471461092a578063efea921f14610947578063f04fd98c14610973578063f2fde38b1461099f578063ff4496c0146109c55761028a565b8063d936547e1461082b578063dd62ed3e14610851578063e56ccc3b1461087f578063e64c3e921461089c578063e724529c146108a4578063edd9a46b146108d25761028a565b8063bd694af211610120578063bd694af2146107d7578063be50af2e146107df578063c01830a11461080b578063c3e3f8fd14610813578063d085f6ea1461081b578063d4ee1d90146108235761028a565b80637ec69c50146107345780638da5cb5b1461073c57806395d89b4114610760578063a9059cbb14610785578063b414d4b6146107b15761028a565b80634b2210841161020057806370a08231116101b957806370a082311461068057806379279fd1146106a657806379ba5097146106ae57806379c65068146106b657806379cc6790146106e25780637c022bb41461070e5761028a565b80634b22108414610466578063508493bc146104ba5780635954c8c51461050e5780635d22a3521461051657806365216a41146105335780636d7525d91461065a5761028a565b806323784ea71161025257806323784ea71461033857806323b872dd146103a1578063313ce567146103d757806342966c68146103f5578063443f41d5146104125780634a4c560d146104405761028a565b80630480e58b1461028f57806306fdde03146102a9578063095ea7b3146102b15780630f2e92d3146102f157806318160ddd14610330575b600080fd5b6102976109f1565b60408051918252519081900360200190f35b6102976109f7565b6102dd600480360360408110156102c757600080fd5b506001600160a01b0381351690602001356109fd565b604080519115158252519081900360200190f35b6103176004803603602081101561030757600080fd5b50356001600160a01b0316610a47565b6040805192835260208301919091528051918290030190f35b610297610a8a565b61035e6004803603602081101561034e57600080fd5b50356001600160a01b0316610a90565b604080519788526001600160c01b03199096166020880152868601949094526060860192909252608085015260a0840152151560c0830152519081900360e00190f35b6102dd600480360360608110156103b757600080fd5b506001600160a01b03813581169160208101359091169060400135610ad5565b6103df610bd1565b6040805160ff9092168252519081900360200190f35b6102dd6004803603602081101561040b57600080fd5b5035610be6565b61043e6004803603604081101561042857600080fd5b506001600160a01b038135169060200135610c11565b005b61043e6004803603602081101561045657600080fd5b50356001600160a01b0316610dd3565b6102dd600480360360e081101561047c57600080fd5b506001600160a01b03813516906020810135906001600160c01b03196040820135169060608101359060808101359060a08101359060c00135610e35565b6104e8600480360360408110156104d057600080fd5b506001600160a01b0381358116916020013516610f01565b604080519485526020850193909352838301919091526060830152519081900360800190f35b61043e610f33565b61043e6004803603602081101561052c57600080fd5b5035610f8a565b6102dd6004803603604081101561054957600080fd5b81019060208101813564010000000081111561056457600080fd5b82018360208201111561057657600080fd5b8035906020019184602083028401116401000000008311171561059857600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156105e857600080fd5b8201836020820111156105fa57600080fd5b8035906020019184602083028401116401000000008311171561061c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610fc1945050505050565b6102dd6004803603602081101561067057600080fd5b50356001600160a01b0316611047565b6102976004803603602081101561069657600080fd5b50356001600160a01b03166112cc565b6102dd6112de565b61043e6112ee565b6102dd600480360360408110156106cc57600080fd5b506001600160a01b038135169060200135611369565b6102dd600480360360408110156106f857600080fd5b506001600160a01b03813516906020013561147d565b6102dd6004803603602081101561072457600080fd5b50356001600160a01b031661149f565b61043e611531565b610744611597565b604080516001600160a01b039092168252519081900360200190f35b6107686115a6565b604080516001600160c01b03199092168252519081900360200190f35b6102dd6004803603604081101561079b57600080fd5b506001600160a01b0381351690602001356115af565b6102dd600480360360208110156107c757600080fd5b50356001600160a01b03166115bc565b6102dd6115d1565b61043e600480360360408110156107f557600080fd5b506001600160a01b0381351690602001356115da565b6102976118dc565b6102976118e2565b61043e6118e8565b610744611937565b6102dd6004803603602081101561084157600080fd5b50356001600160a01b0316611946565b6102976004803603604081101561086757600080fd5b506001600160a01b038135811691602001351661195b565b6102dd6004803603602081101561089557600080fd5b5035611978565b610297611999565b61043e600480360360408110156108ba57600080fd5b506001600160a01b038135169060200135151561199f565b6102dd600480360360408110156108e857600080fd5b506001600160a01b038135169060200135611a1a565b6102dd6004803603604081101561091457600080fd5b506001600160a01b038135169060200135611a56565b6102dd6004803603602081101561094057600080fd5b5035611a92565b6102dd6004803603604081101561095d57600080fd5b506001600160a01b038135169060200135611ab3565b6102dd6004803603604081101561098957600080fd5b506001600160a01b038135169060200135611e2a565b61043e600480360360208110156109b557600080fd5b50356001600160a01b0316611e66565b6102dd600480360360408110156109db57600080fd5b506001600160a01b038135169060200135611e9f565b60065481565b60025481565b600154600090600160a01b900460ff1615610a1757600080fd5b50336000908152600a602090815260408083206001600160a01b0386168452909152902081905560015b92915050565b6001600160a01b038116600090815260086020908152604080832033808552925282206001015482919082610a7d8684846122db565b9194509092505050915091565b60045481565b600c602052600090815260409020805460018201546002830154600384015460048501546005860154600690960154949560c09490941b949293919290919060ff1687565b600154600090600160a01b900460ff1615610aef57600080fd5b6001600160a01b038416610b345760405162461bcd60e51b8152600401808060200182810382526023815260200180612c5f6023913960400191505060405180910390fd5b6001600160a01b0384166000908152600a60209081526040808320338452909152902054821115610b6457600080fd5b6001600160a01b0384166000908152600a60209081526040808320338452909152902054610b98908363ffffffff61239f16565b6001600160a01b0385166000908152600a60209081526040808320338452909152902055610bc78484846123fc565b5060019392505050565b60035468010000000000000000900460ff1681565b600080546001600160a01b03163314610bfe57600080fd5b610c08338361280a565b50600192915050565b6001600160a01b038216610c5a576040805162461bcd60e51b81526020600482018190526024820152600080516020612ca9833981519152604482015290519081900360640190fd5b604080516323b872dd60e01b81523360048201523060248201526044810183905290516001600160a01b038416916323b872dd9160648083019260209291908290030181600087803b158015610caf57600080fd5b505af1158015610cc3573d6000803e3d6000fd5b505050506040513d6020811015610cd957600080fd5b5051610d2c576040805162461bcd60e51b815260206004820181905260248201527f455243323020277472616e7366657246726f6d272063616c6c206661696c6564604482015290519081900360640190fd5b6001600160a01b0382166000908152600860209081526040808320338452909152902054610d60908263ffffffff612a8a16565b6001600160a01b03831660008181526008602090815260408083203380855290835292819020859055805193845290830191909152818101849052606082019290925290517fe57520e183743e5e5fb8e2304562449ccfe980ba4144b066aff77bcd98b678c19181900360800190a15050565b6000546001600160a01b03163314610dea57600080fd5b600d5460ff161515600114610dfe57600080fd5b6001600160a01b038116610e1157600080fd5b6001600160a01b03166000908152600e60205260409020805460ff19166001179055565b600080546001600160a01b03163314610e4d57600080fd5b610e55612c22565b968752506001600160c01b03199490941660208087019182526040808801958652606088019485526080880193845260a08801968752600160c0808a018281526001600160a01b039b909b166000908152600c90945291909220975188559151878201805467ffffffffffffffff19169190931c1790915592516002860155905160038501555160048401559051600583015591516006909101805460ff191691151591909117905590565b600860209081526000928352604080842090915290825290208054600182015460028301546003909301549192909184565b6000546001600160a01b03163314610f4a57600080fd5b600080546040513031926001600160a01b03909216916108fc841502918491818181858888f19350505050158015610f86573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610fa157600080fd5b6000610fb482606463ffffffff612aeb16565b9050610f863033836123fc565b600080546001600160a01b03163314610fd957600080fd5b82516096811115610fe957600080fd5b60005b8181101561103c576000548551611034916001600160a01b03169087908490811061101357fe5b602002602001015186848151811061102757fe5b60200260200101516123fc565b600101610fec565b506001949350505050565b600154600090600160a01b900460ff16156110a2576040805162461bcd60e51b815260206004820152601660248201527529bcb9ba32b6902830bab9b2b210213c9020b236b4b760511b604482015290519081900360640190fd5b6001600160a01b0382166110eb576040805162461bcd60e51b81526020600482018190526024820152600080516020612ca9833981519152604482015290519081900360640190fd5b6001600160a01b0382163014611148576040805162461bcd60e51b815260206004820152601760248201527f4f6e6c79207069737369626c6520666f72204859504520000000000000000000604482015290519081900360640190fd5b6001600160a01b0382166000908152600860209081526040808320338452909152902060020154600f5461118390429063ffffffff61239f16565b116111d5576040805162461bcd60e51b815260206004820152601760248201527f7761697420706572696f64206973206e6f74206f766572000000000000000000604482015290519081900360640190fd5b6001600160a01b0382166000908152600860209081526040808320338452825280832060030154600990925290912054611215908263ffffffff612a8a16565b3360008181526009602081815260408084208690556001600160a01b0389168452600882528084209484529381529290912060010154915261125d919063ffffffff612a8a16565b6001600160a01b038416600081815260086020908152604080832033845282528083209485556003909401919091558251918252810183905281517f0fa859234b3c35d2136476e097ebfb39666c05648f72caece35e93d5d985184d929181900390910190a150600192915050565b60096020526000908152604090205481565b600154600160a01b900460ff1681565b6001546001600160a01b0316331461130557600080fd5b600154600080546040516001600160a01b0393841693909116917f7b9f4dbf19021732cc1236215fb8368569be3a9c57a729f6c306471afc35505191a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b600080546001600160a01b0316331461138157600080fd5b6001600160a01b0383166000908152600960205260409020546113aa908363ffffffff612a8a16565b6001600160a01b038416600081815260096020908152604080832094909455308252600881528382209282529190915220546113ec908363ffffffff612a8a16565b3060009081526008602090815260408083206001600160a01b0388168452909152902055600454611423908363ffffffff612a8a16565b600455600554611439908363ffffffff612a8a16565b60055560408051838152905130916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600192915050565b600080546001600160a01b0316331461149557600080fd5b610bc7838361280a565b600080546001600160a01b031633146114b757600080fd5b6001600160a01b0382166000908152600c602052604090206006015460ff16611505576001600160a01b0382166000908152600c60205260409020600601805460ff19166001179055611529565b6001600160a01b0382166000908152600c60205260409020600601805460ff191690555b506001919050565b6000546001600160a01b0316331461154857600080fd5b600d5460ff1661158a57600d8054600160ff199182168117909255600080546001600160a01b03168152600e6020526040902080549091169091179055611595565b600d805460ff191690555b565b6000546001600160a01b031681565b60035460c01b81565b6000610c083384846123fc565b600b6020526000908152604090205460ff1681565b600d5460ff1681565b600154600160a01b900460ff1615611632576040805162461bcd60e51b815260206004820152601660248201527529bcb9ba32b6902830bab9b2b210213c9020b236b4b760511b604482015290519081900360640190fd5b6001600160a01b03821630141561164857600080fd5b6001600160a01b038216611691576040805162461bcd60e51b81526020600482018190526024820152600080516020612ca9833981519152604482015290519081900360640190fd5b6001600160a01b0382166000908152600860209081526040808320338452909152902060020154600f546116cc90429063ffffffff61239f16565b11156116fa576001600160a01b03821660009081526008602090815260408083203384529091528120600301555b6001600160a01b03821660009081526008602090815260408083203384529091529020600381015460019091015482916117679161173791612a8a565b6001600160a01b03851660009081526008602090815260408083203384529091529020549063ffffffff61239f16565b10156117a45760405162461bcd60e51b8152600401808060200182810382526027815260200180612c826027913960400191505060405180910390fd5b6001600160a01b03821660009081526008602090815260408083203384529091529020546117d8908263ffffffff61239f16565b6001600160a01b03831660008181526008602090815260408083203380855290835281842095909555805163a9059cbb60e01b815260048101959095526024850186905251929363a9059cbb9360448083019491928390030190829087803b15801561184357600080fd5b505af1158015611857573d6000803e3d6000fd5b505050506040513d602081101561186d57600080fd5b50506001600160a01b03821660008181526008602090815260408083203380855290835292819020548151948552918401929092528282018490526060830152517f544b39701afd1119e68c6e95a6107ec843364e9fbaae5e99637a368cc82adfc89181900360800190a15050565b60055481565b600f5481565b6000546001600160a01b031633146118ff57600080fd5b600154600160a01b900460ff16611928576001805460ff60a01b1916600160a01b179055611595565b6001805460ff60a01b19169055565b6001546001600160a01b031681565b600e6020526000908152604090205460ff1681565b600a60209081526000928352604080842090915290825290205481565b600080546001600160a01b0316331461199057600080fd5b50600f55600190565b60075481565b6000546001600160a01b031633146119b657600080fd5b6001600160a01b0382166000818152600b6020908152604091829020805460ff191685151590811790915582519384529083015280517f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a59281900390910190a15050565b600080546001600160a01b03163314611a3257600080fd5b506001600160a01b03919091166000908152600c6020526040902060050155600190565b600080546001600160a01b03163314611a6e57600080fd5b506001600160a01b03919091166000908152600c6020526040902060030155600190565b600080546001600160a01b03163314611aaa57600080fd5b50600755600190565b600154600090600160a01b900460ff1615611b0e576040805162461bcd60e51b815260206004820152601660248201527529bcb9ba32b6902830bab9b2b210213c9020b236b4b760511b604482015290519081900360640190fd5b6001600160a01b038316611b57576040805162461bcd60e51b81526020600482018190526024820152600080516020612ca9833981519152604482015290519081900360640190fd5b3380611b98576040805162461bcd60e51b81526020600482018190526024820152600080516020612ca9833981519152604482015290519081900360640190fd5b6001600160a01b038085166000908152600860209081526040808320938516835292905220600101548311801590611bd05750600083115b611c0b5760405162461bcd60e51b8152600401808060200182810382526022815260200180612cea6022913960400191505060405180910390fd5b6001600160a01b03808516600090815260086020908152604080832093851683529290529081206001015490611c428684846122db565b9050611c4d81612b44565b611c8f576040805162461bcd60e51b815260206004820152600e60248201526d1b5a5b9d1a5b99c819985a5b195960921b604482015290519081900360640190fd5b3060009081526008602090815260408083206001600160a01b0387168452909152902060030154611cc6908263ffffffff612a8a16565b3060009081526008602081815260408084206001600160a01b0389811680875291845282862060030196909655948b168452918152818320938352929092522060010154611d1a908663ffffffff61239f16565b6001600160a01b03808816600081815260086020908152604080832094891683529390529190912060010191909155301415611db3576001600160a01b03808716600090815260086020908152604080832093871683529290522060030154611d89908663ffffffff612a8a16565b6001600160a01b038088166000908152600860209081526040808320938816835292905220600301555b6001600160a01b038087166000818152600860209081526040808320948816835293815290839020426002909101558251918252810187905280820183905290517f05ed4f81bc443fc929332d09ad813fcbd31f52653b5e27569abd927f851836d39181900360600190a150600195945050505050565b600080546001600160a01b03163314611e4257600080fd5b506001600160a01b03919091166000908152600c6020526040902060040155600190565b6000546001600160a01b03163314611e7d57600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600154600090600160a01b900460ff1615611efa576040805162461bcd60e51b815260206004820152601660248201527529bcb9ba32b6902830bab9b2b210213c9020b236b4b760511b604482015290519081900360640190fd5b6001600160a01b0383166000908152600c602052604090206006015460ff16611f6a576040805162461bcd60e51b815260206004820181905260248201527f746f6b656e2074797065206e6f7420616c6c6f77656420746f20667265657a65604482015290519081900360640190fd5b6001600160a01b038316611fb3576040805162461bcd60e51b81526020600482018190526024820152600080516020612ca9833981519152604482015290519081900360640190fd5b3380611ff4576040805162461bcd60e51b81526020600482018190526024820152600080516020612ca9833981519152604482015290519081900360640190fd5b6001600160a01b0384811660009081526008602090815260408083209385168352929052206003810154600190910154612064916120329190612a8a565b6001600160a01b038087166000908152600860209081526040808320938716835292905220549063ffffffff61239f16565b831115801561208e57506001600160a01b0384166000908152600c60205260409020600301548310155b6120c95760405162461bcd60e51b8152600401808060200182810382526022815260200180612cea6022913960400191505060405180910390fd5b6001600160a01b0380851660009081526008602090815260408083209385168352929052908120600101549081156121b2576121068684846122db565b905061211181612b44565b612153576040805162461bcd60e51b815260206004820152600e60248201526d1b5a5b9d1a5b99c819985a5b195960921b604482015290519081900360640190fd5b3060009081526008602090815260408083206001600160a01b038716845290915290206003015461218a908263ffffffff612a8a16565b3060009081526008602090815260408083206001600160a01b03881684529091529020600301555b6001600160a01b038087166000908152600860209081526040808320938716835292905220600101546121eb908663ffffffff612a8a16565b6001600160a01b03808816600081815260086020908152604080832094891683529390529190912060010191909155301415612264576001600160a01b03831660009081526009602052604090205461224a908663ffffffff61239f16565b6001600160a01b0384166000908152600960205260409020555b6001600160a01b038087166000818152600860209081526040808320948816835293815290839020426002909101558251918252810187905280820183905290517f72cb02c58250b8f066d50b43c9a45a6d81b4ac7435f56ae25ed9f7e0e2f8ecfc9181900360600190a150600195945050505050565b6001600160a01b0383166000908152600c60205260408120600401548190612304908490612b7b565b6001600160a01b0386166000908152600c60205260408120600501549192509061232f908390612b7b565b6001600160a01b038088166000908152600860209081526040808320938a1683529290529081206002015491925042919091039062015180821061238357612380826201518063ffffffff612bb816565b90505b612393818463ffffffff612aeb16565b98975050505050505050565b6000828211156123f6576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600154600160a01b900460ff161561244e576040805162461bcd60e51b815260206004820152601060248201526f7361666547756172642041637469766560801b604482015290519081900360640190fd5b6001600160a01b03821661249b576040805162461bcd60e51b815260206004820152600f60248201526e0746f2069732061646472657373203608c1b604482015290519081900360640190fd5b6001600160a01b0383166000908152600960205260409020548111156124fd576040805162461bcd60e51b81526020600482015260126024820152716e6f2062616c616e636520696e2066726f6d60701b604482015290519081900360640190fd5b6001600160a01b038216600090815260096020526040902054612526818363ffffffff612a8a16565b101561256c576040805162461bcd60e51b815260206004820152601060248201526f6f766572666c6f772062616c616e636560801b604482015290519081900360640190fd5b6001600160a01b0383166000908152600b602052604090205460ff16156125d0576040805162461bcd60e51b8152602060048201526013602482015272333937b69030b1b1b7bab73a10333937bd32b760691b604482015290519081900360640190fd5b6001600160a01b0382166000908152600b602052604090205460ff1615612632576040805162461bcd60e51b81526020600482015260116024820152703a379030b1b1b7bab73a10333937bd32b760791b604482015290519081900360640190fd5b6001600160a01b03831660009081526009602052604090205461265b908263ffffffff61239f16565b6001600160a01b0384166000818152600960209081526040808320949094553082526008815283822092825291909152205461269d908263ffffffff61239f16565b3060009081526008602090815260408083206001600160a01b0388811685529083528184209490945592851682526009905220546126e1908263ffffffff612a8a16565b6001600160a01b03831660008181526009602090815260408083209490945530825260088152838220928252919091522054612723908263ffffffff612a8a16565b3060009081526008602090815260408083206001600160a01b0387811685529252822092909255805490911633148061275b57503330145b6127b95761276b82600754612b7b565b9050612777838261280a565b6127b9576040805162461bcd60e51b815260206004820152600e60248201526d189d5c9b9a5b99c819985a5b195960921b604482015290519081900360640190fd5b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a350505050565b600154600090600160a01b900460ff161561285f576040805162461bcd60e51b815260206004820152601060248201526f7361666547756172642041637469766560801b604482015290519081900360640190fd5b6001600160a01b03831661287257600080fd5b6001600160a01b03831660009081526009602052604090205482111561289757600080fd5b6001600160a01b0383166000908152600b602052604090205460ff16156128f9576040805162461bcd60e51b81526020600482015260116024820152703a379030b1b1b7bab73a10333937bd32b760791b604482015290519081900360640190fd5b6001600160a01b038316600090815260096020526040902054612922908363ffffffff61239f16565b6001600160a01b03841660008181526009602090815260408083209490945530825260088152838220928252919091522054612964908363ffffffff61239f16565b3060009081526008602090815260408083206001600160a01b038816845282528220929092558052600990527fec8156718a8372b1db44bb411437d0870f3e3790d4a08526d024ce1b0b668f6b546129c2908363ffffffff612a8a16565b7fec8156718a8372b1db44bb411437d0870f3e3790d4a08526d024ce1b0b668f6b55306000908152600860209081526040808320838052909152902054612a0f908363ffffffff612a8a16565b306000908152600860209081526040808320838052909152902055600454612a3d908363ffffffff61239f16565b6004556040805183815290516000916001600160a01b038616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600192915050565b600082820183811015612ae4576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600082612afa57506000610a41565b82820282848281612b0757fe5b0414612ae45760405162461bcd60e51b8152600401808060200182810382526021815260200180612cc96021913960400191505060405180910390fd5b600454600090612b5a908363ffffffff612a8a16565b600455600554612b70908363ffffffff612a8a16565b600555506001919050565b600061271080831115612b8d57600080fd5b6000612baf82612ba3878763ffffffff612aeb16565b9063ffffffff612bb816565b95945050505050565b6000808211612c0e576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481612c1957fe5b04949350505050565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c08101919091529056fe7472616e736665722066726f6d206164646572737328302920697320696e76616c6964526571756972656420616d6f756e74206973206e6f74206672656520746f2077697468647261774164647265737328302920666f756e642c2063616e277420636f6e74696e7565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f776c657373207468616e207265717569726564206f72206c6573732062616c616e6365a265627a7a7230582055853f24039b1ded6754d632b64fdf8c6b70c28cf4b1871f527687a98130d4d964736f6c634300050a0032
Deployed Bytecode Sourcemap
17659:11218:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17659:11218:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7429:28;;;:::i;:::-;;;;;;;;;;;;;;;;7251:19;;;:::i;15621:201::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;15621:201:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;28540:332;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;28540:332:0;-1:-1:-1;;;;;28540:332:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7353:26;;;:::i;9584:56::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9584:56:0;-1:-1:-1;;;;;9584:56:0;;:::i;:::-;;;;;;;-1:-1:-1;;;;;;9584:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14880:436;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;14880:436:0;;;;;;;;;;;;;;;;;:::i;7304:21::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16796:143;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16796:143:0;;:::i;22471:594::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;22471:594:0;;;;;;;;:::i;:::-;;18651:211;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18651:211:0;-1:-1:-1;;;;;18651:211:0;;:::i;20827:614::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;20827:614:0;;;;;;;;;-1:-1:-1;;;;;;20827:614:0;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7796:67::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7796:67:0;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19618:122;;;:::i;19322:188::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19322:188:0;;:::i;19779:492::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19779:492:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;19779:492:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;19779:492:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;19779:492:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;19779:492:0;;;;;;;;-1:-1:-1;19779:492:0;;-1:-1:-1;;21:11;5:28;;2:2;;;46:1;43;36:12;2:2;19779:492:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;19779:492:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;19779:492:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;19779:492:0;;-1:-1:-1;19779:492:0;;-1:-1:-1;;;;;19779:492:0:i;24073:739::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;24073:739:0;-1:-1:-1;;;;;24073:739:0;;:::i;7926:45::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7926:45:0;-1:-1:-1;;;;;7926:45:0;;:::i;5824:21::-;;;:::i;6692:204::-;;;:::i;16021:570::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;16021:570:0;;;;;;;;:::i;17238:157::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;17238:157:0;;;;;;;;:::i;21449:365::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21449:365:0;-1:-1:-1;;;;;21449:365:0;;:::i;18200:281::-;;;:::i;5747:28::-;;;:::i;:::-;;;;-1:-1:-1;;;;;5747:28:0;;;;;;;;;;;;;;7277:20;;;:::i;:::-;;;;-1:-1:-1;;;;;;7277:20:0;;;;;;;;;;;;;;14407:153;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;14407:153:0;;;;;;;;:::i;8101:46::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8101:46:0;-1:-1:-1;;;;;8101:46:0;;:::i;17895:38::-;;;:::i;23098:847::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;23098:847:0;;;;;;;;:::i;7386:36::-;;;:::i;20309:::-;;;:::i;6904:221::-;;;:::i;5784:31::-;;;:::i;17944:44::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17944:44:0;-1:-1:-1;;;;;17944:44:0;;:::i;7978:66::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7978:66:0;;;;;;;;;;:::i;20654:165::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20654:165:0;;:::i;7466:29::-;;;:::i;19052:151::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;19052:151:0;;;;;;;;;;:::i;22222:204::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;22222:204:0;;;;;;;;:::i;21822:::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;21822:204:0;;;;;;;;:::i;8904:154::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8904:154:0;;:::i;27206:1326::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;27206:1326:0;;;;;;;;:::i;22034:180::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;22034:180:0;;;;;;;;:::i;6449:116::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6449:116:0;-1:-1:-1;;;;;6449:116:0;;:::i;24899:1603::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;24899:1603:0;;;;;;;;:::i;7429:28::-;;;;:::o;7251:19::-;;;;:::o;15621:201::-;15731:9;;15697:12;;-1:-1:-1;;;15731:9:0;;;;15730:10;15722:19;;;;;;-1:-1:-1;15762:10:0;15752:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;15752:31:0;;;;;;;;;:40;;;15810:4;15621:201;;;;;:::o;28540:332::-;-1:-1:-1;;;;;28712:13:0;;28597:17;28712:13;;;:6;:13;;;;;;;;28672:10;28712:26;;;;;;;:38;;;28597:17;;28672:10;28597:17;28780:41;28719:5;28672:10;28712:38;28780:10;:41::i;:::-;28840:11;;-1:-1:-1;28761:60:0;;-1:-1:-1;;;28540:332:0;;;:::o;7353:26::-;;;;:::o;9584:56::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14880:436::-;14996:9;;14962:12;;-1:-1:-1;;;14996:9:0;;;;14995:10;14987:19;;;;;;-1:-1:-1;;;;;15025:19:0;;15017:66;;;;-1:-1:-1;;;15017:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15112:16:0;;;;;;:9;:16;;;;;;;;15129:10;15112:28;;;;;;;;15102:38;;;15094:47;;;;;;-1:-1:-1;;;;;15206:16:0;;;;;;:9;:16;;;;;;;;15223:10;15206:28;;;;;;;;:40;;15239:6;15206:40;:32;:40;:::i;:::-;-1:-1:-1;;;;;15175:16:0;;;;;;:9;:16;;;;;;;;15192:10;15175:28;;;;;;;:71;15257:29;15185:5;15274:3;15279:6;15257:9;:29::i;:::-;-1:-1:-1;15304:4:0;14880:436;;;;;:::o;7304:21::-;;;;;;;;;:::o;16796:143::-;16852:12;6413:5;;-1:-1:-1;;;;;6413:5:0;6399:10;:19;6391:28;;;;;;16877:32;16890:10;16902:6;16877:12;:32::i;:::-;-1:-1:-1;16927:4:0;;16796:143;-1:-1:-1;;16796:143:0:o;22471:594::-;-1:-1:-1;;;;;22687:17:0;;22679:61;;;;;-1:-1:-1;;;22679:61:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;22679:61:0;;;;;;;;;;;;;;;22759:69;;;-1:-1:-1;;;22759:69:0;;22794:10;22759:69;;;;22814:4;22759:69;;;;;;;;;;;;-1:-1:-1;;;;;22759:34:0;;;;;:69;;;;;;;;;;;;;;-1:-1:-1;22759:34:0;:69;;;5:2:-1;;;;30:1;27;20:12;5:2;22759:69:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22759:69:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22759:69:0;22751:113;;;;;-1:-1:-1;;;22751:113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22914:13:0;;;;;;:6;:13;;;;;;;;22928:10;22914:25;;;;;;;:36;:48;;22955:6;22914:48;:40;:48;:::i;:::-;-1:-1:-1;;;;;22875:13:0;;;;;;:6;:13;;;;;;;;22889:10;22875:25;;;;;;;;;;:87;;;22978:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22471:594;;:::o;18651:211::-;6413:5;;-1:-1:-1;;;;;6413:5:0;6399:10;:19;6391:28;;;;;;18734:18;;;;:26;;:18;:26;18726:35;;;;;;-1:-1:-1;;;;;18784:25:0;;18776:34;;;;;;-1:-1:-1;;;;;18825:24:0;;;;;:11;:24;;;;;:31;;-1:-1:-1;;18825:31:0;18852:4;18825:31;;;18651:211::o;20827:614::-;21020:4;6413:5;;-1:-1:-1;;;;;6413:5:0;6399:10;:19;6391:28;;;;;;21042:25;;:::i;:::-;21080;;;-1:-1:-1;;;;;;;21116:29:0;;;;:16;;;;:29;;;21156:17;;;;:31;;;21198:21;;;:39;;;21248:15;;;:27;;;21292:21;;;:39;;;21366:4;21345:20;;;;:25;;;-1:-1:-1;;;;;21383:21:0;;;;-1:-1:-1;21383:21:0;;;:14;:21;;;;;;;:28;;;;;;;;;;;-1:-1:-1;;21383:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21383:28:0;;;;;;;;;;21366:4;20827:614::o;7796:67::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;19618:122::-;6413:5;;-1:-1:-1;;;;;6413:5:0;6399:10;:19;6391:28;;;;;;19670:14;19712:5;;:22;;19693:4;19685:21;;-1:-1:-1;;;;;19712:5:0;;;;:22;;;;;19685:21;;19712:22;19670:14;19712:22;19685:21;19712:5;:22;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19712:22:0;6430:1;19618:122::o;19322:188::-;6413:5;;-1:-1:-1;;;;;6413:5:0;6399:10;:19;6391:28;;;;;;19396:19;19418:16;:7;19430:3;19418:16;:11;:16;:::i;:::-;19396:38;;19449:49;19467:4;19474:10;19486:11;19449:9;:49::i;19779:492::-;19877:4;6413:5;;-1:-1:-1;;;;;6413:5:0;6399:10;:19;6391:28;;;;;;19921:17;;19979:3;19961:21;;;19953:30;;;;;;20002:6;19998:236;20018:14;20014:1;:18;19998:236;;;20181:5;;20188:13;;20171:47;;-1:-1:-1;;;;;20181:5:0;;20188:10;;20199:1;;20188:13;;;;;;;;;;;;20203:11;20215:1;20203:14;;;;;;;;;;;;;;20171:9;:47::i;:::-;20034:3;;19998:236;;;-1:-1:-1;20255:4:0;;19779:492;-1:-1:-1;;;;19779:492:0:o;24073:739::-;24158:9;;24127:4;;-1:-1:-1;;;24158:9:0;;;;24157:10;24149:44;;;;;-1:-1:-1;;;24149:44:0;;;;;;;;;;;;-1:-1:-1;;;24149:44:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;24212:17:0;;24204:61;;;;;-1:-1:-1;;;24204:61:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;24204:61:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;24284:22:0;;24301:4;24284:22;24276:57;;;;;-1:-1:-1;;;24276:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24379:13:0;;;;;;:6;:13;;;;;;;;24393:10;24379:25;;;;;;;:36;;;24360:15;;24352:24;;:3;;:24;:7;:24;:::i;:::-;:63;24344:98;;;;;-1:-1:-1;;;24344:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24467:13:0;;24453:11;24467:13;;;:6;:13;;;;;;;;24481:10;24467:25;;;;;;;:35;;;24537:9;:21;;;;;;;:33;;24467:35;24537:33;:25;:33;:::i;:::-;24523:10;24513:21;;;;:9;:21;;;;;;;;:57;;;-1:-1:-1;;;;;24646:13:0;;;;:6;:13;;;;;:25;;;;;;;;;;:37;;;24620:21;;:65;;24513:57;24620:65;:25;:65;:::i;:::-;-1:-1:-1;;;;;24581:13:0;;;;;;:6;:13;;;;;;;;24595:10;24581:25;;;;;;;:104;;;24696:35;;;;:39;;;;24752:30;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24800:4:0;;24073:739;-1:-1:-1;;24073:739:0:o;7926:45::-;;;;;;;;;;;;;:::o;5824:21::-;;;-1:-1:-1;;;5824:21:0;;;;;:::o;6692:204::-;6765:8;;-1:-1:-1;;;;;6765:8:0;6751:10;:22;6743:31;;;;;;6820:8;;;6813:5;;6790:39;;-1:-1:-1;;;;;6820:8:0;;;;6813:5;;;;6790:39;;;6848:8;;;;6840:16;;-1:-1:-1;;;;;;6840:16:0;;;-1:-1:-1;;;;;6848:8:0;;6840:16;;;;6867:21;;;6692:204::o;16021:570::-;16105:12;6413:5;;-1:-1:-1;;;;;6413:5:0;6399:10;:19;6391:28;;;;;;-1:-1:-1;;;;;16145:17:0;;;;;;:9;:17;;;;;;:35;;16167:12;16145:35;:21;:35;:::i;:::-;-1:-1:-1;;;;;16125:17:0;;;;;;:9;:17;;;;;;;;:55;;;;16253:4;16238:21;;:6;:21;;;;;:29;;;;;;;;:40;:58;;16283:12;16238:58;:44;:58;:::i;:::-;16210:4;16195:21;;;;:6;:21;;;;;;;;-1:-1:-1;;;;;16195:29:0;;;;;;;;;:101;16391:11;;:29;;16407:12;16391:29;:15;:29;:::i;:::-;16377:11;:43;16459:21;;:39;;16485:12;16459:39;:25;:39;:::i;:::-;16435:21;:63;16510:49;;;;;;;;16539:4;;16527:1;;16510:49;;;;;;;;;-1:-1:-1;16581:4:0;16021:570;;;;:::o;17238:157::-;17313:12;6413:5;;-1:-1:-1;;;;;6413:5:0;6399:10;:19;6391:28;;;;;;17338:27;17351:5;17358:6;17338:12;:27::i;21449:365::-;21525:4;6413:5;;-1:-1:-1;;;;;6413:5:0;6399:10;:19;6391:28;;;;;;-1:-1:-1;;;;;21551:21:0;;;;;;:14;:21;;;;;:37;;;;;21547:232;;-1:-1:-1;;;;;21623:21:0;;;;;;:14;:21;;;;;:37;;:44;;-1:-1:-1;;21623:44:0;21663:4;21623:44;;;21547:232;;;-1:-1:-1;;;;;21718:21:0;;21758:5;21718:21;;;:14;:21;;;;;:37;;:45;;-1:-1:-1;;21718:45:0;;;21547:232;-1:-1:-1;21797:4:0;21449:365;;;:::o;18200:281::-;6413:5;;-1:-1:-1;;;;;6413:5:0;6399:10;:19;6391:28;;;;;;18271:18;;;;18267:209;;18309:18;:25;;18330:4;-1:-1:-1;;18309:25:0;;;;;;;;-1:-1:-1;18365:5:0;;-1:-1:-1;;;;;18365:5:0;18353:18;;:11;:18;;;;;:24;;;;;;;;;;18267:209;;;18430:18;:26;;-1:-1:-1;;18430:26:0;;;18267:209;18200:281::o;5747:28::-;;;-1:-1:-1;;;;;5747:28:0;;:::o;7277:20::-;;;;;;:::o;14407:153::-;14470:12;14496:34;14506:10;14518:3;14523:6;14496:9;:34::i;8101:46::-;;;;;;;;;;;;;;;:::o;17895:38::-;;;;;;:::o;23098:847::-;23181:9;;-1:-1:-1;;;23181:9:0;;;;23180:10;23172:44;;;;;-1:-1:-1;;;23172:44:0;;;;;;;;;;;;-1:-1:-1;;;23172:44:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;23235:22:0;;23252:4;23235:22;;23227:31;;;;;;-1:-1:-1;;;;;23277:17:0;;23269:61;;;;;-1:-1:-1;;;23269:61:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;23269:61:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;23371:13:0;;;;;;:6;:13;;;;;;;;23385:10;23371:25;;;;;;;:36;;;23352:15;;23344:24;;:3;;:24;:7;:24;:::i;:::-;:63;23341:143;;;-1:-1:-1;;;;;23432:13:0;;23470:1;23432:13;;;:6;:13;;;;;;;;23446:10;23432:25;;;;;;;:35;;:39;23341:143;-1:-1:-1;;;;;23585:13:0;;;;;;:6;:13;;;;;;;;23599:10;23585:25;;;;;;;:35;;;;23543:37;;;;;23626:6;;23502:120;;23543:78;;:41;:78::i;:::-;-1:-1:-1;;;;;23502:13:0;;;;;;:6;:13;;;;;;;;23516:10;23502:25;;;;;;;:36;;:120;:40;:120;:::i;:::-;:130;;23494:181;;;;-1:-1:-1;;;23494:181:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23732:13:0;;;;;;:6;:13;;;;;;;;23746:10;23732:25;;;;;;;:36;:48;;23773:6;23732:48;:40;:48;:::i;:::-;-1:-1:-1;;;;;23693:13:0;;;;;;:6;:13;;;;;;;;23707:10;23693:25;;;;;;;;;:87;;;;23791:50;;-1:-1:-1;;;23791:50:0;;;;;;;;;;;;;;;;23693:13;;23791:30;;:50;;;;;;;;;;;;;;23693:13;23791:50;;;5:2:-1;;;;30:1;27;20:12;5:2;23791:50:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23791:50:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;;23900:13:0;;;;;;:6;23791:50;23900:13;;;;;;;23880:10;23900:25;;;;;;;;;;:36;23857:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23098:847;;:::o;7386:36::-;;;;:::o;20309:::-;;;;:::o;6904:221::-;6413:5;;-1:-1:-1;;;;;6413:5:0;6399:10;:19;6391:28;;;;;;6974:9;;-1:-1:-1;;;6974:9:0;;;;6970:148;;7030:4;7018:16;;-1:-1:-1;;;;7018:16:0;-1:-1:-1;;;7018:16:0;;;6970:148;;;7085:9;:17;;-1:-1:-1;;;;7085:17:0;;;6904:221::o;5784:31::-;;;-1:-1:-1;;;;;5784:31:0;;:::o;17944:44::-;;;;;;;;;;;;;;;:::o;7978:66::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;20654:165::-;20735:4;6413:5;;-1:-1:-1;;;;;6413:5:0;6399:10;:19;6391:28;;;;;;-1:-1:-1;20757:15:0;:32;20807:4;;20654:165::o;7466:29::-;;;;:::o;19052:151::-;6413:5;;-1:-1:-1;;;;;6413:5:0;6399:10;:19;6391:28;;;;;;-1:-1:-1;;;;;19128:21:0;;;;;;:13;:21;;;;;;;;;:30;;-1:-1:-1;;19128:30:0;;;;;;;;;;19170:27;;;;;;;;;;;;;;;;;;;;;19052:151;;:::o;22222:204::-;22316:4;6413:5;;-1:-1:-1;;;;;6413:5:0;6399:10;:19;6391:28;;;;;;-1:-1:-1;;;;;;22338:21:0;;;;;;;;:14;:21;;;;;:38;;:58;22414:4;;22222:204::o;21822:::-;21916:4;6413:5;;-1:-1:-1;;;;;6413:5:0;6399:10;:19;6391:28;;;;;;-1:-1:-1;;;;;;21938:21:0;;;;;;;;:14;:21;;;;;:38;;:58;22014:4;;21822:204::o;8904:154::-;8972:12;6413:5;;-1:-1:-1;;;;;6413:5:0;6399:10;:19;6391:28;;;;;;-1:-1:-1;9002:11:0;:26;9046:4;;8904:154::o;27206:1326::-;27309:9;;27278:4;;-1:-1:-1;;;27309:9:0;;;;27308:10;27300:44;;;;;-1:-1:-1;;;27300:44:0;;;;;;;;;;;;-1:-1:-1;;;27300:44:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;27363:17:0;;27355:61;;;;;-1:-1:-1;;;27355:61:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;27355:61:0;;;;;;;;;;;;;;;27449:10;27478:24;27470:68;;;;;-1:-1:-1;;;27470:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;27470:68:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;27568:13:0;;;;;;;:6;:13;;;;;;;;:26;;;;;;;;;:38;;;27557:49;;;;;:63;;;27619:1;27610:6;:10;27557:63;27549:110;;;;-1:-1:-1;;;27549:110:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;27818:13:0;;;27799:16;27818:13;;;:6;:13;;;;;;;;:26;;;;;;;;;;;:38;;;;27886:41;27825:5;27832:11;27818:38;27886:10;:41::i;:::-;27867:60;;27946:25;27959:11;27946:12;:25::i;:::-;27938:51;;;;;-1:-1:-1;;;27938:51:0;;;;;;;;;;;;-1:-1:-1;;;27938:51:0;;;;;;;;;;;;;;;28062:4;28047:21;;;;:6;:21;;;;;;;;-1:-1:-1;;;;;28047:34:0;;;;;;;;;:44;;;:61;;28096:11;28047:61;:48;:61;:::i;:::-;28015:4;28000:21;;;;:6;:21;;;;;;;;-1:-1:-1;;;;;28000:34:0;;;;;;;;;;;;:44;;:108;;;;28177:13;;;;;;;;;;;:26;;;;;;;;:38;;;:50;;28220:6;28177:50;:42;:50;:::i;:::-;-1:-1:-1;;;;;28136:13:0;;;;;;;:6;:13;;;;;;;;:26;;;;;;;;;;;;:38;;:91;;;;28257:4;28242:20;28238:149;;;-1:-1:-1;;;;;28327:13:0;;;;;;;:6;:13;;;;;;;;:26;;;;;;;;;:36;;;:48;;28368:6;28327:48;:40;:48;:::i;:::-;-1:-1:-1;;;;;28288:13:0;;;;;;;:6;:13;;;;;;;;:26;;;;;;;;;:36;;:87;28238:149;-1:-1:-1;;;;;28399:13:0;;;;;;;:6;:13;;;;;;;;:26;;;;;;;;;;;;28439:3;28399:37;;;;:43;28458:44;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28520:4:0;;27206:1326;-1:-1:-1;;;;;27206:1326:0:o;22034:180::-;22116:4;6413:5;;-1:-1:-1;;;;;6413:5:0;6399:10;:19;6391:28;;;;;;-1:-1:-1;;;;;;22138:21:0;;;;;;;;:14;:21;;;;;:32;;:46;22202:4;;22034:180::o;6449:116::-;6413:5;;-1:-1:-1;;;;;6413:5:0;6399:10;:19;6391:28;;;;;;6537:8;:20;;-1:-1:-1;;;;;;6537:20:0;-1:-1:-1;;;;;6537:20:0;;;;;;;;;;6449:116::o;24899:1603::-;25004:9;;24973:4;;-1:-1:-1;;;25004:9:0;;;;25003:10;24995:44;;;;;-1:-1:-1;;;24995:44:0;;;;;;;;;;;;-1:-1:-1;;;24995:44:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;25058:21:0;;;;;;:14;:21;;;;;:37;;;;;25050:81;;;;;-1:-1:-1;;;25050:81:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25150:17:0;;25142:61;;;;;-1:-1:-1;;;25142:61:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;25142:61:0;;;;;;;;;;;;;;;25236:10;25265:24;25257:68;;;;;-1:-1:-1;;;25257:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;25257:68:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;25442:13:0;;;;;;;:6;:13;;;;;;;;:26;;;;;;;;;:36;;;;25399:38;;;;;25357:123;;25399:80;;:38;:42;:80::i;:::-;-1:-1:-1;;;;;25357:13:0;;;;;;;:6;:13;;;;;;;;:26;;;;;;;;;:37;;:123;:41;:123;:::i;:::-;25346:6;:134;;:186;;;;-1:-1:-1;;;;;;25494:21:0;;;;;;:14;:21;;;;;:38;;;25484:48;;;25346:186;25338:233;;;;-1:-1:-1;;;25338:233:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25743:13:0;;;25724:16;25743:13;;;:6;:13;;;;;;;;:26;;;;;;;;;;;:38;;;;25823:15;;25819:301;;25878:41;25889:5;25895:11;25907;25878:10;:41::i;:::-;25864:55;;25942:25;25955:11;25942:12;:25::i;:::-;25934:51;;;;;-1:-1:-1;;;25934:51:0;;;;;;;;;;;;-1:-1:-1;;;25934:51:0;;;;;;;;;;;;;;;26062:4;26047:21;;;;:6;:21;;;;;;;;-1:-1:-1;;;;;26047:34:0;;;;;;;;;:44;;;:61;;26096:11;26047:61;:48;:61;:::i;:::-;26015:4;26000:21;;;;:6;:21;;;;;;;;-1:-1:-1;;;;;26000:34:0;;;;;;;;;:44;;:108;25819:301;-1:-1:-1;;;;;26173:13:0;;;;;;;:6;:13;;;;;;;;:26;;;;;;;;;:38;;;:50;;26216:6;26173:50;:42;:50;:::i;:::-;-1:-1:-1;;;;;26132:13:0;;;;;;;:6;:13;;;;;;;;:26;;;;;;;;;;;;:38;;:91;;;;26253:4;26238:20;26234:121;;;-1:-1:-1;;;;;26309:22:0;;;;;;:9;:22;;;;;;:34;;26336:6;26309:34;:26;:34;:::i;:::-;-1:-1:-1;;;;;26284:22:0;;;;;;:9;:22;;;;;:59;26234:121;-1:-1:-1;;;;;26365:13:0;;;;;;;:6;:13;;;;;;;;:26;;;;;;;;;;;;26405:3;26365:37;;;;:43;26426:46;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26490:4:0;;24899:1603;-1:-1:-1;;;;;24899:1603:0:o;26510:609::-;-1:-1:-1;;;;;26667:21:0;;26592:7;26667:21;;;:14;:21;;;;;:32;;;26592:7;;26640:60;;26660:6;;26640:19;:60::i;:::-;-1:-1:-1;;;;;26769:21:0;;26711:19;26769:21;;;:14;:21;;;;;:38;;;26617:83;;-1:-1:-1;26711:19:0;26733:75;;26617:83;;26733:19;:75::i;:::-;-1:-1:-1;;;;;26847:13:0;;;26819:18;26847:13;;;:6;:13;;;;;;;;:19;;;;;;;;;;;:30;;;26711:97;;-1:-1:-1;26841:3:0;:36;;;;;26938:5;26921:22;;26917:147;;27027:24;:13;27045:5;27027:24;:17;:24;:::i;:::-;27014:37;;26917:147;27081:30;:10;27096:14;27081:30;:14;:30;:::i;:::-;27074:37;26510:609;-1:-1:-1;;;;;;;;26510:609:0:o;3296:184::-;3354:7;3387:1;3382;:6;;3374:49;;;;;-1:-1:-1;;;3374:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3446:5:0;;;3296:184::o;11023:1612::-;11116:9;;-1:-1:-1;;;11116:9:0;;;;11115:10;11107:38;;;;;-1:-1:-1;;;11107:38:0;;;;;;;;;;;;-1:-1:-1;;;11107:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;11160:17:0;;11151:45;;;;;-1:-1:-1;;;11151:45:0;;;;;;;;;;;;-1:-1:-1;;;11151:45:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;11296:16:0;;;;;;:9;:16;;;;;;:26;-1:-1:-1;11296:26:0;11287:58;;;;;-1:-1:-1;;;11287:58:0;;;;;;;;;;;;-1:-1:-1;;;11287:58:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;11438:14:0;;;;;;:9;:14;;;;;;11408:26;11438:14;11427:6;11408:26;:18;:26;:::i;:::-;:44;;11399:73;;;;;-1:-1:-1;;;11399:73:0;;;;;;;;;;;;-1:-1:-1;;;11399:73:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;11510:20:0;;;;;;:13;:20;;;;;;;;11509:21;11501:52;;;;;-1:-1:-1;;;11501:52:0;;;;;;;;;;;;-1:-1:-1;;;11501:52:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;11617:18:0;;;;;;:13;:18;;;;;;;;11616:19;11608:48;;;;;-1:-1:-1;;;11608:48:0;;;;;;;;;;;;-1:-1:-1;;;11608:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;11735:16:0;;;;;;:9;:16;;;;;;:28;;11756:6;11735:28;:20;:28;:::i;:::-;-1:-1:-1;;;;;11716:16:0;;;;;;:9;:16;;;;;;;;:47;;;;11866:4;11851:21;;:6;:21;;;;;:28;;;;;;;;:39;:51;;11895:6;11851:51;:43;:51;:::i;:::-;11824:4;11809:21;;;;:6;:21;;;;;;;;-1:-1:-1;;;;;11809:28:0;;;;;;;;;;;:93;;;;11975:14;;;;;:9;:14;;;;:26;;11994:6;11975:26;:18;:26;:::i;:::-;-1:-1:-1;;;;;11958:14:0;;;;;;:9;:14;;;;;;;;:43;;;;12111:4;12096:21;;:6;:21;;;;;:26;;;;;;;;:37;:49;;12138:6;12096:49;:41;:49;:::i;:::-;12071:4;12056:21;;;;:6;:21;;;;;;;;-1:-1:-1;;;;;12056:26:0;;;;;;;;;:89;;;;12269:5;;12056:21;;12269:5;12255:10;:19;;:50;;-1:-1:-1;12278:10:0;12300:4;12278:27;12255:50;12250:322;;12402:39;12422:6;12429:11;;12402:19;:39::i;:::-;12390:51;;12485:28;12498:3;12503:9;12485:12;:28::i;:::-;12477:54;;;;;-1:-1:-1;;;12477:54:0;;;;;;;;;;;;-1:-1:-1;;;12477:54:0;;;;;;;;;;;;;;;12598:3;-1:-1:-1;;;;;12582:27:0;12591:5;-1:-1:-1;;;;;12582:27:0;;12602:6;12582:27;;;;;;;;;;;;;;;;;;11023:1612;;;;:::o;12648:1182::-;12773:9;;12723:12;;-1:-1:-1;;;12773:9:0;;;;12772:10;12764:38;;;;;-1:-1:-1;;;12764:38:0;;;;;;;;;;;;-1:-1:-1;;;12764:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;12825:23:0;;12817:32;;;;;;-1:-1:-1;;;;;12872:20:0;;;;;;:9;:20;;;;;;:34;-1:-1:-1;12872:34:0;12864:43;;;;;;-1:-1:-1;;;;;12958:24:0;;;;;;:13;:24;;;;;;;;12957:25;12949:54;;;;;-1:-1:-1;;;12949:54:0;;;;;;;;;;;;-1:-1:-1;;;12949:54:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;13086:20:0;;;;;;:9;:20;;;;;;:36;;13111:10;13086:36;:24;:36;:::i;:::-;-1:-1:-1;;;;;13063:20:0;;;;;;:9;:20;;;;;;;;:59;;;;13229:4;13214:21;;:6;:21;;;;;:32;;;;;;;;:43;:59;;13262:10;13214:59;:47;:59;:::i;:::-;13183:4;13168:21;;;;:6;:21;;;;;;;;-1:-1:-1;;;;;13168:32:0;;;;;;;;:105;;;;13353:21;;:9;:21;;;;:37;;13379:10;13353:37;:25;:37;:::i;:::-;13329:21;:61;13507:4;13329:21;13492;;;:6;13329:21;13492;;;13329;13492;;;:33;;;;;;;;:44;:60;;13541:10;13492:60;:48;:60;:::i;:::-;13460:4;13445:21;;;;:6;:21;;;;;;;;:33;;;;;;;;:107;13642:11;;:27;;13658:10;13642:27;:15;:27;:::i;:::-;13628:11;:41;13692:42;;;;;;;;13720:1;;-1:-1:-1;;;;;13692:42:0;;;;;;;;;;;;-1:-1:-1;13802:4:0;12648:1182;;;;:::o;2840:181::-;2898:7;2930:5;;;2954:6;;;;2946:46;;;;;-1:-1:-1;;;2946:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;3012:1;2840:181;-1:-1:-1;;;2840:181:0:o;3731:470::-;3789:7;4033:6;4029:47;;-1:-1:-1;4063:1:0;4056:8;;4029:47;4100:5;;;4104:1;4100;:5;:1;4124:5;;;;;:10;4116:56;;;;-1:-1:-1;;;4116:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13836:324;13958:11;;13899:12;;13958:29;;13974:12;13958:29;:15;:29;:::i;:::-;13944:11;:43;14026:21;;:39;;14052:12;14026:39;:25;:39;:::i;:::-;14002:21;:63;-1:-1:-1;14150:4:0;13836:324;;;:::o;8629:264::-;8720:7;8763:5;8787:19;;;;8779:28;;;;;;8818:9;8830:36;8859:6;8830:24;:9;8844;8830:24;:13;:24;:::i;:::-;:28;:36;:28;:36;:::i;:::-;8818:48;8629:264;-1:-1:-1;;;;;8629:264:0:o;4669:333::-;4727:7;4826:1;4822;:5;4814:44;;;;;-1:-1:-1;;;4814:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4869:9;4885:1;4881;:5;;;;;;;4669:333;-1:-1:-1;;;;4669:333:0:o;17659:11218::-;;;;;;;;;-1:-1:-1;17659:11218:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
bzzr://55853f24039b1ded6754d632b64fdf8c6b70c28cf4b1871f527687a98130d4d9
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.
Add Token to MetaMask (Web3)