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 54 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 14439118 | 1066 days ago | IN | 0 ETH | 0.00202011 | ||||
Approve | 14438953 | 1066 days ago | IN | 0 ETH | 0.00160216 | ||||
Approve | 14373750 | 1076 days ago | IN | 0 ETH | 0.0009559 | ||||
Approve | 14373700 | 1076 days ago | IN | 0 ETH | 0.0013755 | ||||
_transfer Owners... | 14231654 | 1098 days ago | IN | 0 ETH | 0.00354198 | ||||
Update Marketing... | 14231649 | 1098 days ago | IN | 0 ETH | 0.00540219 | ||||
Transfer | 14211875 | 1101 days ago | IN | 0 ETH | 0.01564006 | ||||
Approve | 14211810 | 1101 days ago | IN | 0 ETH | 0.00243694 | ||||
Transfer | 14211701 | 1101 days ago | IN | 0 ETH | 0.00571121 | ||||
Transfer | 14211684 | 1101 days ago | IN | 0 ETH | 0.00385897 | ||||
Update Fees | 14211325 | 1101 days ago | IN | 0 ETH | 0.00494909 | ||||
Approve | 14209442 | 1101 days ago | IN | 0 ETH | 0.00205835 | ||||
Approve | 14209385 | 1101 days ago | IN | 0 ETH | 0.00275624 | ||||
Update Fees | 14208648 | 1101 days ago | IN | 0 ETH | 0.00222738 | ||||
Approve | 14206887 | 1102 days ago | IN | 0 ETH | 0.0030609 | ||||
Transfer | 14206730 | 1102 days ago | IN | 0 ETH | 0.00515655 | ||||
Approve | 14206723 | 1102 days ago | IN | 0 ETH | 0.00318083 | ||||
Approve | 14206723 | 1102 days ago | IN | 0 ETH | 0.00341769 | ||||
Approve | 14206718 | 1102 days ago | IN | 0 ETH | 0.00295421 | ||||
Approve | 14206710 | 1102 days ago | IN | 0 ETH | 0.0028389 | ||||
Approve | 14206540 | 1102 days ago | IN | 0 ETH | 0.00620451 | ||||
Approve | 14206174 | 1102 days ago | IN | 0 ETH | 0.00325166 | ||||
Approve | 14206085 | 1102 days ago | IN | 0 ETH | 0.00449173 | ||||
Approve | 14195529 | 1103 days ago | IN | 0 ETH | 0.0026554 | ||||
Approve | 14190562 | 1104 days ago | IN | 0 ETH | 0.00174767 |
Latest 21 internal transactions
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
14404015 | 1071 days ago | 0.06305784 ETH | ||||
14404015 | 1071 days ago | 0.10725448 ETH | ||||
14404015 | 1071 days ago | 0.12553041 ETH | ||||
14211875 | 1101 days ago | 0.24218548 ETH | ||||
14211875 | 1101 days ago | 1.10310806 ETH | ||||
14211875 | 1101 days ago | 1.39034155 ETH | ||||
14191452 | 1104 days ago | 0.06199346 ETH | ||||
14191452 | 1104 days ago | 0.0296069 ETH | ||||
14191452 | 1104 days ago | 0.0888207 ETH | ||||
14190577 | 1104 days ago | 0.0731121 ETH | ||||
14190577 | 1104 days ago | 0.03261916 ETH | ||||
14190577 | 1104 days ago | 0.0978575 ETH | ||||
14186229 | 1105 days ago | 0.10460715 ETH | ||||
14186229 | 1105 days ago | 0.04722583 ETH | ||||
14186229 | 1105 days ago | 0.1416775 ETH | ||||
14164157 | 1108 days ago | 0.14522907 ETH | ||||
14164157 | 1108 days ago | 0.06642249 ETH | ||||
14164157 | 1108 days ago | 0.19815095 ETH | ||||
14077777 | 1122 days ago | 0.19923155 ETH | ||||
14077777 | 1122 days ago | 0.14349721 ETH | ||||
14077777 | 1122 days ago | 0.39253665 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Green
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-01-20 */ /* Contract Buy tax 7% marketing 6% burn 0% buy back and burn Sell tax 7% marketing 4% buy back and burn 6% burn contract buys back with 80% of it's value randomly every 5-10 minutes Other features max wallet size (each wallet can only hold 1.5% of supply). */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.4; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } abstract contract Ownable is Context { address private _owner; address private _previousOwner; uint256 private _lockTime; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the 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; } //Locks the contract for owner for the amount of time provided function lock(uint256 time) public virtual onlyOwner { _previousOwner = _owner; _owner = address(0); _lockTime = block.timestamp + time; emit OwnershipTransferred(_owner, address(0)); } //Unlocks the contract for owner after _lockTime function unlock() public virtual onlyOwner { require(block.timestamp > _lockTime, "Deadline not reached yet"); _owner = _previousOwner; emit OwnershipTransferred(address(0), _owner); } } 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 ERC20 is Context, IERC20 { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; uint8 private _decimals; constructor (string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; _decimals = 18; } function name() public view virtual returns (string memory) { return _name; } function symbol() public view virtual returns (string memory) { return _symbol; } function decimals() public view virtual returns (uint8) { return _decimals; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance"); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } function _approve(address owner, address spender, uint256 amount) internal virtual { 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 _setupDecimals(uint8 decimals_) internal virtual { _decimals = decimals_; } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { } } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Mint(address indexed sender, uint amount0, uint amount1); event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b > a) return (false, 0); return (true, a - b); } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b == 0) return (false, 0); return (true, a / b); } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b == 0) return (false, 0); return (true, a % b); } 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) { require(b <= a, "SafeMath: subtraction overflow"); return a - b; } 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) { require(b > 0, "SafeMath: division by zero"); return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0, "SafeMath: modulo by zero"); return a % b; } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); return a - b; } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); return a / b; } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); return a % b; } } contract Green is ERC20, Ownable { using SafeMath for uint256; uint256 public _totalSupply = 100000000000 * (10**18); IUniswapV2Router02 public uniswapV2Router; address public immutable uniswapV2Pair; address public deadAddress = 0x000000000000000000000000000000000000dEaD; bool private swapping; bool public tradingIsEnabled = false; bool public marketingEnabled = false; bool public buyBackEnabled = false; bool public burnEnabled = false; address public burnWallet; address public marketingWallet; address public bridge; uint256 public maxBuyTransactionAmount; uint256 public maxSellTransactionAmount; uint256 public swapTokensAtAmount; uint256 public maxWalletSize; uint256 private buyBackBalance = 0; uint256 private lastBuyBack = 0; uint256 private buybackpercent = 80; uint256 private botFees; uint256 public buyBurnFee; uint256 public previousBuyBurnFee; uint256 public buyMarketingFee; uint256 public previousBuyMarketingFee; uint256 public buyBuyBackFee; uint256 public previousBuyBuyBackFee; uint256 public sellBurnFee; uint256 public previousSellBurnFee; uint256 public sellMarketingFee; uint256 public previousSellMarketingFee; uint256 public sellBuyBackFee; uint256 public previousSellBuyBackFee; uint256 public totalSellFees; uint256 public totalBuyFees; uint256 public transferFeeIncreaseFactor = 100; uint256 public buyFeesCollected = 0; uint256 public sellFeesCollected = 0; address public presaleAddress; mapping (address => bool) private isExcludedFromFees; // store addresses that a automatic market maker pairs. Any transfer *to* these addresses // could be subject to a maximum transfer amount mapping (address => bool) public automatedMarketMakerPairs; mapping(address => uint256) private previousTransactionBlock; uint256 private _firstBlock; uint256 private _botBlocks; mapping(address => bool) private bots; event UpdateUniswapV2Router(address indexed newAddress, address indexed oldAddress); event BuyBackEnabledUpdated(bool enabled); event MarketingEnabledUpdated(bool enabled); event BurnEnabledUpdated(bool enabled); event MaxBuyTransactionUpdated(uint256 amount); event MaxSellTransactionUpdated(uint256 amount); event MaxWalletSizeUpdated(uint256 amount); event ExcludeFromFees(address indexed account, bool isExcluded); event ExcludeMultipleAccountsFromFees(address[] accounts, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event MarketingWalletUpdated(address indexed newMarketingWallet, address indexed oldMarketingWallet); event SwapBNBForTokens( uint256 amountIn, address[] path ); constructor(address _bridge) ERC20("Green Chart", "GREEN") { marketingWallet = 0xee11B8c256734EB1636C16E321eBeC837f511f08; burnWallet = 0x000000000000000000000000000000000000dEaD; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//0x10ED43C718714eb63d5aA57B78B54704E256024E); //0x9Ac64Cc6e4415144C455BD8E4837Fea55603e5c3; //0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D // Create a uniswap pair for this new token address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = _uniswapV2Pair; _setAutomatedMarketMakerPair(_uniswapV2Pair, true); bridge = _bridge; // exclude from paying fees or having max transaction amount excludeFromFees(marketingWallet, true); excludeFromFees(burnWallet, true); excludeFromFees(address(this), true); excludeFromFees(owner(), true); excludeFromFees(_bridge, true); excludeFromFees(deadAddress, true); /* _mint is an internal function in ERC20.sol that is only called here, and CANNOT be called ever again */ _mint(_bridge, _totalSupply); } receive() external payable { } function whitelistPinkSale(address _presaleAddress) external onlyOwner { presaleAddress = _presaleAddress; isExcludedFromFees[_presaleAddress] = true; } function prepareForPartnerOrExchangeListing(address _partnerOrExchangeAddress) external onlyOwner { isExcludedFromFees[_partnerOrExchangeAddress] = true; } function setMaxBuyTransaction(uint256 _maxTxn) external onlyOwner { require(_maxTxn >= (_totalSupply.mul(1).div(10000)).div(10**18), "amount must be greater than 0.01% of the total supply"); maxBuyTransactionAmount = _maxTxn * (10**18); emit MaxBuyTransactionUpdated(maxBuyTransactionAmount); } function setMaxSellTransaction(uint256 _maxTxn) external onlyOwner { require(_maxTxn >= (_totalSupply.mul(1).div(10000)).div(10**18), "amount must be greater than 0.01% of the total supply"); maxSellTransactionAmount = _maxTxn * (10**18); emit MaxSellTransactionUpdated(maxSellTransactionAmount); } function updateMarketingWallet(address _newWallet) external onlyOwner { require(_newWallet != marketingWallet, "The marketing wallet is already this address"); isExcludedFromFees[_newWallet] = true; emit MarketingWalletUpdated(_newWallet, marketingWallet); marketingWallet = _newWallet; } function setMaxWalletSize(uint256 _maxToken) external onlyOwner { require(_maxToken >= (_totalSupply.mul(5).div(1000)).div(10**18), "amount must be greater than 0.5% of the supply"); maxWalletSize = _maxToken * (10**18); emit MaxWalletSizeUpdated(maxWalletSize); } function setSwapTokensAtAmount(uint256 _swapAmount) external onlyOwner { swapTokensAtAmount = _swapAmount * (10**18); } function setTransferTransactionMultiplier(uint256 _multiplier) external onlyOwner { transferFeeIncreaseFactor = _multiplier; } function prepareForPreSale() external onlyOwner { require(tradingIsEnabled == false, "cant prepare for presale once trading is enabled"); buyBurnFee = 0; buyMarketingFee = 0; buyBuyBackFee = 0; sellBurnFee = 0; sellMarketingFee = 0; sellBuyBackFee = 0; maxBuyTransactionAmount = _totalSupply; maxSellTransactionAmount = _totalSupply; maxWalletSize = _totalSupply.mul(15).div(1000); } function afterPreSale() external onlyOwner { buyBurnFee = 6; buyMarketingFee = 7; buyBuyBackFee = 0; sellBurnFee = 6; sellMarketingFee = 7; sellBuyBackFee = 4; totalBuyFees = buyBurnFee.add(buyMarketingFee).add(buyBuyBackFee); totalSellFees = sellBurnFee.add(sellMarketingFee).add(sellBuyBackFee); marketingEnabled = true; buyBackEnabled = true; burnEnabled = true; swapTokensAtAmount = 20000000 * (10**18); maxBuyTransactionAmount = _totalSupply; maxSellTransactionAmount = _totalSupply; maxWalletSize = _totalSupply.mul(15).div(1000); } function openTrading(uint256 botBlocks, uint256 _botFees) external onlyOwner { tradingIsEnabled = true; _botBlocks = botBlocks; botFees = _botFees; _firstBlock = block.timestamp; } function setBuyBackEnabled(bool _enabled) external onlyOwner { require(buyBackEnabled != _enabled, "Can't set flag to same status"); if (_enabled == false) { previousBuyBuyBackFee = buyBuyBackFee; previousSellBuyBackFee = sellBuyBackFee; sellBuyBackFee = 0; buyBuyBackFee = 0; buyBackBalance = 0; totalBuyFees = buyBurnFee.add(buyMarketingFee).add(buyBuyBackFee); totalSellFees = sellBurnFee.add(sellMarketingFee).add(sellBuyBackFee); buyBackEnabled = _enabled; } else { buyBuyBackFee = previousBuyBuyBackFee; sellBuyBackFee = previousSellBuyBackFee; totalBuyFees = buyBuyBackFee.add(buyMarketingFee).add(buyBurnFee); totalSellFees = sellBuyBackFee.add(sellMarketingFee).add(sellBurnFee); buyBackEnabled = _enabled; } emit BuyBackEnabledUpdated(_enabled); } function setBurnEnabled(bool _enabled) external onlyOwner { require(burnEnabled != _enabled, "Can't set flag to same status"); if (_enabled == false) { previousBuyBurnFee = buyBurnFee; previousSellBurnFee = sellBurnFee; buyBurnFee = 0; sellBurnFee = 0; totalBuyFees = buyBurnFee.add(buyMarketingFee).add(buyBuyBackFee); totalSellFees = sellBurnFee.add(sellMarketingFee).add(sellBuyBackFee); burnEnabled = _enabled; } else { buyBurnFee = previousBuyBurnFee; sellBurnFee = previousSellBurnFee; totalBuyFees = buyBurnFee.add(buyMarketingFee).add(buyBuyBackFee); totalSellFees = sellBurnFee.add(sellMarketingFee).add(sellBuyBackFee); burnEnabled = _enabled; } emit BurnEnabledUpdated(_enabled); } function setMarketingEnabled(bool _enabled) external onlyOwner { require(marketingEnabled != _enabled, "Can't set flag to same status"); if (_enabled == false) { previousBuyMarketingFee = buyMarketingFee; previousSellMarketingFee = sellMarketingFee; buyMarketingFee = 0; sellMarketingFee = 0; totalSellFees = sellBurnFee.add(sellMarketingFee).add(sellBuyBackFee); totalBuyFees = buyBurnFee.add(buyMarketingFee).add(buyBuyBackFee); marketingEnabled = _enabled; } else { buyMarketingFee = previousBuyMarketingFee; sellMarketingFee = previousSellMarketingFee; totalSellFees = sellBurnFee.add(sellMarketingFee).add(sellBuyBackFee); totalBuyFees = buyBurnFee.add(buyMarketingFee).add(buyBuyBackFee); marketingEnabled = _enabled; } emit MarketingEnabledUpdated(_enabled); } function updateFees(uint8 _buyBuyBackFee, uint8 _buyMarketingFee, uint8 _buyBurnFee, uint8 _sellBuyBackFee, uint8 _sellMarketingFee, uint8 _sellBurnFee) external onlyOwner { require(_buyBuyBackFee + _buyMarketingFee + _buyBurnFee <= 45, "buy fee must be less than 45%"); require(_sellBuyBackFee + _sellMarketingFee + _sellBurnFee <= 45, "sell fee must be less than 45%"); buyBuyBackFee = _buyBuyBackFee; buyMarketingFee = _buyMarketingFee; buyBurnFee = _buyBurnFee; sellBuyBackFee = _sellBuyBackFee; sellMarketingFee = _sellMarketingFee; sellBurnFee = _sellBurnFee; totalSellFees = sellMarketingFee.add(sellBurnFee).add(sellBuyBackFee); totalBuyFees = buyMarketingFee.add(buyBurnFee).add(buyBuyBackFee); } function updateUniswapV2Router(address newAddress) external onlyOwner { require(newAddress != address(uniswapV2Router), "The router already has that address"); emit UpdateUniswapV2Router(newAddress, address(uniswapV2Router)); uniswapV2Router = IUniswapV2Router02(newAddress); } function excludeFromFees(address account, bool excluded) public onlyOwner { isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function setBuyBackPercent(uint256 percent) public onlyOwner { require(percent >= 0 && percent <= 100, "must be between 0 and 100"); buybackpercent = percent; } function updateBotFees(uint256 percent) public onlyOwner { require(percent >= 0 && percent <= 100, "must be between 0 and 100"); botFees = percent; } function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { require(pair != uniswapV2Pair, "The PancakeSwap pair cannot be removed from automatedMarketMakerPairs"); require(automatedMarketMakerPairs[pair] != value, "DogeGaySon: Automated market maker pair is already set to that value"); automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private onlyOwner { require(automatedMarketMakerPairs[pair] != value, "Automated market maker pair is already set to that value"); automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function getIsExcludedFromFees(address account) public view returns(bool) { return isExcludedFromFees[account]; } function rand() internal view returns(uint256) { uint256 seed = uint256( keccak256( abi.encodePacked( block.timestamp + block.difficulty + ((uint256(keccak256(abi.encodePacked(block.coinbase)))) / (block.timestamp)) + block.gaslimit + ((uint256(keccak256(abi.encodePacked(msg.sender)))) / (block.timestamp)) + block.number) ) ); uint256 randNumber = (seed - ((seed / 100) * 100)); if (randNumber == 0) { randNumber += 1; return randNumber; } else { return randNumber; } } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(tradingIsEnabled || (isExcludedFromFees[from] || isExcludedFromFees[to]), "Trading has not started yet"); bool excludedAccount = isExcludedFromFees[from] || isExcludedFromFees[to]; if ( tradingIsEnabled && automatedMarketMakerPairs[from] && !excludedAccount ) { require( amount <= maxBuyTransactionAmount, "Transfer amount exceeds the maxTxAmount." ); require(!bots[from] && !bots[to], 'bots cannot trade'); previousTransactionBlock[to] = block.timestamp; if (block.timestamp <= _firstBlock.add(_botBlocks)) { bots[to] = true; uint256 toBurn = amount.mul(botFees).div(100); amount = amount.sub(toBurn); super._transfer(from, deadAddress, toBurn); } uint256 contractBalanceRecepient = balanceOf(to); require( contractBalanceRecepient + amount <= maxWalletSize, "Exceeds maximum wallet token amount." ); } else if ( tradingIsEnabled && automatedMarketMakerPairs[to] && !excludedAccount ) { require(!bots[from] && !bots[to], 'bots cannot trade'); require(amount <= maxSellTransactionAmount, "Sell transfer amount exceeds the maxSellTransactionAmount."); if (block.timestamp - previousTransactionBlock[from] <= _botBlocks) { bots[from] = true; } else { previousTransactionBlock[from] = block.timestamp; } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if (!swapping && canSwap) { swapping = true; uint256 contractBalance; uint256 buyPortion = 0; uint256 sellPortion = 0; uint256 buyBuybackPortion = 0; uint256 sellBuybackPortion = 0; uint256 buyBack = rand(); if(sellFeesCollected > 0 || buyFeesCollected > 0){ buyPortion = contractTokenBalance.mul(buyFeesCollected).div(sellFeesCollected.add(buyFeesCollected)); sellPortion = contractTokenBalance.sub(buyPortion); buyFeesCollected = 0; sellFeesCollected = 0; } if (buyBackEnabled) { swapTokensForBNB(contractTokenBalance); uint256 afterSwap = address(this).balance; if(totalBuyFees > 0) { buyBuybackPortion = ((afterSwap.sub(buyBackBalance)).mul(buyPortion).div(contractTokenBalance)).mul(buyBuyBackFee).div(buyBuybackPortion.add(buyMarketingFee)); } if(totalSellFees > 0) { sellBuybackPortion = ((afterSwap.sub(buyBackBalance)).mul(sellPortion).div(contractTokenBalance)).mul(sellBuyBackFee).div(sellBuybackPortion.add(sellMarketingFee)); } buyBackBalance = buyBackBalance.add(buyBuybackPortion.add(sellBuybackPortion)); contractBalance = afterSwap.sub(buyBackBalance); } else { swapTokensForBNB(contractTokenBalance); contractBalance = address(this).balance; } if (marketingEnabled) { if(block.timestamp < _firstBlock + (1 days)) { uint256 swapTokens = contractBalance; uint256 devPortion = 0; /* for the first 24 hours, dev fee is 1% of transactions */ if(buyMarketingFee > 0){ devPortion += (contractBalance.mul(buyPortion).div(contractTokenBalance)).mul(1).div(buyMarketingFee); } if(sellMarketingFee > 0){ devPortion += (contractBalance.mul(sellPortion).div(contractTokenBalance)).mul(1).div(sellMarketingFee); } uint256 marketingPortion = swapTokens.sub(devPortion); transferToWallet(payable(marketingWallet), marketingPortion); address payable addr = payable(0x16D6037b9976bE034d79b8cce863fF82d2BBbC67); // dev fee lasts for one day only addr.transfer(devPortion); } else { uint256 swapTokens = contractBalance; transferToWallet(payable(marketingWallet), swapTokens); } } if (buyBackEnabled && block.timestamp.sub(lastBuyBack) > (5 minutes)) { if (buyBack <= 50 || block.timestamp.sub(lastBuyBack) > (10 minutes)) { uint256 buybackAmount = buyBackBalance.mul(buybackpercent).div(100); buyBackBalance = buyBackBalance.sub(buybackAmount); buyBackAndBurn(buybackAmount); lastBuyBack = block.timestamp; } } swapping = false; } }else { //Transfers require(!bots[from] && !bots[to], 'bots cannot transfer'); } bool takeFee = tradingIsEnabled && !swapping && !excludedAccount; if(takeFee) { uint256 fees; uint256 burnTokens = 0; if(automatedMarketMakerPairs[from]) { // if buy fees = amount.mul(totalBuyFees).div(100); if (burnEnabled) { uint256 burnPortion = fees.mul(buyBurnFee).div(totalBuyFees); fees = fees.sub(burnPortion); burnTokens = burnPortion; super._transfer(from, burnWallet, burnPortion); } buyFeesCollected += fees; } else if(automatedMarketMakerPairs[to]) { // if sell fees = amount.mul(totalSellFees).div(100); if (burnEnabled) { uint256 burnPortion = fees.mul(sellBurnFee).div(totalSellFees); fees = fees.sub(burnPortion); burnTokens = burnPortion; super._transfer(from, burnWallet, burnPortion); } sellFeesCollected += fees; } else { // if transfer uint256 contractBalanceRecepient = balanceOf(to); require( contractBalanceRecepient + amount <= maxWalletSize, "Exceeds maximum wallet token amount." ); uint256 totalTransferFees = totalSellFees.mul(transferFeeIncreaseFactor).div(100); fees = amount.mul(totalTransferFees).div(100); if (burnEnabled) { uint256 burnPortion = fees.mul(sellBurnFee).div(totalTransferFees); fees = fees.sub(burnPortion); burnTokens = burnPortion; super._transfer(from, burnWallet, burnPortion); } sellFeesCollected += fees; } if(bots[from] || bots[to]) { fees = amount.mul(botFees).div(100); buyFeesCollected += fees; } amount = amount.sub(fees.add(burnTokens)); super._transfer(from, address(this), fees); } super._transfer(from, to, amount); } function isBot(address account) public view returns (bool) { return bots[account]; } function removeBot(address account) external onlyOwner() { bots[account] = false; } function addBot(address account) external onlyOwner() { bots[account] = true; } function updateBotBlocks(uint256 botBlocks) external onlyOwner() { require(botBlocks < 10, "must be less than 10"); _botBlocks = botBlocks; } function buyBackAndBurn(uint256 amount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = uniswapV2Router.WETH(); path[1] = address(this); // uint256 initialBalance = balanceOf(address(this)); // make the swap uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}( 0, // accept any amount of Tokens path, deadAddress, // Burn address block.timestamp.add(300) ); emit SwapBNBForTokens(amount, path); } function swapTokensForBNB(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function transferToWallet(address payable recipient, uint256 amount) private { recipient.transfer(amount); } function _transferOwnership(address newOwner) public onlyOwner { require(newOwner != address(0)); super.transferOwnership(newOwner); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_bridge","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"BurnEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"BuyBackEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"accounts","type":"address[]"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeMultipleAccountsFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"MarketingEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newMarketingWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldMarketingWallet","type":"address"}],"name":"MarketingWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"MaxBuyTransactionUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"MaxSellTransactionUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"MaxWalletSizeUpdated","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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapBNBForTokens","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"_transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"afterPreSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bridge","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyBackEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyBuyBackFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFeesCollected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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"}],"name":"getIsExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellTransactionAmount","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":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"botBlocks","type":"uint256"},{"internalType":"uint256","name":"_botFees","type":"uint256"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_partnerOrExchangeAddress","type":"address"}],"name":"prepareForPartnerOrExchangeListing","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"prepareForPreSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"presaleAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"previousBuyBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"previousBuyBuyBackFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"previousBuyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"previousSellBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"previousSellBuyBackFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"previousSellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellBuyBackFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFeesCollected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setBurnEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setBuyBackEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setBuyBackPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setMarketingEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTxn","type":"uint256"}],"name":"setMaxBuyTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTxn","type":"uint256"}],"name":"setMaxSellTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxToken","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapAmount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_multiplier","type":"uint256"}],"name":"setTransferTransactionMultiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingIsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferFeeIncreaseFactor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"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"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"botBlocks","type":"uint256"}],"name":"updateBotBlocks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"updateBotFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_buyBuyBackFee","type":"uint8"},{"internalType":"uint8","name":"_buyMarketingFee","type":"uint8"},{"internalType":"uint8","name":"_buyBurnFee","type":"uint8"},{"internalType":"uint8","name":"_sellBuyBackFee","type":"uint8"},{"internalType":"uint8","name":"_sellMarketingFee","type":"uint8"},{"internalType":"uint8","name":"_sellBurnFee","type":"uint8"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateUniswapV2Router","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_presaleAddress","type":"address"}],"name":"whitelistPinkSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526c01431e0fae6d7217caa0000000600855600a8054600164ffffffff0160a01b03191661dead1790556000601281905560138190556050601455606460245560258190556026553480156200005857600080fd5b5060405162004819380380620048198339810160408190526200007b9162000811565b604080518082018252600b81526a11dc99595b8810da185c9d60aa1b60208083019182528351808501909452600584526423a922a2a760d91b908401528151919291620000cb916003916200076b565b508051620000e19060049060208401906200076b565b50506005805460ff19166012179055506000620000fb3390565b60058054610100600160a81b0319166101006001600160a01b03841690810291909117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600c80546001600160a01b031990811673ee11b8c256734eb1636c16e321ebec837f511f0817909155600b805490911661dead1790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d91600091839163c45a0155916004808301926020929190829003018186803b158015620001d857600080fd5b505afa158015620001ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000213919062000811565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200025c57600080fd5b505afa15801562000271573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000297919062000811565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015620002e057600080fd5b505af1158015620002f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031b919062000811565b600980546001600160a01b0319166001600160a01b038516179055606081901b6001600160601b03191660805290506200035781600162000415565b600d80546001600160a01b0319166001600160a01b0385811691909117909155600c54620003889116600162000555565b600b54620003a1906001600160a01b0316600162000555565b620003ae30600162000555565b620003d2620003ca60055461010090046001600160a01b031690565b600162000555565b620003df83600162000555565b600a54620003f8906001600160a01b0316600162000555565b6200040c836008546200060560201b60201c565b5050506200089c565b6005546001600160a01b036101009091041633146200046a5760405162461bcd60e51b81526020600482018190526024820152600080516020620047f983398151915260448201526064015b60405180910390fd5b6001600160a01b03821660009081526029602052604090205460ff1615158115151415620005015760405162461bcd60e51b815260206004820152603860248201527f4175746f6d61746564206d61726b6574206d616b65722070616972206973206160448201527f6c72656164792073657420746f20746861742076616c75650000000000000000606482015260840162000461565b6001600160a01b038216600081815260296020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6005546001600160a01b03610100909104163314620005a65760405162461bcd60e51b81526020600482018190526024820152600080516020620047f9833981519152604482015260640162000461565b6001600160a01b038216600081815260286020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b0382166200065d5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000461565b62000679816002546200070160201b6200242a1790919060201c565b6002556001600160a01b03821660009081526020818152604090912054620006ac9183906200242a62000701821b17901c565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6000806200071083856200083a565b905083811015620007645760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640162000461565b9392505050565b82805462000779906200085f565b90600052602060002090601f0160209004810192826200079d5760008555620007e8565b82601f10620007b857805160ff1916838001178555620007e8565b82800160010185558215620007e8579182015b82811115620007e8578251825591602001919060010190620007cb565b50620007f6929150620007fa565b5090565b5b80821115620007f65760008155600101620007fb565b60006020828403121562000823578081fd5b81516001600160a01b038116811462000764578182fd5b600082198211156200085a57634e487b7160e01b81526011600452602481fd5b500190565b600181811c908216806200087457607f821691505b602082108114156200089657634e487b7160e01b600052602260045260246000fd5b50919050565b60805160601c613f37620008c260003960008181610752015261190e0152613f376000f3fe60806040526004361061044b5760003560e01c80637b2c835f11610234578063b62496f51161012e578063dd90e1d8116100b6578063e7a919f91161007a578063e7a919f914610cf2578063e84d44f814610d12578063ea1644d514610d33578063f2fde38b14610d53578063ffecf51614610d7357600080fd5b8063dd90e1d814610c66578063e2f4560514610c86578063e4924f1814610c9c578063e71dc3f514610cbc578063e78cea9214610cd257600080fd5b8063c3a5dbb9116100fd578063c3a5dbb914610bb4578063d0a3981414610bca578063d29d44ee14610be0578063dd46706414610c00578063dd62ed3e14610c2057600080fd5b8063b62496f514610b2e578063b9e9370014610b5e578063bd0abd3a14610b74578063c024666814610b9457600080fd5b8063a457c2d7116101bc578063aacebbe311610180578063aacebbe314610a98578063adb873bd14610ab8578063af24aa1c14610ace578063afa4f3b214610aee578063b3b5e04314610b0e57600080fd5b8063a457c2d714610a0d578063a5cc8bcc14610a2d578063a69df4b514610a43578063a850673d14610a58578063a9059cbb14610a7857600080fd5b80638f3fa860116102035780638f3fa8601461099657806392136913146109ac57806395d89b41146109c2578063999777aa146109d75780639a7a23d6146109ed57600080fd5b80637b2c835f146109275780637bce5a041461094757806388a282a51461095d5780638da5cb5b1461097357600080fd5b80633395155e116103455780635fecd926116102cd57806372b2aecc1161029157806372b2aecc1461088c57806374170d8a146108a257806375f0a874146108b857806379012f33146108d85780637b16cea0146108ee57600080fd5b80635fecd926146107e05780636053a0e31461080057806365b8dbc01461082157806370a0823114610841578063715018a61461087757600080fd5b806349bd5a5e1161031457806349bd5a5e146107405780635134f6ab146107745780635aa821a9146107895780635c38ffe21461079f5780635dc96d16146107bf57600080fd5b80633395155e146106b157806339509351146106d15780633bbac579146106f15780633eaaf86b1461072a57600080fd5b80631694505e116103d3578063263b5fcb11610397578063263b5fcb1461060f57806327c8f8351461062f57806329370cc61461064f578063313ce5671461066f5780633265e8461461069157600080fd5b80631694505e1461058e57806318160ddd146105ae5780631a221dbb146105c35780631fe70a98146105d957806323b872dd146105ef57600080fd5b806307efbfdc1161041a57806307efbfdc146104f0578063095ea7b31461050757806309c58fcd14610537578063122fe6851461055857806315c2af6d1461057857600080fd5b806302259e9e1461045757806305ad068814610480578063062287491461049657806306fdde03146104ce57600080fd5b3661045257005b600080fd5b34801561046357600080fd5b5061046d600f5481565b6040519081526020015b60405180910390f35b34801561048c57600080fd5b5061046d601f5481565b3480156104a257600080fd5b50600b546104b6906001600160a01b031681565b6040516001600160a01b039091168152602001610477565b3480156104da57600080fd5b506104e3610d93565b6040516104779190613b40565b3480156104fc57600080fd5b50610505610e25565b005b34801561051357600080fd5b506105276105223660046139d7565b610f06565b6040519015158152602001610477565b34801561054357600080fd5b50600a5461052790600160a81b900460ff1681565b34801561056457600080fd5b506027546104b6906001600160a01b031681565b34801561058457600080fd5b5061046d601b5481565b34801561059a57600080fd5b506009546104b6906001600160a01b031681565b3480156105ba57600080fd5b5060025461046d565b3480156105cf57600080fd5b5061046d60205481565b3480156105e557600080fd5b5061046d601a5481565b3480156105fb57600080fd5b5061052761060a366004613963565b610f1d565b34801561061b57600080fd5b5061050561062a366004613a02565b610f86565b34801561063b57600080fd5b50600a546104b6906001600160a01b031681565b34801561065b57600080fd5b5061050561066a366004613a02565b6110e2565b34801561067b57600080fd5b5060055460405160ff9091168152602001610477565b34801561069d57600080fd5b506105056106ac366004613a55565b61123d565b3480156106bd57600080fd5b506105056106cc3660046138f3565b61139c565b3480156106dd57600080fd5b506105276106ec3660046139d7565b6113f0565b3480156106fd57600080fd5b5061052761070c3660046138f3565b6001600160a01b03166000908152602d602052604090205460ff1690565b34801561073657600080fd5b5061046d60085481565b34801561074c57600080fd5b506104b67f000000000000000000000000000000000000000000000000000000000000000081565b34801561078057600080fd5b50610505611426565b34801561079557600080fd5b5061046d600e5481565b3480156107ab57600080fd5b506105056107ba366004613a1c565b611506565b3480156107cb57600080fd5b50600a5461052790600160c01b900460ff1681565b3480156107ec57600080fd5b506105056107fb3660046138f3565b6115c4565b34801561080c57600080fd5b50600a5461052790600160b81b900460ff1681565b34801561082d57600080fd5b5061050561083c3660046138f3565b611615565b34801561084d57600080fd5b5061046d61085c3660046138f3565b6001600160a01b031660009081526020819052604090205490565b34801561088357600080fd5b5061050561170c565b34801561089857600080fd5b5061046d60245481565b3480156108ae57600080fd5b5061046d60195481565b3480156108c457600080fd5b50600c546104b6906001600160a01b031681565b3480156108e457600080fd5b5061046d60215481565b3480156108fa57600080fd5b506105276109093660046138f3565b6001600160a01b031660009081526028602052604090205460ff1690565b34801561093357600080fd5b50610505610942366004613a02565b61177a565b34801561095357600080fd5b5061046d60185481565b34801561096957600080fd5b5061046d601d5481565b34801561097f57600080fd5b5060055461010090046001600160a01b03166104b6565b3480156109a257600080fd5b5061046d60115481565b3480156109b857600080fd5b5061046d601e5481565b3480156109ce57600080fd5b506104e36118cd565b3480156109e357600080fd5b5061046d60265481565b3480156109f957600080fd5b50610505610a083660046139a3565b6118dc565b348015610a1957600080fd5b50610527610a283660046139d7565b611ab9565b348015610a3957600080fd5b5061046d60175481565b348015610a4f57600080fd5b50610505611b08565b348015610a6457600080fd5b50610505610a73366004613a1c565b611bd4565b348015610a8457600080fd5b50610527610a933660046139d7565b611c09565b348015610aa457600080fd5b50610505610ab33660046138f3565b611c16565b348015610ac457600080fd5b5061046d601c5481565b348015610ada57600080fd5b50610505610ae9366004613a1c565b611d2c565b348015610afa57600080fd5b50610505610b09366004613a1c565b611dae565b348015610b1a57600080fd5b50610505610b29366004613a1c565b611df6565b348015610b3a57600080fd5b50610527610b493660046138f3565b60296020526000908152604090205460ff1681565b348015610b6a57600080fd5b5061046d60235481565b348015610b8057600080fd5b50610505610b8f3660046138f3565b611eb4565b348015610ba057600080fd5b50610505610baf3660046139a3565b611f1e565b348015610bc057600080fd5b5061046d60255481565b348015610bd657600080fd5b5061046d60225481565b348015610bec57600080fd5b50610505610bfb3660046138f3565b611fad565b348015610c0c57600080fd5b50610505610c1b366004613a1c565b611ffc565b348015610c2c57600080fd5b5061046d610c3b36600461392b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b348015610c7257600080fd5b50610505610c81366004613a1c565b612097565b348015610c9257600080fd5b5061046d60105481565b348015610ca857600080fd5b50610505610cb7366004613a1c565b612119565b348015610cc857600080fd5b5061046d60165481565b348015610cde57600080fd5b50600d546104b6906001600160a01b031681565b348015610cfe57600080fd5b50610505610d0d366004613a34565b612195565b348015610d1e57600080fd5b50600a5461052790600160b01b900460ff1681565b348015610d3f57600080fd5b50610505610d4e366004613a1c565b6121e7565b348015610d5f57600080fd5b50610505610d6e3660046138f3565b6122ec565b348015610d7f57600080fd5b50610505610d8e3660046138f3565b6123d6565b606060038054610da290613e08565b80601f0160208091040260200160405190810160405280929190818152602001828054610dce90613e08565b8015610e1b5780601f10610df057610100808354040283529160200191610e1b565b820191906000526020600020905b815481529060010190602001808311610dfe57829003601f168201915b5050505050905090565b6005546001600160a01b03610100909104163314610e5e5760405162461bcd60e51b8152600401610e5590613c51565b60405180910390fd5b60066016819055600760188190556000601a819055601c839055601e8290556004602055610e98929091610e92919061242a565b9061242a565b602355602054601e54601c54610eb39291610e92919061242a565b602255600a805462ffffff60b01b19166201010160b01b1790556a108b2a2c28029094000000601055600854600e819055600f818155610f01916103e891610efb9190612490565b9061250f565b601155565b6000610f1333848461256a565b5060015b92915050565b6000610f2a84848461268f565b610f7c8433610f7785604051806060016040528060288152602001613e95602891396001600160a01b038a1660009081526001602090815260408083203384529091529020549190613288565b61256a565b5060019392505050565b6005546001600160a01b03610100909104163314610fb65760405162461bcd60e51b8152600401610e5590613c51565b600a5460ff600160b01b9091041615158115151415610fe75760405162461bcd60e51b8152600401610e5590613c1a565b806110515760188054601955601e8054601f55600091829055819055602054601c5461101792610e92919061242a565b602255601a546018546016546110329291610e92919061242a565b602355600a805460ff60b01b1916600160b01b831515021790556110a9565b601954601855601f54601e819055602054601c5461107392610e92919061242a565b602255601a5460185460165461108e9291610e92919061242a565b602355600a805460ff60b01b1916600160b01b831515021790555b60405181151581527f6ba6c1012539169f5a820a29533d8c8b797a1c7a5634edbd3124a80de0e75cba906020015b60405180910390a150565b6005546001600160a01b036101009091041633146111125760405162461bcd60e51b8152600401610e5590613c51565b600a5460ff600160b81b90910416151581151514156111435760405162461bcd60e51b8152600401610e5590613c1a565b806111b457601a8054601b556020805460215560009081905590819055601281905560185460165461117a9291610e92919061242a565b602355602054601e54601c546111959291610e92919061242a565b602255600a805460ff60b81b1916600160b81b8315150217905561120b565b601b54601a8190556021546020556016546018546111d592610e929161242a565b602355601c54601e546020546111f09291610e92919061242a565b602255600a805460ff60b81b1916600160b81b831515021790555b60405181151581527f3794234fa370c9f3b948dda3e3040530785b2ef1eb27dda3ffde478f4e2643c0906020016110d7565b6005546001600160a01b0361010090910416331461126d5760405162461bcd60e51b8152600401610e5590613c51565b602d8461127a8789613d8d565b6112849190613d8d565b60ff1611156112d55760405162461bcd60e51b815260206004820152601d60248201527f62757920666565206d757374206265206c657373207468616e203435250000006044820152606401610e55565b602d816112e28486613d8d565b6112ec9190613d8d565b60ff16111561133d5760405162461bcd60e51b815260206004820152601e60248201527f73656c6c20666565206d757374206265206c657373207468616e2034352500006044820152606401610e55565b60ff808716601a558581166018558481166016558381166020819055838216601e819055918316601c81905561137692610e929161242a565b602255601a546016546018546113919291610e92919061242a565b602355505050505050565b6005546001600160a01b036101009091041633146113cc5760405162461bcd60e51b8152600401610e5590613c51565b6001600160a01b03166000908152602860205260409020805460ff19166001179055565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610f13918590610f77908661242a565b6005546001600160a01b036101009091041633146114565760405162461bcd60e51b8152600401610e5590613c51565b600a54600160a81b900460ff16156114c95760405162461bcd60e51b815260206004820152603060248201527f63616e74207072657061726520666f722070726573616c65206f6e636520747260448201526f18591a5b99c81a5cc8195b98589b195960821b6064820152608401610e55565b600060168190556018819055601a819055601c819055601e819055602055600854600e819055600f818155610f01916103e891610efb9190612490565b6005546001600160a01b036101009091041633146115365760405162461bcd60e51b8152600401610e5590613c51565b61155e670de0b6b3a7640000610efb612710610efb600160085461249090919063ffffffff16565b81101561157d5760405162461bcd60e51b8152600401610e5590613c86565b61158f81670de0b6b3a7640000613dd2565b600f8190556040519081527f450d23a0c8fe1d8ee7eec671af81bb64da01b35f9cad30443f39ebbfae68bfb5906020016110d7565b6005546001600160a01b036101009091041633146115f45760405162461bcd60e51b8152600401610e5590613c51565b6001600160a01b03166000908152602d60205260409020805460ff19169055565b6005546001600160a01b036101009091041633146116455760405162461bcd60e51b8152600401610e5590613c51565b6009546001600160a01b03828116911614156116af5760405162461bcd60e51b815260206004820152602360248201527f54686520726f7574657220616c7265616479206861732074686174206164647260448201526265737360e81b6064820152608401610e55565b6009546040516001600160a01b03918216918316907f8fc842bbd331dfa973645f4ed48b11683d501ebf1352708d77a5da2ab49a576e90600090a3600980546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0361010090910416331461173c5760405162461bcd60e51b8152600401610e5590613c51565b60055460405160009161010090046001600160a01b031690600080516020613ebd833981519152908390a360058054610100600160a81b0319169055565b6005546001600160a01b036101009091041633146117aa5760405162461bcd60e51b8152600401610e5590613c51565b600a5460ff600160c01b90910416151581151514156117db5760405162461bcd60e51b8152600401610e5590613c1a565b806118445760168054601755601c8054601d55600091829055819055601a5460185461180a92610e929161242a565b602355602054601e54601c546118259291610e92919061242a565b602255600a805460ff60c01b1916600160c01b8315150217905561189b565b6017546016819055601d54601c55601a5460185461186592610e929161242a565b602355602054601e54601c546118809291610e92919061242a565b602255600a805460ff60c01b1916600160c01b831515021790555b60405181151581527f2c1d3fa42470f38c24d7ce77dc883522afe986e4d2f9bb71e11756381c240e2c906020016110d7565b606060048054610da290613e08565b6005546001600160a01b0361010090910416331461190c5760405162461bcd60e51b8152600401610e5590613c51565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614156119c25760405162461bcd60e51b815260206004820152604560248201527f5468652050616e63616b655377617020706169722063616e6e6f74206265207260448201527f656d6f7665642066726f6d206175746f6d617465644d61726b65744d616b6572606482015264506169727360d81b608482015260a401610e55565b6001600160a01b03821660009081526029602052604090205460ff1615158115151415611a655760405162461bcd60e51b8152602060048201526044602482018190527f446f6765476179536f6e3a204175746f6d61746564206d61726b6574206d616b908201527f6572207061697220697320616c72656164792073657420746f20746861742076606482015263616c756560e01b608482015260a401610e55565b6001600160a01b038216600081815260296020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6000610f133384610f7785604051806060016040528060258152602001613edd602591393360009081526001602090815260408083206001600160a01b038d1684529091529020549190613288565b6005546001600160a01b03610100909104163314611b385760405162461bcd60e51b8152600401610e5590613c51565b6007544211611b895760405162461bcd60e51b815260206004820152601860248201527f446561646c696e65206e6f7420726561636865642079657400000000000000006044820152606401610e55565b60065460058054610100600160a81b0319166101006001600160a01b0393841681029190911791829055604051910490911690600090600080516020613ebd833981519152908290a3565b6005546001600160a01b03610100909104163314611c045760405162461bcd60e51b8152600401610e5590613c51565b602455565b6000610f1333848461268f565b6005546001600160a01b03610100909104163314611c465760405162461bcd60e51b8152600401610e5590613c51565b600c546001600160a01b0382811691161415611cb95760405162461bcd60e51b815260206004820152602c60248201527f546865206d61726b6574696e672077616c6c657420697320616c72656164792060448201526b74686973206164647265737360a01b6064820152608401610e55565b6001600160a01b03808216600081815260286020526040808220805460ff19166001179055600c5490519316927f8616c7a330e3cf61290821331585511f1e2778171e2b005fb5ec60cfe874dc679190a3600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03610100909104163314611d5c5760405162461bcd60e51b8152600401610e5590613c51565b6064811115611da95760405162461bcd60e51b815260206004820152601960248201527806d757374206265206265747765656e203020616e642031303603c1b6044820152606401610e55565b601555565b6005546001600160a01b03610100909104163314611dde5760405162461bcd60e51b8152600401610e5590613c51565b611df081670de0b6b3a7640000613dd2565b60105550565b6005546001600160a01b03610100909104163314611e265760405162461bcd60e51b8152600401610e5590613c51565b611e4e670de0b6b3a7640000610efb612710610efb600160085461249090919063ffffffff16565b811015611e6d5760405162461bcd60e51b8152600401610e5590613c86565b611e7f81670de0b6b3a7640000613dd2565b600e8190556040519081527fa82469cbc2691c8bb428b5529de55698a97ade50c212279be4d74dce6047fc32906020016110d7565b6005546001600160a01b03610100909104163314611ee45760405162461bcd60e51b8152600401610e5590613c51565b602780546001600160a01b039092166001600160a01b0319909216821790556000908152602860205260409020805460ff19166001179055565b6005546001600160a01b03610100909104163314611f4e5760405162461bcd60e51b8152600401610e5590613c51565b6001600160a01b038216600081815260286020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03610100909104163314611fdd5760405162461bcd60e51b8152600401610e5590613c51565b6001600160a01b038116611ff057600080fd5b611ff9816122ec565b50565b6005546001600160a01b0361010090910416331461202c5760405162461bcd60e51b8152600401610e5590613c51565b60058054600680546001600160a01b0319166001600160a01b03610100840416179055610100600160a81b03191690556120668142613d75565b60075560055460405160009161010090046001600160a01b031690600080516020613ebd833981519152908390a350565b6005546001600160a01b036101009091041633146120c75760405162461bcd60e51b8152600401610e5590613c51565b60648111156121145760405162461bcd60e51b815260206004820152601960248201527806d757374206265206265747765656e203020616e642031303603c1b6044820152606401610e55565b601455565b6005546001600160a01b036101009091041633146121495760405162461bcd60e51b8152600401610e5590613c51565b600a81106121905760405162461bcd60e51b815260206004820152601460248201527306d757374206265206c657373207468616e2031360641b6044820152606401610e55565b602c55565b6005546001600160a01b036101009091041633146121c55760405162461bcd60e51b8152600401610e5590613c51565b600a805460ff60a81b1916600160a81b179055602c9190915560155542602b55565b6005546001600160a01b036101009091041633146122175760405162461bcd60e51b8152600401610e5590613c51565b61223f670de0b6b3a7640000610efb6103e8610efb600560085461249090919063ffffffff16565b8110156122a55760405162461bcd60e51b815260206004820152602e60248201527f616d6f756e74206d7573742062652067726561746572207468616e20302e352560448201526d206f662074686520737570706c7960901b6064820152608401610e55565b6122b781670de0b6b3a7640000613dd2565b60118190556040519081527ffb1fe1002b7550e87616e67793dbb7d3f437a79c2688c372c66dc170dbcb0efd906020016110d7565b6005546001600160a01b0361010090910416331461231c5760405162461bcd60e51b8152600401610e5590613c51565b6001600160a01b0381166123815760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610e55565b6005546040516001600160a01b038084169261010090041690600080516020613ebd83398151915290600090a3600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6005546001600160a01b036101009091041633146124065760405162461bcd60e51b8152600401610e5590613c51565b6001600160a01b03166000908152602d60205260409020805460ff19166001179055565b6000806124378385613d75565b9050838110156124895760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610e55565b9392505050565b60008261249f57506000610f17565b60006124ab8385613dd2565b9050826124b88583613db2565b146124895760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610e55565b60008082116125605760405162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f0000000000006044820152606401610e55565b6124898284613db2565b6001600160a01b0383166125cc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610e55565b6001600160a01b03821661262d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610e55565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166126b55760405162461bcd60e51b8152600401610e5590613cdb565b6001600160a01b0382166126db5760405162461bcd60e51b8152600401610e5590613b93565b600a54600160a81b900460ff168061272d57506001600160a01b03831660009081526028602052604090205460ff168061272d57506001600160a01b03821660009081526028602052604090205460ff165b6127795760405162461bcd60e51b815260206004820152601b60248201527f54726164696e6720686173206e6f7420737461727465642079657400000000006044820152606401610e55565b6001600160a01b03831660009081526028602052604081205460ff16806127b857506001600160a01b03831660009081526028602052604090205460ff165b600a54909150600160a81b900460ff1680156127ec57506001600160a01b03841660009081526029602052604090205460ff165b80156127f6575080155b156129bb57600e5482111561285e5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610e55565b6001600160a01b0384166000908152602d602052604090205460ff161580156128a057506001600160a01b0383166000908152602d602052604090205460ff16155b6128e05760405162461bcd60e51b8152602060048201526011602482015270626f74732063616e6e6f7420747261646560781b6044820152606401610e55565b6001600160a01b0383166000908152602a60205260409020429055602c54602b5461290a9161242a565b4211612971576001600160a01b0383166000908152602d60205260408120805460ff1916600117905560155461294890606490610efb908690612490565b905061295483826132bf565b600a5490935061296f9086906001600160a01b03168361331b565b505b6001600160a01b0383166000908152602081905260409020546011546129978483613d75565b11156129b55760405162461bcd60e51b8152600401610e5590613bd6565b50612f50565b600a54600160a81b900460ff1680156129ec57506001600160a01b03831660009081526029602052604090205460ff165b80156129f6575080155b15612ecb576001600160a01b0384166000908152602d602052604090205460ff16158015612a3d57506001600160a01b0383166000908152602d602052604090205460ff16155b612a7d5760405162461bcd60e51b8152602060048201526011602482015270626f74732063616e6e6f7420747261646560781b6044820152606401610e55565b600f54821115612af55760405162461bcd60e51b815260206004820152603a60248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201527f206d617853656c6c5472616e73616374696f6e416d6f756e742e0000000000006064820152608401610e55565b602c546001600160a01b0385166000908152602a6020526040902054612b1b9042613df1565b11612b48576001600160a01b0384166000908152602d60205260409020805460ff19166001179055612b64565b6001600160a01b0384166000908152602a602052604090204290555b30600090815260208190526040902054601054600a549082101590600160a01b900460ff16158015612b935750805b15612ec457600a805460ff60a01b1916600160a01b17905560008080808080612bba613424565b905060006026541180612bcf57506000602554115b15612c1557612bfc612bee60255460265461242a90919063ffffffff16565b602554610efb908b90612490565b9450612c0888866132bf565b6000602581905560265593505b600a54600160b81b900460ff1615612cf257612c3088613545565b602354479015612c7e57612c7b612c526018548661242a90919063ffffffff16565b610efb601a54612c758d610efb8c612c756012548a6132bf90919063ffffffff16565b90612490565b93505b60225415612cc457612cc1612c9e601e548561242a90919063ffffffff16565b610efb602054612c758d610efb8b612c756012548a6132bf90919063ffffffff16565b92505b612cda612cd1858561242a565b6012549061242a565b6012819055612cea9082906132bf565b965050612cff565b612cfb88613545565b4795505b600a54600160b01b900460ff1615612e1357602b54612d219062015180613d75565b421015612df957601854869060009015612d5a57601854612d4d90610efb6001612c758e838e8e612490565b612d579082613d75565b90505b601e5415612d8757601e54612d7a90610efb6001612c758e838e8d612490565b612d849082613d75565b90505b6000612d9383836132bf565b600c54909150612dac906001600160a01b0316826136ca565b6040517316d6037b9976be034d79b8cce863ff82d2bbbc6790819084156108fc029085906000818181858888f19350505050158015612def573d6000803e3d6000fd5b5050505050612e13565b600c548690612e11906001600160a01b0316826136ca565b505b600a54600160b81b900460ff168015612e41575061012c612e3f601354426132bf90919063ffffffff16565b115b15612eb057603281111580612e6b5750610258612e69601354426132bf90919063ffffffff16565b115b15612eb0576000612e8e6064610efb60145460125461249090919063ffffffff16565b601254909150612e9e90826132bf565b601255612eaa81613705565b50426013555b5050600a805460ff60a01b19169055505050505b5050612f50565b6001600160a01b0384166000908152602d602052604090205460ff16158015612f0d57506001600160a01b0383166000908152602d602052604090205460ff16155b612f505760405162461bcd60e51b81526020600482015260146024820152733137ba399031b0b73737ba103a3930b739b332b960611b6044820152606401610e55565b600a54600090600160a81b900460ff168015612f765750600a54600160a01b900460ff16155b8015612f80575081155b90508015613276576001600160a01b038516600090815260296020526040812054819060ff161561304257612fc56064610efb6023548861249090919063ffffffff16565b600a54909250600160c01b900460ff1615613025576000612ff7602354610efb6016548661249090919063ffffffff16565b905061300383826132bf565b600b5490935090915081906130239089906001600160a01b03168361331b565b505b81602560008282546130379190613d75565b909155506131da9050565b6001600160a01b03861660009081526029602052604090205460ff16156130ef5761307d6064610efb6022548861249090919063ffffffff16565b600a54909250600160c01b900460ff16156130dd5760006130af602254610efb601c548661249090919063ffffffff16565b90506130bb83826132bf565b600b5490935090915081906130db9089906001600160a01b03168361331b565b505b81602660008282546130379190613d75565b6001600160a01b0386166000908152602081905260409020546011546131158783613d75565b11156131335760405162461bcd60e51b8152600401610e5590613bd6565b60006131516064610efb60245460225461249090919063ffffffff16565b90506131626064610efb8984612490565b600a54909450600160c01b900460ff16156131c057600061319282610efb601c548861249090919063ffffffff16565b905061319e85826132bf565b600b5490955090935083906131be908b906001600160a01b03168361331b565b505b83602660008282546131d29190613d75565b909155505050505b6001600160a01b0387166000908152602d602052604090205460ff168061321957506001600160a01b0386166000908152602d602052604090205460ff165b15613252576132386064610efb6015548861249090919063ffffffff16565b9150816025600082825461324c9190613d75565b90915550505b61326661325f838361242a565b86906132bf565b945061327387308461331b565b50505b61328185858561331b565b5050505050565b600081848411156132ac5760405162461bcd60e51b8152600401610e559190613b40565b506132b78385613df1565b949350505050565b6000828211156133115760405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f7700006044820152606401610e55565b6124898284613df1565b6001600160a01b0383166133415760405162461bcd60e51b8152600401610e5590613cdb565b6001600160a01b0382166133675760405162461bcd60e51b8152600401610e5590613b93565b6133a481604051806060016040528060268152602001613e6f602691396001600160a01b0386166000908152602081905260409020549190613288565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546133d3908261242a565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101612682565b6040516bffffffffffffffffffffffff193360601b1660208201526000908190439042906034016040516020818303038152906040528051906020012060001c61346e9190613db2565b6040516bffffffffffffffffffffffff194160601b166020820152459042906034016040516020818303038152906040528051906020012060001c6134b39190613db2565b6134bd4442613d75565b6134c79190613d75565b6134d19190613d75565b6134db9190613d75565b6134e59190613d75565b6040516020016134f791815260200190565b60408051601f1981840301815291905280516020909101209050600061351e606483613db2565b613529906064613dd2565b6135339083613df1565b905080610f1757612489600182613d75565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061358857634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156135dc57600080fd5b505afa1580156135f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613614919061390f565b8160018151811061363557634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260095461365b913091168461256a565b60095460405163791ac94760e01b81526001600160a01b039091169063791ac94790613694908590600090869030904290600401613d39565b600060405180830381600087803b1580156136ae57600080fd5b505af11580156136c2573d6000803e3d6000fd5b505050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015613700573d6000803e3d6000fd5b505050565b6040805160028082526060820183526000926020830190803683375050600954604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c464892506004808301926020929190829003018186803b15801561376a57600080fd5b505afa15801561377e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137a2919061390f565b816000815181106137c357634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b031681525050308160018151811061380557634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152600954600a549082169163b6f9de9591859160009186911661383f4261012c61242a565b6040518663ffffffff1660e01b815260040161385e9493929190613b0b565b6000604051808303818588803b15801561387757600080fd5b505af115801561388b573d6000803e3d6000fd5b50505050507fd79349298b0eadebdb47b2a093b1596f41af709d6a3bc3d848b9e8821df4807282826040516138c1929190613d20565b60405180910390a15050565b803580151581146138dd57600080fd5b919050565b803560ff811681146138dd57600080fd5b600060208284031215613904578081fd5b813561248981613e59565b600060208284031215613920578081fd5b815161248981613e59565b6000806040838503121561393d578081fd5b823561394881613e59565b9150602083013561395881613e59565b809150509250929050565b600080600060608486031215613977578081fd5b833561398281613e59565b9250602084013561399281613e59565b929592945050506040919091013590565b600080604083850312156139b5578182fd5b82356139c081613e59565b91506139ce602084016138cd565b90509250929050565b600080604083850312156139e9578182fd5b82356139f481613e59565b946020939093013593505050565b600060208284031215613a13578081fd5b612489826138cd565b600060208284031215613a2d578081fd5b5035919050565b60008060408385031215613a46578182fd5b50508035926020909101359150565b60008060008060008060c08789031215613a6d578182fd5b613a76876138e2565b9550613a84602088016138e2565b9450613a92604088016138e2565b9350613aa0606088016138e2565b9250613aae608088016138e2565b9150613abc60a088016138e2565b90509295509295509295565b6000815180845260208085019450808401835b83811015613b005781516001600160a01b031687529582019590820190600101613adb565b509495945050505050565b848152608060208201526000613b246080830186613ac8565b6001600160a01b03949094166040830152506060015292915050565b6000602080835283518082850152825b81811015613b6c57858101830151858201604001528201613b50565b81811115613b7d5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526024908201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6040820152633ab73a1760e11b606082015260800190565b6020808252601d908201527f43616e27742073657420666c616720746f2073616d6520737461747573000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526035908201527f616d6f756e74206d7573742062652067726561746572207468616e20302e303160408201527425206f662074686520746f74616c20737570706c7960581b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b8281526040602082015260006132b76040830184613ac8565b85815284602082015260a060408201526000613d5860a0830186613ac8565b6001600160a01b0394909416606083015250608001529392505050565b60008219821115613d8857613d88613e43565b500190565b600060ff821660ff84168060ff03821115613daa57613daa613e43565b019392505050565b600082613dcd57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615613dec57613dec613e43565b500290565b600082821015613e0357613e03613e43565b500390565b600181811c90821680613e1c57607f821691505b60208210811415613e3d57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114611ff957600080fdfe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212201977fe9f785afb4bfdcb5ccb89e4b2f723aa237a828db5ddaaba354d7f94999964736f6c634300080400334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572000000000000000000000000e5f5f0eea3ed214d847ddf8474423fb89a72fd84
Deployed Bytecode
0x60806040526004361061044b5760003560e01c80637b2c835f11610234578063b62496f51161012e578063dd90e1d8116100b6578063e7a919f91161007a578063e7a919f914610cf2578063e84d44f814610d12578063ea1644d514610d33578063f2fde38b14610d53578063ffecf51614610d7357600080fd5b8063dd90e1d814610c66578063e2f4560514610c86578063e4924f1814610c9c578063e71dc3f514610cbc578063e78cea9214610cd257600080fd5b8063c3a5dbb9116100fd578063c3a5dbb914610bb4578063d0a3981414610bca578063d29d44ee14610be0578063dd46706414610c00578063dd62ed3e14610c2057600080fd5b8063b62496f514610b2e578063b9e9370014610b5e578063bd0abd3a14610b74578063c024666814610b9457600080fd5b8063a457c2d7116101bc578063aacebbe311610180578063aacebbe314610a98578063adb873bd14610ab8578063af24aa1c14610ace578063afa4f3b214610aee578063b3b5e04314610b0e57600080fd5b8063a457c2d714610a0d578063a5cc8bcc14610a2d578063a69df4b514610a43578063a850673d14610a58578063a9059cbb14610a7857600080fd5b80638f3fa860116102035780638f3fa8601461099657806392136913146109ac57806395d89b41146109c2578063999777aa146109d75780639a7a23d6146109ed57600080fd5b80637b2c835f146109275780637bce5a041461094757806388a282a51461095d5780638da5cb5b1461097357600080fd5b80633395155e116103455780635fecd926116102cd57806372b2aecc1161029157806372b2aecc1461088c57806374170d8a146108a257806375f0a874146108b857806379012f33146108d85780637b16cea0146108ee57600080fd5b80635fecd926146107e05780636053a0e31461080057806365b8dbc01461082157806370a0823114610841578063715018a61461087757600080fd5b806349bd5a5e1161031457806349bd5a5e146107405780635134f6ab146107745780635aa821a9146107895780635c38ffe21461079f5780635dc96d16146107bf57600080fd5b80633395155e146106b157806339509351146106d15780633bbac579146106f15780633eaaf86b1461072a57600080fd5b80631694505e116103d3578063263b5fcb11610397578063263b5fcb1461060f57806327c8f8351461062f57806329370cc61461064f578063313ce5671461066f5780633265e8461461069157600080fd5b80631694505e1461058e57806318160ddd146105ae5780631a221dbb146105c35780631fe70a98146105d957806323b872dd146105ef57600080fd5b806307efbfdc1161041a57806307efbfdc146104f0578063095ea7b31461050757806309c58fcd14610537578063122fe6851461055857806315c2af6d1461057857600080fd5b806302259e9e1461045757806305ad068814610480578063062287491461049657806306fdde03146104ce57600080fd5b3661045257005b600080fd5b34801561046357600080fd5b5061046d600f5481565b6040519081526020015b60405180910390f35b34801561048c57600080fd5b5061046d601f5481565b3480156104a257600080fd5b50600b546104b6906001600160a01b031681565b6040516001600160a01b039091168152602001610477565b3480156104da57600080fd5b506104e3610d93565b6040516104779190613b40565b3480156104fc57600080fd5b50610505610e25565b005b34801561051357600080fd5b506105276105223660046139d7565b610f06565b6040519015158152602001610477565b34801561054357600080fd5b50600a5461052790600160a81b900460ff1681565b34801561056457600080fd5b506027546104b6906001600160a01b031681565b34801561058457600080fd5b5061046d601b5481565b34801561059a57600080fd5b506009546104b6906001600160a01b031681565b3480156105ba57600080fd5b5060025461046d565b3480156105cf57600080fd5b5061046d60205481565b3480156105e557600080fd5b5061046d601a5481565b3480156105fb57600080fd5b5061052761060a366004613963565b610f1d565b34801561061b57600080fd5b5061050561062a366004613a02565b610f86565b34801561063b57600080fd5b50600a546104b6906001600160a01b031681565b34801561065b57600080fd5b5061050561066a366004613a02565b6110e2565b34801561067b57600080fd5b5060055460405160ff9091168152602001610477565b34801561069d57600080fd5b506105056106ac366004613a55565b61123d565b3480156106bd57600080fd5b506105056106cc3660046138f3565b61139c565b3480156106dd57600080fd5b506105276106ec3660046139d7565b6113f0565b3480156106fd57600080fd5b5061052761070c3660046138f3565b6001600160a01b03166000908152602d602052604090205460ff1690565b34801561073657600080fd5b5061046d60085481565b34801561074c57600080fd5b506104b67f0000000000000000000000009ff588556aa8c24d7d002d7a0d280c181404a80981565b34801561078057600080fd5b50610505611426565b34801561079557600080fd5b5061046d600e5481565b3480156107ab57600080fd5b506105056107ba366004613a1c565b611506565b3480156107cb57600080fd5b50600a5461052790600160c01b900460ff1681565b3480156107ec57600080fd5b506105056107fb3660046138f3565b6115c4565b34801561080c57600080fd5b50600a5461052790600160b81b900460ff1681565b34801561082d57600080fd5b5061050561083c3660046138f3565b611615565b34801561084d57600080fd5b5061046d61085c3660046138f3565b6001600160a01b031660009081526020819052604090205490565b34801561088357600080fd5b5061050561170c565b34801561089857600080fd5b5061046d60245481565b3480156108ae57600080fd5b5061046d60195481565b3480156108c457600080fd5b50600c546104b6906001600160a01b031681565b3480156108e457600080fd5b5061046d60215481565b3480156108fa57600080fd5b506105276109093660046138f3565b6001600160a01b031660009081526028602052604090205460ff1690565b34801561093357600080fd5b50610505610942366004613a02565b61177a565b34801561095357600080fd5b5061046d60185481565b34801561096957600080fd5b5061046d601d5481565b34801561097f57600080fd5b5060055461010090046001600160a01b03166104b6565b3480156109a257600080fd5b5061046d60115481565b3480156109b857600080fd5b5061046d601e5481565b3480156109ce57600080fd5b506104e36118cd565b3480156109e357600080fd5b5061046d60265481565b3480156109f957600080fd5b50610505610a083660046139a3565b6118dc565b348015610a1957600080fd5b50610527610a283660046139d7565b611ab9565b348015610a3957600080fd5b5061046d60175481565b348015610a4f57600080fd5b50610505611b08565b348015610a6457600080fd5b50610505610a73366004613a1c565b611bd4565b348015610a8457600080fd5b50610527610a933660046139d7565b611c09565b348015610aa457600080fd5b50610505610ab33660046138f3565b611c16565b348015610ac457600080fd5b5061046d601c5481565b348015610ada57600080fd5b50610505610ae9366004613a1c565b611d2c565b348015610afa57600080fd5b50610505610b09366004613a1c565b611dae565b348015610b1a57600080fd5b50610505610b29366004613a1c565b611df6565b348015610b3a57600080fd5b50610527610b493660046138f3565b60296020526000908152604090205460ff1681565b348015610b6a57600080fd5b5061046d60235481565b348015610b8057600080fd5b50610505610b8f3660046138f3565b611eb4565b348015610ba057600080fd5b50610505610baf3660046139a3565b611f1e565b348015610bc057600080fd5b5061046d60255481565b348015610bd657600080fd5b5061046d60225481565b348015610bec57600080fd5b50610505610bfb3660046138f3565b611fad565b348015610c0c57600080fd5b50610505610c1b366004613a1c565b611ffc565b348015610c2c57600080fd5b5061046d610c3b36600461392b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b348015610c7257600080fd5b50610505610c81366004613a1c565b612097565b348015610c9257600080fd5b5061046d60105481565b348015610ca857600080fd5b50610505610cb7366004613a1c565b612119565b348015610cc857600080fd5b5061046d60165481565b348015610cde57600080fd5b50600d546104b6906001600160a01b031681565b348015610cfe57600080fd5b50610505610d0d366004613a34565b612195565b348015610d1e57600080fd5b50600a5461052790600160b01b900460ff1681565b348015610d3f57600080fd5b50610505610d4e366004613a1c565b6121e7565b348015610d5f57600080fd5b50610505610d6e3660046138f3565b6122ec565b348015610d7f57600080fd5b50610505610d8e3660046138f3565b6123d6565b606060038054610da290613e08565b80601f0160208091040260200160405190810160405280929190818152602001828054610dce90613e08565b8015610e1b5780601f10610df057610100808354040283529160200191610e1b565b820191906000526020600020905b815481529060010190602001808311610dfe57829003601f168201915b5050505050905090565b6005546001600160a01b03610100909104163314610e5e5760405162461bcd60e51b8152600401610e5590613c51565b60405180910390fd5b60066016819055600760188190556000601a819055601c839055601e8290556004602055610e98929091610e92919061242a565b9061242a565b602355602054601e54601c54610eb39291610e92919061242a565b602255600a805462ffffff60b01b19166201010160b01b1790556a108b2a2c28029094000000601055600854600e819055600f818155610f01916103e891610efb9190612490565b9061250f565b601155565b6000610f1333848461256a565b5060015b92915050565b6000610f2a84848461268f565b610f7c8433610f7785604051806060016040528060288152602001613e95602891396001600160a01b038a1660009081526001602090815260408083203384529091529020549190613288565b61256a565b5060019392505050565b6005546001600160a01b03610100909104163314610fb65760405162461bcd60e51b8152600401610e5590613c51565b600a5460ff600160b01b9091041615158115151415610fe75760405162461bcd60e51b8152600401610e5590613c1a565b806110515760188054601955601e8054601f55600091829055819055602054601c5461101792610e92919061242a565b602255601a546018546016546110329291610e92919061242a565b602355600a805460ff60b01b1916600160b01b831515021790556110a9565b601954601855601f54601e819055602054601c5461107392610e92919061242a565b602255601a5460185460165461108e9291610e92919061242a565b602355600a805460ff60b01b1916600160b01b831515021790555b60405181151581527f6ba6c1012539169f5a820a29533d8c8b797a1c7a5634edbd3124a80de0e75cba906020015b60405180910390a150565b6005546001600160a01b036101009091041633146111125760405162461bcd60e51b8152600401610e5590613c51565b600a5460ff600160b81b90910416151581151514156111435760405162461bcd60e51b8152600401610e5590613c1a565b806111b457601a8054601b556020805460215560009081905590819055601281905560185460165461117a9291610e92919061242a565b602355602054601e54601c546111959291610e92919061242a565b602255600a805460ff60b81b1916600160b81b8315150217905561120b565b601b54601a8190556021546020556016546018546111d592610e929161242a565b602355601c54601e546020546111f09291610e92919061242a565b602255600a805460ff60b81b1916600160b81b831515021790555b60405181151581527f3794234fa370c9f3b948dda3e3040530785b2ef1eb27dda3ffde478f4e2643c0906020016110d7565b6005546001600160a01b0361010090910416331461126d5760405162461bcd60e51b8152600401610e5590613c51565b602d8461127a8789613d8d565b6112849190613d8d565b60ff1611156112d55760405162461bcd60e51b815260206004820152601d60248201527f62757920666565206d757374206265206c657373207468616e203435250000006044820152606401610e55565b602d816112e28486613d8d565b6112ec9190613d8d565b60ff16111561133d5760405162461bcd60e51b815260206004820152601e60248201527f73656c6c20666565206d757374206265206c657373207468616e2034352500006044820152606401610e55565b60ff808716601a558581166018558481166016558381166020819055838216601e819055918316601c81905561137692610e929161242a565b602255601a546016546018546113919291610e92919061242a565b602355505050505050565b6005546001600160a01b036101009091041633146113cc5760405162461bcd60e51b8152600401610e5590613c51565b6001600160a01b03166000908152602860205260409020805460ff19166001179055565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610f13918590610f77908661242a565b6005546001600160a01b036101009091041633146114565760405162461bcd60e51b8152600401610e5590613c51565b600a54600160a81b900460ff16156114c95760405162461bcd60e51b815260206004820152603060248201527f63616e74207072657061726520666f722070726573616c65206f6e636520747260448201526f18591a5b99c81a5cc8195b98589b195960821b6064820152608401610e55565b600060168190556018819055601a819055601c819055601e819055602055600854600e819055600f818155610f01916103e891610efb9190612490565b6005546001600160a01b036101009091041633146115365760405162461bcd60e51b8152600401610e5590613c51565b61155e670de0b6b3a7640000610efb612710610efb600160085461249090919063ffffffff16565b81101561157d5760405162461bcd60e51b8152600401610e5590613c86565b61158f81670de0b6b3a7640000613dd2565b600f8190556040519081527f450d23a0c8fe1d8ee7eec671af81bb64da01b35f9cad30443f39ebbfae68bfb5906020016110d7565b6005546001600160a01b036101009091041633146115f45760405162461bcd60e51b8152600401610e5590613c51565b6001600160a01b03166000908152602d60205260409020805460ff19169055565b6005546001600160a01b036101009091041633146116455760405162461bcd60e51b8152600401610e5590613c51565b6009546001600160a01b03828116911614156116af5760405162461bcd60e51b815260206004820152602360248201527f54686520726f7574657220616c7265616479206861732074686174206164647260448201526265737360e81b6064820152608401610e55565b6009546040516001600160a01b03918216918316907f8fc842bbd331dfa973645f4ed48b11683d501ebf1352708d77a5da2ab49a576e90600090a3600980546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0361010090910416331461173c5760405162461bcd60e51b8152600401610e5590613c51565b60055460405160009161010090046001600160a01b031690600080516020613ebd833981519152908390a360058054610100600160a81b0319169055565b6005546001600160a01b036101009091041633146117aa5760405162461bcd60e51b8152600401610e5590613c51565b600a5460ff600160c01b90910416151581151514156117db5760405162461bcd60e51b8152600401610e5590613c1a565b806118445760168054601755601c8054601d55600091829055819055601a5460185461180a92610e929161242a565b602355602054601e54601c546118259291610e92919061242a565b602255600a805460ff60c01b1916600160c01b8315150217905561189b565b6017546016819055601d54601c55601a5460185461186592610e929161242a565b602355602054601e54601c546118809291610e92919061242a565b602255600a805460ff60c01b1916600160c01b831515021790555b60405181151581527f2c1d3fa42470f38c24d7ce77dc883522afe986e4d2f9bb71e11756381c240e2c906020016110d7565b606060048054610da290613e08565b6005546001600160a01b0361010090910416331461190c5760405162461bcd60e51b8152600401610e5590613c51565b7f0000000000000000000000009ff588556aa8c24d7d002d7a0d280c181404a8096001600160a01b0316826001600160a01b031614156119c25760405162461bcd60e51b815260206004820152604560248201527f5468652050616e63616b655377617020706169722063616e6e6f74206265207260448201527f656d6f7665642066726f6d206175746f6d617465644d61726b65744d616b6572606482015264506169727360d81b608482015260a401610e55565b6001600160a01b03821660009081526029602052604090205460ff1615158115151415611a655760405162461bcd60e51b8152602060048201526044602482018190527f446f6765476179536f6e3a204175746f6d61746564206d61726b6574206d616b908201527f6572207061697220697320616c72656164792073657420746f20746861742076606482015263616c756560e01b608482015260a401610e55565b6001600160a01b038216600081815260296020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6000610f133384610f7785604051806060016040528060258152602001613edd602591393360009081526001602090815260408083206001600160a01b038d1684529091529020549190613288565b6005546001600160a01b03610100909104163314611b385760405162461bcd60e51b8152600401610e5590613c51565b6007544211611b895760405162461bcd60e51b815260206004820152601860248201527f446561646c696e65206e6f7420726561636865642079657400000000000000006044820152606401610e55565b60065460058054610100600160a81b0319166101006001600160a01b0393841681029190911791829055604051910490911690600090600080516020613ebd833981519152908290a3565b6005546001600160a01b03610100909104163314611c045760405162461bcd60e51b8152600401610e5590613c51565b602455565b6000610f1333848461268f565b6005546001600160a01b03610100909104163314611c465760405162461bcd60e51b8152600401610e5590613c51565b600c546001600160a01b0382811691161415611cb95760405162461bcd60e51b815260206004820152602c60248201527f546865206d61726b6574696e672077616c6c657420697320616c72656164792060448201526b74686973206164647265737360a01b6064820152608401610e55565b6001600160a01b03808216600081815260286020526040808220805460ff19166001179055600c5490519316927f8616c7a330e3cf61290821331585511f1e2778171e2b005fb5ec60cfe874dc679190a3600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03610100909104163314611d5c5760405162461bcd60e51b8152600401610e5590613c51565b6064811115611da95760405162461bcd60e51b815260206004820152601960248201527806d757374206265206265747765656e203020616e642031303603c1b6044820152606401610e55565b601555565b6005546001600160a01b03610100909104163314611dde5760405162461bcd60e51b8152600401610e5590613c51565b611df081670de0b6b3a7640000613dd2565b60105550565b6005546001600160a01b03610100909104163314611e265760405162461bcd60e51b8152600401610e5590613c51565b611e4e670de0b6b3a7640000610efb612710610efb600160085461249090919063ffffffff16565b811015611e6d5760405162461bcd60e51b8152600401610e5590613c86565b611e7f81670de0b6b3a7640000613dd2565b600e8190556040519081527fa82469cbc2691c8bb428b5529de55698a97ade50c212279be4d74dce6047fc32906020016110d7565b6005546001600160a01b03610100909104163314611ee45760405162461bcd60e51b8152600401610e5590613c51565b602780546001600160a01b039092166001600160a01b0319909216821790556000908152602860205260409020805460ff19166001179055565b6005546001600160a01b03610100909104163314611f4e5760405162461bcd60e51b8152600401610e5590613c51565b6001600160a01b038216600081815260286020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03610100909104163314611fdd5760405162461bcd60e51b8152600401610e5590613c51565b6001600160a01b038116611ff057600080fd5b611ff9816122ec565b50565b6005546001600160a01b0361010090910416331461202c5760405162461bcd60e51b8152600401610e5590613c51565b60058054600680546001600160a01b0319166001600160a01b03610100840416179055610100600160a81b03191690556120668142613d75565b60075560055460405160009161010090046001600160a01b031690600080516020613ebd833981519152908390a350565b6005546001600160a01b036101009091041633146120c75760405162461bcd60e51b8152600401610e5590613c51565b60648111156121145760405162461bcd60e51b815260206004820152601960248201527806d757374206265206265747765656e203020616e642031303603c1b6044820152606401610e55565b601455565b6005546001600160a01b036101009091041633146121495760405162461bcd60e51b8152600401610e5590613c51565b600a81106121905760405162461bcd60e51b815260206004820152601460248201527306d757374206265206c657373207468616e2031360641b6044820152606401610e55565b602c55565b6005546001600160a01b036101009091041633146121c55760405162461bcd60e51b8152600401610e5590613c51565b600a805460ff60a81b1916600160a81b179055602c9190915560155542602b55565b6005546001600160a01b036101009091041633146122175760405162461bcd60e51b8152600401610e5590613c51565b61223f670de0b6b3a7640000610efb6103e8610efb600560085461249090919063ffffffff16565b8110156122a55760405162461bcd60e51b815260206004820152602e60248201527f616d6f756e74206d7573742062652067726561746572207468616e20302e352560448201526d206f662074686520737570706c7960901b6064820152608401610e55565b6122b781670de0b6b3a7640000613dd2565b60118190556040519081527ffb1fe1002b7550e87616e67793dbb7d3f437a79c2688c372c66dc170dbcb0efd906020016110d7565b6005546001600160a01b0361010090910416331461231c5760405162461bcd60e51b8152600401610e5590613c51565b6001600160a01b0381166123815760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610e55565b6005546040516001600160a01b038084169261010090041690600080516020613ebd83398151915290600090a3600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6005546001600160a01b036101009091041633146124065760405162461bcd60e51b8152600401610e5590613c51565b6001600160a01b03166000908152602d60205260409020805460ff19166001179055565b6000806124378385613d75565b9050838110156124895760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610e55565b9392505050565b60008261249f57506000610f17565b60006124ab8385613dd2565b9050826124b88583613db2565b146124895760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610e55565b60008082116125605760405162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f0000000000006044820152606401610e55565b6124898284613db2565b6001600160a01b0383166125cc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610e55565b6001600160a01b03821661262d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610e55565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166126b55760405162461bcd60e51b8152600401610e5590613cdb565b6001600160a01b0382166126db5760405162461bcd60e51b8152600401610e5590613b93565b600a54600160a81b900460ff168061272d57506001600160a01b03831660009081526028602052604090205460ff168061272d57506001600160a01b03821660009081526028602052604090205460ff165b6127795760405162461bcd60e51b815260206004820152601b60248201527f54726164696e6720686173206e6f7420737461727465642079657400000000006044820152606401610e55565b6001600160a01b03831660009081526028602052604081205460ff16806127b857506001600160a01b03831660009081526028602052604090205460ff165b600a54909150600160a81b900460ff1680156127ec57506001600160a01b03841660009081526029602052604090205460ff165b80156127f6575080155b156129bb57600e5482111561285e5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610e55565b6001600160a01b0384166000908152602d602052604090205460ff161580156128a057506001600160a01b0383166000908152602d602052604090205460ff16155b6128e05760405162461bcd60e51b8152602060048201526011602482015270626f74732063616e6e6f7420747261646560781b6044820152606401610e55565b6001600160a01b0383166000908152602a60205260409020429055602c54602b5461290a9161242a565b4211612971576001600160a01b0383166000908152602d60205260408120805460ff1916600117905560155461294890606490610efb908690612490565b905061295483826132bf565b600a5490935061296f9086906001600160a01b03168361331b565b505b6001600160a01b0383166000908152602081905260409020546011546129978483613d75565b11156129b55760405162461bcd60e51b8152600401610e5590613bd6565b50612f50565b600a54600160a81b900460ff1680156129ec57506001600160a01b03831660009081526029602052604090205460ff165b80156129f6575080155b15612ecb576001600160a01b0384166000908152602d602052604090205460ff16158015612a3d57506001600160a01b0383166000908152602d602052604090205460ff16155b612a7d5760405162461bcd60e51b8152602060048201526011602482015270626f74732063616e6e6f7420747261646560781b6044820152606401610e55565b600f54821115612af55760405162461bcd60e51b815260206004820152603a60248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201527f206d617853656c6c5472616e73616374696f6e416d6f756e742e0000000000006064820152608401610e55565b602c546001600160a01b0385166000908152602a6020526040902054612b1b9042613df1565b11612b48576001600160a01b0384166000908152602d60205260409020805460ff19166001179055612b64565b6001600160a01b0384166000908152602a602052604090204290555b30600090815260208190526040902054601054600a549082101590600160a01b900460ff16158015612b935750805b15612ec457600a805460ff60a01b1916600160a01b17905560008080808080612bba613424565b905060006026541180612bcf57506000602554115b15612c1557612bfc612bee60255460265461242a90919063ffffffff16565b602554610efb908b90612490565b9450612c0888866132bf565b6000602581905560265593505b600a54600160b81b900460ff1615612cf257612c3088613545565b602354479015612c7e57612c7b612c526018548661242a90919063ffffffff16565b610efb601a54612c758d610efb8c612c756012548a6132bf90919063ffffffff16565b90612490565b93505b60225415612cc457612cc1612c9e601e548561242a90919063ffffffff16565b610efb602054612c758d610efb8b612c756012548a6132bf90919063ffffffff16565b92505b612cda612cd1858561242a565b6012549061242a565b6012819055612cea9082906132bf565b965050612cff565b612cfb88613545565b4795505b600a54600160b01b900460ff1615612e1357602b54612d219062015180613d75565b421015612df957601854869060009015612d5a57601854612d4d90610efb6001612c758e838e8e612490565b612d579082613d75565b90505b601e5415612d8757601e54612d7a90610efb6001612c758e838e8d612490565b612d849082613d75565b90505b6000612d9383836132bf565b600c54909150612dac906001600160a01b0316826136ca565b6040517316d6037b9976be034d79b8cce863ff82d2bbbc6790819084156108fc029085906000818181858888f19350505050158015612def573d6000803e3d6000fd5b5050505050612e13565b600c548690612e11906001600160a01b0316826136ca565b505b600a54600160b81b900460ff168015612e41575061012c612e3f601354426132bf90919063ffffffff16565b115b15612eb057603281111580612e6b5750610258612e69601354426132bf90919063ffffffff16565b115b15612eb0576000612e8e6064610efb60145460125461249090919063ffffffff16565b601254909150612e9e90826132bf565b601255612eaa81613705565b50426013555b5050600a805460ff60a01b19169055505050505b5050612f50565b6001600160a01b0384166000908152602d602052604090205460ff16158015612f0d57506001600160a01b0383166000908152602d602052604090205460ff16155b612f505760405162461bcd60e51b81526020600482015260146024820152733137ba399031b0b73737ba103a3930b739b332b960611b6044820152606401610e55565b600a54600090600160a81b900460ff168015612f765750600a54600160a01b900460ff16155b8015612f80575081155b90508015613276576001600160a01b038516600090815260296020526040812054819060ff161561304257612fc56064610efb6023548861249090919063ffffffff16565b600a54909250600160c01b900460ff1615613025576000612ff7602354610efb6016548661249090919063ffffffff16565b905061300383826132bf565b600b5490935090915081906130239089906001600160a01b03168361331b565b505b81602560008282546130379190613d75565b909155506131da9050565b6001600160a01b03861660009081526029602052604090205460ff16156130ef5761307d6064610efb6022548861249090919063ffffffff16565b600a54909250600160c01b900460ff16156130dd5760006130af602254610efb601c548661249090919063ffffffff16565b90506130bb83826132bf565b600b5490935090915081906130db9089906001600160a01b03168361331b565b505b81602660008282546130379190613d75565b6001600160a01b0386166000908152602081905260409020546011546131158783613d75565b11156131335760405162461bcd60e51b8152600401610e5590613bd6565b60006131516064610efb60245460225461249090919063ffffffff16565b90506131626064610efb8984612490565b600a54909450600160c01b900460ff16156131c057600061319282610efb601c548861249090919063ffffffff16565b905061319e85826132bf565b600b5490955090935083906131be908b906001600160a01b03168361331b565b505b83602660008282546131d29190613d75565b909155505050505b6001600160a01b0387166000908152602d602052604090205460ff168061321957506001600160a01b0386166000908152602d602052604090205460ff165b15613252576132386064610efb6015548861249090919063ffffffff16565b9150816025600082825461324c9190613d75565b90915550505b61326661325f838361242a565b86906132bf565b945061327387308461331b565b50505b61328185858561331b565b5050505050565b600081848411156132ac5760405162461bcd60e51b8152600401610e559190613b40565b506132b78385613df1565b949350505050565b6000828211156133115760405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f7700006044820152606401610e55565b6124898284613df1565b6001600160a01b0383166133415760405162461bcd60e51b8152600401610e5590613cdb565b6001600160a01b0382166133675760405162461bcd60e51b8152600401610e5590613b93565b6133a481604051806060016040528060268152602001613e6f602691396001600160a01b0386166000908152602081905260409020549190613288565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546133d3908261242a565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101612682565b6040516bffffffffffffffffffffffff193360601b1660208201526000908190439042906034016040516020818303038152906040528051906020012060001c61346e9190613db2565b6040516bffffffffffffffffffffffff194160601b166020820152459042906034016040516020818303038152906040528051906020012060001c6134b39190613db2565b6134bd4442613d75565b6134c79190613d75565b6134d19190613d75565b6134db9190613d75565b6134e59190613d75565b6040516020016134f791815260200190565b60408051601f1981840301815291905280516020909101209050600061351e606483613db2565b613529906064613dd2565b6135339083613df1565b905080610f1757612489600182613d75565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061358857634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156135dc57600080fd5b505afa1580156135f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613614919061390f565b8160018151811061363557634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260095461365b913091168461256a565b60095460405163791ac94760e01b81526001600160a01b039091169063791ac94790613694908590600090869030904290600401613d39565b600060405180830381600087803b1580156136ae57600080fd5b505af11580156136c2573d6000803e3d6000fd5b505050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015613700573d6000803e3d6000fd5b505050565b6040805160028082526060820183526000926020830190803683375050600954604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c464892506004808301926020929190829003018186803b15801561376a57600080fd5b505afa15801561377e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137a2919061390f565b816000815181106137c357634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b031681525050308160018151811061380557634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152600954600a549082169163b6f9de9591859160009186911661383f4261012c61242a565b6040518663ffffffff1660e01b815260040161385e9493929190613b0b565b6000604051808303818588803b15801561387757600080fd5b505af115801561388b573d6000803e3d6000fd5b50505050507fd79349298b0eadebdb47b2a093b1596f41af709d6a3bc3d848b9e8821df4807282826040516138c1929190613d20565b60405180910390a15050565b803580151581146138dd57600080fd5b919050565b803560ff811681146138dd57600080fd5b600060208284031215613904578081fd5b813561248981613e59565b600060208284031215613920578081fd5b815161248981613e59565b6000806040838503121561393d578081fd5b823561394881613e59565b9150602083013561395881613e59565b809150509250929050565b600080600060608486031215613977578081fd5b833561398281613e59565b9250602084013561399281613e59565b929592945050506040919091013590565b600080604083850312156139b5578182fd5b82356139c081613e59565b91506139ce602084016138cd565b90509250929050565b600080604083850312156139e9578182fd5b82356139f481613e59565b946020939093013593505050565b600060208284031215613a13578081fd5b612489826138cd565b600060208284031215613a2d578081fd5b5035919050565b60008060408385031215613a46578182fd5b50508035926020909101359150565b60008060008060008060c08789031215613a6d578182fd5b613a76876138e2565b9550613a84602088016138e2565b9450613a92604088016138e2565b9350613aa0606088016138e2565b9250613aae608088016138e2565b9150613abc60a088016138e2565b90509295509295509295565b6000815180845260208085019450808401835b83811015613b005781516001600160a01b031687529582019590820190600101613adb565b509495945050505050565b848152608060208201526000613b246080830186613ac8565b6001600160a01b03949094166040830152506060015292915050565b6000602080835283518082850152825b81811015613b6c57858101830151858201604001528201613b50565b81811115613b7d5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526024908201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6040820152633ab73a1760e11b606082015260800190565b6020808252601d908201527f43616e27742073657420666c616720746f2073616d6520737461747573000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526035908201527f616d6f756e74206d7573742062652067726561746572207468616e20302e303160408201527425206f662074686520746f74616c20737570706c7960581b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b8281526040602082015260006132b76040830184613ac8565b85815284602082015260a060408201526000613d5860a0830186613ac8565b6001600160a01b0394909416606083015250608001529392505050565b60008219821115613d8857613d88613e43565b500190565b600060ff821660ff84168060ff03821115613daa57613daa613e43565b019392505050565b600082613dcd57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615613dec57613dec613e43565b500290565b600082821015613e0357613e03613e43565b500390565b600181811c90821680613e1c57607f821691505b60208210811415613e3d57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114611ff957600080fdfe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212201977fe9f785afb4bfdcb5ccb89e4b2f723aa237a828db5ddaaba354d7f94999964736f6c63430008040033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000e5f5f0eea3ed214d847ddf8474423fb89a72fd84
-----Decoded View---------------
Arg [0] : _bridge (address): 0xE5f5F0Eea3ED214D847DDF8474423FB89A72fD84
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000e5f5f0eea3ed214d847ddf8474423fb89a72fd84
Deployed Bytecode Sourcemap
18175:24334:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18837:39;;;;;;;;;;;;;;;;;;;17955:25:1;;;17943:2;17928:18;18837:39:0;;;;;;;;19456;;;;;;;;;;;;;;;;18689:25;;;;;;;;;;-1:-1:-1;18689:25:0;;;;-1:-1:-1;;;;;18689:25:0;;;;;;-1:-1:-1;;;;;4908:32:1;;;4890:51;;4878:2;4863:18;18689:25:0;4845:102:1;3794:91:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;24980:674::-;;;;;;;;;;;;;:::i;:::-;;4688:169;;;;;;;;;;-1:-1:-1;4688:169:0;;;;;:::i;:::-;;:::i;:::-;;;5117:14:1;;5110:22;5092:41;;5080:2;5065:18;4688:169:0;5047:92:1;18522:36:0;;;;;;;;;;-1:-1:-1;18522:36:0;;;;-1:-1:-1;;;18522:36:0;;;;;;19795:29;;;;;;;;;;-1:-1:-1;19795:29:0;;;;-1:-1:-1;;;;;19795:29:0;;;19301:36;;;;;;;;;;;;;;;;18316:41;;;;;;;;;;-1:-1:-1;18316:41:0;;;;-1:-1:-1;;;;;18316:41:0;;;4095:108;;;;;;;;;;-1:-1:-1;4183:12:0;;4095:108;;19502:29;;;;;;;;;;;;;;;;19266:28;;;;;;;;;;;;;;;;4865:321;;;;;;;;;;-1:-1:-1;4865:321:0;;;;;:::i;:::-;;:::i;27815:975::-;;;;;;;;;;-1:-1:-1;27815:975:0;;;;;:::i;:::-;;:::i;18414:71::-;;;;;;;;;;-1:-1:-1;18414:71:0;;;;-1:-1:-1;;;;;18414:71:0;;;25899:986;;;;;;;;;;-1:-1:-1;25899:986:0;;;;;:::i;:::-;;:::i;3996:91::-;;;;;;;;;;-1:-1:-1;4070:9:0;;3996:91;;4070:9;;;;19057:36:1;;19045:2;19030:18;3996:91:0;19012:87:1;28798:800:0;;;;;;;;;;-1:-1:-1;28798:800:0;;;;;:::i;:::-;;:::i;22725:168::-;;;;;;;;;;-1:-1:-1;22725:168:0;;;;;:::i;:::-;;:::i;5194:218::-;;;;;;;;;;-1:-1:-1;5194:218:0;;;;;:::i;:::-;;:::i;40463:98::-;;;;;;;;;;-1:-1:-1;40463:98:0;;;;;:::i;:::-;-1:-1:-1;;;;;40540:13:0;40516:4;40540:13;;;:4;:13;;;;;;;;;40463:98;18254:53;;;;;;;;;;;;;;;;18364:38;;;;;;;;;;;;;;;24500:472;;;;;;;;;;;;;:::i;18792:38::-;;;;;;;;;;;;;;;;23236:327;;;;;;;;;;-1:-1:-1;23236:327:0;;;;;:::i;:::-;;:::i;18649:31::-;;;;;;;;;;-1:-1:-1;18649:31:0;;;;-1:-1:-1;;;18649:31:0;;;;;;40569:97;;;;;;;;;;-1:-1:-1;40569:97:0;;;;;:::i;:::-;;:::i;18608:34::-;;;;;;;;;;-1:-1:-1;18608:34:0;;;;-1:-1:-1;;;18608:34:0;;;;;;29606:309;;;;;;;;;;-1:-1:-1;29606:309:0;;;;;:::i;:::-;;:::i;4211:127::-;;;;;;;;;;-1:-1:-1;4211:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;4312:18:0;4285:7;4312:18;;;;;;;;;;;;4211:127;1633:148;;;;;;;;;;;;;:::i;19653:46::-;;;;;;;;;;;;;;;;19221:38;;;;;;;;;;;;;;;;18721:30;;;;;;;;;;-1:-1:-1;18721:30:0;;;;-1:-1:-1;;;;;18721:30:0;;;19538:37;;;;;;;;;;;;;;;;31285:127;;;;;;;;;;-1:-1:-1;31285:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;31377:27:0;31353:4;31377:27;;;:18;:27;;;;;;;;;31285:127;26897:900;;;;;;;;;;-1:-1:-1;26897:900:0;;;;;:::i;:::-;;:::i;19184:30::-;;;;;;;;;;;;;;;;19377:34;;;;;;;;;;;;;;;;1325:87;;;;;;;;;;-1:-1:-1;1398:6:0;;;;;-1:-1:-1;;;;;1398:6:0;1325:87;;18923:28;;;;;;;;;;;;;;;;19418:31;;;;;;;;;;;;;;;;3893:95;;;;;;;;;;;;;:::i;19750:36::-;;;;;;;;;;;;;;;;30489:460;;;;;;;;;;-1:-1:-1;30489:460:0;;;;;:::i;:::-;;:::i;5420:269::-;;;;;;;;;;-1:-1:-1;5420:269:0;;;;;:::i;:::-;;:::i;19144:33::-;;;;;;;;;;;;;;;;2405:216;;;;;;;;;;;;;:::i;24352:140::-;;;;;;;;;;-1:-1:-1;24352:140:0;;;;;:::i;:::-;;:::i;4346:175::-;;;;;;;;;;-1:-1:-1;4346:175:0;;;;;:::i;:::-;;:::i;23573:327::-;;;;;;;;;;-1:-1:-1;23573:327:0;;;;;:::i;:::-;;:::i;19344:26::-;;;;;;;;;;;;;;;;30309:172;;;;;;;;;;-1:-1:-1;30309:172:0;;;;;:::i;:::-;;:::i;24213:131::-;;;;;;;;;;-1:-1:-1;24213:131:0;;;;;:::i;:::-;;:::i;22903:323::-;;;;;;;;;;-1:-1:-1;22903:323:0;;;;;:::i;:::-;;:::i;20043:58::-;;;;;;;;;;-1:-1:-1;20043:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19617:27;;;;;;;;;;;;;;;;22543:175;;;;;;;;;;-1:-1:-1;22543:175:0;;;;;:::i;:::-;;:::i;29923:183::-;;;;;;;;;;-1:-1:-1;29923:183:0;;;;;:::i;:::-;;:::i;19708:35::-;;;;;;;;;;;;;;;;19582:28;;;;;;;;;;;;;;;;42343:157;;;;;;;;;;-1:-1:-1;42343:157:0;;;;;:::i;:::-;;:::i;2115:226::-;;;;;;;;;;-1:-1:-1;2115:226:0;;;;;:::i;:::-;;:::i;4529:151::-;;;;;;;;;;-1:-1:-1;4529:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;4645:18:0;;;4618:7;4645:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4529:151;30114:183;;;;;;;;;;-1:-1:-1;30114:183:0;;;;;:::i;:::-;;:::i;18883:33::-;;;;;;;;;;;;;;;;40775:164;;;;;;;;;;-1:-1:-1;40775:164:0;;;;;:::i;:::-;;:::i;19112:25::-;;;;;;;;;;;;;;;;18758:21;;;;;;;;;;-1:-1:-1;18758:21:0;;;;-1:-1:-1;;;;;18758:21:0;;;25666:221;;;;;;;;;;-1:-1:-1;25666:221:0;;;;;:::i;:::-;;:::i;18565:36::-;;;;;;;;;;-1:-1:-1;18565:36:0;;;;-1:-1:-1;;;18565:36:0;;;;;;23910:293;;;;;;;;;;-1:-1:-1;23910:293:0;;;;;:::i;:::-;;:::i;1789:244::-;;;;;;;;;;-1:-1:-1;1789:244:0;;;;;:::i;:::-;;:::i;40674:93::-;;;;;;;;;;-1:-1:-1;40674:93:0;;;;;:::i;:::-;;:::i;3794:91::-;3839:13;3872:5;3865:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3794:91;:::o;24980:674::-;1398:6;;-1:-1:-1;;;;;1398:6:0;;;;;486:10;1545:23;1537:68;;;;-1:-1:-1;;;1537:68:0;;;;;;;:::i;:::-;;;;;;;;;25049:1:::1;25036:10;:14:::0;;;25079:1:::1;25061:15;:19:::0;;;-1:-1:-1;25088:13:0::1;:17:::0;;;25116:11:::1;:15:::0;;;25142:16:::1;:20:::0;;;25187:1:::1;25170:14;:18:::0;25214:50:::1;::::0;-1:-1:-1;;25214:31:0::1;::::0;25049:1;25214:14:::1;:31::i;:::-;:35:::0;::::1;:50::i;:::-;25199:12;:65:::0;25329:14:::1;::::0;25307:16:::1;::::0;25291:11:::1;::::0;:53:::1;::::0;25329:14;25291:33:::1;::::0;:11;:15:::1;:33::i;:53::-;25275:13;:69:::0;25355:16:::1;:23:::0;;-1:-1:-1;;;;25421:18:0;-1:-1:-1;;;25421:18:0;;;25471:19:::1;25450:18;:40:::0;25527:12:::1;::::0;25501:23:::1;:38:::0;;;25550:24:::1;:39:::0;;;25616:30:::1;::::0;25641:4:::1;::::0;25616:20:::1;::::0;25527:12;25616:16:::1;:20::i;:::-;:24:::0;::::1;:30::i;:::-;25600:13;:46:::0;24980:674::o;4688:169::-;4771:4;4788:39;486:10;4811:7;4820:6;4788:8;:39::i;:::-;-1:-1:-1;4845:4:0;4688:169;;;;;:::o;4865:321::-;4971:4;4988:36;4998:6;5006:9;5017:6;4988:9;:36::i;:::-;5035:121;5044:6;486:10;5066:89;5104:6;5066:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5066:19:0;;;;;;:11;:19;;;;;;;;486:10;5066:33;;;;;;;;;;:37;:89::i;:::-;5035:8;:121::i;:::-;-1:-1:-1;5174:4:0;4865:321;;;;;:::o;27815:975::-;1398:6;;-1:-1:-1;;;;;1398:6:0;;;;;486:10;1545:23;1537:68;;;;-1:-1:-1;;;1537:68:0;;;;;;;:::i;:::-;27897:16:::1;::::0;::::1;-1:-1:-1::0;;;27897:16:0;;::::1;;:28;;::::0;::::1;;;;27889:70;;;;-1:-1:-1::0;;;27889:70:0::1;;;;;;;:::i;:::-;27974:17:::0;27970:762:::1;;28034:15;::::0;;28008:23:::1;:41:::0;28091:16:::1;::::0;;28064:24:::1;:43:::0;-1:-1:-1;28122:19:0;;;;28156:20;;;28245:14:::1;::::0;28207:11:::1;::::0;:53:::1;::::0;:33:::1;::::0;:11;:15:::1;:33::i;:53::-;28191:13;:69:::0;28326:13:::1;::::0;28305:15:::1;::::0;28290:10:::1;::::0;:50:::1;::::0;28326:13;28290:31:::1;::::0;:10;:14:::1;:31::i;:50::-;28275:12;:65:::0;28355:16:::1;:27:::0;;-1:-1:-1;;;;28355:27:0::1;-1:-1:-1::0;;;28355:27:0;::::1;;;;::::0;;27970:762:::1;;;28433:23;::::0;28415:15:::1;:41:::0;28490:24:::1;::::0;28471:16:::1;:43:::0;;;28583:14:::1;::::0;28545:11:::1;::::0;:53:::1;::::0;:33:::1;::::0;:11;:15:::1;:33::i;:53::-;28529:13;:69:::0;28664:13:::1;::::0;28643:15:::1;::::0;28628:10:::1;::::0;:50:::1;::::0;28664:13;28628:31:::1;::::0;:10;:14:::1;:31::i;:50::-;28613:12;:65:::0;28693:16:::1;:27:::0;;-1:-1:-1;;;;28693:27:0::1;-1:-1:-1::0;;;28693:27:0;::::1;;;;::::0;;27970:762:::1;28749:33;::::0;5117:14:1;;5110:22;5092:41;;28749:33:0::1;::::0;5080:2:1;5065:18;28749:33:0::1;;;;;;;;27815:975:::0;:::o;25899:986::-;1398:6;;-1:-1:-1;;;;;1398:6:0;;;;;486:10;1545:23;1537:68;;;;-1:-1:-1;;;1537:68:0;;;;;;;:::i;:::-;25979:14:::1;::::0;::::1;-1:-1:-1::0;;;25979:14:0;;::::1;;:26;;::::0;::::1;;;;25971:68;;;;-1:-1:-1::0;;;25971:68:0::1;;;;;;;:::i;:::-;26054:17:::0;26050:771:::1;;26112:13;::::0;;26088:21:::1;:37:::0;26165:14:::1;::::0;;26140:22:::1;:39:::0;-1:-1:-1;26194:18:0;;;;26227:17;;;;26259:14:::1;:18:::0;;;26322:15:::1;::::0;26307:10:::1;::::0;:50:::1;::::0;-1:-1:-1;26307:31:0::1;::::0;:10;:14:::1;:31::i;:50::-;26292:12;:65:::0;26426:14:::1;::::0;26404:16:::1;::::0;26388:11:::1;::::0;:53:::1;::::0;26426:14;26388:33:::1;::::0;:11;:15:::1;:33::i;:53::-;26372:13;:69:::0;26456:14:::1;:25:::0;;-1:-1:-1;;;;26456:25:0::1;-1:-1:-1::0;;;26456:25:0;::::1;;;;::::0;;26050:771:::1;;;26530:21;::::0;26514:13:::1;:37:::0;;;26583:22:::1;::::0;26566:14:::1;:39:::0;26674:10:::1;::::0;26653:15:::1;::::0;26635:50:::1;::::0;:34:::1;::::0;:17:::1;:34::i;:50::-;26620:12;:65:::0;26757:11:::1;::::0;26735:16:::1;::::0;26716:14:::1;::::0;:53:::1;::::0;26757:11;26716:36:::1;::::0;:14;:18:::1;:36::i;:53::-;26700:13;:69:::0;26784:14:::1;:25:::0;;-1:-1:-1;;;;26784:25:0::1;-1:-1:-1::0;;;26784:25:0;::::1;;;;::::0;;26050:771:::1;26846:31;::::0;5117:14:1;;5110:22;5092:41;;26846:31:0::1;::::0;5080:2:1;5065:18;26846:31:0::1;5047:92:1::0;28798:800:0;1398:6;;-1:-1:-1;;;;;1398:6:0;;;;;486:10;1545:23;1537:68;;;;-1:-1:-1;;;1537:68:0;;;;;;;:::i;:::-;29040:2:::1;29025:11:::0;28989:33:::1;29006:16:::0;28989:14;:33:::1;:::i;:::-;:47;;;;:::i;:::-;:53;;;;28981:95;;;::::0;-1:-1:-1;;;28981:95:0;;8358:2:1;28981:95:0::1;::::0;::::1;8340:21:1::0;8397:2;8377:18;;;8370:30;8436:31;8416:18;;;8409:59;8485:18;;28981:95:0::1;8330:179:1::0;28981:95:0::1;29149:2;29133:12:::0;29095:35:::1;29113:17:::0;29095:15;:35:::1;:::i;:::-;:50;;;;:::i;:::-;:56;;;;29087:99;;;::::0;-1:-1:-1;;;29087:99:0;;7586:2:1;29087:99:0::1;::::0;::::1;7568:21:1::0;7625:2;7605:18;;;7598:30;7664:32;7644:18;;;7637:60;7714:18;;29087:99:0::1;7558:180:1::0;29087:99:0::1;29197:30;::::0;;::::1;:13;:30:::0;29238:34;;::::1;:15;:34:::0;29283:24;;::::1;:10;:24:::0;29318:32;;::::1;:14;:32:::0;;;29361:36;;::::1;:16;:36:::0;;;29408:26;;::::1;:11;:26:::0;;;29461:53:::1;::::0;:33:::1;::::0;:20:::1;:33::i;:53::-;29445:13;:69:::0;29576:13:::1;::::0;29560:10:::1;::::0;29540:15:::1;::::0;:50:::1;::::0;29576:13;29540:31:::1;::::0;:15;:19:::1;:31::i;:50::-;29525:12;:65:::0;-1:-1:-1;;;;;;28798:800:0:o;22725:168::-;1398:6;;-1:-1:-1;;;;;1398:6:0;;;;;486:10;1545:23;1537:68;;;;-1:-1:-1;;;1537:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22834:45:0::1;;::::0;;;:18:::1;:45;::::0;;;;:52;;-1:-1:-1;;22834:52:0::1;22882:4;22834:52;::::0;;22725:168::o;5194:218::-;486:10;5282:4;5331:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5331:34:0;;;;;;;;;;5282:4;;5299:83;;5322:7;;5331:50;;5370:10;5331:38;:50::i;24500:472::-;1398:6;;-1:-1:-1;;;;;1398:6:0;;;;;486:10;1545:23;1537:68;;;;-1:-1:-1;;;1537:68:0;;;;;;;:::i;:::-;24567:16:::1;::::0;-1:-1:-1;;;24567:16:0;::::1;;;:25;24559:86;;;::::0;-1:-1:-1;;;24559:86:0;;11771:2:1;24559:86:0::1;::::0;::::1;11753:21:1::0;11810:2;11790:18;;;11783:30;11849:34;11829:18;;;11822:62;-1:-1:-1;;;11900:18:1;;;11893:46;11956:19;;24559:86:0::1;11743:238:1::0;24559:86:0::1;24669:1;24656:10;:14:::0;;;24681:15:::1;:19:::0;;;24708:13:::1;:17:::0;;;24736:11:::1;:15:::0;;;24762:16:::1;:20:::0;;;24790:14:::1;:18:::0;24845:12:::1;::::0;24819:23:::1;:38:::0;;;24868:24:::1;:39:::0;;;24934:30:::1;::::0;24959:4:::1;::::0;24934:20:::1;::::0;24845:12;24934:16:::1;:20::i;23236:327::-:0;1398:6;;-1:-1:-1;;;;;1398:6:0;;;;;486:10;1545:23;1537:68;;;;-1:-1:-1;;;1537:68:0;;;;;;;:::i;:::-;23332:44:::1;23369:6;23333:30;23357:5;23333:19;23350:1;23333:12;;:16;;:19;;;;:::i;23332:44::-;23321:7;:55;;23313:121;;;;-1:-1:-1::0;;;23313:121:0::1;;;;;;;:::i;:::-;23471:18;:7:::0;23482:6:::1;23471:18;:::i;:::-;23444:24;:45:::0;;;23505:51:::1;::::0;17955:25:1;;;23505:51:0::1;::::0;17943:2:1;17928:18;23505:51:0::1;17910:76:1::0;40569:97:0;1398:6;;-1:-1:-1;;;;;1398:6:0;;;;;486:10;1545:23;1537:68;;;;-1:-1:-1;;;1537:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;40637:13:0::1;40653:5;40637:13:::0;;;:4:::1;:13;::::0;;;;:21;;-1:-1:-1;;40637:21:0::1;::::0;;40569:97::o;29606:309::-;1398:6;;-1:-1:-1;;;;;1398:6:0;;;;;486:10;1545:23;1537:68;;;;-1:-1:-1;;;1537:68:0;;;;;;;:::i;:::-;29717:15:::1;::::0;-1:-1:-1;;;;;29695:38:0;;::::1;29717:15:::0;::::1;29695:38;;29687:86;;;::::0;-1:-1:-1;;;29687:86:0;;10238:2:1;29687:86:0::1;::::0;::::1;10220:21:1::0;10277:2;10257:18;;;10250:30;10316:34;10296:18;;;10289:62;-1:-1:-1;;;10367:18:1;;;10360:33;10410:19;;29687:86:0::1;10210:225:1::0;29687:86:0::1;29831:15;::::0;29789:59:::1;::::0;-1:-1:-1;;;;;29831:15:0;;::::1;::::0;29789:59;::::1;::::0;::::1;::::0;29831:15:::1;::::0;29789:59:::1;29859:15;:48:::0;;-1:-1:-1;;;;;;29859:48:0::1;-1:-1:-1::0;;;;;29859:48:0;;;::::1;::::0;;;::::1;::::0;;29606:309::o;1633:148::-;1398:6;;-1:-1:-1;;;;;1398:6:0;;;;;486:10;1545:23;1537:68;;;;-1:-1:-1;;;1537:68:0;;;;;;;:::i;:::-;1724:6:::1;::::0;1703:40:::1;::::0;1740:1:::1;::::0;1724:6:::1;::::0;::::1;-1:-1:-1::0;;;;;1724:6:0::1;::::0;-1:-1:-1;;;;;;;;;;;1703:40:0;1740:1;;1703:40:::1;1754:6;:19:::0;;-1:-1:-1;;;;;;1754:19:0::1;::::0;;1633:148::o;26897:900::-;1398:6;;-1:-1:-1;;;;;1398:6:0;;;;;486:10;1545:23;1537:68;;;;-1:-1:-1;;;1537:68:0;;;;;;;:::i;:::-;26974:11:::1;::::0;::::1;-1:-1:-1::0;;;26974:11:0;;::::1;;:23;;::::0;::::1;;;;26966:65;;;;-1:-1:-1::0;;;26966:65:0::1;;;;;;;:::i;:::-;27046:17:::0;27042:702:::1;;27101:10;::::0;;27080:18:::1;:31:::0;27148:11:::1;::::0;;27126:19:::1;:33:::0;-1:-1:-1;27174:14:0;;;;27203:15;;;27284:13:::1;::::0;27263:15:::1;::::0;27248:50:::1;::::0;:31:::1;::::0;:14:::1;:31::i;:50::-;27233:12;:65:::0;27367:14:::1;::::0;27345:16:::1;::::0;27329:11:::1;::::0;:53:::1;::::0;27367:14;27329:33:::1;::::0;:11;:15:::1;:33::i;:53::-;27313:13;:69:::0;27397:11:::1;:22:::0;;-1:-1:-1;;;;27397:22:0::1;-1:-1:-1::0;;;27397:22:0;::::1;;;;::::0;;27042:702:::1;;;27465:18;::::0;27452:10:::1;:31:::0;;;27512:19:::1;::::0;27498:11:::1;:33:::0;27597:13:::1;::::0;27576:15:::1;::::0;27561:50:::1;::::0;:31:::1;::::0;:14:::1;:31::i;:50::-;27546:12;:65:::0;27680:14:::1;::::0;27658:16:::1;::::0;27642:11:::1;::::0;:53:::1;::::0;27680:14;27642:33:::1;::::0;:11;:15:::1;:33::i;:53::-;27626:13;:69:::0;27710:11:::1;:22:::0;;-1:-1:-1;;;;27710:22:0::1;-1:-1:-1::0;;;27710:22:0;::::1;;;;::::0;;27042:702:::1;27761:28;::::0;5117:14:1;;5110:22;5092:41;;27761:28:0::1;::::0;5080:2:1;5065:18;27761:28:0::1;5047:92:1::0;3893:95:0;3940:13;3973:7;3966:14;;;;;:::i;30489:460::-;1398:6;;-1:-1:-1;;;;;1398:6:0;;;;;486:10;1545:23;1537:68;;;;-1:-1:-1;;;1537:68:0;;;;;;;:::i;:::-;30596:13:::1;-1:-1:-1::0;;;;;30588:21:0::1;:4;-1:-1:-1::0;;;;;30588:21:0::1;;;30580:103;;;::::0;-1:-1:-1;;;30580:103:0;;6704:2:1;30580:103:0::1;::::0;::::1;6686:21:1::0;6743:2;6723:18;;;6716:30;6782:34;6762:18;;;6755:62;6853:34;6833:18;;;6826:62;-1:-1:-1;;;6904:19:1;;;6897:36;6950:19;;30580:103:0::1;6676:299:1::0;30580:103:0::1;-1:-1:-1::0;;;;;30702:31:0;::::1;;::::0;;;:25:::1;:31;::::0;;;;;::::1;;:40;;::::0;::::1;;;;30694:121;;;::::0;-1:-1:-1;;;30694:121:0;;15167:2:1;30694:121:0::1;::::0;::::1;15149:21:1::0;15206:2;15186:18;;;15179:30;;;15245:34;15225:18;;;15218:62;15316:34;15296:18;;;15289:62;-1:-1:-1;;;15367:19:1;;;15360:35;15412:19;;30694:121:0::1;15139:298:1::0;30694:121:0::1;-1:-1:-1::0;;;;;30836:31:0;::::1;;::::0;;;:25:::1;:31;::::0;;;;;:39;;-1:-1:-1;;30836:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;30901:40;;30836:39;;:31;30901:40:::1;::::0;::::1;30489:460:::0;;:::o;5420:269::-;5513:4;5530:129;486:10;5553:7;5562:96;5601:15;5562:96;;;;;;;;;;;;;;;;;486:10;5562:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5562:34:0;;;;;;;;;;;;:38;:96::i;2405:216::-;1398:6;;-1:-1:-1;;;;;1398:6:0;;;;;486:10;1545:23;1537:68;;;;-1:-1:-1;;;1537:68:0;;;;;;;:::i;:::-;2485:9:::1;;2467:15;:27;2459:64;;;::::0;-1:-1:-1;;;2459:64:0;;17253:2:1;2459:64:0::1;::::0;::::1;17235:21:1::0;17292:2;17272:18;;;17265:30;17331:26;17311:18;;;17304:54;17375:18;;2459:64:0::1;17225:174:1::0;2459:64:0::1;2543:14;::::0;2534:6:::1;:23:::0;;-1:-1:-1;;;;;;2534:23:0::1;2543:14;-1:-1:-1::0;;;;;2543:14:0;;::::1;2534:23:::0;::::1;::::0;;;::::1;::::0;;;;2573:40:::1;::::0;2606:6;::::1;::::0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;;;2573:40:0;-1:-1:-1;;2573:40:0::1;2405:216::o:0;24352:140::-;1398:6;;-1:-1:-1;;;;;1398:6:0;;;;;486:10;1545:23;1537:68;;;;-1:-1:-1;;;1537:68:0;;;;;;;:::i;:::-;24445:25:::1;:39:::0;24352:140::o;4346:175::-;4432:4;4449:42;486:10;4473:9;4484:6;4449:9;:42::i;23573:327::-;1398:6;;-1:-1:-1;;;;;1398:6:0;;;;;486:10;1545:23;1537:68;;;;-1:-1:-1;;;1537:68:0;;;;;;;:::i;:::-;23675:15:::1;::::0;-1:-1:-1;;;;;23661:29:0;;::::1;23675:15:::0;::::1;23661:29;;23653:86;;;::::0;-1:-1:-1;;;23653:86:0;;7945:2:1;23653:86:0::1;::::0;::::1;7927:21:1::0;7984:2;7964:18;;;7957:30;8023:34;8003:18;;;7996:62;-1:-1:-1;;;8074:18:1;;;8067:42;8126:19;;23653:86:0::1;7917:234:1::0;23653:86:0::1;-1:-1:-1::0;;;;;23751:30:0;;::::1;;::::0;;;:18:::1;:30;::::0;;;;;:37;;-1:-1:-1;;23751:37:0::1;23784:4;23751:37;::::0;;23839:15:::1;::::0;23804:51;;23839:15;::::1;::::0;23804:51:::1;::::0;23751:30;23804:51:::1;23865:15;:28:::0;;-1:-1:-1;;;;;;23865:28:0::1;-1:-1:-1::0;;;;;23865:28:0;;;::::1;::::0;;;::::1;::::0;;23573:327::o;30309:172::-;1398:6;;-1:-1:-1;;;;;1398:6:0;;;;;486:10;1545:23;1537:68;;;;-1:-1:-1;;;1537:68:0;;;;;;;:::i;:::-;30412:3:::1;30401:7;:14;;30377:68;;;::::0;-1:-1:-1;;;30377:68:0;;15644:2:1;30377:68:0::1;::::0;::::1;15626:21:1::0;15683:2;15663:18;;;15656:30;-1:-1:-1;;;15702:18:1;;;15695:55;15767:18;;30377:68:0::1;15616:175:1::0;30377:68:0::1;30456:7;:17:::0;30309:172::o;24213:131::-;1398:6;;-1:-1:-1;;;;;1398:6:0;;;;;486:10;1545:23;1537:68;;;;-1:-1:-1;;;1537:68:0;;;;;;;:::i;:::-;24315:22:::1;:11:::0;24330:6:::1;24315:22;:::i;:::-;24294:18;:43:::0;-1:-1:-1;24213:131:0:o;22903:323::-;1398:6;;-1:-1:-1;;;;;1398:6:0;;;;;486:10;1545:23;1537:68;;;;-1:-1:-1;;;1537:68:0;;;;;;;:::i;:::-;22998:44:::1;23035:6;22999:30;23023:5;22999:19;23016:1;22999:12;;:16;;:19;;;;:::i;22998:44::-;22987:7;:55;;22979:121;;;;-1:-1:-1::0;;;22979:121:0::1;;;;;;;:::i;:::-;23136:18;:7:::0;23147:6:::1;23136:18;:::i;:::-;23110:23;:44:::0;;;23170:49:::1;::::0;17955:25:1;;;23170:49:0::1;::::0;17943:2:1;17928:18;23170:49:0::1;17910:76:1::0;22543:175:0;1398:6;;-1:-1:-1;;;;;1398:6:0;;;;;486:10;1545:23;1537:68;;;;-1:-1:-1;;;1537:68:0;;;;;;;:::i;:::-;22624:14:::1;:32:::0;;-1:-1:-1;;;;;22624:32:0;;::::1;-1:-1:-1::0;;;;;;22624:32:0;;::::1;::::0;::::1;::::0;;:14:::1;22667:35:::0;;;:18:::1;:35;::::0;;;;:42;;-1:-1:-1;;22667:42:0::1;22624:32:::0;22667:42:::1;::::0;;22543:175::o;29923:183::-;1398:6;;-1:-1:-1;;;;;1398:6:0;;;;;486:10;1545:23;1537:68;;;;-1:-1:-1;;;1537:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;30008:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;;;;:38;;-1:-1:-1;;30008:38:0::1;::::0;::::1;;::::0;;::::1;::::0;;;30064:34;;5092:41:1;;;30064:34:0::1;::::0;5065:18:1;30064:34:0::1;;;;;;;29923:183:::0;;:::o;42343:157::-;1398:6;;-1:-1:-1;;;;;1398:6:0;;;;;486:10;1545:23;1537:68;;;;-1:-1:-1;;;1537:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;42425:22:0;::::1;42417:31;;;::::0;::::1;;42459:33;42483:8;42459:23;:33::i;:::-;42343:157:::0;:::o;2115:226::-;1398:6;;-1:-1:-1;;;;;1398:6:0;;;;;486:10;1545:23;1537:68;;;;-1:-1:-1;;;1537:68:0;;;;;;;:::i;:::-;2196:6:::1;::::0;;2179:14:::1;:23:::0;;-1:-1:-1;;;;;;2179:23:0::1;-1:-1:-1::0;;;;;2196:6:0::1;::::0;::::1;;2179:23;::::0;;-1:-1:-1;;;;;;2213:19:0::1;::::0;;2255:22:::1;2273:4:::0;2255:15:::1;:22;:::i;:::-;2243:9;:34:::0;2314:6:::1;::::0;2293:40:::1;::::0;2330:1:::1;::::0;2314:6:::1;::::0;::::1;-1:-1:-1::0;;;;;2314:6:0::1;::::0;-1:-1:-1;;;;;;;;;;;2293:40:0;2330:1;;2293:40:::1;2115:226:::0;:::o;30114:183::-;1398:6;;-1:-1:-1;;;;;1398:6:0;;;;;486:10;1545:23;1537:68;;;;-1:-1:-1;;;1537:68:0;;;;;;;:::i;:::-;30221:3:::1;30210:7;:14;;30186:68;;;::::0;-1:-1:-1;;;30186:68:0;;15644:2:1;30186:68:0::1;::::0;::::1;15626:21:1::0;15683:2;15663:18;;;15656:30;-1:-1:-1;;;15702:18:1;;;15695:55;15767:18;;30186:68:0::1;15616:175:1::0;30186:68:0::1;30265:14;:24:::0;30114:183::o;40775:164::-;1398:6;;-1:-1:-1;;;;;1398:6:0;;;;;486:10;1545:23;1537:68;;;;-1:-1:-1;;;1537:68:0;;;;;;;:::i;:::-;40871:2:::1;40859:9;:14;40851:47;;;::::0;-1:-1:-1;;;40851:47:0;;14472:2:1;40851:47:0::1;::::0;::::1;14454:21:1::0;14511:2;14491:18;;;14484:30;-1:-1:-1;;;14530:18:1;;;14523:50;14590:18;;40851:47:0::1;14444:170:1::0;40851:47:0::1;40909:10;:22:::0;40775:164::o;25666:221::-;1398:6;;-1:-1:-1;;;;;1398:6:0;;;;;486:10;1545:23;1537:68;;;;-1:-1:-1;;;1537:68:0;;;;;;;:::i;:::-;25754:16:::1;:23:::0;;-1:-1:-1;;;;25754:23:0::1;-1:-1:-1::0;;;25754:23:0::1;::::0;;25788:10:::1;:22:::0;;;;25754:16:::1;25821:18:::0;25864:15:::1;25850:11;:29:::0;25666:221::o;23910:293::-;1398:6;;-1:-1:-1;;;;;1398:6:0;;;;;486:10;1545:23;1537:68;;;;-1:-1:-1;;;1537:68:0;;;;;;;:::i;:::-;24005:43:::1;24041:6;24006:29;24030:4;24006:19;24023:1;24006:12;;:16;;:19;;;;:::i;24005:43::-;23992:9;:56;;23984:115;;;::::0;-1:-1:-1;;;23984:115:0;;11001:2:1;23984:115:0::1;::::0;::::1;10983:21:1::0;11040:2;11020:18;;;11013:30;11079:34;11059:18;;;11052:62;-1:-1:-1;;;11130:18:1;;;11123:44;11184:19;;23984:115:0::1;10973:236:1::0;23984:115:0::1;24125:20;:9:::0;24138:6:::1;24125:20;:::i;:::-;24109:13;:36:::0;;;24161:35:::1;::::0;17955:25:1;;;24161:35:0::1;::::0;17943:2:1;17928:18;24161:35:0::1;17910:76:1::0;1789:244:0;1398:6;;-1:-1:-1;;;;;1398:6:0;;;;;486:10;1545:23;1537:68;;;;-1:-1:-1;;;1537:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1878:22:0;::::1;1870:73;;;::::0;-1:-1:-1;;;1870:73:0;;8716:2:1;1870:73:0::1;::::0;::::1;8698:21:1::0;8755:2;8735:18;;;8728:30;8794:34;8774:18;;;8767:62;-1:-1:-1;;;8845:18:1;;;8838:36;8891:19;;1870:73:0::1;8688:228:1::0;1870:73:0::1;1980:6;::::0;1959:38:::1;::::0;-1:-1:-1;;;;;1959:38:0;;::::1;::::0;1980:6:::1;::::0;::::1;;::::0;-1:-1:-1;;;;;;;;;;;1959:38:0;;;::::1;2008:6;:17:::0;;-1:-1:-1;;;;;2008:17:0;;::::1;;;-1:-1:-1::0;;;;;;2008:17:0;;::::1;::::0;;;::::1;::::0;;1789:244::o;40674:93::-;1398:6;;-1:-1:-1;;;;;1398:6:0;;;;;486:10;1545:23;1537:68;;;;-1:-1:-1;;;1537:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;40739:13:0::1;;::::0;;;:4:::1;:13;::::0;;;;:20;;-1:-1:-1;;40739:20:0::1;40755:4;40739:20;::::0;;40674:93::o;16745:179::-;16803:7;;16835:5;16839:1;16835;:5;:::i;:::-;16823:17;;16864:1;16859;:6;;16851:46;;;;-1:-1:-1;;;16851:46:0;;9526:2:1;16851:46:0;;;9508:21:1;9565:2;9545:18;;;9538:30;9604:29;9584:18;;;9577:57;9651:18;;16851:46:0;9498:177:1;16851:46:0;16915:1;16745:179;-1:-1:-1;;;16745:179:0:o;17098:220::-;17156:7;17180:6;17176:20;;-1:-1:-1;17195:1:0;17188:8;;17176:20;17207:9;17219:5;17223:1;17219;:5;:::i;:::-;17207:17;-1:-1:-1;17252:1:0;17243:5;17247:1;17207:17;17243:5;:::i;:::-;:10;17235:56;;;;-1:-1:-1;;;17235:56:0;;13360:2:1;17235:56:0;;;13342:21:1;13399:2;13379:18;;;13372:30;13438:34;13418:18;;;13411:62;-1:-1:-1;;;13489:18:1;;;13482:31;13530:19;;17235:56:0;13332:223:1;17328:153:0;17386:7;17418:1;17414;:5;17406:44;;;;-1:-1:-1;;;17406:44:0;;11416:2:1;17406:44:0;;;11398:21:1;11455:2;11435:18;;;11428:30;11494:28;11474:18;;;11467:56;11540:18;;17406:44:0;11388:176:1;17406:44:0;17468:5;17472:1;17468;:5;:::i;7066:346::-;-1:-1:-1;;;;;7168:19:0;;7160:68;;;;-1:-1:-1;;;7160:68:0;;17606:2:1;7160:68:0;;;17588:21:1;17645:2;17625:18;;;17618:30;17684:34;17664:18;;;17657:62;-1:-1:-1;;;17735:18:1;;;17728:34;17779:19;;7160:68:0;17578:226:1;7160:68:0;-1:-1:-1;;;;;7247:21:0;;7239:68;;;;-1:-1:-1;;;7239:68:0;;9123:2:1;7239:68:0;;;9105:21:1;9162:2;9142:18;;;9135:30;9201:34;9181:18;;;9174:62;-1:-1:-1;;;9252:18:1;;;9245:32;9294:19;;7239:68:0;9095:224:1;7239:68:0;-1:-1:-1;;;;;7320:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7372:32;;17955:25:1;;;7372:32:0;;17928:18:1;7372:32:0;;;;;;;;7066:346;;;:::o;32125:8330::-;-1:-1:-1;;;;;32257:18:0;;32249:68;;;;-1:-1:-1;;;32249:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;32336:16:0;;32328:64;;;;-1:-1:-1;;;32328:64:0;;;;;;;:::i;:::-;32411:16;;-1:-1:-1;;;32411:16:0;;;;;:72;;-1:-1:-1;;;;;;32432:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;32460:22:0;;;;;;:18;:22;;;;;;;;32432:50;32403:112;;;;-1:-1:-1;;;32403:112:0;;9882:2:1;32403:112:0;;;9864:21:1;9921:2;9901:18;;;9894:30;9960:29;9940:18;;;9933:57;10007:18;;32403:112:0;9854:177:1;32403:112:0;-1:-1:-1;;;;;32559:24:0;;32536:20;32559:24;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;32587:22:0;;;;;;:18;:22;;;;;;;;32559:50;32648:16;;32536:73;;-1:-1:-1;;;;32648:16:0;;;;:64;;;;-1:-1:-1;;;;;;32681:31:0;;;;;;:25;:31;;;;;;;;32648:64;:97;;;;;32730:15;32729:16;32648:97;32630:5525;;;32808:23;;32798:6;:33;;32772:135;;;;-1:-1:-1;;;32772:135:0;;12188:2:1;32772:135:0;;;12170:21:1;12227:2;12207:18;;;12200:30;12266:34;12246:18;;;12239:62;-1:-1:-1;;;12317:18:1;;;12310:38;12365:19;;32772:135:0;12160:230:1;32772:135:0;-1:-1:-1;;;;;32931:10:0;;;;;;:4;:10;;;;;;;;32930:11;:24;;;;-1:-1:-1;;;;;;32946:8:0;;;;;;:4;:8;;;;;;;;32945:9;32930:24;32922:54;;;;-1:-1:-1;;;32922:54:0;;14821:2:1;32922:54:0;;;14803:21:1;14860:2;14840:18;;;14833:30;-1:-1:-1;;;14879:18:1;;;14872:47;14936:18;;32922:54:0;14793:167:1;32922:54:0;-1:-1:-1;;;;;33005:28:0;;;;;;:24;:28;;;;;33036:15;33005:46;;33107:10;;33091:11;;:27;;:15;:27::i;:::-;33072:15;:46;33068:273;;-1:-1:-1;;;;;33139:8:0;;;;;;:4;:8;;;;;:15;;-1:-1:-1;;33139:15:0;33150:4;33139:15;;;33201:7;;33190:28;;33214:3;;33190:19;;:6;;:10;:19::i;:28::-;33173:45;-1:-1:-1;33246:18:0;:6;33173:45;33246:10;:18::i;:::-;33305:11;;33237:27;;-1:-1:-1;33283:42:0;;33299:4;;-1:-1:-1;;;;;33305:11:0;33318:6;33283:15;:42::i;:::-;33068:273;;-1:-1:-1;;;;;4312:18:0;;33357:32;4312:18;;;;;;;;;;;33483:13;;33446:33;33473:6;4312:18;33446:33;:::i;:::-;:50;;33420:148;;;;-1:-1:-1;;;33420:148:0;;;;;;;:::i;:::-;32630:5525;;;;33601:16;;-1:-1:-1;;;33601:16:0;;;;:62;;;;-1:-1:-1;;;;;;33634:29:0;;;;;;:25;:29;;;;;;;;33601:62;:95;;;;;33681:15;33680:16;33601:95;33586:4569;;;-1:-1:-1;;;;;33732:10:0;;;;;;:4;:10;;;;;;;;33731:11;:24;;;;-1:-1:-1;;;;;;33747:8:0;;;;;;:4;:8;;;;;;;;33746:9;33731:24;33723:54;;;;-1:-1:-1;;;33723:54:0;;14821:2:1;33723:54:0;;;14803:21:1;14860:2;14840:18;;;14833:30;-1:-1:-1;;;14879:18:1;;;14872:47;14936:18;;33723:54:0;14793:167:1;33723:54:0;33810:24;;33800:6;:34;;33792:105;;;;-1:-1:-1;;;33792:105:0;;16826:2:1;33792:105:0;;;16808:21:1;16865:2;16845:18;;;16838:30;16904:34;16884:18;;;16877:62;16975:28;16955:18;;;16948:56;17021:19;;33792:105:0;16798:248:1;33792:105:0;33982:10;;-1:-1:-1;;;;;33948:30:0;;;;;;:24;:30;;;;;;33930:48;;:15;:48;:::i;:::-;:62;33926:209;;-1:-1:-1;;;;;34013:10:0;;;;;;:4;:10;;;;;:17;;-1:-1:-1;;34013:17:0;34026:4;34013:17;;;33926:209;;;-1:-1:-1;;;;;34071:30:0;;;;;;:24;:30;;;;;34104:15;34071:48;;33926:209;34216:4;34167:28;4312:18;;;;;;;;;;;34276;;34328:8;;34252:42;;;;;-1:-1:-1;;;34328:8:0;;;;34327:9;:20;;;;;34340:7;34327:20;34323:3720;;;34368:8;:15;;-1:-1:-1;;;;34368:15:0;-1:-1:-1;;;34368:15:0;;;;;;;;;34644:6;:4;:6::i;:::-;34626:24;;34694:1;34674:17;;:21;:45;;;;34718:1;34699:16;;:20;34674:45;34671:352;;;34756:87;34803:39;34825:16;;34803:17;;:21;;:39;;;;:::i;:::-;34781:16;;34756:42;;:20;;:24;:42::i;:87::-;34743:100;-1:-1:-1;34880:36:0;:20;34743:100;34880:24;:36::i;:::-;34958:1;34939:16;:20;;;34982:17;:21;34866:50;-1:-1:-1;34671:352:0;35047:14;;-1:-1:-1;;;35047:14:0;;;;35043:997;;;35086:38;35103:20;35086:16;:38::i;:::-;35214:12;;35167:21;;35214:16;35211:230;;35279:138;35378:38;35400:15;;35378:17;:21;;:38;;;;:::i;:::-;35279:94;35359:13;;35280:73;35332:20;35280:47;35316:10;35281:29;35295:14;;35281:9;:13;;:29;;;;:::i;:::-;35280:35;;:47::i;35279:138::-;35259:158;;35211:230;35466:13;;:17;35463:236;;35533:142;35634:40;35657:16;;35634:18;:22;;:40;;;;:::i;:::-;35533:96;35614:14;;35534:74;35587:20;35534:48;35570:11;35535:29;35549:14;;35535:9;:13;;:29;;;;:::i;35533:142::-;35512:163;;35463:236;35738:61;35757:41;:17;35779:18;35757:21;:41::i;:::-;35738:14;;;:18;:61::i;:::-;35721:14;:78;;;35840:29;;:9;;:13;:29::i;:::-;35822:47;;35043:997;;;;35920:38;35937:20;35920:16;:38::i;:::-;35999:21;35981:39;;35043:997;36064:16;;-1:-1:-1;;;36064:16:0;;;;36060:1350;;;36126:11;;:22;;36141:6;36126:22;:::i;:::-;36108:15;:40;36105:1286;;;36427:15;;36198;;36177:18;;36427:19;36424:183;;36563:15;;36492:87;;:66;36556:1;36493:57;36529:20;36492:66;36493:15;36513:10;36493:19;:31::i;36492:87::-;36478:101;;;;:::i;:::-;;;36424:183;36636:16;;:20;36633:186;;36774:16;;36702:89;;:67;36767:1;36703:58;36740:20;36702:67;36703:15;36723:11;36703:19;:32::i;36702:89::-;36688:103;;;;:::i;:::-;;;36633:186;36845:24;36872:26;:10;36887;36872:14;:26::i;:::-;36950:15;;36845:53;;-1:-1:-1;36925:60:0;;-1:-1:-1;;;;;36950:15:0;36845:53;36925:16;:60::i;:::-;37147:25;;37043:42;;;;37147:25;;;;;37161:10;;37012:20;37147:25;37012:20;37147:25;37161:10;37043:42;37147:25;;;;;;;;;;;;;;;;;;;;;36105:1286;;;;;;;37338:15;;37271;;37313:54;;-1:-1:-1;;;;;37338:15:0;37271;37313:16;:54::i;:::-;36105:1286;;37450:14;;-1:-1:-1;;;37450:14:0;;;;:64;;;;;37504:9;37468:32;37488:11;;37468:15;:19;;:32;;;;:::i;:::-;:46;37450:64;37446:541;;;37554:2;37543:7;:13;;:64;;;;37596:10;37560:32;37580:11;;37560:15;:19;;:32;;;;:::i;:::-;:47;37543:64;37539:429;;;37636:21;37660:43;37699:3;37660:34;37679:14;;37660;;:18;;:34;;;;:::i;:43::-;37747:14;;37636:67;;-1:-1:-1;37747:33:0;;37636:67;37747:18;:33::i;:::-;37730:14;:50;37833:29;37848:13;37833:14;:29::i;:::-;-1:-1:-1;37929:15:0;37915:11;:29;37539:429;-1:-1:-1;;38011:8:0;:16;;-1:-1:-1;;;;38011:16:0;;;-1:-1:-1;;;;34323:3720:0;33586:4569;;;;;-1:-1:-1;;;;;38095:10:0;;;;;;:4;:10;;;;;;;;38094:11;:24;;;;-1:-1:-1;;;;;;38110:8:0;;;;;;:4;:8;;;;;;;;38109:9;38094:24;38086:57;;;;-1:-1:-1;;;38086:57:0;;13762:2:1;38086:57:0;;;13744:21:1;13801:2;13781:18;;;13774:30;-1:-1:-1;;;13820:18:1;;;13813:50;13880:18;;38086:57:0;13734:170:1;38086:57:0;38182:16;;38167:12;;-1:-1:-1;;;38182:16:0;;;;:29;;;;-1:-1:-1;38203:8:0;;-1:-1:-1;;;38203:8:0;;;;38202:9;38182:29;:49;;;;;38216:15;38215:16;38182:49;38167:64;;38247:7;38244:2156;;;-1:-1:-1;;;;;38338:31:0;;38271:12;38338:31;;;:25;:31;;;;;;38271:12;;38338:31;;38335:1775;;;38407:33;38436:3;38407:24;38418:12;;38407:6;:10;;:24;;;;:::i;:33::-;38463:11;;38400:40;;-1:-1:-1;;;;38463:11:0;;;;38459:287;;;38499:19;38521:38;38546:12;;38521:20;38530:10;;38521:4;:8;;:20;;;;:::i;:38::-;38499:60;-1:-1:-1;38589:21:0;:4;38499:60;38589:8;:21::i;:::-;38702:10;;38582:28;;-1:-1:-1;38646:11:0;;-1:-1:-1;38646:11:0;;38680:46;;38696:4;;-1:-1:-1;;;;;38702:10:0;38646:11;38680:15;:46::i;:::-;38459:287;;38784:4;38764:16;;:24;;;;;;;:::i;:::-;;;;-1:-1:-1;38335:1775:0;;-1:-1:-1;38335:1775:0;;-1:-1:-1;;;;;38826:29:0;;;;;;:25;:29;;;;;;;;38823:1287;;;38894:34;38924:3;38894:25;38905:13;;38894:6;:10;;:25;;;;:::i;:34::-;38951:11;;38887:41;;-1:-1:-1;;;;38951:11:0;;;;38947:289;;;38987:19;39009:40;39035:13;;39009:21;39018:11;;39009:4;:8;;:21;;;;:::i;:40::-;38987:62;-1:-1:-1;39079:21:0;:4;38987:62;39079:8;:21::i;:::-;39192:10;;39072:28;;-1:-1:-1;39136:11:0;;-1:-1:-1;39136:11:0;;39170:46;;39186:4;;-1:-1:-1;;;;;39192:10:0;39136:11;39170:15;:46::i;:::-;38947:289;;39275:4;39254:17;;:25;;;;;;;:::i;38823:1287::-;-1:-1:-1;;;;;4312:18:0;;39348:32;4312:18;;;;;;;;;;;39482:13;;39445:33;39472:6;4312:18;39445:33;:::i;:::-;:50;;39415:160;;;;-1:-1:-1;;;39415:160:0;;;;;;;:::i;:::-;39594:25;39622:53;39671:3;39622:44;39640:25;;39622:13;;:17;;:44;;;;:::i;:53::-;39594:81;-1:-1:-1;39701:38:0;39735:3;39701:29;:6;39594:81;39701:10;:29::i;:38::-;39762:11;;39694:45;;-1:-1:-1;;;;39762:11:0;;;;39758:293;;;39798:19;39820:44;39846:17;39820:21;39829:11;;39820:4;:8;;:21;;;;:::i;:44::-;39798:66;-1:-1:-1;39894:21:0;:4;39798:66;39894:8;:21::i;:::-;40007:10;;39887:28;;-1:-1:-1;39951:11:0;;-1:-1:-1;39951:11:0;;39985:46;;40001:4;;-1:-1:-1;;;;;40007:10:0;39951:11;39985:15;:46::i;:::-;39758:293;;40090:4;40069:17;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;38823:1287:0;-1:-1:-1;;;;;40127:10:0;;;;;;:4;:10;;;;;;;;;:22;;-1:-1:-1;;;;;;40141:8:0;;;;;;:4;:8;;;;;;;;40127:22;40124:140;;;40177:28;40201:3;40177:19;40188:7;;40177:6;:10;;:19;;;;:::i;:28::-;40170:35;;40244:4;40224:16;;:24;;;;;;;:::i;:::-;;;;-1:-1:-1;;40124:140:0;40297:32;40308:20;:4;40317:10;40308:8;:20::i;:::-;40297:6;;:10;:32::i;:::-;40288:41;;40346:42;40362:4;40376;40383;40346:15;:42::i;:::-;38244:2156;;;40412:33;40428:4;40434:2;40438:6;40412:15;:33::i;:::-;32125:8330;;;;;:::o;17652:166::-;17738:7;17774:12;17766:6;;;;17758:29;;;;-1:-1:-1;;;17758:29:0;;;;;;;;:::i;:::-;-1:-1:-1;17805:5:0;17809:1;17805;:5;:::i;:::-;17798:12;17652:166;-1:-1:-1;;;;17652:166:0:o;16932:158::-;16990:7;17023:1;17018;:6;;17010:49;;;;-1:-1:-1;;;17010:49:0;;10642:2:1;17010:49:0;;;10624:21:1;10681:2;10661:18;;;10654:30;10720:32;10700:18;;;10693:60;10770:18;;17010:49:0;10614:180:1;17010:49:0;17077:5;17081:1;17077;:5;:::i;5697:549::-;-1:-1:-1;;;;;5803:20:0;;5795:70;;;;-1:-1:-1;;;5795:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5884:23:0;;5876:71;;;;-1:-1:-1;;;5876:71:0;;;;;;;:::i;:::-;6050;6072:6;6050:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6050:17:0;;:9;:17;;;;;;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;6030:17:0;;;:9;:17;;;;;;;;;;;:91;;;;6155:20;;;;;;;:32;;6180:6;6155:24;:32::i;:::-;-1:-1:-1;;;;;6132:20:0;;;:9;:20;;;;;;;;;;;;:55;;;;6203:35;17955:25:1;;;6132:20:0;;6203:35;;;;;;17928:18:1;6203:35:0;17910:76:1;31424:693:0;31761:28;;-1:-1:-1;;31778:10:0;4222:2:1;4218:15;4214:53;31761:28:0;;;4202:66:1;31462:7:0;;;;31838:12;;31818:15;;4284:12:1;;31761:28:0;;;;;;;;;;;;31751:39;;;;;;31743:48;;31742:92;;;;:::i;:::-;31643:32;;-1:-1:-1;;31660:14:0;4222:2:1;4218:15;4214:53;31643:32:0;;;4202:66:1;31724:14:0;;31704:15;;4284:12:1;;31643:32:0;;;;;;;;;;;;31633:43;;;;;;31625:52;;31624:96;;;;:::i;:::-;31586:34;31604:16;31586:15;:34;:::i;:::-;:135;;;;:::i;:::-;:152;;;;:::i;:::-;:249;;;;:::i;:::-;:264;;;;:::i;:::-;31547:304;;;;;;4686:19:1;;4730:2;4721:12;;4676:63;31547:304:0;;;;-1:-1:-1;;31547:304:0;;;;;;;;;31519:355;;31547:304;31519:355;;;;;-1:-1:-1;31497:396:0;31935:10;31942:3;31519:355;31935:10;:::i;:::-;31934:18;;31949:3;31934:18;:::i;:::-;31926:27;;:4;:27;:::i;:::-;31904:50;-1:-1:-1;31969:15:0;31965:145;;32001:15;32015:1;32001:15;;:::i;41598:599::-;41748:16;;;41762:1;41748:16;;;;;;;;41724:21;;41748:16;;;;;;;;;;-1:-1:-1;41748:16:0;41724:40;;41793:4;41775;41780:1;41775:7;;;;;;-1:-1:-1;;;41775:7:0;;;;;;;;;-1:-1:-1;;;;;41775:23:0;;;:7;;;;;;;;;;:23;;;;41819:15;;:22;;;-1:-1:-1;;;41819:22:0;;;;:15;;;;;:20;;:22;;;;;41775:7;;41819:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;41809:4;41814:1;41809:7;;;;;;-1:-1:-1;;;41809:7:0;;;;;;;;;-1:-1:-1;;;;;41809:32:0;;;:7;;;;;;;;;:32;41886:15;;41854:62;;41871:4;;41886:15;41904:11;41854:8;:62::i;:::-;41955:15;;:224;;-1:-1:-1;;;41955:224:0;;-1:-1:-1;;;;;41955:15:0;;;;:66;;:224;;42036:11;;41955:15;;42106:4;;42133;;42153:15;;41955:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;41598:599;;:::o;42209:122::-;42297:26;;-1:-1:-1;;;;;42297:18:0;;;:26;;;;;42316:6;;42297:26;;;;42316:6;42297:18;:26;;;;;;;;;;;;;;;;;;;;;42209:122;;:::o;40947:643::-;41090:16;;;41104:1;41090:16;;;;;;;;41066:21;;41090:16;;;;;;;;-1:-1:-1;;41127:15:0;;:22;;;-1:-1:-1;;;41127:22:0;;;;41066:40;;-1:-1:-1;;;;;;41127:15:0;;;;:20;;-1:-1:-1;41127:22:0;;;;;;;;;;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;41117:4;41122:1;41117:7;;;;;;-1:-1:-1;;;41117:7:0;;;;;;;;;;;;;;:32;-1:-1:-1;;;;;41117:32:0;;;-1:-1:-1;;;;;41117:32:0;;;;;41178:4;41160;41165:1;41160:7;;;;;;-1:-1:-1;;;41160:7:0;;;;;;;;;-1:-1:-1;;;;;41160:23:0;;;:7;;;;;;;;;:23;41295:15;;41457:11;;41295:15;;;;:66;;41369:6;;41295:15;;41438:4;;41457:11;41499:24;:15;41519:3;41499:19;:24::i;:::-;41295:239;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;41552:30;41569:6;41577:4;41552:30;;;;;;;:::i;:::-;;;;;;;;40947:643;;:::o;14:160:1:-;79:20;;135:13;;128:21;118:32;;108:2;;164:1;161;154:12;108:2;60:114;;;:::o;179:156::-;245:20;;305:4;294:16;;284:27;;274:2;;325:1;322;315:12;340:257;399:6;452:2;440:9;431:7;427:23;423:32;420:2;;;473:6;465;458:22;420:2;517:9;504:23;536:31;561:5;536:31;:::i;602:261::-;672:6;725:2;713:9;704:7;700:23;696:32;693:2;;;746:6;738;731:22;693:2;783:9;777:16;802:31;827:5;802:31;:::i;868:398::-;936:6;944;997:2;985:9;976:7;972:23;968:32;965:2;;;1018:6;1010;1003:22;965:2;1062:9;1049:23;1081:31;1106:5;1081:31;:::i;:::-;1131:5;-1:-1:-1;1188:2:1;1173:18;;1160:32;1201:33;1160:32;1201:33;:::i;:::-;1253:7;1243:17;;;955:311;;;;;:::o;1271:466::-;1348:6;1356;1364;1417:2;1405:9;1396:7;1392:23;1388:32;1385:2;;;1438:6;1430;1423:22;1385:2;1482:9;1469:23;1501:31;1526:5;1501:31;:::i;:::-;1551:5;-1:-1:-1;1608:2:1;1593:18;;1580:32;1621:33;1580:32;1621:33;:::i;:::-;1375:362;;1673:7;;-1:-1:-1;;;1727:2:1;1712:18;;;;1699:32;;1375:362::o;1742:325::-;1807:6;1815;1868:2;1856:9;1847:7;1843:23;1839:32;1836:2;;;1889:6;1881;1874:22;1836:2;1933:9;1920:23;1952:31;1977:5;1952:31;:::i;:::-;2002:5;-1:-1:-1;2026:35:1;2057:2;2042:18;;2026:35;:::i;:::-;2016:45;;1826:241;;;;;:::o;2072:325::-;2140:6;2148;2201:2;2189:9;2180:7;2176:23;2172:32;2169:2;;;2222:6;2214;2207:22;2169:2;2266:9;2253:23;2285:31;2310:5;2285:31;:::i;:::-;2335:5;2387:2;2372:18;;;;2359:32;;-1:-1:-1;;;2159:238:1:o;2402:190::-;2458:6;2511:2;2499:9;2490:7;2486:23;2482:32;2479:2;;;2532:6;2524;2517:22;2479:2;2560:26;2576:9;2560:26;:::i;2597:190::-;2656:6;2709:2;2697:9;2688:7;2684:23;2680:32;2677:2;;;2730:6;2722;2715:22;2677:2;-1:-1:-1;2758:23:1;;2667:120;-1:-1:-1;2667:120:1:o;2792:258::-;2860:6;2868;2921:2;2909:9;2900:7;2896:23;2892:32;2889:2;;;2942:6;2934;2927:22;2889:2;-1:-1:-1;;2970:23:1;;;3040:2;3025:18;;;3012:32;;-1:-1:-1;2879:171:1:o;3055:545::-;3147:6;3155;3163;3171;3179;3187;3240:3;3228:9;3219:7;3215:23;3211:33;3208:2;;;3262:6;3254;3247:22;3208:2;3290:27;3307:9;3290:27;:::i;:::-;3280:37;;3336:36;3368:2;3357:9;3353:18;3336:36;:::i;:::-;3326:46;;3391:36;3423:2;3412:9;3408:18;3391:36;:::i;:::-;3381:46;;3446:36;3478:2;3467:9;3463:18;3446:36;:::i;:::-;3436:46;;3501:37;3533:3;3522:9;3518:19;3501:37;:::i;:::-;3491:47;;3557:37;3589:3;3578:9;3574:19;3557:37;:::i;:::-;3547:47;;3198:402;;;;;;;;:::o;3605:463::-;3658:3;3696:5;3690:12;3723:6;3718:3;3711:19;3749:4;3778:2;3773:3;3769:12;3762:19;;3815:2;3808:5;3804:14;3836:3;3848:195;3862:6;3859:1;3856:13;3848:195;;;3927:13;;-1:-1:-1;;;;;3923:39:1;3911:52;;3983:12;;;;4018:15;;;;3959:1;3877:9;3848:195;;;-1:-1:-1;4059:3:1;;3666:402;-1:-1:-1;;;;;3666:402:1:o;5379:510::-;5650:6;5639:9;5632:25;5693:3;5688:2;5677:9;5673:18;5666:31;5613:4;5714:57;5766:3;5755:9;5751:19;5743:6;5714:57;:::i;:::-;-1:-1:-1;;;;;5807:32:1;;;;5802:2;5787:18;;5780:60;-1:-1:-1;5871:2:1;5856:18;5849:34;5706:65;5622:267;-1:-1:-1;;5622:267:1:o;5894:603::-;6006:4;6035:2;6064;6053:9;6046:21;6096:6;6090:13;6139:6;6134:2;6123:9;6119:18;6112:34;6164:4;6177:140;6191:6;6188:1;6185:13;6177:140;;;6286:14;;;6282:23;;6276:30;6252:17;;;6271:2;6248:26;6241:66;6206:10;;6177:140;;;6335:6;6332:1;6329:13;6326:2;;;6405:4;6400:2;6391:6;6380:9;6376:22;6372:31;6365:45;6326:2;-1:-1:-1;6481:2:1;6460:15;-1:-1:-1;;6456:29:1;6441:45;;;;6488:2;6437:54;;6015:482;-1:-1:-1;;;6015:482:1:o;6980:399::-;7182:2;7164:21;;;7221:2;7201:18;;;7194:30;7260:34;7255:2;7240:18;;7233:62;-1:-1:-1;;;7326:2:1;7311:18;;7304:33;7369:3;7354:19;;7154:225::o;12395:400::-;12597:2;12579:21;;;12636:2;12616:18;;;12609:30;12675:34;12670:2;12655:18;;12648:62;-1:-1:-1;;;12741:2:1;12726:18;;12719:34;12785:3;12770:19;;12569:226::o;12800:353::-;13002:2;12984:21;;;13041:2;13021:18;;;13014:30;13080:31;13075:2;13060:18;;13053:59;13144:2;13129:18;;12974:179::o;13909:356::-;14111:2;14093:21;;;14130:18;;;14123:30;14189:34;14184:2;14169:18;;14162:62;14256:2;14241:18;;14083:182::o;15796:417::-;15998:2;15980:21;;;16037:2;16017:18;;;16010:30;16076:34;16071:2;16056:18;;16049:62;-1:-1:-1;;;16142:2:1;16127:18;;16120:51;16203:3;16188:19;;15970:243::o;16218:401::-;16420:2;16402:21;;;16459:2;16439:18;;;16432:30;16498:34;16493:2;16478:18;;16471:62;-1:-1:-1;;;16564:2:1;16549:18;;16542:35;16609:3;16594:19;;16392:227::o;17991:332::-;18198:6;18187:9;18180:25;18241:2;18236;18225:9;18221:18;18214:30;18161:4;18261:56;18313:2;18302:9;18298:18;18290:6;18261:56;:::i;18328:582::-;18627:6;18616:9;18609:25;18670:6;18665:2;18654:9;18650:18;18643:34;18713:3;18708:2;18697:9;18693:18;18686:31;18590:4;18734:57;18786:3;18775:9;18771:19;18763:6;18734:57;:::i;:::-;-1:-1:-1;;;;;18827:32:1;;;;18822:2;18807:18;;18800:60;-1:-1:-1;18891:3:1;18876:19;18869:35;18726:65;18599:311;-1:-1:-1;;;18599:311:1:o;19104:128::-;19144:3;19175:1;19171:6;19168:1;19165:13;19162:2;;;19181:18;;:::i;:::-;-1:-1:-1;19217:9:1;;19152:80::o;19237:204::-;19275:3;19311:4;19308:1;19304:12;19343:4;19340:1;19336:12;19378:3;19372:4;19368:14;19363:3;19360:23;19357:2;;;19386:18;;:::i;:::-;19422:13;;19283:158;-1:-1:-1;;;19283:158:1:o;19446:217::-;19486:1;19512;19502:2;;-1:-1:-1;;;19537:31:1;;19591:4;19588:1;19581:15;19619:4;19544:1;19609:15;19502:2;-1:-1:-1;19648:9:1;;19492:171::o;19668:168::-;19708:7;19774:1;19770;19766:6;19762:14;19759:1;19756:21;19751:1;19744:9;19737:17;19733:45;19730:2;;;19781:18;;:::i;:::-;-1:-1:-1;19821:9:1;;19720:116::o;19841:125::-;19881:4;19909:1;19906;19903:8;19900:2;;;19914:18;;:::i;:::-;-1:-1:-1;19951:9:1;;19890:76::o;19971:380::-;20050:1;20046:12;;;;20093;;;20114:2;;20168:4;20160:6;20156:17;20146:27;;20114:2;20221;20213:6;20210:14;20190:18;20187:38;20184:2;;;20267:10;20262:3;20258:20;20255:1;20248:31;20302:4;20299:1;20292:15;20330:4;20327:1;20320:15;20184:2;;20026:325;;;:::o;20356:127::-;20417:10;20412:3;20408:20;20405:1;20398:31;20448:4;20445:1;20438:15;20472:4;20469:1;20462:15;20488:131;-1:-1:-1;;;;;20563:31:1;;20553:42;;20543:2;;20609:1;20606;20599:12
Swarm Source
ipfs://1977fe9f785afb4bfdcb5ccb89e4b2f723aa237a828db5ddaaba354d7f949999
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $2,736.19 | 0.0158 | $43.13 |
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.