Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 GHOST
Holders
30
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.000000527 GHOSTValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Ghost
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-06-13 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.4; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address payable newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract Ghost is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "GHOST"; string private constant _symbol = "GHOST"; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1000000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _devTax; uint256 private _buyDevTax = 0; uint256 private _sellDevTax = 4; uint256 private _marketingTax; uint256 private _buyMarketingTax = 1; uint256 private _sellMarketingTax = 4; uint256 private _salesTax; uint256 private _buySalesTax = 0; uint256 private _sellSalesTax = 3; uint256 private _totalBuyTax = _buyDevTax + _buyMarketingTax + _buySalesTax; uint256 private _totalSellTax = _sellDevTax + _sellMarketingTax + _sellSalesTax; uint256 private _summedTax = _marketingTax+_salesTax; uint256 private _numOfTokensToExchangeForTeam = 100000 * 10**9; uint256 private _routermax = 10000000 * 10**9; // Bot detection mapping(address => bool) private bots; mapping(address => uint256) private cooldown; address payable private _Marketingfund; address payable private _Deployer; address payable private _devWalletAddress; address payable private _holdings; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; bool private cooldownEnabled = false; bool private enableLevelSell = false; uint256 private _maxTxAmount = _tTotal; uint256 public launchBlock; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor(address payable marketingTaxAddress, address payable devfeeAddr, address payable depAddr, address payable holdings) { _Marketingfund = marketingTaxAddress; _Deployer = depAddr; _devWalletAddress = devfeeAddr; _holdings = holdings; _rOwned[_msgSender()] = _rTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_Marketingfund] = true; _isExcludedFromFee[_devWalletAddress] = true; _isExcludedFromFee[_Deployer] = true; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // bsc 0x10ED43C718714eb63d5aA57B78B54704E256024E eth 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D uniswapV2Router = _uniswapV2Router; _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function setCooldownEnabled(bool onoff) external onlyOwner() { cooldownEnabled = onoff; } function setLevelSellEnabled(bool enable) external onlyOwner { enableLevelSell = enable; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_devTax == 0 && _summedTax == 0) return; _devTax = 0; _summedTax = 0; } function restoreAllFee() private { _devTax = _buyDevTax; _marketingTax = _buyMarketingTax; _salesTax = _buySalesTax; _summedTax = _marketingTax+_salesTax; } function takeBuyFee() private { _salesTax = _buySalesTax; _marketingTax = _buyMarketingTax; _devTax = _buyDevTax; _summedTax = _marketingTax+_salesTax; } function takeSellFee() private { _devTax = _sellDevTax; _salesTax = _sellSalesTax; _marketingTax = _sellMarketingTax; _summedTax = _sellSalesTax+_sellMarketingTax; } function levelSell(uint256 amount, address sender) private returns (uint256) { uint256 sellTax = amount.mul(_totalSellTax).div(100); _rOwned[sender] = _rOwned[sender].sub(sellTax); _rOwned[address(this)] = _rOwned[address(this)].add(sellTax); uint256 tAmount = amount.sub(sellTax); uint256 prevEthBalance = address(this).balance; swapTokensForEth(sellTax); uint256 newEthBalance = address(this).balance; uint256 balanceDelta = newEthBalance - prevEthBalance; if (balanceDelta > 0) { sendETHForSellTax(balanceDelta); } return tAmount; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && to != owner()) { if (cooldownEnabled) { if ( from != address(this) && to != address(this) && from != address(uniswapV2Router) && to != address(uniswapV2Router) ) { require( _msgSender() == address(uniswapV2Router) || _msgSender() == uniswapV2Pair, "ERR: Uniswap only" ); } } if(from != address(this)){ require(amount <= _maxTxAmount); } require(!bots[from] && !bots[to] && !bots[msg.sender]); if ( from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to] && cooldownEnabled ) { require(cooldown[to] < block.timestamp); cooldown[to] = block.timestamp + (15 seconds); } uint256 contractTokenBalance = balanceOf(address(this)); if(contractTokenBalance >= _routermax) { contractTokenBalance = _routermax; } bool overMinTokenBalance = contractTokenBalance >= _numOfTokensToExchangeForTeam; if (!inSwap && swapEnabled && overMinTokenBalance && from != uniswapV2Pair && from != address(uniswapV2Router) ) { // We need to swap the current tokens to ETH and send to the team wallet swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } bool takeFee = true; if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) { takeFee = false; } if (from != owner() && to != owner() && to != uniswapV2Pair) { require(swapEnabled, "Swap disabled"); _tokenTransfer(from, to, amount, takeFee); } else { _tokenTransfer(from, to, amount, takeFee); } } function isExcluded(address account) public view returns (bool) { return _isExcludedFromFee[account]; } function isBlackListed(address account) public view returns (bool) { return bots[account]; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap{ // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), type(uint256).max); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _Marketingfund.transfer(amount.div(_totalBuyTax).mul(_buyMarketingTax)); _devWalletAddress.transfer(amount.div(_totalBuyTax).mul(_buyDevTax)); _Deployer.transfer(amount.div(_totalBuyTax).mul(_buySalesTax)); } function sendETHForSellTax(uint256 amount) private { _holdings.transfer(amount); } function openTrading() external onlyOwner() { require(!tradingOpen, "trading is already open"); swapEnabled = true; cooldownEnabled = false; _maxTxAmount = 25000000000 * 10**9; launchBlock = block.number; tradingOpen = true; IERC20(uniswapV2Pair).approve( address(uniswapV2Router), type(uint256).max ); } function setSwapEnabled(bool enabled) external onlyOwner() { swapEnabled = enabled; } function manualswap() external onlyOwner() { uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external onlyOwner() { uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function setBots(address[] memory bots_) public onlyOwner() { for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function setBot(address _bot) external onlyOwner() { bots[_bot] = true; } function delBot(address notbot) public onlyOwner() { bots[notbot] = false; } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { uint256 amountToTx = amount; if (!takeFee) { removeAllFee(); } else if(sender == uniswapV2Pair) { takeBuyFee(); } else if(recipient == uniswapV2Pair) { takeSellFee(); if (enableLevelSell) { uint256 remainder = levelSell(amount, sender); amountToTx = remainder; } } else { takeSellFee(); } _transferStandard(sender, recipient, amountToTx); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _devTax, _summedTax); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 taxFee, uint256 TeamFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 _taxFee = taxFee > 0 ? taxFee : 1; uint256 _TeamFee = TeamFee > 0 ? TeamFee : 1; uint256 tFee = tAmount.mul(_taxFee).div(100); uint256 tTeam = tAmount.mul(_TeamFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setMaxTxPercent(uint256 maxTxPercent) external onlyOwner() { require(maxTxPercent > 0, "Amount must be greater than 0"); _maxTxAmount = _tTotal.mul(maxTxPercent).div(10**2); emit MaxTxAmountUpdated(_maxTxAmount); } function setRouterPercent(uint256 maxRouterPercent) external onlyOwner() { require(maxRouterPercent > 0, "Amount must be greater than 0"); _routermax = _tTotal.mul(maxRouterPercent).div(10**4); } function _setTeamFee(uint256 teamFee) external onlyOwner() { require(teamFee >= 1 && teamFee <= 25, 'teamFee should be in 1 - 25'); _summedTax = teamFee; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address payable","name":"marketingTaxAddress","type":"address"},{"internalType":"address payable","name":"devfeeAddr","type":"address"},{"internalType":"address payable","name":"depAddr","type":"address"},{"internalType":"address payable","name":"holdings","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"teamFee","type":"uint256"}],"name":"_setTeamFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isBlackListed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_bot","type":"address"}],"name":"setBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enable","type":"bool"}],"name":"setLevelSellEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxRouterPercent","type":"uint256"}],"name":"setRouterPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052670de0b6b3a76400006000196200001c919062000d58565b6000196200002b919062000ccb565b60065560006009556004600a556001600c556004600d556000600f556003601055600f54600c5460095462000061919062000c6e565b6200006d919062000c6e565b601155601054600d54600a5462000085919062000c6e565b62000091919062000c6e565b601255600e54600b54620000a6919062000c6e565b601355655af3107a4000601455662386f26fc100006015556000601d60156101000a81548160ff0219169083151502179055506000601d60166101000a81548160ff0219169083151502179055506000601d60176101000a81548160ff0219169083151502179055506000601d60186101000a81548160ff021916908315150217905550670de0b6b3a7640000601e553480156200014357600080fd5b50604051620054f2380380620054f2833981810160405281019062000169919062000af3565b60006200017b6200089560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35083601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065460026000620003346200089560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620003886200089d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200063630601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a7640000620008c660201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200067d57600080fd5b505afa15801562000692573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006b8919062000ac7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200071b57600080fd5b505afa15801562000730573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000756919062000ac7565b6040518363ffffffff1660e01b81526004016200077592919062000bcf565b602060405180830381600087803b1580156200079057600080fd5b505af1158015620007a5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007cb919062000ac7565b601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200081b6200089560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a764000060405162000882919062000c40565b60405180910390a3505050505062000ec0565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141562000939576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009309062000c1e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620009ac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009a39062000bfc565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000a8c919062000c40565b60405180910390a3505050565b60008151905062000aaa8162000e8c565b92915050565b60008151905062000ac18162000ea6565b92915050565b60006020828403121562000ada57600080fd5b600062000aea8482850162000a99565b91505092915050565b6000806000806080858703121562000b0a57600080fd5b600062000b1a8782880162000ab0565b945050602062000b2d8782880162000ab0565b935050604062000b408782880162000ab0565b925050606062000b538782880162000ab0565b91505092959194509250565b62000b6a8162000d06565b82525050565b600062000b7f60228362000c5d565b915062000b8c8262000dee565b604082019050919050565b600062000ba660248362000c5d565b915062000bb38262000e3d565b604082019050919050565b62000bc98162000d4e565b82525050565b600060408201905062000be6600083018562000b5f565b62000bf5602083018462000b5f565b9392505050565b6000602082019050818103600083015262000c178162000b70565b9050919050565b6000602082019050818103600083015262000c398162000b97565b9050919050565b600060208201905062000c57600083018462000bbe565b92915050565b600082825260208201905092915050565b600062000c7b8262000d4e565b915062000c888362000d4e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000cc05762000cbf62000d90565b5b828201905092915050565b600062000cd88262000d4e565b915062000ce58362000d4e565b92508282101562000cfb5762000cfa62000d90565b5b828203905092915050565b600062000d138262000d2e565b9050919050565b600062000d278262000d2e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600062000d658262000d4e565b915062000d728362000d4e565b92508262000d855762000d8462000dbf565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b62000e978162000d06565b811462000ea357600080fd5b50565b62000eb18162000d1a565b811462000ebd57600080fd5b50565b6146228062000ed06000396000f3fe6080604052600436106101a05760003560e01c806395d89b41116100ec578063cba0e9961161008a578063dd62ed3e11610064578063dd62ed3e14610583578063e01af92c146105c0578063e47d6060146105e9578063f2fde38b14610626576101a7565b8063cba0e996146104f2578063d00efb2f1461052f578063d543dbeb1461055a576101a7565b8063b515566a116100c6578063b515566a14610472578063c0e6b46e1461049b578063c3c8cd80146104c4578063c9567bf9146104db576101a7565b806395d89b41146103e1578063a9059cbb1461040c578063a994856c14610449576101a7565b8063313ce567116101595780636fc3eaec116101335780636fc3eaec1461034b57806370a0823114610362578063715018a61461039f5780638da5cb5b146103b6576101a7565b8063313ce567146102ce5780635932ead1146102f95780636b5caec414610322576101a7565b806306fdde03146101ac578063095ea7b3146101d757806318160ddd1461021457806323b872dd1461023f578063273123b71461027c57806328667162146102a5576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c161064f565b6040516101ce9190613bc0565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f99190613753565b61068c565b60405161020b9190613ba5565b60405180910390f35b34801561022057600080fd5b506102296106aa565b6040516102369190613dc2565b60405180910390f35b34801561024b57600080fd5b5061026660048036038101906102619190613704565b6106ba565b6040516102739190613ba5565b60405180910390f35b34801561028857600080fd5b506102a3600480360381019061029e919061364d565b610793565b005b3480156102b157600080fd5b506102cc60048036038101906102c79190613822565b610883565b005b3480156102da57600080fd5b506102e3610973565b6040516102f09190613e37565b60405180910390f35b34801561030557600080fd5b50610320600480360381019061031b91906137d0565b61097c565b005b34801561032e57600080fd5b506103496004803603810190610344919061364d565b610a2e565b005b34801561035757600080fd5b50610360610b1e565b005b34801561036e57600080fd5b506103896004803603810190610384919061364d565b610bc4565b6040516103969190613dc2565b60405180910390f35b3480156103ab57600080fd5b506103b4610c15565b005b3480156103c257600080fd5b506103cb610d68565b6040516103d89190613b61565b60405180910390f35b3480156103ed57600080fd5b506103f6610d91565b6040516104039190613bc0565b60405180910390f35b34801561041857600080fd5b50610433600480360381019061042e9190613753565b610dce565b6040516104409190613ba5565b60405180910390f35b34801561045557600080fd5b50610470600480360381019061046b91906137d0565b610dec565b005b34801561047e57600080fd5b506104996004803603810190610494919061378f565b610e9e565b005b3480156104a757600080fd5b506104c260048036038101906104bd9190613822565b610fee565b005b3480156104d057600080fd5b506104d96110fe565b005b3480156104e757600080fd5b506104f06111ac565b005b3480156104fe57600080fd5b506105196004803603810190610514919061364d565b6113ed565b6040516105269190613ba5565b60405180910390f35b34801561053b57600080fd5b50610544611443565b6040516105519190613dc2565b60405180910390f35b34801561056657600080fd5b50610581600480360381019061057c9190613822565b611449565b005b34801561058f57600080fd5b506105aa60048036038101906105a591906136c8565b611591565b6040516105b79190613dc2565b60405180910390f35b3480156105cc57600080fd5b506105e760048036038101906105e291906137d0565b611618565b005b3480156105f557600080fd5b50610610600480360381019061060b919061364d565b6116ca565b60405161061d9190613ba5565b60405180910390f35b34801561063257600080fd5b5061064d6004803603810190610648919061369f565b611720565b005b60606040518060400160405280600581526020017f47484f5354000000000000000000000000000000000000000000000000000000815250905090565b60006106a06106996118e2565b84846118ea565b6001905092915050565b6000670de0b6b3a7640000905090565b60006106c7848484611ab5565b610788846106d36118e2565b610783856040518060600160405280602881526020016145c560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107396118e2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b19092919063ffffffff16565b6118ea565b600190509392505050565b61079b6118e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610828576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081f90613d02565b60405180910390fd5b6000601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61088b6118e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610918576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090f90613d02565b60405180910390fd5b6001811015801561092a575060198111155b610969576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096090613c82565b60405180910390fd5b8060138190555050565b60006009905090565b6109846118e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0890613d02565b60405180910390fd5b80601d60176101000a81548160ff02191690831515021790555050565b610a366118e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ac3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aba90613d02565b60405180910390fd5b6001601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610b266118e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baa90613d02565b60405180910390fd5b6000479050610bc181612515565b50565b6000610c0e600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126cb565b9050919050565b610c1d6118e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610caa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca190613d02565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f47484f5354000000000000000000000000000000000000000000000000000000815250905090565b6000610de2610ddb6118e2565b8484611ab5565b6001905092915050565b610df46118e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7890613d02565b60405180910390fd5b80601d60186101000a81548160ff02191690831515021790555050565b610ea66118e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2a90613d02565b60405180910390fd5b60005b8151811015610fea57600160166000848481518110610f7e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610fe2906140ea565b915050610f36565b5050565b610ff66118e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611083576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107a90613d02565b60405180910390fd5b600081116110c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bd90613cc2565b60405180910390fd5b6110f56127106110e783670de0b6b3a764000061273990919063ffffffff16565b6127b490919063ffffffff16565b60158190555050565b6111066118e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611193576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118a90613d02565b60405180910390fd5b600061119e30610bc4565b90506111a9816127fe565b50565b6111b46118e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611241576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123890613d02565b60405180910390fd5b601d60149054906101000a900460ff1615611291576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128890613d82565b60405180910390fd5b6001601d60166101000a81548160ff0219169083151502179055506000601d60176101000a81548160ff02191690831515021790555068015af1d78b58c40000601e8190555043601f819055506001601d60146101000a81548160ff021916908315150217905550601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611398929190613b7c565b602060405180830381600087803b1580156113b257600080fd5b505af11580156113c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ea91906137f9565b50565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601f5481565b6114516118e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d590613d02565b60405180910390fd5b60008111611521576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151890613cc2565b60405180910390fd5b61154f606461154183670de0b6b3a764000061273990919063ffffffff16565b6127b490919063ffffffff16565b601e819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf601e546040516115869190613dc2565b60405180910390a150565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6116206118e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a490613d02565b60405180910390fd5b80601d60166101000a81548160ff02191690831515021790555050565b6000601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6117286118e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ac90613d02565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181c90613c22565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561195a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195190613d62565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c190613c42565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611aa89190613dc2565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1c90613d42565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8c90613be2565b60405180910390fd5b60008111611bd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcf90613d22565b60405180910390fd5b611be0610d68565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c4e5750611c1e610d68565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156122b857601d60179054906101000a900460ff1615611e81573073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611cd057503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d2a5750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d845750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611e8057601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611dca6118e2565b73ffffffffffffffffffffffffffffffffffffffff161480611e405750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611e286118e2565b73ffffffffffffffffffffffffffffffffffffffff16145b611e7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7690613da2565b60405180910390fd5b5b5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611ec457601e54811115611ec357600080fd5b5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f685750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611fbe5750601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611fc757600080fd5b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156120725750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156120c85750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120e05750601d60179054906101000a900460ff165b156121815742601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061213057600080fd5b600f4261213d9190613ef8565b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600061218c30610bc4565b9050601554811061219d5760155490505b60006014548210159050601d60159054906101000a900460ff161580156121d05750601d60169054906101000a900460ff165b80156121d95750805b80156122335750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561228d5750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156122b55761229b826127fe565b600047905060008111156122b3576122b247612515565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061235f5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561236957600090505b612371610d68565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156123df57506123af610d68565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156124395750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561249e57601d60169054906101000a900460ff1661248d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248490613c62565b60405180910390fd5b61249984848484612b18565b6124ab565b6124aa84848484612b18565b5b50505050565b60008383111582906124f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f09190613bc0565b60405180910390fd5b50600083856125089190613fd9565b9050809150509392505050565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61257a600c5461256c601154866127b490919063ffffffff16565b61273990919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156125a5573d6000803e3d6000fd5b50601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61260b6009546125fd601154866127b490919063ffffffff16565b61273990919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612636573d6000803e3d6000fd5b50601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61269c600f5461268e601154866127b490919063ffffffff16565b61273990919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156126c7573d6000803e3d6000fd5b5050565b6000600654821115612712576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270990613c02565b60405180910390fd5b600061271c612c48565b905061273181846127b490919063ffffffff16565b915050919050565b60008083141561274c57600090506127ae565b6000828461275a9190613f7f565b90508284826127699190613f4e565b146127a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a090613ce2565b60405180910390fd5b809150505b92915050565b60006127f683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612c73565b905092915050565b6001601d60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561285c577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561288a5781602001602082028036833780820191505090505b50905030816000815181106128c8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561296a57600080fd5b505afa15801561297e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a29190613676565b816001815181106129dc577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612a6330601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6118ea565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612ac7959493929190613ddd565b600060405180830381600087803b158015612ae157600080fd5b505af1158015612af5573d6000803e3d6000fd5b50505050506000601d60156101000a81548160ff02191690831515021790555050565b600082905081612b2f57612b2a612cd6565b612c28565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415612b9257612b8d612d07565b612c27565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612c1d57612bf0612d3a565b601d60189054906101000a900460ff1615612c18576000612c118487612d6d565b9050809150505b612c26565b612c25612d3a565b5b5b5b612c33858583612f1f565b81612c4157612c406130ea565b5b5050505050565b6000806000612c5561311d565b91509150612c6c81836127b490919063ffffffff16565b9250505090565b60008083118290612cba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cb19190613bc0565b60405180910390fd5b5060008385612cc99190613f4e565b9050809150509392505050565b6000600854148015612cea57506000601354145b15612cf457612d05565b600060088190555060006013819055505b565b600f54600e81905550600c54600b81905550600954600881905550600e54600b54612d329190613ef8565b601381905550565b600a54600881905550601054600e81905550600d54600b81905550600d54601054612d659190613ef8565b601381905550565b600080612d986064612d8a6012548761273990919063ffffffff16565b6127b490919063ffffffff16565b9050612dec81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461317c90919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e8181600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131c690919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612ed9828661317c90919063ffffffff16565b90506000479050612ee9836127fe565b600047905060008282612efc9190613fd9565b90506000811115612f1157612f1081613224565b5b839550505050505092915050565b600080600080600080612f3187613290565b955095509550955095509550612f8f86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461317c90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061302485600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131c690919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613070816132f8565b61307a84836133b5565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516130d79190613dc2565b60405180910390a3505050505050505050565b600954600881905550600c54600b81905550600f54600e81905550600e54600b546131159190613ef8565b601381905550565b600080600060065490506000670de0b6b3a76400009050613151670de0b6b3a76400006006546127b490919063ffffffff16565b82101561316f57600654670de0b6b3a7640000935093505050613178565b81819350935050505b9091565b60006131be83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506124b1565b905092915050565b60008082846131d59190613ef8565b90508381101561321a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161321190613ca2565b60405180910390fd5b8091505092915050565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561328c573d6000803e3d6000fd5b5050565b60008060008060008060008060006132ad8a6008546013546133ef565b92509250925060006132bd612c48565b905060008060006132d08e8787876134b0565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000613302612c48565b90506000613319828461273990919063ffffffff16565b905061336d81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131c690919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6133ca8260065461317c90919063ffffffff16565b6006819055506133e5816007546131c690919063ffffffff16565b6007819055505050565b60008060008060008611613404576001613406565b855b9050600080861161341857600161341a565b855b905060006134446064613436858c61273990919063ffffffff16565b6127b490919063ffffffff16565b9050600061346e6064613460858d61273990919063ffffffff16565b6127b490919063ffffffff16565b9050600061349782613489858e61317c90919063ffffffff16565b61317c90919063ffffffff16565b9050808383975097509750505050505093509350939050565b6000806000806134c9858961273990919063ffffffff16565b905060006134e0868961273990919063ffffffff16565b905060006134f7878961273990919063ffffffff16565b9050600061352082613512858761317c90919063ffffffff16565b61317c90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600061354c61354784613e77565b613e52565b9050808382526020820190508285602086028201111561356b57600080fd5b60005b8581101561359b578161358188826135a5565b84526020840193506020830192505060018101905061356e565b5050509392505050565b6000813590506135b481614568565b92915050565b6000815190506135c981614568565b92915050565b6000813590506135de8161457f565b92915050565b600082601f8301126135f557600080fd5b8135613605848260208601613539565b91505092915050565b60008135905061361d81614596565b92915050565b60008151905061363281614596565b92915050565b600081359050613647816145ad565b92915050565b60006020828403121561365f57600080fd5b600061366d848285016135a5565b91505092915050565b60006020828403121561368857600080fd5b6000613696848285016135ba565b91505092915050565b6000602082840312156136b157600080fd5b60006136bf848285016135cf565b91505092915050565b600080604083850312156136db57600080fd5b60006136e9858286016135a5565b92505060206136fa858286016135a5565b9150509250929050565b60008060006060848603121561371957600080fd5b6000613727868287016135a5565b9350506020613738868287016135a5565b925050604061374986828701613638565b9150509250925092565b6000806040838503121561376657600080fd5b6000613774858286016135a5565b925050602061378585828601613638565b9150509250929050565b6000602082840312156137a157600080fd5b600082013567ffffffffffffffff8111156137bb57600080fd5b6137c7848285016135e4565b91505092915050565b6000602082840312156137e257600080fd5b60006137f08482850161360e565b91505092915050565b60006020828403121561380b57600080fd5b600061381984828501613623565b91505092915050565b60006020828403121561383457600080fd5b600061384284828501613638565b91505092915050565b60006138578383613863565b60208301905092915050565b61386c8161400d565b82525050565b61387b8161400d565b82525050565b600061388c82613eb3565b6138968185613ed6565b93506138a183613ea3565b8060005b838110156138d25781516138b9888261384b565b97506138c483613ec9565b9250506001810190506138a5565b5085935050505092915050565b6138e881614031565b82525050565b6138f781614074565b82525050565b600061390882613ebe565b6139128185613ee7565b9350613922818560208601614086565b61392b816141c0565b840191505092915050565b6000613943602383613ee7565b915061394e826141d1565b604082019050919050565b6000613966602a83613ee7565b915061397182614220565b604082019050919050565b6000613989602683613ee7565b91506139948261426f565b604082019050919050565b60006139ac602283613ee7565b91506139b7826142be565b604082019050919050565b60006139cf600d83613ee7565b91506139da8261430d565b602082019050919050565b60006139f2601b83613ee7565b91506139fd82614336565b602082019050919050565b6000613a15601b83613ee7565b9150613a208261435f565b602082019050919050565b6000613a38601d83613ee7565b9150613a4382614388565b602082019050919050565b6000613a5b602183613ee7565b9150613a66826143b1565b604082019050919050565b6000613a7e602083613ee7565b9150613a8982614400565b602082019050919050565b6000613aa1602983613ee7565b9150613aac82614429565b604082019050919050565b6000613ac4602583613ee7565b9150613acf82614478565b604082019050919050565b6000613ae7602483613ee7565b9150613af2826144c7565b604082019050919050565b6000613b0a601783613ee7565b9150613b1582614516565b602082019050919050565b6000613b2d601183613ee7565b9150613b388261453f565b602082019050919050565b613b4c8161405d565b82525050565b613b5b81614067565b82525050565b6000602082019050613b766000830184613872565b92915050565b6000604082019050613b916000830185613872565b613b9e6020830184613b43565b9392505050565b6000602082019050613bba60008301846138df565b92915050565b60006020820190508181036000830152613bda81846138fd565b905092915050565b60006020820190508181036000830152613bfb81613936565b9050919050565b60006020820190508181036000830152613c1b81613959565b9050919050565b60006020820190508181036000830152613c3b8161397c565b9050919050565b60006020820190508181036000830152613c5b8161399f565b9050919050565b60006020820190508181036000830152613c7b816139c2565b9050919050565b60006020820190508181036000830152613c9b816139e5565b9050919050565b60006020820190508181036000830152613cbb81613a08565b9050919050565b60006020820190508181036000830152613cdb81613a2b565b9050919050565b60006020820190508181036000830152613cfb81613a4e565b9050919050565b60006020820190508181036000830152613d1b81613a71565b9050919050565b60006020820190508181036000830152613d3b81613a94565b9050919050565b60006020820190508181036000830152613d5b81613ab7565b9050919050565b60006020820190508181036000830152613d7b81613ada565b9050919050565b60006020820190508181036000830152613d9b81613afd565b9050919050565b60006020820190508181036000830152613dbb81613b20565b9050919050565b6000602082019050613dd76000830184613b43565b92915050565b600060a082019050613df26000830188613b43565b613dff60208301876138ee565b8181036040830152613e118186613881565b9050613e206060830185613872565b613e2d6080830184613b43565b9695505050505050565b6000602082019050613e4c6000830184613b52565b92915050565b6000613e5c613e6d565b9050613e6882826140b9565b919050565b6000604051905090565b600067ffffffffffffffff821115613e9257613e91614191565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613f038261405d565b9150613f0e8361405d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613f4357613f42614133565b5b828201905092915050565b6000613f598261405d565b9150613f648361405d565b925082613f7457613f73614162565b5b828204905092915050565b6000613f8a8261405d565b9150613f958361405d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613fce57613fcd614133565b5b828202905092915050565b6000613fe48261405d565b9150613fef8361405d565b92508282101561400257614001614133565b5b828203905092915050565b60006140188261403d565b9050919050565b600061402a8261403d565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061407f8261405d565b9050919050565b60005b838110156140a4578082015181840152602081019050614089565b838111156140b3576000848401525b50505050565b6140c2826141c0565b810181811067ffffffffffffffff821117156140e1576140e0614191565b5b80604052505050565b60006140f58261405d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561412857614127614133565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f537761702064697361626c656400000000000000000000000000000000000000600082015250565b7f7465616d4665652073686f756c6420626520696e2031202d2032350000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f4552523a20556e6973776170206f6e6c79000000000000000000000000000000600082015250565b6145718161400d565b811461457c57600080fd5b50565b6145888161401f565b811461459357600080fd5b50565b61459f81614031565b81146145aa57600080fd5b50565b6145b68161405d565b81146145c157600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e7aa3333886d73dc351eca11aa24f7abbdf962ef9de3f54dbebaee4b4ec4956b64736f6c63430008040033000000000000000000000000bd3de395f0fe933c44ca628016596e27c6ea8ee40000000000000000000000006ce432384fa5954e59110bc43962146ffec1754c00000000000000000000000026e14782218c62c1e2109ef8cd1cc6a6d97b7c63000000000000000000000000d814afea1180f24296ca08fa8b9bfd2cf66d07ea
Deployed Bytecode
0x6080604052600436106101a05760003560e01c806395d89b41116100ec578063cba0e9961161008a578063dd62ed3e11610064578063dd62ed3e14610583578063e01af92c146105c0578063e47d6060146105e9578063f2fde38b14610626576101a7565b8063cba0e996146104f2578063d00efb2f1461052f578063d543dbeb1461055a576101a7565b8063b515566a116100c6578063b515566a14610472578063c0e6b46e1461049b578063c3c8cd80146104c4578063c9567bf9146104db576101a7565b806395d89b41146103e1578063a9059cbb1461040c578063a994856c14610449576101a7565b8063313ce567116101595780636fc3eaec116101335780636fc3eaec1461034b57806370a0823114610362578063715018a61461039f5780638da5cb5b146103b6576101a7565b8063313ce567146102ce5780635932ead1146102f95780636b5caec414610322576101a7565b806306fdde03146101ac578063095ea7b3146101d757806318160ddd1461021457806323b872dd1461023f578063273123b71461027c57806328667162146102a5576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c161064f565b6040516101ce9190613bc0565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f99190613753565b61068c565b60405161020b9190613ba5565b60405180910390f35b34801561022057600080fd5b506102296106aa565b6040516102369190613dc2565b60405180910390f35b34801561024b57600080fd5b5061026660048036038101906102619190613704565b6106ba565b6040516102739190613ba5565b60405180910390f35b34801561028857600080fd5b506102a3600480360381019061029e919061364d565b610793565b005b3480156102b157600080fd5b506102cc60048036038101906102c79190613822565b610883565b005b3480156102da57600080fd5b506102e3610973565b6040516102f09190613e37565b60405180910390f35b34801561030557600080fd5b50610320600480360381019061031b91906137d0565b61097c565b005b34801561032e57600080fd5b506103496004803603810190610344919061364d565b610a2e565b005b34801561035757600080fd5b50610360610b1e565b005b34801561036e57600080fd5b506103896004803603810190610384919061364d565b610bc4565b6040516103969190613dc2565b60405180910390f35b3480156103ab57600080fd5b506103b4610c15565b005b3480156103c257600080fd5b506103cb610d68565b6040516103d89190613b61565b60405180910390f35b3480156103ed57600080fd5b506103f6610d91565b6040516104039190613bc0565b60405180910390f35b34801561041857600080fd5b50610433600480360381019061042e9190613753565b610dce565b6040516104409190613ba5565b60405180910390f35b34801561045557600080fd5b50610470600480360381019061046b91906137d0565b610dec565b005b34801561047e57600080fd5b506104996004803603810190610494919061378f565b610e9e565b005b3480156104a757600080fd5b506104c260048036038101906104bd9190613822565b610fee565b005b3480156104d057600080fd5b506104d96110fe565b005b3480156104e757600080fd5b506104f06111ac565b005b3480156104fe57600080fd5b506105196004803603810190610514919061364d565b6113ed565b6040516105269190613ba5565b60405180910390f35b34801561053b57600080fd5b50610544611443565b6040516105519190613dc2565b60405180910390f35b34801561056657600080fd5b50610581600480360381019061057c9190613822565b611449565b005b34801561058f57600080fd5b506105aa60048036038101906105a591906136c8565b611591565b6040516105b79190613dc2565b60405180910390f35b3480156105cc57600080fd5b506105e760048036038101906105e291906137d0565b611618565b005b3480156105f557600080fd5b50610610600480360381019061060b919061364d565b6116ca565b60405161061d9190613ba5565b60405180910390f35b34801561063257600080fd5b5061064d6004803603810190610648919061369f565b611720565b005b60606040518060400160405280600581526020017f47484f5354000000000000000000000000000000000000000000000000000000815250905090565b60006106a06106996118e2565b84846118ea565b6001905092915050565b6000670de0b6b3a7640000905090565b60006106c7848484611ab5565b610788846106d36118e2565b610783856040518060600160405280602881526020016145c560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107396118e2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b19092919063ffffffff16565b6118ea565b600190509392505050565b61079b6118e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610828576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081f90613d02565b60405180910390fd5b6000601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61088b6118e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610918576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090f90613d02565b60405180910390fd5b6001811015801561092a575060198111155b610969576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096090613c82565b60405180910390fd5b8060138190555050565b60006009905090565b6109846118e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0890613d02565b60405180910390fd5b80601d60176101000a81548160ff02191690831515021790555050565b610a366118e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ac3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aba90613d02565b60405180910390fd5b6001601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610b266118e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baa90613d02565b60405180910390fd5b6000479050610bc181612515565b50565b6000610c0e600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126cb565b9050919050565b610c1d6118e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610caa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca190613d02565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f47484f5354000000000000000000000000000000000000000000000000000000815250905090565b6000610de2610ddb6118e2565b8484611ab5565b6001905092915050565b610df46118e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7890613d02565b60405180910390fd5b80601d60186101000a81548160ff02191690831515021790555050565b610ea66118e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2a90613d02565b60405180910390fd5b60005b8151811015610fea57600160166000848481518110610f7e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610fe2906140ea565b915050610f36565b5050565b610ff66118e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611083576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107a90613d02565b60405180910390fd5b600081116110c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bd90613cc2565b60405180910390fd5b6110f56127106110e783670de0b6b3a764000061273990919063ffffffff16565b6127b490919063ffffffff16565b60158190555050565b6111066118e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611193576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118a90613d02565b60405180910390fd5b600061119e30610bc4565b90506111a9816127fe565b50565b6111b46118e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611241576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123890613d02565b60405180910390fd5b601d60149054906101000a900460ff1615611291576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128890613d82565b60405180910390fd5b6001601d60166101000a81548160ff0219169083151502179055506000601d60176101000a81548160ff02191690831515021790555068015af1d78b58c40000601e8190555043601f819055506001601d60146101000a81548160ff021916908315150217905550601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611398929190613b7c565b602060405180830381600087803b1580156113b257600080fd5b505af11580156113c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ea91906137f9565b50565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601f5481565b6114516118e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d590613d02565b60405180910390fd5b60008111611521576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151890613cc2565b60405180910390fd5b61154f606461154183670de0b6b3a764000061273990919063ffffffff16565b6127b490919063ffffffff16565b601e819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf601e546040516115869190613dc2565b60405180910390a150565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6116206118e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a490613d02565b60405180910390fd5b80601d60166101000a81548160ff02191690831515021790555050565b6000601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6117286118e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ac90613d02565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181c90613c22565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561195a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195190613d62565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c190613c42565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611aa89190613dc2565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1c90613d42565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8c90613be2565b60405180910390fd5b60008111611bd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcf90613d22565b60405180910390fd5b611be0610d68565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c4e5750611c1e610d68565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156122b857601d60179054906101000a900460ff1615611e81573073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611cd057503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d2a5750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d845750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611e8057601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611dca6118e2565b73ffffffffffffffffffffffffffffffffffffffff161480611e405750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611e286118e2565b73ffffffffffffffffffffffffffffffffffffffff16145b611e7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7690613da2565b60405180910390fd5b5b5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611ec457601e54811115611ec357600080fd5b5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f685750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611fbe5750601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611fc757600080fd5b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156120725750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156120c85750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120e05750601d60179054906101000a900460ff165b156121815742601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061213057600080fd5b600f4261213d9190613ef8565b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600061218c30610bc4565b9050601554811061219d5760155490505b60006014548210159050601d60159054906101000a900460ff161580156121d05750601d60169054906101000a900460ff165b80156121d95750805b80156122335750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561228d5750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156122b55761229b826127fe565b600047905060008111156122b3576122b247612515565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061235f5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561236957600090505b612371610d68565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156123df57506123af610d68565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156124395750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561249e57601d60169054906101000a900460ff1661248d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248490613c62565b60405180910390fd5b61249984848484612b18565b6124ab565b6124aa84848484612b18565b5b50505050565b60008383111582906124f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f09190613bc0565b60405180910390fd5b50600083856125089190613fd9565b9050809150509392505050565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61257a600c5461256c601154866127b490919063ffffffff16565b61273990919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156125a5573d6000803e3d6000fd5b50601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61260b6009546125fd601154866127b490919063ffffffff16565b61273990919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612636573d6000803e3d6000fd5b50601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61269c600f5461268e601154866127b490919063ffffffff16565b61273990919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156126c7573d6000803e3d6000fd5b5050565b6000600654821115612712576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270990613c02565b60405180910390fd5b600061271c612c48565b905061273181846127b490919063ffffffff16565b915050919050565b60008083141561274c57600090506127ae565b6000828461275a9190613f7f565b90508284826127699190613f4e565b146127a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a090613ce2565b60405180910390fd5b809150505b92915050565b60006127f683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612c73565b905092915050565b6001601d60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561285c577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561288a5781602001602082028036833780820191505090505b50905030816000815181106128c8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561296a57600080fd5b505afa15801561297e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a29190613676565b816001815181106129dc577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612a6330601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6118ea565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612ac7959493929190613ddd565b600060405180830381600087803b158015612ae157600080fd5b505af1158015612af5573d6000803e3d6000fd5b50505050506000601d60156101000a81548160ff02191690831515021790555050565b600082905081612b2f57612b2a612cd6565b612c28565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415612b9257612b8d612d07565b612c27565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612c1d57612bf0612d3a565b601d60189054906101000a900460ff1615612c18576000612c118487612d6d565b9050809150505b612c26565b612c25612d3a565b5b5b5b612c33858583612f1f565b81612c4157612c406130ea565b5b5050505050565b6000806000612c5561311d565b91509150612c6c81836127b490919063ffffffff16565b9250505090565b60008083118290612cba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cb19190613bc0565b60405180910390fd5b5060008385612cc99190613f4e565b9050809150509392505050565b6000600854148015612cea57506000601354145b15612cf457612d05565b600060088190555060006013819055505b565b600f54600e81905550600c54600b81905550600954600881905550600e54600b54612d329190613ef8565b601381905550565b600a54600881905550601054600e81905550600d54600b81905550600d54601054612d659190613ef8565b601381905550565b600080612d986064612d8a6012548761273990919063ffffffff16565b6127b490919063ffffffff16565b9050612dec81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461317c90919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e8181600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131c690919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612ed9828661317c90919063ffffffff16565b90506000479050612ee9836127fe565b600047905060008282612efc9190613fd9565b90506000811115612f1157612f1081613224565b5b839550505050505092915050565b600080600080600080612f3187613290565b955095509550955095509550612f8f86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461317c90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061302485600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131c690919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613070816132f8565b61307a84836133b5565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516130d79190613dc2565b60405180910390a3505050505050505050565b600954600881905550600c54600b81905550600f54600e81905550600e54600b546131159190613ef8565b601381905550565b600080600060065490506000670de0b6b3a76400009050613151670de0b6b3a76400006006546127b490919063ffffffff16565b82101561316f57600654670de0b6b3a7640000935093505050613178565b81819350935050505b9091565b60006131be83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506124b1565b905092915050565b60008082846131d59190613ef8565b90508381101561321a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161321190613ca2565b60405180910390fd5b8091505092915050565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561328c573d6000803e3d6000fd5b5050565b60008060008060008060008060006132ad8a6008546013546133ef565b92509250925060006132bd612c48565b905060008060006132d08e8787876134b0565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000613302612c48565b90506000613319828461273990919063ffffffff16565b905061336d81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131c690919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6133ca8260065461317c90919063ffffffff16565b6006819055506133e5816007546131c690919063ffffffff16565b6007819055505050565b60008060008060008611613404576001613406565b855b9050600080861161341857600161341a565b855b905060006134446064613436858c61273990919063ffffffff16565b6127b490919063ffffffff16565b9050600061346e6064613460858d61273990919063ffffffff16565b6127b490919063ffffffff16565b9050600061349782613489858e61317c90919063ffffffff16565b61317c90919063ffffffff16565b9050808383975097509750505050505093509350939050565b6000806000806134c9858961273990919063ffffffff16565b905060006134e0868961273990919063ffffffff16565b905060006134f7878961273990919063ffffffff16565b9050600061352082613512858761317c90919063ffffffff16565b61317c90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600061354c61354784613e77565b613e52565b9050808382526020820190508285602086028201111561356b57600080fd5b60005b8581101561359b578161358188826135a5565b84526020840193506020830192505060018101905061356e565b5050509392505050565b6000813590506135b481614568565b92915050565b6000815190506135c981614568565b92915050565b6000813590506135de8161457f565b92915050565b600082601f8301126135f557600080fd5b8135613605848260208601613539565b91505092915050565b60008135905061361d81614596565b92915050565b60008151905061363281614596565b92915050565b600081359050613647816145ad565b92915050565b60006020828403121561365f57600080fd5b600061366d848285016135a5565b91505092915050565b60006020828403121561368857600080fd5b6000613696848285016135ba565b91505092915050565b6000602082840312156136b157600080fd5b60006136bf848285016135cf565b91505092915050565b600080604083850312156136db57600080fd5b60006136e9858286016135a5565b92505060206136fa858286016135a5565b9150509250929050565b60008060006060848603121561371957600080fd5b6000613727868287016135a5565b9350506020613738868287016135a5565b925050604061374986828701613638565b9150509250925092565b6000806040838503121561376657600080fd5b6000613774858286016135a5565b925050602061378585828601613638565b9150509250929050565b6000602082840312156137a157600080fd5b600082013567ffffffffffffffff8111156137bb57600080fd5b6137c7848285016135e4565b91505092915050565b6000602082840312156137e257600080fd5b60006137f08482850161360e565b91505092915050565b60006020828403121561380b57600080fd5b600061381984828501613623565b91505092915050565b60006020828403121561383457600080fd5b600061384284828501613638565b91505092915050565b60006138578383613863565b60208301905092915050565b61386c8161400d565b82525050565b61387b8161400d565b82525050565b600061388c82613eb3565b6138968185613ed6565b93506138a183613ea3565b8060005b838110156138d25781516138b9888261384b565b97506138c483613ec9565b9250506001810190506138a5565b5085935050505092915050565b6138e881614031565b82525050565b6138f781614074565b82525050565b600061390882613ebe565b6139128185613ee7565b9350613922818560208601614086565b61392b816141c0565b840191505092915050565b6000613943602383613ee7565b915061394e826141d1565b604082019050919050565b6000613966602a83613ee7565b915061397182614220565b604082019050919050565b6000613989602683613ee7565b91506139948261426f565b604082019050919050565b60006139ac602283613ee7565b91506139b7826142be565b604082019050919050565b60006139cf600d83613ee7565b91506139da8261430d565b602082019050919050565b60006139f2601b83613ee7565b91506139fd82614336565b602082019050919050565b6000613a15601b83613ee7565b9150613a208261435f565b602082019050919050565b6000613a38601d83613ee7565b9150613a4382614388565b602082019050919050565b6000613a5b602183613ee7565b9150613a66826143b1565b604082019050919050565b6000613a7e602083613ee7565b9150613a8982614400565b602082019050919050565b6000613aa1602983613ee7565b9150613aac82614429565b604082019050919050565b6000613ac4602583613ee7565b9150613acf82614478565b604082019050919050565b6000613ae7602483613ee7565b9150613af2826144c7565b604082019050919050565b6000613b0a601783613ee7565b9150613b1582614516565b602082019050919050565b6000613b2d601183613ee7565b9150613b388261453f565b602082019050919050565b613b4c8161405d565b82525050565b613b5b81614067565b82525050565b6000602082019050613b766000830184613872565b92915050565b6000604082019050613b916000830185613872565b613b9e6020830184613b43565b9392505050565b6000602082019050613bba60008301846138df565b92915050565b60006020820190508181036000830152613bda81846138fd565b905092915050565b60006020820190508181036000830152613bfb81613936565b9050919050565b60006020820190508181036000830152613c1b81613959565b9050919050565b60006020820190508181036000830152613c3b8161397c565b9050919050565b60006020820190508181036000830152613c5b8161399f565b9050919050565b60006020820190508181036000830152613c7b816139c2565b9050919050565b60006020820190508181036000830152613c9b816139e5565b9050919050565b60006020820190508181036000830152613cbb81613a08565b9050919050565b60006020820190508181036000830152613cdb81613a2b565b9050919050565b60006020820190508181036000830152613cfb81613a4e565b9050919050565b60006020820190508181036000830152613d1b81613a71565b9050919050565b60006020820190508181036000830152613d3b81613a94565b9050919050565b60006020820190508181036000830152613d5b81613ab7565b9050919050565b60006020820190508181036000830152613d7b81613ada565b9050919050565b60006020820190508181036000830152613d9b81613afd565b9050919050565b60006020820190508181036000830152613dbb81613b20565b9050919050565b6000602082019050613dd76000830184613b43565b92915050565b600060a082019050613df26000830188613b43565b613dff60208301876138ee565b8181036040830152613e118186613881565b9050613e206060830185613872565b613e2d6080830184613b43565b9695505050505050565b6000602082019050613e4c6000830184613b52565b92915050565b6000613e5c613e6d565b9050613e6882826140b9565b919050565b6000604051905090565b600067ffffffffffffffff821115613e9257613e91614191565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613f038261405d565b9150613f0e8361405d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613f4357613f42614133565b5b828201905092915050565b6000613f598261405d565b9150613f648361405d565b925082613f7457613f73614162565b5b828204905092915050565b6000613f8a8261405d565b9150613f958361405d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613fce57613fcd614133565b5b828202905092915050565b6000613fe48261405d565b9150613fef8361405d565b92508282101561400257614001614133565b5b828203905092915050565b60006140188261403d565b9050919050565b600061402a8261403d565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061407f8261405d565b9050919050565b60005b838110156140a4578082015181840152602081019050614089565b838111156140b3576000848401525b50505050565b6140c2826141c0565b810181811067ffffffffffffffff821117156140e1576140e0614191565b5b80604052505050565b60006140f58261405d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561412857614127614133565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f537761702064697361626c656400000000000000000000000000000000000000600082015250565b7f7465616d4665652073686f756c6420626520696e2031202d2032350000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f4552523a20556e6973776170206f6e6c79000000000000000000000000000000600082015250565b6145718161400d565b811461457c57600080fd5b50565b6145888161401f565b811461459357600080fd5b50565b61459f81614031565b81146145aa57600080fd5b50565b6145b68161405d565b81146145c157600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e7aa3333886d73dc351eca11aa24f7abbdf962ef9de3f54dbebaee4b4ec4956b64736f6c63430008040033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000bd3de395f0fe933c44ca628016596e27c6ea8ee40000000000000000000000006ce432384fa5954e59110bc43962146ffec1754c00000000000000000000000026e14782218c62c1e2109ef8cd1cc6a6d97b7c63000000000000000000000000d814afea1180f24296ca08fa8b9bfd2cf66d07ea
-----Decoded View---------------
Arg [0] : marketingTaxAddress (address): 0xbD3dE395f0fE933c44CA628016596E27c6Ea8eE4
Arg [1] : devfeeAddr (address): 0x6CE432384fa5954E59110Bc43962146FfEC1754C
Arg [2] : depAddr (address): 0x26e14782218C62c1e2109ef8cd1CC6a6D97b7C63
Arg [3] : holdings (address): 0xD814AfeA1180f24296CA08FA8b9bFd2Cf66d07Ea
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000bd3de395f0fe933c44ca628016596e27c6ea8ee4
Arg [1] : 0000000000000000000000006ce432384fa5954e59110bc43962146ffec1754c
Arg [2] : 00000000000000000000000026e14782218c62c1e2109ef8cd1cc6a6d97b7c63
Arg [3] : 000000000000000000000000d814afea1180f24296ca08fa8b9bfd2cf66d07ea
Deployed Bytecode Sourcemap
4111:17184:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7364:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8289:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7641:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8490:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16500:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21114:178;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7550:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8944:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16405:87;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16065:155;;;;;;;;;;;;;:::i;:::-;;7744:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2803:148;;;;;;;;;;;;;:::i;:::-;;2589:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7455:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7890:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9055:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16228:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20884:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15901:156;;;;;;;;;;;;;:::i;:::-;;15365:407;;;;;;;;;;;;;:::i;:::-;;14060:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6071:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20623:255;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8097:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15784:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14185:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2959:252;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7364:83;7401:13;7434:5;;;;;;;;;;;;;;;;;7427:12;;7364:83;:::o;8289:193::-;8391:4;8413:39;8422:12;:10;:12::i;:::-;8436:7;8445:6;8413:8;:39::i;:::-;8470:4;8463:11;;8289:193;;;;:::o;7641:95::-;7694:7;4648:18;7714:14;;7641:95;:::o;8490:446::-;8622:4;8639:36;8649:6;8657:9;8668:6;8639:9;:36::i;:::-;8686:220;8709:6;8730:12;:10;:12::i;:::-;8757:138;8813:6;8757:138;;;;;;;;;;;;;;;;;:11;:19;8769:6;8757:19;;;;;;;;;;;;;;;:33;8777:12;:10;:12::i;:::-;8757:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8686:8;:220::i;:::-;8924:4;8917:11;;8490:446;;;;;:::o;16500:90::-;2726:12;:10;:12::i;:::-;2716:22;;:6;;;;;;;;;;:22;;;2708:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16577:5:::1;16562:4;:12;16567:6;16562:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;16500:90:::0;:::o;21114:178::-;2726:12;:10;:12::i;:::-;2716:22;;:6;;;;;;;;;;:22;;;2708:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21203:1:::1;21192:7;:12;;:29;;;;;21219:2;21208:7;:13;;21192:29;21184:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;21277:7;21264:10;:20;;;;21114:178:::0;:::o;7550:83::-;7591:5;4324:1;7609:16;;7550:83;:::o;8944:103::-;2726:12;:10;:12::i;:::-;2716:22;;:6;;;;;;;;;;:22;;;2708:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9034:5:::1;9016:15;;:23;;;;;;;;;;;;;;;;;;8944:103:::0;:::o;16405:87::-;2726:12;:10;:12::i;:::-;2716:22;;:6;;;;;;;;;;:22;;;2708:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16480:4:::1;16467;:10;16472:4;16467:10;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;16405:87:::0;:::o;16065:155::-;2726:12;:10;:12::i;:::-;2716:22;;:6;;;;;;;;;;:22;;;2708:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16119:26:::1;16148:21;16119:50;;16180:32;16193:18;16180:12;:32::i;:::-;2786:1;16065:155::o:0;7744:138::-;7810:7;7837:37;7857:7;:16;7865:7;7857:16;;;;;;;;;;;;;;;;7837:19;:37::i;:::-;7830:44;;7744:138;;;:::o;2803:148::-;2726:12;:10;:12::i;:::-;2716:22;;:6;;;;;;;;;;:22;;;2708:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2910:1:::1;2873:40;;2894:6;::::0;::::1;;;;;;;;2873:40;;;;;;;;;;;;2941:1;2924:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2803:148::o:0;2589:79::-;2627:7;2654:6;;;;;;;;;;;2647:13;;2589:79;:::o;7455:87::-;7494:13;7527:7;;;;;;;;;;;;;;;;;7520:14;;7455:87;:::o;7890:199::-;7995:4;8017:42;8027:12;:10;:12::i;:::-;8041:9;8052:6;8017:9;:42::i;:::-;8077:4;8070:11;;7890:199;;;;:::o;9055:104::-;2726:12;:10;:12::i;:::-;2716:22;;:6;;;;;;;;;;:22;;;2708:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9145:6:::1;9127:15;;:24;;;;;;;;;;;;;;;;;;9055:104:::0;:::o;16228:169::-;2726:12;:10;:12::i;:::-;2716:22;;:6;;;;;;;;;;:22;;;2708:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16304:9:::1;16299:91;16323:5;:12;16319:1;:16;16299:91;;;16374:4;16357;:14;16362:5;16368:1;16362:8;;;;;;;;;;;;;;;;;;;;;;16357:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;16337:3;;;;;:::i;:::-;;;;16299:91;;;;16228:169:::0;:::o;20884:218::-;2726:12;:10;:12::i;:::-;2716:22;;:6;;;;;;;;;;:22;;;2708:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20995:1:::1;20976:16;:20;20968:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;21054:40;21088:5;21054:29;21066:16;4648:18;21054:11;;:29;;;;:::i;:::-;:33;;:40;;;;:::i;:::-;21041:10;:53;;;;20884:218:::0;:::o;15901:156::-;2726:12;:10;:12::i;:::-;2716:22;;:6;;;;;;;;;;:22;;;2708:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15955:23:::1;15981:24;15999:4;15981:9;:24::i;:::-;15955:50;;16016:33;16033:15;16016:16;:33::i;:::-;2786:1;15901:156::o:0;15365:407::-;2726:12;:10;:12::i;:::-;2716:22;;:6;;;;;;;;;;:22;;;2708:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15429:11:::1;;;;;;;;;;;15428:12;15420:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;15493:4;15479:11;;:18;;;;;;;;;;;;;;;;;;15526:5;15508:15;;:23;;;;;;;;;;;;;;;;;;15557:19;15542:12;:34;;;;15601:12;15587:11;:26;;;;15638:4;15624:11;;:18;;;;;;;;;;;;;;;;;;15660:13;;;;;;;;;;;15653:29;;;15705:15;;;;;;;;;;;15736:17;15653:111;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15365:407::o:0;14060:117::-;14118:4;14142:18;:27;14161:7;14142:27;;;;;;;;;;;;;;;;;;;;;;;;;14135:34;;14060:117;;;:::o;6071:26::-;;;;:::o;20623:255::-;2726:12;:10;:12::i;:::-;2716:22;;:6;;;;;;;;;;:22;;;2708:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20725:1:::1;20710:12;:16;20702:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;20786:36;20816:5;20786:25;20798:12;4648:18;20786:11;;:25;;;;:::i;:::-;:29;;:36;;;;:::i;:::-;20771:12;:51;;;;20838:32;20857:12;;20838:32;;;;;;:::i;:::-;;;;;;;;20623:255:::0;:::o;8097:184::-;8214:7;8246:11;:18;8258:5;8246:18;;;;;;;;;;;;;;;:27;8265:7;8246:27;;;;;;;;;;;;;;;;8239:34;;8097:184;;;;:::o;15784:99::-;2726:12;:10;:12::i;:::-;2716:22;;:6;;;;;;;;;;:22;;;2708:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15868:7:::1;15854:11;;:21;;;;;;;;;;;;;;;;;;15784:99:::0;:::o;14185:106::-;14246:4;14270;:13;14275:7;14270:13;;;;;;;;;;;;;;;;;;;;;;;;;14263:20;;14185:106;;;:::o;2959:252::-;2726:12;:10;:12::i;:::-;2716:22;;:6;;;;;;;;;;:22;;;2708:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3076:1:::1;3056:22;;:8;:22;;;;3048:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3166:8;3137:38;;3158:6;::::0;::::1;;;;;;;;3137:38;;;;;;;;;;;;3195:8;3186:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2959:252:::0;:::o;92:98::-;145:7;172:10;165:17;;92:98;:::o;10945:369::-;11089:1;11072:19;;:5;:19;;;;11064:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11170:1;11151:21;;:7;:21;;;;11143:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11252:6;11222:11;:18;11234:5;11222:18;;;;;;;;;;;;;;;:27;11241:7;11222:27;;;;;;;;;;;;;;;:36;;;;11290:7;11274:32;;11283:5;11274:32;;;11299:6;11274:32;;;;;;:::i;:::-;;;;;;;;10945:369;;;:::o;11322:2730::-;11460:1;11444:18;;:4;:18;;;;11436:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11537:1;11523:16;;:2;:16;;;;11515:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11607:1;11598:6;:10;11590:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11687:7;:5;:7::i;:::-;11679:15;;:4;:15;;;;:32;;;;;11704:7;:5;:7::i;:::-;11698:13;;:2;:13;;;;11679:32;11675:1952;;;11732:15;;;;;;;;;;;11728:526;;;11810:4;11794:21;;:4;:21;;;;:65;;;;;11854:4;11840:19;;:2;:19;;;;11794:65;:122;;;;;11900:15;;;;;;;;;;;11884:32;;:4;:32;;;;11794:122;:177;;;;;11955:15;;;;;;;;;;;11941:30;;:2;:30;;;;11794:177;11768:471;;;12072:15;;;;;;;;;;;12048:40;;:12;:10;:12::i;:::-;:40;;;:102;;;;12137:13;;;;;;;;;;;12121:29;;:12;:10;:12::i;:::-;:29;;;12048:102;12014:205;;;;;;;;;;;;:::i;:::-;;;;;;;;;11768:471;11728:526;12287:4;12271:21;;:4;:21;;;12268:91;;12330:12;;12320:6;:22;;12312:31;;;;;;12268:91;12382:4;:10;12387:4;12382:10;;;;;;;;;;;;;;;;;;;;;;;;;12381:11;:24;;;;;12397:4;:8;12402:2;12397:8;;;;;;;;;;;;;;;;;;;;;;;;;12396:9;12381:24;:45;;;;;12410:4;:16;12415:10;12410:16;;;;;;;;;;;;;;;;;;;;;;;;;12409:17;12381:45;12373:54;;;;;;12474:13;;;;;;;;;;;12466:21;;:4;:21;;;:72;;;;;12522:15;;;;;;;;;;;12508:30;;:2;:30;;;;12466:72;:116;;;;;12560:18;:22;12579:2;12560:22;;;;;;;;;;;;;;;;;;;;;;;;;12559:23;12466:116;:152;;;;;12603:15;;;;;;;;;;;12466:152;12444:328;;;12676:15;12661:8;:12;12670:2;12661:12;;;;;;;;;;;;;;;;:30;12653:39;;;;;;12745:10;12726:15;:30;;;;:::i;:::-;12711:8;:12;12720:2;12711:12;;;;;;;;;;;;;;;:45;;;;12444:328;12802:28;12833:24;12851:4;12833:9;:24::i;:::-;12802:55;;12913:10;;12889:20;:34;12886:120;;12980:10;;12957:33;;12886:120;13022:24;13073:29;;13049:20;:53;;13022:80;;13122:6;;;;;;;;;;;13121:7;:22;;;;;13132:11;;;;;;;;;;;13121:22;:45;;;;;13147:19;13121:45;:70;;;;;13178:13;;;;;;;;;;;13170:21;;:4;:21;;;;13121:70;:106;;;;;13211:15;;;;;;;;;;;13195:32;;:4;:32;;;;13121:106;13117:499;;;13352:38;13369:20;13352:16;:38::i;:::-;13427:26;13456:21;13427:50;;13520:1;13499:18;:22;13496:105;;;13546:35;13559:21;13546:12;:35::i;:::-;13496:105;13117:499;;11675:1952;;;13639:12;13654:4;13639:19;;13675:18;:24;13694:4;13675:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;13703:18;:22;13722:2;13703:22;;;;;;;;;;;;;;;;;;;;;;;;;13675:50;13671:98;;;13752:5;13742:15;;13671:98;13793:7;:5;:7::i;:::-;13785:15;;:4;:15;;;;:32;;;;;13810:7;:5;:7::i;:::-;13804:13;;:2;:13;;;;13785:32;:55;;;;;13827:13;;;;;;;;;;;13821:19;;:2;:19;;;;13785:55;13781:255;;;13865:11;;;;;;;;;;;13857:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;13909:41;13924:4;13930:2;13934:6;13942:7;13909:14;:41::i;:::-;13781:255;;;13983:41;13998:4;14004:2;14008:6;14016:7;13983:14;:41::i;:::-;13781:255;11322:2730;;;;:::o;1354:224::-;1474:7;1507:1;1502;:6;;1510:12;1494:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1534:9;1550:1;1546;:5;;;;:::i;:::-;1534:17;;1569:1;1562:8;;;1354:224;;;;;:::o;14965:288::-;15022:14;;;;;;;;;;;:23;;:71;15046:46;15075:16;;15046:24;15057:12;;15046:6;:10;;:24;;;;:::i;:::-;:28;;:46;;;;:::i;:::-;15022:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15104:17;;;;;;;;;;;:26;;:68;15131:40;15160:10;;15131:24;15142:12;;15131:6;:10;;:24;;;;:::i;:::-;:28;;:40;;;;:::i;:::-;15104:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15183:9;;;;;;;;;;;:18;;:62;15202:42;15231:12;;15202:24;15213:12;;15202:6;:10;;:24;;;;:::i;:::-;:28;;:42;;;;:::i;:::-;15183:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14965:288;:::o;9167:323::-;9262:7;9320;;9309;:18;;9287:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;9408:19;9430:10;:8;:10::i;:::-;9408:32;;9458:24;9470:11;9458:7;:11;;:24;;;;:::i;:::-;9451:31;;;9167:323;;;:::o;1586:246::-;1644:7;1673:1;1668;:6;1664:47;;;1698:1;1691:8;;;;1664:47;1721:9;1737:1;1733;:5;;;;:::i;:::-;1721:17;;1766:1;1761;1757;:5;;;;:::i;:::-;:10;1749:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1823:1;1816:8;;;1586:246;;;;;:::o;1840:132::-;1898:7;1925:39;1929:1;1932;1925:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1918:46;;1840:132;;;;:::o;14299:658::-;6200:4;6191:6;;:13;;;;;;;;;;;;;;;;;;14444:21:::1;14482:1;14468:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14444:40;;14517:4;14499;14504:1;14499:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;14547:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14537:4;14542:1;14537:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;14586:68;14603:4;14618:15;;;;;;;;;;;14636:17;14586:8;:68::i;:::-;14701:15;;;;;;;;;;;:66;;;14786:11;14816:1;14864:4;14895;14919:15;14701:248;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;6215:1;6236:5:::0;6227:6;;:14;;;;;;;;;;;;;;;;;;14299:658;:::o;16598:799::-;16749:18;16770:6;16749:27;;16796:7;16791:486;;16824:14;:12;:14::i;:::-;16791:486;;;16886:13;;;;;;;;;;;16876:23;;:6;:23;;;16873:404;;;16920:12;:10;:12::i;:::-;16873:404;;;16983:13;;;;;;;;;;;16970:26;;:9;:26;;;16967:310;;;17017:13;:11;:13::i;:::-;17053:15;;;;;;;;;;;17049:146;;;17089:17;17109:25;17119:6;17127;17109:9;:25::i;:::-;17089:45;;17166:9;17153:22;;17049:146;;16967:310;;;17248:13;:11;:13::i;:::-;16967:310;16873:404;16791:486;17301:48;17319:6;17327:9;17338:10;17301:17;:48::i;:::-;17365:7;17360:29;;17374:15;:13;:15::i;:::-;17360:29;16598:799;;;;;:::o;20186:164::-;20228:7;20249:15;20266;20285:19;:17;:19::i;:::-;20248:56;;;;20322:20;20334:7;20322;:11;;:20;;;;:::i;:::-;20315:27;;;;20186:164;:::o;1980:223::-;2100:7;2132:1;2128;:5;2135:12;2120:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2159:9;2175:1;2171;:5;;;;:::i;:::-;2159:17;;2194:1;2187:8;;;1980:223;;;;;:::o;9498:141::-;9556:1;9545:7;;:12;:31;;;;;9575:1;9561:10;;:15;9545:31;9541:44;;;9578:7;;9541:44;9605:1;9595:7;:11;;;;9630:1;9617:10;:14;;;;9498:141;:::o;9853:194::-;9906:12;;9894:9;:24;;;;9945:16;;9929:13;:32;;;;9982:10;;9972:7;:20;;;;10030:9;;10016:13;;:23;;;;:::i;:::-;10003:10;:36;;;;9853:194::o;10055:206::-;10107:11;;10097:7;:21;;;;10141:13;;10129:9;:25;;;;10181:17;;10165:13;:33;;;;10236:17;;10222:13;;:31;;;;:::i;:::-;10209:10;:44;;;;10055:206::o;10269:668::-;10337:7;10357:15;10375:34;10405:3;10375:25;10386:13;;10375:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;10357:52;;10438:28;10458:7;10438;:15;10446:6;10438:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;10420:7;:15;10428:6;10420:15;;;;;;;;;;;;;;;:46;;;;10502:35;10529:7;10502;:22;10518:4;10502:22;;;;;;;;;;;;;;;;:26;;:35;;;;:::i;:::-;10477:7;:22;10493:4;10477:22;;;;;;;;;;;;;;;:60;;;;10550:15;10568:19;10579:7;10568:6;:10;;:19;;;;:::i;:::-;10550:37;;10598:22;10623:21;10598:46;;10655:25;10672:7;10655:16;:25::i;:::-;10691:21;10715;10691:45;;10749:20;10788:14;10772:13;:30;;;;:::i;:::-;10749:53;;10834:1;10819:12;:16;10815:80;;;10852:31;10870:12;10852:17;:31::i;:::-;10815:80;10922:7;10915:14;;;;;;;10269:668;;;;:::o;17405:610::-;17552:15;17582:23;17620:12;17647:23;17685:12;17712:13;17739:19;17750:7;17739:10;:19::i;:::-;17537:221;;;;;;;;;;;;17787:28;17807:7;17787;:15;17795:6;17787:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;17769:7;:15;17777:6;17769:15;;;;;;;;;;;;;;;:46;;;;17847:39;17870:15;17847:7;:18;17855:9;17847:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;17826:7;:18;17834:9;17826:18;;;;;;;;;;;;;;;:60;;;;17897:16;17907:5;17897:9;:16::i;:::-;17924:23;17936:4;17942;17924:11;:23::i;:::-;17980:9;17963:44;;17972:6;17963:44;;;17991:15;17963:44;;;;;;:::i;:::-;;;;;;;;17405:610;;;;;;;;;:::o;9647:197::-;9701:10;;9691:7;:20;;;;9738:16;;9722:13;:32;;;;9777:12;;9765:9;:24;;;;9827:9;;9813:13;;:23;;;;:::i;:::-;9800:10;:36;;;;9647:197::o;20358:257::-;20409:7;20418;20438:15;20456:7;;20438:25;;20474:15;4648:18;20474:25;;20524:20;4648:18;20524:7;;:11;;:20;;;;:::i;:::-;20514:7;:30;20510:61;;;20554:7;;4648:18;20546:25;;;;;;;;20510:61;20590:7;20599;20582:25;;;;;;20358:257;;;:::o;1210:136::-;1268:7;1295:43;1299:1;1302;1295:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1288:50;;1210:136;;;;:::o;1023:179::-;1081:7;1101:9;1117:1;1113;:5;;;;:::i;:::-;1101:17;;1142:1;1137;:6;;1129:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1193:1;1186:8;;;1023:179;;;;:::o;15261:96::-;15323:9;;;;;;;;;;;:18;;:26;15342:6;15323:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15261:96;:::o;18434:616::-;18534:7;18556;18578;18600;18622;18644;18680:23;18705:12;18719:13;18749:41;18761:7;18770;;18779:10;;18749:11;:41::i;:::-;18679:111;;;;;;18801:19;18823:10;:8;:10::i;:::-;18801:32;;18845:15;18862:23;18887:12;18916:46;18928:7;18937:4;18943:5;18950:11;18916;:46::i;:::-;18844:118;;;;;;18981:7;18990:15;19007:4;19013:15;19030:4;19036:5;18973:69;;;;;;;;;;;;;;;;;;;18434:616;;;;;;;:::o;18023:211::-;18076:19;18098:10;:8;:10::i;:::-;18076:32;;18119:13;18135:22;18145:11;18135:5;:9;;:22;;;;:::i;:::-;18119:38;;18193:33;18220:5;18193:7;:22;18209:4;18193:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;18168:7;:22;18184:4;18168:22;;;;;;;;;;;;;;;:58;;;;18023:211;;;:::o;18242:147::-;18320:17;18332:4;18320:7;;:11;;:17;;;;:::i;:::-;18310:7;:27;;;;18361:20;18376:4;18361:10;;:14;;:20;;;;:::i;:::-;18348:10;:33;;;;18242:147;;:::o;19058:578::-;19226:7;19248;19270;19305:15;19332:1;19323:6;:10;:23;;19345:1;19323:23;;;19336:6;19323:23;19305:41;;19357:16;19386:1;19376:7;:11;:25;;19400:1;19376:25;;;19390:7;19376:25;19357:44;;19414:12;19429:29;19454:3;19429:20;19441:7;19429;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;19414:44;;19469:13;19485:30;19511:3;19485:21;19497:8;19485:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;19469:46;;19526:23;19552:28;19574:5;19552:17;19564:4;19552:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;19526:54;;19599:15;19616:4;19622:5;19591:37;;;;;;;;;;;19058:578;;;;;;;:::o;19644:534::-;19838:7;19860;19882;19917:15;19935:24;19947:11;19935:7;:11;;:24;;;;:::i;:::-;19917:42;;19970:12;19985:21;19994:11;19985:4;:8;;:21;;;;:::i;:::-;19970:36;;20017:13;20033:22;20043:11;20033:5;:9;;:22;;;;:::i;:::-;20017:38;;20066:23;20092:28;20114:5;20092:17;20104:4;20092:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;20066:54;;20139:7;20148:15;20165:4;20131:39;;;;;;;;;;19644:534;;;;;;;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:139::-;731:5;769:6;756:20;747:29;;785:33;812:5;785:33;:::i;:::-;737:87;;;;:::o;830:143::-;887:5;918:6;912:13;903:22;;934:33;961:5;934:33;:::i;:::-;893:80;;;;:::o;979:155::-;1033:5;1071:6;1058:20;1049:29;;1087:41;1122:5;1087:41;:::i;:::-;1039:95;;;;:::o;1157:303::-;1228:5;1277:3;1270:4;1262:6;1258:17;1254:27;1244:2;;1295:1;1292;1285:12;1244:2;1335:6;1322:20;1360:94;1450:3;1442:6;1435:4;1427:6;1423:17;1360:94;:::i;:::-;1351:103;;1234:226;;;;;:::o;1466:133::-;1509:5;1547:6;1534:20;1525:29;;1563:30;1587:5;1563:30;:::i;:::-;1515:84;;;;:::o;1605:137::-;1659:5;1690:6;1684:13;1675:22;;1706:30;1730:5;1706:30;:::i;:::-;1665:77;;;;:::o;1748:139::-;1794:5;1832:6;1819:20;1810:29;;1848:33;1875:5;1848:33;:::i;:::-;1800:87;;;;:::o;1893:262::-;1952:6;2001:2;1989:9;1980:7;1976:23;1972:32;1969:2;;;2017:1;2014;2007:12;1969:2;2060:1;2085:53;2130:7;2121:6;2110:9;2106:22;2085:53;:::i;:::-;2075:63;;2031:117;1959:196;;;;:::o;2161:284::-;2231:6;2280:2;2268:9;2259:7;2255:23;2251:32;2248:2;;;2296:1;2293;2286:12;2248:2;2339:1;2364:64;2420:7;2411:6;2400:9;2396:22;2364:64;:::i;:::-;2354:74;;2310:128;2238:207;;;;:::o;2451:278::-;2518:6;2567:2;2555:9;2546:7;2542:23;2538:32;2535:2;;;2583:1;2580;2573:12;2535:2;2626:1;2651:61;2704:7;2695:6;2684:9;2680:22;2651:61;:::i;:::-;2641:71;;2597:125;2525:204;;;;:::o;2735:407::-;2803:6;2811;2860:2;2848:9;2839:7;2835:23;2831:32;2828:2;;;2876:1;2873;2866:12;2828:2;2919:1;2944:53;2989:7;2980:6;2969:9;2965:22;2944:53;:::i;:::-;2934:63;;2890:117;3046:2;3072:53;3117:7;3108:6;3097:9;3093:22;3072:53;:::i;:::-;3062:63;;3017:118;2818:324;;;;;:::o;3148:552::-;3225:6;3233;3241;3290:2;3278:9;3269:7;3265:23;3261:32;3258:2;;;3306:1;3303;3296:12;3258:2;3349:1;3374:53;3419:7;3410:6;3399:9;3395:22;3374:53;:::i;:::-;3364:63;;3320:117;3476:2;3502:53;3547:7;3538:6;3527:9;3523:22;3502:53;:::i;:::-;3492:63;;3447:118;3604:2;3630:53;3675:7;3666:6;3655:9;3651:22;3630:53;:::i;:::-;3620:63;;3575:118;3248:452;;;;;:::o;3706:407::-;3774:6;3782;3831:2;3819:9;3810:7;3806:23;3802:32;3799:2;;;3847:1;3844;3837:12;3799:2;3890:1;3915:53;3960:7;3951:6;3940:9;3936:22;3915:53;:::i;:::-;3905:63;;3861:117;4017:2;4043:53;4088:7;4079:6;4068:9;4064:22;4043:53;:::i;:::-;4033:63;;3988:118;3789:324;;;;;:::o;4119:405::-;4203:6;4252:2;4240:9;4231:7;4227:23;4223:32;4220:2;;;4268:1;4265;4258:12;4220:2;4339:1;4328:9;4324:17;4311:31;4369:18;4361:6;4358:30;4355:2;;;4401:1;4398;4391:12;4355:2;4429:78;4499:7;4490:6;4479:9;4475:22;4429:78;:::i;:::-;4419:88;;4282:235;4210:314;;;;:::o;4530:256::-;4586:6;4635:2;4623:9;4614:7;4610:23;4606:32;4603:2;;;4651:1;4648;4641:12;4603:2;4694:1;4719:50;4761:7;4752:6;4741:9;4737:22;4719:50;:::i;:::-;4709:60;;4665:114;4593:193;;;;:::o;4792:278::-;4859:6;4908:2;4896:9;4887:7;4883:23;4879:32;4876:2;;;4924:1;4921;4914:12;4876:2;4967:1;4992:61;5045:7;5036:6;5025:9;5021:22;4992:61;:::i;:::-;4982:71;;4938:125;4866:204;;;;:::o;5076:262::-;5135:6;5184:2;5172:9;5163:7;5159:23;5155:32;5152:2;;;5200:1;5197;5190:12;5152:2;5243:1;5268:53;5313:7;5304:6;5293:9;5289:22;5268:53;:::i;:::-;5258:63;;5214:117;5142:196;;;;:::o;5344:179::-;5413:10;5434:46;5476:3;5468:6;5434:46;:::i;:::-;5512:4;5507:3;5503:14;5489:28;;5424:99;;;;:::o;5529:108::-;5606:24;5624:5;5606:24;:::i;:::-;5601:3;5594:37;5584:53;;:::o;5643:118::-;5730:24;5748:5;5730:24;:::i;:::-;5725:3;5718:37;5708:53;;:::o;5797:732::-;5916:3;5945:54;5993:5;5945:54;:::i;:::-;6015:86;6094:6;6089:3;6015:86;:::i;:::-;6008:93;;6125:56;6175:5;6125:56;:::i;:::-;6204:7;6235:1;6220:284;6245:6;6242:1;6239:13;6220:284;;;6321:6;6315:13;6348:63;6407:3;6392:13;6348:63;:::i;:::-;6341:70;;6434:60;6487:6;6434:60;:::i;:::-;6424:70;;6280:224;6267:1;6264;6260:9;6255:14;;6220:284;;;6224:14;6520:3;6513:10;;5921:608;;;;;;;:::o;6535:109::-;6616:21;6631:5;6616:21;:::i;:::-;6611:3;6604:34;6594:50;;:::o;6650:147::-;6745:45;6784:5;6745:45;:::i;:::-;6740:3;6733:58;6723:74;;:::o;6803:364::-;6891:3;6919:39;6952:5;6919:39;:::i;:::-;6974:71;7038:6;7033:3;6974:71;:::i;:::-;6967:78;;7054:52;7099:6;7094:3;7087:4;7080:5;7076:16;7054:52;:::i;:::-;7131:29;7153:6;7131:29;:::i;:::-;7126:3;7122:39;7115:46;;6895:272;;;;;:::o;7173:366::-;7315:3;7336:67;7400:2;7395:3;7336:67;:::i;:::-;7329:74;;7412:93;7501:3;7412:93;:::i;:::-;7530:2;7525:3;7521:12;7514:19;;7319:220;;;:::o;7545:366::-;7687:3;7708:67;7772:2;7767:3;7708:67;:::i;:::-;7701:74;;7784:93;7873:3;7784:93;:::i;:::-;7902:2;7897:3;7893:12;7886:19;;7691:220;;;:::o;7917:366::-;8059:3;8080:67;8144:2;8139:3;8080:67;:::i;:::-;8073:74;;8156:93;8245:3;8156:93;:::i;:::-;8274:2;8269:3;8265:12;8258:19;;8063:220;;;:::o;8289:366::-;8431:3;8452:67;8516:2;8511:3;8452:67;:::i;:::-;8445:74;;8528:93;8617:3;8528:93;:::i;:::-;8646:2;8641:3;8637:12;8630:19;;8435:220;;;:::o;8661:366::-;8803:3;8824:67;8888:2;8883:3;8824:67;:::i;:::-;8817:74;;8900:93;8989:3;8900:93;:::i;:::-;9018:2;9013:3;9009:12;9002:19;;8807:220;;;:::o;9033:366::-;9175:3;9196:67;9260:2;9255:3;9196:67;:::i;:::-;9189:74;;9272:93;9361:3;9272:93;:::i;:::-;9390:2;9385:3;9381:12;9374:19;;9179:220;;;:::o;9405:366::-;9547:3;9568:67;9632:2;9627:3;9568:67;:::i;:::-;9561:74;;9644:93;9733:3;9644:93;:::i;:::-;9762:2;9757:3;9753:12;9746:19;;9551:220;;;:::o;9777:366::-;9919:3;9940:67;10004:2;9999:3;9940:67;:::i;:::-;9933:74;;10016:93;10105:3;10016:93;:::i;:::-;10134:2;10129:3;10125:12;10118:19;;9923:220;;;:::o;10149:366::-;10291:3;10312:67;10376:2;10371:3;10312:67;:::i;:::-;10305:74;;10388:93;10477:3;10388:93;:::i;:::-;10506:2;10501:3;10497:12;10490:19;;10295:220;;;:::o;10521:366::-;10663:3;10684:67;10748:2;10743:3;10684:67;:::i;:::-;10677:74;;10760:93;10849:3;10760:93;:::i;:::-;10878:2;10873:3;10869:12;10862:19;;10667:220;;;:::o;10893:366::-;11035:3;11056:67;11120:2;11115:3;11056:67;:::i;:::-;11049:74;;11132:93;11221:3;11132:93;:::i;:::-;11250:2;11245:3;11241:12;11234:19;;11039:220;;;:::o;11265:366::-;11407:3;11428:67;11492:2;11487:3;11428:67;:::i;:::-;11421:74;;11504:93;11593:3;11504:93;:::i;:::-;11622:2;11617:3;11613:12;11606:19;;11411:220;;;:::o;11637:366::-;11779:3;11800:67;11864:2;11859:3;11800:67;:::i;:::-;11793:74;;11876:93;11965:3;11876:93;:::i;:::-;11994:2;11989:3;11985:12;11978:19;;11783:220;;;:::o;12009:366::-;12151:3;12172:67;12236:2;12231:3;12172:67;:::i;:::-;12165:74;;12248:93;12337:3;12248:93;:::i;:::-;12366:2;12361:3;12357:12;12350:19;;12155:220;;;:::o;12381:366::-;12523:3;12544:67;12608:2;12603:3;12544:67;:::i;:::-;12537:74;;12620:93;12709:3;12620:93;:::i;:::-;12738:2;12733:3;12729:12;12722:19;;12527:220;;;:::o;12753:118::-;12840:24;12858:5;12840:24;:::i;:::-;12835:3;12828:37;12818:53;;:::o;12877:112::-;12960:22;12976:5;12960:22;:::i;:::-;12955:3;12948:35;12938:51;;:::o;12995:222::-;13088:4;13126:2;13115:9;13111:18;13103:26;;13139:71;13207:1;13196:9;13192:17;13183:6;13139:71;:::i;:::-;13093:124;;;;:::o;13223:332::-;13344:4;13382:2;13371:9;13367:18;13359:26;;13395:71;13463:1;13452:9;13448:17;13439:6;13395:71;:::i;:::-;13476:72;13544:2;13533:9;13529:18;13520:6;13476:72;:::i;:::-;13349:206;;;;;:::o;13561:210::-;13648:4;13686:2;13675:9;13671:18;13663:26;;13699:65;13761:1;13750:9;13746:17;13737:6;13699:65;:::i;:::-;13653:118;;;;:::o;13777:313::-;13890:4;13928:2;13917:9;13913:18;13905:26;;13977:9;13971:4;13967:20;13963:1;13952:9;13948:17;13941:47;14005:78;14078:4;14069:6;14005:78;:::i;:::-;13997:86;;13895:195;;;;:::o;14096:419::-;14262:4;14300:2;14289:9;14285:18;14277:26;;14349:9;14343:4;14339:20;14335:1;14324:9;14320:17;14313:47;14377:131;14503:4;14377:131;:::i;:::-;14369:139;;14267:248;;;:::o;14521:419::-;14687:4;14725:2;14714:9;14710:18;14702:26;;14774:9;14768:4;14764:20;14760:1;14749:9;14745:17;14738:47;14802:131;14928:4;14802:131;:::i;:::-;14794:139;;14692:248;;;:::o;14946:419::-;15112:4;15150:2;15139:9;15135:18;15127:26;;15199:9;15193:4;15189:20;15185:1;15174:9;15170:17;15163:47;15227:131;15353:4;15227:131;:::i;:::-;15219:139;;15117:248;;;:::o;15371:419::-;15537:4;15575:2;15564:9;15560:18;15552:26;;15624:9;15618:4;15614:20;15610:1;15599:9;15595:17;15588:47;15652:131;15778:4;15652:131;:::i;:::-;15644:139;;15542:248;;;:::o;15796:419::-;15962:4;16000:2;15989:9;15985:18;15977:26;;16049:9;16043:4;16039:20;16035:1;16024:9;16020:17;16013:47;16077:131;16203:4;16077:131;:::i;:::-;16069:139;;15967:248;;;:::o;16221:419::-;16387:4;16425:2;16414:9;16410:18;16402:26;;16474:9;16468:4;16464:20;16460:1;16449:9;16445:17;16438:47;16502:131;16628:4;16502:131;:::i;:::-;16494:139;;16392:248;;;:::o;16646:419::-;16812:4;16850:2;16839:9;16835:18;16827:26;;16899:9;16893:4;16889:20;16885:1;16874:9;16870:17;16863:47;16927:131;17053:4;16927:131;:::i;:::-;16919:139;;16817:248;;;:::o;17071:419::-;17237:4;17275:2;17264:9;17260:18;17252:26;;17324:9;17318:4;17314:20;17310:1;17299:9;17295:17;17288:47;17352:131;17478:4;17352:131;:::i;:::-;17344:139;;17242:248;;;:::o;17496:419::-;17662:4;17700:2;17689:9;17685:18;17677:26;;17749:9;17743:4;17739:20;17735:1;17724:9;17720:17;17713:47;17777:131;17903:4;17777:131;:::i;:::-;17769:139;;17667:248;;;:::o;17921:419::-;18087:4;18125:2;18114:9;18110:18;18102:26;;18174:9;18168:4;18164:20;18160:1;18149:9;18145:17;18138:47;18202:131;18328:4;18202:131;:::i;:::-;18194:139;;18092:248;;;:::o;18346:419::-;18512:4;18550:2;18539:9;18535:18;18527:26;;18599:9;18593:4;18589:20;18585:1;18574:9;18570:17;18563:47;18627:131;18753:4;18627:131;:::i;:::-;18619:139;;18517:248;;;:::o;18771:419::-;18937:4;18975:2;18964:9;18960:18;18952:26;;19024:9;19018:4;19014:20;19010:1;18999:9;18995:17;18988:47;19052:131;19178:4;19052:131;:::i;:::-;19044:139;;18942:248;;;:::o;19196:419::-;19362:4;19400:2;19389:9;19385:18;19377:26;;19449:9;19443:4;19439:20;19435:1;19424:9;19420:17;19413:47;19477:131;19603:4;19477:131;:::i;:::-;19469:139;;19367:248;;;:::o;19621:419::-;19787:4;19825:2;19814:9;19810:18;19802:26;;19874:9;19868:4;19864:20;19860:1;19849:9;19845:17;19838:47;19902:131;20028:4;19902:131;:::i;:::-;19894:139;;19792:248;;;:::o;20046:419::-;20212:4;20250:2;20239:9;20235:18;20227:26;;20299:9;20293:4;20289:20;20285:1;20274:9;20270:17;20263:47;20327:131;20453:4;20327:131;:::i;:::-;20319:139;;20217:248;;;:::o;20471:222::-;20564:4;20602:2;20591:9;20587:18;20579:26;;20615:71;20683:1;20672:9;20668:17;20659:6;20615:71;:::i;:::-;20569:124;;;;:::o;20699:831::-;20962:4;21000:3;20989:9;20985:19;20977:27;;21014:71;21082:1;21071:9;21067:17;21058:6;21014:71;:::i;:::-;21095:80;21171:2;21160:9;21156:18;21147:6;21095:80;:::i;:::-;21222:9;21216:4;21212:20;21207:2;21196:9;21192:18;21185:48;21250:108;21353:4;21344:6;21250:108;:::i;:::-;21242:116;;21368:72;21436:2;21425:9;21421:18;21412:6;21368:72;:::i;:::-;21450:73;21518:3;21507:9;21503:19;21494:6;21450:73;:::i;:::-;20967:563;;;;;;;;:::o;21536:214::-;21625:4;21663:2;21652:9;21648:18;21640:26;;21676:67;21740:1;21729:9;21725:17;21716:6;21676:67;:::i;:::-;21630:120;;;;:::o;21756:129::-;21790:6;21817:20;;:::i;:::-;21807:30;;21846:33;21874:4;21866:6;21846:33;:::i;:::-;21797:88;;;:::o;21891:75::-;21924:6;21957:2;21951:9;21941:19;;21931:35;:::o;21972:311::-;22049:4;22139:18;22131:6;22128:30;22125:2;;;22161:18;;:::i;:::-;22125:2;22211:4;22203:6;22199:17;22191:25;;22271:4;22265;22261:15;22253:23;;22054:229;;;:::o;22289:132::-;22356:4;22379:3;22371:11;;22409:4;22404:3;22400:14;22392:22;;22361:60;;;:::o;22427:114::-;22494:6;22528:5;22522:12;22512:22;;22501:40;;;:::o;22547:99::-;22599:6;22633:5;22627:12;22617:22;;22606:40;;;:::o;22652:113::-;22722:4;22754;22749:3;22745:14;22737:22;;22727:38;;;:::o;22771:184::-;22870:11;22904:6;22899:3;22892:19;22944:4;22939:3;22935:14;22920:29;;22882:73;;;;:::o;22961:169::-;23045:11;23079:6;23074:3;23067:19;23119:4;23114:3;23110:14;23095:29;;23057:73;;;;:::o;23136:305::-;23176:3;23195:20;23213:1;23195:20;:::i;:::-;23190:25;;23229:20;23247:1;23229:20;:::i;:::-;23224:25;;23383:1;23315:66;23311:74;23308:1;23305:81;23302:2;;;23389:18;;:::i;:::-;23302:2;23433:1;23430;23426:9;23419:16;;23180:261;;;;:::o;23447:185::-;23487:1;23504:20;23522:1;23504:20;:::i;:::-;23499:25;;23538:20;23556:1;23538:20;:::i;:::-;23533:25;;23577:1;23567:2;;23582:18;;:::i;:::-;23567:2;23624:1;23621;23617:9;23612:14;;23489:143;;;;:::o;23638:348::-;23678:7;23701:20;23719:1;23701:20;:::i;:::-;23696:25;;23735:20;23753:1;23735:20;:::i;:::-;23730:25;;23923:1;23855:66;23851:74;23848:1;23845:81;23840:1;23833:9;23826:17;23822:105;23819:2;;;23930:18;;:::i;:::-;23819:2;23978:1;23975;23971:9;23960:20;;23686:300;;;;:::o;23992:191::-;24032:4;24052:20;24070:1;24052:20;:::i;:::-;24047:25;;24086:20;24104:1;24086:20;:::i;:::-;24081:25;;24125:1;24122;24119:8;24116:2;;;24130:18;;:::i;:::-;24116:2;24175:1;24172;24168:9;24160:17;;24037:146;;;;:::o;24189:96::-;24226:7;24255:24;24273:5;24255:24;:::i;:::-;24244:35;;24234:51;;;:::o;24291:104::-;24336:7;24365:24;24383:5;24365:24;:::i;:::-;24354:35;;24344:51;;;:::o;24401:90::-;24435:7;24478:5;24471:13;24464:21;24453:32;;24443:48;;;:::o;24497:126::-;24534:7;24574:42;24567:5;24563:54;24552:65;;24542:81;;;:::o;24629:77::-;24666:7;24695:5;24684:16;;24674:32;;;:::o;24712:86::-;24747:7;24787:4;24780:5;24776:16;24765:27;;24755:43;;;:::o;24804:121::-;24862:9;24895:24;24913:5;24895:24;:::i;:::-;24882:37;;24872:53;;;:::o;24931:307::-;24999:1;25009:113;25023:6;25020:1;25017:13;25009:113;;;25108:1;25103:3;25099:11;25093:18;25089:1;25084:3;25080:11;25073:39;25045:2;25042:1;25038:10;25033:15;;25009:113;;;25140:6;25137:1;25134:13;25131:2;;;25220:1;25211:6;25206:3;25202:16;25195:27;25131:2;24980:258;;;;:::o;25244:281::-;25327:27;25349:4;25327:27;:::i;:::-;25319:6;25315:40;25457:6;25445:10;25442:22;25421:18;25409:10;25406:34;25403:62;25400:2;;;25468:18;;:::i;:::-;25400:2;25508:10;25504:2;25497:22;25287:238;;;:::o;25531:233::-;25570:3;25593:24;25611:5;25593:24;:::i;:::-;25584:33;;25639:66;25632:5;25629:77;25626:2;;;25709:18;;:::i;:::-;25626:2;25756:1;25749:5;25745:13;25738:20;;25574:190;;;:::o;25770:180::-;25818:77;25815:1;25808:88;25915:4;25912:1;25905:15;25939:4;25936:1;25929:15;25956:180;26004:77;26001:1;25994:88;26101:4;26098:1;26091:15;26125:4;26122:1;26115:15;26142:180;26190:77;26187:1;26180:88;26287:4;26284:1;26277:15;26311:4;26308:1;26301:15;26328:102;26369:6;26420:2;26416:7;26411:2;26404:5;26400:14;26396:28;26386:38;;26376:54;;;:::o;26436:222::-;26576:34;26572:1;26564:6;26560:14;26553:58;26645:5;26640:2;26632:6;26628:15;26621:30;26542:116;:::o;26664:229::-;26804:34;26800:1;26792:6;26788:14;26781:58;26873:12;26868:2;26860:6;26856:15;26849:37;26770:123;:::o;26899:225::-;27039:34;27035:1;27027:6;27023:14;27016:58;27108:8;27103:2;27095:6;27091:15;27084:33;27005:119;:::o;27130:221::-;27270:34;27266:1;27258:6;27254:14;27247:58;27339:4;27334:2;27326:6;27322:15;27315:29;27236:115;:::o;27357:163::-;27497:15;27493:1;27485:6;27481:14;27474:39;27463:57;:::o;27526:177::-;27666:29;27662:1;27654:6;27650:14;27643:53;27632:71;:::o;27709:177::-;27849:29;27845:1;27837:6;27833:14;27826:53;27815:71;:::o;27892:179::-;28032:31;28028:1;28020:6;28016:14;28009:55;27998:73;:::o;28077:220::-;28217:34;28213:1;28205:6;28201:14;28194:58;28286:3;28281:2;28273:6;28269:15;28262:28;28183:114;:::o;28303:182::-;28443:34;28439:1;28431:6;28427:14;28420:58;28409:76;:::o;28491:228::-;28631:34;28627:1;28619:6;28615:14;28608:58;28700:11;28695:2;28687:6;28683:15;28676:36;28597:122;:::o;28725:224::-;28865:34;28861:1;28853:6;28849:14;28842:58;28934:7;28929:2;28921:6;28917:15;28910:32;28831:118;:::o;28955:223::-;29095:34;29091:1;29083:6;29079:14;29072:58;29164:6;29159:2;29151:6;29147:15;29140:31;29061:117;:::o;29184:173::-;29324:25;29320:1;29312:6;29308:14;29301:49;29290:67;:::o;29363:167::-;29503:19;29499:1;29491:6;29487:14;29480:43;29469:61;:::o;29536:122::-;29609:24;29627:5;29609:24;:::i;:::-;29602:5;29599:35;29589:2;;29648:1;29645;29638:12;29589:2;29579:79;:::o;29664:138::-;29745:32;29771:5;29745:32;:::i;:::-;29738:5;29735:43;29725:2;;29792:1;29789;29782:12;29725:2;29715:87;:::o;29808:116::-;29878:21;29893:5;29878:21;:::i;:::-;29871:5;29868:32;29858:2;;29914:1;29911;29904:12;29858:2;29848:76;:::o;29930:122::-;30003:24;30021:5;30003:24;:::i;:::-;29996:5;29993:35;29983:2;;30042:1;30039;30032:12;29983:2;29973:79;:::o
Swarm Source
ipfs://e7aa3333886d73dc351eca11aa24f7abbdf962ef9de3f54dbebaee4b4ec4956b
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.