ERC-20
Source Code
Overview
Max Total Supply
1,000,000,000 FURBO
Holders
432
Transfers
-
0
Market
Price
$0.00 @ 0.000000 ETH
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
Furbo
Compiler Version
v0.7.4+commit.3f05b770
Contract Source Code (Solidity)
/**
*Submitted for verification at Arbiscan.io on 2023-05-15
*/
/**
$FURBO IS A PRODUCT OF ARB FURBO
*/
//SPDX-License-Identifier: MIT
/* Telegram: https://t.me/arbfurbo
Website: https://www.arbfurbo.wtf */
pragma solidity ^0.7.4;
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 IBEP20 {
function totalSupply() external view returns (uint256);
function decimals() external view returns (uint8);
function symbol() external view returns (string memory);
function name() external view returns (string memory);
function getOwner() external view returns (address);
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
);
}
interface IDEXFactory {
function createPair(address tokenA, address tokenB)
external
returns (address pair);
}
interface IDEXRouter {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidity(
address tokenA,
address tokenB,
uint256 amountADesired,
uint256 amountBDesired,
uint256 amountAMin,
uint256 amountBMin,
address to,
uint256 deadline
)
external
returns (
uint256 amountA,
uint256 amountB,
uint256 liquidity
);
function addLiquidityETH(
address token,
uint256 amountTokenDesired,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
)
external
payable
returns (
uint256 amountToken,
uint256 amountETH,
uint256 liquidity
);
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external payable;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
}
interface IDividendDistributor {
function setDistributionCriteria(
uint256 _minPeriod,
uint256 _minDistribution
) external;
function setShare(address shareholder, uint256 amount) external;
function deposit() external payable;
function process(uint256 gas) external;
}
contract DividendDistributor is IDividendDistributor {
using SafeMath for uint256;
address _token;
struct Share {
uint256 amount;
uint256 totalExcluded;
uint256 totalRealised;
}
IDEXRouter router;
address routerAddress = 0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506;
IBEP20 RewardToken = IBEP20(0xFC1e18fD211314900cb506993B9b14Ec72e3F574); //FARB
address[] shareholders;
mapping(address => uint256) shareholderIndexes;
mapping(address => uint256) shareholderClaims;
mapping(address => Share) public shares;
uint256 public totalShares;
uint256 public totalDividends;
uint256 public totalDistributed;
uint256 public dividendsPerShare;
uint256 public dividendsPerShareAccuracyFactor = 10**36;
uint256 public minPeriod = 60 minutes;
uint256 public minDistribution = 1 * (10**6);
uint256 currentIndex;
bool initialized;
modifier initialization() {
require(!initialized);
_;
initialized = true;
}
modifier onlyToken() {
require(msg.sender == _token);
_;
}
constructor(address _router) {
router = _router != address(0)
? IDEXRouter(_router)
: IDEXRouter(routerAddress);
_token = msg.sender;
}
function setDistributionCriteria(
uint256 newMinPeriod,
uint256 newMinDistribution
) external override onlyToken {
minPeriod = newMinPeriod;
minDistribution = newMinDistribution;
}
function setShare(address shareholder, uint256 amount)
external
override
onlyToken
{
if (shares[shareholder].amount > 0) {
distributeDividend(shareholder);
}
if (amount > 0 && shares[shareholder].amount == 0) {
addShareholder(shareholder);
} else if (amount == 0 && shares[shareholder].amount > 0) {
removeShareholder(shareholder);
}
totalShares = totalShares.sub(shares[shareholder].amount).add(amount);
shares[shareholder].amount = amount;
shares[shareholder].totalExcluded = getCumulativeDividends(
shares[shareholder].amount
);
}
function deposit() external payable override onlyToken {
uint256 balanceBefore = RewardToken.balanceOf(address(this));
address[] memory path = new address[](2);
path[0] = router.WETH();
path[1] = address(RewardToken);
router.swapExactETHForTokensSupportingFeeOnTransferTokens{
value: msg.value
}(0, path, address(this), block.timestamp);
uint256 amount = RewardToken.balanceOf(address(this)).sub(
balanceBefore
);
totalDividends = totalDividends.add(amount);
dividendsPerShare = dividendsPerShare.add(
dividendsPerShareAccuracyFactor.mul(amount).div(totalShares)
);
}
function process(uint256 gas) external override onlyToken {
uint256 shareholderCount = shareholders.length;
if (shareholderCount == 0) {
return;
}
uint256 iterations = 0;
uint256 gasUsed = 0;
uint256 gasLeft = gasleft();
while (gasUsed < gas && iterations < shareholderCount) {
if (currentIndex >= shareholderCount) {
currentIndex = 0;
}
if (shouldDistribute(shareholders[currentIndex])) {
distributeDividend(shareholders[currentIndex]);
}
gasUsed = gasUsed.add(gasLeft.sub(gasleft()));
gasLeft = gasleft();
currentIndex++;
iterations++;
}
}
function shouldDistribute(address shareholder)
internal
view
returns (bool)
{
return
shareholderClaims[shareholder] + minPeriod < block.timestamp &&
getUnpaidEarnings(shareholder) > minDistribution;
}
function distributeDividend(address shareholder) internal {
if (shares[shareholder].amount == 0) {
return;
}
uint256 amount = getUnpaidEarnings(shareholder);
if (amount > 0) {
totalDistributed = totalDistributed.add(amount);
RewardToken.transfer(shareholder, amount);
shareholderClaims[shareholder] = block.timestamp;
shares[shareholder].totalRealised = shares[shareholder]
.totalRealised
.add(amount);
shares[shareholder].totalExcluded = getCumulativeDividends(
shares[shareholder].amount
);
}
}
function claimDividend(address shareholder) external onlyToken {
distributeDividend(shareholder);
}
function rescueDividends(address to) external onlyToken {
RewardToken.transfer(to, RewardToken.balanceOf(address(this)));
}
function setRewardToken(address _rewardToken) external onlyToken {
RewardToken = IBEP20(_rewardToken);
}
function getUnpaidEarnings(address shareholder)
public
view
returns (uint256)
{
if (shares[shareholder].amount == 0) {
return 0;
}
uint256 shareholderTotalDividends = getCumulativeDividends(
shares[shareholder].amount
);
uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded;
if (shareholderTotalDividends <= shareholderTotalExcluded) {
return 0;
}
return shareholderTotalDividends.sub(shareholderTotalExcluded);
}
function getCumulativeDividends(uint256 share)
internal
view
returns (uint256)
{
return
share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor);
}
function addShareholder(address shareholder) internal {
shareholderIndexes[shareholder] = shareholders.length;
shareholders.push(shareholder);
}
function removeShareholder(address shareholder) internal {
shareholders[shareholderIndexes[shareholder]] = shareholders[
shareholders.length - 1
];
shareholderIndexes[
shareholders[shareholders.length - 1]
] = shareholderIndexes[shareholder];
shareholders.pop();
}
}
abstract contract Auth {
address internal owner;
mapping(address => bool) internal authorizations;
constructor(address _owner) {
owner = _owner;
authorizations[_owner] = true;
}
/**
* Function modifier to require caller to be contract owner
*/
modifier onlyOwner() {
require(isOwner(msg.sender), "!OWNER");
_;
}
/**
* Function modifier to require caller to be authorized
*/
modifier _onlyOwner() {
require(isAuthorized(msg.sender), "!AUTHORIZED");
_;
}
/**
* Authorize address. Owner only
*/
function authorize(address adr) public onlyOwner {
authorizations[adr] = true;
}
/**
* Remove address' authorization. Owner only
*/
function unauthorize(address adr) public onlyOwner {
authorizations[adr] = false;
}
/**
* Check if address is owner
*/
function isOwner(address account) public view returns (bool) {
return account == owner;
}
/**
* Return address' authorization status
*/
function isAuthorized(address adr) public view returns (bool) {
return authorizations[adr];
}
function renounceOwnership() public virtual onlyOwner {
transferOwnership(address(0));
}
/**
* Transfer ownership to new address. Caller must be owner.
*/
function transferOwnership(address payable adr) public onlyOwner {
owner = adr;
authorizations[adr] = true;
emit OwnershipTransferred(adr);
}
event OwnershipTransferred(address owner);
}
contract Furbo is IBEP20, Auth {
using SafeMath for uint256;
string constant _name = "FURBO";
string constant _symbol = "FURBO";
uint8 constant _decimals = 18;
address DEAD = 0x000000000000000000000000000000000000dEaD;
address ZERO = 0x0000000000000000000000000000000000000000;
address routerAddress = 0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506;
address RewardToken = 0xFC1e18fD211314900cb506993B9b14Ec72e3F574;
uint256 _totalSupply = 1000000000 * (10**_decimals);
uint256 public _maxTxAmount = (_totalSupply * 2) / 100;
uint256 public _walletMax = (_totalSupply * 20) / 100;
bool public restrictWhales = false;
mapping(address => uint256) _balances;
mapping(address => mapping(address => uint256)) _allowances;
mapping(address => bool) public isFeeExempt;
mapping(address => bool) public isTxLimitExempt;
mapping(address => bool) public isDividendExempt;
mapping(address => bool) public normalTransferAddress;
uint256 public liquidityFee = 1;
uint256 public marketingFee = 1;
uint256 public rewardsFee = 1;
uint256 public stakingRewardFee = 2;
uint256 public TeamdevFee = 1;
uint256 private _gasPriceLimitB = 8;
uint256 private gasPriceLimitB = _gasPriceLimitB * 1 gwei;
uint256 public sellMultiplier = 15;
uint256 public totalFee = 0;
uint256 public totalFeeIfSelling = 0;
address public autoLiquidityReceiver;
address public marketingWallet;
address public TeamdevWallet;
address public stakingRewardWallet;
IDEXRouter public router;
address public pair;
uint256 public launchedAt;
DividendDistributor public dividendDistributor;
uint256 distributorGas = 750000;
bool inSwapAndLiquify;
bool public swapAndLiquifyEnabled = true;
bool public swapAndLiquifyByLimitOnly = false;
uint256 public swapThreshold = (_totalSupply * 5) / 2000;
modifier lockTheSwap() {
inSwapAndLiquify = true;
_;
inSwapAndLiquify = false;
}
constructor() Auth(msg.sender) {
router = IDEXRouter(routerAddress);
pair = IDEXFactory(router.factory()).createPair(
router.WETH(),
address(this)
);
_allowances[address(this)][address(router)] = uint256(-1);
dividendDistributor = new DividendDistributor(address(router));
isFeeExempt[msg.sender] = true;
isFeeExempt[address(this)] = true;
isTxLimitExempt[msg.sender] = true;
isTxLimitExempt[pair] = true;
isDividendExempt[pair] = true;
isDividendExempt[msg.sender] = true;
isDividendExempt[address(this)] = true;
isDividendExempt[DEAD] = true;
isDividendExempt[ZERO] = true;
// NICE!
autoLiquidityReceiver = msg.sender;
marketingWallet = 0x2765f616E060d4E23a4aA2d751D6CF1AE6E4eeB8; // marketingwallet
TeamdevWallet = 0xcECBCa9F4921632544F9DC5FF1fB104941f99149; // Teamdev
stakingRewardWallet = 0xBF8944EA2E9705E0923708C1726c6BfFD4fae111; // Staking Reward
totalFee = (
liquidityFee.add(marketingFee).add(rewardsFee).add(TeamdevFee).add(stakingRewardFee)
);
totalFeeIfSelling = totalFee.mul(sellMultiplier).div(10);
_balances[msg.sender] = _totalSupply;
emit Transfer(address(0), msg.sender, _totalSupply);
}
receive() external payable {}
function name() external pure override returns (string memory) {
return _name;
}
function symbol() external pure override returns (string memory) {
return _symbol;
}
function decimals() external pure override returns (uint8) {
return _decimals;
}
function totalSupply() external view override returns (uint256) {
return _totalSupply;
}
function getOwner() external view override returns (address) {
return owner;
}
function getCirculatingSupply() public view returns (uint256) {
return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
}
function balanceOf(address account) public view override returns (uint256) {
return _balances[account];
}
function allowance(address holder, address spender)
external
view
override
returns (uint256)
{
return _allowances[holder][spender];
}
function approve(address spender, uint256 amount)
public
override
returns (bool)
{
_allowances[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
function approveMax(address spender) external returns (bool) {
return approve(spender, uint256(-1));
}
function claimDividend() external {
dividendDistributor.claimDividend(msg.sender);
}
function launched() internal view returns (bool) {
return launchedAt != 0;
}
function changeSellFeeX10(uint256 newMulti) external onlyOwner {
require(newMulti <= 30);
sellMultiplier = newMulti;
totalFeeIfSelling = totalFee.mul(sellMultiplier).div(10);
}
function launch() internal {
launchedAt = block.number;
}
function changeTxLimit(uint256 newLimit) external _onlyOwner {
_maxTxAmount = newLimit;
}
function checkTxLimit(address sender, uint256 amount) internal view {
require(
amount <= _maxTxAmount || isTxLimitExempt[sender],
"TX Limit Exceeded"
);
}
function setNormalTransferAddress(address _address, bool _status) external _onlyOwner{
normalTransferAddress[_address] = _status;
}
function changeWalletLimit(uint256 newLimit) external _onlyOwner {
_walletMax = newLimit;
}
function changeRestrictWhales(bool newValue) external _onlyOwner {
restrictWhales = newValue;
}
function changeIsFeeExempt(address holder, bool exempt)
external
_onlyOwner
{
isFeeExempt[holder] = exempt;
}
function changeIsTxLimitExempt(address holder, bool exempt)
external
_onlyOwner
{
isTxLimitExempt[holder] = exempt;
}
function changeIsDividendExempt(address holder, bool exempt)
external
_onlyOwner
{
require(holder != address(this) && holder != pair);
isDividendExempt[holder] = exempt;
if (exempt) {
dividendDistributor.setShare(holder, 0);
} else {
dividendDistributor.setShare(holder, _balances[holder]);
}
}
function changeFees(
uint256 newLiqFee,
uint256 newRewardFee,
uint256 newMarketingFee,
uint256 newTeamdevFee,
uint256 newStakingRewardFee
) external _onlyOwner {
liquidityFee = newLiqFee;
rewardsFee = newRewardFee;
marketingFee = newMarketingFee;
TeamdevFee = newTeamdevFee;
stakingRewardFee = newStakingRewardFee;
totalFee = liquidityFee
.add(marketingFee)
.add(rewardsFee)
.add(TeamdevFee)
.add(stakingRewardFee);
require(totalFee <= 10);
totalFeeIfSelling = totalFee.mul(sellMultiplier).div(10);
}
function changeFeeReceivers(
address newLiquidityReceiver,
address newMarketingWallet,
address newTeamdevWallet,
address newStakingRewardWallet
) external _onlyOwner {
autoLiquidityReceiver = newLiquidityReceiver;
marketingWallet = newMarketingWallet;
TeamdevWallet = newTeamdevWallet;
stakingRewardWallet = newStakingRewardWallet;
}
function changeSwapBackSettings(
bool enableSwapBack,
uint256 newSwapBackLimit,
bool swapByLimitOnly
) external _onlyOwner {
swapAndLiquifyEnabled = enableSwapBack;
swapThreshold = newSwapBackLimit;
swapAndLiquifyByLimitOnly = swapByLimitOnly;
}
function changeDistributionCriteria(
uint256 newinPeriod,
uint256 newMinDistribution
) external onlyOwner {
dividendDistributor.setDistributionCriteria(
newinPeriod,
newMinDistribution
);
}
function changeDistributorSettings(uint256 gas) external _onlyOwner {
require(gas < 750000);
distributorGas = gas;
}
function setRewardToken(address _rewardToken) external _onlyOwner {
dividendDistributor.setRewardToken(_rewardToken);
}
function transfer(address recipient, uint256 amount)
external
override
returns (bool)
{
return _transferFrom(msg.sender, recipient, amount);
}
function transferFrom(
address sender,
address recipient,
uint256 amount
) external override returns (bool) {
if (_allowances[sender][msg.sender] != uint256(-1)) {
_allowances[sender][msg.sender] = _allowances[sender][msg.sender]
.sub(amount, "Insufficient Allowance");
}
return _transferFrom(sender, recipient, amount);
}
function _transferFrom(
address sender,
address recipient,
uint256 amount
) internal returns (bool) {
if (inSwapAndLiquify) {
return _basicTransfer(sender, recipient, amount);
}
if(normalTransferAddress[sender]==true){
return _basicTransfer(sender, recipient, amount);
}
require(
amount <= _maxTxAmount || isTxLimitExempt[sender],
"TX Limit Exceeded"
);
if (
msg.sender != pair &&
!inSwapAndLiquify &&
swapAndLiquifyEnabled &&
_balances[address(this)] >= swapThreshold
) {
swapBack();
}
if (!launched() && recipient == pair) {
require(_balances[sender] > 0);
launch();
}
if (recipient != pair && sender != pair) {
return _basicTransfer(sender, recipient, amount);
}
//Exchange tokens
_balances[sender] = _balances[sender].sub(
amount,
"Insufficient Balance"
);
if (!isTxLimitExempt[recipient] && restrictWhales) {
require(_balances[recipient].add(amount) <= _walletMax);
}
uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient]
? takeFee(sender, recipient, amount)
: amount;
_balances[recipient] = _balances[recipient].add(finalAmount);
// Dividend tracker
if (!isDividendExempt[sender]) {
try
dividendDistributor.setShare(sender, _balances[sender])
{} catch {}
}
if (!isDividendExempt[recipient]) {
try
dividendDistributor.setShare(recipient, _balances[recipient])
{} catch {}
}
try dividendDistributor.process(distributorGas) {} catch {}
emit Transfer(sender, recipient, finalAmount);
return true;
}
function _basicTransfer(
address sender,
address recipient,
uint256 amount
) internal returns (bool) {
_balances[sender] = _balances[sender].sub(
amount,
"Insufficient Balance"
);
_balances[recipient] = _balances[recipient].add(amount);
emit Transfer(sender, recipient, amount);
return true;
}
function takeFee(
address sender,
address recipient,
uint256 amount
) internal returns (uint256) {
uint256 feeApplicable = pair == recipient
? totalFeeIfSelling
: totalFee;
uint256 feeAmount = amount.mul(feeApplicable).div(100);
_balances[address(this)] = _balances[address(this)].add(feeAmount);
emit Transfer(sender, address(this), feeAmount);
return amount.sub(feeAmount);
}
function setGas(uint256 Gas) external onlyOwner {
require(Gas > 7, "Max gas must be higher than 7 gwei");
_gasPriceLimitB = Gas;
gasPriceLimitB = _gasPriceLimitB * 1 gwei;
}
function swapBack() internal lockTheSwap {
uint256 amountToSwap = _balances[address(this)];
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = router.WETH();
router.swapExactTokensForETHSupportingFeeOnTransferTokens(
amountToSwap,
0,
path,
address(this),
block.timestamp
);
uint256 amountBNB = address(this).balance;
uint256 totalBNBFee = totalFee;
uint256 amountBNBLiquidity = amountBNB.mul(liquidityFee).div(totalBNBFee);
uint256 amountBNBReflection = amountBNB.mul(rewardsFee).div(
totalBNBFee
);
uint256 amountStakingReward = amountBNB.mul(stakingRewardFee).div(
totalBNBFee
);
uint256 amountBNBMarketing = amountBNB.mul(marketingFee).div(
totalBNBFee
);
uint256 amountBNBTeamdev = amountBNB.mul(TeamdevFee).div(totalBNBFee);
try
dividendDistributor.deposit{value: amountBNBReflection}()
{} catch {}
(bool tmpSuccess, ) = payable(marketingWallet).call{
value: amountBNBMarketing,
gas: 30000
}("");
(bool tmpSuccess1, ) = payable(TeamdevWallet).call{
value: amountBNBTeamdev,
gas: 30000
}("");
(bool tmpSuccess2, ) = payable(autoLiquidityReceiver).call{
value: amountBNBLiquidity,
gas: 30000
}("");
(bool tmpSuccess3, ) = payable(stakingRewardWallet).call{
value: amountStakingReward,
gas: 30000
}("");
// only to supress warning msg
tmpSuccess = false;
tmpSuccess1 = false;
tmpSuccess2 = false;
tmpSuccess3 = false;
}
event AutoLiquify(uint256 amountBNB, uint256 amountBOG);
}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":false,"internalType":"uint256","name":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","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":[],"name":"TeamdevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TeamdevWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newinPeriod","type":"uint256"},{"internalType":"uint256","name":"newMinDistribution","type":"uint256"}],"name":"changeDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"changeDistributorSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLiquidityReceiver","type":"address"},{"internalType":"address","name":"newMarketingWallet","type":"address"},{"internalType":"address","name":"newTeamdevWallet","type":"address"},{"internalType":"address","name":"newStakingRewardWallet","type":"address"}],"name":"changeFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiqFee","type":"uint256"},{"internalType":"uint256","name":"newRewardFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"},{"internalType":"uint256","name":"newTeamdevFee","type":"uint256"},{"internalType":"uint256","name":"newStakingRewardFee","type":"uint256"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"changeRestrictWhales","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMulti","type":"uint256"}],"name":"changeSellFeeX10","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapBack","type":"bool"},{"internalType":"uint256","name":"newSwapBackLimit","type":"uint256"},{"internalType":"bool","name":"swapByLimitOnly","type":"bool"}],"name":"changeSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dividendDistributor","outputs":[{"internalType":"contract DividendDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isDividendExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"normalTransferAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"restrictWhales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"Gas","type":"uint256"}],"name":"setGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setNormalTransferAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_rewardToken","type":"address"}],"name":"setRewardToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakingRewardFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingRewardWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
608060405261dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550731b02da8cb0d097eb8d57a175b88c7d8b47997506600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073fc1e18fd211314900cb506993b9b14ec72e3f574600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260ff16600a0a633b9aca00026006556064600260065402816200015457fe5b046007556064601460065402816200016857fe5b046008556000600960006101000a81548160ff021916908315150217905550600160105560016011556001601255600260135560016014556008601555633b9aca0060155402601655600f60175560006018556000601955620b71b06022556001602360016101000a81548160ff0219169083151502179055506000602360026101000a81548160ff0219169083151502179055506107d0600560065402816200020e57fe5b046024553480156200021f57600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200038557600080fd5b505afa1580156200039a573d6000803e3d6000fd5b505050506040513d6020811015620003b157600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c65396601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200044657600080fd5b505afa1580156200045b573d6000803e3d6000fd5b505050506040513d60208110156200047257600080fd5b8101908080519060200190929190505050306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015620004ee57600080fd5b505af115801562000503573d6000803e3d6000fd5b505050506040513d60208110156200051a57600080fd5b8101908080519060200190929190505050601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516200065f9062000f55565b808273ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f0801580156200069c573d6000803e3d6000fd5b50602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550732765f616e060d4e23a4aa2d751d6cf1ae6e4eeb8601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073cecbca9f4921632544f9dc5ff1fb104941f99149601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073bf8944ea2e9705e0923708c1726c6bffd4fae111601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000c2c60135462000c1860145462000c0460125462000bf060115460105462000d2460201b6200305d1790919060201c565b62000d2460201b6200305d1790919060201c565b62000d2460201b6200305d1790919060201c565b62000d2460201b6200305d1790919060201c565b60188190555062000c6a600a62000c5660175460185462000dad60201b620030e51790919060201c565b62000e3860201b6200316b1790919060201c565b601981905550600654600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040518082815260200191505060405180910390a362000f63565b60008082840190508381101562000da3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008083141562000dc2576000905062000e32565b600082840290508284828162000dd457fe5b041462000e2d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806200761f6021913960400191505060405180910390fd5b809150505b92915050565b600062000e8283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000e8a60201b60201c565b905092915050565b6000808311829062000f3a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101562000efe57808201518184015260208101905062000ee1565b50505050905090810190601f16801562000f2c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858162000f4757fe5b049050809150509392505050565b611e2e80620057f183390190565b61487e8062000f736000396000f3fe60806040526004361061039b5760003560e01c8063807c2d9c116101dc578063bf56b37111610102578063e66b1d1e116100a0578063f887ea401161006f578063f887ea40146113d2578063fabe628314611413578063fe9fbb8014611470578063fed0d2a1146114d7576103a2565b8063e66b1d1e146112dc578063f0b37c0414611319578063f0fc6bca1461136a578063f2fde38b14611381576103a2565b8063d920334e116100dc578063d920334e146111b4578063da00097d146111ef578063dd51faa21461121c578063dd62ed3e14611257576103a2565b8063bf56b3711461111d578063ca33e64c14611148578063ca987b0e14611189576103a2565b80639e1211171161017a578063a9f7864b11610149578063a9f7864b1461100b578063b6a5d7de14611050578063bad3ea6a146110a1578063bbb19940146110e2576103a2565b80639e12111714610e99578063a3a2e89e14610efc578063a8aa1b3114610f59578063a9059cbb14610f9a576103a2565b80638aee8127116101b65780638aee812714610d265780638b42507f14610d7757806395d89b4114610dde57806398118cb414610e6e576103a2565b8063807c2d9c14610c5d5780638647cb3c14610c88578063893d20e814610ce5576103a2565b80633f4218e0116102c15780636b67c4df1161025f57806375f0a8741161022e57806375f0a87414610b59578063773fcb5c14610b9a5780637d1db4a514610bf75780637db1342c14610c22576103a2565b80636b67c4df14610a4b57806370a0823114610a76578063715018a614610adb578063734d171414610af2576103a2565b8063479f66d81161029b578063479f66d8146108cb5780634a74bb0214610906578063571ac8b0146109335780635ada676a1461099a576103a2565b80633f4218e0146107d05780634355855a1461083757806344de2e4c1461089e576103a2565b806323b872dd116103395780632f54bf6e116103085780632f54bf6e146106a7578063313ce5671461070e578063326066f71461073c57806334c708891461077d576103a2565b806323b872dd1461057f5780632b112e49146106105780632bb14e1d1461063b5780632d2e5cd514610666576103a2565b8063095ea7b311610375578063095ea7b31461048d5780630c9e7019146104fe57806318160ddd146105295780631df4ccfc14610554576103a2565b80630445b667146103a7578063054bee62146103d257806306fdde03146103fd576103a2565b366103a257005b600080fd5b3480156103b357600080fd5b506103bc611502565b6040518082815260200191505060405180910390f35b3480156103de57600080fd5b506103e7611508565b6040518082815260200191505060405180910390f35b34801561040957600080fd5b5061041261150e565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610452578082015181840152602081019050610437565b50505050905090810190601f16801561047f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561049957600080fd5b506104e6600480360360408110156104b057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061154b565b60405180821515815260200191505060405180910390f35b34801561050a57600080fd5b5061051361163d565b6040518082815260200191505060405180910390f35b34801561053557600080fd5b5061053e611643565b6040518082815260200191505060405180910390f35b34801561056057600080fd5b5061056961164d565b6040518082815260200191505060405180910390f35b34801561058b57600080fd5b506105f8600480360360608110156105a257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611653565b60405180821515815260200191505060405180910390f35b34801561061c57600080fd5b50610625611853565b6040518082815260200191505060405180910390f35b34801561064757600080fd5b506106506118d5565b6040518082815260200191505060405180910390f35b34801561067257600080fd5b5061067b6118db565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106b357600080fd5b506106f6600480360360208110156106ca57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611901565b60405180821515815260200191505060405180910390f35b34801561071a57600080fd5b5061072361195a565b604051808260ff16815260200191505060405180910390f35b34801561074857600080fd5b50610751611963565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561078957600080fd5b506107ce600480360360608110156107a057600080fd5b8101908080351515906020019092919080359060200190929190803515159060200190929190505050611989565b005b3480156107dc57600080fd5b5061081f600480360360208110156107f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a44565b60405180821515815260200191505060405180910390f35b34801561084357600080fd5b506108866004803603602081101561085a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a64565b60405180821515815260200191505060405180910390f35b3480156108aa57600080fd5b506108b3611a84565b60405180821515815260200191505060405180910390f35b3480156108d757600080fd5b50610904600480360360208110156108ee57600080fd5b8101908080359060200190929190505050611a97565b005b34801561091257600080fd5b5061091b611b2b565b60405180821515815260200191505060405180910390f35b34801561093f57600080fd5b506109826004803603602081101561095657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b3e565b60405180821515815260200191505060405180910390f35b3480156109a657600080fd5b50610a49600480360360808110156109bd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b71565b005b348015610a5757600080fd5b50610a60611cf6565b6040518082815260200191505060405180910390f35b348015610a8257600080fd5b50610ac560048036036020811015610a9957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cfc565b6040518082815260200191505060405180910390f35b348015610ae757600080fd5b50610af0611d45565b005b348015610afe57600080fd5b50610b4160048036036020811015610b1557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dcc565b60405180821515815260200191505060405180910390f35b348015610b6557600080fd5b50610b6e611dec565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ba657600080fd5b50610bf560048036036040811015610bbd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611e12565b005b348015610c0357600080fd5b50610c0c61211d565b6040518082815260200191505060405180910390f35b348015610c2e57600080fd5b50610c5b60048036036020811015610c4557600080fd5b8101908080359060200190929190505050612123565b005b348015610c6957600080fd5b50610c726121a8565b6040518082815260200191505060405180910390f35b348015610c9457600080fd5b50610ce360048036036040811015610cab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506121ae565b005b348015610cf157600080fd5b50610cfa612284565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d3257600080fd5b50610d7560048036036020811015610d4957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506122ad565b005b348015610d8357600080fd5b50610dc660048036036020811015610d9a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123ce565b60405180821515815260200191505060405180910390f35b348015610dea57600080fd5b50610df36123ee565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610e33578082015181840152602081019050610e18565b50505050905090810190601f168015610e605780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610e7a57600080fd5b50610e8361242b565b6040518082815260200191505060405180910390f35b348015610ea557600080fd5b50610efa600480360360a0811015610ebc57600080fd5b810190808035906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050612431565b005b348015610f0857600080fd5b50610f5760048036036040811015610f1f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919050505061256f565b005b348015610f6557600080fd5b50610f6e612645565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610fa657600080fd5b50610ff360048036036040811015610fbd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061266b565b60405180821515815260200191505060405180910390f35b34801561101757600080fd5b5061104e6004803603604081101561102e57600080fd5b810190808035906020019092919080359060200190929190505050612680565b005b34801561105c57600080fd5b5061109f6004803603602081101561107357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612794565b005b3480156110ad57600080fd5b506110b6612869565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156110ee57600080fd5b5061111b6004803603602081101561110557600080fd5b810190808035906020019092919050505061288f565b005b34801561112957600080fd5b50611132612952565b6040518082815260200191505060405180910390f35b34801561115457600080fd5b5061115d612958565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561119557600080fd5b5061119e61297e565b6040518082815260200191505060405180910390f35b3480156111c057600080fd5b506111ed600480360360208110156111d757600080fd5b8101908080359060200190929190505050612984565b005b3480156111fb57600080fd5b50611204612a09565b60405180821515815260200191505060405180910390f35b34801561122857600080fd5b506112556004803603602081101561123f57600080fd5b8101908080359060200190929190505050612a1c565b005b34801561126357600080fd5b506112c66004803603604081101561127a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b09565b6040518082815260200191505060405180910390f35b3480156112e857600080fd5b50611317600480360360208110156112ff57600080fd5b81019080803515159060200190929190505050612b90565b005b34801561132557600080fd5b506113686004803603602081101561133c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c28565b005b34801561137657600080fd5b5061137f612cfe565b005b34801561138d57600080fd5b506113d0600480360360208110156113a457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612da3565b005b3480156113de57600080fd5b506113e7612f05565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561141f57600080fd5b5061146e6004803603604081101561143657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612f2b565b005b34801561147c57600080fd5b506114bf6004803603602081101561149357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613001565b60405180821515815260200191505060405180910390f35b3480156114e357600080fd5b506114ec613057565b6040518082815260200191505060405180910390f35b60245481565b60145481565b60606040518060400160405280600581526020017f465552424f000000000000000000000000000000000000000000000000000000815250905090565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60135481565b6000600654905090565b60185481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461183f576117be826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131b59092919063ffffffff16565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61184a848484613275565b90509392505050565b60006118d0611883600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611cfc565b6118c26118b1600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611cfc565b600654613c9f90919063ffffffff16565b613c9f90919063ffffffff16565b905090565b60125481565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61199233613001565b611a04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b82602360016101000a81548160ff0219169083151502179055508160248190555080602360026101000a81548160ff021916908315150217905550505050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600e6020528060005260406000206000915054906101000a900460ff1681565b600960009054906101000a900460ff1681565b611aa033613001565b611b12576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b620b71b08110611b2157600080fd5b8060228190555050565b602360019054906101000a900460ff1681565b6000611b6a827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61154b565b9050919050565b611b7a33613001565b611bec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b83601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b60115481565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611d4e33611901565b611dc0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b611dca6000612da3565b565b600f6020528060005260406000206000915054906101000a900460ff1681565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e1b33613001565b611e8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611f175750601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611f2057600080fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561202e57602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561201157600080fd5b505af1158015612025573d6000803e3d6000fd5b50505050612119565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561210057600080fd5b505af1158015612114573d6000803e3d6000fd5b505050505b5050565b60075481565b61212c33613001565b61219e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060088190555050565b60085481565b6121b733613001565b612229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6122b633613001565b612328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638aee8127826040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156123b357600080fd5b505af11580156123c7573d6000803e3d6000fd5b5050505050565b600d6020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600581526020017f465552424f000000000000000000000000000000000000000000000000000000815250905090565b60105481565b61243a33613001565b6124ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b84601081905550836012819055508260118190555081601481905550806013819055506125226013546125146014546125066012546124f860115460105461305d90919063ffffffff16565b61305d90919063ffffffff16565b61305d90919063ffffffff16565b61305d90919063ffffffff16565b601881905550600a601854111561253857600080fd5b612562600a6125546017546018546130e590919063ffffffff16565b61316b90919063ffffffff16565b6019819055505050505050565b61257833613001565b6125ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000612678338484613275565b905092915050565b61268933611901565b6126fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b15801561277857600080fd5b505af115801561278c573d6000803e3d6000fd5b505050505050565b61279d33611901565b61280f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61289833611901565b61290a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b601e81111561291857600080fd5b80601781905550612949600a61293b6017546018546130e590919063ffffffff16565b61316b90919063ffffffff16565b60198190555050565b60205481565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b61298d33613001565b6129ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060078190555050565b602360029054906101000a900460ff1681565b612a2533611901565b612a97576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60078111612af0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806148066022913960400191505060405180910390fd5b80601581905550633b9aca006015540260168190555050565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612b9933613001565b612c0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600960006101000a81548160ff02191690831515021790555050565b612c3133611901565b612ca3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015612d8957600080fd5b505af1158015612d9d573d6000803e3d6000fd5b50505050565b612dac33611901565b612e1e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612f3433613001565b612fa6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60175481565b6000808284019050838110156130db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000808314156130f85760009050613165565b600082840290508284828161310957fe5b0414613160576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806148286021913960400191505060405180910390fd5b809150505b92915050565b60006131ad83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613ce9565b905092915050565b6000838311158290613262576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561322757808201518184015260208101905061320c565b50505050905090810190601f1680156132545780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000602360009054906101000a900460ff161561329e57613297848484613daf565b9050613c98565b60011515600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141561330957613302848484613daf565b9050613c98565b600754821115806133635750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6133d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5458204c696d697420457863656564656400000000000000000000000000000081525060200191505060405180910390fd5b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156134405750602360009054906101000a900460ff16155b80156134585750602360019054906101000a900460ff165b80156134a55750602454600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b156134b3576134b2613f82565b5b6134bb614647565b1580156135155750601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561356f576000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161356657600080fd5b61356e614654565b5b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561361b5750601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156136325761362b848484613daf565b9050613c98565b6136bb826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131b59092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156137645750600960009054906101000a900460ff165b156137ca576008546137be83600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461305d90919063ffffffff16565b11156137c957600080fd5b5b6000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156138705750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61387a5782613886565b61388585858561465d565b5b90506138da81600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461305d90919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613a5c57602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015613a4057600080fd5b505af1925050508015613a51575060015b613a5a57613a5b565b5b5b600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613b9b57602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015613b7f57600080fd5b505af1925050508015613b90575060015b613b9957613b9a565b5b5b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c4796022546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015613c1257600080fd5b505af1925050508015613c23575060015b613c2c57613c2d565b5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019150505b9392505050565b6000613ce183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506131b5565b905092915050565b60008083118290613d95576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613d5a578082015181840152602081019050613d3f565b50505050905090810190601f168015613d875780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613da157fe5b049050809150509392505050565b6000613e3a826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131b59092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613ecf82600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461305d90919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6001602360006101000a81548160ff0219169083151502179055506000600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506060600267ffffffffffffffff81118015613ffb57600080fd5b5060405190808252806020026020018201604052801561402a5781602001602082028036833780820191505090505b509050308160008151811061403b57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156140dd57600080fd5b505afa1580156140f1573d6000803e3d6000fd5b505050506040513d602081101561410757600080fd5b81019080805190602001909291905050508160018151811061412557fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015614223578082015181840152602081019050614208565b505050509050019650505050505050600060405180830381600087803b15801561424c57600080fd5b505af1158015614260573d6000803e3d6000fd5b5050505060004790506000601854905060006142998261428b601054866130e590919063ffffffff16565b61316b90919063ffffffff16565b905060006142c4836142b6601254876130e590919063ffffffff16565b61316b90919063ffffffff16565b905060006142ef846142e1601354886130e590919063ffffffff16565b61316b90919063ffffffff16565b9050600061431a8561430c601154896130e590919063ffffffff16565b61316b90919063ffffffff16565b90506000614345866143376014548a6130e590919063ffffffff16565b61316b90919063ffffffff16565b9050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b1580156143b157600080fd5b505af1935050505080156143c3575060015b6143cc576143cd565b5b6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051806000019050600060405180830381858888f193505050503d8060008114614454576040519150601f19603f3d011682016040523d82523d6000602084013e614459565b606091505b505090506000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051806000019050600060405180830381858888f193505050503d80600081146144e4576040519150601f19603f3d011682016040523d82523d6000602084013e6144e9565b606091505b505090506000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168861753090604051806000019050600060405180830381858888f193505050503d8060008114614574576040519150601f19603f3d011682016040523d82523d6000602084013e614579565b606091505b505090506000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168761753090604051806000019050600060405180830381858888f193505050503d8060008114614604576040519150601f19603f3d011682016040523d82523d6000602084013e614609565b606091505b5050905060009350600092506000915060009050505050505050505050505050506000602360006101000a81548160ff021916908315150217905550565b6000806020541415905090565b43602081905550565b6000808373ffffffffffffffffffffffffffffffffffffffff16601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146146bd576018546146c1565b6019545b905060006146eb60646146dd84876130e590919063ffffffff16565b61316b90919063ffffffff16565b905061473f81600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461305d90919063ffffffff16565b600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36147fa8185613c9f90919063ffffffff16565b92505050939250505056fe4d617820676173206d75737420626520686967686572207468616e20372067776569536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212203454c8f836c6f71c7326f9556fbc494f3b67ee602f61dd020b88da40f8e379d164736f6c634300070400336080604052731b02da8cb0d097eb8d57a175b88c7d8b47997506600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073fc1e18fd211314900cb506993b9b14ec72e3f574600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506ec097ce7bc90715b34b9f1000000000600c55610e10600d55620f4240600e553480156100da57600080fd5b50604051611e2e380380611e2e833981810160405260208110156100fd57600080fd5b8101908080519060200190929190505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561016b57600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661016d565b805b600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050611c31806101fd6000396000f3fe6080604052600436106100f35760003560e01c80638aee81271161008a578063e2d2e21911610059578063e2d2e21914610419578063efca2eed14610444578063ffb2c4791461046f578063ffd49c84146104aa576100f3565b80638aee812714610320578063997664d714610371578063ce7c2ac21461039c578063d0e30db01461040f576100f3565b80632d48e896116100c65780632d48e896146102345780633a98ef39146102795780634339a815146102a45780634fab0ae8146102f5576100f3565b806311ce023d146100f857806314b6ca961461012357806315f7e05e1461017e57806328fd3198146101cf575b600080fd5b34801561010457600080fd5b5061010d6104d5565b6040518082815260200191505060405180910390f35b34801561012f57600080fd5b5061017c6004803603604081101561014657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506104db565b005b34801561018a57600080fd5b506101cd600480360360208110156101a157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061079a565b005b3480156101db57600080fd5b5061021e600480360360208110156101f257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107fe565b6040518082815260200191505060405180910390f35b34801561024057600080fd5b506102776004803603604081101561025757600080fd5b810190808035906020019092919080359060200190929190505050610918565b005b34801561028557600080fd5b5061028e610982565b6040518082815260200191505060405180910390f35b3480156102b057600080fd5b506102f3600480360360208110156102c757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610988565b005b34801561030157600080fd5b5061030a610b75565b6040518082815260200191505060405180910390f35b34801561032c57600080fd5b5061036f6004803603602081101561034357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b7b565b005b34801561037d57600080fd5b50610386610c17565b6040518082815260200191505060405180910390f35b3480156103a857600080fd5b506103eb600480360360208110156103bf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c1d565b60405180848152602001838152602001828152602001935050505060405180910390f35b610417610c47565b005b34801561042557600080fd5b5061042e611142565b6040518082815260200191505060405180910390f35b34801561045057600080fd5b50610459611148565b6040518082815260200191505060405180910390f35b34801561047b57600080fd5b506104a86004803603602081101561049257600080fd5b810190808035906020019092919050505061114e565b005b3480156104b657600080fd5b506104bf6112c8565b6040518082815260200191505060405180910390f35b600c5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461053357600080fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154111561058857610587826112ce565b5b6000811180156105da57506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b156105ed576105e882611594565b61064f565b60008114801561063f57506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b1561064e5761064d82611643565b5b5b6106b8816106aa600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015460085461181c90919063ffffffff16565b61186690919063ffffffff16565b60088190555080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550610750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546118ee565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107f257600080fd5b6107fb816112ce565b50565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414156108535760009050610913565b60006108a0600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546118ee565b90506000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490508082116108fb57600092505050610913565b61090e818361181c90919063ffffffff16565b925050505b919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461097057600080fd5b81600d8190555080600e819055505050565b60085481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109e057600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610aa857600080fd5b505afa158015610abc573d6000803e3d6000fd5b505050506040513d6020811015610ad257600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610b3657600080fd5b505af1158015610b4a573d6000803e3d6000fd5b505050506040513d6020811015610b6057600080fd5b81019080805190602001909291905050505050565b600e5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bd357600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b60076020528060005260406000206000915090508060000154908060010154908060020154905083565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c9f57600080fd5b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610d2a57600080fd5b505afa158015610d3e573d6000803e3d6000fd5b505050506040513d6020811015610d5457600080fd5b810190808051906020019092919050505090506060600267ffffffffffffffff81118015610d8157600080fd5b50604051908082528060200260200182016040528015610db05781602001602082028036833780820191505090505b509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610e1b57600080fd5b505afa158015610e2f573d6000803e3d6000fd5b505050506040513d6020811015610e4557600080fd5b810190808051906020019092919050505081600081518110610e6357fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110610ecd57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de953460008430426040518663ffffffff1660e01b815260040180858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015610fc5578082015181840152602081019050610faa565b50505050905001955050505050506000604051808303818588803b158015610fec57600080fd5b505af1158015611000573d6000803e3d6000fd5b505050505060006110dd83600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561109457600080fd5b505afa1580156110a8573d6000803e3d6000fd5b505050506040513d60208110156110be57600080fd5b810190808051906020019092919050505061181c90919063ffffffff16565b90506110f48160095461186690919063ffffffff16565b60098190555061113761112660085461111884600c5461192090919063ffffffff16565b6119a690919063ffffffff16565b600b5461186690919063ffffffff16565b600b81905550505050565b600b5481565b600a5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111a657600080fd5b6000600480549050905060008114156111bf57506112c5565b60008060005a90505b84821080156111d657508383105b156112c05783600f54106111ed576000600f819055505b61122f6004600f54815481106111ff57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166119f0565b15611277576112766004600f548154811061124657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166112ce565b5b61129c61128d5a8361181c90919063ffffffff16565b8361186690919063ffffffff16565b91505a9050600f6000815480929190600101919050555082806001019350506111c8565b505050505b50565b600d5481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141561131e57611591565b6000611329826107fe565b9050600081111561158f5761134981600a5461186690919063ffffffff16565b600a81905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156113e257600080fd5b505af11580156113f6573d6000803e3d6000fd5b505050506040513d602081101561140c57600080fd5b81019080805190602001909291905050505042600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114b781600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015461186690919063ffffffff16565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550611548600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546118ee565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b505b50565b600480549050600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506004819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60046001600480549050038154811061165857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166004600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815481106116cf57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546005600060046001600480549050038154811061177057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060048054806117e457fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b600061185e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a54565b905092915050565b6000808284019050838110156118e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000611919600c5461190b600b548561192090919063ffffffff16565b6119a690919063ffffffff16565b9050919050565b60008083141561193357600090506119a0565b600082840290508284828161194457fe5b041461199b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611bdb6021913960400191505060405180910390fd5b809150505b92915050565b60006119e883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b14565b905092915050565b600042600d54600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401108015611a4d5750600e54611a4b836107fe565b115b9050919050565b6000838311158290611b01576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611ac6578082015181840152602081019050611aab565b50505050905090810190601f168015611af35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290611bc0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611b85578082015181840152602081019050611b6a565b50505050905090810190601f168015611bb25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581611bcc57fe5b04905080915050939250505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220f580e728f0dcc08611c6d27cde936cbd8916fae383abcfc31881286d60776a3064736f6c63430007040033536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77
Deployed Bytecode
0x60806040526004361061039b5760003560e01c8063807c2d9c116101dc578063bf56b37111610102578063e66b1d1e116100a0578063f887ea401161006f578063f887ea40146113d2578063fabe628314611413578063fe9fbb8014611470578063fed0d2a1146114d7576103a2565b8063e66b1d1e146112dc578063f0b37c0414611319578063f0fc6bca1461136a578063f2fde38b14611381576103a2565b8063d920334e116100dc578063d920334e146111b4578063da00097d146111ef578063dd51faa21461121c578063dd62ed3e14611257576103a2565b8063bf56b3711461111d578063ca33e64c14611148578063ca987b0e14611189576103a2565b80639e1211171161017a578063a9f7864b11610149578063a9f7864b1461100b578063b6a5d7de14611050578063bad3ea6a146110a1578063bbb19940146110e2576103a2565b80639e12111714610e99578063a3a2e89e14610efc578063a8aa1b3114610f59578063a9059cbb14610f9a576103a2565b80638aee8127116101b65780638aee812714610d265780638b42507f14610d7757806395d89b4114610dde57806398118cb414610e6e576103a2565b8063807c2d9c14610c5d5780638647cb3c14610c88578063893d20e814610ce5576103a2565b80633f4218e0116102c15780636b67c4df1161025f57806375f0a8741161022e57806375f0a87414610b59578063773fcb5c14610b9a5780637d1db4a514610bf75780637db1342c14610c22576103a2565b80636b67c4df14610a4b57806370a0823114610a76578063715018a614610adb578063734d171414610af2576103a2565b8063479f66d81161029b578063479f66d8146108cb5780634a74bb0214610906578063571ac8b0146109335780635ada676a1461099a576103a2565b80633f4218e0146107d05780634355855a1461083757806344de2e4c1461089e576103a2565b806323b872dd116103395780632f54bf6e116103085780632f54bf6e146106a7578063313ce5671461070e578063326066f71461073c57806334c708891461077d576103a2565b806323b872dd1461057f5780632b112e49146106105780632bb14e1d1461063b5780632d2e5cd514610666576103a2565b8063095ea7b311610375578063095ea7b31461048d5780630c9e7019146104fe57806318160ddd146105295780631df4ccfc14610554576103a2565b80630445b667146103a7578063054bee62146103d257806306fdde03146103fd576103a2565b366103a257005b600080fd5b3480156103b357600080fd5b506103bc611502565b6040518082815260200191505060405180910390f35b3480156103de57600080fd5b506103e7611508565b6040518082815260200191505060405180910390f35b34801561040957600080fd5b5061041261150e565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610452578082015181840152602081019050610437565b50505050905090810190601f16801561047f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561049957600080fd5b506104e6600480360360408110156104b057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061154b565b60405180821515815260200191505060405180910390f35b34801561050a57600080fd5b5061051361163d565b6040518082815260200191505060405180910390f35b34801561053557600080fd5b5061053e611643565b6040518082815260200191505060405180910390f35b34801561056057600080fd5b5061056961164d565b6040518082815260200191505060405180910390f35b34801561058b57600080fd5b506105f8600480360360608110156105a257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611653565b60405180821515815260200191505060405180910390f35b34801561061c57600080fd5b50610625611853565b6040518082815260200191505060405180910390f35b34801561064757600080fd5b506106506118d5565b6040518082815260200191505060405180910390f35b34801561067257600080fd5b5061067b6118db565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106b357600080fd5b506106f6600480360360208110156106ca57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611901565b60405180821515815260200191505060405180910390f35b34801561071a57600080fd5b5061072361195a565b604051808260ff16815260200191505060405180910390f35b34801561074857600080fd5b50610751611963565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561078957600080fd5b506107ce600480360360608110156107a057600080fd5b8101908080351515906020019092919080359060200190929190803515159060200190929190505050611989565b005b3480156107dc57600080fd5b5061081f600480360360208110156107f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a44565b60405180821515815260200191505060405180910390f35b34801561084357600080fd5b506108866004803603602081101561085a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a64565b60405180821515815260200191505060405180910390f35b3480156108aa57600080fd5b506108b3611a84565b60405180821515815260200191505060405180910390f35b3480156108d757600080fd5b50610904600480360360208110156108ee57600080fd5b8101908080359060200190929190505050611a97565b005b34801561091257600080fd5b5061091b611b2b565b60405180821515815260200191505060405180910390f35b34801561093f57600080fd5b506109826004803603602081101561095657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b3e565b60405180821515815260200191505060405180910390f35b3480156109a657600080fd5b50610a49600480360360808110156109bd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b71565b005b348015610a5757600080fd5b50610a60611cf6565b6040518082815260200191505060405180910390f35b348015610a8257600080fd5b50610ac560048036036020811015610a9957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cfc565b6040518082815260200191505060405180910390f35b348015610ae757600080fd5b50610af0611d45565b005b348015610afe57600080fd5b50610b4160048036036020811015610b1557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dcc565b60405180821515815260200191505060405180910390f35b348015610b6557600080fd5b50610b6e611dec565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ba657600080fd5b50610bf560048036036040811015610bbd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611e12565b005b348015610c0357600080fd5b50610c0c61211d565b6040518082815260200191505060405180910390f35b348015610c2e57600080fd5b50610c5b60048036036020811015610c4557600080fd5b8101908080359060200190929190505050612123565b005b348015610c6957600080fd5b50610c726121a8565b6040518082815260200191505060405180910390f35b348015610c9457600080fd5b50610ce360048036036040811015610cab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506121ae565b005b348015610cf157600080fd5b50610cfa612284565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d3257600080fd5b50610d7560048036036020811015610d4957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506122ad565b005b348015610d8357600080fd5b50610dc660048036036020811015610d9a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123ce565b60405180821515815260200191505060405180910390f35b348015610dea57600080fd5b50610df36123ee565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610e33578082015181840152602081019050610e18565b50505050905090810190601f168015610e605780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610e7a57600080fd5b50610e8361242b565b6040518082815260200191505060405180910390f35b348015610ea557600080fd5b50610efa600480360360a0811015610ebc57600080fd5b810190808035906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050612431565b005b348015610f0857600080fd5b50610f5760048036036040811015610f1f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919050505061256f565b005b348015610f6557600080fd5b50610f6e612645565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610fa657600080fd5b50610ff360048036036040811015610fbd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061266b565b60405180821515815260200191505060405180910390f35b34801561101757600080fd5b5061104e6004803603604081101561102e57600080fd5b810190808035906020019092919080359060200190929190505050612680565b005b34801561105c57600080fd5b5061109f6004803603602081101561107357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612794565b005b3480156110ad57600080fd5b506110b6612869565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156110ee57600080fd5b5061111b6004803603602081101561110557600080fd5b810190808035906020019092919050505061288f565b005b34801561112957600080fd5b50611132612952565b6040518082815260200191505060405180910390f35b34801561115457600080fd5b5061115d612958565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561119557600080fd5b5061119e61297e565b6040518082815260200191505060405180910390f35b3480156111c057600080fd5b506111ed600480360360208110156111d757600080fd5b8101908080359060200190929190505050612984565b005b3480156111fb57600080fd5b50611204612a09565b60405180821515815260200191505060405180910390f35b34801561122857600080fd5b506112556004803603602081101561123f57600080fd5b8101908080359060200190929190505050612a1c565b005b34801561126357600080fd5b506112c66004803603604081101561127a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b09565b6040518082815260200191505060405180910390f35b3480156112e857600080fd5b50611317600480360360208110156112ff57600080fd5b81019080803515159060200190929190505050612b90565b005b34801561132557600080fd5b506113686004803603602081101561133c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c28565b005b34801561137657600080fd5b5061137f612cfe565b005b34801561138d57600080fd5b506113d0600480360360208110156113a457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612da3565b005b3480156113de57600080fd5b506113e7612f05565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561141f57600080fd5b5061146e6004803603604081101561143657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612f2b565b005b34801561147c57600080fd5b506114bf6004803603602081101561149357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613001565b60405180821515815260200191505060405180910390f35b3480156114e357600080fd5b506114ec613057565b6040518082815260200191505060405180910390f35b60245481565b60145481565b60606040518060400160405280600581526020017f465552424f000000000000000000000000000000000000000000000000000000815250905090565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60135481565b6000600654905090565b60185481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461183f576117be826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131b59092919063ffffffff16565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61184a848484613275565b90509392505050565b60006118d0611883600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611cfc565b6118c26118b1600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611cfc565b600654613c9f90919063ffffffff16565b613c9f90919063ffffffff16565b905090565b60125481565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61199233613001565b611a04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b82602360016101000a81548160ff0219169083151502179055508160248190555080602360026101000a81548160ff021916908315150217905550505050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600e6020528060005260406000206000915054906101000a900460ff1681565b600960009054906101000a900460ff1681565b611aa033613001565b611b12576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b620b71b08110611b2157600080fd5b8060228190555050565b602360019054906101000a900460ff1681565b6000611b6a827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61154b565b9050919050565b611b7a33613001565b611bec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b83601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b60115481565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611d4e33611901565b611dc0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b611dca6000612da3565b565b600f6020528060005260406000206000915054906101000a900460ff1681565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e1b33613001565b611e8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611f175750601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611f2057600080fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561202e57602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561201157600080fd5b505af1158015612025573d6000803e3d6000fd5b50505050612119565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561210057600080fd5b505af1158015612114573d6000803e3d6000fd5b505050505b5050565b60075481565b61212c33613001565b61219e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060088190555050565b60085481565b6121b733613001565b612229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6122b633613001565b612328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638aee8127826040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156123b357600080fd5b505af11580156123c7573d6000803e3d6000fd5b5050505050565b600d6020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600581526020017f465552424f000000000000000000000000000000000000000000000000000000815250905090565b60105481565b61243a33613001565b6124ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b84601081905550836012819055508260118190555081601481905550806013819055506125226013546125146014546125066012546124f860115460105461305d90919063ffffffff16565b61305d90919063ffffffff16565b61305d90919063ffffffff16565b61305d90919063ffffffff16565b601881905550600a601854111561253857600080fd5b612562600a6125546017546018546130e590919063ffffffff16565b61316b90919063ffffffff16565b6019819055505050505050565b61257833613001565b6125ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000612678338484613275565b905092915050565b61268933611901565b6126fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b15801561277857600080fd5b505af115801561278c573d6000803e3d6000fd5b505050505050565b61279d33611901565b61280f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61289833611901565b61290a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b601e81111561291857600080fd5b80601781905550612949600a61293b6017546018546130e590919063ffffffff16565b61316b90919063ffffffff16565b60198190555050565b60205481565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b61298d33613001565b6129ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060078190555050565b602360029054906101000a900460ff1681565b612a2533611901565b612a97576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60078111612af0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806148066022913960400191505060405180910390fd5b80601581905550633b9aca006015540260168190555050565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612b9933613001565b612c0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600960006101000a81548160ff02191690831515021790555050565b612c3133611901565b612ca3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015612d8957600080fd5b505af1158015612d9d573d6000803e3d6000fd5b50505050565b612dac33611901565b612e1e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612f3433613001565b612fa6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60175481565b6000808284019050838110156130db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000808314156130f85760009050613165565b600082840290508284828161310957fe5b0414613160576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806148286021913960400191505060405180910390fd5b809150505b92915050565b60006131ad83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613ce9565b905092915050565b6000838311158290613262576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561322757808201518184015260208101905061320c565b50505050905090810190601f1680156132545780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000602360009054906101000a900460ff161561329e57613297848484613daf565b9050613c98565b60011515600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141561330957613302848484613daf565b9050613c98565b600754821115806133635750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6133d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5458204c696d697420457863656564656400000000000000000000000000000081525060200191505060405180910390fd5b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156134405750602360009054906101000a900460ff16155b80156134585750602360019054906101000a900460ff165b80156134a55750602454600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b156134b3576134b2613f82565b5b6134bb614647565b1580156135155750601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561356f576000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161356657600080fd5b61356e614654565b5b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561361b5750601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156136325761362b848484613daf565b9050613c98565b6136bb826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131b59092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156137645750600960009054906101000a900460ff165b156137ca576008546137be83600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461305d90919063ffffffff16565b11156137c957600080fd5b5b6000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156138705750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61387a5782613886565b61388585858561465d565b5b90506138da81600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461305d90919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613a5c57602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015613a4057600080fd5b505af1925050508015613a51575060015b613a5a57613a5b565b5b5b600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613b9b57602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015613b7f57600080fd5b505af1925050508015613b90575060015b613b9957613b9a565b5b5b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c4796022546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015613c1257600080fd5b505af1925050508015613c23575060015b613c2c57613c2d565b5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019150505b9392505050565b6000613ce183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506131b5565b905092915050565b60008083118290613d95576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613d5a578082015181840152602081019050613d3f565b50505050905090810190601f168015613d875780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613da157fe5b049050809150509392505050565b6000613e3a826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131b59092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613ecf82600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461305d90919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6001602360006101000a81548160ff0219169083151502179055506000600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506060600267ffffffffffffffff81118015613ffb57600080fd5b5060405190808252806020026020018201604052801561402a5781602001602082028036833780820191505090505b509050308160008151811061403b57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156140dd57600080fd5b505afa1580156140f1573d6000803e3d6000fd5b505050506040513d602081101561410757600080fd5b81019080805190602001909291905050508160018151811061412557fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015614223578082015181840152602081019050614208565b505050509050019650505050505050600060405180830381600087803b15801561424c57600080fd5b505af1158015614260573d6000803e3d6000fd5b5050505060004790506000601854905060006142998261428b601054866130e590919063ffffffff16565b61316b90919063ffffffff16565b905060006142c4836142b6601254876130e590919063ffffffff16565b61316b90919063ffffffff16565b905060006142ef846142e1601354886130e590919063ffffffff16565b61316b90919063ffffffff16565b9050600061431a8561430c601154896130e590919063ffffffff16565b61316b90919063ffffffff16565b90506000614345866143376014548a6130e590919063ffffffff16565b61316b90919063ffffffff16565b9050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b1580156143b157600080fd5b505af1935050505080156143c3575060015b6143cc576143cd565b5b6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051806000019050600060405180830381858888f193505050503d8060008114614454576040519150601f19603f3d011682016040523d82523d6000602084013e614459565b606091505b505090506000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051806000019050600060405180830381858888f193505050503d80600081146144e4576040519150601f19603f3d011682016040523d82523d6000602084013e6144e9565b606091505b505090506000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168861753090604051806000019050600060405180830381858888f193505050503d8060008114614574576040519150601f19603f3d011682016040523d82523d6000602084013e614579565b606091505b505090506000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168761753090604051806000019050600060405180830381858888f193505050503d8060008114614604576040519150601f19603f3d011682016040523d82523d6000602084013e614609565b606091505b5050905060009350600092506000915060009050505050505050505050505050506000602360006101000a81548160ff021916908315150217905550565b6000806020541415905090565b43602081905550565b6000808373ffffffffffffffffffffffffffffffffffffffff16601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146146bd576018546146c1565b6019545b905060006146eb60646146dd84876130e590919063ffffffff16565b61316b90919063ffffffff16565b905061473f81600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461305d90919063ffffffff16565b600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36147fa8185613c9f90919063ffffffff16565b92505050939250505056fe4d617820676173206d75737420626520686967686572207468616e20372067776569536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212203454c8f836c6f71c7326f9556fbc494f3b67ee602f61dd020b88da40f8e379d164736f6c63430007040033
Deployed Bytecode Sourcemap
12692:14540:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14603:56;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13866:29;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16215:94;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17208:248;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13824:35;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16525:102;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14051:27;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21695:416;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16735:142;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13788:29;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14245:34;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11980:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16423:94;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14210:28;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20625:309;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13491:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13595:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13336:34;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;21211:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14502:40;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17464:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20202:415;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13750:31;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16885:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12269:102;;;;;;;;;;;;;:::i;:::-;;13650:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14173:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19110:395;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13213:54;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18564:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13274:53;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18411:145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16635:92;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;21358:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13541:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16317:98;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13712:31;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19513:681;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18794:146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14319:19;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;21499:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20942:261;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11653:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14381:46;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17794:208;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14347:25;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14130:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14085;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18089:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14549:45;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;25069:205;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17012:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18677:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11823:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17590:98;;;;;;;;;;;;;:::i;:::-;;12462:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14288:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18948:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12154:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14008:34;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14603:56;;;;:::o;13866:29::-;;;;:::o;16215:94::-;16263:13;16296:5;;;;;;;;;;;;;;;;;16289:12;;16215:94;:::o;17208:248::-;17310:4;17367:6;17332:11;:23;17344:10;17332:23;;;;;;;;;;;;;;;:32;17356:7;17332:32;;;;;;;;;;;;;;;:41;;;;17410:7;17389:37;;17398:10;17389:37;;;17419:6;17389:37;;;;;;;;;;;;;;;;;;17444:4;17437:11;;17208:248;;;;:::o;13824:35::-;;;;:::o;16525:102::-;16580:7;16607:12;;16600:19;;16525:102;:::o;14051:27::-;;;;:::o;21695:416::-;21829:4;21893:2;21850:11;:19;21862:6;21850:19;;;;;;;;;;;;;;;:31;21870:10;21850:31;;;;;;;;;;;;;;;;:46;21846:200;;21947:87;22001:6;21947:87;;;;;;;;;;;;;;;;;:11;:19;21959:6;21947:19;;;;;;;;;;;;;;;:31;21967:10;21947:31;;;;;;;;;;;;;;;;:53;;:87;;;;;:::i;:::-;21913:11;:19;21925:6;21913:19;;;;;;;;;;;;;;;:31;21933:10;21913:31;;;;;;;;;;;;;;;:121;;;;21846:200;22063:40;22077:6;22085:9;22096:6;22063:13;:40::i;:::-;22056:47;;21695:416;;;;;:::o;16735:142::-;16788:7;16815:54;16853:15;16863:4;;;;;;;;;;;16853:9;:15::i;:::-;16815:33;16832:15;16842:4;;;;;;;;;;;16832:9;:15::i;:::-;16815:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;16808:61;;16735:142;:::o;13788:29::-;;;;:::o;14245:34::-;;;;;;;;;;;;;:::o;11980:103::-;12035:4;12070:5;;;;;;;;;;;12059:16;;:7;:16;;;12052:23;;11980:103;;;:::o;16423:94::-;16475:5;12870:2;16493:16;;16423:94;:::o;14210:28::-;;;;;;;;;;;;;:::o;20625:309::-;11529:24;11542:10;11529:12;:24::i;:::-;11521:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20815:14:::1;20791:21;;:38;;;;;;;;;;;;;;;;;;20856:16;20840:13;:32;;;;20911:15;20883:25;;:43;;;;;;;;;;;;;;;;;;20625:309:::0;;;:::o;13491:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;13595:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;13336:34::-;;;;;;;;;;;;;:::o;21211:139::-;11529:24;11542:10;11529:12;:24::i;:::-;11521:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21304:6:::1;21298:3;:12;21290:21;;;::::0;::::1;;21339:3;21322:14;:20;;;;21211:139:::0;:::o;14502:40::-;;;;;;;;;;;;;:::o;17464:116::-;17519:4;17543:29;17551:7;17568:2;17543:7;:29::i;:::-;17536:36;;17464:116;;;:::o;20202:415::-;11529:24;11542:10;11529:12;:24::i;:::-;11521:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20444:20:::1;20420:21;;:44;;;;;;;;;;;;;;;;;;20493:18;20475:15;;:36;;;;;;;;;;;;;;;;;;20538:16;20522:13;;:32;;;;;;;;;;;;;;;;;;20587:22;20565:19;;:44;;;;;;;;;;;;;;;;;;20202:415:::0;;;;:::o;13750:31::-;;;;:::o;16885:119::-;16951:7;16978:9;:18;16988:7;16978:18;;;;;;;;;;;;;;;;16971:25;;16885:119;;;:::o;12269:102::-;11351:19;11359:10;11351:7;:19::i;:::-;11343:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12334:29:::1;12360:1;12334:17;:29::i;:::-;12269:102::o:0;13650:53::-;;;;;;;;;;;;;;;;;;;;;;:::o;14173:30::-;;;;;;;;;;;;;:::o;19110:395::-;11529:24;11542:10;11529:12;:24::i;:::-;11521:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19251:4:::1;19233:23;;:6;:23;;;;:41;;;;;19270:4;;;;;;;;;;;19260:14;;:6;:14;;;;19233:41;19225:50;;;::::0;::::1;;19313:6;19286:16;:24;19303:6;19286:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;19336:6;19332:166;;;19359:19;;;;;;;;;;;:28;;;19388:6;19396:1;19359:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19332:166;;;19431:19;;;;;;;;;;;:28;;;19460:6;19468:9;:17;19478:6;19468:17;;;;;;;;;;;;;;;;19431:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19332:166;19110:395:::0;;:::o;13213:54::-;;;;:::o;18564:105::-;11529:24;11542:10;11529:12;:24::i;:::-;11521:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18653:8:::1;18640:10;:21;;;;18564:105:::0;:::o;13274:53::-;;;;:::o;18411:145::-;11529:24;11542:10;11529:12;:24::i;:::-;11521:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18541:7:::1;18507:21;:31;18529:8;18507:31;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;18411:145:::0;;:::o;16635:92::-;16687:7;16714:5;;;;;;;;;;;16707:12;;16635:92;:::o;21358:133::-;11529:24;11542:10;11529:12;:24::i;:::-;11521:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21435:19:::1;;;;;;;;;;;:34;;;21470:12;21435:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;21358:133:::0;:::o;13541:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;16317:98::-;16367:13;16400:7;;;;;;;;;;;;;;;;;16393:14;;16317:98;:::o;13712:31::-;;;;:::o;19513:681::-;11529:24;11542:10;11529:12;:24::i;:::-;11521:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19749:9:::1;19734:12;:24;;;;19782:12;19769:10;:25;;;;19820:15;19805:12;:30;;;;19859:13;19846:10;:26;;;;19902:19;19883:16;:38;;;;19945:140;20068:16;;19945:104;20038:10;;19945:74;20008:10;;19945:44;19976:12;;19945;;:30;;:44;;;;:::i;:::-;:62;;:74;;;;:::i;:::-;:92;;:104;;;;:::i;:::-;:122;;:140;;;;:::i;:::-;19934:8;:151;;;;20116:2;20104:8;;:14;;20096:23;;;::::0;::::1;;20150:36;20183:2;20150:28;20163:14;;20150:8;;:12;;:28;;;;:::i;:::-;:32;;:36;;;;:::i;:::-;20130:17;:56;;;;19513:681:::0;;;;;:::o;18794:146::-;11529:24;11542:10;11529:12;:24::i;:::-;11521:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18926:6:::1;18904:11;:19;18916:6;18904:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;18794:146:::0;;:::o;14319:19::-;;;;;;;;;;;;;:::o;21499:188::-;21606:4;21635:44;21649:10;21661:9;21672:6;21635:13;:44::i;:::-;21628:51;;21499:188;;;;:::o;20942:261::-;11351:19;11359:10;11351:7;:19::i;:::-;11343:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21082:19:::1;;;;;;;;;;;:43;;;21140:11;21166:18;21082:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;20942:261:::0;;:::o;11653:94::-;11351:19;11359:10;11351:7;:19::i;:::-;11343:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11735:4:::1;11713:14:::0;:19:::1;11728:3;11713:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;11653:94:::0;:::o;14381:46::-;;;;;;;;;;;;;:::o;17794:208::-;11351:19;11359:10;11351:7;:19::i;:::-;11343:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17888:2:::1;17876:8;:14;;17868:23;;;::::0;::::1;;17919:8;17902:14;:25;;;;17958:36;17991:2;17958:28;17971:14;;17958:8;;:12;;:28;;;;:::i;:::-;:32;;:36;;;;:::i;:::-;17938:17;:56;;;;17794:208:::0;:::o;14347:25::-;;;;:::o;14130:36::-;;;;;;;;;;;;;:::o;14085:::-;;;;:::o;18089:103::-;11529:24;11542:10;11529:12;:24::i;:::-;11521:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18176:8:::1;18161:12;:23;;;;18089:103:::0;:::o;14549:45::-;;;;;;;;;;;;;:::o;25069:205::-;11351:19;11359:10;11351:7;:19::i;:::-;11343:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25142:1:::1;25136:3;:7;25128:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25211:3;25193:15;:21;;;;25260:6;25242:15;;:24;25225:14;:41;;;;25069:205:::0;:::o;17012:188::-;17132:7;17164:11;:19;17176:6;17164:19;;;;;;;;;;;;;;;:28;17184:7;17164:28;;;;;;;;;;;;;;;;17157:35;;17012:188;;;;:::o;18677:109::-;11529:24;11542:10;11529:12;:24::i;:::-;11521:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18770:8:::1;18753:14;;:25;;;;;;;;;;;;;;;;;;18677:109:::0;:::o;11823:97::-;11351:19;11359:10;11351:7;:19::i;:::-;11343:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11907:5:::1;11885:14;:19;11900:3;11885:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;11823:97:::0;:::o;17590:98::-;17635:19;;;;;;;;;;;:33;;;17669:10;17635:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17590:98::o;12462:173::-;11351:19;11359:10;11351:7;:19::i;:::-;11343:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12546:3:::1;12538:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;12582:4;12560:14:::0;:19:::1;12575:3;12560:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;12602:25;12623:3;12602:25;;;;;;;;;;;;;;;;;;;;12462:173:::0;:::o;14288:24::-;;;;;;;;;;;;;:::o;18948:154::-;11529:24;11542:10;11529:12;:24::i;:::-;11521:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19088:6:::1;19062:15;:23;19078:6;19062:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;18948:154:::0;;:::o;12154:107::-;12210:4;12234:14;:19;12249:3;12234:19;;;;;;;;;;;;;;;;;;;;;;;;;12227:26;;12154:107;;;:::o;14008:34::-;;;;:::o;214:179::-;272:7;292:9;308:1;304;:5;292:17;;333:1;328;:6;;320:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;384:1;377:8;;;214:179;;;;:::o;777:246::-;835:7;864:1;859;:6;855:47;;;889:1;882:8;;;;855:47;912:9;928:1;924;:5;912:17;;957:1;952;948;:5;;;;;;:10;940:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1014:1;1007:8;;;777:246;;;;;:::o;1031:132::-;1089:7;1116:39;1120:1;1123;1116:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1109:46;;1031:132;;;;:::o;545:224::-;665:7;698:1;693;:6;;701:12;685:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;725:9;741:1;737;:5;725:17;;760:1;753:8;;;545:224;;;;;:::o;22119:2036::-;22245:4;22266:16;;;;;;;;;;;22262:97;;;22306:41;22321:6;22329:9;22340:6;22306:14;:41::i;:::-;22299:48;;;;22262:97;22405:4;22374:35;;:21;:29;22396:6;22374:29;;;;;;;;;;;;;;;;;;;;;;;;;:35;;;22371:114;;;22432:41;22447:6;22455:9;22466:6;22432:14;:41::i;:::-;22425:48;;;;22371:114;22529:12;;22519:6;:22;;:49;;;;22545:15;:23;22561:6;22545:23;;;;;;;;;;;;;;;;;;;;;;;;;22519:49;22497:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22658:4;;;;;;;;;;;22644:18;;:10;:18;;;;:52;;;;;22680:16;;;;;;;;;;;22679:17;22644:52;:90;;;;;22713:21;;;;;;;;;;;22644:90;:148;;;;;22779:13;;22751:9;:24;22769:4;22751:24;;;;;;;;;;;;;;;;:41;;22644:148;22626:215;;;22819:10;:8;:10::i;:::-;22626:215;22858:10;:8;:10::i;:::-;22857:11;:32;;;;;22885:4;;;;;;;;;;;22872:17;;:9;:17;;;22857:32;22853:118;;;22934:1;22914:9;:17;22924:6;22914:17;;;;;;;;;;;;;;;;:21;22906:30;;;;;;22951:8;:6;:8::i;:::-;22853:118;23000:4;;;;;;;;;;;22987:17;;:9;:17;;;;:35;;;;;23018:4;;;;;;;;;;;23008:14;;:6;:14;;;;22987:35;22983:116;;;23046:41;23061:6;23069:9;23080:6;23046:14;:41::i;:::-;23039:48;;;;22983:116;23158:90;23194:6;23158:90;;;;;;;;;;;;;;;;;:9;:17;23168:6;23158:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;23138:9;:17;23148:6;23138:17;;;;;;;;;;;;;;;:110;;;;23266:15;:26;23282:9;23266:26;;;;;;;;;;;;;;;;;;;;;;;;;23265:27;:45;;;;;23296:14;;;;;;;;;;;23265:45;23261:133;;;23371:10;;23335:32;23360:6;23335:9;:20;23345:9;23335:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;:46;;23327:55;;;;;;23261:133;23406:19;23429:11;:19;23441:6;23429:19;;;;;;;;;;;;;;;;;;;;;;;;;23428:20;:47;;;;;23453:11;:22;23465:9;23453:22;;;;;;;;;;;;;;;;;;;;;;;;;23452:23;23428:47;:119;;23541:6;23428:119;;;23491:34;23499:6;23507:9;23518:6;23491:7;:34::i;:::-;23428:119;23406:141;;23581:37;23606:11;23581:9;:20;23591:9;23581:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;23558:9;:20;23568:9;23558:20;;;;;;;;;;;;;;;:60;;;;23665:16;:24;23682:6;23665:24;;;;;;;;;;;;;;;;;;;;;;;;;23660:158;;23727:19;;;;;;;;;;;:28;;;23756:6;23764:9;:17;23774:6;23764:17;;;;;;;;;;;;;;;;23727:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23706:101;;;;;;23660:158;23835:16;:27;23852:9;23835:27;;;;;;;;;;;;;;;;;;;;;;;;;23830:167;;23900:19;;;;;;;;;;;:28;;;23929:9;23940;:20;23950:9;23940:20;;;;;;;;;;;;;;;;23900:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23879:107;;;;;;23830:167;24013:19;;;;;;;;;;;:27;;;24041:14;;24013:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24009:59;;;;;;24102:9;24085:40;;24094:6;24085:40;;;24113:11;24085:40;;;;;;;;;;;;;;;;;;24143:4;24136:11;;;22119:2036;;;;;;:::o;401:136::-;459:7;486:43;490:1;493;486:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;479:50;;401:136;;;;:::o;1171:223::-;1291:7;1323:1;1319;:5;1326:12;1311:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1350:9;1366:1;1362;:5;;;;;;1350:17;;1385:1;1378:8;;;1171:223;;;;;:::o;24163:401::-;24290:4;24327:90;24363:6;24327:90;;;;;;;;;;;;;;;;;:9;:17;24337:6;24327:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;24307:9;:17;24317:6;24307:17;;;;;;;;;;;;;;;:110;;;;24451:32;24476:6;24451:9;:20;24461:9;24451:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;24428:9;:20;24438:9;24428:20;;;;;;;;;;;;;;;:55;;;;24516:9;24499:35;;24508:6;24499:35;;;24527:6;24499:35;;;;;;;;;;;;;;;;;;24552:4;24545:11;;24163:401;;;;;:::o;25282:1883::-;14721:4;14702:16;;:23;;;;;;;;;;;;;;;;;;25342:20:::1;25365:9;:24;25383:4;25365:24;;;;;;;;;;;;;;;;25342:47;;25402:21;25440:1;25426:16;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25402:40;;25471:4;25453;25458:1;25453:7;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;25497:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;25487:4;25492:1;25487:7;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;25523:6;;;;;;;;;;;:57;;;25595:12;25622:1;25638:4;25665;25685:15;25523:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;25724:17;25744:21;25724:41;;25778:19;25800:8;;25778:30;;25821:26;25850:44;25882:11;25850:27;25864:12;;25850:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;25821:73;;25907:27;25937:66;25981:11;25937:25;25951:10;;25937:9;:13;;:25;;;;:::i;:::-;:29;;:66;;;;:::i;:::-;25907:96;;26014:27;26044:72;26094:11;26044:31;26058:16;;26044:9;:13;;:31;;;;:::i;:::-;:35;;:72;;;;:::i;:::-;26014:102;;26127:26;26156:68;26202:11;26156:27;26170:12;;26156:9;:13;;:27;;;;:::i;:::-;:31;;:68;;;;:::i;:::-;26127:97;;26235:24;26262:42;26292:11;26262:25;26276:10;;26262:9;:13;;:25;;;;:::i;:::-;:29;;:42;;;;:::i;:::-;26235:69;;26334:19;;;;;;;;;;;:27;;;26369:19;26334:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;26317:95;;;;;;26425:15;26454;;;;;;;;;;;26446:29;;26497:18;26535:5;26446:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26424:131;;;26567:16;26597:13;;;;;;;;;;;26589:27;;26638:16;26674:5;26589:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26566:128;;;26708:16;26738:21;;;;;;;;;;;26730:35;;26787:18;26825:5;26730:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26707:138;;;26860:16;26890:19;;;;;;;;;;;26882:33;;26937:19;26976:5;26882:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26859:137;;;27062:5;27049:18;;27092:5;27078:19;;27122:5;27108:19;;27152:5;27138:19;;14736:1;;;;;;;;;;;;;14767:5:::0;14748:16;;:24;;;;;;;;;;;;;;;;;;25282:1883::o;17696:90::-;17739:4;17777:1;17763:10;;:15;;17756:22;;17696:90;:::o;18010:71::-;18061:12;18048:10;:25;;;;18010:71::o;24572:489::-;24692:7;24712:21;24744:9;24736:17;;:4;;;;;;;;;;;:17;;;:74;;24802:8;;24736:74;;;24769:17;;24736:74;24712:98;;24821:17;24841:34;24871:3;24841:25;24852:13;24841:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;24821:54;;24915:39;24944:9;24915;:24;24933:4;24915:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;24888:9;:24;24906:4;24888:24;;;;;;;;;;;;;;;:66;;;;24995:4;24970:42;;24979:6;24970:42;;;25002:9;24970:42;;;;;;;;;;;;;;;;;;25032:21;25043:9;25032:6;:10;;:21;;;;:::i;:::-;25025:28;;;;24572:489;;;;;:::o
Swarm Source
ipfs://f580e728f0dcc08611c6d27cde936cbd8916fae383abcfc31881286d60776a30
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)