ERC-20
Overview
Max Total Supply
80,538,756.808025660192683484 YANG
Holders
2,731
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
4.314615254732847033 YANGValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Yangue
Compiler Version
v0.4.24+commit.e67f0147
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-08-27 */ /* * _..oo8"""Y8888b.._ * .88888888o. "Yb. * .d888P""Y8888b "b. * o88888 88888) "b * d888888b..d8888P 'b * 88888888888888" 8 * (88DWB8888888P 8) * 8888888888P 8 * Y88888888P ee .P * Y888888( 8888 oP * "Y88888b "" oP" * "Y8888o._ _.oP" * `""Y888bood888P""' * * YANG V2 * * yangue.me * */ pragma solidity 0.4.24; contract Ownable { address owner; constructor() public { owner = msg.sender; } modifier onlyOwner() { require(msg.sender == owner); _; } } contract Initializable { /** * @dev Indicates that the contract has been initialized. */ bool private initialized; /** * @dev Indicates that the contract is in the process of being initialized. */ bool private initializing; /** * @dev Modifier to use in the initializer function of a contract. */ modifier initializer() { require(initializing || isConstructor() || !initialized, "Contract instance has already been initialized"); bool isTopLevelCall = !initializing; if (isTopLevelCall) { initializing = true; initialized = true; } _; if (isTopLevelCall) { initializing = false; } } /// @dev Returns true if and only if the function is running in the constructor function isConstructor() private view returns (bool) { // extcodesize checks the size of the code stored in an address, and // address returns the current address. Since the code is still not // deployed when running a constructor, any checks on its code size will // yield zero, making it an effective way to detect if a contract is // under construction or not. uint256 cs; assembly { cs := extcodesize(address) } return cs == 0; } // Reserved storage space to allow for layout changes in the future. uint256[50] private ______gap; } /** * @title ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address who) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function transfer(address to, uint256 value) external returns (bool); function approve(address spender, uint256 value) external returns (bool); function transferFrom(address from, address to, uint256 value) external returns (bool); event Transfer( address indexed from, address indexed to, uint256 value ); event Approval( address indexed owner, address indexed spender, uint256 value ); } // File: openzeppelin-eth/contracts/token/ERC20/ERC20Detailed.sol /** * @title ERC20Detailed token * @dev The decimals are only for visualization purposes. * All the operations are done using the smallest and indivisible token unit, * just as on Ethereum all the operations are done in wei. */ contract ERC20Detailed is Initializable, IERC20 { string private _name; string private _symbol; uint8 private _decimals; function initialize(string name, string symbol, uint8 decimals) public initializer { _name = name; _symbol = symbol; _decimals = decimals; } /** * @return the name of the token. */ function name() public view returns(string) { return _name; } /** * @return the symbol of the token. */ function symbol() public view returns(string) { return _symbol; } /** * @return the number of decimals of the token. */ function decimals() public view returns(uint8) { return _decimals; } uint256[50] private ______gap; } contract Yangue is ERC20Detailed, Ownable { using SafeMathInt for int256; using UInt256Lib for uint256; using SafeMath for uint256; uint256 constant public zero = uint256(0); uint256 private constant MAX_SUPPLY = ~uint128(0); uint256 public constant MAX_UINT256 = ~uint256(0); uint256 public constant INITIAL_FRAGMENTS_SUPPLY = 6 * (10**4) * (10**DECIMALS); // TOTAL_GONS is a multiple of INITIAL_FRAGMENTS_SUPPLY so that _gonsPerFragment is an integer. // Use the highest value that fits in a uint256 for max granularity. uint256 public constant TOTAL_GONS = MAX_UINT256 - (MAX_UINT256 % INITIAL_FRAGMENTS_SUPPLY); uint256 public constant MAG = 10 ** 18; uint256 public rateOfChange = MAG; uint256 constant public DECIMALS = 18; uint256 public _totalSupply; uint256 public _gonsPerFragment; mapping(address => uint256) public _gonBalances; // This is denominated in Fragments, because the gons-fragments conversion might change before // it's fully paid. mapping (address => mapping (address => uint256)) public _allowedFragments; event Transfer(address indexed from, address indexed to, uint256 tokens); event Approval(address indexed owner, address indexed spender, uint256 tokens); constructor() public { ERC20Detailed.initialize("Yangue v2", "YANG", uint8(DECIMALS)); _totalSupply = INITIAL_FRAGMENTS_SUPPLY; _gonBalances[owner] = TOTAL_GONS; _gonsPerFragment = TOTAL_GONS.div(_totalSupply); } /** * @return The total number of fragments. */ function totalSupply() public view returns (uint256) { return _totalSupply; } /** * @param who The address to query. * @return The balance of the specified address. */ function balanceOf(address who) public view returns (uint256) { return _gonBalances[who].div(_gonsPerFragment); } function computeSupplyDelta(uint256 rate, uint256 targetRate) private view returns (int256) { // supplyDelta = totalSupply * (rate - targetRate) / targetRate int256 targetRateSigned = targetRate.toInt256Safe(); return totalSupply().toInt256Safe() .mul(rate.toInt256Safe().sub(targetRateSigned)) .div(targetRateSigned); } //two rebase functions deffo work just need to integrate them in the transfers, do this tomorrow then deploy on uniswap function rebasePlus(uint256 _amount) private { uint256 proportion_ = (((_amount.div(10)).mul(MAG))).div(_totalSupply); proportion_ = MAG.add(proportion_); int256 supplyDelta = computeSupplyDelta(proportion_, MAG); if (supplyDelta < 0) { _totalSupply = _totalSupply.sub(uint256(supplyDelta.abs())); } else { _totalSupply = _totalSupply.add(uint256(supplyDelta)); } _gonsPerFragment = TOTAL_GONS.div(_totalSupply); } function rebaseMinus(uint256 _amount) private { uint256 proportion_ = (((_amount.div(10)).mul(MAG))).div(_totalSupply); proportion_ = MAG.sub(proportion_); int256 supplyDelta = computeSupplyDelta(proportion_, MAG); if (supplyDelta < 0) { _totalSupply = _totalSupply.sub(uint256(supplyDelta.abs())); } else { _totalSupply = _totalSupply.add(uint256(supplyDelta)); } if (_totalSupply > MAX_SUPPLY) { _totalSupply = MAX_SUPPLY; } _gonsPerFragment = TOTAL_GONS.div(_totalSupply); } /** * @dev Transfer tokens to a specified address. * @param to The address to transfer to. * @param value The amount to be transferred. * @return True on success, false otherwise. */ function transfer(address to, uint256 value) public returns (bool) { bool isNewUser = balanceOf(to) == zero; uint256 gonValue = value.mul(_gonsPerFragment); _gonBalances[msg.sender] = _gonBalances[msg.sender].sub(gonValue); _gonBalances[to] = _gonBalances[to].add(gonValue); if(isNewUser && balanceOf(msg.sender) > zero) { rebasePlus(value); } else if( balanceOf(msg.sender) == zero) { rebaseMinus(value); } emit Transfer(msg.sender, to, value); return true; } /** * @dev Function to check the amount of tokens that an owner has allowed to a spender. * @param owner_ The address which owns the funds. * @param spender The address which will spend the funds. * @return The number of tokens still available for the spender. */ function allowance(address owner_, address spender) public view returns (uint256) { return _allowedFragments[owner_][spender]; } /** * @dev Transfer tokens from one address to another. * @param from The address you want to send tokens from. * @param to The address you want to transfer to. * @param value The amount of tokens to be transferred. */ function transferFrom(address from, address to, uint256 value) public returns (bool) { bool isNewUser = balanceOf(to) == zero; _allowedFragments[from][msg.sender] = _allowedFragments[from][msg.sender].sub(value); uint256 gonValue = value.mul(_gonsPerFragment); _gonBalances[from] = _gonBalances[from].sub(gonValue); _gonBalances[to] = _gonBalances[to].add(gonValue); if(isNewUser && balanceOf(from) > zero) { rebasePlus(value); } else if(balanceOf(from) == zero) { rebaseMinus(value); } emit Transfer(from, to, value); return true; } /** * @dev Approve the passed address to spend the specified amount of tokens on behalf of * msg.sender. This method is included for ERC20 compatibility. * increaseAllowance and decreaseAllowance should be used instead. * Changing an allowance with this method brings the risk that someone may transfer both * the old and the new allowance - if they are both greater than zero - if a transfer * transaction is mined before the later approve() call is mined. * * @param spender The address which will spend the funds. * @param value The amount of tokens to be spent. */ function approve(address spender, uint256 value) public returns (bool) { _allowedFragments[msg.sender][spender] = value; emit Approval(msg.sender, spender, value); return true; } /** * @dev Increase the amount of tokens that an owner has allowed to a spender. * This method should be used instead of approve() to avoid the double approval vulnerability * described above. * @param spender The address which will spend the funds. * @param addedValue The amount of tokens to increase the allowance by. */ function increaseAllowance(address spender, uint256 addedValue) public returns (bool) { _allowedFragments[msg.sender][spender] = _allowedFragments[msg.sender][spender].add(addedValue); emit Approval(msg.sender, spender, _allowedFragments[msg.sender][spender]); return true; } /** * @dev Decrease the amount of tokens that an owner has allowed to a spender. * * @param spender The address which will spend the funds. * @param subtractedValue The amount of tokens to decrease the allowance by. */ function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) { uint256 oldValue = _allowedFragments[msg.sender][spender]; if (subtractedValue >= oldValue) { _allowedFragments[msg.sender][spender] = 0; } else { _allowedFragments[msg.sender][spender] = oldValue.sub(subtractedValue); } emit Approval(msg.sender, spender, _allowedFragments[msg.sender][spender]); return true; } } library SafeMath { int256 private constant MIN_INT256 = int256(1) << 255; /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } function abs(int256 a) internal pure returns (int256) { require(a != MIN_INT256); return a < 0 ? -a : a; } } library UInt256Lib { uint256 private constant MAX_INT256 = ~(uint256(1) << 255); /** * @dev Safely converts a uint256 to an int256. */ function toInt256Safe(uint256 a) internal pure returns (int256) { require(a <= MAX_INT256); return int256(a); } } library SafeMathInt { int256 private constant MIN_INT256 = int256(1) << 255; int256 private constant MAX_INT256 = ~(int256(1) << 255); /** * @dev Multiplies two int256 variables and fails on overflow. */ function mul(int256 a, int256 b) internal pure returns (int256) { int256 c = a * b; // Detect overflow when multiplying MIN_INT256 with -1 require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256)); require((b == 0) || (c / b == a)); return c; } /** * @dev Division of two int256 variables and fails on overflow. */ function div(int256 a, int256 b) internal pure returns (int256) { // Prevent overflow when dividing MIN_INT256 by -1 require(b != -1 || a != MIN_INT256); // Solidity already throws when dividing by 0. return a / b; } /** * @dev Subtracts two int256 variables and fails on overflow. */ function sub(int256 a, int256 b) internal pure returns (int256) { int256 c = a - b; require((b >= 0 && c <= a) || (b < 0 && c > a)); return c; } /** * @dev Adds two int256 variables and fails on overflow. */ function add(int256 a, int256 b) internal pure returns (int256) { int256 c = a + b; require((b >= 0 && c >= a) || (b < 0 && c < a)); return c; } /** * @dev Converts to absolute value, and fails on overflow. */ function abs(int256 a) internal pure returns (int256) { require(a != MIN_INT256); return a < 0 ? -a : a; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"_allowedFragments","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"},{"name":"symbol","type":"string"},{"name":"decimals","type":"uint8"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"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":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"DECIMALS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MAX_UINT256","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"_gonBalances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MAG","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rateOfChange","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"INITIAL_FRAGMENTS_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"zero","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_gonsPerFragment","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner_","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TOTAL_GONS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Approval","type":"event"}]
Contract Creation Code
6080604052670de0b6b3a76400006069553480156200001d57600080fd5b5033606860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000eb6040805190810160405280600981526020017f59616e67756520763200000000000000000000000000000000000000000000008152506040805190810160405280600481526020017f59414e47000000000000000000000000000000000000000000000000000000008152506012620001c56401000000000262000a61176401000000009004565b6012600a0a61ea6002606a819055506012600a0a61ea60026000198115156200011057fe5b0660001903606c6000606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620001b9606a546012600a0a61ea60026000198115156200019757fe5b06600019036200036f6401000000000262001b9d179091906401000000009004565b606b8190555062000559565b60008060019054906101000a900460ff1680620001f75750620001f6620003ca640100000000026401000000009004565b5b806200020f57506000809054906101000a900460ff16155b1515620002aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff161590508015620002fa576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b836033908051906020019062000312929190620004aa565b5082603490805190602001906200032b929190620004aa565b5081603560006101000a81548160ff021916908360ff1602179055508015620003695760008060016101000a81548160ff0219169083151502179055505b50505050565b6000620003c283836040805190810160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620003db640100000000026401000000009004565b905092915050565b600080303b90506000811491505090565b60008060008411839015156200048f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200045357808201518184015260208101905062000436565b50505050905090810190601f168015620004815780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5083858115156200049c57fe5b049050809150509392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620004ed57805160ff19168380011785556200051e565b828001600101855582156200051e579182015b828111156200051d57825182559160200191906001019062000500565b5b5090506200052d919062000531565b5090565b6200055691905b808211156200055257600081600090555060010162000538565b5090565b90565b61200580620005696000396000f300608060405260043610610133576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146101385780630930f190146101c8578063095ea7b31461023f5780631624f6c6146102a457806318160ddd1461036057806323b872dd1461038b5780632e0f262514610410578063313ce5671461043b57806333a581d21461046c57806336fed9751461049757806339509351146104ee5780633eaaf86b146105535780634c4be8a61461057e5780636b0a26d2146105a957806370a08231146105d45780637d48d2411461062b57806395d89b4114610656578063a457c2d7146106e6578063a9059cbb1461074b578063bc1b392d146107b0578063c4996f51146107db578063dd62ed3e14610806578063e00713e91461087d575b600080fd5b34801561014457600080fd5b5061014d6108a8565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018d578082015181840152602081019050610172565b50505050905090810190601f1680156101ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101d457600080fd5b50610229600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061094a565b6040518082815260200191505060405180910390f35b34801561024b57600080fd5b5061028a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061096f565b604051808215151515815260200191505060405180910390f35b3480156102b057600080fd5b5061035e600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610a61565b005b34801561036c57600080fd5b50610375610bf1565b6040518082815260200191505060405180910390f35b34801561039757600080fd5b506103f6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bfb565b604051808215151515815260200191505060405180910390f35b34801561041c57600080fd5b50610425610f13565b6040518082815260200191505060405180910390f35b34801561044757600080fd5b50610450610f18565b604051808260ff1660ff16815260200191505060405180910390f35b34801561047857600080fd5b50610481610f2f565b6040518082815260200191505060405180910390f35b3480156104a357600080fd5b506104d8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f35565b6040518082815260200191505060405180910390f35b3480156104fa57600080fd5b50610539600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f4d565b604051808215151515815260200191505060405180910390f35b34801561055f57600080fd5b50610568611149565b6040518082815260200191505060405180910390f35b34801561058a57600080fd5b5061059361114f565b6040518082815260200191505060405180910390f35b3480156105b557600080fd5b506105be61115b565b6040518082815260200191505060405180910390f35b3480156105e057600080fd5b50610615600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611161565b6040518082815260200191505060405180910390f35b34801561063757600080fd5b506106406111be565b6040518082815260200191505060405180910390f35b34801561066257600080fd5b5061066b6111ca565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106ab578082015181840152602081019050610690565b50505050905090810190601f1680156106d85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156106f257600080fd5b50610731600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061126c565b604051808215151515815260200191505060405180910390f35b34801561075757600080fd5b50610796600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114fe565b604051808215151515815260200191505060405180910390f35b3480156107bc57600080fd5b506107c5611706565b6040518082815260200191505060405180910390f35b3480156107e757600080fd5b506107f061170b565b6040518082815260200191505060405180910390f35b34801561081257600080fd5b50610867600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611711565b6040518082815260200191505060405180910390f35b34801561088957600080fd5b50610892611798565b6040518082815260200191505060405180910390f35b606060338054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109405780601f1061091557610100808354040283529160200191610940565b820191906000526020600020905b81548152906001019060200180831161092357829003601f168201915b5050505050905090565b606d602052816000526040600020602052806000526040600020600091509150505481565b600081606d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60008060019054906101000a900460ff1680610a815750610a806117b5565b5b80610a9857506000809054906101000a900460ff16155b1515610b32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff161590508015610b81576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8360339080519060200190610b97929190611f34565b508260349080519060200190610bae929190611f34565b5081603560006101000a81548160ff021916908360ff1602179055508015610beb5760008060016101000a81548160ff0219169083151502179055505b50505050565b6000606a54905090565b600080600080610c0a86611161565b149150610c9c84606d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117c690919063ffffffff16565b606d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d31606b548561181090919063ffffffff16565b9050610d8581606c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117c690919063ffffffff16565b606c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e1a81606c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118dd90919063ffffffff16565b606c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550818015610e7257506000610e7087611161565b115b15610e8557610e8084611967565b610ea1565b6000610e9087611161565b1415610ea057610e9f84611a65565b5b5b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a36001925050509392505050565b601281565b6000603560009054906101000a900460ff16905090565b60001981565b606c6020528060005260406000206000915090505481565b6000610fde82606d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118dd90919063ffffffff16565b606d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925606d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b606a5481565b670de0b6b3a764000081565b60695481565b60006111b7606b54606c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b9d90919063ffffffff16565b9050919050565b6012600a0a61ea600281565b606060348054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112625780601f1061123757610100808354040283529160200191611262565b820191906000526020600020905b81548152906001019060200180831161124557829003601f168201915b5050505050905090565b600080606d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808310151561137e576000606d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611412565b61139183826117c690919063ffffffff16565b606d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925606d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008061150d86611161565b149150611525606b548561181090919063ffffffff16565b905061157981606c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117c690919063ffffffff16565b606c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061160e81606c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118dd90919063ffffffff16565b606c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508180156116665750600061166433611161565b115b156116795761167484611967565b611695565b600061168433611161565b14156116945761169384611a65565b5b5b8473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a360019250505092915050565b600081565b606b5481565b6000606d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6012600a0a61ea60026000198115156117ad57fe5b066000190381565b600080303b90506000811491505090565b600061180883836040805190810160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611be7565b905092915050565b600080600084141561182557600091506118d6565b828402905082848281151561183657fe5b041415156118d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81526020017f770000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8091505b5092915050565b600080828401905083811015151561195d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000806119ac606a5461199e670de0b6b3a7640000611990600a88611b9d90919063ffffffff16565b61181090919063ffffffff16565b611b9d90919063ffffffff16565b91506119c982670de0b6b3a76400006118dd90919063ffffffff16565b91506119dd82670de0b6b3a7640000611ca8565b90506000811215611a1057611a056119f482611d0d565b606a546117c690919063ffffffff16565b606a81905550611a2c565b611a2581606a546118dd90919063ffffffff16565b606a819055505b611a5a606a546012600a0a61ea6002600019811515611a4757fe5b0660001903611b9d90919063ffffffff16565b606b81905550505050565b600080611aaa606a54611a9c670de0b6b3a7640000611a8e600a88611b9d90919063ffffffff16565b61181090919063ffffffff16565b611b9d90919063ffffffff16565b9150611ac782670de0b6b3a76400006117c690919063ffffffff16565b9150611adb82670de0b6b3a7640000611ca8565b90506000811215611b0e57611b03611af282611d0d565b606a546117c690919063ffffffff16565b606a81905550611b2a565b611b2381606a546118dd90919063ffffffff16565b606a819055505b6000196fffffffffffffffffffffffffffffffff16606a541115611b64576000196fffffffffffffffffffffffffffffffff16606a819055505b611b92606a546012600a0a61ea6002600019811515611b7f57fe5b0660001903611b9d90919063ffffffff16565b606b81905550505050565b6000611bdf83836040805190810160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d40565b905092915050565b6000808484111583901515611c97576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611c5c578082015181840152602081019050611c41565b50505050905090810190601f168015611c895780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508385039050809150509392505050565b600080611cb483611e0a565b9050611d0481611cf6611cd884611cca89611e0a565b611e2c90919063ffffffff16565b611ce8611ce3610bf1565b611e0a565b611e7090919063ffffffff16565b611edc90919063ffffffff16565b91505092915050565b600060ff60019060020a028214151515611d2657600080fd5b60008212611d345781611d39565b816000035b9050919050565b6000806000841183901515611df0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611db5578082015181840152602081019050611d9a565b50505050905090810190601f168015611de25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508385811515611dfc57fe5b049050809150509392505050565b600060ff60019060020a02198211151515611e2457600080fd5b819050919050565b600080828403905060008312158015611e455750838113155b80611e5b5750600083128015611e5a57508381135b5b1515611e6657600080fd5b8091505092915050565b600080828402905060ff60019060020a0281141580611ea3575060ff60019060020a02831660ff60019060020a02851614155b1515611eae57600080fd5b6000831480611ec75750838382811515611ec457fe5b05145b1515611ed257600080fd5b8091505092915050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141580611f15575060ff60019060020a028314155b1515611f2057600080fd5b8183811515611f2b57fe5b05905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611f7557805160ff1916838001178555611fa3565b82800160010185558215611fa3579182015b82811115611fa2578251825591602001919060010190611f87565b5b509050611fb09190611fb4565b5090565b611fd691905b80821115611fd2576000816000905550600101611fba565b5090565b905600a165627a7a723058206ced34b94b3bbef3a7ac29edc0e0237ba7412124309f7d4cffa0f27a993fe4f80029
Deployed Bytecode
0x608060405260043610610133576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146101385780630930f190146101c8578063095ea7b31461023f5780631624f6c6146102a457806318160ddd1461036057806323b872dd1461038b5780632e0f262514610410578063313ce5671461043b57806333a581d21461046c57806336fed9751461049757806339509351146104ee5780633eaaf86b146105535780634c4be8a61461057e5780636b0a26d2146105a957806370a08231146105d45780637d48d2411461062b57806395d89b4114610656578063a457c2d7146106e6578063a9059cbb1461074b578063bc1b392d146107b0578063c4996f51146107db578063dd62ed3e14610806578063e00713e91461087d575b600080fd5b34801561014457600080fd5b5061014d6108a8565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018d578082015181840152602081019050610172565b50505050905090810190601f1680156101ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101d457600080fd5b50610229600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061094a565b6040518082815260200191505060405180910390f35b34801561024b57600080fd5b5061028a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061096f565b604051808215151515815260200191505060405180910390f35b3480156102b057600080fd5b5061035e600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610a61565b005b34801561036c57600080fd5b50610375610bf1565b6040518082815260200191505060405180910390f35b34801561039757600080fd5b506103f6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bfb565b604051808215151515815260200191505060405180910390f35b34801561041c57600080fd5b50610425610f13565b6040518082815260200191505060405180910390f35b34801561044757600080fd5b50610450610f18565b604051808260ff1660ff16815260200191505060405180910390f35b34801561047857600080fd5b50610481610f2f565b6040518082815260200191505060405180910390f35b3480156104a357600080fd5b506104d8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f35565b6040518082815260200191505060405180910390f35b3480156104fa57600080fd5b50610539600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f4d565b604051808215151515815260200191505060405180910390f35b34801561055f57600080fd5b50610568611149565b6040518082815260200191505060405180910390f35b34801561058a57600080fd5b5061059361114f565b6040518082815260200191505060405180910390f35b3480156105b557600080fd5b506105be61115b565b6040518082815260200191505060405180910390f35b3480156105e057600080fd5b50610615600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611161565b6040518082815260200191505060405180910390f35b34801561063757600080fd5b506106406111be565b6040518082815260200191505060405180910390f35b34801561066257600080fd5b5061066b6111ca565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106ab578082015181840152602081019050610690565b50505050905090810190601f1680156106d85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156106f257600080fd5b50610731600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061126c565b604051808215151515815260200191505060405180910390f35b34801561075757600080fd5b50610796600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114fe565b604051808215151515815260200191505060405180910390f35b3480156107bc57600080fd5b506107c5611706565b6040518082815260200191505060405180910390f35b3480156107e757600080fd5b506107f061170b565b6040518082815260200191505060405180910390f35b34801561081257600080fd5b50610867600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611711565b6040518082815260200191505060405180910390f35b34801561088957600080fd5b50610892611798565b6040518082815260200191505060405180910390f35b606060338054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109405780601f1061091557610100808354040283529160200191610940565b820191906000526020600020905b81548152906001019060200180831161092357829003601f168201915b5050505050905090565b606d602052816000526040600020602052806000526040600020600091509150505481565b600081606d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60008060019054906101000a900460ff1680610a815750610a806117b5565b5b80610a9857506000809054906101000a900460ff16155b1515610b32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff161590508015610b81576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8360339080519060200190610b97929190611f34565b508260349080519060200190610bae929190611f34565b5081603560006101000a81548160ff021916908360ff1602179055508015610beb5760008060016101000a81548160ff0219169083151502179055505b50505050565b6000606a54905090565b600080600080610c0a86611161565b149150610c9c84606d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117c690919063ffffffff16565b606d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d31606b548561181090919063ffffffff16565b9050610d8581606c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117c690919063ffffffff16565b606c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e1a81606c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118dd90919063ffffffff16565b606c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550818015610e7257506000610e7087611161565b115b15610e8557610e8084611967565b610ea1565b6000610e9087611161565b1415610ea057610e9f84611a65565b5b5b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a36001925050509392505050565b601281565b6000603560009054906101000a900460ff16905090565b60001981565b606c6020528060005260406000206000915090505481565b6000610fde82606d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118dd90919063ffffffff16565b606d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925606d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b606a5481565b670de0b6b3a764000081565b60695481565b60006111b7606b54606c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b9d90919063ffffffff16565b9050919050565b6012600a0a61ea600281565b606060348054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112625780601f1061123757610100808354040283529160200191611262565b820191906000526020600020905b81548152906001019060200180831161124557829003601f168201915b5050505050905090565b600080606d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808310151561137e576000606d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611412565b61139183826117c690919063ffffffff16565b606d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925606d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008061150d86611161565b149150611525606b548561181090919063ffffffff16565b905061157981606c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117c690919063ffffffff16565b606c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061160e81606c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118dd90919063ffffffff16565b606c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508180156116665750600061166433611161565b115b156116795761167484611967565b611695565b600061168433611161565b14156116945761169384611a65565b5b5b8473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a360019250505092915050565b600081565b606b5481565b6000606d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6012600a0a61ea60026000198115156117ad57fe5b066000190381565b600080303b90506000811491505090565b600061180883836040805190810160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611be7565b905092915050565b600080600084141561182557600091506118d6565b828402905082848281151561183657fe5b041415156118d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81526020017f770000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8091505b5092915050565b600080828401905083811015151561195d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000806119ac606a5461199e670de0b6b3a7640000611990600a88611b9d90919063ffffffff16565b61181090919063ffffffff16565b611b9d90919063ffffffff16565b91506119c982670de0b6b3a76400006118dd90919063ffffffff16565b91506119dd82670de0b6b3a7640000611ca8565b90506000811215611a1057611a056119f482611d0d565b606a546117c690919063ffffffff16565b606a81905550611a2c565b611a2581606a546118dd90919063ffffffff16565b606a819055505b611a5a606a546012600a0a61ea6002600019811515611a4757fe5b0660001903611b9d90919063ffffffff16565b606b81905550505050565b600080611aaa606a54611a9c670de0b6b3a7640000611a8e600a88611b9d90919063ffffffff16565b61181090919063ffffffff16565b611b9d90919063ffffffff16565b9150611ac782670de0b6b3a76400006117c690919063ffffffff16565b9150611adb82670de0b6b3a7640000611ca8565b90506000811215611b0e57611b03611af282611d0d565b606a546117c690919063ffffffff16565b606a81905550611b2a565b611b2381606a546118dd90919063ffffffff16565b606a819055505b6000196fffffffffffffffffffffffffffffffff16606a541115611b64576000196fffffffffffffffffffffffffffffffff16606a819055505b611b92606a546012600a0a61ea6002600019811515611b7f57fe5b0660001903611b9d90919063ffffffff16565b606b81905550505050565b6000611bdf83836040805190810160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d40565b905092915050565b6000808484111583901515611c97576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611c5c578082015181840152602081019050611c41565b50505050905090810190601f168015611c895780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508385039050809150509392505050565b600080611cb483611e0a565b9050611d0481611cf6611cd884611cca89611e0a565b611e2c90919063ffffffff16565b611ce8611ce3610bf1565b611e0a565b611e7090919063ffffffff16565b611edc90919063ffffffff16565b91505092915050565b600060ff60019060020a028214151515611d2657600080fd5b60008212611d345781611d39565b816000035b9050919050565b6000806000841183901515611df0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611db5578082015181840152602081019050611d9a565b50505050905090810190601f168015611de25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508385811515611dfc57fe5b049050809150509392505050565b600060ff60019060020a02198211151515611e2457600080fd5b819050919050565b600080828403905060008312158015611e455750838113155b80611e5b5750600083128015611e5a57508381135b5b1515611e6657600080fd5b8091505092915050565b600080828402905060ff60019060020a0281141580611ea3575060ff60019060020a02831660ff60019060020a02851614155b1515611eae57600080fd5b6000831480611ec75750838382811515611ec457fe5b05145b1515611ed257600080fd5b8091505092915050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141580611f15575060ff60019060020a028314155b1515611f2057600080fd5b8183811515611f2b57fe5b05905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611f7557805160ff1916838001178555611fa3565b82800160010185558215611fa3579182015b82811115611fa2578251825591602001919060010190611f87565b5b509050611fb09190611fb4565b5090565b611fd691905b80821115611fd2576000816000905550600101611fba565b5090565b905600a165627a7a723058206ced34b94b3bbef3a7ac29edc0e0237ba7412124309f7d4cffa0f27a993fe4f80029
Deployed Bytecode Sourcemap
4014:8380:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3621:69;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3621:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3621:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5077:74;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5077:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10665:233;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10665:233:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3406:158;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3406:158:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5647:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5647:123:0;;;;;;;;;;;;;;;;;;;;;;;9349:674;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9349:674:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4778:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4778:37:0;;;;;;;;;;;;;;;;;;;;;;;3893:76;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3893:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;4274:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4274:49:0;;;;;;;;;;;;;;;;;;;;;;;4896:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4896:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11271:343;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11271:343:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4824:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4824:27:0;;;;;;;;;;;;;;;;;;;;;;;4693:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4693:38:0;;;;;;;;;;;;;;;;;;;;;;;4738:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4738:34:0;;;;;;;;;;;;;;;;;;;;;;;5891:159;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5891:159:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4330:79;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4330:79:0;;;;;;;;;;;;;;;;;;;;;;;3749:73;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3749:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3749:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11876:512;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11876:512:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8014:592;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8014:592:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4168:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4168:41:0;;;;;;;;;;;;;;;;;;;;;;;4858:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4858:31:0;;;;;;;;;;;;;;;;;;;;;;;8913:174;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8913:174:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4593:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4593:91:0;;;;;;;;;;;;;;;;;;;;;;;3621:69;3657:6;3679:5;3672:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3621:69;:::o;5077:74::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10665:233::-;10748:4;10811:5;10770:17;:29;10788:10;10770:29;;;;;;;;;;;;;;;:38;10800:7;10770:38;;;;;;;;;;;;;;;:46;;;;10853:7;10832:36;;10841:10;10832:36;;;10862:5;10832:36;;;;;;;;;;;;;;;;;;10886:4;10879:11;;10665:233;;;;:::o;3406:158::-;1274:19;1167:12;;;;;;;;;;;:31;;;;1183:15;:13;:15::i;:::-;1167:31;:47;;;;1203:11;;;;;;;;;;;1202:12;1167:47;1159:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1297:12;;;;;;;;;;;1296:13;1274:35;;1320:14;1316:83;;;1360:4;1345:12;;:19;;;;;;;;;;;;;;;;;;1387:4;1373:11;;:18;;;;;;;;;;;;;;;;;;1316:83;3504:4;3496:5;:12;;;;;;;;;;;;:::i;:::-;;3525:6;3515:7;:16;;;;;;;;;;;;:::i;:::-;;3550:8;3538:9;;:20;;;;;;;;;;;;;;;;;;1421:14;1417:57;;;1461:5;1446:12;;:20;;;;;;;;;;;;;;;;;;1417:57;3406:158;;;;:::o;5647:123::-;5718:7;5750:12;;5743:19;;5647:123;:::o;9349:674::-;9446:4;9465:14;9609:16;4207:1;9482:13;9492:2;9482:9;:13::i;:::-;:21;9465:38;;9552:46;9592:5;9552:17;:23;9570:4;9552:23;;;;;;;;;;;;;;;:35;9576:10;9552:35;;;;;;;;;;;;;;;;:39;;:46;;;;:::i;:::-;9514:17;:23;9532:4;9514:23;;;;;;;;;;;;;;;:35;9538:10;9514:35;;;;;;;;;;;;;;;:84;;;;9628:27;9638:16;;9628:5;:9;;:27;;;;:::i;:::-;9609:46;;9687:32;9710:8;9687:12;:18;9700:4;9687:18;;;;;;;;;;;;;;;;:22;;:32;;;;:::i;:::-;9666:12;:18;9679:4;9666:18;;;;;;;;;;;;;;;:53;;;;9749:30;9770:8;9749:12;:16;9762:2;9749:16;;;;;;;;;;;;;;;;:20;;:30;;;;:::i;:::-;9730:12;:16;9743:2;9730:16;;;;;;;;;;;;;;;:49;;;;9793:9;:35;;;;;4207:1;9806:15;9816:4;9806:9;:15::i;:::-;:22;9793:35;9790:163;;;9845:17;9856:5;9845:10;:17::i;:::-;9790:163;;;4207:1;9883:15;9893:4;9883:9;:15::i;:::-;:23;9880:73;;;9923:18;9935:5;9923:11;:18::i;:::-;9880:73;9790:163;9983:2;9968:25;;9977:4;9968:25;;;9987:5;9968:25;;;;;;;;;;;;;;;;;;10011:4;10004:11;;9349:674;;;;;;;:::o;4778:37::-;4813:2;4778:37;:::o;3893:76::-;3933:5;3954:9;;;;;;;;;;;3947:16;;3893:76;:::o;4274:49::-;4321:1;4312:11;4274:49;:::o;4896:47::-;;;;;;;;;;;;;;;;;:::o;11271:343::-;11369:4;11445:54;11488:10;11445:17;:29;11463:10;11445:29;;;;;;;;;;;;;;;:38;11475:7;11445:38;;;;;;;;;;;;;;;;:42;;:54;;;;:::i;:::-;11391:17;:29;11409:10;11391:29;;;;;;;;;;;;;;;:38;11421:7;11391:38;;;;;;;;;;;;;;;:108;;;;11536:7;11515:69;;11524:10;11515:69;;;11545:17;:29;11563:10;11545:29;;;;;;;;;;;;;;;:38;11575:7;11545:38;;;;;;;;;;;;;;;;11515:69;;;;;;;;;;;;;;;;;;11602:4;11595:11;;11271:343;;;;:::o;4824:27::-;;;;:::o;4693:38::-;4723:8;4693:38;:::o;4738:34::-;;;;:::o;5891:159::-;5971:7;6003:39;6025:16;;6003:12;:17;6016:3;6003:17;;;;;;;;;;;;;;;;:21;;:39;;;;:::i;:::-;5996:46;;5891:159;;;:::o;4330:79::-;4813:2;4396;:12;4381:11;:28;4330:79;:::o;3749:73::-;3787:6;3809:7;3802:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3749:73;:::o;11876:512::-;11979:4;12001:16;12020:17;:29;12038:10;12020:29;;;;;;;;;;;;;;;:38;12050:7;12020:38;;;;;;;;;;;;;;;;12001:57;;12092:8;12073:15;:27;;12069:205;;;12158:1;12117:17;:29;12135:10;12117:29;;;;;;;;;;;;;;;:38;12147:7;12117:38;;;;;;;;;;;;;;;:42;;;;12069:205;;;12233:29;12246:15;12233:8;:12;;:29;;;;:::i;:::-;12192:17;:29;12210:10;12192:29;;;;;;;;;;;;;;;:38;12222:7;12192:38;;;;;;;;;;;;;;;:70;;;;12069:205;12310:7;12289:69;;12298:10;12289:69;;;12319:17;:29;12337:10;12319:29;;;;;;;;;;;;;;;:38;12349:7;12319:38;;;;;;;;;;;;;;;;12289:69;;;;;;;;;;;;;;;;;;12376:4;12369:11;;11876:512;;;;;:::o;8014:592::-;8093:4;8112:14;8161:16;4207:1;8129:13;8139:2;8129:9;:13::i;:::-;:21;8112:38;;8180:27;8190:16;;8180:5;:9;;:27;;;;:::i;:::-;8161:46;;8245:38;8274:8;8245:12;:24;8258:10;8245:24;;;;;;;;;;;;;;;;:28;;:38;;;;:::i;:::-;8218:12;:24;8231:10;8218:24;;;;;;;;;;;;;;;:65;;;;8313:30;8334:8;8313:12;:16;8326:2;8313:16;;;;;;;;;;;;;;;;:20;;:30;;;;:::i;:::-;8294:12;:16;8307:2;8294:16;;;;;;;;;;;;;;;:49;;;;8357:9;:41;;;;;4207:1;8370:21;8380:10;8370:9;:21::i;:::-;:28;8357:41;8354:176;;;8415:17;8426:5;8415:10;:17::i;:::-;8354:176;;;4207:1;8454:21;8464:10;8454:9;:21::i;:::-;:29;8450:80;;;8500:18;8512:5;8500:11;:18::i;:::-;8450:80;8354:176;8566:2;8545:31;;8554:10;8545:31;;;8570:5;8545:31;;;;;;;;;;;;;;;;;;8594:4;8587:11;;8014:592;;;;;;:::o;4168:41::-;4207:1;4168:41;:::o;4858:31::-;;;;:::o;8913:174::-;9013:7;9045:17;:25;9063:6;9045:25;;;;;;;;;;;;;;;:34;9071:7;9045:34;;;;;;;;;;;;;;;;9038:41;;8913:174;;;;:::o;4593:91::-;4813:2;4396;:12;4381:11;:28;4321:1;4312:11;4645:38;;;;;;;;4321:1;4312:11;4630:54;4593:91;:::o;1568:476::-;1615:4;1962:10;2008:7;1996:20;1990:26;;2037:1;2031:2;:7;2024:14;;1568:476;;:::o;13187:136::-;13245:7;13272:43;13276:1;13279;13272:43;;;;;;;;;;;;;;;;;;:3;:43::i;:::-;13265:50;;13187:136;;;;:::o;14077:471::-;14135:7;14435:9;14385:1;14380;:6;14376:47;;;14410:1;14403:8;;;;14376:47;14451:1;14447;:5;14435:17;;14480:1;14475;14471;:5;;;;;;;;:10;14463:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14539:1;14532:8;;14077:471;;;;;;:::o;12723:181::-;12781:7;12801:9;12817:1;12813;:5;12801:17;;12842:1;12837;:6;;12829:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12895:1;12888:8;;12723:181;;;;;:::o;6627:520::-;6684:19;6814:18;6706:48;6741:12;;6708:26;4723:8;6709:15;6721:2;6709:7;:11;;:15;;;;:::i;:::-;6708:21;;:26;;;;:::i;:::-;6706:34;;:48;;;;:::i;:::-;6684:70;;6782:20;6790:11;4723:8;6782:7;;:20;;;;:::i;:::-;6768:34;;6835:36;6854:11;4723:8;6835:18;:36::i;:::-;6814:57;;6901:1;6887:11;:15;6883:193;;;6934:44;6959:17;:11;:15;:17::i;:::-;6934:12;;:16;;:44;;;;:::i;:::-;6919:12;:59;;;;6883:193;;;7026:38;7051:11;7026:12;;:16;;:38;;;;:::i;:::-;7011:12;:53;;;;6883:193;7109:28;7124:12;;4813:2;4396;:12;4381:11;:28;4321:1;4312:11;4645:38;;;;;;;;4321:1;4312:11;4630:54;7109:14;;:28;;;;:::i;:::-;7090:16;:47;;;;6627:520;;;:::o;7159:625::-;7217:19;7347:18;7239:48;7274:12;;7241:26;4723:8;7242:15;7254:2;7242:7;:11;;:15;;;;:::i;:::-;7241:21;;:26;;;;:::i;:::-;7239:34;;:48;;;;:::i;:::-;7217:70;;7315:20;7323:11;4723:8;7315:7;;:20;;;;:::i;:::-;7301:34;;7368:36;7387:11;4723:8;7368:18;:36::i;:::-;7347:57;;7434:1;7420:11;:15;7416:193;;;7467:44;7492:17;:11;:15;:17::i;:::-;7467:12;;:16;;:44;;;;:::i;:::-;7452:12;:59;;;;7416:193;;;7559:38;7584:11;7559:12;;:16;;:38;;;;:::i;:::-;7544:12;:53;;;;7416:193;4265:1;4256:11;7649:10;;7634:12;;:25;7630:83;;;4265:1;4256:11;7691:10;;7676:12;:25;;;;7630:83;7746:28;7761:12;;4813:2;4396;:12;4381:11;:28;4321:1;4312:11;4645:38;;;;;;;;4321:1;4312:11;4630:54;7746:14;;:28;;;;:::i;:::-;7727:16;:47;;;;7159:625;;;:::o;15024:132::-;15082:7;15109:39;15113:1;15116;15109:39;;;;;;;;;;;;;;;;;;:3;:39::i;:::-;15102:46;;15024:132;;;;:::o;13626:192::-;13712:7;13772:9;13745:1;13740;:6;;13748:12;13732:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;13732:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13788:1;13784;:5;13772:17;;13809:1;13802:8;;13626:192;;;;;;:::o;6068:412::-;6179:6;6278:23;6304:25;:10;:23;:25::i;:::-;6278:51;;6347:125;6455:16;6347:89;6394:41;6418:16;6394:19;:4;:17;:19::i;:::-;:23;;:41;;;;:::i;:::-;6347:28;:13;:11;:13::i;:::-;:26;:28::i;:::-;:46;;:89;;;;:::i;:::-;:107;;:125;;;;:::i;:::-;6340:132;;6068:412;;;;;:::o;19347:161::-;19420:6;17778:3;17772:1;17765:16;;;;19452:1;:15;;19444:24;;;;;;;;19490:1;19486;:5;:14;;19499:1;19486:14;;;19495:1;19494:2;;19486:14;19479:21;;19347:161;;;:::o;15652:278::-;15738:7;15797:9;15770:1;15766;:5;15773:12;15758:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;15758:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15813:1;15809;:5;;;;;;;;15797:17;;15921:1;15914:8;;15652:278;;;;;;:::o;17528:166::-;17611:6;17444:3;17438:1;17430:17;;;;17428:20;17643:1;:15;;17635:24;;;;;;;;17684:1;17670:16;;17528:166;;;:::o;18753:208::-;18836:6;18860:8;18875:1;18871;:5;18860:16;;18901:1;18896;:6;;:16;;;;;18911:1;18906;:6;;18896:16;18895:38;;;;18922:1;18918;:5;:14;;;;;18931:1;18927;:5;18918:14;18895:38;18887:47;;;;;;;;18952:1;18945:8;;18753:208;;;;;:::o;17939:335::-;18022:6;18046:8;18061:1;18057;:5;18046:16;;17778:3;17772:1;17765:16;;;;18147:1;:15;;:55;;;;17778:3;17772:1;17765:16;;;;18187:1;:14;17778:3;17772:1;17765:16;;;;18167:1;:14;18166:36;;18147:55;18139:64;;;;;;;;18228:1;18223;:6;18222:24;;;;18244:1;18239;18235;:5;;;;;;;;:10;18222:24;18214:33;;;;;;;;18265:1;18258:8;;17939:335;;;;;:::o;18369:291::-;18452:6;18549:2;18544:1;:7;;:26;;;;17778:3;17772:1;17765:16;;;;18555:1;:15;;18544:26;18536:35;;;;;;;;18651:1;18647;:5;;;;;;;;18640:12;;18369:291;;;;:::o;4014:8380::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
bzzr://6ced34b94b3bbef3a7ac29edc0e0237ba7412124309f7d4cffa0f27a993fe4f8
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.