ETH Price: $3,289.66 (-1.22%)

Token

D.OnePiece (DOnePiece)
 

Overview

Max Total Supply

100,000,000 DOnePiece

Holders

60

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 0 Decimals)

Balance
2,049,185 DOnePiece

Value
$0.00
0x94adfbb0f35d676035e5643543b16a98566cd145
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
DONEPIECE

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-10-27
*/

// SPDX-License-Identifier: MIT
// TG: t.me/DonePiecetokens
pragma solidity ^0.8.4;

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);
}

library SafeMath {
	function add(uint256 a, uint256 b) internal pure returns (uint256) {
		uint256 c = a + b;
		require(c >= a, "SafeMath: addition overflow");
		return c;
	}

	function sub(uint256 a, uint256 b) internal pure returns (uint256) {
		return sub(a, b, "SafeMath: subtraction overflow");
	}

	function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
		require(b <= a, errorMessage);
		uint256 c = a - b;
		return c;
	}

	function mul(uint256 a, uint256 b) internal pure returns (uint256) {
		if (a == 0) {
			return 0;
		}
		uint256 c = a * b;
		require(c / a == b, "SafeMath: multiplication overflow");
		return c;
	}

	function div(uint256 a, uint256 b) internal pure returns (uint256) {
		return div(a, b, "SafeMath: division by zero");
	}

	function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
		require(b > 0, errorMessage);
		uint256 c = a / b;
		return c;
	}
}

contract Ownable is Context {
	address private _owner;
	address private _previousOwner;
	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() || _previousOwner==_msgSender(), "Ownable: caller is not the owner");
		_;
	}

	function renounceOwnership() public virtual onlyOwner {
		emit OwnershipTransferred(_owner, address(0xdead));
		_previousOwner=_owner;
		_owner = address(0xdead);
	}
}

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 DONEPIECE is Context, IERC20, Ownable {
	using SafeMath for uint256;
	mapping(address => uint256) private _rOwned;
	mapping(address => mapping(address => uint256)) private _allowances;
	mapping(address => bool) private _isExcludedFromFee;

	uint256 private constant MAX = ~uint256(0);
	uint256 private _tTotal = 100000000 ;
	uint256 private _rTotal = (MAX - (MAX % _tTotal));
	uint256 private _tFeeTotal;

	uint256 private _taxRate=8;
	address payable private _taxWallet;

	string private constant _name = "D.OnePiece";
	string private constant _symbol = "DOnePiece";
	uint8 private constant _decimals = 0;

	IUniswapV2Router02 private uniswapV2Router;
	address private uniswapV2Pair;
	bool private tradingOpen;
	bool private inSwap = false;
	bool private swapEnabled = false;
	uint256 private _ceil = _tTotal;

	modifier lockTheSwap {
		inSwap = true;
		_;
		inSwap = false;
	}
	constructor () {
		_taxWallet = payable(0x7B17D3fB1A77615FbDfaE4DA119cF344E1b52f96);
		_rOwned[_msgSender()] = _rTotal;
		uniswapV2Router =  IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
		emit Transfer(address(0x0000000000000000000000000000000000000000), _msgSender(), _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  view override returns  (uint256) {
		return _tTotal;
	}

	function balanceOf(address account) public view override returns (uint256) {
		return tokenFromReflection(_rOwned[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 tokenFromReflection(uint256 rAmount) private view returns (uint256) {
		require(rAmount <= _rTotal, "Amount must be less than total reflections");
		uint256 currentRate = _getRate();
		return rAmount.div(currentRate);
	}

	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 setTaxRate(uint rate) external onlyOwner{
		require(rate>=0 ,"Rate must be non-negative");
		_taxRate=rate;
	}

	function _transfer(address from, address to, uint256 amount) private {
		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");

		if (from != owner() && to != owner()) {
			if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
				require(amount <= _ceil);
			}
			uint256 contractTokenBalance = balanceOf(address(this));
			if (!inSwap && from != uniswapV2Pair && swapEnabled) {
				swapTokensForEth(contractTokenBalance);
				uint256 contractETHBalance = address(this).balance;
				if (contractETHBalance > 0) {
					sendETHToFee(address(this).balance);
				}
			}
		}
		_tokenTransfer(from, to, amount);
	}

	function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
		address[] memory path = new address[](2);
		path[0] = address(this);
		path[1] = uniswapV2Router.WETH();
		_approve(address(this), address(uniswapV2Router), tokenAmount);
		uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path,address(this), block.timestamp);
	}

	function sendETHToFee(uint256 amount) private {
		_taxWallet.transfer(amount);
	}

	function openTrading() external onlyOwner() {
		require(!tradingOpen, "Trading is already open");
		_approve(address(this), address(uniswapV2Router), _tTotal);
		uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
		uniswapV2Router.addLiquidityETH{value : address(this).balance}(address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp);
		swapEnabled = true;
		_ceil = 10000000000 ;
		tradingOpen = true;
		IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
	}

	function _tokenTransfer(address sender, address recipient, uint256 amount) private {
		_transferStandard(sender, recipient, amount);
	}

	function _transferStandard(address sender, address recipient, uint256 tAmount) private {
		(uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
		_rOwned[sender] = _rOwned[sender].sub(rAmount);
		_rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
		_takeTeam(tTeam);
		_reflectFee(rFee, tFee);
		emit Transfer(sender, recipient, tTransferAmount);
	}

	function _takeTeam(uint256 tTeam) private {
		uint256 currentRate = _getRate();
		uint256 rTeam = tTeam.mul(currentRate);
		_rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
	}

	function _reflectFee(uint256 rFee, uint256 tFee) private {
		_rTotal = _rTotal.sub(rFee);
		_tFeeTotal = _tFeeTotal.add(tFee);
	}

	receive() external payable {}

	function manualSwap() external {
		require(_msgSender() == _taxWallet);
		uint256 contractBalance = balanceOf(address(this));
		swapTokensForEth(contractBalance);
	}

	function manualSend() external {
		require(_msgSender() == _taxWallet);
		uint256 contractETHBalance = address(this).balance;
		sendETHToFee(contractETHBalance);
	}

	function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
		(uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _taxRate, _taxRate);
		uint256 currentRate = _getRate();
		(uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
		return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
	}

	function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
		uint256 tFee = tAmount.mul(taxFee).div(100);
		uint256 tTeam = tAmount.mul(TeamFee).div(100);
		uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
		return (tTransferAmount, tFee, tTeam);
	}

	function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
		uint256 rAmount = tAmount.mul(currentRate);
		uint256 rFee = tFee.mul(currentRate);
		uint256 rTeam = tTeam.mul(currentRate);
		uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
		return (rAmount, rTransferAmount, rFee);
	}

	function _getRate() private view returns (uint256) {
		(uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
		return rSupply.div(tSupply);
	}
	function setCeiling(uint256 ceil) external onlyOwner {
		_ceil = ceil;
	}

	function _getCurrentSupply() private view returns (uint256, uint256) {
		uint256 rSupply = _rTotal;
		uint256 tSupply = _tTotal;
		if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
		return (rSupply, tSupply);
	}
}

Contract Security Audit

Contract ABI

[{"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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":[{"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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"ceil","type":"uint256"}],"name":"setCeiling","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setTaxRate","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":"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"}]

60806040526305f5e1006005556005546000196200001e9190620002ed565b6000196200002d919062000354565b600655600880556000600b60156101000a81548160ff0219169083151502179055506000600b60166101000a81548160ff021916908315150217905550600554600c553480156200007d57600080fd5b50600062000090620002ac60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737b17d3fb1a77615fbdfae4da119cf344e1b52f96600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654600260006200019a620002ac60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200023d620002ac60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6005546040516200029e9190620003a0565b60405180910390a3620003bd565b600033905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620002fa82620002b4565b91506200030783620002b4565b9250826200031a5762000319620002be565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200036182620002b4565b91506200036e83620002b4565b92508282101562000384576200038362000325565b5b828203905092915050565b6200039a81620002b4565b82525050565b6000602082019050620003b760008301846200038f565b92915050565b612eac80620003cd6000396000f3fe6080604052600436106100f75760003560e01c80638da5cb5b1161008a578063c6d69a3011610059578063c6d69a3014610325578063c9567bf91461034e578063dd62ed3e14610365578063f4293890146103a2576100fe565b80638da5cb5b146102695780638f02cf971461029457806395d89b41146102bd578063a9059cbb146102e8576100fe565b8063313ce567116100c6578063313ce567146101d357806351bc3c85146101fe57806370a0823114610215578063715018a614610252576100fe565b806306fdde0314610103578063095ea7b31461012e57806318160ddd1461016b57806323b872dd14610196576100fe565b366100fe57005b600080fd5b34801561010f57600080fd5b506101186103b9565b6040516101259190612113565b60405180910390f35b34801561013a57600080fd5b50610155600480360381019061015091906121ce565b6103f6565b6040516101629190612229565b60405180910390f35b34801561017757600080fd5b50610180610414565b60405161018d9190612253565b60405180910390f35b3480156101a257600080fd5b506101bd60048036038101906101b8919061226e565b61041e565b6040516101ca9190612229565b60405180910390f35b3480156101df57600080fd5b506101e86104f7565b6040516101f591906122dd565b60405180910390f35b34801561020a57600080fd5b506102136104fc565b005b34801561022157600080fd5b5061023c600480360381019061023791906122f8565b610576565b6040516102499190612253565b60405180910390f35b34801561025e57600080fd5b506102676105c7565b005b34801561027557600080fd5b5061027e6107dc565b60405161028b9190612334565b60405180910390f35b3480156102a057600080fd5b506102bb60048036038101906102b6919061234f565b610805565b005b3480156102c957600080fd5b506102d2610903565b6040516102df9190612113565b60405180910390f35b3480156102f457600080fd5b5061030f600480360381019061030a91906121ce565b610940565b60405161031c9190612229565b60405180910390f35b34801561033157600080fd5b5061034c6004803603810190610347919061234f565b61095e565b005b34801561035a57600080fd5b50610363610aa0565b005b34801561037157600080fd5b5061038c6004803603810190610387919061237c565b61101f565b6040516103999190612253565b60405180910390f35b3480156103ae57600080fd5b506103b76110a6565b005b60606040518060400160405280600a81526020017f442e4f6e65506965636500000000000000000000000000000000000000000000815250905090565b600061040a610403611118565b8484611120565b6001905092915050565b6000600554905090565b600061042b8484846112eb565b6104ec84610437611118565b6104e785604051806060016040528060288152602001612e4f60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061049d611118565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116139092919063ffffffff16565b611120565b600190509392505050565b600090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661053d611118565b73ffffffffffffffffffffffffffffffffffffffff161461055d57600080fd5b600061056830610576565b905061057381611677565b50565b60006105c0600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118ff565b9050919050565b6105cf611118565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061067c575061062b611118565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b6106bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b290612408565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61080d611118565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806108ba5750610869611118565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b6108f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f090612408565b60405180910390fd5b80600c8190555050565b60606040518060400160405280600981526020017f444f6e6550696563650000000000000000000000000000000000000000000000815250905090565b600061095461094d611118565b84846112eb565b6001905092915050565b610966611118565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610a1357506109c2611118565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4990612408565b60405180910390fd5b6000811015610a96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8d90612474565b60405180910390fd5b8060088190555050565b610aa8611118565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610b555750610b04611118565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610b94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8b90612408565b60405180910390fd5b600b60149054906101000a900460ff1615610be4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bdb906124e0565b60405180910390fd5b610c1330600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600554611120565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610c7b57600080fd5b505afa158015610c8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb39190612515565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610d3757600080fd5b505afa158015610d4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6f9190612515565b6040518363ffffffff1660e01b8152600401610d8c929190612542565b602060405180830381600087803b158015610da657600080fd5b505af1158015610dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dde9190612515565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e6730610576565b600080610e726107dc565b426040518863ffffffff1660e01b8152600401610e94969594939291906125b0565b6060604051808303818588803b158015610ead57600080fd5b505af1158015610ec1573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ee69190612626565b5050506001600b60166101000a81548160ff0219169083151502179055506402540be400600c819055506001600b60146101000a81548160ff021916908315150217905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610fca929190612679565b602060405180830381600087803b158015610fe457600080fd5b505af1158015610ff8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101c91906126ce565b50565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110e7611118565b73ffffffffffffffffffffffffffffffffffffffff161461110757600080fd5b60004790506111158161196d565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611190576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111879061276d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f7906127ff565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112de9190612253565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561135b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135290612891565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c290612923565b60405180910390fd5b6000811161140e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611405906129b5565b60405180910390fd5b6114166107dc565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561148457506114546107dc565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561160357600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156115345750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561154957600c5481111561154857600080fd5b5b600061155430610576565b9050600b60159054906101000a900460ff161580156115c15750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156115d95750600b60169054906101000a900460ff165b15611601576115e781611677565b600047905060008111156115ff576115fe4761196d565b5b505b505b61160e8383836119d9565b505050565b600083831115829061165b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116529190612113565b60405180910390fd5b506000838561166a9190612a04565b9050809150509392505050565b6001600b60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156116af576116ae612a38565b5b6040519080825280602002602001820160405280156116dd5781602001602082028036833780820191505090505b50905030816000815181106116f5576116f4612a67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561179757600080fd5b505afa1580156117ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117cf9190612515565b816001815181106117e3576117e2612a67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061184a30600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611120565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016118ae959493929190612b54565b600060405180830381600087803b1580156118c857600080fd5b505af11580156118dc573d6000803e3d6000fd5b50505050506000600b60156101000a81548160ff02191690831515021790555050565b6000600654821115611946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193d90612c20565b60405180910390fd5b60006119506119e9565b90506119658184611a1490919063ffffffff16565b915050919050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156119d5573d6000803e3d6000fd5b5050565b6119e4838383611a5e565b505050565b60008060006119f6611c29565b91509150611a0d8183611a1490919063ffffffff16565b9250505090565b6000611a5683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c76565b905092915050565b600080600080600080611a7087611cd9565b955095509550955095509550611ace86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4190919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b6385600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d8b90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611baf81611de9565b611bb98483611ea6565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611c169190612253565b60405180910390a3505050505050505050565b6000806000600654905060006005549050611c51600554600654611a1490919063ffffffff16565b821015611c6957600654600554935093505050611c72565b81819350935050505b9091565b60008083118290611cbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb49190612113565b60405180910390fd5b5060008385611ccc9190612c6f565b9050809150509392505050565b6000806000806000806000806000611cf68a600854600854611ee0565b9250925092506000611d066119e9565b90506000806000611d198e878787611f76565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611d8383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611613565b905092915050565b6000808284611d9a9190612ca0565b905083811015611ddf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd690612d42565b60405180910390fd5b8091505092915050565b6000611df36119e9565b90506000611e0a8284611fff90919063ffffffff16565b9050611e5e81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d8b90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611ebb82600654611d4190919063ffffffff16565b600681905550611ed681600754611d8b90919063ffffffff16565b6007819055505050565b600080600080611f0c6064611efe888a611fff90919063ffffffff16565b611a1490919063ffffffff16565b90506000611f366064611f28888b611fff90919063ffffffff16565b611a1490919063ffffffff16565b90506000611f5f82611f51858c611d4190919063ffffffff16565b611d4190919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080611f8f8589611fff90919063ffffffff16565b90506000611fa68689611fff90919063ffffffff16565b90506000611fbd8789611fff90919063ffffffff16565b90506000611fe682611fd88587611d4190919063ffffffff16565b611d4190919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156120125760009050612074565b600082846120209190612d62565b905082848261202f9190612c6f565b1461206f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206690612e2e565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156120b4578082015181840152602081019050612099565b838111156120c3576000848401525b50505050565b6000601f19601f8301169050919050565b60006120e58261207a565b6120ef8185612085565b93506120ff818560208601612096565b612108816120c9565b840191505092915050565b6000602082019050818103600083015261212d81846120da565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121658261213a565b9050919050565b6121758161215a565b811461218057600080fd5b50565b6000813590506121928161216c565b92915050565b6000819050919050565b6121ab81612198565b81146121b657600080fd5b50565b6000813590506121c8816121a2565b92915050565b600080604083850312156121e5576121e4612135565b5b60006121f385828601612183565b9250506020612204858286016121b9565b9150509250929050565b60008115159050919050565b6122238161220e565b82525050565b600060208201905061223e600083018461221a565b92915050565b61224d81612198565b82525050565b60006020820190506122686000830184612244565b92915050565b60008060006060848603121561228757612286612135565b5b600061229586828701612183565b93505060206122a686828701612183565b92505060406122b7868287016121b9565b9150509250925092565b600060ff82169050919050565b6122d7816122c1565b82525050565b60006020820190506122f260008301846122ce565b92915050565b60006020828403121561230e5761230d612135565b5b600061231c84828501612183565b91505092915050565b61232e8161215a565b82525050565b60006020820190506123496000830184612325565b92915050565b60006020828403121561236557612364612135565b5b6000612373848285016121b9565b91505092915050565b6000806040838503121561239357612392612135565b5b60006123a185828601612183565b92505060206123b285828601612183565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006123f2602083612085565b91506123fd826123bc565b602082019050919050565b60006020820190508181036000830152612421816123e5565b9050919050565b7f52617465206d757374206265206e6f6e2d6e6567617469766500000000000000600082015250565b600061245e601983612085565b915061246982612428565b602082019050919050565b6000602082019050818103600083015261248d81612451565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006124ca601783612085565b91506124d582612494565b602082019050919050565b600060208201905081810360008301526124f9816124bd565b9050919050565b60008151905061250f8161216c565b92915050565b60006020828403121561252b5761252a612135565b5b600061253984828501612500565b91505092915050565b60006040820190506125576000830185612325565b6125646020830184612325565b9392505050565b6000819050919050565b6000819050919050565b600061259a6125956125908461256b565b612575565b612198565b9050919050565b6125aa8161257f565b82525050565b600060c0820190506125c56000830189612325565b6125d26020830188612244565b6125df60408301876125a1565b6125ec60608301866125a1565b6125f96080830185612325565b61260660a0830184612244565b979650505050505050565b600081519050612620816121a2565b92915050565b60008060006060848603121561263f5761263e612135565b5b600061264d86828701612611565b935050602061265e86828701612611565b925050604061266f86828701612611565b9150509250925092565b600060408201905061268e6000830185612325565b61269b6020830184612244565b9392505050565b6126ab8161220e565b81146126b657600080fd5b50565b6000815190506126c8816126a2565b92915050565b6000602082840312156126e4576126e3612135565b5b60006126f2848285016126b9565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612757602483612085565b9150612762826126fb565b604082019050919050565b600060208201905081810360008301526127868161274a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006127e9602283612085565b91506127f48261278d565b604082019050919050565b60006020820190508181036000830152612818816127dc565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061287b602583612085565b91506128868261281f565b604082019050919050565b600060208201905081810360008301526128aa8161286e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061290d602383612085565b9150612918826128b1565b604082019050919050565b6000602082019050818103600083015261293c81612900565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061299f602983612085565b91506129aa82612943565b604082019050919050565b600060208201905081810360008301526129ce81612992565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a0f82612198565b9150612a1a83612198565b925082821015612a2d57612a2c6129d5565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612acb8161215a565b82525050565b6000612add8383612ac2565b60208301905092915050565b6000602082019050919050565b6000612b0182612a96565b612b0b8185612aa1565b9350612b1683612ab2565b8060005b83811015612b47578151612b2e8882612ad1565b9750612b3983612ae9565b925050600181019050612b1a565b5085935050505092915050565b600060a082019050612b696000830188612244565b612b7660208301876125a1565b8181036040830152612b888186612af6565b9050612b976060830185612325565b612ba46080830184612244565b9695505050505050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000612c0a602a83612085565b9150612c1582612bae565b604082019050919050565b60006020820190508181036000830152612c3981612bfd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612c7a82612198565b9150612c8583612198565b925082612c9557612c94612c40565b5b828204905092915050565b6000612cab82612198565b9150612cb683612198565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612ceb57612cea6129d5565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612d2c601b83612085565b9150612d3782612cf6565b602082019050919050565b60006020820190508181036000830152612d5b81612d1f565b9050919050565b6000612d6d82612198565b9150612d7883612198565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612db157612db06129d5565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e18602183612085565b9150612e2382612dbc565b604082019050919050565b60006020820190508181036000830152612e4781612e0b565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e14a59e649665d970144f85027e335fe715cf355a84b4a124f111fcb6a95c93a64736f6c63430008090033

Deployed Bytecode

0x6080604052600436106100f75760003560e01c80638da5cb5b1161008a578063c6d69a3011610059578063c6d69a3014610325578063c9567bf91461034e578063dd62ed3e14610365578063f4293890146103a2576100fe565b80638da5cb5b146102695780638f02cf971461029457806395d89b41146102bd578063a9059cbb146102e8576100fe565b8063313ce567116100c6578063313ce567146101d357806351bc3c85146101fe57806370a0823114610215578063715018a614610252576100fe565b806306fdde0314610103578063095ea7b31461012e57806318160ddd1461016b57806323b872dd14610196576100fe565b366100fe57005b600080fd5b34801561010f57600080fd5b506101186103b9565b6040516101259190612113565b60405180910390f35b34801561013a57600080fd5b50610155600480360381019061015091906121ce565b6103f6565b6040516101629190612229565b60405180910390f35b34801561017757600080fd5b50610180610414565b60405161018d9190612253565b60405180910390f35b3480156101a257600080fd5b506101bd60048036038101906101b8919061226e565b61041e565b6040516101ca9190612229565b60405180910390f35b3480156101df57600080fd5b506101e86104f7565b6040516101f591906122dd565b60405180910390f35b34801561020a57600080fd5b506102136104fc565b005b34801561022157600080fd5b5061023c600480360381019061023791906122f8565b610576565b6040516102499190612253565b60405180910390f35b34801561025e57600080fd5b506102676105c7565b005b34801561027557600080fd5b5061027e6107dc565b60405161028b9190612334565b60405180910390f35b3480156102a057600080fd5b506102bb60048036038101906102b6919061234f565b610805565b005b3480156102c957600080fd5b506102d2610903565b6040516102df9190612113565b60405180910390f35b3480156102f457600080fd5b5061030f600480360381019061030a91906121ce565b610940565b60405161031c9190612229565b60405180910390f35b34801561033157600080fd5b5061034c6004803603810190610347919061234f565b61095e565b005b34801561035a57600080fd5b50610363610aa0565b005b34801561037157600080fd5b5061038c6004803603810190610387919061237c565b61101f565b6040516103999190612253565b60405180910390f35b3480156103ae57600080fd5b506103b76110a6565b005b60606040518060400160405280600a81526020017f442e4f6e65506965636500000000000000000000000000000000000000000000815250905090565b600061040a610403611118565b8484611120565b6001905092915050565b6000600554905090565b600061042b8484846112eb565b6104ec84610437611118565b6104e785604051806060016040528060288152602001612e4f60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061049d611118565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116139092919063ffffffff16565b611120565b600190509392505050565b600090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661053d611118565b73ffffffffffffffffffffffffffffffffffffffff161461055d57600080fd5b600061056830610576565b905061057381611677565b50565b60006105c0600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118ff565b9050919050565b6105cf611118565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061067c575061062b611118565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b6106bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b290612408565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61080d611118565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806108ba5750610869611118565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b6108f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f090612408565b60405180910390fd5b80600c8190555050565b60606040518060400160405280600981526020017f444f6e6550696563650000000000000000000000000000000000000000000000815250905090565b600061095461094d611118565b84846112eb565b6001905092915050565b610966611118565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610a1357506109c2611118565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4990612408565b60405180910390fd5b6000811015610a96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8d90612474565b60405180910390fd5b8060088190555050565b610aa8611118565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610b555750610b04611118565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610b94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8b90612408565b60405180910390fd5b600b60149054906101000a900460ff1615610be4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bdb906124e0565b60405180910390fd5b610c1330600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600554611120565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610c7b57600080fd5b505afa158015610c8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb39190612515565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610d3757600080fd5b505afa158015610d4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6f9190612515565b6040518363ffffffff1660e01b8152600401610d8c929190612542565b602060405180830381600087803b158015610da657600080fd5b505af1158015610dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dde9190612515565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e6730610576565b600080610e726107dc565b426040518863ffffffff1660e01b8152600401610e94969594939291906125b0565b6060604051808303818588803b158015610ead57600080fd5b505af1158015610ec1573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ee69190612626565b5050506001600b60166101000a81548160ff0219169083151502179055506402540be400600c819055506001600b60146101000a81548160ff021916908315150217905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610fca929190612679565b602060405180830381600087803b158015610fe457600080fd5b505af1158015610ff8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101c91906126ce565b50565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110e7611118565b73ffffffffffffffffffffffffffffffffffffffff161461110757600080fd5b60004790506111158161196d565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611190576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111879061276d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f7906127ff565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112de9190612253565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561135b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135290612891565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c290612923565b60405180910390fd5b6000811161140e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611405906129b5565b60405180910390fd5b6114166107dc565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561148457506114546107dc565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561160357600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156115345750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561154957600c5481111561154857600080fd5b5b600061155430610576565b9050600b60159054906101000a900460ff161580156115c15750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156115d95750600b60169054906101000a900460ff165b15611601576115e781611677565b600047905060008111156115ff576115fe4761196d565b5b505b505b61160e8383836119d9565b505050565b600083831115829061165b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116529190612113565b60405180910390fd5b506000838561166a9190612a04565b9050809150509392505050565b6001600b60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156116af576116ae612a38565b5b6040519080825280602002602001820160405280156116dd5781602001602082028036833780820191505090505b50905030816000815181106116f5576116f4612a67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561179757600080fd5b505afa1580156117ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117cf9190612515565b816001815181106117e3576117e2612a67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061184a30600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611120565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016118ae959493929190612b54565b600060405180830381600087803b1580156118c857600080fd5b505af11580156118dc573d6000803e3d6000fd5b50505050506000600b60156101000a81548160ff02191690831515021790555050565b6000600654821115611946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193d90612c20565b60405180910390fd5b60006119506119e9565b90506119658184611a1490919063ffffffff16565b915050919050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156119d5573d6000803e3d6000fd5b5050565b6119e4838383611a5e565b505050565b60008060006119f6611c29565b91509150611a0d8183611a1490919063ffffffff16565b9250505090565b6000611a5683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c76565b905092915050565b600080600080600080611a7087611cd9565b955095509550955095509550611ace86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4190919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b6385600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d8b90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611baf81611de9565b611bb98483611ea6565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611c169190612253565b60405180910390a3505050505050505050565b6000806000600654905060006005549050611c51600554600654611a1490919063ffffffff16565b821015611c6957600654600554935093505050611c72565b81819350935050505b9091565b60008083118290611cbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb49190612113565b60405180910390fd5b5060008385611ccc9190612c6f565b9050809150509392505050565b6000806000806000806000806000611cf68a600854600854611ee0565b9250925092506000611d066119e9565b90506000806000611d198e878787611f76565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611d8383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611613565b905092915050565b6000808284611d9a9190612ca0565b905083811015611ddf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd690612d42565b60405180910390fd5b8091505092915050565b6000611df36119e9565b90506000611e0a8284611fff90919063ffffffff16565b9050611e5e81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d8b90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611ebb82600654611d4190919063ffffffff16565b600681905550611ed681600754611d8b90919063ffffffff16565b6007819055505050565b600080600080611f0c6064611efe888a611fff90919063ffffffff16565b611a1490919063ffffffff16565b90506000611f366064611f28888b611fff90919063ffffffff16565b611a1490919063ffffffff16565b90506000611f5f82611f51858c611d4190919063ffffffff16565b611d4190919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080611f8f8589611fff90919063ffffffff16565b90506000611fa68689611fff90919063ffffffff16565b90506000611fbd8789611fff90919063ffffffff16565b90506000611fe682611fd88587611d4190919063ffffffff16565b611d4190919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156120125760009050612074565b600082846120209190612d62565b905082848261202f9190612c6f565b1461206f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206690612e2e565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156120b4578082015181840152602081019050612099565b838111156120c3576000848401525b50505050565b6000601f19601f8301169050919050565b60006120e58261207a565b6120ef8185612085565b93506120ff818560208601612096565b612108816120c9565b840191505092915050565b6000602082019050818103600083015261212d81846120da565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121658261213a565b9050919050565b6121758161215a565b811461218057600080fd5b50565b6000813590506121928161216c565b92915050565b6000819050919050565b6121ab81612198565b81146121b657600080fd5b50565b6000813590506121c8816121a2565b92915050565b600080604083850312156121e5576121e4612135565b5b60006121f385828601612183565b9250506020612204858286016121b9565b9150509250929050565b60008115159050919050565b6122238161220e565b82525050565b600060208201905061223e600083018461221a565b92915050565b61224d81612198565b82525050565b60006020820190506122686000830184612244565b92915050565b60008060006060848603121561228757612286612135565b5b600061229586828701612183565b93505060206122a686828701612183565b92505060406122b7868287016121b9565b9150509250925092565b600060ff82169050919050565b6122d7816122c1565b82525050565b60006020820190506122f260008301846122ce565b92915050565b60006020828403121561230e5761230d612135565b5b600061231c84828501612183565b91505092915050565b61232e8161215a565b82525050565b60006020820190506123496000830184612325565b92915050565b60006020828403121561236557612364612135565b5b6000612373848285016121b9565b91505092915050565b6000806040838503121561239357612392612135565b5b60006123a185828601612183565b92505060206123b285828601612183565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006123f2602083612085565b91506123fd826123bc565b602082019050919050565b60006020820190508181036000830152612421816123e5565b9050919050565b7f52617465206d757374206265206e6f6e2d6e6567617469766500000000000000600082015250565b600061245e601983612085565b915061246982612428565b602082019050919050565b6000602082019050818103600083015261248d81612451565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006124ca601783612085565b91506124d582612494565b602082019050919050565b600060208201905081810360008301526124f9816124bd565b9050919050565b60008151905061250f8161216c565b92915050565b60006020828403121561252b5761252a612135565b5b600061253984828501612500565b91505092915050565b60006040820190506125576000830185612325565b6125646020830184612325565b9392505050565b6000819050919050565b6000819050919050565b600061259a6125956125908461256b565b612575565b612198565b9050919050565b6125aa8161257f565b82525050565b600060c0820190506125c56000830189612325565b6125d26020830188612244565b6125df60408301876125a1565b6125ec60608301866125a1565b6125f96080830185612325565b61260660a0830184612244565b979650505050505050565b600081519050612620816121a2565b92915050565b60008060006060848603121561263f5761263e612135565b5b600061264d86828701612611565b935050602061265e86828701612611565b925050604061266f86828701612611565b9150509250925092565b600060408201905061268e6000830185612325565b61269b6020830184612244565b9392505050565b6126ab8161220e565b81146126b657600080fd5b50565b6000815190506126c8816126a2565b92915050565b6000602082840312156126e4576126e3612135565b5b60006126f2848285016126b9565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612757602483612085565b9150612762826126fb565b604082019050919050565b600060208201905081810360008301526127868161274a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006127e9602283612085565b91506127f48261278d565b604082019050919050565b60006020820190508181036000830152612818816127dc565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061287b602583612085565b91506128868261281f565b604082019050919050565b600060208201905081810360008301526128aa8161286e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061290d602383612085565b9150612918826128b1565b604082019050919050565b6000602082019050818103600083015261293c81612900565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061299f602983612085565b91506129aa82612943565b604082019050919050565b600060208201905081810360008301526129ce81612992565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a0f82612198565b9150612a1a83612198565b925082821015612a2d57612a2c6129d5565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612acb8161215a565b82525050565b6000612add8383612ac2565b60208301905092915050565b6000602082019050919050565b6000612b0182612a96565b612b0b8185612aa1565b9350612b1683612ab2565b8060005b83811015612b47578151612b2e8882612ad1565b9750612b3983612ae9565b925050600181019050612b1a565b5085935050505092915050565b600060a082019050612b696000830188612244565b612b7660208301876125a1565b8181036040830152612b888186612af6565b9050612b976060830185612325565b612ba46080830184612244565b9695505050505050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000612c0a602a83612085565b9150612c1582612bae565b604082019050919050565b60006020820190508181036000830152612c3981612bfd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612c7a82612198565b9150612c8583612198565b925082612c9557612c94612c40565b5b828204905092915050565b6000612cab82612198565b9150612cb683612198565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612ceb57612cea6129d5565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612d2c601b83612085565b9150612d3782612cf6565b602082019050919050565b60006020820190508181036000830152612d5b81612d1f565b9050919050565b6000612d6d82612198565b9150612d7883612198565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612db157612db06129d5565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e18602183612085565b9150612e2382612dbc565b604082019050919050565b60006020820190508181036000830152612e4781612e0b565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e14a59e649665d970144f85027e335fe715cf355a84b4a124f111fcb6a95c93a64736f6c63430008090033

Deployed Bytecode Sourcemap

3212:7882:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4441:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5205:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4682:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5358:292;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4603:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9126:169;;;;;;;;;;;;;:::i;:::-;;4775:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2403:169;;;;;;;;;;;;;:::i;:::-;;2187:70;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10781:75;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4520:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4909:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6206:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7593:567;;;;;;;;;;;;;:::i;:::-;;5066:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9300:168;;;;;;;;;;;;;:::i;:::-;;4441:74;4478:13;4505:5;;;;;;;;;;;;;;;;;4498:12;;4441:74;:::o;5205:146::-;5280:4;5291:39;5300:12;:10;:12::i;:::-;5314:7;5323:6;5291:8;:39::i;:::-;5342:4;5335:11;;5205:146;;;;:::o;4682:88::-;4737:7;4758;;4751:14;;4682:88;:::o;5358:292::-;5456:4;5467:36;5477:6;5485:9;5496:6;5467:9;:36::i;:::-;5508:121;5517:6;5525:12;:10;:12::i;:::-;5539:89;5577:6;5539:89;;;;;;;;;;;;;;;;;:11;:19;5551:6;5539:19;;;;;;;;;;;;;;;:33;5559:12;:10;:12::i;:::-;5539:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;5508:8;:121::i;:::-;5641:4;5634:11;;5358:292;;;;;:::o;4603:74::-;4644:5;4603:74;:::o;9126:169::-;9186:10;;;;;;;;;;;9170:26;;:12;:10;:12::i;:::-;:26;;;9162:35;;;;;;9202:23;9228:24;9246:4;9228:9;:24::i;:::-;9202:50;;9257:33;9274:15;9257:16;:33::i;:::-;9157:138;9126:169::o;4775:129::-;4841:7;4862:37;4882:7;:16;4890:7;4882:16;;;;;;;;;;;;;;;;4862:19;:37::i;:::-;4855:44;;4775:129;;;:::o;2403:169::-;2306:12;:10;:12::i;:::-;2296:22;;:6;;;;;;;;;;:22;;;:54;;;;2338:12;:10;:12::i;:::-;2322:28;;:14;;;;;;;;;;;:28;;;2296:54;2288:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;2504:6:::1;2467:45;;2488:6;::::0;::::1;;;;;;;;2467:45;;;;;;;;;;;;2532:6;::::0;::::1;;;;;;;;2517:14;;:21;;;;;;;;;;;;;;;;;;2560:6;2543;::::0;:24:::1;;;;;;;;;;;;;;;;;;2403:169::o:0;2187:70::-;2225:7;2246:6;;;;;;;;;;;2239:13;;2187:70;:::o;10781:75::-;2306:12;:10;:12::i;:::-;2296:22;;:6;;;;;;;;;;:22;;;:54;;;;2338:12;:10;:12::i;:::-;2322:28;;:14;;;;;;;;;;;:28;;;2296:54;2288:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;10847:4:::1;10839:5;:12;;;;10781:75:::0;:::o;4520:78::-;4559:13;4586:7;;;;;;;;;;;;;;;;;4579:14;;4520:78;:::o;4909:152::-;4987:4;4998:42;5008:12;:10;:12::i;:::-;5022:9;5033:6;4998:9;:42::i;:::-;5052:4;5045:11;;4909:152;;;;:::o;6206:122::-;2306:12;:10;:12::i;:::-;2296:22;;:6;;;;;;;;;;:22;;;:54;;;;2338:12;:10;:12::i;:::-;2322:28;;:14;;;;;;;;;;;:28;;;2296:54;2288:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;6274:1:::1;6268:4;:7;;6260:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;6319:4;6310:8;:13;;;;6206:122:::0;:::o;7593:567::-;2306:12;:10;:12::i;:::-;2296:22;;:6;;;;;;;;;;:22;;;:54;;;;2338:12;:10;:12::i;:::-;2322:28;;:14;;;;;;;;;;;:28;;;2296:54;2288:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;7651:11:::1;;;;;;;;;;;7650:12;7642:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;7695:58;7712:4;7727:15;;;;;;;;;;;7745:7;;7695:8;:58::i;:::-;7792:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7774:55;;;7838:4;7845:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7774:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7758:13;;:110;;;;;;;;;;;;;;;;;;7873:15;;;;;;;;;;;:31;;;7913:21;7944:4;7951:24;7969:4;7951:9;:24::i;:::-;7977:1;7980::::0;7983:7:::1;:5;:7::i;:::-;7992:15;7873:135;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;8027:4;8013:11;;:18;;;;;;;;;;;;;;;;;;8044:11;8036:5;:19;;;;8075:4;8061:11;;:18;;;;;;;;;;;;;;;;;;8091:13;;;;;;;;;;;8084:29;;;8122:15;;;;;;;;;;;8140:14;8084:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7593:567::o:0;5066:134::-;5147:7;5168:11;:18;5180:5;5168:18;;;;;;;;;;;;;;;:27;5187:7;5168:27;;;;;;;;;;;;;;;;5161:34;;5066:134;;;;:::o;9300:168::-;9360:10;;;;;;;;;;;9344:26;;:12;:10;:12::i;:::-;:26;;;9336:35;;;;;;9376:26;9405:21;9376:50;;9431:32;9444:18;9431:12;:32::i;:::-;9331:137;9300:168::o;119:89::-;172:7;193:10;186:17;;119:89;:::o;5893:308::-;5997:1;5980:19;;:5;:19;;;;5972:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6072:1;6053:21;;:7;:21;;;;6045:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6148:6;6118:11;:18;6130:5;6118:18;;;;;;;;;;;;;;;:27;6137:7;6118:27;;;;;;;;;;;;;;;:36;;;;6180:7;6164:32;;6173:5;6164:32;;;6189:6;6164:32;;;;;;:::i;:::-;;;;;;;;5893:308;;;:::o;6333:789::-;6431:1;6415:18;;:4;:18;;;;6407:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6502:1;6488:16;;:2;:16;;;;6480:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6566:1;6557:6;:10;6549:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6632:7;:5;:7::i;:::-;6624:15;;:4;:15;;;;:32;;;;;6649:7;:5;:7::i;:::-;6643:13;;:2;:13;;;;6624:32;6620:461;;;6674:13;;;;;;;;;;;6668:19;;:2;:19;;;:55;;;;;6707:15;;;;;;;;;;;6691:32;;:4;:32;;;;6668:55;6664:99;;;6750:5;;6740:6;:15;;6732:24;;;;;;6664:99;6768:28;6799:24;6817:4;6799:9;:24::i;:::-;6768:55;;6834:6;;;;;;;;;;;6833:7;:32;;;;;6852:13;;;;;;;;;;;6844:21;;:4;:21;;;;6833:32;:47;;;;;6869:11;;;;;;;;;;;6833:47;6829:247;;;6889:38;6906:20;6889:16;:38::i;:::-;6934:26;6963:21;6934:50;;7016:1;6995:18;:22;6991:79;;;7027:35;7040:21;7027:12;:35::i;:::-;6991:79;6882:194;6829:247;6658:423;6620:461;7085:32;7100:4;7106:2;7110:6;7085:14;:32::i;:::-;6333:789;;;:::o;1184:169::-;1270:7;1297:1;1292;:6;;1300:12;1284:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1318:9;1334:1;1330;:5;;;;:::i;:::-;1318:17;;1347:1;1340:8;;;1184:169;;;;;:::o;7127:373::-;4094:4;4085:6;;:13;;;;;;;;;;;;;;;;;;7199:21:::1;7237:1;7223:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7199:40;;7262:4;7244;7249:1;7244:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;7282:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7272:4;7277:1;7272:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;7309:62;7326:4;7341:15;;;;;;;;;;;7359:11;7309:8;:62::i;:::-;7376:15;;;;;;;;;;;:66;;;7443:11;7456:1;7459:4;7472;7479:15;7376:119;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;7194:306;4118:5:::0;4109:6;;:14;;;;;;;;;;;;;;;;;;7127:373;:::o;5655:233::-;5723:7;5756;;5745;:18;;5737:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;5815:19;5837:10;:8;:10::i;:::-;5815:32;;5859:24;5871:11;5859:7;:11;;:24;;;;:::i;:::-;5852:31;;;5655:233;;;:::o;7505:83::-;7556:10;;;;;;;;;;;:19;;:27;7576:6;7556:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7505:83;:::o;8165:137::-;8253:44;8271:6;8279:9;8290:6;8253:17;:44::i;:::-;8165:137;;;:::o;10629:149::-;10671:7;10686:15;10703;10722:19;:17;:19::i;:::-;10685:56;;;;10753:20;10765:7;10753;:11;;:20;;;;:::i;:::-;10746:27;;;;10629:149;:::o;1567:123::-;1625:7;1646:39;1650:1;1653;1646:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1639:46;;1567:123;;;;:::o;8307:448::-;8400:15;8417:23;8442:12;8456:23;8481:12;8495:13;8512:19;8523:7;8512:10;:19::i;:::-;8399:132;;;;;;;;;;;;8554:28;8574:7;8554;:15;8562:6;8554:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;8536:7;:15;8544:6;8536:15;;;;;;;;;;;;;;;:46;;;;8608:39;8631:15;8608:7;:18;8616:9;8608:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;8587:7;:18;8595:9;8587:18;;;;;;;;;;;;;;;:60;;;;8652:16;8662:5;8652:9;:16::i;:::-;8673:23;8685:4;8691;8673:11;:23::i;:::-;8723:9;8706:44;;8715:6;8706:44;;;8734:15;8706:44;;;;;;:::i;:::-;;;;;;;;8394:361;;;;;;8307:448;;;:::o;10861:230::-;10912:7;10921;10935:15;10953:7;;10935:25;;10965:15;10983:7;;10965:25;;11009:20;11021:7;;11009;;:11;;:20;;;;:::i;:::-;10999:7;:30;10995:61;;;11039:7;;11048;;11031:25;;;;;;;;10995:61;11069:7;11078;11061:25;;;;;;10861:230;;;:::o;1695:168::-;1781:7;1807:1;1803;:5;1810:12;1795:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1828:9;1844:1;1840;:5;;;;:::i;:::-;1828:17;;1857:1;1850:8;;;1695:168;;;;;:::o;9473:441::-;9532:7;9541;9550;9559;9568;9577;9592:23;9617:12;9631:13;9648:40;9660:7;9669:8;;9679;;9648:11;:40::i;:::-;9591:97;;;;;;9693:19;9715:10;:8;:10::i;:::-;9693:32;;9731:15;9748:23;9773:12;9789:46;9801:7;9810:4;9816:5;9823:11;9789;:46::i;:::-;9730:105;;;;;;9848:7;9857:15;9874:4;9880:15;9897:4;9903:5;9840:69;;;;;;;;;;;;;;;;;;;9473:441;;;;;;;:::o;1052:127::-;1110:7;1131:43;1135:1;1138;1131:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1124:50;;1052:127;;;;:::o;889:158::-;947:7;961:9;977:1;973;:5;;;;:::i;:::-;961:17;;996:1;991;:6;;983:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1041:1;1034:8;;;889:158;;;;:::o;8760:190::-;8807:19;8829:10;:8;:10::i;:::-;8807:32;;8844:13;8860:22;8870:11;8860:5;:9;;:22;;;;:::i;:::-;8844:38;;8912:33;8939:5;8912:7;:22;8928:4;8912:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;8887:7;:22;8903:4;8887:22;;;;;;;;;;;;;;;:58;;;;8802:148;;8760:190;:::o;8955:132::-;9027:17;9039:4;9027:7;;:11;;:17;;;;:::i;:::-;9017:7;:27;;;;9062:20;9077:4;9062:10;;:14;;:20;;;;:::i;:::-;9049:10;:33;;;;8955:132;;:::o;9919:324::-;10012:7;10021;10030;10044:12;10059:28;10083:3;10059:19;10071:6;10059:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;10044:43;;10092:13;10108:29;10133:3;10108:20;10120:7;10108;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;10092:45;;10142:23;10168:28;10190:5;10168:17;10180:4;10168:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;10142:54;;10209:15;10226:4;10232:5;10201:37;;;;;;;;;9919:324;;;;;;;:::o;10248:376::-;10358:7;10367;10376;10390:15;10408:24;10420:11;10408:7;:11;;:24;;;;:::i;:::-;10390:42;;10437:12;10452:21;10461:11;10452:4;:8;;:21;;;;:::i;:::-;10437:36;;10478:13;10494:22;10504:11;10494:5;:9;;:22;;;;:::i;:::-;10478:38;;10521:23;10547:28;10569:5;10547:17;10559:4;10547:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;10521:54;;10588:7;10597:15;10614:4;10580:39;;;;;;;;;;10248:376;;;;;;;;:::o;1358:204::-;1416:7;1439:1;1434;:6;1430:32;;;1455:1;1448:8;;;;1430:32;1466:9;1482:1;1478;:5;;;;:::i;:::-;1466:17;;1505:1;1500;1496;:5;;;;:::i;:::-;:10;1488:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1556:1;1549:8;;;1358:204;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:86::-;4506:7;4546:4;4539:5;4535:16;4524:27;;4471:86;;;:::o;4563:112::-;4646:22;4662:5;4646:22;:::i;:::-;4641:3;4634:35;4563:112;;:::o;4681:214::-;4770:4;4808:2;4797:9;4793:18;4785:26;;4821:67;4885:1;4874:9;4870:17;4861:6;4821:67;:::i;:::-;4681:214;;;;:::o;4901:329::-;4960:6;5009:2;4997:9;4988:7;4984:23;4980:32;4977:119;;;5015:79;;:::i;:::-;4977:119;5135:1;5160:53;5205:7;5196:6;5185:9;5181:22;5160:53;:::i;:::-;5150:63;;5106:117;4901:329;;;;:::o;5236:118::-;5323:24;5341:5;5323:24;:::i;:::-;5318:3;5311:37;5236:118;;:::o;5360:222::-;5453:4;5491:2;5480:9;5476:18;5468:26;;5504:71;5572:1;5561:9;5557:17;5548:6;5504:71;:::i;:::-;5360:222;;;;:::o;5588:329::-;5647:6;5696:2;5684:9;5675:7;5671:23;5667:32;5664:119;;;5702:79;;:::i;:::-;5664:119;5822:1;5847:53;5892:7;5883:6;5872:9;5868:22;5847:53;:::i;:::-;5837:63;;5793:117;5588:329;;;;:::o;5923:474::-;5991:6;5999;6048:2;6036:9;6027:7;6023:23;6019:32;6016:119;;;6054:79;;:::i;:::-;6016:119;6174:1;6199:53;6244:7;6235:6;6224:9;6220:22;6199:53;:::i;:::-;6189:63;;6145:117;6301:2;6327:53;6372:7;6363:6;6352:9;6348:22;6327:53;:::i;:::-;6317:63;;6272:118;5923:474;;;;;:::o;6403:182::-;6543:34;6539:1;6531:6;6527:14;6520:58;6403:182;:::o;6591:366::-;6733:3;6754:67;6818:2;6813:3;6754:67;:::i;:::-;6747:74;;6830:93;6919:3;6830:93;:::i;:::-;6948:2;6943:3;6939:12;6932:19;;6591:366;;;:::o;6963:419::-;7129:4;7167:2;7156:9;7152:18;7144:26;;7216:9;7210:4;7206:20;7202:1;7191:9;7187:17;7180:47;7244:131;7370:4;7244:131;:::i;:::-;7236:139;;6963:419;;;:::o;7388:175::-;7528:27;7524:1;7516:6;7512:14;7505:51;7388:175;:::o;7569:366::-;7711:3;7732:67;7796:2;7791:3;7732:67;:::i;:::-;7725:74;;7808:93;7897:3;7808:93;:::i;:::-;7926:2;7921:3;7917:12;7910:19;;7569:366;;;:::o;7941:419::-;8107:4;8145:2;8134:9;8130:18;8122:26;;8194:9;8188:4;8184:20;8180:1;8169:9;8165:17;8158:47;8222:131;8348:4;8222:131;:::i;:::-;8214:139;;7941:419;;;:::o;8366:173::-;8506:25;8502:1;8494:6;8490:14;8483:49;8366:173;:::o;8545:366::-;8687:3;8708:67;8772:2;8767:3;8708:67;:::i;:::-;8701:74;;8784:93;8873:3;8784:93;:::i;:::-;8902:2;8897:3;8893:12;8886:19;;8545:366;;;:::o;8917:419::-;9083:4;9121:2;9110:9;9106:18;9098:26;;9170:9;9164:4;9160:20;9156:1;9145:9;9141:17;9134:47;9198:131;9324:4;9198:131;:::i;:::-;9190:139;;8917:419;;;:::o;9342:143::-;9399:5;9430:6;9424:13;9415:22;;9446:33;9473:5;9446:33;:::i;:::-;9342:143;;;;:::o;9491:351::-;9561:6;9610:2;9598:9;9589:7;9585:23;9581:32;9578:119;;;9616:79;;:::i;:::-;9578:119;9736:1;9761:64;9817:7;9808:6;9797:9;9793:22;9761:64;:::i;:::-;9751:74;;9707:128;9491:351;;;;:::o;9848:332::-;9969:4;10007:2;9996:9;9992:18;9984:26;;10020:71;10088:1;10077:9;10073:17;10064:6;10020:71;:::i;:::-;10101:72;10169:2;10158:9;10154:18;10145:6;10101:72;:::i;:::-;9848:332;;;;;:::o;10186:85::-;10231:7;10260:5;10249:16;;10186:85;;;:::o;10277:60::-;10305:3;10326:5;10319:12;;10277:60;;;:::o;10343:158::-;10401:9;10434:61;10452:42;10461:32;10487:5;10461:32;:::i;:::-;10452:42;:::i;:::-;10434:61;:::i;:::-;10421:74;;10343:158;;;:::o;10507:147::-;10602:45;10641:5;10602:45;:::i;:::-;10597:3;10590:58;10507:147;;:::o;10660:807::-;10909:4;10947:3;10936:9;10932:19;10924:27;;10961:71;11029:1;11018:9;11014:17;11005:6;10961:71;:::i;:::-;11042:72;11110:2;11099:9;11095:18;11086:6;11042:72;:::i;:::-;11124:80;11200:2;11189:9;11185:18;11176:6;11124:80;:::i;:::-;11214;11290:2;11279:9;11275:18;11266:6;11214:80;:::i;:::-;11304:73;11372:3;11361:9;11357:19;11348:6;11304:73;:::i;:::-;11387;11455:3;11444:9;11440:19;11431:6;11387:73;:::i;:::-;10660:807;;;;;;;;;:::o;11473:143::-;11530:5;11561:6;11555:13;11546:22;;11577:33;11604:5;11577:33;:::i;:::-;11473:143;;;;:::o;11622:663::-;11710:6;11718;11726;11775:2;11763:9;11754:7;11750:23;11746:32;11743:119;;;11781:79;;:::i;:::-;11743:119;11901:1;11926:64;11982:7;11973:6;11962:9;11958:22;11926:64;:::i;:::-;11916:74;;11872:128;12039:2;12065:64;12121:7;12112:6;12101:9;12097:22;12065:64;:::i;:::-;12055:74;;12010:129;12178:2;12204:64;12260:7;12251:6;12240:9;12236:22;12204:64;:::i;:::-;12194:74;;12149:129;11622:663;;;;;:::o;12291:332::-;12412:4;12450:2;12439:9;12435:18;12427:26;;12463:71;12531:1;12520:9;12516:17;12507:6;12463:71;:::i;:::-;12544:72;12612:2;12601:9;12597:18;12588:6;12544:72;:::i;:::-;12291:332;;;;;:::o;12629:116::-;12699:21;12714:5;12699:21;:::i;:::-;12692:5;12689:32;12679:60;;12735:1;12732;12725:12;12679:60;12629:116;:::o;12751:137::-;12805:5;12836:6;12830:13;12821:22;;12852:30;12876:5;12852:30;:::i;:::-;12751:137;;;;:::o;12894:345::-;12961:6;13010:2;12998:9;12989:7;12985:23;12981:32;12978:119;;;13016:79;;:::i;:::-;12978:119;13136:1;13161:61;13214:7;13205:6;13194:9;13190:22;13161:61;:::i;:::-;13151:71;;13107:125;12894:345;;;;:::o;13245:223::-;13385:34;13381:1;13373:6;13369:14;13362:58;13454:6;13449:2;13441:6;13437:15;13430:31;13245:223;:::o;13474:366::-;13616:3;13637:67;13701:2;13696:3;13637:67;:::i;:::-;13630:74;;13713:93;13802:3;13713:93;:::i;:::-;13831:2;13826:3;13822:12;13815:19;;13474:366;;;:::o;13846:419::-;14012:4;14050:2;14039:9;14035:18;14027:26;;14099:9;14093:4;14089:20;14085:1;14074:9;14070:17;14063:47;14127:131;14253:4;14127:131;:::i;:::-;14119:139;;13846:419;;;:::o;14271:221::-;14411:34;14407:1;14399:6;14395:14;14388:58;14480:4;14475:2;14467:6;14463:15;14456:29;14271:221;:::o;14498:366::-;14640:3;14661:67;14725:2;14720:3;14661:67;:::i;:::-;14654:74;;14737:93;14826:3;14737:93;:::i;:::-;14855:2;14850:3;14846:12;14839:19;;14498:366;;;:::o;14870:419::-;15036:4;15074:2;15063:9;15059:18;15051:26;;15123:9;15117:4;15113:20;15109:1;15098:9;15094:17;15087:47;15151:131;15277:4;15151:131;:::i;:::-;15143:139;;14870:419;;;:::o;15295:224::-;15435:34;15431:1;15423:6;15419:14;15412:58;15504:7;15499:2;15491:6;15487:15;15480:32;15295:224;:::o;15525:366::-;15667:3;15688:67;15752:2;15747:3;15688:67;:::i;:::-;15681:74;;15764:93;15853:3;15764:93;:::i;:::-;15882:2;15877:3;15873:12;15866:19;;15525:366;;;:::o;15897:419::-;16063:4;16101:2;16090:9;16086:18;16078:26;;16150:9;16144:4;16140:20;16136:1;16125:9;16121:17;16114:47;16178:131;16304:4;16178:131;:::i;:::-;16170:139;;15897:419;;;:::o;16322:222::-;16462:34;16458:1;16450:6;16446:14;16439:58;16531:5;16526:2;16518:6;16514:15;16507:30;16322:222;:::o;16550:366::-;16692:3;16713:67;16777:2;16772:3;16713:67;:::i;:::-;16706:74;;16789:93;16878:3;16789:93;:::i;:::-;16907:2;16902:3;16898:12;16891:19;;16550:366;;;:::o;16922:419::-;17088:4;17126:2;17115:9;17111:18;17103:26;;17175:9;17169:4;17165:20;17161:1;17150:9;17146:17;17139:47;17203:131;17329:4;17203:131;:::i;:::-;17195:139;;16922:419;;;:::o;17347:228::-;17487:34;17483:1;17475:6;17471:14;17464:58;17556:11;17551:2;17543:6;17539:15;17532:36;17347:228;:::o;17581:366::-;17723:3;17744:67;17808:2;17803:3;17744:67;:::i;:::-;17737:74;;17820:93;17909:3;17820:93;:::i;:::-;17938:2;17933:3;17929:12;17922:19;;17581:366;;;:::o;17953:419::-;18119:4;18157:2;18146:9;18142:18;18134:26;;18206:9;18200:4;18196:20;18192:1;18181:9;18177:17;18170:47;18234:131;18360:4;18234:131;:::i;:::-;18226:139;;17953:419;;;:::o;18378:180::-;18426:77;18423:1;18416:88;18523:4;18520:1;18513:15;18547:4;18544:1;18537:15;18564:191;18604:4;18624:20;18642:1;18624:20;:::i;:::-;18619:25;;18658:20;18676:1;18658:20;:::i;:::-;18653:25;;18697:1;18694;18691:8;18688:34;;;18702:18;;:::i;:::-;18688:34;18747:1;18744;18740:9;18732:17;;18564:191;;;;:::o;18761:180::-;18809:77;18806:1;18799:88;18906:4;18903:1;18896:15;18930:4;18927:1;18920:15;18947:180;18995:77;18992:1;18985:88;19092:4;19089:1;19082:15;19116:4;19113:1;19106:15;19133:114;19200:6;19234:5;19228:12;19218:22;;19133:114;;;:::o;19253:184::-;19352:11;19386:6;19381:3;19374:19;19426:4;19421:3;19417:14;19402:29;;19253:184;;;;:::o;19443:132::-;19510:4;19533:3;19525:11;;19563:4;19558:3;19554:14;19546:22;;19443:132;;;:::o;19581:108::-;19658:24;19676:5;19658:24;:::i;:::-;19653:3;19646:37;19581:108;;:::o;19695:179::-;19764:10;19785:46;19827:3;19819:6;19785:46;:::i;:::-;19863:4;19858:3;19854:14;19840:28;;19695:179;;;;:::o;19880:113::-;19950:4;19982;19977:3;19973:14;19965:22;;19880:113;;;:::o;20029:732::-;20148:3;20177:54;20225:5;20177:54;:::i;:::-;20247:86;20326:6;20321:3;20247:86;:::i;:::-;20240:93;;20357:56;20407:5;20357:56;:::i;:::-;20436:7;20467:1;20452:284;20477:6;20474:1;20471:13;20452:284;;;20553:6;20547:13;20580:63;20639:3;20624:13;20580:63;:::i;:::-;20573:70;;20666:60;20719:6;20666:60;:::i;:::-;20656:70;;20512:224;20499:1;20496;20492:9;20487:14;;20452:284;;;20456:14;20752:3;20745:10;;20153:608;;;20029:732;;;;:::o;20767:831::-;21030:4;21068:3;21057:9;21053:19;21045:27;;21082:71;21150:1;21139:9;21135:17;21126:6;21082:71;:::i;:::-;21163:80;21239:2;21228:9;21224:18;21215:6;21163:80;:::i;:::-;21290:9;21284:4;21280:20;21275:2;21264:9;21260:18;21253:48;21318:108;21421:4;21412:6;21318:108;:::i;:::-;21310:116;;21436:72;21504:2;21493:9;21489:18;21480:6;21436:72;:::i;:::-;21518:73;21586:3;21575:9;21571:19;21562:6;21518:73;:::i;:::-;20767:831;;;;;;;;:::o;21604:229::-;21744:34;21740:1;21732:6;21728:14;21721:58;21813:12;21808:2;21800:6;21796:15;21789:37;21604:229;:::o;21839:366::-;21981:3;22002:67;22066:2;22061:3;22002:67;:::i;:::-;21995:74;;22078:93;22167:3;22078:93;:::i;:::-;22196:2;22191:3;22187:12;22180:19;;21839:366;;;:::o;22211:419::-;22377:4;22415:2;22404:9;22400:18;22392:26;;22464:9;22458:4;22454:20;22450:1;22439:9;22435:17;22428:47;22492:131;22618:4;22492:131;:::i;:::-;22484:139;;22211:419;;;:::o;22636:180::-;22684:77;22681:1;22674:88;22781:4;22778:1;22771:15;22805:4;22802:1;22795:15;22822:185;22862:1;22879:20;22897:1;22879:20;:::i;:::-;22874:25;;22913:20;22931:1;22913:20;:::i;:::-;22908:25;;22952:1;22942:35;;22957:18;;:::i;:::-;22942:35;22999:1;22996;22992:9;22987:14;;22822:185;;;;:::o;23013:305::-;23053:3;23072:20;23090:1;23072:20;:::i;:::-;23067:25;;23106:20;23124:1;23106:20;:::i;:::-;23101:25;;23260:1;23192:66;23188:74;23185:1;23182:81;23179:107;;;23266:18;;:::i;:::-;23179:107;23310:1;23307;23303:9;23296:16;;23013:305;;;;:::o;23324:177::-;23464:29;23460:1;23452:6;23448:14;23441:53;23324:177;:::o;23507:366::-;23649:3;23670:67;23734:2;23729:3;23670:67;:::i;:::-;23663:74;;23746:93;23835:3;23746:93;:::i;:::-;23864:2;23859:3;23855:12;23848:19;;23507:366;;;:::o;23879:419::-;24045:4;24083:2;24072:9;24068:18;24060:26;;24132:9;24126:4;24122:20;24118:1;24107:9;24103:17;24096:47;24160:131;24286:4;24160:131;:::i;:::-;24152:139;;23879:419;;;:::o;24304:348::-;24344:7;24367:20;24385:1;24367:20;:::i;:::-;24362:25;;24401:20;24419:1;24401:20;:::i;:::-;24396:25;;24589:1;24521:66;24517:74;24514:1;24511:81;24506:1;24499:9;24492:17;24488:105;24485:131;;;24596:18;;:::i;:::-;24485:131;24644:1;24641;24637:9;24626:20;;24304:348;;;;:::o;24658:220::-;24798:34;24794:1;24786:6;24782:14;24775:58;24867:3;24862:2;24854:6;24850:15;24843:28;24658:220;:::o;24884:366::-;25026:3;25047:67;25111:2;25106:3;25047:67;:::i;:::-;25040:74;;25123:93;25212:3;25123:93;:::i;:::-;25241:2;25236:3;25232:12;25225:19;;24884:366;;;:::o;25256:419::-;25422:4;25460:2;25449:9;25445:18;25437:26;;25509:9;25503:4;25499:20;25495:1;25484:9;25480:17;25473:47;25537:131;25663:4;25537:131;:::i;:::-;25529:139;;25256:419;;;:::o

Swarm Source

ipfs://e14a59e649665d970144f85027e335fe715cf355a84b4a124f111fcb6a95c93a
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.