Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 31 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set Fee | 16043343 | 694 days ago | IN | 0 ETH | 0.00044954 | ||||
Approve | 16043333 | 694 days ago | IN | 0 ETH | 0.00054096 | ||||
Approve | 16043327 | 694 days ago | IN | 0 ETH | 0.00055986 | ||||
Remove Limits | 16043322 | 694 days ago | IN | 0 ETH | 0.00050251 | ||||
Approve | 16043321 | 694 days ago | IN | 0 ETH | 0.00070896 | ||||
Approve | 16043319 | 694 days ago | IN | 0 ETH | 0.00074601 | ||||
Approve | 16043319 | 694 days ago | IN | 0 ETH | 0.00092948 | ||||
Approve | 16043316 | 694 days ago | IN | 0 ETH | 0.00116807 | ||||
Approve | 16043315 | 694 days ago | IN | 0 ETH | 0.00064786 | ||||
Approve | 16043315 | 694 days ago | IN | 0 ETH | 0.00064786 | ||||
Approve | 16043314 | 694 days ago | IN | 0 ETH | 0.00046126 | ||||
Set Fee | 16043313 | 694 days ago | IN | 0 ETH | 0.00042345 | ||||
Approve | 16043306 | 694 days ago | IN | 0 ETH | 0.00083886 | ||||
Set Fee | 16043305 | 694 days ago | IN | 0 ETH | 0.00039265 | ||||
Approve | 16043305 | 694 days ago | IN | 0 ETH | 0.00055162 | ||||
Approve | 16043301 | 694 days ago | IN | 0 ETH | 0.00056055 | ||||
Approve | 16043301 | 694 days ago | IN | 0 ETH | 0.00056055 | ||||
Approve | 16043301 | 694 days ago | IN | 0 ETH | 0.00056055 | ||||
Approve | 16043301 | 694 days ago | IN | 0 ETH | 0.00056055 | ||||
Approve | 16043301 | 694 days ago | IN | 0 ETH | 0.00056055 | ||||
Approve | 16043301 | 694 days ago | IN | 0 ETH | 0.00056055 | ||||
Approve | 16043301 | 694 days ago | IN | 0 ETH | 0.00056055 | ||||
Approve | 16043301 | 694 days ago | IN | 0 ETH | 0.00056055 | ||||
Approve | 16043301 | 694 days ago | IN | 0 ETH | 0.00056055 | ||||
Approve | 16043301 | 694 days ago | IN | 0 ETH | 0.00098373 |
Loading...
Loading
Contract Name:
DanksGivingInu
Compiler Version
v0.8.16+commit.07a7930e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-11-24 */ /* https://t.me/DanksGivingInu ___ _ ___ _ _ _____ / \__ _ _ __ | | _____ / _ (_)_ _(_)_ __ __ _ \_ \_ __ _ _ / /\ / _` | '_ \| |/ / __| / /_\/ \ \ / / | '_ \ / _` | / /\/ '_ \| | | | / /_// (_| | | | | <\__ \/ /_\\| |\ V /| | | | | (_| | /\/ /_ | | | | |_| | /___,' \__,_|_| |_|_|\_\___/\____/|_| \_/ |_|_| |_|\__, | \____/ |_| |_|\__,_| |___/ Dan the Danksgiving Turkey is already high AF! It is time for dinner. Join Dan on his trip to the dinner table and beyond..... 🚬🚬🚬Tokenomix🚬🚬🚬 Total Supply: 4200000 DGI💨💨 Max Transaction: 1% (wukk be remices aftrr snipres rket)💨💨💨 Max Wallet: 3% (lonit removde after sniprs erkt)💨💨💨 Taxes: Will be lowered to 6/6💨💨💨 dmn imm high af😮💨😮💨😮💨😮💨💨💨💨 */ //SPDX-License-Identifier: UNLICENSED 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 ); } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract DanksGivingInu is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "DanksGiving Inu"; string private constant _symbol = "DGI"; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 420000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 public launchBlock; //Buy Fee uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 4; //Sell Fee uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 4; //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping(address => bool) public bots; mapping(address => uint256) private cooldown; address payable private _developmentAddress = payable(0xd1E8A6eE6d45ba784D7393b8320CaC32f3643Ac5); address payable private _marketingAddress = payable(0xd1E8A6eE6d45ba784D7393b8320CaC32f3643Ac5); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 4200000 * 10**9; uint256 public _maxWalletSize = 12600000 * 10**9; uint256 public _swapTokensAtAmount = 100000 * 10**9; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_developmentAddress] = true; _isExcludedFromFee[_marketingAddress] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && to != owner()) { //Trade start check if (!tradingOpen) { require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled"); } require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } bool takeFee = true; //Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { //Set Fee for Buys if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } 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 { _developmentAddress.transfer(amount.mul(50).div(100)); _marketingAddress.transfer(amount.mul(50).div(100)); } //enable trading with 99 tax to rekt snipers function setTrading(bool _tradingOpen) public onlyOwner { _taxFeeOnBuy = 99; tradingOpen = _tradingOpen; } function manualswap() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function blockBots(address[] memory bots_) public onlyOwner { for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function unblockBot(address notbot) public onlyOwner { bots[notbot] = false; } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } //Remove Limits function removeLimits() public onlyOwner { _maxTxAmount = _tTotal; _maxWalletSize = _tTotal; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526200001a6705d423c655aa000060001962000368565b62000028906000196200038b565b600655600060098190556004600a819055600b829055600c819055600d829055600e819055600f91909155601055601380546001600160a01b031990811673d1e8a6ee6d45ba784d7393b8320cac32f3643ac59081179092556014805490911690911790556016805461ffff60a81b1916600160b01b179055660eebe0b40e8000601755662cc3a21c2b8000601855655af3107a4000601955348015620000ce57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006543360009081526002602090815260409182902092909255601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa1580156200018c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b29190620003b3565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000200573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002269190620003b3565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000274573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029a9190620003b3565b601680546001600160a01b0319166001600160a01b03928316179055600080548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055601354851684528284208054821683179055601454909416835291208054909216179055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6705d423c655aa00006040516200035991815260200190565b60405180910390a350620003e5565b6000826200038657634e487b7160e01b600052601260045260246000fd5b500690565b81810381811115620003ad57634e487b7160e01b600052601160045260246000fd5b92915050565b600060208284031215620003c657600080fd5b81516001600160a01b0381168114620003de57600080fd5b9392505050565b6121de80620003f56000396000f3fe6080604052600436106101c55760003560e01c8063751039fc116100f7578063a2a957bb11610095578063c492f04611610064578063c492f0461461053e578063d00efb2f1461055e578063dd62ed3e14610574578063f2fde38b146105ba57600080fd5b8063a2a957bb146104b9578063a9059cbb146104d9578063bfd79284146104f9578063c3c8cd801461052957600080fd5b80638f70ccf7116100d15780638f70ccf71461041d5780638f9a55c01461043d57806395d89b411461045357806398a5c3151461049957600080fd5b8063751039fc146103d45780637d1db4a5146103e95780638da5cb5b146103ff57600080fd5b8063313ce567116101645780636d8aa8f81161013e5780636d8aa8f81461036a5780636fc3eaec1461038a57806370a082311461039f578063715018a6146103bf57600080fd5b8063313ce5671461030e57806349bd5a5e1461032a5780636b9990531461034a57600080fd5b80631694505e116101a05780631694505e1461027b57806318160ddd146102b357806323b872dd146102d85780632fd689e3146102f857600080fd5b8062b8cf2a146101d157806306fdde03146101f3578063095ea7b31461024b57600080fd5b366101cc57005b600080fd5b3480156101dd57600080fd5b506101f16101ec366004611d75565b6105da565b005b3480156101ff57600080fd5b5060408051808201909152600f81527f44616e6b73476976696e6720496e75000000000000000000000000000000000060208201525b6040516102429190611e3a565b60405180910390f35b34801561025757600080fd5b5061026b610266366004611e88565b6106a5565b6040519015158152602001610242565b34801561028757600080fd5b5060155461029b906001600160a01b031681565b6040516001600160a01b039091168152602001610242565b3480156102bf57600080fd5b506705d423c655aa00005b604051908152602001610242565b3480156102e457600080fd5b5061026b6102f3366004611eb4565b6106bc565b34801561030457600080fd5b506102ca60195481565b34801561031a57600080fd5b5060405160098152602001610242565b34801561033657600080fd5b5060165461029b906001600160a01b031681565b34801561035657600080fd5b506101f1610365366004611ef5565b610725565b34801561037657600080fd5b506101f1610385366004611f22565b6107a0565b34801561039657600080fd5b506101f1610846565b3480156103ab57600080fd5b506102ca6103ba366004611ef5565b610891565b3480156103cb57600080fd5b506101f16108b3565b3480156103e057600080fd5b506101f161096f565b3480156103f557600080fd5b506102ca60175481565b34801561040b57600080fd5b506000546001600160a01b031661029b565b34801561042957600080fd5b506101f1610438366004611f22565b6109dc565b34801561044957600080fd5b506102ca60185481565b34801561045f57600080fd5b5060408051808201909152600381527f44474900000000000000000000000000000000000000000000000000000000006020820152610235565b3480156104a557600080fd5b506101f16104b4366004611f3d565b610a85565b3480156104c557600080fd5b506101f16104d4366004611f56565b610ae4565b3480156104e557600080fd5b5061026b6104f4366004611e88565b610b52565b34801561050557600080fd5b5061026b610514366004611ef5565b60116020526000908152604090205460ff1681565b34801561053557600080fd5b506101f1610b5f565b34801561054a57600080fd5b506101f1610559366004611f88565b610bb3565b34801561056a57600080fd5b506102ca60085481565b34801561058057600080fd5b506102ca61058f36600461200c565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156105c657600080fd5b506101f16105d5366004611ef5565b610c84565b6000546001600160a01b031633146106395760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b60005b81518110156106a15760016011600084848151811061065d5761065d612045565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061069981612071565b91505061063c565b5050565b60006106b2338484610dcd565b5060015b92915050565b60006106c9848484610f25565b61071b843361071685604051806060016040528060288152602001612181602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611511565b610dcd565b5060019392505050565b6000546001600160a01b0316331461077f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610630565b6001600160a01b03166000908152601160205260409020805460ff19169055565b6000546001600160a01b031633146107fa5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610630565b60168054911515760100000000000000000000000000000000000000000000027fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff909216919091179055565b6013546001600160a01b0316336001600160a01b0316148061087b57506014546001600160a01b0316336001600160a01b0316145b61088457600080fd5b4761088e8161154b565b50565b6001600160a01b0381166000908152600260205260408120546106b6906115e0565b6000546001600160a01b0316331461090d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610630565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6000546001600160a01b031633146109c95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610630565b6705d423c655aa00006017819055601855565b6000546001600160a01b03163314610a365760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610630565b6063600a556016805491151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff909216919091179055565b6000546001600160a01b03163314610adf5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610630565b601955565b6000546001600160a01b03163314610b3e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610630565b600993909355600b91909155600a55600c55565b60006106b2338484610f25565b6013546001600160a01b0316336001600160a01b03161480610b9457506014546001600160a01b0316336001600160a01b0316145b610b9d57600080fd5b6000610ba830610891565b905061088e81611677565b6000546001600160a01b03163314610c0d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610630565b60005b82811015610c7e578160056000868685818110610c2f57610c2f612045565b9050602002016020810190610c449190611ef5565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610c7681612071565b915050610c10565b50505050565b6000546001600160a01b03163314610cde5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610630565b6001600160a01b038116610d5a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610630565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6001600160a01b038316610e485760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610630565b6001600160a01b038216610ec45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610630565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610fa15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610630565b6001600160a01b03821661101d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610630565b600081116110935760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f00000000000000000000000000000000000000000000006064820152608401610630565b6000546001600160a01b038481169116148015906110bf57506000546001600160a01b03838116911614155b1561140a5760165474010000000000000000000000000000000000000000900460ff16611169576000546001600160a01b038481169116146111695760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610630565b6017548111156111bb5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610630565b6001600160a01b03831660009081526011602052604090205460ff161580156111fd57506001600160a01b03821660009081526011602052604090205460ff16155b61126f5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201527f65642100000000000000000000000000000000000000000000000000000000006064820152608401610630565b6016546001600160a01b0383811691161461130e576018548161129184610891565b61129b919061208b565b1061130e5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960448201527f7a652100000000000000000000000000000000000000000000000000000000006064820152608401610630565b600061131930610891565b6019546017549192508210159082106113325760175491505b80801561135b57506016547501000000000000000000000000000000000000000000900460ff16155b801561137557506016546001600160a01b03868116911614155b801561139d5750601654760100000000000000000000000000000000000000000000900460ff165b80156113c257506001600160a01b03851660009081526005602052604090205460ff16155b80156113e757506001600160a01b03841660009081526005602052604090205460ff16155b15611407576113f582611677565b478015611405576114054761154b565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061144c57506001600160a01b03831660009081526005602052604090205460ff165b8061147e57506016546001600160a01b0385811691161480159061147e57506016546001600160a01b03848116911614155b1561148b57506000611505565b6016546001600160a01b0385811691161480156114b657506015546001600160a01b03848116911614155b156114c857600954600d55600a54600e555b6016546001600160a01b0384811691161480156114f357506015546001600160a01b03858116911614155b1561150557600b54600d55600c54600e555b610c7e8484848461186b565b600081848411156115355760405162461bcd60e51b81526004016106309190611e3a565b506000611542848661209e565b95945050505050565b6013546001600160a01b03166108fc611570606461156a856032611899565b90611937565b6040518115909202916000818181858888f19350505050158015611598573d6000803e3d6000fd5b506014546001600160a01b03166108fc6115b8606461156a856032611899565b6040518115909202916000818181858888f193505050501580156106a1573d6000803e3d6000fd5b600060065482111561165a5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201527f65666c656374696f6e73000000000000000000000000000000000000000000006064820152608401610630565b6000611664611979565b90506116708382611937565b9392505050565b601680547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff16750100000000000000000000000000000000000000000017905560408051600280825260608201835260009260208301908036833701905050905030816000815181106116ec576116ec612045565b6001600160a01b03928316602091820292909201810191909152601554604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa15801561175e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178291906120b1565b8160018151811061179557611795612045565b6001600160a01b0392831660209182029290920101526015546117bb9130911684610dcd565b6015546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063791ac9479061180d9085906000908690309042906004016120ce565b600060405180830381600087803b15801561182757600080fd5b505af115801561183b573d6000803e3d6000fd5b5050601680547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff16905550505050565b806118785761187861199c565b6118838484846119ca565b80610c7e57610c7e600f54600d55601054600e55565b6000826000036118ab575060006106b6565b60006118b7838561213f565b9050826118c4858361215e565b146116705760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f77000000000000000000000000000000000000000000000000000000000000006064820152608401610630565b600061167083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ac1565b6000806000611986611aef565b90925090506119958282611937565b9250505090565b600d541580156119ac5750600e54155b156119b357565b600d8054600f55600e805460105560009182905555565b6000806000806000806119dc87611b2f565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611a0e9087611b8c565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611a3d9086611bce565b6001600160a01b038916600090815260026020526040902055611a5f81611c2d565b611a698483611c77565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611aae91815260200190565b60405180910390a3505050505050505050565b60008183611ae25760405162461bcd60e51b81526004016106309190611e3a565b506000611542848661215e565b60065460009081906705d423c655aa0000611b0a8282611937565b821015611b26575050600654926705d423c655aa000092509050565b90939092509050565b6000806000806000806000806000611b4c8a600d54600e54611c9b565b9250925092506000611b5c611979565b90506000806000611b6f8e878787611cea565b919e509c509a509598509396509194505050505091939550919395565b600061167083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611511565b600080611bdb838561208b565b9050838110156116705760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610630565b6000611c37611979565b90506000611c458383611899565b30600090815260026020526040902054909150611c629082611bce565b30600090815260026020526040902055505050565b600654611c849083611b8c565b600655600754611c949082611bce565b6007555050565b6000808080611caf606461156a8989611899565b90506000611cc2606461156a8a89611899565b90506000611cda82611cd48b86611b8c565b90611b8c565b9992985090965090945050505050565b6000808080611cf98886611899565b90506000611d078887611899565b90506000611d158888611899565b90506000611d2782611cd48686611b8c565b939b939a50919850919650505050505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461088e57600080fd5b8035611d7081611d50565b919050565b60006020808385031215611d8857600080fd5b823567ffffffffffffffff80821115611da057600080fd5b818501915085601f830112611db457600080fd5b813581811115611dc657611dc6611d3a565b8060051b604051601f19603f83011681018181108582111715611deb57611deb611d3a565b604052918252848201925083810185019188831115611e0957600080fd5b938501935b82851015611e2e57611e1f85611d65565b84529385019392850192611e0e565b98975050505050505050565b600060208083528351808285015260005b81811015611e6757858101830151858201604001528201611e4b565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611e9b57600080fd5b8235611ea681611d50565b946020939093013593505050565b600080600060608486031215611ec957600080fd5b8335611ed481611d50565b92506020840135611ee481611d50565b929592945050506040919091013590565b600060208284031215611f0757600080fd5b813561167081611d50565b80358015158114611d7057600080fd5b600060208284031215611f3457600080fd5b61167082611f12565b600060208284031215611f4f57600080fd5b5035919050565b60008060008060808587031215611f6c57600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060408486031215611f9d57600080fd5b833567ffffffffffffffff80821115611fb557600080fd5b818601915086601f830112611fc957600080fd5b813581811115611fd857600080fd5b8760208260051b8501011115611fed57600080fd5b6020928301955093506120039186019050611f12565b90509250925092565b6000806040838503121561201f57600080fd5b823561202a81611d50565b9150602083013561203a81611d50565b809150509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060001982036120845761208461205b565b5060010190565b808201808211156106b6576106b661205b565b818103818111156106b6576106b661205b565b6000602082840312156120c357600080fd5b815161167081611d50565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561211e5784516001600160a01b0316835293830193918301916001016120f9565b50506001600160a01b03969096166060850152505050608001529392505050565b60008160001904831182151516156121595761215961205b565b500290565b60008261217b57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122067941cb2f36dbd6054a8f38bc177a961f5b7abd6dfe07296f930c789c2c0974d64736f6c63430008100033
Deployed Bytecode
0x6080604052600436106101c55760003560e01c8063751039fc116100f7578063a2a957bb11610095578063c492f04611610064578063c492f0461461053e578063d00efb2f1461055e578063dd62ed3e14610574578063f2fde38b146105ba57600080fd5b8063a2a957bb146104b9578063a9059cbb146104d9578063bfd79284146104f9578063c3c8cd801461052957600080fd5b80638f70ccf7116100d15780638f70ccf71461041d5780638f9a55c01461043d57806395d89b411461045357806398a5c3151461049957600080fd5b8063751039fc146103d45780637d1db4a5146103e95780638da5cb5b146103ff57600080fd5b8063313ce567116101645780636d8aa8f81161013e5780636d8aa8f81461036a5780636fc3eaec1461038a57806370a082311461039f578063715018a6146103bf57600080fd5b8063313ce5671461030e57806349bd5a5e1461032a5780636b9990531461034a57600080fd5b80631694505e116101a05780631694505e1461027b57806318160ddd146102b357806323b872dd146102d85780632fd689e3146102f857600080fd5b8062b8cf2a146101d157806306fdde03146101f3578063095ea7b31461024b57600080fd5b366101cc57005b600080fd5b3480156101dd57600080fd5b506101f16101ec366004611d75565b6105da565b005b3480156101ff57600080fd5b5060408051808201909152600f81527f44616e6b73476976696e6720496e75000000000000000000000000000000000060208201525b6040516102429190611e3a565b60405180910390f35b34801561025757600080fd5b5061026b610266366004611e88565b6106a5565b6040519015158152602001610242565b34801561028757600080fd5b5060155461029b906001600160a01b031681565b6040516001600160a01b039091168152602001610242565b3480156102bf57600080fd5b506705d423c655aa00005b604051908152602001610242565b3480156102e457600080fd5b5061026b6102f3366004611eb4565b6106bc565b34801561030457600080fd5b506102ca60195481565b34801561031a57600080fd5b5060405160098152602001610242565b34801561033657600080fd5b5060165461029b906001600160a01b031681565b34801561035657600080fd5b506101f1610365366004611ef5565b610725565b34801561037657600080fd5b506101f1610385366004611f22565b6107a0565b34801561039657600080fd5b506101f1610846565b3480156103ab57600080fd5b506102ca6103ba366004611ef5565b610891565b3480156103cb57600080fd5b506101f16108b3565b3480156103e057600080fd5b506101f161096f565b3480156103f557600080fd5b506102ca60175481565b34801561040b57600080fd5b506000546001600160a01b031661029b565b34801561042957600080fd5b506101f1610438366004611f22565b6109dc565b34801561044957600080fd5b506102ca60185481565b34801561045f57600080fd5b5060408051808201909152600381527f44474900000000000000000000000000000000000000000000000000000000006020820152610235565b3480156104a557600080fd5b506101f16104b4366004611f3d565b610a85565b3480156104c557600080fd5b506101f16104d4366004611f56565b610ae4565b3480156104e557600080fd5b5061026b6104f4366004611e88565b610b52565b34801561050557600080fd5b5061026b610514366004611ef5565b60116020526000908152604090205460ff1681565b34801561053557600080fd5b506101f1610b5f565b34801561054a57600080fd5b506101f1610559366004611f88565b610bb3565b34801561056a57600080fd5b506102ca60085481565b34801561058057600080fd5b506102ca61058f36600461200c565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156105c657600080fd5b506101f16105d5366004611ef5565b610c84565b6000546001600160a01b031633146106395760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b60005b81518110156106a15760016011600084848151811061065d5761065d612045565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061069981612071565b91505061063c565b5050565b60006106b2338484610dcd565b5060015b92915050565b60006106c9848484610f25565b61071b843361071685604051806060016040528060288152602001612181602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611511565b610dcd565b5060019392505050565b6000546001600160a01b0316331461077f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610630565b6001600160a01b03166000908152601160205260409020805460ff19169055565b6000546001600160a01b031633146107fa5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610630565b60168054911515760100000000000000000000000000000000000000000000027fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff909216919091179055565b6013546001600160a01b0316336001600160a01b0316148061087b57506014546001600160a01b0316336001600160a01b0316145b61088457600080fd5b4761088e8161154b565b50565b6001600160a01b0381166000908152600260205260408120546106b6906115e0565b6000546001600160a01b0316331461090d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610630565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6000546001600160a01b031633146109c95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610630565b6705d423c655aa00006017819055601855565b6000546001600160a01b03163314610a365760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610630565b6063600a556016805491151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff909216919091179055565b6000546001600160a01b03163314610adf5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610630565b601955565b6000546001600160a01b03163314610b3e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610630565b600993909355600b91909155600a55600c55565b60006106b2338484610f25565b6013546001600160a01b0316336001600160a01b03161480610b9457506014546001600160a01b0316336001600160a01b0316145b610b9d57600080fd5b6000610ba830610891565b905061088e81611677565b6000546001600160a01b03163314610c0d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610630565b60005b82811015610c7e578160056000868685818110610c2f57610c2f612045565b9050602002016020810190610c449190611ef5565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610c7681612071565b915050610c10565b50505050565b6000546001600160a01b03163314610cde5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610630565b6001600160a01b038116610d5a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610630565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6001600160a01b038316610e485760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610630565b6001600160a01b038216610ec45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610630565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610fa15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610630565b6001600160a01b03821661101d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610630565b600081116110935760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f00000000000000000000000000000000000000000000006064820152608401610630565b6000546001600160a01b038481169116148015906110bf57506000546001600160a01b03838116911614155b1561140a5760165474010000000000000000000000000000000000000000900460ff16611169576000546001600160a01b038481169116146111695760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610630565b6017548111156111bb5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610630565b6001600160a01b03831660009081526011602052604090205460ff161580156111fd57506001600160a01b03821660009081526011602052604090205460ff16155b61126f5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201527f65642100000000000000000000000000000000000000000000000000000000006064820152608401610630565b6016546001600160a01b0383811691161461130e576018548161129184610891565b61129b919061208b565b1061130e5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960448201527f7a652100000000000000000000000000000000000000000000000000000000006064820152608401610630565b600061131930610891565b6019546017549192508210159082106113325760175491505b80801561135b57506016547501000000000000000000000000000000000000000000900460ff16155b801561137557506016546001600160a01b03868116911614155b801561139d5750601654760100000000000000000000000000000000000000000000900460ff165b80156113c257506001600160a01b03851660009081526005602052604090205460ff16155b80156113e757506001600160a01b03841660009081526005602052604090205460ff16155b15611407576113f582611677565b478015611405576114054761154b565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061144c57506001600160a01b03831660009081526005602052604090205460ff165b8061147e57506016546001600160a01b0385811691161480159061147e57506016546001600160a01b03848116911614155b1561148b57506000611505565b6016546001600160a01b0385811691161480156114b657506015546001600160a01b03848116911614155b156114c857600954600d55600a54600e555b6016546001600160a01b0384811691161480156114f357506015546001600160a01b03858116911614155b1561150557600b54600d55600c54600e555b610c7e8484848461186b565b600081848411156115355760405162461bcd60e51b81526004016106309190611e3a565b506000611542848661209e565b95945050505050565b6013546001600160a01b03166108fc611570606461156a856032611899565b90611937565b6040518115909202916000818181858888f19350505050158015611598573d6000803e3d6000fd5b506014546001600160a01b03166108fc6115b8606461156a856032611899565b6040518115909202916000818181858888f193505050501580156106a1573d6000803e3d6000fd5b600060065482111561165a5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201527f65666c656374696f6e73000000000000000000000000000000000000000000006064820152608401610630565b6000611664611979565b90506116708382611937565b9392505050565b601680547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff16750100000000000000000000000000000000000000000017905560408051600280825260608201835260009260208301908036833701905050905030816000815181106116ec576116ec612045565b6001600160a01b03928316602091820292909201810191909152601554604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa15801561175e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178291906120b1565b8160018151811061179557611795612045565b6001600160a01b0392831660209182029290920101526015546117bb9130911684610dcd565b6015546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063791ac9479061180d9085906000908690309042906004016120ce565b600060405180830381600087803b15801561182757600080fd5b505af115801561183b573d6000803e3d6000fd5b5050601680547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff16905550505050565b806118785761187861199c565b6118838484846119ca565b80610c7e57610c7e600f54600d55601054600e55565b6000826000036118ab575060006106b6565b60006118b7838561213f565b9050826118c4858361215e565b146116705760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f77000000000000000000000000000000000000000000000000000000000000006064820152608401610630565b600061167083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ac1565b6000806000611986611aef565b90925090506119958282611937565b9250505090565b600d541580156119ac5750600e54155b156119b357565b600d8054600f55600e805460105560009182905555565b6000806000806000806119dc87611b2f565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611a0e9087611b8c565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611a3d9086611bce565b6001600160a01b038916600090815260026020526040902055611a5f81611c2d565b611a698483611c77565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611aae91815260200190565b60405180910390a3505050505050505050565b60008183611ae25760405162461bcd60e51b81526004016106309190611e3a565b506000611542848661215e565b60065460009081906705d423c655aa0000611b0a8282611937565b821015611b26575050600654926705d423c655aa000092509050565b90939092509050565b6000806000806000806000806000611b4c8a600d54600e54611c9b565b9250925092506000611b5c611979565b90506000806000611b6f8e878787611cea565b919e509c509a509598509396509194505050505091939550919395565b600061167083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611511565b600080611bdb838561208b565b9050838110156116705760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610630565b6000611c37611979565b90506000611c458383611899565b30600090815260026020526040902054909150611c629082611bce565b30600090815260026020526040902055505050565b600654611c849083611b8c565b600655600754611c949082611bce565b6007555050565b6000808080611caf606461156a8989611899565b90506000611cc2606461156a8a89611899565b90506000611cda82611cd48b86611b8c565b90611b8c565b9992985090965090945050505050565b6000808080611cf98886611899565b90506000611d078887611899565b90506000611d158888611899565b90506000611d2782611cd48686611b8c565b939b939a50919850919650505050505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461088e57600080fd5b8035611d7081611d50565b919050565b60006020808385031215611d8857600080fd5b823567ffffffffffffffff80821115611da057600080fd5b818501915085601f830112611db457600080fd5b813581811115611dc657611dc6611d3a565b8060051b604051601f19603f83011681018181108582111715611deb57611deb611d3a565b604052918252848201925083810185019188831115611e0957600080fd5b938501935b82851015611e2e57611e1f85611d65565b84529385019392850192611e0e565b98975050505050505050565b600060208083528351808285015260005b81811015611e6757858101830151858201604001528201611e4b565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611e9b57600080fd5b8235611ea681611d50565b946020939093013593505050565b600080600060608486031215611ec957600080fd5b8335611ed481611d50565b92506020840135611ee481611d50565b929592945050506040919091013590565b600060208284031215611f0757600080fd5b813561167081611d50565b80358015158114611d7057600080fd5b600060208284031215611f3457600080fd5b61167082611f12565b600060208284031215611f4f57600080fd5b5035919050565b60008060008060808587031215611f6c57600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060408486031215611f9d57600080fd5b833567ffffffffffffffff80821115611fb557600080fd5b818601915086601f830112611fc957600080fd5b813581811115611fd857600080fd5b8760208260051b8501011115611fed57600080fd5b6020928301955093506120039186019050611f12565b90509250925092565b6000806040838503121561201f57600080fd5b823561202a81611d50565b9150602083013561203a81611d50565b809150509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060001982036120845761208461205b565b5060010190565b808201808211156106b6576106b661205b565b818103818111156106b6576106b661205b565b6000602082840312156120c357600080fd5b815161167081611d50565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561211e5784516001600160a01b0316835293830193918301916001016120f9565b50506001600160a01b03969096166060850152505050608001529392505050565b60008160001904831182151516156121595761215961205b565b500290565b60008261217b57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122067941cb2f36dbd6054a8f38bc177a961f5b7abd6dfe07296f930c789c2c0974d64736f6c63430008100033
Deployed Bytecode Sourcemap
5118:13699:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14077:169;;;;;;;;;;-1:-1:-1;14077:169:0;;;;;:::i;:::-;;:::i;:::-;;7715:83;;;;;;;;;;-1:-1:-1;7785:5:0;;;;;;;;;;;;;;;;;7715:83;;;;;;;:::i;:::-;;;;;;;;8647:193;;;;;;;;;;-1:-1:-1;8647:193:0;;;;;:::i;:::-;;:::i;:::-;;;2783:14:1;;2776:22;2758:41;;2746:2;2731:18;8647:193:0;2618:187:1;6556:41:0;;;;;;;;;;-1:-1:-1;6556:41:0;;;;-1:-1:-1;;;;;6556:41:0;;;;;;-1:-1:-1;;;;;3000:55:1;;;2982:74;;2970:2;2955:18;6556:41:0;2810:252:1;7995:95:0;;;;;;;;;;-1:-1:-1;5680:17:0;7995:95;;;3213:25:1;;;3201:2;3186:18;7995:95:0;3067:177:1;8849:446:0;;;;;;;;;;-1:-1:-1;8849:446:0;;;;;:::i;:::-;;:::i;6857:51::-;;;;;;;;;;;;;;;;7903:83;;;;;;;;;;-1:-1:-1;7903:83:0;;5353:1;3852:36:1;;3840:2;3825:18;7903:83:0;3710:184:1;6604:28:0;;;;;;;;;;-1:-1:-1;6604:28:0;;;;-1:-1:-1;;;;;6604:28:0;;;14255:92;;;;;;;;;;-1:-1:-1;14255:92:0;;;;;:::i;:::-;;:::i;18318:101::-;;;;;;;;;;-1:-1:-1;18318:101:0;;;;;:::i;:::-;;:::i;13833:235::-;;;;;;;;;;;;;:::i;8099:138::-;;;;;;;;;;-1:-1:-1;8099:138:0;;;;;:::i;:::-;;:::i;2591:148::-;;;;;;;;;;;;;:::i;18452:117::-;;;;;;;;;;;;;:::i;6748:45::-;;;;;;;;;;;;;;;;2375:79;;;;;;;;;;-1:-1:-1;2413:7:0;2440:6;-1:-1:-1;;;;;2440:6:0;2375:79;;13450:129;;;;;;;;;;-1:-1:-1;13450:129:0;;;;;:::i;:::-;;:::i;6801:48::-;;;;;;;;;;;;;;;;7807:87;;;;;;;;;;-1:-1:-1;7879:7:0;;;;;;;;;;;;;;;;;7807:87;;18126:139;;;;;;;;;;-1:-1:-1;18126:139:0;;;;;:::i;:::-;;:::i;17779:294::-;;;;;;;;;;-1:-1:-1;17779:294:0;;;;;:::i;:::-;;:::i;8246:199::-;;;;;;;;;;-1:-1:-1;8246:199:0;;;;;:::i;:::-;;:::i;6250:36::-;;;;;;;;;;-1:-1:-1;6250:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13588:236;;;;;;;;;;;;;:::i;18580:234::-;;;;;;;;;;-1:-1:-1;18580:234:0;;;;;:::i;:::-;;:::i;5793:26::-;;;;;;;;;;;;;;;;8454:184;;;;;;;;;;-1:-1:-1;8454:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;8603:18:0;;;8571:7;8603:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8454:184;2748:244;;;;;;;;;;-1:-1:-1;2748:244:0;;;;;:::i;:::-;;:::i;14077:169::-;2503:6;;-1:-1:-1;;;;;2503:6:0;1204:10;2503:22;2495:67;;;;-1:-1:-1;;;2495:67:0;;6596:2:1;2495:67:0;;;6578:21:1;;;6615:18;;;6608:30;6674:34;6654:18;;;6647:62;6726:18;;2495:67:0;;;;;;;;;14153:9:::1;14148:91;14172:5;:12;14168:1;:16;14148:91;;;14223:4;14206;:14;14211:5;14217:1;14211:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14206:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14206:14:0;:21;;-1:-1:-1;;14206:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14186:3;::::1;::::0;::::1;:::i;:::-;;;;14148:91;;;;14077:169:::0;:::o;8647:193::-;8749:4;8771:39;1204:10;8794:7;8803:6;8771:8;:39::i;:::-;-1:-1:-1;8828:4:0;8647:193;;;;;:::o;8849:446::-;8981:4;8998:36;9008:6;9016:9;9027:6;8998:9;:36::i;:::-;9045:220;9068:6;1204:10;9116:138;9172:6;9116:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9116:19:0;;;;;;:11;:19;;;;;;;;1204:10;9116:33;;;;;;;;;;:37;:138::i;:::-;9045:8;:220::i;:::-;-1:-1:-1;9283:4:0;8849:446;;;;;:::o;14255:92::-;2503:6;;-1:-1:-1;;;;;2503:6:0;1204:10;2503:22;2495:67;;;;-1:-1:-1;;;2495:67:0;;6596:2:1;2495:67:0;;;6578:21:1;;;6615:18;;;6608:30;6674:34;6654:18;;;6647:62;6726:18;;2495:67:0;6394:356:1;2495:67:0;-1:-1:-1;;;;;14319:12:0::1;14334:5;14319:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;14319:20:0::1;::::0;;14255:92::o;18318:101::-;2503:6;;-1:-1:-1;;;;;2503:6:0;1204:10;2503:22;2495:67;;;;-1:-1:-1;;;2495:67:0;;6596:2:1;2495:67:0;;;6578:21:1;;;6615:18;;;6608:30;6674:34;6654:18;;;6647:62;6726:18;;2495:67:0;6394:356:1;2495:67:0;18385:11:::1;:26:::0;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;18318:101::o;13833:235::-;13899:19;;-1:-1:-1;;;;;13899:19:0;1204:10;-1:-1:-1;;;;;13883:35:0;;:72;;;-1:-1:-1;13938:17:0;;-1:-1:-1;;;;;13938:17:0;1204:10;-1:-1:-1;;;;;13922:33:0;;13883:72;13875:81;;;;;;13996:21;14028:32;13996:21;14028:12;:32::i;:::-;13864:204;13833:235::o;8099:138::-;-1:-1:-1;;;;;8212:16:0;;8165:7;8212:16;;;:7;:16;;;;;;8192:37;;:19;:37::i;2591:148::-;2503:6;;-1:-1:-1;;;;;2503:6:0;1204:10;2503:22;2495:67;;;;-1:-1:-1;;;2495:67:0;;6596:2:1;2495:67:0;;;6578:21:1;;;6615:18;;;6608:30;6674:34;6654:18;;;6647:62;6726:18;;2495:67:0;6394:356:1;2495:67:0;2698:1:::1;2682:6:::0;;2661:40:::1;::::0;-1:-1:-1;;;;;2682:6:0;;::::1;::::0;2661:40:::1;::::0;2698:1;;2661:40:::1;2729:1;2712:19:::0;;;::::1;::::0;;2591:148::o;18452:117::-;2503:6;;-1:-1:-1;;;;;2503:6:0;1204:10;2503:22;2495:67;;;;-1:-1:-1;;;2495:67:0;;6596:2:1;2495:67:0;;;6578:21:1;;;6615:18;;;6608:30;6674:34;6654:18;;;6647:62;6726:18;;2495:67:0;6394:356:1;2495:67:0;5680:17:::1;18504:12;:22:::0;;;18537:14:::1;:24:::0;18452:117::o;13450:129::-;2503:6;;-1:-1:-1;;;;;2503:6:0;1204:10;2503:22;2495:67;;;;-1:-1:-1;;;2495:67:0;;6596:2:1;2495:67:0;;;6578:21:1;;;6615:18;;;6608:30;6674:34;6654:18;;;6647:62;6726:18;;2495:67:0;6394:356:1;2495:67:0;13532:2:::1;13517:12;:17:::0;13545:11:::1;:26:::0;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;13450:129::o;18126:139::-;2503:6;;-1:-1:-1;;;;;2503:6:0;1204:10;2503:22;2495:67;;;;-1:-1:-1;;;2495:67:0;;6596:2:1;2495:67:0;;;6578:21:1;;;6615:18;;;6608:30;6674:34;6654:18;;;6647:62;6726:18;;2495:67:0;6394:356:1;2495:67:0;18217:19:::1;:40:::0;18126:139::o;17779:294::-;2503:6;;-1:-1:-1;;;;;2503:6:0;1204:10;2503:22;2495:67;;;;-1:-1:-1;;;2495:67:0;;6596:2:1;2495:67:0;;;6578:21:1;;;6615:18;;;6608:30;6674:34;6654:18;;;6647:62;6726:18;;2495:67:0;6394:356:1;2495:67:0;17913:14:::1;:30:::0;;;;17954:15:::1;:32:::0;;;;18000:12:::1;:26:::0;18037:13:::1;:28:::0;17779:294::o;8246:199::-;8351:4;8373:42;1204:10;8397:9;8408:6;8373:9;:42::i;13588:236::-;13654:19;;-1:-1:-1;;;;;13654:19:0;1204:10;-1:-1:-1;;;;;13638:35:0;;:72;;;-1:-1:-1;13693:17:0;;-1:-1:-1;;;;;13693:17:0;1204:10;-1:-1:-1;;;;;13677:33:0;;13638:72;13630:81;;;;;;13722:23;13748:24;13766:4;13748:9;:24::i;:::-;13722:50;;13783:33;13800:15;13783:16;:33::i;18580:234::-;2503:6;;-1:-1:-1;;;;;2503:6:0;1204:10;2503:22;2495:67;;;;-1:-1:-1;;;2495:67:0;;6596:2:1;2495:67:0;;;6578:21:1;;;6615:18;;;6608:30;6674:34;6654:18;;;6647:62;6726:18;;2495:67:0;6394:356:1;2495:67:0;18697:9:::1;18693:114;18712:19:::0;;::::1;18693:114;;;18787:8;18753:18;:31;18772:8;;18781:1;18772:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18753:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18753:31:0;:42;;-1:-1:-1;;18753:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18733:3;::::1;::::0;::::1;:::i;:::-;;;;18693:114;;;;18580:234:::0;;;:::o;2748:244::-;2503:6;;-1:-1:-1;;;;;2503:6:0;1204:10;2503:22;2495:67;;;;-1:-1:-1;;;2495:67:0;;6596:2:1;2495:67:0;;;6578:21:1;;;6615:18;;;6608:30;6674:34;6654:18;;;6647:62;6726:18;;2495:67:0;6394:356:1;2495:67:0;-1:-1:-1;;;;;2837:22:0;::::1;2829:73;;;::::0;-1:-1:-1;;;2829:73:0;;7535:2:1;2829:73:0::1;::::0;::::1;7517:21:1::0;7574:2;7554:18;;;7547:30;7613:34;7593:18;;;7586:62;7684:8;7664:18;;;7657:36;7710:19;;2829:73:0::1;7333:402:1::0;2829:73:0::1;2939:6;::::0;;2918:38:::1;::::0;-1:-1:-1;;;;;2918:38:0;;::::1;::::0;2939:6;::::1;::::0;2918:38:::1;::::0;::::1;2967:6;:17:::0;;;::::1;-1:-1:-1::0;;;;;2967:17:0;;;::::1;::::0;;;::::1;::::0;;2748:244::o;9992:369::-;-1:-1:-1;;;;;10119:19:0;;10111:68;;;;-1:-1:-1;;;10111:68:0;;7942:2:1;10111:68:0;;;7924:21:1;7981:2;7961:18;;;7954:30;8020:34;8000:18;;;7993:62;8091:6;8071:18;;;8064:34;8115:19;;10111:68:0;7740:400:1;10111:68:0;-1:-1:-1;;;;;10198:21:0;;10190:68;;;;-1:-1:-1;;;10190:68:0;;8347:2:1;10190:68:0;;;8329:21:1;8386:2;8366:18;;;8359:30;8425:34;8405:18;;;8398:62;8496:4;8476:18;;;8469:32;8518:19;;10190:68:0;8145:398:1;10190:68:0;-1:-1:-1;;;;;10269:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10321:32;;3213:25:1;;;10321:32:0;;3186:18:1;10321:32:0;;;;;;;9992:369;;;:::o;10370:2343::-;-1:-1:-1;;;;;10492:18:0;;10484:68;;;;-1:-1:-1;;;10484:68:0;;8750:2:1;10484:68:0;;;8732:21:1;8789:2;8769:18;;;8762:30;8828:34;8808:18;;;8801:62;8899:7;8879:18;;;8872:35;8924:19;;10484:68:0;8548:401:1;10484:68:0;-1:-1:-1;;;;;10571:16:0;;10563:64;;;;-1:-1:-1;;;10563:64:0;;9156:2:1;10563:64:0;;;9138:21:1;9195:2;9175:18;;;9168:30;9234:34;9214:18;;;9207:62;9305:5;9285:18;;;9278:33;9328:19;;10563:64:0;8954:399:1;10563:64:0;10655:1;10646:6;:10;10638:64;;;;-1:-1:-1;;;10638:64:0;;9560:2:1;10638:64:0;;;9542:21:1;9599:2;9579:18;;;9572:30;9638:34;9618:18;;;9611:62;9709:11;9689:18;;;9682:39;9738:19;;10638:64:0;9358:405:1;10638:64:0;2413:7;2440:6;-1:-1:-1;;;;;10720:15:0;;;2440:6;;10720:15;;;;:32;;-1:-1:-1;2413:7:0;2440:6;-1:-1:-1;;;;;10739:13:0;;;2440:6;;10739:13;;10720:32;10716:1265;;;10810:11;;;;;;;10805:144;;2413:7;2440:6;-1:-1:-1;;;;;10850:15:0;;;2440:6;;10850:15;10842:91;;;;-1:-1:-1;;;10842:91:0;;9970:2:1;10842:91:0;;;9952:21:1;10009:2;9989:18;;;9982:30;10048:34;10028:18;;;10021:62;10119:33;10099:18;;;10092:61;10170:19;;10842:91:0;9768:427:1;10842:91:0;10984:12;;10974:6;:22;;10966:63;;;;-1:-1:-1;;;10966:63:0;;10402:2:1;10966:63:0;;;10384:21:1;10441:2;10421:18;;;10414:30;10480;10460:18;;;10453:58;10528:18;;10966:63:0;10200:352:1;10966:63:0;-1:-1:-1;;;;;11053:10:0;;;;;;:4;:10;;;;;;;;11052:11;:24;;;;-1:-1:-1;;;;;;11068:8:0;;;;;;:4;:8;;;;;;;;11067:9;11052:24;11044:72;;;;-1:-1:-1;;;11044:72:0;;10759:2:1;11044:72:0;;;10741:21:1;10798:2;10778:18;;;10771:30;10837:34;10817:18;;;10810:62;10908:5;10888:18;;;10881:33;10931:19;;11044:72:0;10557:399:1;11044:72:0;11143:13;;-1:-1:-1;;;;;11137:19:0;;;11143:13;;11137:19;11134:146;;11210:14;;11201:6;11185:13;11195:2;11185:9;:13::i;:::-;:22;;;;:::i;:::-;:39;11177:87;;;;-1:-1:-1;;;11177:87:0;;11293:2:1;11177:87:0;;;11275:21:1;11332:2;11312:18;;;11305:30;11371:34;11351:18;;;11344:62;11442:5;11422:18;;;11415:33;11465:19;;11177:87:0;11091:399:1;11177:87:0;11297:28;11328:24;11346:4;11328:9;:24::i;:::-;11406:19;;11470:12;;11297:55;;-1:-1:-1;11382:43:0;;;;11446:36;;11443:124;;11539:12;;11516:35;;11443:124;11588:7;:18;;;;-1:-1:-1;11600:6:0;;;;;;;11599:7;11588:18;:43;;;;-1:-1:-1;11618:13:0;;-1:-1:-1;;;;;11610:21:0;;;11618:13;;11610:21;;11588:43;:58;;;;-1:-1:-1;11635:11:0;;;;;;;11588:58;:87;;;;-1:-1:-1;;;;;;11651:24:0;;;;;;:18;:24;;;;;;;;11650:25;11588:87;:114;;;;-1:-1:-1;;;;;;11680:22:0;;;;;;:18;:22;;;;;;;;11679:23;11588:114;11584:386;;;11723:38;11740:20;11723:16;:38::i;:::-;11809:21;11853:22;;11849:106;;11900:35;11913:21;11900:12;:35::i;:::-;11704:266;11584:386;10754:1227;;10716:1265;-1:-1:-1;;;;;12059:24:0;;11994:12;12059:24;;;:18;:24;;;;;;12009:4;;12059:24;;;:50;;-1:-1:-1;;;;;;12087:22:0;;;;;;:18;:22;;;;;;;;12059:50;12058:102;;;-1:-1:-1;12123:13:0;;-1:-1:-1;;;;;12115:21:0;;;12123:13;;12115:21;;;;:44;;-1:-1:-1;12146:13:0;;-1:-1:-1;;;;;12140:19:0;;;12146:13;;12140:19;;12115:44;12054:597;;;-1:-1:-1;12187:5:0;12054:597;;;12271:13;;-1:-1:-1;;;;;12263:21:0;;;12271:13;;12263:21;:55;;;;-1:-1:-1;12302:15:0;;-1:-1:-1;;;;;12288:30:0;;;12302:15;;12288:30;;12263:55;12260:162;;;12351:14;;12339:9;:26;12394:12;;12384:7;:22;12260:162;12482:13;;-1:-1:-1;;;;;12476:19:0;;;12482:13;;12476:19;:55;;;;-1:-1:-1;12515:15:0;;-1:-1:-1;;;;;12499:32:0;;;12515:15;;12499:32;;12476:55;12472:165;;;12564:15;;12552:9;:27;12608:13;;12598:7;:23;12472:165;12664:41;12679:4;12685:2;12689:6;12697:7;12664:14;:41::i;3360:224::-;3480:7;3516:12;3508:6;;;;3500:29;;;;-1:-1:-1;;;3500:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3540:9:0;3552:5;3556:1;3552;:5;:::i;:::-;3540:17;3360:224;-1:-1:-1;;;;;3360:224:0:o;13214:180::-;13271:19;;-1:-1:-1;;;;;13271:19:0;:53;13300:23;13319:3;13300:14;:6;13311:2;13300:10;:14::i;:::-;:18;;:23::i;:::-;13271:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13335:17:0;;-1:-1:-1;;;;;13335:17:0;:51;13362:23;13381:3;13362:14;:6;13373:2;13362:10;:14::i;:23::-;13335:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9304:323;9399:7;9457;;9446;:18;;9424:110;;;;-1:-1:-1;;;9424:110:0;;11830:2:1;9424:110:0;;;11812:21:1;11869:2;11849:18;;;11842:30;11908:34;11888:18;;;11881:62;11979:12;11959:18;;;11952:40;12009:19;;9424:110:0;11628:406:1;9424:110:0;9545:19;9567:10;:8;:10::i;:::-;9545:32;-1:-1:-1;9595:24:0;:7;9545:32;9595:11;:24::i;:::-;9588:31;9304:323;-1:-1:-1;;;9304:323:0:o;12722:483::-;7004:6;:13;;;;;;;;12824:16:::1;::::0;;12838:1:::1;12824:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12824:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12824:16:0::1;12800:40;;12869:4;12851;12856:1;12851:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12851:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12895:15:::1;::::0;:22:::1;::::0;;;;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12851:7;;12895:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12885:4;12890:1;12885:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12885:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12960:15:::1;::::0;12928:62:::1;::::0;12945:4:::1;::::0;12960:15:::1;12978:11:::0;12928:8:::1;:62::i;:::-;13001:15;::::0;:196:::1;::::0;;;;-1:-1:-1;;;;;13001:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;13082:11;;13001:15:::1;::::0;13124:4;;13151::::1;::::0;13171:15:::1;::::0;13001:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;7040:6:0;:14;;;;;;-1:-1:-1;;;;12722:483:0:o;14356:282::-;14512:7;14507:28;;14521:14;:12;:14::i;:::-;14546:44;14564:6;14572:9;14583:6;14546:17;:44::i;:::-;14606:7;14601:29;;14615:15;9922:17;;9910:9;:29;9960:15;;9950:7;:25;9866:117;3593:246;3651:7;3675:1;3680;3675:6;3671:47;;-1:-1:-1;3705:1:0;3698:8;;3671:47;3728:9;3740:5;3744:1;3740;:5;:::i;:::-;3728:17;-1:-1:-1;3773:1:0;3764:5;3768:1;3728:17;3764:5;:::i;:::-;:10;3756:56;;;;-1:-1:-1;;;3756:56:0;;14040:2:1;3756:56:0;;;14022:21:1;14079:2;14059:18;;;14052:30;14118:34;14098:18;;;14091:62;14189:3;14169:18;;;14162:31;14210:19;;3756:56:0;13838:397:1;3848:132:0;3906:7;3933:39;3937:1;3940;3933:39;;;;;;;;;;;;;;;;;:3;:39::i;17334:167::-;17376:7;17397:15;17414;17433:19;:17;:19::i;:::-;17396:56;;-1:-1:-1;17396:56:0;-1:-1:-1;17473:20:0;17396:56;;17473:11;:20::i;:::-;17466:27;;;;17334:167;:::o;9636:221::-;9683:9;;:14;:30;;;;-1:-1:-1;9701:7:0;;:12;9683:30;9679:43;;;9636:221::o;9679:43::-;9755:9;;;9735:17;:29;9793:7;;;9775:15;:25;-1:-1:-1;9814:13:0;;;;9838:11;9636:221::o;14647:610::-;14794:15;14824:23;14862:12;14889:23;14927:12;14954:13;14981:19;14992:7;14981:10;:19::i;:::-;-1:-1:-1;;;;;15029:15:0;;;;;;:7;:15;;;;;;14779:221;;-1:-1:-1;14779:221:0;;-1:-1:-1;14779:221:0;;-1:-1:-1;14779:221:0;-1:-1:-1;14779:221:0;-1:-1:-1;14779:221:0;-1:-1:-1;15029:28:0;;14779:221;15029:19;:28::i;:::-;-1:-1:-1;;;;;15011:15:0;;;;;;;:7;:15;;;;;;:46;;;;15089:18;;;;;;;:39;;15112:15;15089:22;:39::i;:::-;-1:-1:-1;;;;;15068:18:0;;;;;;:7;:18;;;;;:60;15139:16;15149:5;15139:9;:16::i;:::-;15166:23;15178:4;15184;15166:11;:23::i;:::-;15222:9;-1:-1:-1;;;;;15205:44:0;15214:6;-1:-1:-1;;;;;15205:44:0;;15233:15;15205:44;;;;3213:25:1;;3201:2;3186:18;;3067:177;15205:44:0;;;;;;;;14768:489;;;;;;14647:610;;;:::o;3989:223::-;4109:7;4144:12;4137:5;4129:28;;;;-1:-1:-1;;;4129:28:0;;;;;;;;:::i;:::-;-1:-1:-1;4168:9:0;4180:5;4184:1;4180;:5;:::i;17510:260::-;17608:7;;17561;;;;5680:17;17676:20;17608:7;5680:17;17676:11;:20::i;:::-;17666:7;:30;17662:61;;;-1:-1:-1;;17706:7:0;;;5680:17;;-1:-1:-1;17510:260:0;-1:-1:-1;17510:260:0:o;17662:61::-;17745:7;;17754;;-1:-1:-1;17510:260:0;-1:-1:-1;17510:260:0:o;15680:618::-;15780:7;15802;15824;15846;15868;15890;15926:23;15951:12;15965:13;15995:40;16007:7;16016:9;;16027:7;;15995:11;:40::i;:::-;15925:110;;;;;;16046:19;16068:10;:8;:10::i;:::-;16046:32;;16090:15;16107:23;16132:12;16161:46;16173:7;16182:4;16188:5;16195:11;16161;:46::i;:::-;16089:118;;-1:-1:-1;16089:118:0;-1:-1:-1;16089:118:0;-1:-1:-1;16261:15:0;;-1:-1:-1;16278:4:0;;-1:-1:-1;16284:5:0;;-1:-1:-1;;;;;15680:618:0;;;;;;;:::o;3215:136::-;3273:7;3300:43;3304:1;3307;3300:43;;;;;;;;;;;;;;;;;:3;:43::i;3027:179::-;3085:7;;3117:5;3121:1;3117;:5;:::i;:::-;3105:17;;3146:1;3141;:6;;3133:46;;;;-1:-1:-1;;;3133:46:0;;14442:2:1;3133:46:0;;;14424:21:1;14481:2;14461:18;;;14454:30;14520:29;14500:18;;;14493:57;14567:18;;3133:46:0;14240:351:1;15266:211:0;15319:19;15341:10;:8;:10::i;:::-;15319:32;-1:-1:-1;15362:13:0;15378:22;:5;15319:32;15378:9;:22::i;:::-;15452:4;15436:22;;;;:7;:22;;;;;;15362:38;;-1:-1:-1;15436:33:0;;15362:38;15436:26;:33::i;:::-;15427:4;15411:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;15266:211:0:o;15486:147::-;15564:7;;:17;;15576:4;15564:11;:17::i;:::-;15554:7;:27;15605:10;;:20;;15620:4;15605:14;:20::i;:::-;15592:10;:33;-1:-1:-1;;15486:147:0:o;16307:472::-;16476:7;;;;16570:30;16596:3;16570:21;:7;16582:8;16570:11;:21::i;:30::-;16555:45;-1:-1:-1;16611:13:0;16627:28;16651:3;16627:19;:7;16639:6;16627:11;:19::i;:28::-;16611:44;-1:-1:-1;16666:23:0;16692:28;16611:44;16692:17;:7;16704:4;16692:11;:17::i;:::-;:21;;:28::i;:::-;16666:54;16759:4;;-1:-1:-1;16765:5:0;;-1:-1:-1;16307:472:0;;-1:-1:-1;;;;;16307:472:0:o;16788:537::-;16982:7;;;;17079:24;:7;17091:11;17079;:24::i;:::-;17061:42;-1:-1:-1;17114:12:0;17129:21;:4;17138:11;17129:8;:21::i;:::-;17114:36;-1:-1:-1;17161:13:0;17177:22;:5;17187:11;17177:9;:22::i;:::-;17161:38;-1:-1:-1;17210:23:0;17236:28;17161:38;17236:17;:7;17248:4;17236:11;:17::i;:28::-;17286:7;;;;-1:-1:-1;17312:4:0;;-1:-1:-1;16788:537:0;;-1:-1:-1;;;;;;;16788:537:0:o;14:184:1:-;-1:-1:-1;;;63:1:1;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:154;-1:-1:-1;;;;;282:5:1;278:54;271:5;268:65;258:93;;347:1;344;337:12;362:134;430:20;;459:31;430:20;459:31;:::i;:::-;362:134;;;:::o;501:1180::-;585:6;616:2;659;647:9;638:7;634:23;630:32;627:52;;;675:1;672;665:12;627:52;715:9;702:23;744:18;785:2;777:6;774:14;771:34;;;801:1;798;791:12;771:34;839:6;828:9;824:22;814:32;;884:7;877:4;873:2;869:13;865:27;855:55;;906:1;903;896:12;855:55;942:2;929:16;964:2;960;957:10;954:36;;;970:18;;:::i;:::-;1016:2;1013:1;1009:10;1048:2;1042:9;-1:-1:-1;;1102:2:1;1098;1094:11;1090:84;1082:6;1078:97;1225:6;1213:10;1210:22;1205:2;1193:10;1190:18;1187:46;1184:72;;;1236:18;;:::i;:::-;1272:2;1265:22;1322:18;;;1356:15;;;;-1:-1:-1;1398:11:1;;;1394:20;;;1426:19;;;1423:39;;;1458:1;1455;1448:12;1423:39;1482:11;;;;1502:148;1518:6;1513:3;1510:15;1502:148;;;1584:23;1603:3;1584:23;:::i;:::-;1572:36;;1535:12;;;;1628;;;;1502:148;;;1669:6;501:1180;-1:-1:-1;;;;;;;;501:1180:1:o;1686:607::-;1798:4;1827:2;1856;1845:9;1838:21;1888:6;1882:13;1931:6;1926:2;1915:9;1911:18;1904:34;1956:1;1966:140;1980:6;1977:1;1974:13;1966:140;;;2075:14;;;2071:23;;2065:30;2041:17;;;2060:2;2037:26;2030:66;1995:10;;1966:140;;;1970:3;2155:1;2150:2;2141:6;2130:9;2126:22;2122:31;2115:42;2284:2;-1:-1:-1;;2209:2:1;2201:6;2197:15;2193:88;2182:9;2178:104;2174:113;2166:121;;;;1686:607;;;;:::o;2298:315::-;2366:6;2374;2427:2;2415:9;2406:7;2402:23;2398:32;2395:52;;;2443:1;2440;2433:12;2395:52;2482:9;2469:23;2501:31;2526:5;2501:31;:::i;:::-;2551:5;2603:2;2588:18;;;;2575:32;;-1:-1:-1;;;2298:315:1:o;3249:456::-;3326:6;3334;3342;3395:2;3383:9;3374:7;3370:23;3366:32;3363:52;;;3411:1;3408;3401:12;3363:52;3450:9;3437:23;3469:31;3494:5;3469:31;:::i;:::-;3519:5;-1:-1:-1;3576:2:1;3561:18;;3548:32;3589:33;3548:32;3589:33;:::i;:::-;3249:456;;3641:7;;-1:-1:-1;;;3695:2:1;3680:18;;;;3667:32;;3249:456::o;4130:247::-;4189:6;4242:2;4230:9;4221:7;4217:23;4213:32;4210:52;;;4258:1;4255;4248:12;4210:52;4297:9;4284:23;4316:31;4341:5;4316:31;:::i;4382:160::-;4447:20;;4503:13;;4496:21;4486:32;;4476:60;;4532:1;4529;4522:12;4547:180;4603:6;4656:2;4644:9;4635:7;4631:23;4627:32;4624:52;;;4672:1;4669;4662:12;4624:52;4695:26;4711:9;4695:26;:::i;4732:180::-;4791:6;4844:2;4832:9;4823:7;4819:23;4815:32;4812:52;;;4860:1;4857;4850:12;4812:52;-1:-1:-1;4883:23:1;;4732:180;-1:-1:-1;4732:180:1:o;4917:385::-;5003:6;5011;5019;5027;5080:3;5068:9;5059:7;5055:23;5051:33;5048:53;;;5097:1;5094;5087:12;5048:53;-1:-1:-1;;5120:23:1;;;5190:2;5175:18;;5162:32;;-1:-1:-1;5241:2:1;5226:18;;5213:32;;5292:2;5277:18;5264:32;;-1:-1:-1;4917:385:1;-1:-1:-1;4917:385:1:o;5307:689::-;5399:6;5407;5415;5468:2;5456:9;5447:7;5443:23;5439:32;5436:52;;;5484:1;5481;5474:12;5436:52;5524:9;5511:23;5553:18;5594:2;5586:6;5583:14;5580:34;;;5610:1;5607;5600:12;5580:34;5648:6;5637:9;5633:22;5623:32;;5693:7;5686:4;5682:2;5678:13;5674:27;5664:55;;5715:1;5712;5705:12;5664:55;5755:2;5742:16;5781:2;5773:6;5770:14;5767:34;;;5797:1;5794;5787:12;5767:34;5852:7;5845:4;5835:6;5832:1;5828:14;5824:2;5820:23;5816:34;5813:47;5810:67;;;5873:1;5870;5863:12;5810:67;5904:4;5896:13;;;;-1:-1:-1;5928:6:1;-1:-1:-1;5953:37:1;;5969:20;;;-1:-1:-1;5953:37:1;:::i;:::-;5943:47;;5307:689;;;;;:::o;6001:388::-;6069:6;6077;6130:2;6118:9;6109:7;6105:23;6101:32;6098:52;;;6146:1;6143;6136:12;6098:52;6185:9;6172:23;6204:31;6229:5;6204:31;:::i;:::-;6254:5;-1:-1:-1;6311:2:1;6296:18;;6283:32;6324:33;6283:32;6324:33;:::i;:::-;6376:7;6366:17;;;6001:388;;;;;:::o;6755:184::-;-1:-1:-1;;;6804:1:1;6797:88;6904:4;6901:1;6894:15;6928:4;6925:1;6918:15;6944:184;-1:-1:-1;;;6993:1:1;6986:88;7093:4;7090:1;7083:15;7117:4;7114:1;7107:15;7133:195;7172:3;-1:-1:-1;;7196:5:1;7193:77;7190:103;;7273:18;;:::i;:::-;-1:-1:-1;7320:1:1;7309:13;;7133:195::o;10961:125::-;11026:9;;;11047:10;;;11044:36;;;11060:18;;:::i;11495:128::-;11562:9;;;11583:11;;;11580:37;;;11597:18;;:::i;12039:251::-;12109:6;12162:2;12150:9;12141:7;12137:23;12133:32;12130:52;;;12178:1;12175;12168:12;12130:52;12210:9;12204:16;12229:31;12254:5;12229:31;:::i;12295:1026::-;12557:4;12605:3;12594:9;12590:19;12636:6;12625:9;12618:25;12662:2;12700:6;12695:2;12684:9;12680:18;12673:34;12743:3;12738:2;12727:9;12723:18;12716:31;12767:6;12802;12796:13;12833:6;12825;12818:22;12871:3;12860:9;12856:19;12849:26;;12910:2;12902:6;12898:15;12884:29;;12931:1;12941:218;12955:6;12952:1;12949:13;12941:218;;;13020:13;;-1:-1:-1;;;;;13016:62:1;13004:75;;13134:15;;;;13099:12;;;;12977:1;12970:9;12941:218;;;-1:-1:-1;;;;;;;13215:55:1;;;;13210:2;13195:18;;13188:83;-1:-1:-1;;;13302:3:1;13287:19;13280:35;13176:3;12295:1026;-1:-1:-1;;;12295:1026:1:o;13326:228::-;13366:7;13492:1;-1:-1:-1;;13420:74:1;13417:1;13414:81;13409:1;13402:9;13395:17;13391:105;13388:131;;;13499:18;;:::i;:::-;-1:-1:-1;13539:9:1;;13326:228::o;13559:274::-;13599:1;13625;13615:189;;-1:-1:-1;;;13657:1:1;13650:88;13761:4;13758:1;13751:15;13789:4;13786:1;13779:15;13615:189;-1:-1:-1;13818:9:1;;13559:274::o
Swarm Source
ipfs://67941cb2f36dbd6054a8f38bc177a961f5b7abd6dfe07296f930c789c2c0974d
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 29 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | Ether (ETH) | 100.00% | $2,648.51 | 0.000000000000000001 | <$0.000001 |
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.