ERC-20
Overview
Max Total Supply
100,000,000 PEPERARE
Holders
70
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.000000001 PEPERAREValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
PEPERARE
Compiler Version
v0.8.20+commit.a1b79de6
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
/** *Submitted for verification at Etherscan.io on 2023-09-14 */ //https://twitter.com/beeple/status/1701807189998875010 //https://t.me/PepeRareHolographic // SPDX-License-Identifier: MIT pragma solidity >=0.8.2 <0.9.0; import "@openzeppelin/contracts/utils/math/SafeMath.sol"; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); event TokensMoved(uint256 amount); } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract PEPERARE is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; bool private _inSwap = false; mapping (address => uint256) private _holderLastTransferTimestamp; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 100000000 * 10**_decimals; string private constant _name = unicode"DOUBLE-FAKE NON-RARE ULTRA PEPE HOLOGRAPHIC LEGENDARY COLLECTOR'S EDITION (rare)"; string private constant _symbol = unicode"PEPERARE"; uint256 public _maxTxAmount = _tTotal.mul(5).div(100); // 5% of total supply intially uint256 public _maxWalletSize = _tTotal.mul(5).div(100); // 5% of total supply intially uint256 public _buyTax = 15; // intialBuyTax uint256 public _sellTax = 20; //IntialSellTax to avoid snipers and bots IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen=false; bool private inSwap = false; event MaxTxAmountUpdated(uint _maxTxAmount); modifier swapLock { inSwap = true; _; inSwap = false; } constructor () { _balances[_msgSender()] = _tTotal; _balances[owner()] = _tTotal; emit Transfer(address(0), owner(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _approve(address owner, address spender, uint256 amount) private { 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); } function _transfer(address from, address to, uint256 amount) private swapLock { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); // Check if trading is open, if it's the owner depositing tokens, or if it's a transfer to the Uniswap pair require(tradingOpen || (from == owner() && to == address(this)) || to == uniswapV2Pair, "Trading is not open yet"); // Check that the recipient's balance won't exceed the max wallet size require( _balances[to].add(amount) <= _maxWalletSize || (from == owner() && to == address(this)) || to == uniswapV2Pair || (from == address(this) && (to == owner() || to == uniswapV2Pair)), "New balance would exceed the max wallet size."); // Check that the sender has enough balance require(amount <= _balances[from], "Transfer amount exceeds balance"); // Check for underflows and overflows require(_balances[from] >= amount, "ERC20: transfer amount exceeds balance"); require(_balances[to] + amount > _balances[to], "ERC20: addition overflow"); // Calculate tax amount and exclude the uniswapV2Pair when its adding liquidity uint256 taxAmount = 0; if (!_inSwap) { if (from == uniswapV2Pair && _buyTax > 0) { taxAmount = amount.mul(_buyTax).div(100); } else if (to == uniswapV2Pair && _sellTax > 0) { taxAmount = amount.mul(_sellTax).div(100); } } // Subtract tax from the amount uint256 sendAmount = amount.sub(taxAmount); // Update balances _balances[from] = _balances[from].sub(amount); _balances[to] = _balances[to].add(sendAmount); emit Transfer(from, to, sendAmount); // Transfer the tax to the owner wallet and emit Transfer event only if taxAmount is not zero if (taxAmount > 0) { _balances[owner()] = _balances[owner()].add(taxAmount); emit Transfer(from, owner(), taxAmount); } } function removeLimits() external onlyOwner { _maxTxAmount = _tTotal; // remove transaction limits _maxWalletSize = _tTotal; // remove wallet limits _buyTax = 2; //change tax to final %, this was done to MEV avoid bots and snipers _sellTax = 2; //change tax to final %, this was done to MEV avoid bots and snipers emit MaxTxAmountUpdated(_tTotal); } function manualSend() external onlyOwner { uint256 contractBalance = address(this).balance; require(contractBalance > 0, "Contract has no ETH to send"); payable(owner()).transfer(contractBalance); } function checkBalanceAndAllowance() public view returns (uint256, uint256) { uint256 contractBalance = balanceOf(address(this)); uint256 routerAllowance = allowance(address(this), address(uniswapV2Router)); return (contractBalance, routerAllowance); } function addLiquidity() external onlyOwner() { require(!tradingOpen, "Trading is already open"); uint256 contractTokenBalance = balanceOf(address(this)); uint256 contractEthBalance = address(this).balance; // Check that the contract has enough tokens require(contractTokenBalance > 0, "Contract has no tokens to add as liquidity"); // Check that the contract has enough ETH require(contractEthBalance > 0, "Contract has no ETH to add as liquidity"); uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // create the pair on uniswop uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); // Approve the router to spend the tokens of this contract _approve(address(this), address(uniswapV2Router), contractTokenBalance); // Check that the router is approved to spend the tokens require(allowance(address(this), address(uniswapV2Router)) >= contractTokenBalance, "Router is not approved to spend tokens"); // Temporarily remove max wallet size while adding liquidity uint256 initialMaxWalletSize = _maxWalletSize; _maxWalletSize = _tTotal; // Temporarily set status to true to bypass tax and wallet size while adding liquidity _inSwap = true; // Add liquidity using the balance of tokens in the contract uniswapV2Router.addLiquidityETH{value: contractEthBalance}(address(this), contractTokenBalance, 0, 0, owner(), block.timestamp); // Enable the swap _inSwap = false; // Restore max wallet size _maxWalletSize = initialMaxWalletSize; IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint256).max); // Open trading after adding liquidity tradingOpen = true; } // this transfers the minted tokens into the contract from the owners wallet function moveTokens(uint256 newPercentage) external onlyOwner() { require(newPercentage <= 100, "Percentage cannot be greater than 100"); uint256 amountToMove = _tTotal.mul(newPercentage).div(100); // Use the newPercentage variable _transfer(owner(), address(this), amountToMove); emit TokensMoved(amountToMove); } receive() external payable {} }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (utils/math/SafeMath.sol) pragma solidity ^0.8.0; // CAUTION // This version of SafeMath should only be used with Solidity 0.8 or later, // because it relies on the compiler's built in overflow checks. /** * @dev Wrappers over Solidity's arithmetic operations. * * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler * now has built in overflow checking. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } /** * @dev Returns the subtraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { // 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 (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } /** * @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) { return a + b; } /** * @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 a - b; } /** * @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) { return a * b; } /** * @dev Returns the integer division of two unsigned integers, reverting on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting 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 a % b; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } /** * @dev Returns the integer division of two unsigned integers, reverting 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) { unchecked { require(b > 0, errorMessage); return a / b; } } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * 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) { unchecked { require(b > 0, errorMessage); return a % b; } } }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TokensMoved","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":"_buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidity","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":"checkBalanceAndAllowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newPercentage","type":"uint256"}],"name":"moveTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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
60806040525f60035f6101000a81548160ff0219169083151502179055506200006860646200005960056009600a6200003991906200051d565b6305f5e1006200004a91906200056d565b6200032f60201b90919060201c565b6200034660201b90919060201c565b600555620000b66064620000a760056009600a6200008791906200051d565b6305f5e1006200009891906200056d565b6200032f60201b90919060201c565b6200034660201b90919060201c565b600655600f60075560146008555f600a60146101000a81548160ff0219169083151502179055505f600a60156101000a81548160ff02191690831515021790555034801562000103575f80fd5b505f620001156200035d60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506009600a620001c191906200051d565b6305f5e100620001d291906200056d565b60015f620001e56200035d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506009600a6200023291906200051d565b6305f5e1006200024391906200056d565b60015f620002566200036460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550620002a36200036460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200030191906200051d565b6305f5e1006200031291906200056d565b604051620003219190620005c8565b60405180910390a362000647565b5f81836200033e91906200056d565b905092915050565b5f818362000355919062000610565b905092915050565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200041557808604811115620003ed57620003ec6200038b565b5b6001851615620003fd5780820291505b80810290506200040d85620003b8565b9450620003cd565b94509492505050565b5f826200042f576001905062000501565b816200043e575f905062000501565b8160018114620004575760028114620004625762000498565b600191505062000501565b60ff8411156200047757620004766200038b565b5b8360020a9150848211156200049157620004906200038b565b5b5062000501565b5060208310610133831016604e8410600b8410161715620004d25782820a905083811115620004cc57620004cb6200038b565b5b62000501565b620004e18484846001620003c4565b92509050818404811115620004fb57620004fa6200038b565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620005298262000508565b9150620005368362000511565b9250620005657fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200041e565b905092915050565b5f620005798262000508565b9150620005868362000508565b9250828202620005968162000508565b91508282048414831517620005b057620005af6200038b565b5b5092915050565b620005c28162000508565b82525050565b5f602082019050620005dd5f830184620005b7565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6200061c8262000508565b9150620006298362000508565b9250826200063c576200063b620005e3565b5b828204905092915050565b61308c80620006555f395ff3fe608060405260043610610122575f3560e01c80638da5cb5b1161009f578063ca9ec19911610063578063ca9ec199146103c4578063dd62ed3e146103ee578063e1a9164a1461042a578063e8078d9414610452578063f42938901461046857610129565b80638da5cb5b146102df5780638f9a55c01461030957806390c547541461033357806395d89b411461035e578063a9059cbb1461038857610129565b806342a11095116100e657806342a110951461022357806370a082311461024d578063715018a614610289578063751039fc1461029f5780637d1db4a5146102b557610129565b806306fdde031461012d578063095ea7b31461015757806318160ddd1461019357806323b872dd146101bd578063313ce567146101f957610129565b3661012957005b5f80fd5b348015610138575f80fd5b5061014161047e565b60405161014e9190612012565b60405180910390f35b348015610162575f80fd5b5061017d600480360381019061017891906120c3565b61049e565b60405161018a919061211b565b60405180910390f35b34801561019e575f80fd5b506101a76104bb565b6040516101b49190612143565b60405180910390f35b3480156101c8575f80fd5b506101e360048036038101906101de919061215c565b6104de565b6040516101f0919061211b565b60405180910390f35b348015610204575f80fd5b5061020d6105b2565b60405161021a91906121c7565b60405180910390f35b34801561022e575f80fd5b506102376105ba565b6040516102449190612143565b60405180910390f35b348015610258575f80fd5b50610273600480360381019061026e91906121e0565b6105c0565b6040516102809190612143565b60405180910390f35b348015610294575f80fd5b5061029d610606565b005b3480156102aa575f80fd5b506102b3610754565b005b3480156102c0575f80fd5b506102c9610893565b6040516102d69190612143565b60405180910390f35b3480156102ea575f80fd5b506102f3610899565b604051610300919061221a565b60405180910390f35b348015610314575f80fd5b5061031d6108c0565b60405161032a9190612143565b60405180910390f35b34801561033e575f80fd5b506103476108c6565b604051610355929190612233565b60405180910390f35b348015610369575f80fd5b5061037261090e565b60405161037f9190612012565b60405180910390f35b348015610393575f80fd5b506103ae60048036038101906103a991906120c3565b61094b565b6040516103bb919061211b565b60405180910390f35b3480156103cf575f80fd5b506103d8610968565b6040516103e59190612143565b60405180910390f35b3480156103f9575f80fd5b50610414600480360381019061040f919061225a565b61096e565b6040516104219190612143565b60405180910390f35b348015610435575f80fd5b50610450600480360381019061044b9190612298565b6109f0565b005b34801561045d575f80fd5b50610466610b5a565b005b348015610473575f80fd5b5061047c6111a4565b005b606060405180608001604052806050815260200161300760509139905090565b5f6104b16104aa6112cc565b84846112d3565b6001905092915050565b5f6009600a6104ca919061241f565b6305f5e1006104d99190612469565b905090565b5f6104ea848484611496565b6105a7846104f66112cc565b6105a285604051806060016040528060288152602001612fdf6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105596112cc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ee09092919063ffffffff16565b6112d3565b600190509392505050565b5f6009905090565b60075481565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61060e6112cc565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461069a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610691906124f4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61075c6112cc565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107df906124f4565b60405180910390fd5b6009600a6107f6919061241f565b6305f5e1006108059190612469565b6005819055506009600a610819919061241f565b6305f5e1006108289190612469565b600681905550600260078190555060026008819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61086d919061241f565b6305f5e10061087c9190612469565b6040516108899190612143565b60405180910390a1565b60055481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60065481565b5f805f6108d2306105c0565b90505f6109003060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661096e565b905081819350935050509091565b60606040518060400160405280600881526020017f5045504552415245000000000000000000000000000000000000000000000000815250905090565b5f61095e6109576112cc565b8484611496565b6001905092915050565b60085481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6109f86112cc565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7b906124f4565b60405180910390fd5b6064811115610ac8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610abf90612582565b60405180910390fd5b5f610b0b6064610afd846009600a610ae0919061241f565b6305f5e100610aef9190612469565b611f3490919063ffffffff16565b611f4990919063ffffffff16565b9050610b1f610b18610899565b3083611496565b7f18cb0adaa41cac5fbe95d1ec92cd73d2598dadb434236d1ce978d29e00518bd481604051610b4e9190612143565b60405180910390a15050565b610b626112cc565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be5906124f4565b60405180910390fd5b600a60149054906101000a900460ff1615610c3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c35906125ea565b60405180910390fd5b5f610c48306105c0565b90505f4790505f8211610c90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8790612678565b60405180910390fd5b5f8111610cd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc990612706565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d90573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db49190612738565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e3a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e5e9190612738565b6040518363ffffffff1660e01b8152600401610e7b929190612763565b6020604051808303815f875af1158015610e97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ebb9190612738565b600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f263060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112d3565b81610f523060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661096e565b1015610f93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8a906127fa565b60405180910390fd5b5f60065490506009600a610fa7919061241f565b6305f5e100610fb69190612469565b600681905550600160035f6101000a81548160ff02191690831515021790555060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198330865f80611020610899565b426040518863ffffffff1660e01b81526004016110429695949392919061285a565b60606040518083038185885af115801561105e573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061108391906128cd565b5050505f60035f6101000a81548160ff02191690831515021790555080600681905550600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161114392919061291d565b6020604051808303815f875af115801561115f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611183919061296e565b506001600a60146101000a81548160ff021916908315150217905550505050565b6111ac6112cc565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122f906124f4565b60405180910390fd5b5f4790505f811161127e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611275906129e3565b60405180910390fd5b611286610899565b73ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156112c8573d5f803e3d5ffd5b5050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133890612a71565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a690612aff565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114899190612143565b60405180910390a3505050565b6001600a60156101000a81548160ff0219169083151502179055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361151f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151690612b8d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361158d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158490612c1b565b60405180910390fd5b5f81116115cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c690612ca9565b60405180910390fd5b600a60149054906101000a900460ff168061165357506115ed610899565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561165257503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b806116aa5750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6116e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e090612d11565b60405180910390fd5b60065461173c8260015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f5e90919063ffffffff16565b1115806117b2575061174c610899565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117b157503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b806118095750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806118d457503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118d3575061184d610899565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806118d25750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b5b611913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190a90612d9f565b60405180910390fd5b60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054811115611993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198a90612e07565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015611a13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0a90612e95565b60405180910390fd5b60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a9a9190612eb3565b11611ada576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad190612f30565b60405180910390fd5b5f60035f9054906101000a900460ff16611c0e57600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b4b57505f600754115b15611b7f57611b786064611b6a60075485611f3490919063ffffffff16565b611f4990919063ffffffff16565b9050611c0d565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611bdc57505f600854115b15611c0c57611c096064611bfb60085485611f3490919063ffffffff16565b611f4990919063ffffffff16565b90505b5b5b5f611c228284611f7390919063ffffffff16565b9050611c748360015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f7390919063ffffffff16565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d058160015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f5e90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611da39190612143565b60405180910390a35f821115611ebf57611e0a8260015f611dc2610899565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f5e90919063ffffffff16565b60015f611e15610899565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611e5a610899565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611eb69190612143565b60405180910390a35b50505f600a60156101000a81548160ff021916908315150217905550505050565b5f838311158290611f27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1e9190612012565b60405180910390fd5b5082840390509392505050565b5f8183611f419190612469565b905092915050565b5f8183611f569190612f7b565b905092915050565b5f8183611f6b9190612eb3565b905092915050565b5f8183611f809190612fab565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611fbf578082015181840152602081019050611fa4565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611fe482611f88565b611fee8185611f92565b9350611ffe818560208601611fa2565b61200781611fca565b840191505092915050565b5f6020820190508181035f83015261202a8184611fda565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61205f82612036565b9050919050565b61206f81612055565b8114612079575f80fd5b50565b5f8135905061208a81612066565b92915050565b5f819050919050565b6120a281612090565b81146120ac575f80fd5b50565b5f813590506120bd81612099565b92915050565b5f80604083850312156120d9576120d8612032565b5b5f6120e68582860161207c565b92505060206120f7858286016120af565b9150509250929050565b5f8115159050919050565b61211581612101565b82525050565b5f60208201905061212e5f83018461210c565b92915050565b61213d81612090565b82525050565b5f6020820190506121565f830184612134565b92915050565b5f805f6060848603121561217357612172612032565b5b5f6121808682870161207c565b93505060206121918682870161207c565b92505060406121a2868287016120af565b9150509250925092565b5f60ff82169050919050565b6121c1816121ac565b82525050565b5f6020820190506121da5f8301846121b8565b92915050565b5f602082840312156121f5576121f4612032565b5b5f6122028482850161207c565b91505092915050565b61221481612055565b82525050565b5f60208201905061222d5f83018461220b565b92915050565b5f6040820190506122465f830185612134565b6122536020830184612134565b9392505050565b5f80604083850312156122705761226f612032565b5b5f61227d8582860161207c565b925050602061228e8582860161207c565b9150509250929050565b5f602082840312156122ad576122ac612032565b5b5f6122ba848285016120af565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561234557808604811115612321576123206122c3565b5b60018516156123305780820291505b808102905061233e856122f0565b9450612305565b94509492505050565b5f8261235d5760019050612418565b8161236a575f9050612418565b8160018114612380576002811461238a576123b9565b6001915050612418565b60ff84111561239c5761239b6122c3565b5b8360020a9150848211156123b3576123b26122c3565b5b50612418565b5060208310610133831016604e8410600b84101617156123ee5782820a9050838111156123e9576123e86122c3565b5b612418565b6123fb84848460016122fc565b92509050818404811115612412576124116122c3565b5b81810290505b9392505050565b5f61242982612090565b9150612434836121ac565b92506124617fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461234e565b905092915050565b5f61247382612090565b915061247e83612090565b925082820261248c81612090565b915082820484148315176124a3576124a26122c3565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6124de602083611f92565b91506124e9826124aa565b602082019050919050565b5f6020820190508181035f83015261250b816124d2565b9050919050565b7f50657263656e746167652063616e6e6f742062652067726561746572207468615f8201527f6e20313030000000000000000000000000000000000000000000000000000000602082015250565b5f61256c602583611f92565b915061257782612512565b604082019050919050565b5f6020820190508181035f83015261259981612560565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6125d4601783611f92565b91506125df826125a0565b602082019050919050565b5f6020820190508181035f830152612601816125c8565b9050919050565b7f436f6e747261637420686173206e6f20746f6b656e7320746f206164642061735f8201527f206c697175696469747900000000000000000000000000000000000000000000602082015250565b5f612662602a83611f92565b915061266d82612608565b604082019050919050565b5f6020820190508181035f83015261268f81612656565b9050919050565b7f436f6e747261637420686173206e6f2045544820746f20616464206173206c695f8201527f7175696469747900000000000000000000000000000000000000000000000000602082015250565b5f6126f0602783611f92565b91506126fb82612696565b604082019050919050565b5f6020820190508181035f83015261271d816126e4565b9050919050565b5f8151905061273281612066565b92915050565b5f6020828403121561274d5761274c612032565b5b5f61275a84828501612724565b91505092915050565b5f6040820190506127765f83018561220b565b612783602083018461220b565b9392505050565b7f526f75746572206973206e6f7420617070726f76656420746f207370656e64205f8201527f746f6b656e730000000000000000000000000000000000000000000000000000602082015250565b5f6127e4602683611f92565b91506127ef8261278a565b604082019050919050565b5f6020820190508181035f830152612811816127d8565b9050919050565b5f819050919050565b5f819050919050565b5f61284461283f61283a84612818565b612821565b612090565b9050919050565b6128548161282a565b82525050565b5f60c08201905061286d5f83018961220b565b61287a6020830188612134565b612887604083018761284b565b612894606083018661284b565b6128a1608083018561220b565b6128ae60a0830184612134565b979650505050505050565b5f815190506128c781612099565b92915050565b5f805f606084860312156128e4576128e3612032565b5b5f6128f1868287016128b9565b9350506020612902868287016128b9565b9250506040612913868287016128b9565b9150509250925092565b5f6040820190506129305f83018561220b565b61293d6020830184612134565b9392505050565b61294d81612101565b8114612957575f80fd5b50565b5f8151905061296881612944565b92915050565b5f6020828403121561298357612982612032565b5b5f6129908482850161295a565b91505092915050565b7f436f6e747261637420686173206e6f2045544820746f2073656e6400000000005f82015250565b5f6129cd601b83611f92565b91506129d882612999565b602082019050919050565b5f6020820190508181035f8301526129fa816129c1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612a5b602483611f92565b9150612a6682612a01565b604082019050919050565b5f6020820190508181035f830152612a8881612a4f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ae9602283611f92565b9150612af482612a8f565b604082019050919050565b5f6020820190508181035f830152612b1681612add565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612b77602583611f92565b9150612b8282612b1d565b604082019050919050565b5f6020820190508181035f830152612ba481612b6b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612c05602383611f92565b9150612c1082612bab565b604082019050919050565b5f6020820190508181035f830152612c3281612bf9565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612c93602983611f92565b9150612c9e82612c39565b604082019050919050565b5f6020820190508181035f830152612cc081612c87565b9050919050565b7f54726164696e67206973206e6f74206f70656e207965740000000000000000005f82015250565b5f612cfb601783611f92565b9150612d0682612cc7565b602082019050919050565b5f6020820190508181035f830152612d2881612cef565b9050919050565b7f4e65772062616c616e636520776f756c642065786365656420746865206d61785f8201527f2077616c6c65742073697a652e00000000000000000000000000000000000000602082015250565b5f612d89602d83611f92565b9150612d9482612d2f565b604082019050919050565b5f6020820190508181035f830152612db681612d7d565b9050919050565b7f5472616e7366657220616d6f756e7420657863656564732062616c616e6365005f82015250565b5f612df1601f83611f92565b9150612dfc82612dbd565b602082019050919050565b5f6020820190508181035f830152612e1e81612de5565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f612e7f602683611f92565b9150612e8a82612e25565b604082019050919050565b5f6020820190508181035f830152612eac81612e73565b9050919050565b5f612ebd82612090565b9150612ec883612090565b9250828201905080821115612ee057612edf6122c3565b5b92915050565b7f45524332303a206164646974696f6e206f766572666c6f7700000000000000005f82015250565b5f612f1a601883611f92565b9150612f2582612ee6565b602082019050919050565b5f6020820190508181035f830152612f4781612f0e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612f8582612090565b9150612f9083612090565b925082612fa057612f9f612f4e565b5b828204905092915050565b5f612fb582612090565b9150612fc083612090565b9250828203905081811115612fd857612fd76122c3565b5b9291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365444f55424c452d46414b45204e4f4e2d5241524520554c545241205045504520484f4c4f47524150484943204c4547454e4441525920434f4c4c4543544f5227532045444954494f4e20287261726529a2646970667358221220efa73ef2c0f5c91ca24a9f511845af5cafe0350f5fc617dcf8c1ad0f405af56564736f6c63430008140033
Deployed Bytecode
0x608060405260043610610122575f3560e01c80638da5cb5b1161009f578063ca9ec19911610063578063ca9ec199146103c4578063dd62ed3e146103ee578063e1a9164a1461042a578063e8078d9414610452578063f42938901461046857610129565b80638da5cb5b146102df5780638f9a55c01461030957806390c547541461033357806395d89b411461035e578063a9059cbb1461038857610129565b806342a11095116100e657806342a110951461022357806370a082311461024d578063715018a614610289578063751039fc1461029f5780637d1db4a5146102b557610129565b806306fdde031461012d578063095ea7b31461015757806318160ddd1461019357806323b872dd146101bd578063313ce567146101f957610129565b3661012957005b5f80fd5b348015610138575f80fd5b5061014161047e565b60405161014e9190612012565b60405180910390f35b348015610162575f80fd5b5061017d600480360381019061017891906120c3565b61049e565b60405161018a919061211b565b60405180910390f35b34801561019e575f80fd5b506101a76104bb565b6040516101b49190612143565b60405180910390f35b3480156101c8575f80fd5b506101e360048036038101906101de919061215c565b6104de565b6040516101f0919061211b565b60405180910390f35b348015610204575f80fd5b5061020d6105b2565b60405161021a91906121c7565b60405180910390f35b34801561022e575f80fd5b506102376105ba565b6040516102449190612143565b60405180910390f35b348015610258575f80fd5b50610273600480360381019061026e91906121e0565b6105c0565b6040516102809190612143565b60405180910390f35b348015610294575f80fd5b5061029d610606565b005b3480156102aa575f80fd5b506102b3610754565b005b3480156102c0575f80fd5b506102c9610893565b6040516102d69190612143565b60405180910390f35b3480156102ea575f80fd5b506102f3610899565b604051610300919061221a565b60405180910390f35b348015610314575f80fd5b5061031d6108c0565b60405161032a9190612143565b60405180910390f35b34801561033e575f80fd5b506103476108c6565b604051610355929190612233565b60405180910390f35b348015610369575f80fd5b5061037261090e565b60405161037f9190612012565b60405180910390f35b348015610393575f80fd5b506103ae60048036038101906103a991906120c3565b61094b565b6040516103bb919061211b565b60405180910390f35b3480156103cf575f80fd5b506103d8610968565b6040516103e59190612143565b60405180910390f35b3480156103f9575f80fd5b50610414600480360381019061040f919061225a565b61096e565b6040516104219190612143565b60405180910390f35b348015610435575f80fd5b50610450600480360381019061044b9190612298565b6109f0565b005b34801561045d575f80fd5b50610466610b5a565b005b348015610473575f80fd5b5061047c6111a4565b005b606060405180608001604052806050815260200161300760509139905090565b5f6104b16104aa6112cc565b84846112d3565b6001905092915050565b5f6009600a6104ca919061241f565b6305f5e1006104d99190612469565b905090565b5f6104ea848484611496565b6105a7846104f66112cc565b6105a285604051806060016040528060288152602001612fdf6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105596112cc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ee09092919063ffffffff16565b6112d3565b600190509392505050565b5f6009905090565b60075481565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61060e6112cc565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461069a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610691906124f4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61075c6112cc565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107df906124f4565b60405180910390fd5b6009600a6107f6919061241f565b6305f5e1006108059190612469565b6005819055506009600a610819919061241f565b6305f5e1006108289190612469565b600681905550600260078190555060026008819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61086d919061241f565b6305f5e10061087c9190612469565b6040516108899190612143565b60405180910390a1565b60055481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60065481565b5f805f6108d2306105c0565b90505f6109003060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661096e565b905081819350935050509091565b60606040518060400160405280600881526020017f5045504552415245000000000000000000000000000000000000000000000000815250905090565b5f61095e6109576112cc565b8484611496565b6001905092915050565b60085481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6109f86112cc565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7b906124f4565b60405180910390fd5b6064811115610ac8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610abf90612582565b60405180910390fd5b5f610b0b6064610afd846009600a610ae0919061241f565b6305f5e100610aef9190612469565b611f3490919063ffffffff16565b611f4990919063ffffffff16565b9050610b1f610b18610899565b3083611496565b7f18cb0adaa41cac5fbe95d1ec92cd73d2598dadb434236d1ce978d29e00518bd481604051610b4e9190612143565b60405180910390a15050565b610b626112cc565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be5906124f4565b60405180910390fd5b600a60149054906101000a900460ff1615610c3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c35906125ea565b60405180910390fd5b5f610c48306105c0565b90505f4790505f8211610c90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8790612678565b60405180910390fd5b5f8111610cd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc990612706565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d90573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db49190612738565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e3a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e5e9190612738565b6040518363ffffffff1660e01b8152600401610e7b929190612763565b6020604051808303815f875af1158015610e97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ebb9190612738565b600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f263060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112d3565b81610f523060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661096e565b1015610f93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8a906127fa565b60405180910390fd5b5f60065490506009600a610fa7919061241f565b6305f5e100610fb69190612469565b600681905550600160035f6101000a81548160ff02191690831515021790555060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198330865f80611020610899565b426040518863ffffffff1660e01b81526004016110429695949392919061285a565b60606040518083038185885af115801561105e573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061108391906128cd565b5050505f60035f6101000a81548160ff02191690831515021790555080600681905550600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161114392919061291d565b6020604051808303815f875af115801561115f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611183919061296e565b506001600a60146101000a81548160ff021916908315150217905550505050565b6111ac6112cc565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122f906124f4565b60405180910390fd5b5f4790505f811161127e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611275906129e3565b60405180910390fd5b611286610899565b73ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156112c8573d5f803e3d5ffd5b5050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133890612a71565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a690612aff565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114899190612143565b60405180910390a3505050565b6001600a60156101000a81548160ff0219169083151502179055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361151f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151690612b8d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361158d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158490612c1b565b60405180910390fd5b5f81116115cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c690612ca9565b60405180910390fd5b600a60149054906101000a900460ff168061165357506115ed610899565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561165257503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b806116aa5750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6116e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e090612d11565b60405180910390fd5b60065461173c8260015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f5e90919063ffffffff16565b1115806117b2575061174c610899565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117b157503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b806118095750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806118d457503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118d3575061184d610899565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806118d25750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b5b611913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190a90612d9f565b60405180910390fd5b60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054811115611993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198a90612e07565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015611a13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0a90612e95565b60405180910390fd5b60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a9a9190612eb3565b11611ada576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad190612f30565b60405180910390fd5b5f60035f9054906101000a900460ff16611c0e57600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b4b57505f600754115b15611b7f57611b786064611b6a60075485611f3490919063ffffffff16565b611f4990919063ffffffff16565b9050611c0d565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611bdc57505f600854115b15611c0c57611c096064611bfb60085485611f3490919063ffffffff16565b611f4990919063ffffffff16565b90505b5b5b5f611c228284611f7390919063ffffffff16565b9050611c748360015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f7390919063ffffffff16565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d058160015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f5e90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611da39190612143565b60405180910390a35f821115611ebf57611e0a8260015f611dc2610899565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f5e90919063ffffffff16565b60015f611e15610899565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611e5a610899565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611eb69190612143565b60405180910390a35b50505f600a60156101000a81548160ff021916908315150217905550505050565b5f838311158290611f27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1e9190612012565b60405180910390fd5b5082840390509392505050565b5f8183611f419190612469565b905092915050565b5f8183611f569190612f7b565b905092915050565b5f8183611f6b9190612eb3565b905092915050565b5f8183611f809190612fab565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611fbf578082015181840152602081019050611fa4565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611fe482611f88565b611fee8185611f92565b9350611ffe818560208601611fa2565b61200781611fca565b840191505092915050565b5f6020820190508181035f83015261202a8184611fda565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61205f82612036565b9050919050565b61206f81612055565b8114612079575f80fd5b50565b5f8135905061208a81612066565b92915050565b5f819050919050565b6120a281612090565b81146120ac575f80fd5b50565b5f813590506120bd81612099565b92915050565b5f80604083850312156120d9576120d8612032565b5b5f6120e68582860161207c565b92505060206120f7858286016120af565b9150509250929050565b5f8115159050919050565b61211581612101565b82525050565b5f60208201905061212e5f83018461210c565b92915050565b61213d81612090565b82525050565b5f6020820190506121565f830184612134565b92915050565b5f805f6060848603121561217357612172612032565b5b5f6121808682870161207c565b93505060206121918682870161207c565b92505060406121a2868287016120af565b9150509250925092565b5f60ff82169050919050565b6121c1816121ac565b82525050565b5f6020820190506121da5f8301846121b8565b92915050565b5f602082840312156121f5576121f4612032565b5b5f6122028482850161207c565b91505092915050565b61221481612055565b82525050565b5f60208201905061222d5f83018461220b565b92915050565b5f6040820190506122465f830185612134565b6122536020830184612134565b9392505050565b5f80604083850312156122705761226f612032565b5b5f61227d8582860161207c565b925050602061228e8582860161207c565b9150509250929050565b5f602082840312156122ad576122ac612032565b5b5f6122ba848285016120af565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561234557808604811115612321576123206122c3565b5b60018516156123305780820291505b808102905061233e856122f0565b9450612305565b94509492505050565b5f8261235d5760019050612418565b8161236a575f9050612418565b8160018114612380576002811461238a576123b9565b6001915050612418565b60ff84111561239c5761239b6122c3565b5b8360020a9150848211156123b3576123b26122c3565b5b50612418565b5060208310610133831016604e8410600b84101617156123ee5782820a9050838111156123e9576123e86122c3565b5b612418565b6123fb84848460016122fc565b92509050818404811115612412576124116122c3565b5b81810290505b9392505050565b5f61242982612090565b9150612434836121ac565b92506124617fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461234e565b905092915050565b5f61247382612090565b915061247e83612090565b925082820261248c81612090565b915082820484148315176124a3576124a26122c3565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6124de602083611f92565b91506124e9826124aa565b602082019050919050565b5f6020820190508181035f83015261250b816124d2565b9050919050565b7f50657263656e746167652063616e6e6f742062652067726561746572207468615f8201527f6e20313030000000000000000000000000000000000000000000000000000000602082015250565b5f61256c602583611f92565b915061257782612512565b604082019050919050565b5f6020820190508181035f83015261259981612560565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6125d4601783611f92565b91506125df826125a0565b602082019050919050565b5f6020820190508181035f830152612601816125c8565b9050919050565b7f436f6e747261637420686173206e6f20746f6b656e7320746f206164642061735f8201527f206c697175696469747900000000000000000000000000000000000000000000602082015250565b5f612662602a83611f92565b915061266d82612608565b604082019050919050565b5f6020820190508181035f83015261268f81612656565b9050919050565b7f436f6e747261637420686173206e6f2045544820746f20616464206173206c695f8201527f7175696469747900000000000000000000000000000000000000000000000000602082015250565b5f6126f0602783611f92565b91506126fb82612696565b604082019050919050565b5f6020820190508181035f83015261271d816126e4565b9050919050565b5f8151905061273281612066565b92915050565b5f6020828403121561274d5761274c612032565b5b5f61275a84828501612724565b91505092915050565b5f6040820190506127765f83018561220b565b612783602083018461220b565b9392505050565b7f526f75746572206973206e6f7420617070726f76656420746f207370656e64205f8201527f746f6b656e730000000000000000000000000000000000000000000000000000602082015250565b5f6127e4602683611f92565b91506127ef8261278a565b604082019050919050565b5f6020820190508181035f830152612811816127d8565b9050919050565b5f819050919050565b5f819050919050565b5f61284461283f61283a84612818565b612821565b612090565b9050919050565b6128548161282a565b82525050565b5f60c08201905061286d5f83018961220b565b61287a6020830188612134565b612887604083018761284b565b612894606083018661284b565b6128a1608083018561220b565b6128ae60a0830184612134565b979650505050505050565b5f815190506128c781612099565b92915050565b5f805f606084860312156128e4576128e3612032565b5b5f6128f1868287016128b9565b9350506020612902868287016128b9565b9250506040612913868287016128b9565b9150509250925092565b5f6040820190506129305f83018561220b565b61293d6020830184612134565b9392505050565b61294d81612101565b8114612957575f80fd5b50565b5f8151905061296881612944565b92915050565b5f6020828403121561298357612982612032565b5b5f6129908482850161295a565b91505092915050565b7f436f6e747261637420686173206e6f2045544820746f2073656e6400000000005f82015250565b5f6129cd601b83611f92565b91506129d882612999565b602082019050919050565b5f6020820190508181035f8301526129fa816129c1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612a5b602483611f92565b9150612a6682612a01565b604082019050919050565b5f6020820190508181035f830152612a8881612a4f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ae9602283611f92565b9150612af482612a8f565b604082019050919050565b5f6020820190508181035f830152612b1681612add565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612b77602583611f92565b9150612b8282612b1d565b604082019050919050565b5f6020820190508181035f830152612ba481612b6b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612c05602383611f92565b9150612c1082612bab565b604082019050919050565b5f6020820190508181035f830152612c3281612bf9565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612c93602983611f92565b9150612c9e82612c39565b604082019050919050565b5f6020820190508181035f830152612cc081612c87565b9050919050565b7f54726164696e67206973206e6f74206f70656e207965740000000000000000005f82015250565b5f612cfb601783611f92565b9150612d0682612cc7565b602082019050919050565b5f6020820190508181035f830152612d2881612cef565b9050919050565b7f4e65772062616c616e636520776f756c642065786365656420746865206d61785f8201527f2077616c6c65742073697a652e00000000000000000000000000000000000000602082015250565b5f612d89602d83611f92565b9150612d9482612d2f565b604082019050919050565b5f6020820190508181035f830152612db681612d7d565b9050919050565b7f5472616e7366657220616d6f756e7420657863656564732062616c616e6365005f82015250565b5f612df1601f83611f92565b9150612dfc82612dbd565b602082019050919050565b5f6020820190508181035f830152612e1e81612de5565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f612e7f602683611f92565b9150612e8a82612e25565b604082019050919050565b5f6020820190508181035f830152612eac81612e73565b9050919050565b5f612ebd82612090565b9150612ec883612090565b9250828201905080821115612ee057612edf6122c3565b5b92915050565b7f45524332303a206164646974696f6e206f766572666c6f7700000000000000005f82015250565b5f612f1a601883611f92565b9150612f2582612ee6565b602082019050919050565b5f6020820190508181035f830152612f4781612f0e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612f8582612090565b9150612f9083612090565b925082612fa057612f9f612f4e565b5b828204905092915050565b5f612fb582612090565b9150612fc083612090565b9250828203905081811115612fd857612fd76122c3565b5b9291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365444f55424c452d46414b45204e4f4e2d5241524520554c545241205045504520484f4c4f47524150484943204c4547454e4441525920434f4c4c4543544f5227532045444954494f4e20287261726529a2646970667358221220efa73ef2c0f5c91ca24a9f511845af5cafe0350f5fc617dcf8c1ad0f405af56564736f6c63430008140033
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.