ERC-20
Overview
Max Total Supply
37.304612923745335444 OFD
Holders
13
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
OFD
Compiler Version
v0.7.3+commit.9bfce1f6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-10-15 */ pragma solidity ^0.7.0; //SPDX-License-Identifier: UNLICENSED //t.me/OnlyForDegens interface IERC20 { function totalSupply() external view returns (uint); function balanceOf(address who) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function transfer(address to, uint value) external returns (bool); function approve(address spender, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); event Transfer(address indexed from, address indexed to, uint value); event Approval(address indexed owner, address indexed spender, uint value); } interface IUNIv2 { function addLiquidityETH(address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline) external payable returns (uint amountToken, uint amountETH, uint liquidity); } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } contract OFD is IERC20, Context { using SafeMath for uint; using Address for address; IUNIv2 uniswap = IUNIv2(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); string public _symbol; string public _name; uint8 public _decimals; uint _totalSupply; uint public tokensBought; bool public isStopped = false; bool public canRefund = false; bool public devClaimed = false; bool public moonMissionStarted = false; bool public feeOnTransfer = false; uint public canRefundTime; uint public tokensForUniswap = 13 ether; uint256 tokensForAidrop = 3 ether; address payable owner; uint256 public ethAmount = 1 ether; mapping(address => uint) _balances; mapping(address => mapping(address => uint)) _allowances; mapping(address => uint) bought; modifier onlyWhenRunning { require(!isStopped); _; } modifier onlyOwner() { require(msg.sender == owner, "You are not the owner"); _; } constructor() { owner = msg.sender; _symbol = "OFD"; _name = "OnlyForDegens"; _decimals = 18; _totalSupply = 40 ether; _balances[address(this)] = _totalSupply; emit Transfer(address(0), address(this), _totalSupply); } receive() external payable { buyTokens(); } function airDrop(address[] memory recipients) external onlyOwner{ for (uint256 i = 0; i < recipients.length; i++) { if (balanceOf(address(this)) >= 1 ether) transfer(recipients[i],1 ether); } } function pauseUnpausePresale(bool _isStopped) external onlyOwner{ isStopped = _isStopped; } function claimDevFee() external onlyOwner { require(!devClaimed); uint256 amountETH = address(this).balance.mul(10).div(100); uint256 amountOFT = _totalSupply.mul(5).div(100); // 2 tokens uint256 marketingOFT = _totalSupply.mul(5).div(100); // 2 tokens owner.transfer(amountETH); _balances[owner] = _balances[owner].add(amountOFT.add(marketingOFT)); _balances[address(this)] = _balances[address(this)].sub(amountOFT.add(marketingOFT)); devClaimed = true; emit Transfer(address(this), owner, amountOFT.add(marketingOFT)); } function enableRefundAllFucDDEGENS() external onlyOwner { canRefund = true; canRefundTime = block.timestamp + 2 minutes; } function refundCaller() external { require(canRefund == true); require(block.timestamp >= canRefundTime); require(address(this).balance >= ethAmount); if (bought[msg.sender] == ethAmount){ msg.sender.transfer(ethAmount); _balances[msg.sender] = _balances[msg.sender].sub(ethAmount); bought[msg.sender] = 0; } } function buyTokens() onlyWhenRunning public payable { require(msg.value == ethAmount, "You did not sent exactly 1 ETH"); require(tokensBought < 20 ether, "Hard cap reached"); require(bought[msg.sender] == 0 , "You already bought"); require(!canRefund); uint tokens = msg.value; require(_balances[address(this)] >= tokens); _balances[msg.sender] = _balances[msg.sender].add(tokens); _balances[address(this)] = _balances[address(this)].sub(tokens); bought[msg.sender] = bought[msg.sender].add(msg.value); tokensBought = tokensBought.add(tokens); emit Transfer(address(this), msg.sender, tokens); } function isUserBoughtInPresale(address user) external view returns(bool){ if (bought[user] == ethAmount) return true; else return false; } function moonMissionStart() external onlyOwner { require(devClaimed == true); require(!moonMissionStarted); uint256 ETH = address(this).balance; uint tokensToBurn = balanceOf(address(this)).sub(tokensForUniswap).sub(tokensForAidrop); this.approve(address(uniswap), tokensForUniswap); uniswap.addLiquidityETH { value: ETH } ( address(this), tokensForUniswap, tokensForUniswap, ETH, address(0), block.timestamp + 5 minutes ); if (tokensToBurn > 0) { _balances[address(this)] = _balances[address(this)].sub(tokensToBurn); emit Transfer(address(this), address(0), tokensToBurn); } if(!isStopped) isStopped = true; moonMissionStarted = true; feeOnTransfer = true; } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address _owner, address spender) public view virtual override returns (uint256) { return _allowances[_owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); if (feeOnTransfer == true){ uint256 ToBurn = amount.mul(3).div(100); uint256 ToTransfer = amount.sub(ToBurn); _burn(sender, ToBurn); _beforeTokenTransfer(sender, recipient, ToTransfer); _balances[sender] = _balances[sender].sub(ToTransfer, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(ToTransfer); emit Transfer(sender, recipient, ToTransfer); } else { _beforeTokenTransfer(sender, recipient, amount); _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance"); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } function _approve(address _owner, address spender, uint256 amount) internal virtual { require(_owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[_owner][spender] = amount; emit Approval(_owner, spender, amount); } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be to transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { } } library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain`call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly // solhint-disable-next-line no-inline-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"}],"name":"airDrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTokens","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"canRefund","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"canRefundTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimDevFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devClaimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableRefundAllFucDDEGENS","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ethAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeOnTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isStopped","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isUserBoughtInPresale","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"moonMissionStart","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"moonMissionStarted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_isStopped","type":"bool"}],"name":"pauseUnpausePresale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"refundCaller","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensBought","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForUniswap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660006101000a81548160ff0219169083151502179055506000600660016101000a81548160ff0219169083151502179055506000600660026101000a81548160ff0219169083151502179055506000600660036101000a81548160ff0219169083151502179055506000600660046101000a81548160ff02191690831515021790555067b469471f801400006008556729a2241af62c0000600955670de0b6b3a7640000600b553480156200011057600080fd5b5033600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600381526020017f4f46440000000000000000000000000000000000000000000000000000000000815250600190805190602001906200019f929190620002ce565b506040518060400160405280600d81526020017f4f6e6c79466f72446567656e730000000000000000000000000000000000000081525060029080519060200190620001ed929190620002ce565b506012600360006101000a81548160ff021916908360ff16021790555068022b1c8c1227a00000600481905550600454600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004546040518082815260200191505060405180910390a362000374565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200031157805160ff191683800117855562000342565b8280016001018555821562000342579182015b828111156200034157825182559160200191906001019062000324565b5b50905062000351919062000355565b5090565b5b808211156200037057600081600090555060010162000356565b5090565b61316d80620003846000396000f3fe6080604052600436106101db5760003560e01c80638a4fb5a411610102578063c98166c011610095578063e1292df511610064578063e1292df514610a7b578063e897888e14610ae2578063ffa84e0914610b0d578063ffe5598e14610b3a576101ea565b8063c98166c014610931578063d0febe4c1461095c578063d28d885214610966578063dd62ed3e146109f6576101ea565b8063a566d54a116100d1578063a566d54a146107dc578063a9059cbb146107f3578063b09f126614610864578063b304a2ad146108f4576101ea565b80638a4fb5a4146106995780638ba32fc0146106c457806395d89b41146106db578063a457c2d71461076b576101ea565b8063313ce5671161017a5780633f683b6a116101495780633f683b6a146105af57806370a08231146105dc578063732783ac146106415780637f83a4a61461066c576101ea565b8063313ce567146104b557806332424aa3146104e357806333d1043314610511578063395093511461053e576101ea565b80630fa1eeab116101b65780630fa1eeab146103b557806318160ddd146103e25780631fde64de1461040d57806323b872dd14610424576101ea565b8062b6849f146101ef57806306fdde03146102b4578063095ea7b314610344576101ea565b366101ea576101e8610b51565b005b600080fd5b3480156101fb57600080fd5b506102b26004803603602081101561021257600080fd5b810190808035906020019064010000000081111561022f57600080fd5b82018360208201111561024157600080fd5b8035906020019184602083028401116401000000008311171561026357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050610fc4565b005b3480156102c057600080fd5b506102c96110e2565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103095780820151818401526020810190506102ee565b50505050905090810190601f1680156103365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561035057600080fd5b5061039d6004803603604081101561036757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611184565b60405180821515815260200191505060405180910390f35b3480156103c157600080fd5b506103ca6111a2565b60405180821515815260200191505060405180910390f35b3480156103ee57600080fd5b506103f76111b5565b6040518082815260200191505060405180910390f35b34801561041957600080fd5b506104226111bf565b005b34801561043057600080fd5b5061049d6004803603606081101561044757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112a9565b60405180821515815260200191505060405180910390f35b3480156104c157600080fd5b506104ca611382565b604051808260ff16815260200191505060405180910390f35b3480156104ef57600080fd5b506104f8611399565b604051808260ff16815260200191505060405180910390f35b34801561051d57600080fd5b506105266113ac565b60405180821515815260200191505060405180910390f35b34801561054a57600080fd5b506105976004803603604081101561056157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113bf565b60405180821515815260200191505060405180910390f35b3480156105bb57600080fd5b506105c4611472565b60405180821515815260200191505060405180910390f35b3480156105e857600080fd5b5061062b600480360360208110156105ff57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611485565b6040518082815260200191505060405180910390f35b34801561064d57600080fd5b506106566114ce565b6040518082815260200191505060405180910390f35b34801561067857600080fd5b506106816114d4565b60405180821515815260200191505060405180910390f35b3480156106a557600080fd5b506106ae6114e7565b6040518082815260200191505060405180910390f35b3480156106d057600080fd5b506106d96114ed565b005b3480156106e757600080fd5b506106f0611903565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610730578082015181840152602081019050610715565b50505050905090810190601f16801561075d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561077757600080fd5b506107c46004803603604081101561078e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506119a5565b60405180821515815260200191505060405180910390f35b3480156107e857600080fd5b506107f1611a72565b005b3480156107ff57600080fd5b5061084c6004803603604081101561081657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611f0a565b60405180821515815260200191505060405180910390f35b34801561087057600080fd5b50610879611f28565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108b957808201518184015260208101905061089e565b50505050905090810190601f1680156108e65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561090057600080fd5b5061092f6004803603602081101561091757600080fd5b81019080803515159060200190929190505050611fc6565b005b34801561093d57600080fd5b506109466120a6565b6040518082815260200191505060405180910390f35b610964610b51565b005b34801561097257600080fd5b5061097b6120ac565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156109bb5780820151818401526020810190506109a0565b50505050905090810190601f1680156109e85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610a0257600080fd5b50610a6560048036036040811015610a1957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061214a565b6040518082815260200191505060405180910390f35b348015610a8757600080fd5b50610aca60048036036020811015610a9e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506121d1565b60405180821515815260200191505060405180910390f35b348015610aee57600080fd5b50610af761222f565b6040518082815260200191505060405180910390f35b348015610b1957600080fd5b50610b22612235565b60405180821515815260200191505060405180910390f35b348015610b4657600080fd5b50610b4f612248565b005b600660009054906101000a900460ff1615610b6b57600080fd5b600b543414610be2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f596f7520646964206e6f742073656e742065786163746c79203120455448000081525060200191505060405180910390fd5b6801158e460913d0000060055410610c62576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f486172642063617020726561636865640000000000000000000000000000000081525060200191505060405180910390fd5b6000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d17576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f596f7520616c726561647920626f75676874000000000000000000000000000081525060200191505060405180910390fd5b600660019054906101000a900460ff1615610d3157600080fd5b600034905080600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610d8257600080fd5b610dd481600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123f790919063ffffffff16565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e6981600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247f90919063ffffffff16565b600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610efe34600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123f790919063ffffffff16565b600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f56816005546123f790919063ffffffff16565b6005819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611087576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f7520617265206e6f7420746865206f776e6572000000000000000000000081525060200191505060405180910390fd5b60005b81518110156110de57670de0b6b3a76400006110a530611485565b106110d1576110cf8282815181106110b957fe5b6020026020010151670de0b6b3a7640000611f0a565b505b808060010191505061108a565b5050565b606060028054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561117a5780601f1061114f5761010080835404028352916020019161117a565b820191906000526020600020905b81548152906001019060200180831161115d57829003601f168201915b5050505050905090565b60006111986111916124c9565b84846124d1565b6001905092915050565b600660049054906101000a900460ff1681565b6000600454905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611282576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f7520617265206e6f7420746865206f776e6572000000000000000000000081525060200191505060405180910390fd5b6001600660016101000a81548160ff02191690831515021790555060784201600781905550565b60006112b68484846126c8565b611377846112c26124c9565b6113728560405180606001604052806028815260200161308160289139600d60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006113286124c9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bb19092919063ffffffff16565b6124d1565b600190509392505050565b6000600360009054906101000a900460ff16905090565b600360009054906101000a900460ff1681565b600660039054906101000a900460ff1681565b60006114686113cc6124c9565b8461146385600d60006113dd6124c9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123f790919063ffffffff16565b6124d1565b6001905092915050565b600660009054906101000a900460ff1681565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60055481565b600660019054906101000a900460ff1681565b60085481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f7520617265206e6f7420746865206f776e6572000000000000000000000081525060200191505060405180910390fd5b600660029054906101000a900460ff16156115ca57600080fd5b60006115f360646115e5600a47612c7190919063ffffffff16565b612cf790919063ffffffff16565b9050600061162060646116126005600454612c7190919063ffffffff16565b612cf790919063ffffffff16565b9050600061164d606461163f6005600454612c7190919063ffffffff16565b612cf790919063ffffffff16565b9050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501580156116b7573d6000803e3d6000fd5b5061173e6116ce82846123f790919063ffffffff16565b600c6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123f790919063ffffffff16565b600c6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118076117b982846123f790919063ffffffff16565b600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247f90919063ffffffff16565b600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600660026101000a81548160ff021916908315150217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6118e984866123f790919063ffffffff16565b6040518082815260200191505060405180910390a3505050565b606060018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561199b5780601f106119705761010080835404028352916020019161199b565b820191906000526020600020905b81548152906001019060200180831161197e57829003601f168201915b5050505050905090565b6000611a686119b26124c9565b84611a638560405180606001604052806025815260200161311360259139600d60006119dc6124c9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bb19092919063ffffffff16565b6124d1565b6001905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b35576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f7520617265206e6f7420746865206f776e6572000000000000000000000081525060200191505060405180910390fd5b60011515600660029054906101000a900460ff16151514611b5557600080fd5b600660039054906101000a900460ff1615611b6f57600080fd5b60004790506000611ba7600954611b99600854611b8b30611485565b61247f90919063ffffffff16565b61247f90919063ffffffff16565b90503073ffffffffffffffffffffffffffffffffffffffff1663095ea7b360008054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611c3c57600080fd5b505af1158015611c50573d6000803e3d6000fd5b505050506040513d6020811015611c6657600080fd5b81019080805190602001909291905050505060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719833060085460085487600061012c42016040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b158015611d4857600080fd5b505af1158015611d5c573d6000803e3d6000fd5b50505050506040513d6060811015611d7357600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050506000811115611ea057611df681600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247f90919063ffffffff16565b600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b600660009054906101000a900460ff16611ed0576001600660006101000a81548160ff0219169083151502179055505b6001600660036101000a81548160ff0219169083151502179055506001600660046101000a81548160ff0219169083151502179055505050565b6000611f1e611f176124c9565b84846126c8565b6001905092915050565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611fbe5780601f10611f9357610100808354040283529160200191611fbe565b820191906000526020600020905b815481529060010190602001808311611fa157829003601f168201915b505050505081565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612089576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f7520617265206e6f7420746865206f776e6572000000000000000000000081525060200191505060405180910390fd5b80600660006101000a81548160ff02191690831515021790555050565b600b5481565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156121425780601f1061211757610100808354040283529160200191612142565b820191906000526020600020905b81548152906001019060200180831161212557829003601f168201915b505050505081565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600b54600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415612225576001905061222a565b600090505b919050565b60075481565b600660029054906101000a900460ff1681565b60011515600660019054906101000a900460ff1615151461226857600080fd5b60075442101561227757600080fd5b600b5447101561228657600080fd5b600b54600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156123f5573373ffffffffffffffffffffffffffffffffffffffff166108fc600b549081150290604051600060405180830381858888f19350505050158015612317573d6000803e3d6000fd5b5061236c600b54600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247f90919063ffffffff16565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b565b600080828401905083811015612475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60006124c183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612bb1565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612557576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806130ef6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156125dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806130186022913960400191505060405180910390fd5b80600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561274e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806130ca6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156127d4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612fd36023913960400191505060405180910390fd5b60011515600660049054906101000a900460ff16151514156129f7576000612819606461280b600385612c7190919063ffffffff16565b612cf790919063ffffffff16565b90506000612830828461247f90919063ffffffff16565b905061283c8583612d41565b612847858583612f07565b6128b38160405180606001604052806026815260200161303a60269139600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bb19092919063ffffffff16565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061294881600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123f790919063ffffffff16565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050612bac565b612a02838383612f07565b612a6e8160405180606001604052806026815260200161303a60269139600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bb19092919063ffffffff16565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b0381600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123f790919063ffffffff16565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b505050565b6000838311158290612c5e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612c23578082015181840152602081019050612c08565b50505050905090810190601f168015612c505780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080831415612c845760009050612cf1565b6000828402905082848281612c9557fe5b0414612cec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806130606021913960400191505060405180910390fd5b809150505b92915050565b6000612d3983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612f0c565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612dc7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806130a96021913960400191505060405180910390fd5b612dd382600083612f07565b612e3f81604051806060016040528060228152602001612ff660229139600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bb19092919063ffffffff16565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e978160045461247f90919063ffffffff16565b600481905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b505050565b60008083118290612fb8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612f7d578082015181840152602081019050612f62565b50505050905090810190601f168015612faa5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581612fc457fe5b04905080915050939250505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d56abb0d9990a13edd6f6fce8d1bbfed617828d19111712be8281aa07fd189e764736f6c63430007030033
Deployed Bytecode
0x6080604052600436106101db5760003560e01c80638a4fb5a411610102578063c98166c011610095578063e1292df511610064578063e1292df514610a7b578063e897888e14610ae2578063ffa84e0914610b0d578063ffe5598e14610b3a576101ea565b8063c98166c014610931578063d0febe4c1461095c578063d28d885214610966578063dd62ed3e146109f6576101ea565b8063a566d54a116100d1578063a566d54a146107dc578063a9059cbb146107f3578063b09f126614610864578063b304a2ad146108f4576101ea565b80638a4fb5a4146106995780638ba32fc0146106c457806395d89b41146106db578063a457c2d71461076b576101ea565b8063313ce5671161017a5780633f683b6a116101495780633f683b6a146105af57806370a08231146105dc578063732783ac146106415780637f83a4a61461066c576101ea565b8063313ce567146104b557806332424aa3146104e357806333d1043314610511578063395093511461053e576101ea565b80630fa1eeab116101b65780630fa1eeab146103b557806318160ddd146103e25780631fde64de1461040d57806323b872dd14610424576101ea565b8062b6849f146101ef57806306fdde03146102b4578063095ea7b314610344576101ea565b366101ea576101e8610b51565b005b600080fd5b3480156101fb57600080fd5b506102b26004803603602081101561021257600080fd5b810190808035906020019064010000000081111561022f57600080fd5b82018360208201111561024157600080fd5b8035906020019184602083028401116401000000008311171561026357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050610fc4565b005b3480156102c057600080fd5b506102c96110e2565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103095780820151818401526020810190506102ee565b50505050905090810190601f1680156103365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561035057600080fd5b5061039d6004803603604081101561036757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611184565b60405180821515815260200191505060405180910390f35b3480156103c157600080fd5b506103ca6111a2565b60405180821515815260200191505060405180910390f35b3480156103ee57600080fd5b506103f76111b5565b6040518082815260200191505060405180910390f35b34801561041957600080fd5b506104226111bf565b005b34801561043057600080fd5b5061049d6004803603606081101561044757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112a9565b60405180821515815260200191505060405180910390f35b3480156104c157600080fd5b506104ca611382565b604051808260ff16815260200191505060405180910390f35b3480156104ef57600080fd5b506104f8611399565b604051808260ff16815260200191505060405180910390f35b34801561051d57600080fd5b506105266113ac565b60405180821515815260200191505060405180910390f35b34801561054a57600080fd5b506105976004803603604081101561056157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113bf565b60405180821515815260200191505060405180910390f35b3480156105bb57600080fd5b506105c4611472565b60405180821515815260200191505060405180910390f35b3480156105e857600080fd5b5061062b600480360360208110156105ff57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611485565b6040518082815260200191505060405180910390f35b34801561064d57600080fd5b506106566114ce565b6040518082815260200191505060405180910390f35b34801561067857600080fd5b506106816114d4565b60405180821515815260200191505060405180910390f35b3480156106a557600080fd5b506106ae6114e7565b6040518082815260200191505060405180910390f35b3480156106d057600080fd5b506106d96114ed565b005b3480156106e757600080fd5b506106f0611903565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610730578082015181840152602081019050610715565b50505050905090810190601f16801561075d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561077757600080fd5b506107c46004803603604081101561078e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506119a5565b60405180821515815260200191505060405180910390f35b3480156107e857600080fd5b506107f1611a72565b005b3480156107ff57600080fd5b5061084c6004803603604081101561081657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611f0a565b60405180821515815260200191505060405180910390f35b34801561087057600080fd5b50610879611f28565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108b957808201518184015260208101905061089e565b50505050905090810190601f1680156108e65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561090057600080fd5b5061092f6004803603602081101561091757600080fd5b81019080803515159060200190929190505050611fc6565b005b34801561093d57600080fd5b506109466120a6565b6040518082815260200191505060405180910390f35b610964610b51565b005b34801561097257600080fd5b5061097b6120ac565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156109bb5780820151818401526020810190506109a0565b50505050905090810190601f1680156109e85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610a0257600080fd5b50610a6560048036036040811015610a1957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061214a565b6040518082815260200191505060405180910390f35b348015610a8757600080fd5b50610aca60048036036020811015610a9e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506121d1565b60405180821515815260200191505060405180910390f35b348015610aee57600080fd5b50610af761222f565b6040518082815260200191505060405180910390f35b348015610b1957600080fd5b50610b22612235565b60405180821515815260200191505060405180910390f35b348015610b4657600080fd5b50610b4f612248565b005b600660009054906101000a900460ff1615610b6b57600080fd5b600b543414610be2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f596f7520646964206e6f742073656e742065786163746c79203120455448000081525060200191505060405180910390fd5b6801158e460913d0000060055410610c62576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f486172642063617020726561636865640000000000000000000000000000000081525060200191505060405180910390fd5b6000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d17576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f596f7520616c726561647920626f75676874000000000000000000000000000081525060200191505060405180910390fd5b600660019054906101000a900460ff1615610d3157600080fd5b600034905080600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610d8257600080fd5b610dd481600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123f790919063ffffffff16565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e6981600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247f90919063ffffffff16565b600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610efe34600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123f790919063ffffffff16565b600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f56816005546123f790919063ffffffff16565b6005819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611087576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f7520617265206e6f7420746865206f776e6572000000000000000000000081525060200191505060405180910390fd5b60005b81518110156110de57670de0b6b3a76400006110a530611485565b106110d1576110cf8282815181106110b957fe5b6020026020010151670de0b6b3a7640000611f0a565b505b808060010191505061108a565b5050565b606060028054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561117a5780601f1061114f5761010080835404028352916020019161117a565b820191906000526020600020905b81548152906001019060200180831161115d57829003601f168201915b5050505050905090565b60006111986111916124c9565b84846124d1565b6001905092915050565b600660049054906101000a900460ff1681565b6000600454905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611282576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f7520617265206e6f7420746865206f776e6572000000000000000000000081525060200191505060405180910390fd5b6001600660016101000a81548160ff02191690831515021790555060784201600781905550565b60006112b68484846126c8565b611377846112c26124c9565b6113728560405180606001604052806028815260200161308160289139600d60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006113286124c9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bb19092919063ffffffff16565b6124d1565b600190509392505050565b6000600360009054906101000a900460ff16905090565b600360009054906101000a900460ff1681565b600660039054906101000a900460ff1681565b60006114686113cc6124c9565b8461146385600d60006113dd6124c9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123f790919063ffffffff16565b6124d1565b6001905092915050565b600660009054906101000a900460ff1681565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60055481565b600660019054906101000a900460ff1681565b60085481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f7520617265206e6f7420746865206f776e6572000000000000000000000081525060200191505060405180910390fd5b600660029054906101000a900460ff16156115ca57600080fd5b60006115f360646115e5600a47612c7190919063ffffffff16565b612cf790919063ffffffff16565b9050600061162060646116126005600454612c7190919063ffffffff16565b612cf790919063ffffffff16565b9050600061164d606461163f6005600454612c7190919063ffffffff16565b612cf790919063ffffffff16565b9050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501580156116b7573d6000803e3d6000fd5b5061173e6116ce82846123f790919063ffffffff16565b600c6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123f790919063ffffffff16565b600c6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118076117b982846123f790919063ffffffff16565b600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247f90919063ffffffff16565b600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600660026101000a81548160ff021916908315150217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6118e984866123f790919063ffffffff16565b6040518082815260200191505060405180910390a3505050565b606060018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561199b5780601f106119705761010080835404028352916020019161199b565b820191906000526020600020905b81548152906001019060200180831161197e57829003601f168201915b5050505050905090565b6000611a686119b26124c9565b84611a638560405180606001604052806025815260200161311360259139600d60006119dc6124c9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bb19092919063ffffffff16565b6124d1565b6001905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b35576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f7520617265206e6f7420746865206f776e6572000000000000000000000081525060200191505060405180910390fd5b60011515600660029054906101000a900460ff16151514611b5557600080fd5b600660039054906101000a900460ff1615611b6f57600080fd5b60004790506000611ba7600954611b99600854611b8b30611485565b61247f90919063ffffffff16565b61247f90919063ffffffff16565b90503073ffffffffffffffffffffffffffffffffffffffff1663095ea7b360008054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611c3c57600080fd5b505af1158015611c50573d6000803e3d6000fd5b505050506040513d6020811015611c6657600080fd5b81019080805190602001909291905050505060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719833060085460085487600061012c42016040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b158015611d4857600080fd5b505af1158015611d5c573d6000803e3d6000fd5b50505050506040513d6060811015611d7357600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050506000811115611ea057611df681600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247f90919063ffffffff16565b600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b600660009054906101000a900460ff16611ed0576001600660006101000a81548160ff0219169083151502179055505b6001600660036101000a81548160ff0219169083151502179055506001600660046101000a81548160ff0219169083151502179055505050565b6000611f1e611f176124c9565b84846126c8565b6001905092915050565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611fbe5780601f10611f9357610100808354040283529160200191611fbe565b820191906000526020600020905b815481529060010190602001808311611fa157829003601f168201915b505050505081565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612089576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f7520617265206e6f7420746865206f776e6572000000000000000000000081525060200191505060405180910390fd5b80600660006101000a81548160ff02191690831515021790555050565b600b5481565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156121425780601f1061211757610100808354040283529160200191612142565b820191906000526020600020905b81548152906001019060200180831161212557829003601f168201915b505050505081565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600b54600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415612225576001905061222a565b600090505b919050565b60075481565b600660029054906101000a900460ff1681565b60011515600660019054906101000a900460ff1615151461226857600080fd5b60075442101561227757600080fd5b600b5447101561228657600080fd5b600b54600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156123f5573373ffffffffffffffffffffffffffffffffffffffff166108fc600b549081150290604051600060405180830381858888f19350505050158015612317573d6000803e3d6000fd5b5061236c600b54600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247f90919063ffffffff16565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b565b600080828401905083811015612475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60006124c183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612bb1565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612557576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806130ef6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156125dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806130186022913960400191505060405180910390fd5b80600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561274e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806130ca6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156127d4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612fd36023913960400191505060405180910390fd5b60011515600660049054906101000a900460ff16151514156129f7576000612819606461280b600385612c7190919063ffffffff16565b612cf790919063ffffffff16565b90506000612830828461247f90919063ffffffff16565b905061283c8583612d41565b612847858583612f07565b6128b38160405180606001604052806026815260200161303a60269139600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bb19092919063ffffffff16565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061294881600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123f790919063ffffffff16565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050612bac565b612a02838383612f07565b612a6e8160405180606001604052806026815260200161303a60269139600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bb19092919063ffffffff16565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b0381600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123f790919063ffffffff16565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b505050565b6000838311158290612c5e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612c23578082015181840152602081019050612c08565b50505050905090810190601f168015612c505780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080831415612c845760009050612cf1565b6000828402905082848281612c9557fe5b0414612cec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806130606021913960400191505060405180910390fd5b809150505b92915050565b6000612d3983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612f0c565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612dc7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806130a96021913960400191505060405180910390fd5b612dd382600083612f07565b612e3f81604051806060016040528060228152602001612ff660229139600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bb19092919063ffffffff16565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e978160045461247f90919063ffffffff16565b600481905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b505050565b60008083118290612fb8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612f7d578082015181840152602081019050612f62565b50505050905090810190601f168015612faa5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581612fc457fe5b04905080915050939250505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d56abb0d9990a13edd6f6fce8d1bbfed617828d19111712be8281aa07fd189e764736f6c63430007030033
Deployed Bytecode Sourcemap
1360:9362:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2759:11;:9;:11::i;:::-;1360:9362;;;;;2790:246;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6181:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7178:169;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1835:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6458:100;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3768:146;;;;;;;;;;;;;:::i;:::-;;7355:321;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6367:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1597:22;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1790:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7686:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1681:29;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6566:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1650:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1717:29;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1907:39;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3159:603;;;;;;;;;;;;;:::i;:::-;;6272:87;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7914:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5251:918;;;;;;;;;;;;;:::i;:::-;;6695:175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1543:21;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3048:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2021:34;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4341:699;;;:::i;:::-;;1571:19;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6878:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5052:187;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1875:25;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1753:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3927:400;;;;;;;;;;;;;:::i;:::-;;4341:699;2251:9;;;;;;;;;;;2250:10;2242:19;;;;;;4425:9:::1;;4412;:22;4404:65;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;4503:8;4488:12;;:23;4480:52;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;4573:1;4551:6;:18;4558:10;4551:18;;;;;;;;;;;;;;;;:23;4543:55;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;4618:9;;;;;;;;;;;4617:10;4609:19;;;::::0;::::1;;4639:11;4653:9;4639:23;;4709:6;4681:9;:24;4699:4;4681:24;;;;;;;;;;;;;;;;:34;;4673:43;;;::::0;::::1;;4751:33;4777:6;4751:9;:21;4761:10;4751:21;;;;;;;;;;;;;;;;:25;;:33;;;;:::i;:::-;4727:9;:21;4737:10;4727:21;;;;;;;;;;;;;;;:57;;;;4822:36;4851:6;4822:9;:24;4840:4;4822:24;;;;;;;;;;;;;;;;:28;;:36;;;;:::i;:::-;4795:9;:24;4813:4;4795:24;;;;;;;;;;;;;;;:63;;;;4890:33;4913:9;4890:6;:18;4897:10;4890:18;;;;;;;;;;;;;;;;:22;;:33;;;;:::i;:::-;4869:6;:18;4876:10;4869:18;;;;;;;;;;;;;;;:54;;;;4949:24;4966:6;4949:12;;:16;;:24;;;;:::i;:::-;4934:12;:39;;;;5013:10;4989:43;;5006:4;4989:43;;;5025:6;4989:43;;;;;;;;;;;;;;;;;;2272:1;4341:699::o:0;2790:246::-;2344:5;;;;;;;;;;;2330:19;;:10;:19;;;2322:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2870:9:::1;2865:164;2889:10;:17;2885:1;:21;2865:164;;;2960:7;2932:24;2950:4;2932:9;:24::i;:::-;:35;2928:89;;2986:31;2995:10;3006:1;2995:13;;;;;;;;;;;;;;3009:7;2986:8;:31::i;:::-;;2928:89;2908:3;;;;;;;2865:164;;;;2790:246:::0;:::o;6181:83::-;6218:13;6251:5;6244:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6181:83;:::o;7178:169::-;7261:4;7278:39;7287:12;:10;:12::i;:::-;7301:7;7310:6;7278:8;:39::i;:::-;7335:4;7328:11;;7178:169;;;;:::o;1835:33::-;;;;;;;;;;;;;:::o;6458:100::-;6511:7;6538:12;;6531:19;;6458:100;:::o;3768:146::-;2344:5;;;;;;;;;;;2330:19;;:10;:19;;;2322:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3847:4:::1;3835:9;;:16;;;;;;;;;;;;;;;;;;3896:9;3878:15;:27;3862:13;:43;;;;3768:146::o:0;7355:321::-;7461:4;7478:36;7488:6;7496:9;7507:6;7478:9;:36::i;:::-;7525:121;7534:6;7542:12;:10;:12::i;:::-;7556:89;7594:6;7556:89;;;;;;;;;;;;;;;;;:11;:19;7568:6;7556:19;;;;;;;;;;;;;;;:33;7576:12;:10;:12::i;:::-;7556:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7525:8;:121::i;:::-;7664:4;7657:11;;7355:321;;;;;:::o;6367:83::-;6408:5;6433:9;;;;;;;;;;;6426:16;;6367:83;:::o;1597:22::-;;;;;;;;;;;;;:::o;1790:38::-;;;;;;;;;;;;;:::o;7686:218::-;7774:4;7791:83;7800:12;:10;:12::i;:::-;7814:7;7823:50;7862:10;7823:11;:25;7835:12;:10;:12::i;:::-;7823:25;;;;;;;;;;;;;;;:34;7849:7;7823:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;7791:8;:83::i;:::-;7892:4;7885:11;;7686:218;;;;:::o;1681:29::-;;;;;;;;;;;;;:::o;6566:119::-;6632:7;6659:9;:18;6669:7;6659:18;;;;;;;;;;;;;;;;6652:25;;6566:119;;;:::o;1650:24::-;;;;:::o;1717:29::-;;;;;;;;;;;;;:::o;1907:39::-;;;;:::o;3159:603::-;2344:5;;;;;;;;;;;2330:19;;:10;:19;;;2322:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3220:10:::1;;;;;;;;;;;3219:11;3211:20;;;::::0;::::1;;3241:17;3261:38;3295:3;3261:29;3287:2;3261:21;:25;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;3241:58;;3309:17;3329:28;3353:3;3329:19;3346:1;3329:12;;:16;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;3309:48;;3380:20;3403:28;3427:3;3403:19;3420:1;3403:12;;:16;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;3380:51;;3456:5;;;;;;;;;;;:14;;:25;3471:9;3456:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;3510:49;3531:27;3545:12;3531:9;:13;;:27;;;;:::i;:::-;3510:9;:16;3520:5;;;;;;;;;;;3510:16;;;;;;;;;;;;;;;;:20;;:49;;;;:::i;:::-;3491:9;:16;3501:5;;;;;;;;;;;3491:16;;;;;;;;;;;;;;;:68;;;;3596:57;3625:27;3639:12;3625:9;:13;;:27;;;;:::i;:::-;3596:9;:24;3614:4;3596:24;;;;;;;;;;;;;;;;:28;;:57;;;;:::i;:::-;3569:9;:24;3587:4;3569:24;;;;;;;;;;;;;;;:84;;;;3676:4;3663:10;;:17;;;;;;;;;;;;;;;;;;3719:5;;;;;;;;;;;3695:59;;3712:4;3695:59;;;3726:27;3740:12;3726:9;:13;;:27;;;;:::i;:::-;3695:59;;;;;;;;;;;;;;;;;;2386:1;;;3159:603::o:0;6272:87::-;6311:13;6344:7;6337:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6272:87;:::o;7914:269::-;8007:4;8024:129;8033:12;:10;:12::i;:::-;8047:7;8056:96;8095:15;8056:96;;;;;;;;;;;;;;;;;:11;:25;8068:12;:10;:12::i;:::-;8056:25;;;;;;;;;;;;;;;:34;8082:7;8056:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;8024:8;:129::i;:::-;8171:4;8164:11;;7914:269;;;;:::o;5251:918::-;2344:5;;;;;;;;;;;2330:19;;:10;:19;;;2322:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5331:4:::1;5317:18;;:10;;;;;;;;;;;:18;;;5309:27;;;::::0;::::1;;5356:18;;;;;;;;;;;5355:19;5347:28;;;::::0;::::1;;5386:11;5400:21;5386:35;;5432:17;5452:67;5503:15;;5452:46;5481:16;;5452:24;5470:4;5452:9;:24::i;:::-;:28;;:46;;;;:::i;:::-;:50;;:67;;;;:::i;:::-;5432:87;;5532:4;:12;;;5553:7;::::0;::::1;;;;;;;;5563:16;;5532:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;5591:7;::::0;::::1;;;;;;;;:23;;;5633:3;5671:4;5691:16;;5722;;5753:3;5779:1;5814:9;5796:15;:27;5591:243;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5864:1;5849:12;:16;5845:182;;;5906:42;5935:12;5906:9;:24;5924:4;5906:24;;;;;;;;;;;;;;;;:28;;:42;;;;:::i;:::-;5879:9;:24;5897:4;5879:24;;;;;;;;;;;;;;;:69;;;;5998:1;5966:49;;5983:4;5966:49;;;6002:12;5966:49;;;;;;;;;;;;;;;;;;5845:182;6041:9;;;;;;;;;;;6037:44;;6077:4;6065:9;;:16;;;;;;;;;;;;;;;;;;6037:44;6127:4;6106:18;;:25;;;;;;;;;;;;;;;;;;6158:4;6142:13;;:20;;;;;;;;;;;;;;;;;;2386:1;;5251:918::o:0;6695:175::-;6781:4;6798:42;6808:12;:10;:12::i;:::-;6822:9;6833:6;6798:9;:42::i;:::-;6858:4;6851:11;;6695:175;;;;:::o;1543:21::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3048:105::-;2344:5;;;;;;;;;;;2330:19;;:10;:19;;;2322:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3135:10:::1;3123:9;;:22;;;;;;;;;;;;;;;;;;3048:105:::0;:::o;2021:34::-;;;;:::o;1571:19::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6878:153::-;6968:7;6995:11;:19;7007:6;6995:19;;;;;;;;;;;;;;;:28;7015:7;6995:28;;;;;;;;;;;;;;;;6988:35;;6878:153;;;;:::o;5052:187::-;5119:4;5155:9;;5139:6;:12;5146:4;5139:12;;;;;;;;;;;;;;;;:25;5135:96;;;5186:4;5179:11;;;;5135:96;5226:5;5219:12;;5052:187;;;;:::o;1875:25::-;;;;:::o;1753:30::-;;;;;;;;;;;;;:::o;3927:400::-;3992:4;3979:17;;:9;;;;;;;;;;;:17;;;3971:26;;;;;;4035:13;;4016:15;:32;;4008:41;;;;;;4093:9;;4068:21;:34;;4060:43;;;;;;4140:9;;4118:6;:18;4125:10;4118:18;;;;;;;;;;;;;;;;:31;4114:206;;;4165:10;:19;;:30;4185:9;;4165:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4234:36;4260:9;;4234;:21;4244:10;4234:21;;;;;;;;;;;;;;;;:25;;:36;;;;:::i;:::-;4210:9;:21;4220:10;4210:21;;;;;;;;;;;;;;;:60;;;;4307:1;4286:6;:18;4293:10;4286:18;;;;;;;;;;;;;;;:22;;;;4114:206;3927:400::o;17077:181::-;17135:7;17155:9;17171:1;17167;:5;17155:17;;17196:1;17191;:6;;17183:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17249:1;17242:8;;;17077:181;;;;:::o;17541:136::-;17599:7;17626:43;17630:1;17633;17626:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;17619:50;;17541:136;;;;:::o;1006:106::-;1059:15;1094:10;1087:17;;1006:106;:::o;9674:350::-;9795:1;9777:20;;:6;:20;;;;9769:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9876:1;9857:21;;:7;:21;;;;9849:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9961:6;9930:11;:19;9942:6;9930:19;;;;;;;;;;;;;;;:28;9950:7;9930:28;;;;;;;;;;;;;;;:37;;;;10000:7;9983:33;;9992:6;9983:33;;;10009:6;9983:33;;;;;;;;;;;;;;;;;;9674:350;;;:::o;8191:1047::-;8315:1;8297:20;;:6;:20;;;;8289:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8399:1;8378:23;;:9;:23;;;;8370:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8475:4;8458:21;;:13;;;;;;;;;;;:21;;;8454:777;;;8491:14;8508:22;8526:3;8508:13;8519:1;8508:6;:10;;:13;;;;:::i;:::-;:17;;:22;;;;:::i;:::-;8491:39;;8541:18;8562;8573:6;8562;:10;;:18;;;;:::i;:::-;8541:39;;8601:21;8607:6;8615;8601:5;:21::i;:::-;8633:51;8654:6;8662:9;8673:10;8633:20;:51::i;:::-;8717:75;8739:10;8717:75;;;;;;;;;;;;;;;;;:9;:17;8727:6;8717:17;;;;;;;;;;;;;;;;:21;;:75;;;;;:::i;:::-;8697:9;:17;8707:6;8697:17;;;;;;;;;;;;;;;:95;;;;8826:36;8851:10;8826:9;:20;8836:9;8826:20;;;;;;;;;;;;;;;;:24;;:36;;;;:::i;:::-;8803:9;:20;8813:9;8803:20;;;;;;;;;;;;;;;:59;;;;8895:9;8878:39;;8887:6;8878:39;;;8906:10;8878:39;;;;;;;;;;;;;;;;;;8454:777;;;;;8951:47;8972:6;8980:9;8991:6;8951:20;:47::i;:::-;9031:71;9053:6;9031:71;;;;;;;;;;;;;;;;;:9;:17;9041:6;9031:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;9011:9;:17;9021:6;9011:17;;;;;;;;;;;;;;;:91;;;;9136:32;9161:6;9136:9;:20;9146:9;9136:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;9113:9;:20;9123:9;9113:20;;;;;;;;;;;;;;;:55;;;;9201:9;9184:35;;9193:6;9184:35;;;9212:6;9184:35;;;;;;;;;;;;;;;;;;8454:777;8191:1047;;;:::o;17980:192::-;18066:7;18099:1;18094;:6;;18102:12;18086:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18126:9;18142:1;18138;:5;18126:17;;18163:1;18156:8;;;17980:192;;;;;:::o;18431:471::-;18489:7;18739:1;18734;:6;18730:47;;;18764:1;18757:8;;;;18730:47;18789:9;18805:1;18801;:5;18789:17;;18834:1;18829;18825;:5;;;;;;:10;18817:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18893:1;18886:8;;;18431:471;;;;;:::o;19378:132::-;19436:7;19463:39;19467:1;19470;19463:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;19456:46;;19378:132;;;;:::o;9248:418::-;9351:1;9332:21;;:7;:21;;;;9324:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9404:49;9425:7;9442:1;9446:6;9404:20;:49::i;:::-;9487:68;9510:6;9487:68;;;;;;;;;;;;;;;;;:9;:18;9497:7;9487:18;;;;;;;;;;;;;;;;:22;;:68;;;;;:::i;:::-;9466:9;:18;9476:7;9466:18;;;;;;;;;;;;;;;:89;;;;9581:24;9598:6;9581:12;;:16;;:24;;;;:::i;:::-;9566:12;:39;;;;9647:1;9621:37;;9630:7;9621:37;;;9651:6;9621:37;;;;;;;;;;;;;;;;;;9248:418;;:::o;10627:92::-;;;;:::o;20006:278::-;20092:7;20124:1;20120;:5;20127:12;20112:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20151:9;20167:1;20163;:5;;;;;;20151:17;;20275:1;20268:8;;;20006:278;;;;;:::o
Swarm Source
ipfs://d56abb0d9990a13edd6f6fce8d1bbfed617828d19111712be8281aa07fd189e7
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.