ERC-20
Overview
Max Total Supply
1,000,000,000,000 UwU
Holders
172
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
1,273,697,495.641211707 UwUValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
KoinKanna
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-04-10 */ /** */ /** //SPDX-License-Identifier: UNLICENSED Koin kanna ($Kanna) Official Links: Telegram: https://t.me/KannaKoin_Official Website: https://www.koinkanna.com/ - Ravioli, ravioli, don't lewd the dragon loli ⠀⠀⠀⣿⣿⡆⠀⠀⢸⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⡇⠀⠀⣾⣿⡆⠀ ⠀⠀⠀⣿⣿⡇⠀⠀⢸⣿⢰⣿⡆⠀⣾⣿⡆⠀⣾⣷ ⣿⣿⡇⠀⠀⣿⣿⡇⠀ ⠀⠀⠀⣿⣿⡇⠀⠀⢸⣿⠘⣿⣿⣤⣿⣿⣿⣤⣿⡇⢻⣿⡇⠀⠀⣿⣿⡇⠀ ⠀⠀⠀⣿⣿⡇⠀⠀⢸⡿⠀⢹⣿⣿⣿⣿⣿⣿⣿⠁⢸⣿⣇⠀⢀⣿⣿⠇⠀ ⠀⠀⠀⠙⢿⣷⣶⣶⡿⠁⠀⠈⣿⣿⠟⠀⣿⣿⠇⠀⠈⠻⣿⣶⣾⡿⠋⠀⠀ ⡿⠋⠄⣀⣀⣤⣴⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣌⠻⣿⣿ ⣴⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⠹⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠹ ⣿⣿⡟⢹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡛⢿⣿⣿⣿⣮⠛⣿⣿⣿⣿⣿⣿⡆ ⡟⢻⡇⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣣⠄⡀⢬⣭⣻⣷⡌⢿⣿⣿⣿⣿⣿ ⠃⣸⡀⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠈⣆⢹⣿⣿⣿⡈⢿⣿⣿⣿⣿ ⠄⢻⡇⠄⢛⣛⣻⣿⣿⣿⣿⣿⣿⣿⣿⡆⠹⣿⣆⠸⣆⠙⠛⠛⠃⠘⣿⣿⣿⣿ ⠄⠸⣡⠄⡈⣿⣿⣿⣿⣿⣿⣿⣿⠿⠟⠁⣠⣉⣤⣴⣿⣿⠿⠿⠿⡇⢸⣿⣿⣿ ⠄⡄⢿⣆⠰⡘⢿⣿⠿⢛⣉⣥⣴⣶⣿⣿⣿⣿⣻⠟⣉⣤⣶⣶⣾⣿⡄⣿⡿⢸ ⠄⢰⠸⣿⠄⢳⣠⣤⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⣼⣿⣿⣿⣿⣿⣿⡇⢻⡇⢸ ⢷⡈⢣⣡⣶⠿⠟⠛⠓⣚⣻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⢸⠇⠘ ⡀⣌⠄⠻⣧⣴⣾⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠛⠛⠛⢿⣿⣿⣿⣿⣿⡟⠘⠄⠄ ⣷⡘⣷⡀⠘⣿⣿⣿⣿⣿⣿⣿⣿⡋⢀⣠⣤⣶⣶⣾⡆⣿⣿⣿⠟⠁⠄⠄⠄⠄ ⣿⣷⡘⣿⡀⢻⣿⣿⣿⣿⣿⣿⣿⣧⠸⣿⣿⣿⣿⣿⣷⡿⠟⠉⠄⠄⠄⠄⡄⢀ ⣿⣿⣷⡈⢷⡀⠙⠛⠻⠿⠿⠿⠿⠿⠷⠾⠿⠟⣛⣋⣥⣶⣄⠄⢀⣄⠹⣦⢹⣿ */ 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); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract KoinKanna is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _rOwned; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public isExcludedFromFee; mapping (address => bool) public isExcludedFromLimit; mapping (address => bool) private bots; mapping (address => uint) private cooldown; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1_000_000_000_000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 public swapThreshold = 100_000_000 * 10**9; uint256 private _reflectionFee = 0; uint256 private _teamFee = 11; address payable private _feeAddrWallet1; address payable private _feeAddrWallet2; string private constant _name = "KoinKanna"; string private constant _symbol = "UwU"; uint8 private constant _decimals = 9; IUniswapV2Router02 private uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap; bool private swapEnabled; bool private cooldownEnabled; uint256 private _maxTxAmount = 30_000_000_000 * 10**9; uint256 private _maxWalletAmount = 30_000_000_000 * 10**9; modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor (address wallet1, address wallet2) { _feeAddrWallet1 = payable(wallet1); _feeAddrWallet2 = payable(wallet2); _rOwned[_msgSender()] = _rTotal; isExcludedFromFee[owner()] = true; isExcludedFromFee[address(this)] = true; isExcludedFromFee[_feeAddrWallet1] = true; isExcludedFromFee[_feeAddrWallet2] = true; isExcludedFromLimit[owner()] = true; isExcludedFromLimit[address(this)] = true; isExcludedFromLimit[address(0xdead)] = true; isExcludedFromLimit[_feeAddrWallet1] = true; isExcludedFromLimit[_feeAddrWallet2] = true; emit Transfer(address(this), _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 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 _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(balanceOf(from) >= amount, "ERC20: transfer amount exceeds balance"); if (from != owner() && to != owner()) { require(!bots[from] && !bots[to]); if (!isExcludedFromLimit[from] || (from == uniswapV2Pair && !isExcludedFromLimit[to])) { require(amount <= _maxTxAmount, "Anti-whale: Transfer amount exceeds max limit"); } if (!isExcludedFromLimit[to]) { require(balanceOf(to) + amount <= _maxWalletAmount, "Anti-whale: Wallet amount exceeds max limit"); } if (from == uniswapV2Pair && to != address(uniswapV2Router) && !isExcludedFromFee[to] && cooldownEnabled) { // Cooldown require(cooldown[to] < block.timestamp); cooldown[to] = block.timestamp + (60 seconds); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance >= swapThreshold) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } _tokenTransfer(from,to,amount); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _feeAddrWallet1.transfer(amount.div(2)); _feeAddrWallet2.transfer(amount.div(2)); } function openTrading() external onlyOwner() { require(!tradingOpen, "trading is already open"); IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); isExcludedFromLimit[address(uniswapV2Router)] = true; isExcludedFromLimit[uniswapV2Pair] = true; uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); swapEnabled = true; cooldownEnabled = true; tradingOpen = true; IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); } function changeMaxTxAmount(uint256 amount) public onlyOwner { _maxTxAmount = amount; } function changeMaxWalletAmount(uint256 amount) public onlyOwner { _maxWalletAmount = amount; } function changeSwapThreshold(uint256 amount) public onlyOwner { swapThreshold = amount; } function excludeFromFees(address account, bool excluded) public onlyOwner { isExcludedFromFee[account] = excluded; } function excludeFromLimits(address account, bool excluded) public onlyOwner { isExcludedFromLimit[account] = excluded; } function setBots(address[] memory bots_) public onlyOwner { for (uint i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function delBot(address notbot) public onlyOwner { bots[notbot] = false; } function _tokenTransfer(address sender, address recipient, uint256 amount) private { _transferStandard(sender, recipient, amount); } function _transferStandard(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rReflect, uint256 tTransferAmount, uint256 tReflect, uint256 tTeam) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); if (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) { _rOwned[recipient] = _rOwned[recipient].add(rAmount); emit Transfer(sender, recipient, tAmount); } else { _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rReflect, tReflect); 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 manualSwap() external { require(_msgSender() == _feeAddrWallet1); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualSend() external { require(_msgSender() == _feeAddrWallet1); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) { (uint256 tTransferAmount, uint256 tReflect, uint256 tTeam) = _getTValues(tAmount, _reflectionFee, _teamFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rReflect) = _getRValues(tAmount, tReflect, tTeam, currentRate); return (rAmount, rTransferAmount, rReflect, tTransferAmount, tReflect, tTeam); } function _getTValues(uint256 tAmount, uint256 reflectFee, uint256 teamFee) private pure returns (uint256, uint256, uint256) { uint256 tReflect = tAmount.mul(reflectFee).div(100); uint256 tTeam = tAmount.mul(teamFee).div(100); uint256 tTransferAmount = tAmount.sub(tReflect).sub(tTeam); return (tTransferAmount, tReflect, tTeam); } function _getRValues(uint256 tAmount, uint256 tReflect, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) { uint256 rAmount = tAmount.mul(currentRate); uint256 rReflect = tReflect.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rReflect).sub(rTeam); return (rAmount, rTransferAmount, rReflect); } 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); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"wallet1","type":"address"},{"internalType":"address","name":"wallet2","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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"changeMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"changeMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"changeSwapThreshold","outputs":[],"stateMutability":"nonpayable","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"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"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":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052683635c9adc5dea000006000196200001d919062000790565b6000196200002c919062000717565b60095567016345785d8a0000600b556000600c55600b600d556801a055690d9db800006012556801a055690d9db800006013553480156200006c57600080fd5b50604051620046fc380380620046fc8339818101604052810190620000929190620006a8565b6000620000a46200066060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060095460026000620001db6200066060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600560006200022f6200066860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000620003e26200066860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016006600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620005e96200066060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620006509190620006fa565b60405180910390a3505062000840565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050620006a28162000826565b92915050565b60008060408385031215620006bc57600080fd5b6000620006cc8582860162000691565b9250506020620006df8582860162000691565b9150509250929050565b620006f48162000786565b82525050565b6000602082019050620007116000830184620006e9565b92915050565b6000620007248262000786565b9150620007318362000786565b925082821015620007475762000746620007c8565b5b828203905092915050565b60006200075f8262000766565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006200079d8262000786565b9150620007aa8362000786565b925082620007bd57620007bc620007f7565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b620008318162000752565b81146200083d57600080fd5b50565b613eac80620008506000396000f3fe6080604052600436106101855760003560e01c8063715018a6116100d1578063b515566a1161008a578063c9567bf911610064578063c9567bf914610565578063d94160e01461057c578063dd62ed3e146105b9578063f4293890146105f65761018c565b8063b515566a146104ea578063c024666814610513578063c0a904a21461053c5761018c565b8063715018a6146103ee57806381bfdcca1461040557806389f425e71461042e5780638da5cb5b1461045757806395d89b4114610482578063a9059cbb146104ad5761018c565b8063313ce5671161013e5780635342acb4116101185780635342acb4146103225780635932ead11461035f578063677daa571461038857806370a08231146103b15761018c565b8063313ce567146102b557806349bd5a5e146102e057806351bc3c851461030b5761018c565b80630445b6671461019157806306fdde03146101bc578063095ea7b3146101e757806318160ddd1461022457806323b872dd1461024f578063273123b71461028c5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a661060d565b6040516101b391906136ca565b60405180910390f35b3480156101c857600080fd5b506101d1610613565b6040516101de9190613528565b60405180910390f35b3480156101f357600080fd5b5061020e6004803603810190610209919061304b565b610650565b60405161021b919061350d565b60405180910390f35b34801561023057600080fd5b5061023961066e565b60405161024691906136ca565b60405180910390f35b34801561025b57600080fd5b5061027660048036038101906102719190612fc0565b61067f565b604051610283919061350d565b60405180910390f35b34801561029857600080fd5b506102b360048036038101906102ae9190612f32565b610758565b005b3480156102c157600080fd5b506102ca610848565b6040516102d7919061373f565b60405180910390f35b3480156102ec57600080fd5b506102f5610851565b604051610302919061343f565b60405180910390f35b34801561031757600080fd5b50610320610877565b005b34801561032e57600080fd5b5061034960048036038101906103449190612f32565b6108f1565b604051610356919061350d565b60405180910390f35b34801561036b57600080fd5b50610386600480360381019061038191906130c8565b610911565b005b34801561039457600080fd5b506103af60048036038101906103aa919061311a565b6109c3565b005b3480156103bd57600080fd5b506103d860048036038101906103d39190612f32565b610a62565b6040516103e591906136ca565b60405180910390f35b3480156103fa57600080fd5b50610403610ab3565b005b34801561041157600080fd5b5061042c6004803603810190610427919061311a565b610c06565b005b34801561043a57600080fd5b506104556004803603810190610450919061311a565b610ca5565b005b34801561046357600080fd5b5061046c610d44565b604051610479919061343f565b60405180910390f35b34801561048e57600080fd5b50610497610d6d565b6040516104a49190613528565b60405180910390f35b3480156104b957600080fd5b506104d460048036038101906104cf919061304b565b610daa565b6040516104e1919061350d565b60405180910390f35b3480156104f657600080fd5b50610511600480360381019061050c9190613087565b610dc8565b005b34801561051f57600080fd5b5061053a6004803603810190610535919061300f565b610f18565b005b34801561054857600080fd5b50610563600480360381019061055e919061300f565b611008565b005b34801561057157600080fd5b5061057a6110f8565b005b34801561058857600080fd5b506105a3600480360381019061059e9190612f32565b611739565b6040516105b0919061350d565b60405180910390f35b3480156105c557600080fd5b506105e060048036038101906105db9190612f84565b611759565b6040516105ed91906136ca565b60405180910390f35b34801561060257600080fd5b5061060b6117e0565b005b600b5481565b60606040518060400160405280600981526020017f4b6f696e4b616e6e610000000000000000000000000000000000000000000000815250905090565b600061066461065d611852565b848461185a565b6001905092915050565b6000683635c9adc5dea00000905090565b600061068c848484611a25565b61074d84610698611852565b61074885604051806060016040528060288152602001613e4f60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106fe611852565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120fb9092919063ffffffff16565b61185a565b600190509392505050565b610760611852565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e49061364a565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108b8611852565b73ffffffffffffffffffffffffffffffffffffffff16146108d857600080fd5b60006108e330610a62565b90506108ee8161215f565b50565b60056020528060005260406000206000915054906101000a900460ff1681565b610919611852565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099d9061364a565b60405180910390fd5b80601160176101000a81548160ff02191690831515021790555050565b6109cb611852565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4f9061364a565b60405180910390fd5b8060128190555050565b6000610aac600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612459565b9050919050565b610abb611852565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3f9061364a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610c0e611852565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c929061364a565b60405180910390fd5b8060138190555050565b610cad611852565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d319061364a565b60405180910390fd5b80600b8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f5577550000000000000000000000000000000000000000000000000000000000815250905090565b6000610dbe610db7611852565b8484611a25565b6001905092915050565b610dd0611852565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e549061364a565b60405180910390fd5b60005b8151811015610f1457600160076000848481518110610ea8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f0c906139e0565b915050610e60565b5050565b610f20611852565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa49061364a565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611010611852565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461109d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110949061364a565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611100611852565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461118d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111849061364a565b60405180910390fd5b601160149054906101000a900460ff16156111dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d4906136aa565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061126d30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea0000061185a565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156112b357600080fd5b505afa1580156112c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112eb9190612f5b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561134d57600080fd5b505afa158015611361573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113859190612f5b565b6040518363ffffffff1660e01b81526004016113a292919061345a565b602060405180830381600087803b1580156113bc57600080fd5b505af11580156113d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f49190612f5b565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160066000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061157130610a62565b60008061157c610d44565b426040518863ffffffff1660e01b815260040161159e969594939291906134ac565b6060604051808303818588803b1580156115b757600080fd5b505af11580156115cb573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115f09190613143565b5050506001601160166101000a81548160ff0219169083151502179055506001601160176101000a81548160ff0219169083151502179055506001601160146101000a81548160ff021916908315150217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016116e3929190613483565b602060405180830381600087803b1580156116fd57600080fd5b505af1158015611711573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173591906130f1565b5050565b60066020528060005260406000206000915054906101000a900460ff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611821611852565b73ffffffffffffffffffffffffffffffffffffffff161461184157600080fd5b600047905061184f816124c7565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c19061368a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561193a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119319061358a565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a1891906136ca565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8c9061366a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afc9061354a565b60405180910390fd5b80611b0f84610a62565b1015611b50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b47906135ca565b60405180910390fd5b611b58610d44565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611bc65750611b96610d44565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156120eb57600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611c6f5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611c7857600080fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580611d745750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d735750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b5b15611dbf57601254811115611dbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db59061360a565b60405180910390fd5b5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611e695760135481611e1d84610a62565b611e279190613800565b1115611e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5f906135ea565b60405180910390fd5b5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611f145750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f6a5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f825750601160179054906101000a900460ff165b156120235742600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611fd257600080fd5b603c42611fdf9190613800565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600061202e30610a62565b9050601160159054906101000a900460ff1615801561209b5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156120b35750601160169054906101000a900460ff165b80156120c15750600b548110155b156120e9576120cf8161215f565b600047905060008111156120e7576120e6476124c7565b5b505b505b6120f68383836125c2565b505050565b6000838311158290612143576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213a9190613528565b60405180910390fd5b506000838561215291906138e1565b9050809150509392505050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156121bd577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156121eb5781602001602082028036833780820191505090505b5090503081600081518110612229577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156122cb57600080fd5b505afa1580156122df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123039190612f5b565b8160018151811061233d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123a430601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461185a565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016124089594939291906136e5565b600060405180830381600087803b15801561242257600080fd5b505af1158015612436573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b60006009548211156124a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124979061356a565b60405180910390fd5b60006124aa6125d2565b90506124bf81846125fd90919063ffffffff16565b915050919050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6125176002846125fd90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612542573d6000803e3d6000fd5b50600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6125936002846125fd90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156125be573d6000803e3d6000fd5b5050565b6125cd838383612647565b505050565b60008060006125df6129b8565b915091506125f681836125fd90919063ffffffff16565b9250505090565b600061263f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a1a565b905092915050565b60008060008060008061265987612a7d565b9550955095509550955095506126b786600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ae590919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061279b5750600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561289f576127f286600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b2f90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8960405161289291906136ca565b60405180910390a36129ad565b6128f185600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b2f90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061293d81612b8d565b6129478483612c4a565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516129a491906136ca565b60405180910390a35b505050505050505050565b600080600060095490506000683635c9adc5dea0000090506129ee683635c9adc5dea000006009546125fd90919063ffffffff16565b821015612a0d57600954683635c9adc5dea00000935093505050612a16565b81819350935050505b9091565b60008083118290612a61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a589190613528565b60405180910390fd5b5060008385612a709190613856565b9050809150509392505050565b6000806000806000806000806000612a9a8a600c54600d54612c84565b9250925092506000612aaa6125d2565b90506000806000612abd8e878787612d1a565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612b2783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120fb565b905092915050565b6000808284612b3e9190613800565b905083811015612b83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7a906135aa565b60405180910390fd5b8091505092915050565b6000612b976125d2565b90506000612bae8284612da390919063ffffffff16565b9050612c0281600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b2f90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612c5f82600954612ae590919063ffffffff16565b600981905550612c7a81600a54612b2f90919063ffffffff16565b600a819055505050565b600080600080612cb06064612ca2888a612da390919063ffffffff16565b6125fd90919063ffffffff16565b90506000612cda6064612ccc888b612da390919063ffffffff16565b6125fd90919063ffffffff16565b90506000612d0382612cf5858c612ae590919063ffffffff16565b612ae590919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612d338589612da390919063ffffffff16565b90506000612d4a8689612da390919063ffffffff16565b90506000612d618789612da390919063ffffffff16565b90506000612d8a82612d7c8587612ae590919063ffffffff16565b612ae590919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612db65760009050612e18565b60008284612dc49190613887565b9050828482612dd39190613856565b14612e13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e0a9061362a565b60405180910390fd5b809150505b92915050565b6000612e31612e2c8461377f565b61375a565b90508083825260208201905082856020860282011115612e5057600080fd5b60005b85811015612e805781612e668882612e8a565b845260208401935060208301925050600181019050612e53565b5050509392505050565b600081359050612e9981613e09565b92915050565b600081519050612eae81613e09565b92915050565b600082601f830112612ec557600080fd5b8135612ed5848260208601612e1e565b91505092915050565b600081359050612eed81613e20565b92915050565b600081519050612f0281613e20565b92915050565b600081359050612f1781613e37565b92915050565b600081519050612f2c81613e37565b92915050565b600060208284031215612f4457600080fd5b6000612f5284828501612e8a565b91505092915050565b600060208284031215612f6d57600080fd5b6000612f7b84828501612e9f565b91505092915050565b60008060408385031215612f9757600080fd5b6000612fa585828601612e8a565b9250506020612fb685828601612e8a565b9150509250929050565b600080600060608486031215612fd557600080fd5b6000612fe386828701612e8a565b9350506020612ff486828701612e8a565b925050604061300586828701612f08565b9150509250925092565b6000806040838503121561302257600080fd5b600061303085828601612e8a565b925050602061304185828601612ede565b9150509250929050565b6000806040838503121561305e57600080fd5b600061306c85828601612e8a565b925050602061307d85828601612f08565b9150509250929050565b60006020828403121561309957600080fd5b600082013567ffffffffffffffff8111156130b357600080fd5b6130bf84828501612eb4565b91505092915050565b6000602082840312156130da57600080fd5b60006130e884828501612ede565b91505092915050565b60006020828403121561310357600080fd5b600061311184828501612ef3565b91505092915050565b60006020828403121561312c57600080fd5b600061313a84828501612f08565b91505092915050565b60008060006060848603121561315857600080fd5b600061316686828701612f1d565b935050602061317786828701612f1d565b925050604061318886828701612f1d565b9150509250925092565b600061319e83836131aa565b60208301905092915050565b6131b381613915565b82525050565b6131c281613915565b82525050565b60006131d3826137bb565b6131dd81856137de565b93506131e8836137ab565b8060005b838110156132195781516132008882613192565b975061320b836137d1565b9250506001810190506131ec565b5085935050505092915050565b61322f81613927565b82525050565b61323e8161396a565b82525050565b600061324f826137c6565b61325981856137ef565b935061326981856020860161397c565b61327281613ab6565b840191505092915050565b600061328a6023836137ef565b915061329582613ac7565b604082019050919050565b60006132ad602a836137ef565b91506132b882613b16565b604082019050919050565b60006132d06022836137ef565b91506132db82613b65565b604082019050919050565b60006132f3601b836137ef565b91506132fe82613bb4565b602082019050919050565b60006133166026836137ef565b915061332182613bdd565b604082019050919050565b6000613339602b836137ef565b915061334482613c2c565b604082019050919050565b600061335c602d836137ef565b915061336782613c7b565b604082019050919050565b600061337f6021836137ef565b915061338a82613cca565b604082019050919050565b60006133a26020836137ef565b91506133ad82613d19565b602082019050919050565b60006133c56025836137ef565b91506133d082613d42565b604082019050919050565b60006133e86024836137ef565b91506133f382613d91565b604082019050919050565b600061340b6017836137ef565b915061341682613de0565b602082019050919050565b61342a81613953565b82525050565b6134398161395d565b82525050565b600060208201905061345460008301846131b9565b92915050565b600060408201905061346f60008301856131b9565b61347c60208301846131b9565b9392505050565b600060408201905061349860008301856131b9565b6134a56020830184613421565b9392505050565b600060c0820190506134c160008301896131b9565b6134ce6020830188613421565b6134db6040830187613235565b6134e86060830186613235565b6134f560808301856131b9565b61350260a0830184613421565b979650505050505050565b60006020820190506135226000830184613226565b92915050565b600060208201905081810360008301526135428184613244565b905092915050565b600060208201905081810360008301526135638161327d565b9050919050565b60006020820190508181036000830152613583816132a0565b9050919050565b600060208201905081810360008301526135a3816132c3565b9050919050565b600060208201905081810360008301526135c3816132e6565b9050919050565b600060208201905081810360008301526135e381613309565b9050919050565b600060208201905081810360008301526136038161332c565b9050919050565b600060208201905081810360008301526136238161334f565b9050919050565b6000602082019050818103600083015261364381613372565b9050919050565b6000602082019050818103600083015261366381613395565b9050919050565b60006020820190508181036000830152613683816133b8565b9050919050565b600060208201905081810360008301526136a3816133db565b9050919050565b600060208201905081810360008301526136c3816133fe565b9050919050565b60006020820190506136df6000830184613421565b92915050565b600060a0820190506136fa6000830188613421565b6137076020830187613235565b818103604083015261371981866131c8565b905061372860608301856131b9565b6137356080830184613421565b9695505050505050565b60006020820190506137546000830184613430565b92915050565b6000613764613775565b905061377082826139af565b919050565b6000604051905090565b600067ffffffffffffffff82111561379a57613799613a87565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061380b82613953565b915061381683613953565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561384b5761384a613a29565b5b828201905092915050565b600061386182613953565b915061386c83613953565b92508261387c5761387b613a58565b5b828204905092915050565b600061389282613953565b915061389d83613953565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156138d6576138d5613a29565b5b828202905092915050565b60006138ec82613953565b91506138f783613953565b92508282101561390a57613909613a29565b5b828203905092915050565b600061392082613933565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061397582613953565b9050919050565b60005b8381101561399a57808201518184015260208101905061397f565b838111156139a9576000848401525b50505050565b6139b882613ab6565b810181811067ffffffffffffffff821117156139d7576139d6613a87565b5b80604052505050565b60006139eb82613953565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613a1e57613a1d613a29565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f416e74692d7768616c653a2057616c6c657420616d6f756e742065786365656460008201527f73206d6178206c696d6974000000000000000000000000000000000000000000602082015250565b7f416e74692d7768616c653a205472616e7366657220616d6f756e74206578636560008201527f656473206d6178206c696d697400000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b613e1281613915565b8114613e1d57600080fd5b50565b613e2981613927565b8114613e3457600080fd5b50565b613e4081613953565b8114613e4b57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122038c398a06618068a63afc903777111691378be5c13643b02be4b8e72c8977ec664736f6c63430008040033000000000000000000000000e555190e117821cad865e97724ca2fd39ac14ef5000000000000000000000000439d5bfb857f311537c589e391302a1bfafe73cb
Deployed Bytecode
0x6080604052600436106101855760003560e01c8063715018a6116100d1578063b515566a1161008a578063c9567bf911610064578063c9567bf914610565578063d94160e01461057c578063dd62ed3e146105b9578063f4293890146105f65761018c565b8063b515566a146104ea578063c024666814610513578063c0a904a21461053c5761018c565b8063715018a6146103ee57806381bfdcca1461040557806389f425e71461042e5780638da5cb5b1461045757806395d89b4114610482578063a9059cbb146104ad5761018c565b8063313ce5671161013e5780635342acb4116101185780635342acb4146103225780635932ead11461035f578063677daa571461038857806370a08231146103b15761018c565b8063313ce567146102b557806349bd5a5e146102e057806351bc3c851461030b5761018c565b80630445b6671461019157806306fdde03146101bc578063095ea7b3146101e757806318160ddd1461022457806323b872dd1461024f578063273123b71461028c5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a661060d565b6040516101b391906136ca565b60405180910390f35b3480156101c857600080fd5b506101d1610613565b6040516101de9190613528565b60405180910390f35b3480156101f357600080fd5b5061020e6004803603810190610209919061304b565b610650565b60405161021b919061350d565b60405180910390f35b34801561023057600080fd5b5061023961066e565b60405161024691906136ca565b60405180910390f35b34801561025b57600080fd5b5061027660048036038101906102719190612fc0565b61067f565b604051610283919061350d565b60405180910390f35b34801561029857600080fd5b506102b360048036038101906102ae9190612f32565b610758565b005b3480156102c157600080fd5b506102ca610848565b6040516102d7919061373f565b60405180910390f35b3480156102ec57600080fd5b506102f5610851565b604051610302919061343f565b60405180910390f35b34801561031757600080fd5b50610320610877565b005b34801561032e57600080fd5b5061034960048036038101906103449190612f32565b6108f1565b604051610356919061350d565b60405180910390f35b34801561036b57600080fd5b50610386600480360381019061038191906130c8565b610911565b005b34801561039457600080fd5b506103af60048036038101906103aa919061311a565b6109c3565b005b3480156103bd57600080fd5b506103d860048036038101906103d39190612f32565b610a62565b6040516103e591906136ca565b60405180910390f35b3480156103fa57600080fd5b50610403610ab3565b005b34801561041157600080fd5b5061042c6004803603810190610427919061311a565b610c06565b005b34801561043a57600080fd5b506104556004803603810190610450919061311a565b610ca5565b005b34801561046357600080fd5b5061046c610d44565b604051610479919061343f565b60405180910390f35b34801561048e57600080fd5b50610497610d6d565b6040516104a49190613528565b60405180910390f35b3480156104b957600080fd5b506104d460048036038101906104cf919061304b565b610daa565b6040516104e1919061350d565b60405180910390f35b3480156104f657600080fd5b50610511600480360381019061050c9190613087565b610dc8565b005b34801561051f57600080fd5b5061053a6004803603810190610535919061300f565b610f18565b005b34801561054857600080fd5b50610563600480360381019061055e919061300f565b611008565b005b34801561057157600080fd5b5061057a6110f8565b005b34801561058857600080fd5b506105a3600480360381019061059e9190612f32565b611739565b6040516105b0919061350d565b60405180910390f35b3480156105c557600080fd5b506105e060048036038101906105db9190612f84565b611759565b6040516105ed91906136ca565b60405180910390f35b34801561060257600080fd5b5061060b6117e0565b005b600b5481565b60606040518060400160405280600981526020017f4b6f696e4b616e6e610000000000000000000000000000000000000000000000815250905090565b600061066461065d611852565b848461185a565b6001905092915050565b6000683635c9adc5dea00000905090565b600061068c848484611a25565b61074d84610698611852565b61074885604051806060016040528060288152602001613e4f60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106fe611852565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120fb9092919063ffffffff16565b61185a565b600190509392505050565b610760611852565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e49061364a565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108b8611852565b73ffffffffffffffffffffffffffffffffffffffff16146108d857600080fd5b60006108e330610a62565b90506108ee8161215f565b50565b60056020528060005260406000206000915054906101000a900460ff1681565b610919611852565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099d9061364a565b60405180910390fd5b80601160176101000a81548160ff02191690831515021790555050565b6109cb611852565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4f9061364a565b60405180910390fd5b8060128190555050565b6000610aac600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612459565b9050919050565b610abb611852565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3f9061364a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610c0e611852565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c929061364a565b60405180910390fd5b8060138190555050565b610cad611852565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d319061364a565b60405180910390fd5b80600b8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f5577550000000000000000000000000000000000000000000000000000000000815250905090565b6000610dbe610db7611852565b8484611a25565b6001905092915050565b610dd0611852565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e549061364a565b60405180910390fd5b60005b8151811015610f1457600160076000848481518110610ea8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f0c906139e0565b915050610e60565b5050565b610f20611852565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa49061364a565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611010611852565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461109d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110949061364a565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611100611852565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461118d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111849061364a565b60405180910390fd5b601160149054906101000a900460ff16156111dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d4906136aa565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061126d30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea0000061185a565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156112b357600080fd5b505afa1580156112c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112eb9190612f5b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561134d57600080fd5b505afa158015611361573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113859190612f5b565b6040518363ffffffff1660e01b81526004016113a292919061345a565b602060405180830381600087803b1580156113bc57600080fd5b505af11580156113d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f49190612f5b565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160066000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061157130610a62565b60008061157c610d44565b426040518863ffffffff1660e01b815260040161159e969594939291906134ac565b6060604051808303818588803b1580156115b757600080fd5b505af11580156115cb573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115f09190613143565b5050506001601160166101000a81548160ff0219169083151502179055506001601160176101000a81548160ff0219169083151502179055506001601160146101000a81548160ff021916908315150217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016116e3929190613483565b602060405180830381600087803b1580156116fd57600080fd5b505af1158015611711573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173591906130f1565b5050565b60066020528060005260406000206000915054906101000a900460ff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611821611852565b73ffffffffffffffffffffffffffffffffffffffff161461184157600080fd5b600047905061184f816124c7565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c19061368a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561193a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119319061358a565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a1891906136ca565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8c9061366a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afc9061354a565b60405180910390fd5b80611b0f84610a62565b1015611b50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b47906135ca565b60405180910390fd5b611b58610d44565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611bc65750611b96610d44565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156120eb57600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611c6f5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611c7857600080fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580611d745750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d735750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b5b15611dbf57601254811115611dbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db59061360a565b60405180910390fd5b5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611e695760135481611e1d84610a62565b611e279190613800565b1115611e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5f906135ea565b60405180910390fd5b5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611f145750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f6a5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f825750601160179054906101000a900460ff165b156120235742600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611fd257600080fd5b603c42611fdf9190613800565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600061202e30610a62565b9050601160159054906101000a900460ff1615801561209b5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156120b35750601160169054906101000a900460ff165b80156120c15750600b548110155b156120e9576120cf8161215f565b600047905060008111156120e7576120e6476124c7565b5b505b505b6120f68383836125c2565b505050565b6000838311158290612143576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213a9190613528565b60405180910390fd5b506000838561215291906138e1565b9050809150509392505050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156121bd577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156121eb5781602001602082028036833780820191505090505b5090503081600081518110612229577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156122cb57600080fd5b505afa1580156122df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123039190612f5b565b8160018151811061233d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123a430601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461185a565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016124089594939291906136e5565b600060405180830381600087803b15801561242257600080fd5b505af1158015612436573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b60006009548211156124a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124979061356a565b60405180910390fd5b60006124aa6125d2565b90506124bf81846125fd90919063ffffffff16565b915050919050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6125176002846125fd90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612542573d6000803e3d6000fd5b50600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6125936002846125fd90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156125be573d6000803e3d6000fd5b5050565b6125cd838383612647565b505050565b60008060006125df6129b8565b915091506125f681836125fd90919063ffffffff16565b9250505090565b600061263f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a1a565b905092915050565b60008060008060008061265987612a7d565b9550955095509550955095506126b786600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ae590919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061279b5750600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561289f576127f286600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b2f90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8960405161289291906136ca565b60405180910390a36129ad565b6128f185600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b2f90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061293d81612b8d565b6129478483612c4a565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516129a491906136ca565b60405180910390a35b505050505050505050565b600080600060095490506000683635c9adc5dea0000090506129ee683635c9adc5dea000006009546125fd90919063ffffffff16565b821015612a0d57600954683635c9adc5dea00000935093505050612a16565b81819350935050505b9091565b60008083118290612a61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a589190613528565b60405180910390fd5b5060008385612a709190613856565b9050809150509392505050565b6000806000806000806000806000612a9a8a600c54600d54612c84565b9250925092506000612aaa6125d2565b90506000806000612abd8e878787612d1a565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612b2783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120fb565b905092915050565b6000808284612b3e9190613800565b905083811015612b83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7a906135aa565b60405180910390fd5b8091505092915050565b6000612b976125d2565b90506000612bae8284612da390919063ffffffff16565b9050612c0281600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b2f90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612c5f82600954612ae590919063ffffffff16565b600981905550612c7a81600a54612b2f90919063ffffffff16565b600a819055505050565b600080600080612cb06064612ca2888a612da390919063ffffffff16565b6125fd90919063ffffffff16565b90506000612cda6064612ccc888b612da390919063ffffffff16565b6125fd90919063ffffffff16565b90506000612d0382612cf5858c612ae590919063ffffffff16565b612ae590919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612d338589612da390919063ffffffff16565b90506000612d4a8689612da390919063ffffffff16565b90506000612d618789612da390919063ffffffff16565b90506000612d8a82612d7c8587612ae590919063ffffffff16565b612ae590919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612db65760009050612e18565b60008284612dc49190613887565b9050828482612dd39190613856565b14612e13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e0a9061362a565b60405180910390fd5b809150505b92915050565b6000612e31612e2c8461377f565b61375a565b90508083825260208201905082856020860282011115612e5057600080fd5b60005b85811015612e805781612e668882612e8a565b845260208401935060208301925050600181019050612e53565b5050509392505050565b600081359050612e9981613e09565b92915050565b600081519050612eae81613e09565b92915050565b600082601f830112612ec557600080fd5b8135612ed5848260208601612e1e565b91505092915050565b600081359050612eed81613e20565b92915050565b600081519050612f0281613e20565b92915050565b600081359050612f1781613e37565b92915050565b600081519050612f2c81613e37565b92915050565b600060208284031215612f4457600080fd5b6000612f5284828501612e8a565b91505092915050565b600060208284031215612f6d57600080fd5b6000612f7b84828501612e9f565b91505092915050565b60008060408385031215612f9757600080fd5b6000612fa585828601612e8a565b9250506020612fb685828601612e8a565b9150509250929050565b600080600060608486031215612fd557600080fd5b6000612fe386828701612e8a565b9350506020612ff486828701612e8a565b925050604061300586828701612f08565b9150509250925092565b6000806040838503121561302257600080fd5b600061303085828601612e8a565b925050602061304185828601612ede565b9150509250929050565b6000806040838503121561305e57600080fd5b600061306c85828601612e8a565b925050602061307d85828601612f08565b9150509250929050565b60006020828403121561309957600080fd5b600082013567ffffffffffffffff8111156130b357600080fd5b6130bf84828501612eb4565b91505092915050565b6000602082840312156130da57600080fd5b60006130e884828501612ede565b91505092915050565b60006020828403121561310357600080fd5b600061311184828501612ef3565b91505092915050565b60006020828403121561312c57600080fd5b600061313a84828501612f08565b91505092915050565b60008060006060848603121561315857600080fd5b600061316686828701612f1d565b935050602061317786828701612f1d565b925050604061318886828701612f1d565b9150509250925092565b600061319e83836131aa565b60208301905092915050565b6131b381613915565b82525050565b6131c281613915565b82525050565b60006131d3826137bb565b6131dd81856137de565b93506131e8836137ab565b8060005b838110156132195781516132008882613192565b975061320b836137d1565b9250506001810190506131ec565b5085935050505092915050565b61322f81613927565b82525050565b61323e8161396a565b82525050565b600061324f826137c6565b61325981856137ef565b935061326981856020860161397c565b61327281613ab6565b840191505092915050565b600061328a6023836137ef565b915061329582613ac7565b604082019050919050565b60006132ad602a836137ef565b91506132b882613b16565b604082019050919050565b60006132d06022836137ef565b91506132db82613b65565b604082019050919050565b60006132f3601b836137ef565b91506132fe82613bb4565b602082019050919050565b60006133166026836137ef565b915061332182613bdd565b604082019050919050565b6000613339602b836137ef565b915061334482613c2c565b604082019050919050565b600061335c602d836137ef565b915061336782613c7b565b604082019050919050565b600061337f6021836137ef565b915061338a82613cca565b604082019050919050565b60006133a26020836137ef565b91506133ad82613d19565b602082019050919050565b60006133c56025836137ef565b91506133d082613d42565b604082019050919050565b60006133e86024836137ef565b91506133f382613d91565b604082019050919050565b600061340b6017836137ef565b915061341682613de0565b602082019050919050565b61342a81613953565b82525050565b6134398161395d565b82525050565b600060208201905061345460008301846131b9565b92915050565b600060408201905061346f60008301856131b9565b61347c60208301846131b9565b9392505050565b600060408201905061349860008301856131b9565b6134a56020830184613421565b9392505050565b600060c0820190506134c160008301896131b9565b6134ce6020830188613421565b6134db6040830187613235565b6134e86060830186613235565b6134f560808301856131b9565b61350260a0830184613421565b979650505050505050565b60006020820190506135226000830184613226565b92915050565b600060208201905081810360008301526135428184613244565b905092915050565b600060208201905081810360008301526135638161327d565b9050919050565b60006020820190508181036000830152613583816132a0565b9050919050565b600060208201905081810360008301526135a3816132c3565b9050919050565b600060208201905081810360008301526135c3816132e6565b9050919050565b600060208201905081810360008301526135e381613309565b9050919050565b600060208201905081810360008301526136038161332c565b9050919050565b600060208201905081810360008301526136238161334f565b9050919050565b6000602082019050818103600083015261364381613372565b9050919050565b6000602082019050818103600083015261366381613395565b9050919050565b60006020820190508181036000830152613683816133b8565b9050919050565b600060208201905081810360008301526136a3816133db565b9050919050565b600060208201905081810360008301526136c3816133fe565b9050919050565b60006020820190506136df6000830184613421565b92915050565b600060a0820190506136fa6000830188613421565b6137076020830187613235565b818103604083015261371981866131c8565b905061372860608301856131b9565b6137356080830184613421565b9695505050505050565b60006020820190506137546000830184613430565b92915050565b6000613764613775565b905061377082826139af565b919050565b6000604051905090565b600067ffffffffffffffff82111561379a57613799613a87565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061380b82613953565b915061381683613953565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561384b5761384a613a29565b5b828201905092915050565b600061386182613953565b915061386c83613953565b92508261387c5761387b613a58565b5b828204905092915050565b600061389282613953565b915061389d83613953565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156138d6576138d5613a29565b5b828202905092915050565b60006138ec82613953565b91506138f783613953565b92508282101561390a57613909613a29565b5b828203905092915050565b600061392082613933565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061397582613953565b9050919050565b60005b8381101561399a57808201518184015260208101905061397f565b838111156139a9576000848401525b50505050565b6139b882613ab6565b810181811067ffffffffffffffff821117156139d7576139d6613a87565b5b80604052505050565b60006139eb82613953565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613a1e57613a1d613a29565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f416e74692d7768616c653a2057616c6c657420616d6f756e742065786365656460008201527f73206d6178206c696d6974000000000000000000000000000000000000000000602082015250565b7f416e74692d7768616c653a205472616e7366657220616d6f756e74206578636560008201527f656473206d6178206c696d697400000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b613e1281613915565b8114613e1d57600080fd5b50565b613e2981613927565b8114613e3457600080fd5b50565b613e4081613953565b8114613e4b57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122038c398a06618068a63afc903777111691378be5c13643b02be4b8e72c8977ec664736f6c63430008040033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000e555190e117821cad865e97724ca2fd39ac14ef5000000000000000000000000439d5bfb857f311537c589e391302a1bfafe73cb
-----Decoded View---------------
Arg [0] : wallet1 (address): 0xe555190E117821CaD865E97724CA2fD39aC14eF5
Arg [1] : wallet2 (address): 0x439D5BFb857F311537c589e391302A1bFafe73Cb
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000e555190e117821cad865e97724ca2fd39ac14ef5
Arg [1] : 000000000000000000000000439d5bfb857f311537c589e391302a1bfafe73cb
Deployed Bytecode Sourcemap
5556:11866:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6238:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7775:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8627:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8052:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8796:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13812:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7961:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6670:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15257:195;;;;;;;;;;;;;:::i;:::-;;5821:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9117:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13017:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8155:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4635:148;;;;;;;;;;;;;:::i;:::-;;13125:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13241:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4421:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7866:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8301:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13636:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13352:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13490:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12112:897;;;;;;;;;;;;;:::i;:::-;;5878:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8476:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15464:194;;;;;;;;;;;;;:::i;:::-;;6238:50;;;;:::o;7775:83::-;7812:13;7845:5;;;;;;;;;;;;;;;;;7838:12;;7775:83;:::o;8627:161::-;8702:4;8719:39;8728:12;:10;:12::i;:::-;8742:7;8751:6;8719:8;:39::i;:::-;8776:4;8769:11;;8627:161;;;;:::o;8052:95::-;8105:7;6115:25;8125:14;;8052:95;:::o;8796:313::-;8894:4;8911:36;8921:6;8929:9;8940:6;8911:9;:36::i;:::-;8958:121;8967:6;8975:12;:10;:12::i;:::-;8989:89;9027:6;8989:89;;;;;;;;;;;;;;;;;:11;:19;9001:6;8989:19;;;;;;;;;;;;;;;:33;9009:12;:10;:12::i;:::-;8989:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;8958:8;:121::i;:::-;9097:4;9090:11;;8796:313;;;;;:::o;13812:88::-;4558:12;:10;:12::i;:::-;4548:22;;:6;;;;;;;;;;:22;;;4540:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13887:5:::1;13872:4;:12;13877:6;13872:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13812:88:::0;:::o;7961:83::-;8002:5;6607:1;8020:16;;7961:83;:::o;6670:28::-;;;;;;;;;;;;;:::o;15257:195::-;15323:15;;;;;;;;;;;15307:31;;:12;:10;:12::i;:::-;:31;;;15299:40;;;;;;15350:23;15376:24;15394:4;15376:9;:24::i;:::-;15350:50;;15411:33;15428:15;15411:16;:33::i;:::-;15257:195;:::o;5821:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;9117:101::-;4558:12;:10;:12::i;:::-;4548:22;;:6;;;;;;;;;;:22;;;4540:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9205:5:::1;9187:15;;:23;;;;;;;;;;;;;;;;;;9117:101:::0;:::o;13017:100::-;4558:12;:10;:12::i;:::-;4548:22;;:6;;;;;;;;;;:22;;;4540:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13103:6:::1;13088:12;:21;;;;13017:100:::0;:::o;8155:138::-;8221:7;8248:37;8268:7;:16;8276:7;8268:16;;;;;;;;;;;;;;;;8248:19;:37::i;:::-;8241:44;;8155:138;;;:::o;4635:148::-;4558:12;:10;:12::i;:::-;4548:22;;:6;;;;;;;;;;:22;;;4540:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4742:1:::1;4705:40;;4726:6;::::0;::::1;;;;;;;;4705:40;;;;;;;;;;;;4773:1;4756:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;4635:148::o:0;13125:108::-;4558:12;:10;:12::i;:::-;4548:22;;:6;;;;;;;;;;:22;;;4540:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13219:6:::1;13200:16;:25;;;;13125:108:::0;:::o;13241:103::-;4558:12;:10;:12::i;:::-;4548:22;;:6;;;;;;;;;;:22;;;4540:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13330:6:::1;13314:13;:22;;;;13241:103:::0;:::o;4421:79::-;4459:7;4486:6;;;;;;;;;;;4479:13;;4421:79;:::o;7866:87::-;7905:13;7938:7;;;;;;;;;;;;;;;;;7931:14;;7866:87;:::o;8301:167::-;8379:4;8396:42;8406:12;:10;:12::i;:::-;8420:9;8431:6;8396:9;:42::i;:::-;8456:4;8449:11;;8301:167;;;;:::o;13636:164::-;4558:12;:10;:12::i;:::-;4548:22;;:6;;;;;;;;;;:22;;;4540:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13710:6:::1;13705:88;13726:5;:12;13722:1;:16;13705:88;;;13777:4;13760;:14;13765:5;13771:1;13765:8;;;;;;;;;;;;;;;;;;;;;;13760:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13740:3;;;;;:::i;:::-;;;;13705:88;;;;13636:164:::0;:::o;13352:130::-;4558:12;:10;:12::i;:::-;4548:22;;:6;;;;;;;;;;:22;;;4540:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13466:8:::1;13437:17;:26;13455:7;13437:26;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;13352:130:::0;;:::o;13490:134::-;4558:12;:10;:12::i;:::-;4548:22;;:6;;;;;;;;;;:22;;;4540:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13608:8:::1;13577:19;:28;13597:7;13577:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;13490:134:::0;;:::o;12112:897::-;4558:12;:10;:12::i;:::-;4548:22;;:6;;;;;;;;;;:22;;;4540:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12176:11:::1;;;;;;;;;;;12175:12;12167:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;12228:35;12285:42;12228:100;;12357:16;12339:15;;:34;;;;;;;;;;;;;;;;;;12384:58;12401:4;12416:15;;;;;;;;;;;6115:25;12384:8;:58::i;:::-;12487:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12469:56;;;12534:4;12541:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12469:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12453:13;;:112;;;;;;;;;;;;;;;;;;12626:4;12578:19;:45;12606:15;;;;;;;;;;;12578:45;;;;;;;;;;;;;;;;:52;;;;;;;;;;;;;;;;;;12678:4;12641:19;:34;12661:13;;;;;;;;;;;12641:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;12695:15;;;;;;;;;;;:31;;;12734:21;12765:4;12771:24;12789:4;12771:9;:24::i;:::-;12796:1;12798::::0;12800:7:::1;:5;:7::i;:::-;12808:15;12695:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12851:4;12837:11;;:18;;;;;;;;;;;;;;;;;;12884:4;12866:15;;:22;;;;;;;;;;;;;;;;;;12913:4;12899:11;;:18;;;;;;;;;;;;;;;;;;12937:13;;;;;;;;;;;12930:29;;;12968:15;;;;;;;;;;;12986:14;12930:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4618:1;12112:897::o:0;5878:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;8476:143::-;8557:7;8584:11;:18;8596:5;8584:18;;;;;;;;;;;;;;;:27;8603:7;8584:27;;;;;;;;;;;;;;;;8577:34;;8476:143;;;;:::o;15464:194::-;15530:15;;;;;;;;;;;15514:31;;:12;:10;:12::i;:::-;:31;;;15506:40;;;;;;15557:26;15586:21;15557:50;;15618:32;15631:18;15618:12;:32::i;:::-;15464:194;:::o;2139:98::-;2192:7;2219:10;2212:17;;2139:98;:::o;9488:335::-;9598:1;9581:19;;:5;:19;;;;9573:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9679:1;9660:21;;:7;:21;;;;9652:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9761:6;9731:11;:18;9743:5;9731:18;;;;;;;;;;;;;;;:27;9750:7;9731:27;;;;;;;;;;;;;;;:36;;;;9799:7;9783:32;;9792:5;9783:32;;;9808:6;9783:32;;;;;;:::i;:::-;;;;;;;;9488:335;;;:::o;9831:1608::-;9935:1;9919:18;;:4;:18;;;;9911:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10012:1;9998:16;;:2;:16;;;;9990:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10094:6;10075:15;10085:4;10075:9;:15::i;:::-;:25;;10067:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;10168:7;:5;:7::i;:::-;10160:15;;:4;:15;;;;:32;;;;;10185:7;:5;:7::i;:::-;10179:13;;:2;:13;;;;10160:32;10156:1231;;;10220:4;:10;10225:4;10220:10;;;;;;;;;;;;;;;;;;;;;;;;;10219:11;:24;;;;;10235:4;:8;10240:2;10235:8;;;;;;;;;;;;;;;;;;;;;;;;;10234:9;10219:24;10211:33;;;;;;10266:19;:25;10286:4;10266:25;;;;;;;;;;;;;;;;;;;;;;;;;10265:26;:81;;;;10304:13;;;;;;;;;;;10296:21;;:4;:21;;;:49;;;;;10322:19;:23;10342:2;10322:23;;;;;;;;;;;;;;;;;;;;;;;;;10321:24;10296:49;10265:81;10261:202;;;10385:12;;10375:6;:22;;10367:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;10261:202;10482:19;:23;10502:2;10482:23;;;;;;;;;;;;;;;;;;;;;;;;;10477:163;;10560:16;;10550:6;10534:13;10544:2;10534:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;10526:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;10477:163;10668:13;;;;;;;;;;;10660:21;;:4;:21;;;:55;;;;;10699:15;;;;;;;;;;;10685:30;;:2;:30;;;;10660:55;:81;;;;;10720:17;:21;10738:2;10720:21;;;;;;;;;;;;;;;;;;;;;;;;;10719:22;10660:81;:100;;;;;10745:15;;;;;;;;;;;10660:100;10656:273;;;10833:15;10818:8;:12;10827:2;10818:12;;;;;;;;;;;;;;;;:30;10810:39;;;;;;10902:10;10883:15;:30;;;;:::i;:::-;10868:8;:12;10877:2;10868:12;;;;;;;;;;;;;;;:45;;;;10656:273;10945:28;10976:24;10994:4;10976:9;:24::i;:::-;10945:55;;11022:6;;;;;;;;;;;11021:7;:32;;;;;11040:13;;;;;;;;;;;11032:21;;:4;:21;;;;11021:32;:47;;;;;11057:11;;;;;;;;;;;11021:47;:88;;;;;11096:13;;11072:20;:37;;11021:88;11017:359;;;11130:38;11147:20;11130:16;:38::i;:::-;11187:26;11216:21;11187:50;;11280:1;11259:18;:22;11256:105;;;11306:35;11319:21;11306:12;:35::i;:::-;11256:105;11017:359;;10156:1231;;11401:30;11416:4;11421:2;11424:6;11401:14;:30::i;:::-;9831:1608;;;:::o;3276:190::-;3362:7;3395:1;3390;:6;;3398:12;3382:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3422:9;3438:1;3434;:5;;;;:::i;:::-;3422:17;;3457:1;3450:8;;;3276:190;;;;;:::o;11447:483::-;6997:4;6988:6;;:13;;;;;;;;;;;;;;;;;;11525:21:::1;11563:1;11549:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11525:40;;11594:4;11576;11581:1;11576:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;11620:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11610:4;11615:1;11610:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;11653:62;11670:4;11685:15;;;;;;;;;;;11703:11;11653:8;:62::i;:::-;11726:15;;;;;;;;;;;:66;;;11807:11;11833:1;11849:4;11876;11896:15;11726:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;7012:1;7033:5:::0;7024:6;;:14;;;;;;;;;;;;;;;;;;11447:483;:::o;9226:254::-;9293:7;9332;;9321;:18;;9313:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;9397:19;9420:10;:8;:10::i;:::-;9397:33;;9448:24;9460:11;9448:7;:11;;:24;;;;:::i;:::-;9441:31;;;9226:254;;;:::o;11946:154::-;12003:15;;;;;;;;;;;:24;;:39;12028:13;12039:1;12028:6;:10;;:13;;;;:::i;:::-;12003:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12053:15;;;;;;;;;;;:24;;:39;12078:13;12089:1;12078:6;:10;;:13;;;;:::i;:::-;12053:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11946:154;:::o;13916:146::-;14010:44;14028:6;14036:9;14047:6;14010:17;:44::i;:::-;13916:146;;;:::o;16986:163::-;17027:7;17048:15;17065;17084:19;:17;:19::i;:::-;17047:56;;;;17121:20;17133:7;17121;:11;;:20;;;;:::i;:::-;17114:27;;;;16986:163;:::o;3728:132::-;3786:7;3813:39;3817:1;3820;3813:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3806:46;;3728:132;;;;:::o;14070:763::-;14169:15;14186:23;14211:16;14229:23;14254:16;14272:13;14289:19;14300:7;14289:10;:19::i;:::-;14168:140;;;;;;;;;;;;14347:28;14367:7;14347;:15;14355:6;14347:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14329:7;:15;14337:6;14329:15;;;;;;;;;;;;;;;:46;;;;14392:17;:25;14410:6;14392:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;14421:17;:28;14439:9;14421:28;;;;;;;;;;;;;;;;;;;;;;;;;14392:57;14388:438;;;14487:31;14510:7;14487;:18;14495:9;14487:18;;;;;;;;;;;;;;;;:22;;:31;;;;:::i;:::-;14466:7;:18;14474:9;14466:18;;;;;;;;;;;;;;;:52;;;;14558:9;14541:36;;14550:6;14541:36;;;14569:7;14541:36;;;;;;:::i;:::-;;;;;;;;14388:438;;;14631:39;14654:15;14631:7;:18;14639:9;14631:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14610:7;:18;14618:9;14610:18;;;;;;;;;;;;;;;:60;;;;14686:16;14696:5;14686:9;:16::i;:::-;14717:31;14729:8;14739;14717:11;:31::i;:::-;14787:9;14770:44;;14779:6;14770:44;;;14798:15;14770:44;;;;;;:::i;:::-;;;;;;;;14388:438;14070:763;;;;;;;;;:::o;17157:262::-;17207:7;17216;17236:15;17254:7;;17236:25;;17272:15;6115:25;17272;;17328:20;6115:25;17328:7;;:11;;:20;;;;:::i;:::-;17318:7;:30;17314:61;;;17358:7;;6115:25;17350;;;;;;;;17314:61;17394:7;17403;17386:25;;;;;;17157:262;;;:::o;3868:189::-;3954:7;3986:1;3982;:5;3989:12;3974:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4013:9;4029:1;4025;:5;;;;:::i;:::-;4013:17;;4048:1;4041:8;;;3868:189;;;;;:::o;15666:499::-;15725:7;15734;15743;15752;15761;15770;15791:23;15816:16;15834:13;15851:46;15863:7;15872:14;;15888:8;;15851:11;:46::i;:::-;15790:107;;;;;;15910:19;15933:10;:8;:10::i;:::-;15910:33;;15955:15;15972:23;15997:16;16017:50;16029:7;16038:8;16048:5;16055:11;16017;:50::i;:::-;15954:113;;;;;;16088:7;16097:15;16114:8;16124:15;16141:8;16151:5;16080:77;;;;;;;;;;;;;;;;;;;15666:499;;;;;;;:::o;3132:136::-;3190:7;3217:43;3221:1;3224;3217:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3210:50;;3132:136;;;;:::o;2945:179::-;3003:7;3023:9;3039:1;3035;:5;;;;:::i;:::-;3023:17;;3064:1;3059;:6;;3051:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3115:1;3108:8;;;2945:179;;;;:::o;14841:212::-;14894:19;14917:10;:8;:10::i;:::-;14894:33;;14938:13;14954:22;14964:11;14954:5;:9;;:22;;;;:::i;:::-;14938:38;;15012:33;15039:5;15012:7;:22;15028:4;15012:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14987:7;:22;15003:4;14987:22;;;;;;;;;;;;;;;:58;;;;14841:212;;;:::o;15061:147::-;15139:17;15151:4;15139:7;;:11;;:17;;;;:::i;:::-;15129:7;:27;;;;15180:20;15195:4;15180:10;;:14;;:20;;;;:::i;:::-;15167:10;:33;;;;15061:147;;:::o;16173:371::-;16270:7;16279;16288;16308:16;16327:32;16355:3;16327:23;16339:10;16327:7;:11;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;16308:51;;16370:13;16386:29;16411:3;16386:20;16398:7;16386;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;16370:45;;16426:23;16452:32;16478:5;16452:21;16464:8;16452:7;:11;;:21;;;;:::i;:::-;:25;;:32;;;;:::i;:::-;16426:58;;16503:15;16520:8;16530:5;16495:41;;;;;;;;;16173:371;;;;;;;:::o;16552:429::-;16666:7;16675;16684;16704:15;16722:24;16734:11;16722:7;:11;;:24;;;;:::i;:::-;16704:42;;16757:16;16776:25;16789:11;16776:8;:12;;:25;;;;:::i;:::-;16757:44;;16812:13;16828:22;16838:11;16828:5;:9;;:22;;;;:::i;:::-;16812:38;;16861:23;16887:32;16913:5;16887:21;16899:8;16887:7;:11;;:21;;;;:::i;:::-;:25;;:32;;;;:::i;:::-;16861:58;;16938:7;16947:15;16964:8;16930:43;;;;;;;;;;16552:429;;;;;;;;:::o;3474:246::-;3532:7;3561:1;3556;:6;3552:47;;;3586:1;3579:8;;;;3552:47;3609:9;3625:1;3621;:5;;;;:::i;:::-;3609:17;;3654:1;3649;3645;:5;;;;:::i;:::-;:10;3637:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3711:1;3704:8;;;3474:246;;;;;:::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;996:303::-;1067:5;1116:3;1109:4;1101:6;1097:17;1093:27;1083:2;;1134:1;1131;1124:12;1083:2;1174:6;1161:20;1199:94;1289:3;1281:6;1274:4;1266:6;1262:17;1199:94;:::i;:::-;1190:103;;1073:226;;;;;:::o;1305:133::-;1348:5;1386:6;1373:20;1364:29;;1402:30;1426:5;1402:30;:::i;:::-;1354:84;;;;:::o;1444:137::-;1498:5;1529:6;1523:13;1514:22;;1545:30;1569:5;1545:30;:::i;:::-;1504:77;;;;:::o;1587:139::-;1633:5;1671:6;1658:20;1649:29;;1687:33;1714:5;1687:33;:::i;:::-;1639:87;;;;:::o;1732:143::-;1789:5;1820:6;1814:13;1805:22;;1836:33;1863:5;1836:33;:::i;:::-;1795:80;;;;:::o;1881:262::-;1940:6;1989:2;1977:9;1968:7;1964:23;1960:32;1957:2;;;2005:1;2002;1995:12;1957:2;2048:1;2073:53;2118:7;2109:6;2098:9;2094:22;2073:53;:::i;:::-;2063:63;;2019:117;1947:196;;;;:::o;2149:284::-;2219:6;2268:2;2256:9;2247:7;2243:23;2239:32;2236:2;;;2284:1;2281;2274:12;2236:2;2327:1;2352:64;2408:7;2399:6;2388:9;2384:22;2352:64;:::i;:::-;2342:74;;2298:128;2226:207;;;;:::o;2439:407::-;2507:6;2515;2564:2;2552:9;2543:7;2539:23;2535:32;2532:2;;;2580:1;2577;2570:12;2532:2;2623:1;2648:53;2693:7;2684:6;2673:9;2669:22;2648:53;:::i;:::-;2638:63;;2594:117;2750:2;2776:53;2821:7;2812:6;2801:9;2797:22;2776:53;:::i;:::-;2766:63;;2721:118;2522:324;;;;;:::o;2852:552::-;2929:6;2937;2945;2994:2;2982:9;2973:7;2969:23;2965:32;2962:2;;;3010:1;3007;3000:12;2962:2;3053:1;3078:53;3123:7;3114:6;3103:9;3099:22;3078:53;:::i;:::-;3068:63;;3024:117;3180:2;3206:53;3251:7;3242:6;3231:9;3227:22;3206:53;:::i;:::-;3196:63;;3151:118;3308:2;3334:53;3379:7;3370:6;3359:9;3355:22;3334:53;:::i;:::-;3324:63;;3279:118;2952:452;;;;;:::o;3410:401::-;3475:6;3483;3532:2;3520:9;3511:7;3507:23;3503:32;3500:2;;;3548:1;3545;3538:12;3500:2;3591:1;3616:53;3661:7;3652:6;3641:9;3637:22;3616:53;:::i;:::-;3606:63;;3562:117;3718:2;3744:50;3786:7;3777:6;3766:9;3762:22;3744:50;:::i;:::-;3734:60;;3689:115;3490:321;;;;;:::o;3817:407::-;3885:6;3893;3942:2;3930:9;3921:7;3917:23;3913:32;3910:2;;;3958:1;3955;3948:12;3910:2;4001:1;4026:53;4071:7;4062:6;4051:9;4047:22;4026:53;:::i;:::-;4016:63;;3972:117;4128:2;4154:53;4199:7;4190:6;4179:9;4175:22;4154:53;:::i;:::-;4144:63;;4099:118;3900:324;;;;;:::o;4230:405::-;4314:6;4363:2;4351:9;4342:7;4338:23;4334:32;4331:2;;;4379:1;4376;4369:12;4331:2;4450:1;4439:9;4435:17;4422:31;4480:18;4472:6;4469:30;4466:2;;;4512:1;4509;4502:12;4466:2;4540:78;4610:7;4601:6;4590:9;4586:22;4540:78;:::i;:::-;4530:88;;4393:235;4321:314;;;;:::o;4641:256::-;4697:6;4746:2;4734:9;4725:7;4721:23;4717:32;4714:2;;;4762:1;4759;4752:12;4714:2;4805:1;4830:50;4872:7;4863:6;4852:9;4848:22;4830:50;:::i;:::-;4820:60;;4776:114;4704:193;;;;:::o;4903:278::-;4970:6;5019:2;5007:9;4998:7;4994:23;4990:32;4987:2;;;5035:1;5032;5025:12;4987:2;5078:1;5103:61;5156:7;5147:6;5136:9;5132:22;5103:61;:::i;:::-;5093:71;;5049:125;4977:204;;;;:::o;5187:262::-;5246:6;5295:2;5283:9;5274:7;5270:23;5266:32;5263:2;;;5311:1;5308;5301:12;5263:2;5354:1;5379:53;5424:7;5415:6;5404:9;5400:22;5379:53;:::i;:::-;5369:63;;5325:117;5253:196;;;;:::o;5455:596::-;5543:6;5551;5559;5608:2;5596:9;5587:7;5583:23;5579:32;5576:2;;;5624:1;5621;5614:12;5576:2;5667:1;5692:64;5748:7;5739:6;5728:9;5724:22;5692:64;:::i;:::-;5682:74;;5638:128;5805:2;5831:64;5887:7;5878:6;5867:9;5863:22;5831:64;:::i;:::-;5821:74;;5776:129;5944:2;5970:64;6026:7;6017:6;6006:9;6002:22;5970:64;:::i;:::-;5960:74;;5915:129;5566:485;;;;;:::o;6057:179::-;6126:10;6147:46;6189:3;6181:6;6147:46;:::i;:::-;6225:4;6220:3;6216:14;6202:28;;6137:99;;;;:::o;6242:108::-;6319:24;6337:5;6319:24;:::i;:::-;6314:3;6307:37;6297:53;;:::o;6356:118::-;6443:24;6461:5;6443:24;:::i;:::-;6438:3;6431:37;6421:53;;:::o;6510:732::-;6629:3;6658:54;6706:5;6658:54;:::i;:::-;6728:86;6807:6;6802:3;6728:86;:::i;:::-;6721:93;;6838:56;6888:5;6838:56;:::i;:::-;6917:7;6948:1;6933:284;6958:6;6955:1;6952:13;6933:284;;;7034:6;7028:13;7061:63;7120:3;7105:13;7061:63;:::i;:::-;7054:70;;7147:60;7200:6;7147:60;:::i;:::-;7137:70;;6993:224;6980:1;6977;6973:9;6968:14;;6933:284;;;6937:14;7233:3;7226:10;;6634:608;;;;;;;:::o;7248:109::-;7329:21;7344:5;7329:21;:::i;:::-;7324:3;7317:34;7307:50;;:::o;7363:147::-;7458:45;7497:5;7458:45;:::i;:::-;7453:3;7446:58;7436:74;;:::o;7516:364::-;7604:3;7632:39;7665:5;7632:39;:::i;:::-;7687:71;7751:6;7746:3;7687:71;:::i;:::-;7680:78;;7767:52;7812:6;7807:3;7800:4;7793:5;7789:16;7767:52;:::i;:::-;7844:29;7866:6;7844:29;:::i;:::-;7839:3;7835:39;7828:46;;7608:272;;;;;:::o;7886:366::-;8028:3;8049:67;8113:2;8108:3;8049:67;:::i;:::-;8042:74;;8125:93;8214:3;8125:93;:::i;:::-;8243:2;8238:3;8234:12;8227:19;;8032:220;;;:::o;8258:366::-;8400:3;8421:67;8485:2;8480:3;8421:67;:::i;:::-;8414:74;;8497:93;8586:3;8497:93;:::i;:::-;8615:2;8610:3;8606:12;8599:19;;8404:220;;;:::o;8630:366::-;8772:3;8793:67;8857:2;8852:3;8793:67;:::i;:::-;8786:74;;8869:93;8958:3;8869:93;:::i;:::-;8987:2;8982:3;8978:12;8971:19;;8776:220;;;:::o;9002:366::-;9144:3;9165:67;9229:2;9224:3;9165:67;:::i;:::-;9158:74;;9241:93;9330:3;9241:93;:::i;:::-;9359:2;9354:3;9350:12;9343:19;;9148:220;;;:::o;9374:366::-;9516:3;9537:67;9601:2;9596:3;9537:67;:::i;:::-;9530:74;;9613:93;9702:3;9613:93;:::i;:::-;9731:2;9726:3;9722:12;9715:19;;9520:220;;;:::o;9746:366::-;9888:3;9909:67;9973:2;9968:3;9909:67;:::i;:::-;9902:74;;9985:93;10074:3;9985:93;:::i;:::-;10103:2;10098:3;10094:12;10087:19;;9892:220;;;:::o;10118:366::-;10260:3;10281:67;10345:2;10340:3;10281:67;:::i;:::-;10274:74;;10357:93;10446:3;10357:93;:::i;:::-;10475:2;10470:3;10466:12;10459:19;;10264:220;;;:::o;10490:366::-;10632:3;10653:67;10717:2;10712:3;10653:67;:::i;:::-;10646:74;;10729:93;10818:3;10729:93;:::i;:::-;10847:2;10842:3;10838:12;10831:19;;10636:220;;;:::o;10862:366::-;11004:3;11025:67;11089:2;11084:3;11025:67;:::i;:::-;11018:74;;11101:93;11190:3;11101:93;:::i;:::-;11219:2;11214:3;11210:12;11203:19;;11008:220;;;:::o;11234:366::-;11376:3;11397:67;11461:2;11456:3;11397:67;:::i;:::-;11390:74;;11473:93;11562:3;11473:93;:::i;:::-;11591:2;11586:3;11582:12;11575:19;;11380:220;;;:::o;11606:366::-;11748:3;11769:67;11833:2;11828:3;11769:67;:::i;:::-;11762:74;;11845:93;11934:3;11845:93;:::i;:::-;11963:2;11958:3;11954:12;11947:19;;11752:220;;;:::o;11978:366::-;12120:3;12141:67;12205:2;12200:3;12141:67;:::i;:::-;12134:74;;12217:93;12306:3;12217:93;:::i;:::-;12335:2;12330:3;12326:12;12319:19;;12124:220;;;:::o;12350:118::-;12437:24;12455:5;12437:24;:::i;:::-;12432:3;12425:37;12415:53;;:::o;12474:112::-;12557:22;12573:5;12557:22;:::i;:::-;12552:3;12545:35;12535:51;;:::o;12592:222::-;12685:4;12723:2;12712:9;12708:18;12700:26;;12736:71;12804:1;12793:9;12789:17;12780:6;12736:71;:::i;:::-;12690:124;;;;:::o;12820:332::-;12941:4;12979:2;12968:9;12964:18;12956:26;;12992:71;13060:1;13049:9;13045:17;13036:6;12992:71;:::i;:::-;13073:72;13141:2;13130:9;13126:18;13117:6;13073:72;:::i;:::-;12946:206;;;;;:::o;13158:332::-;13279:4;13317:2;13306:9;13302:18;13294:26;;13330:71;13398:1;13387:9;13383:17;13374:6;13330:71;:::i;:::-;13411:72;13479:2;13468:9;13464:18;13455:6;13411:72;:::i;:::-;13284:206;;;;;:::o;13496:807::-;13745:4;13783:3;13772:9;13768:19;13760:27;;13797:71;13865:1;13854:9;13850:17;13841:6;13797:71;:::i;:::-;13878:72;13946:2;13935:9;13931:18;13922:6;13878:72;:::i;:::-;13960:80;14036:2;14025:9;14021:18;14012:6;13960:80;:::i;:::-;14050;14126:2;14115:9;14111:18;14102:6;14050:80;:::i;:::-;14140:73;14208:3;14197:9;14193:19;14184:6;14140:73;:::i;:::-;14223;14291:3;14280:9;14276:19;14267:6;14223:73;:::i;:::-;13750:553;;;;;;;;;:::o;14309:210::-;14396:4;14434:2;14423:9;14419:18;14411:26;;14447:65;14509:1;14498:9;14494:17;14485:6;14447:65;:::i;:::-;14401:118;;;;:::o;14525:313::-;14638:4;14676:2;14665:9;14661:18;14653:26;;14725:9;14719:4;14715:20;14711:1;14700:9;14696:17;14689:47;14753:78;14826:4;14817:6;14753:78;:::i;:::-;14745:86;;14643:195;;;;:::o;14844:419::-;15010:4;15048:2;15037:9;15033:18;15025:26;;15097:9;15091:4;15087:20;15083:1;15072:9;15068:17;15061:47;15125:131;15251:4;15125:131;:::i;:::-;15117:139;;15015:248;;;:::o;15269:419::-;15435:4;15473:2;15462:9;15458:18;15450:26;;15522:9;15516:4;15512:20;15508:1;15497:9;15493:17;15486:47;15550:131;15676:4;15550:131;:::i;:::-;15542:139;;15440:248;;;:::o;15694:419::-;15860:4;15898:2;15887:9;15883:18;15875:26;;15947:9;15941:4;15937:20;15933:1;15922:9;15918:17;15911:47;15975:131;16101:4;15975:131;:::i;:::-;15967:139;;15865:248;;;:::o;16119:419::-;16285:4;16323:2;16312:9;16308:18;16300:26;;16372:9;16366:4;16362:20;16358:1;16347:9;16343:17;16336:47;16400:131;16526:4;16400:131;:::i;:::-;16392:139;;16290:248;;;:::o;16544:419::-;16710:4;16748:2;16737:9;16733:18;16725:26;;16797:9;16791:4;16787:20;16783:1;16772:9;16768:17;16761:47;16825:131;16951:4;16825:131;:::i;:::-;16817:139;;16715:248;;;:::o;16969:419::-;17135:4;17173:2;17162:9;17158:18;17150:26;;17222:9;17216:4;17212:20;17208:1;17197:9;17193:17;17186:47;17250:131;17376:4;17250:131;:::i;:::-;17242:139;;17140:248;;;:::o;17394:419::-;17560:4;17598:2;17587:9;17583:18;17575:26;;17647:9;17641:4;17637:20;17633:1;17622:9;17618:17;17611:47;17675:131;17801:4;17675:131;:::i;:::-;17667:139;;17565:248;;;:::o;17819:419::-;17985:4;18023:2;18012:9;18008:18;18000:26;;18072:9;18066:4;18062:20;18058:1;18047:9;18043:17;18036:47;18100:131;18226:4;18100:131;:::i;:::-;18092:139;;17990:248;;;:::o;18244:419::-;18410:4;18448:2;18437:9;18433:18;18425:26;;18497:9;18491:4;18487:20;18483:1;18472:9;18468:17;18461:47;18525:131;18651:4;18525:131;:::i;:::-;18517:139;;18415:248;;;:::o;18669:419::-;18835:4;18873:2;18862:9;18858:18;18850:26;;18922:9;18916:4;18912:20;18908:1;18897:9;18893:17;18886:47;18950:131;19076:4;18950:131;:::i;:::-;18942:139;;18840:248;;;:::o;19094:419::-;19260:4;19298:2;19287:9;19283:18;19275:26;;19347:9;19341:4;19337:20;19333:1;19322:9;19318:17;19311:47;19375:131;19501:4;19375:131;:::i;:::-;19367:139;;19265:248;;;:::o;19519:419::-;19685:4;19723:2;19712:9;19708:18;19700:26;;19772:9;19766:4;19762:20;19758:1;19747:9;19743:17;19736:47;19800:131;19926:4;19800:131;:::i;:::-;19792:139;;19690:248;;;:::o;19944:222::-;20037:4;20075:2;20064:9;20060:18;20052:26;;20088:71;20156:1;20145:9;20141:17;20132:6;20088:71;:::i;:::-;20042:124;;;;:::o;20172:831::-;20435:4;20473:3;20462:9;20458:19;20450:27;;20487:71;20555:1;20544:9;20540:17;20531:6;20487:71;:::i;:::-;20568:80;20644:2;20633:9;20629:18;20620:6;20568:80;:::i;:::-;20695:9;20689:4;20685:20;20680:2;20669:9;20665:18;20658:48;20723:108;20826:4;20817:6;20723:108;:::i;:::-;20715:116;;20841:72;20909:2;20898:9;20894:18;20885:6;20841:72;:::i;:::-;20923:73;20991:3;20980:9;20976:19;20967:6;20923:73;:::i;:::-;20440:563;;;;;;;;:::o;21009:214::-;21098:4;21136:2;21125:9;21121:18;21113:26;;21149:67;21213:1;21202:9;21198:17;21189:6;21149:67;:::i;:::-;21103:120;;;;:::o;21229:129::-;21263:6;21290:20;;:::i;:::-;21280:30;;21319:33;21347:4;21339:6;21319:33;:::i;:::-;21270:88;;;:::o;21364:75::-;21397:6;21430:2;21424:9;21414:19;;21404:35;:::o;21445:311::-;21522:4;21612:18;21604:6;21601:30;21598:2;;;21634:18;;:::i;:::-;21598:2;21684:4;21676:6;21672:17;21664:25;;21744:4;21738;21734:15;21726:23;;21527:229;;;:::o;21762:132::-;21829:4;21852:3;21844:11;;21882:4;21877:3;21873:14;21865:22;;21834:60;;;:::o;21900:114::-;21967:6;22001:5;21995:12;21985:22;;21974:40;;;:::o;22020:99::-;22072:6;22106:5;22100:12;22090:22;;22079:40;;;:::o;22125:113::-;22195:4;22227;22222:3;22218:14;22210:22;;22200:38;;;:::o;22244:184::-;22343:11;22377:6;22372:3;22365:19;22417:4;22412:3;22408:14;22393:29;;22355:73;;;;:::o;22434:169::-;22518:11;22552:6;22547:3;22540:19;22592:4;22587:3;22583:14;22568:29;;22530:73;;;;:::o;22609:305::-;22649:3;22668:20;22686:1;22668:20;:::i;:::-;22663:25;;22702:20;22720:1;22702:20;:::i;:::-;22697:25;;22856:1;22788:66;22784:74;22781:1;22778:81;22775:2;;;22862:18;;:::i;:::-;22775:2;22906:1;22903;22899:9;22892:16;;22653:261;;;;:::o;22920:185::-;22960:1;22977:20;22995:1;22977:20;:::i;:::-;22972:25;;23011:20;23029:1;23011:20;:::i;:::-;23006:25;;23050:1;23040:2;;23055:18;;:::i;:::-;23040:2;23097:1;23094;23090:9;23085:14;;22962:143;;;;:::o;23111:348::-;23151:7;23174:20;23192:1;23174:20;:::i;:::-;23169:25;;23208:20;23226:1;23208:20;:::i;:::-;23203:25;;23396:1;23328:66;23324:74;23321:1;23318:81;23313:1;23306:9;23299:17;23295:105;23292:2;;;23403:18;;:::i;:::-;23292:2;23451:1;23448;23444:9;23433:20;;23159:300;;;;:::o;23465:191::-;23505:4;23525:20;23543:1;23525:20;:::i;:::-;23520:25;;23559:20;23577:1;23559:20;:::i;:::-;23554:25;;23598:1;23595;23592:8;23589:2;;;23603:18;;:::i;:::-;23589:2;23648:1;23645;23641:9;23633:17;;23510:146;;;;:::o;23662:96::-;23699:7;23728:24;23746:5;23728:24;:::i;:::-;23717:35;;23707:51;;;:::o;23764:90::-;23798:7;23841:5;23834:13;23827:21;23816:32;;23806:48;;;:::o;23860:126::-;23897:7;23937:42;23930:5;23926:54;23915:65;;23905:81;;;:::o;23992:77::-;24029:7;24058:5;24047:16;;24037:32;;;:::o;24075:86::-;24110:7;24150:4;24143:5;24139:16;24128:27;;24118:43;;;:::o;24167:121::-;24225:9;24258:24;24276:5;24258:24;:::i;:::-;24245:37;;24235:53;;;:::o;24294:307::-;24362:1;24372:113;24386:6;24383:1;24380:13;24372:113;;;24471:1;24466:3;24462:11;24456:18;24452:1;24447:3;24443:11;24436:39;24408:2;24405:1;24401:10;24396:15;;24372:113;;;24503:6;24500:1;24497:13;24494:2;;;24583:1;24574:6;24569:3;24565:16;24558:27;24494:2;24343:258;;;;:::o;24607:281::-;24690:27;24712:4;24690:27;:::i;:::-;24682:6;24678:40;24820:6;24808:10;24805:22;24784:18;24772:10;24769:34;24766:62;24763:2;;;24831:18;;:::i;:::-;24763:2;24871:10;24867:2;24860:22;24650:238;;;:::o;24894:233::-;24933:3;24956:24;24974:5;24956:24;:::i;:::-;24947:33;;25002:66;24995:5;24992:77;24989:2;;;25072:18;;:::i;:::-;24989:2;25119:1;25112:5;25108:13;25101:20;;24937:190;;;:::o;25133:180::-;25181:77;25178:1;25171:88;25278:4;25275:1;25268:15;25302:4;25299:1;25292:15;25319:180;25367:77;25364:1;25357:88;25464:4;25461:1;25454:15;25488:4;25485:1;25478:15;25505:180;25553:77;25550:1;25543:88;25650:4;25647:1;25640:15;25674:4;25671:1;25664:15;25691:102;25732:6;25783:2;25779:7;25774:2;25767:5;25763:14;25759:28;25749:38;;25739:54;;;:::o;25799:222::-;25939:34;25935:1;25927:6;25923:14;25916:58;26008:5;26003:2;25995:6;25991:15;25984:30;25905:116;:::o;26027:229::-;26167:34;26163:1;26155:6;26151:14;26144:58;26236:12;26231:2;26223:6;26219:15;26212:37;26133:123;:::o;26262:221::-;26402:34;26398:1;26390:6;26386:14;26379:58;26471:4;26466:2;26458:6;26454:15;26447:29;26368:115;:::o;26489:177::-;26629:29;26625:1;26617:6;26613:14;26606:53;26595:71;:::o;26672:225::-;26812:34;26808:1;26800:6;26796:14;26789:58;26881:8;26876:2;26868:6;26864:15;26857:33;26778:119;:::o;26903:230::-;27043:34;27039:1;27031:6;27027:14;27020:58;27112:13;27107:2;27099:6;27095:15;27088:38;27009:124;:::o;27139:232::-;27279:34;27275:1;27267:6;27263:14;27256:58;27348:15;27343:2;27335:6;27331:15;27324:40;27245:126;:::o;27377:220::-;27517:34;27513:1;27505:6;27501:14;27494:58;27586:3;27581:2;27573:6;27569:15;27562:28;27483:114;:::o;27603:182::-;27743:34;27739:1;27731:6;27727:14;27720:58;27709:76;:::o;27791:224::-;27931:34;27927:1;27919:6;27915:14;27908:58;28000:7;27995:2;27987:6;27983:15;27976:32;27897:118;:::o;28021:223::-;28161:34;28157:1;28149:6;28145:14;28138:58;28230:6;28225:2;28217:6;28213:15;28206:31;28127:117;:::o;28250:173::-;28390:25;28386:1;28378:6;28374:14;28367:49;28356:67;:::o;28429:122::-;28502:24;28520:5;28502:24;:::i;:::-;28495:5;28492:35;28482:2;;28541:1;28538;28531:12;28482:2;28472:79;:::o;28557:116::-;28627:21;28642:5;28627:21;:::i;:::-;28620:5;28617:32;28607:2;;28663:1;28660;28653:12;28607:2;28597:76;:::o;28679:122::-;28752:24;28770:5;28752:24;:::i;:::-;28745:5;28742:35;28732:2;;28791:1;28788;28781:12;28732:2;28722:79;:::o
Swarm Source
ipfs://38c398a06618068a63afc903777111691378be5c13643b02be4b8e72c8977ec6
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.