ERC-20
Overview
Max Total Supply
47,000,000,000 RFKJ
Holders
2,350
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
309,584,237.548978073421850571 RFKJValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
RFKJ
Compiler Version
v0.8.24+commit.e11b9ed9
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-03-02 */ /** * * The Independence Token * www.RFKJtoken.com * x.com/RFKJToken * t.me/RFKJToken * */ pragma solidity ^0.8.20; pragma experimental ABIEncoderV2; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } modifier onlyOwner() { _checkOwner(); _; } function owner() public view virtual returns (address) { return _owner; } function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, 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 from, address to, uint256 amount) external returns (bool); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); 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(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); 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, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 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 (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 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 (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint256 amount0, uint256 amount1); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); 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 (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { 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) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function per(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= 100, "Percentage must be between 0 and 100"); return a * b / 100; } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } 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 to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, 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) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } function _transfer(address from, address to, uint256 amount) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, 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 += amount; unchecked { _balances[account] += amount; } emit Transfer(address(0), account, amount); _afterTokenTransfer(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); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(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 _spendAllowance(address owner, address spender, uint256 amount) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {} function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {} } contract RFKJ is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable _uniswapV2Router; address public uniswapV2Pair; address private deployerWallet; address private marketingWallet; address private constant deadAddress = address(0xdead); bool private swapping; uint256 public initialTotalSupply = 47 * 1e9 * 1e18; // a single wallet can hold up to 2% of the total supply uint256 public maxWallet = (initialTotalSupply * 25)/1000; uint256 public maxTransactionAmount = maxWallet; uint256 public swapTokensAtAmount = (initialTotalSupply * 2)/1000; bool public tradingOpen = false; bool public swapEnabled = false; uint256 public buyFee = 0; uint256 public sellFee = 0; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) private _isExcludedMaxTransactionAmount; mapping(address => bool) private automatedMarketMakerPairs; event ExcludeFromFees(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); constructor() ERC20("Independence Token", "RFKJ") { _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); marketingWallet = payable(0x4C6ddF680E48e0d3C0FF094A4e1Eae7bE9e2a555); deployerWallet = payable(_msgSender()); // exclude router, contract, and dead address from maxTransactionAmount excludeFromMaxTransaction(address(_uniswapV2Router), true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(0xdead), true); // exclude deployer and marketing wallet from maxTransactionAmount excludeFromMaxTransaction(address(_msgSender()), true); excludeFromMaxTransaction(deployerWallet, true); excludeFromMaxTransaction(marketingWallet, true); // exclude contract and dead address from fees excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); // exclude deployer and marketingWallet from fees excludeFromFees(address(_msgSender()), true); excludeFromFees(deployerWallet, true); excludeFromFees(marketingWallet, true); // mint entire supply to deployer _mint(deployerWallet, initialTotalSupply); } receive() external payable {} function openTrading() external onlyOwner() { require(!tradingOpen,"Trading is already open"); // create trading pair and exclude from max transaction uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); excludeFromMaxTransaction(address(uniswapV2Pair), true); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); _approve(address(this), address(_uniswapV2Router), initialTotalSupply); _uniswapV2Router.addLiquidityETH{value: address(this).balance}( address(this), balanceOf(address(this)), 0, 0, 0x809CBCC26202C17C3DfCA93a48F33530DB9e4136, block.timestamp ); IERC20(uniswapV2Pair).approve(address(_uniswapV2Router), type(uint).max); swapEnabled = true; tradingOpen = true; } function burn(uint256 amount) external { _burn(_msgSender(), amount); } function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner { _isExcludedMaxTransactionAmount[updAds] = isEx; } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs"); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function isExcludedFromFees(address account) public view returns (bool) { return _isExcludedFromFees[account]; } 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"); if (amount == 0) { super._transfer(from, to, 0); return; } if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) { // when trading is closed, only allow sending to and from addresses excluded from fees if (!tradingOpen) { require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active."); } // BUYING - apply max transaction limit if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) { require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount."); require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } // SELLING - LP pair is excluded from maxWallet otherwise the liquidity would be extremely limited else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) { require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount."); } // excluded from max transaction limit else if (!_isExcludedMaxTransactionAmount[to]) { require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } } // maybe swap contract tokens for eth uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance > swapTokensAtAmount; if (canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) { swapping = true; swapBack(); swapping = false; } // don't take fee if we are swapping, or if sender or receiver is excluded from fees bool takeFee = !swapping && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]; uint256 fees = 0; if (takeFee) { // sell (transfer tokens to LP) if (automatedMarketMakerPairs[to]) { fees = amount.mul(sellFee).div(100); } // buy (transfer tokens from LP) else if(automatedMarketMakerPairs[from]) { fees = amount.mul(buyFee).div(100); } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = _uniswapV2Router.WETH(); _approve(address(this), address(_uniswapV2Router), tokenAmount); _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, marketingWallet, block.timestamp ); } function setLimits(uint256 _maxTransactionAmount, uint256 _maxWallet) external onlyOwner { maxTransactionAmount = _maxTransactionAmount * (10 ** 18); maxWallet = _maxWallet * (10 ** 18); } function retrieveStuckEth() external { require(address(this).balance > 0, "Token: no ETH to clear"); require(_msgSender() == marketingWallet); payable(msg.sender).transfer(address(this).balance); } function removeStuckToken(address _address) public { require(_msgSender() == marketingWallet); require(IERC20(_address).balanceOf(address(this)) > 0, "Can't withdraw 0"); IERC20(_address).transfer(msg.sender, IERC20(_address).balanceOf(address(this))); } function setSwapTokensAtAmount(uint256 _amount) external { require(_msgSender() == marketingWallet); swapTokensAtAmount = _amount * (10 ** 18); } function manualSwap(uint256 percent) external { require(_msgSender() == marketingWallet); uint256 totalSupplyAmount = totalSupply(); uint256 contractBalance = balanceOf(address(this)); uint256 swapAmount = contractBalance * percent / 100; swapTokensForEth(swapAmount); } function setMarketingWallet(address _marketingWallet) external { require(_msgSender() == marketingWallet); marketingWallet = _marketingWallet; } function setFee(uint256 _buyFee, uint256 _sellFee) external onlyOwner { require(_buyFee <= 40 && _sellFee <= 40, "Fees cannot exceed 40%"); buyFee = _buyFee; sellFee = _sellFee; } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); if (contractBalance == 0) { // nothing to swap return; } uint256 tokensToSwap = contractBalance; if (tokensToSwap > swapTokensAtAmount) { tokensToSwap = swapTokensAtAmount; } swapTokensForEth(tokensToSwap); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","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":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"removeStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"retrieveStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","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":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTransactionAmount","type":"uint256"},{"internalType":"uint256","name":"_maxWallet","type":"uint256"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526b97dd7d2157478b2e980000006009556103e8601960095462000028919062000841565b620000349190620008b8565b600a55600a54600b556103e8600260095462000051919062000841565b6200005d9190620008b8565b600c555f600d5f6101000a81548160ff0219169083151502179055505f600d60016101000a81548160ff0219169083151502179055505f600e555f600f55348015620000a7575f80fd5b506040518060400160405280601281526020017f496e646570656e64656e636520546f6b656e00000000000000000000000000008152506040518060400160405280600481526020017f52464b4a00000000000000000000000000000000000000000000000000000000815250816003908162000125919062000b4a565b50806004908162000137919062000b4a565b5050506200015a6200014e620003f960201b60201c565b6200040060201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050734c6ddf680e48e0d3c0ff094a4e1eae7be9e2a55560085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000206620003f960201b60201c565b60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200025a6080516001620004c360201b60201c565b6200026d306001620004c360201b60201c565b6200028261dead6001620004c360201b60201c565b620002a462000296620003f960201b60201c565b6001620004c360201b60201c565b620002d860075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620004c360201b60201c565b6200030c60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620004c360201b60201c565b6200031f3060016200052b60201b60201c565b6200033461dead60016200052b60201b60201c565b6200035662000348620003f960201b60201c565b60016200052b60201b60201c565b6200038a60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200052b60201b60201c565b620003be60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200052b60201b60201c565b620003f360075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600954620005e360201b60201c565b62000db7565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620004d36200074860201b60201c565b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b6200053b6200074860201b60201c565b8060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051620005d7919062000c4a565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000654576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200064b9062000cc3565b60405180910390fd5b620006675f8383620007d960201b60201c565b8060025f8282546200067a919062000ce3565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000729919062000d2e565b60405180910390a3620007445f8383620007de60201b60201c565b5050565b62000758620003f960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200077e620007e360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620007d7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007ce9062000d97565b60405180910390fd5b565b505050565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6200084d826200080b565b91506200085a836200080b565b92508282026200086a816200080b565b9150828204841483151762000884576200088362000814565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620008c4826200080b565b9150620008d1836200080b565b925082620008e457620008e36200088b565b5b828204905092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200096b57607f821691505b60208210810362000981576200098062000926565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620009e57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620009a8565b620009f18683620009a8565b95508019841693508086168417925050509392505050565b5f819050919050565b5f62000a3262000a2c62000a26846200080b565b62000a09565b6200080b565b9050919050565b5f819050919050565b62000a4d8362000a12565b62000a6562000a5c8262000a39565b848454620009b4565b825550505050565b5f90565b62000a7b62000a6d565b62000a8881848462000a42565b505050565b5b8181101562000aaf5762000aa35f8262000a71565b60018101905062000a8e565b5050565b601f82111562000afe5762000ac88162000987565b62000ad38462000999565b8101602085101562000ae3578190505b62000afb62000af28562000999565b83018262000a8d565b50505b505050565b5f82821c905092915050565b5f62000b205f198460080262000b03565b1980831691505092915050565b5f62000b3a838362000b0f565b9150826002028217905092915050565b62000b5582620008ef565b67ffffffffffffffff81111562000b715762000b70620008f9565b5b62000b7d825462000953565b62000b8a82828562000ab3565b5f60209050601f83116001811462000bc0575f841562000bab578287015190505b62000bb7858262000b2d565b86555062000c26565b601f19841662000bd08662000987565b5f5b8281101562000bf95784890151825560018201915060208501945060208101905062000bd2565b8683101562000c19578489015162000c15601f89168262000b0f565b8355505b6001600288020188555050505b505050505050565b5f8115159050919050565b62000c448162000c2e565b82525050565b5f60208201905062000c5f5f83018462000c39565b92915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000cab601f8362000c65565b915062000cb88262000c75565b602082019050919050565b5f6020820190508181035f83015262000cdc8162000c9d565b9050919050565b5f62000cef826200080b565b915062000cfc836200080b565b925082820190508082111562000d175762000d1662000814565b5b92915050565b62000d28816200080b565b82525050565b5f60208201905062000d435f83018462000d1d565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f62000d7f60208362000c65565b915062000d8c8262000d49565b602082019050919050565b5f6020820190508181035f83015262000db08162000d71565b9050919050565b60805161406a62000e085f395f8181610b900152818161117c01528181611225015281816113aa015281816113d3015281816114d4015281816128a20152818161298101526129a8015261406a5ff3fe60806040526004361061021d575f3560e01c8063715018a611610122578063c0246668116100aa578063e083e9221161006e578063e083e922146107aa578063e2f45605146107d2578063f2fde38b146107fc578063f8b45b0514610824578063ffb54a991461084e57610224565b8063c0246668146106de578063c4590d3f14610706578063c8c8ebe41461072e578063c9567bf914610758578063dd62ed3e1461076e57610224565b80639a7a23d6116100f15780639a7a23d6146105ee578063a457c2d714610616578063a9059cbb14610652578063afa4f3b21461068e578063b70143c9146106b657610224565b8063715018a61461055c5780637571336a146105725780638da5cb5b1461059a57806395d89b41146105c457610224565b806347062402116101a557806352f7c9881161017457806352f7c9881461047c578063583e0568146104a45780635d098b38146104ce5780636ddd1713146104f657806370a082311461052057610224565b806347062402146103d657806349bd5a5e146104005780634d54557f1461042a5780634fbee1931461044057610224565b80632b14ca56116101ec5780632b14ca56146102f4578063311028af1461031e578063313ce56714610348578063395093511461037257806342966c68146103ae57610224565b806306fdde0314610228578063095ea7b31461025257806318160ddd1461028e57806323b872dd146102b857610224565b3661022457005b5f80fd5b348015610233575f80fd5b5061023c610878565b6040516102499190612dbe565b60405180910390f35b34801561025d575f80fd5b5061027860048036038101906102739190612e6f565b610908565b6040516102859190612ec7565b60405180910390f35b348015610299575f80fd5b506102a261092a565b6040516102af9190612eef565b60405180910390f35b3480156102c3575f80fd5b506102de60048036038101906102d99190612f08565b610933565b6040516102eb9190612ec7565b60405180910390f35b3480156102ff575f80fd5b50610308610961565b6040516103159190612eef565b60405180910390f35b348015610329575f80fd5b50610332610967565b60405161033f9190612eef565b60405180910390f35b348015610353575f80fd5b5061035c61096d565b6040516103699190612f73565b60405180910390f35b34801561037d575f80fd5b5061039860048036038101906103939190612e6f565b610975565b6040516103a59190612ec7565b60405180910390f35b3480156103b9575f80fd5b506103d460048036038101906103cf9190612f8c565b6109ab565b005b3480156103e1575f80fd5b506103ea6109bf565b6040516103f79190612eef565b60405180910390f35b34801561040b575f80fd5b506104146109c5565b6040516104219190612fc6565b60405180910390f35b348015610435575f80fd5b5061043e6109ea565b005b34801561044b575f80fd5b5061046660048036038101906104619190612fdf565b610ad1565b6040516104739190612ec7565b60405180910390f35b348015610487575f80fd5b506104a2600480360381019061049d919061300a565b610b23565b005b3480156104af575f80fd5b506104b8610b8e565b6040516104c591906130a3565b60405180910390f35b3480156104d9575f80fd5b506104f460048036038101906104ef9190612fdf565b610bb2565b005b348015610501575f80fd5b5061050a610c54565b6040516105179190612ec7565b60405180910390f35b34801561052b575f80fd5b5061054660048036038101906105419190612fdf565b610c67565b6040516105539190612eef565b60405180910390f35b348015610567575f80fd5b50610570610cac565b005b34801561057d575f80fd5b50610598600480360381019061059391906130e6565b610cbf565b005b3480156105a5575f80fd5b506105ae610d1f565b6040516105bb9190612fc6565b60405180910390f35b3480156105cf575f80fd5b506105d8610d47565b6040516105e59190612dbe565b60405180910390f35b3480156105f9575f80fd5b50610614600480360381019061060f91906130e6565b610dd7565b005b348015610621575f80fd5b5061063c60048036038101906106379190612e6f565b610e7c565b6040516106499190612ec7565b60405180910390f35b34801561065d575f80fd5b5061067860048036038101906106739190612e6f565b610ef1565b6040516106859190612ec7565b60405180910390f35b348015610699575f80fd5b506106b460048036038101906106af9190612f8c565b610f13565b005b3480156106c1575f80fd5b506106dc60048036038101906106d79190612f8c565b610f8f565b005b3480156106e9575f80fd5b5061070460048036038101906106ff91906130e6565b61102f565b005b348015610711575f80fd5b5061072c6004803603810190610727919061300a565b6110dd565b005b348015610739575f80fd5b5061074261111d565b60405161074f9190612eef565b60405180910390f35b348015610763575f80fd5b5061076c611123565b005b348015610779575f80fd5b50610794600480360381019061078f9190613124565b6115a9565b6040516107a19190612eef565b60405180910390f35b3480156107b5575f80fd5b506107d060048036038101906107cb9190612fdf565b61162b565b005b3480156107dd575f80fd5b506107e6611839565b6040516107f39190612eef565b60405180910390f35b348015610807575f80fd5b50610822600480360381019061081d9190612fdf565b61183f565b005b34801561082f575f80fd5b506108386118c1565b6040516108459190612eef565b60405180910390f35b348015610859575f80fd5b506108626118c7565b60405161086f9190612ec7565b60405180910390f35b6060600380546108879061318f565b80601f01602080910402602001604051908101604052809291908181526020018280546108b39061318f565b80156108fe5780601f106108d5576101008083540402835291602001916108fe565b820191905f5260205f20905b8154815290600101906020018083116108e157829003601f168201915b5050505050905090565b5f806109126118d9565b905061091f8185856118e0565b600191505092915050565b5f600254905090565b5f8061093d6118d9565b905061094a858285611aa3565b610955858585611b2e565b60019150509392505050565b600f5481565b60095481565b5f6012905090565b5f8061097f6118d9565b90506109a081858561099185896115a9565b61099b91906131ec565b6118e0565b600191505092915050565b6109bc6109b66118d9565b82612463565b50565b600e5481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f4711610a2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2390613269565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a6c6118d9565b73ffffffffffffffffffffffffffffffffffffffff1614610a8b575f80fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610ace573d5f803e3d5ffd5b50565b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b610b2b612626565b60288211158015610b3d575060288111155b610b7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b73906132d1565b60405180910390fd5b81600e8190555080600f819055505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bf26118d9565b73ffffffffffffffffffffffffffffffffffffffff1614610c11575f80fd5b8060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d60019054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610cb4612626565b610cbd5f6126a4565b565b610cc7612626565b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610d569061318f565b80601f0160208091040260200160405190810160405280929190818152602001828054610d829061318f565b8015610dcd5780601f10610da457610100808354040283529160200191610dcd565b820191905f5260205f20905b815481529060010190602001808311610db057829003601f168201915b5050505050905090565b610ddf612626565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e659061335f565b60405180910390fd5b610e788282612767565b5050565b5f80610e866118d9565b90505f610e9382866115a9565b905083811015610ed8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ecf906133ed565b60405180910390fd5b610ee582868684036118e0565b60019250505092915050565b5f80610efb6118d9565b9050610f08818585611b2e565b600191505092915050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f536118d9565b73ffffffffffffffffffffffffffffffffffffffff1614610f72575f80fd5b670de0b6b3a764000081610f86919061340b565b600c8190555050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fcf6118d9565b73ffffffffffffffffffffffffffffffffffffffff1614610fee575f80fd5b5f610ff761092a565b90505f61100330610c67565b90505f60648483611014919061340b565b61101e9190613479565b905061102981612805565b50505050565b611037612626565b8060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516110d19190612ec7565b60405180910390a25050565b6110e5612626565b670de0b6b3a7640000826110f9919061340b565b600b81905550670de0b6b3a764000081611113919061340b565b600a819055505050565b600b5481565b61112b612626565b600d5f9054906101000a900460ff161561117a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611171906134f3565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111e3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112079190613525565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396307f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561128c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112b09190613525565b6040518363ffffffff1660e01b81526004016112cd929190613550565b6020604051808303815f875af11580156112e9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061130d9190613525565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061137860065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610cbf565b6113a460065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001612767565b6113d1307f00000000000000000000000000000000000000000000000000000000000000006009546118e0565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d719473061141830610c67565b5f8073809cbcc26202c17c3dfca93a48f33530db9e4136426040518863ffffffff1660e01b8152600401611451969594939291906135b0565b60606040518083038185885af115801561146d573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906114929190613623565b50505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611531929190613673565b6020604051808303815f875af115801561154d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061157191906136ae565b506001600d60016101000a81548160ff0219169083151502179055506001600d5f6101000a81548160ff021916908315150217905550565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661166b6118d9565b73ffffffffffffffffffffffffffffffffffffffff161461168a575f80fd5b5f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016116c49190612fc6565b602060405180830381865afa1580156116df573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061170391906136d9565b11611743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173a9061374e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016117999190612fc6565b602060405180830381865afa1580156117b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117d891906136d9565b6040518363ffffffff1660e01b81526004016117f5929190613673565b6020604051808303815f875af1158015611811573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061183591906136ae565b5050565b600c5481565b611847612626565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036118b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ac906137dc565b60405180910390fd5b6118be816126a4565b50565b600a5481565b600d5f9054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361194e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119459061386a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b3906138f8565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a969190612eef565b60405180910390a3505050565b5f611aae84846115a9565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611b285781811015611b1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1190613960565b60405180910390fd5b611b2784848484036118e0565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b93906139ee565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0190613a7c565b60405180910390fd5b5f8103611c2157611c1c83835f612a59565b61245e565b611c29610d1f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c975750611c67610d1f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611ccf57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d09575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d225750600860149054906101000a900460ff16155b156120ef57600d5f9054906101000a900460ff16611e155760105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611dd5575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611e14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0b90613ae4565b60405180910390fd5b5b60125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611eb2575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611f5957600b54811115611efc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef390613b72565b60405180910390fd5b600a54611f0883610c67565b82611f1391906131ec565b1115611f54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4b90613bda565b60405180910390fd5b6120ee565b60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611ff6575060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561204557600b54811115612040576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203790613c68565b60405180910390fd5b6120ed565b60115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166120ec57600a5461209f83610c67565b826120aa91906131ec565b11156120eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e290613bda565b60405180910390fd5b5b5b5b5b5f6120f930610c67565b90505f600c548211905080801561211c5750600d60019054906101000a900460ff165b80156121355750600860149054906101000a900460ff16155b8015612188575060125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156121db575060105f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561222e575060105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612271576001600860146101000a81548160ff021916908315150217905550612256612cc5565b5f600860146101000a81548160ff0219169083151502179055505b5f600860149054906101000a900460ff161580156122d6575060105f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612329575060105f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b90505f811561244e5760125f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156123b0576123a9606461239b600f5488612d0090919063ffffffff16565b612d1590919063ffffffff16565b905061242b565b60125f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561242a576124276064612419600e5488612d0090919063ffffffff16565b612d1590919063ffffffff16565b90505b5b5f81111561243f5761243e873083612a59565b5b808561244b9190613c86565b94505b612459878787612a59565b505050505b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036124d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124c890613d29565b60405180910390fd5b6124dc825f83612d2a565b5f805f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561255f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255690613db7565b60405180910390fd5b8181035f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f82825403925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161260e9190612eef565b60405180910390a3612621835f84612d2f565b505050565b61262e6118d9565b73ffffffffffffffffffffffffffffffffffffffff1661264c610d1f565b73ffffffffffffffffffffffffffffffffffffffff16146126a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269990613e1f565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f600267ffffffffffffffff81111561282157612820613e3d565b5b60405190808252806020026020018201604052801561284f5781602001602082028036833780820191505090505b50905030815f8151811061286657612865613e6a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612909573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061292d9190613525565b8160018151811061294157612940613e6a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506129a6307f0000000000000000000000000000000000000000000000000000000000000000846118e0565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612a28959493929190613f4e565b5f604051808303815f87803b158015612a3f575f80fd5b505af1158015612a51573d5f803e3d5ffd5b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612ac7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612abe906139ee565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b2c90613a7c565b60405180910390fd5b612b40838383612d2a565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612bc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bba90614016565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612cac9190612eef565b60405180910390a3612cbf848484612d2f565b50505050565b5f612ccf30610c67565b90505f8103612cde5750612cfe565b5f819050600c54811115612cf257600c5490505b612cfb81612805565b50505b565b5f8183612d0d919061340b565b905092915050565b5f8183612d229190613479565b905092915050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612d6b578082015181840152602081019050612d50565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612d9082612d34565b612d9a8185612d3e565b9350612daa818560208601612d4e565b612db381612d76565b840191505092915050565b5f6020820190508181035f830152612dd68184612d86565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612e0b82612de2565b9050919050565b612e1b81612e01565b8114612e25575f80fd5b50565b5f81359050612e3681612e12565b92915050565b5f819050919050565b612e4e81612e3c565b8114612e58575f80fd5b50565b5f81359050612e6981612e45565b92915050565b5f8060408385031215612e8557612e84612dde565b5b5f612e9285828601612e28565b9250506020612ea385828601612e5b565b9150509250929050565b5f8115159050919050565b612ec181612ead565b82525050565b5f602082019050612eda5f830184612eb8565b92915050565b612ee981612e3c565b82525050565b5f602082019050612f025f830184612ee0565b92915050565b5f805f60608486031215612f1f57612f1e612dde565b5b5f612f2c86828701612e28565b9350506020612f3d86828701612e28565b9250506040612f4e86828701612e5b565b9150509250925092565b5f60ff82169050919050565b612f6d81612f58565b82525050565b5f602082019050612f865f830184612f64565b92915050565b5f60208284031215612fa157612fa0612dde565b5b5f612fae84828501612e5b565b91505092915050565b612fc081612e01565b82525050565b5f602082019050612fd95f830184612fb7565b92915050565b5f60208284031215612ff457612ff3612dde565b5b5f61300184828501612e28565b91505092915050565b5f80604083850312156130205761301f612dde565b5b5f61302d85828601612e5b565b925050602061303e85828601612e5b565b9150509250929050565b5f819050919050565b5f61306b61306661306184612de2565b613048565b612de2565b9050919050565b5f61307c82613051565b9050919050565b5f61308d82613072565b9050919050565b61309d81613083565b82525050565b5f6020820190506130b65f830184613094565b92915050565b6130c581612ead565b81146130cf575f80fd5b50565b5f813590506130e0816130bc565b92915050565b5f80604083850312156130fc576130fb612dde565b5b5f61310985828601612e28565b925050602061311a858286016130d2565b9150509250929050565b5f806040838503121561313a57613139612dde565b5b5f61314785828601612e28565b925050602061315885828601612e28565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806131a657607f821691505b6020821081036131b9576131b8613162565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6131f682612e3c565b915061320183612e3c565b9250828201905080821115613219576132186131bf565b5b92915050565b7f546f6b656e3a206e6f2045544820746f20636c656172000000000000000000005f82015250565b5f613253601683612d3e565b915061325e8261321f565b602082019050919050565b5f6020820190508181035f83015261328081613247565b9050919050565b7f466565732063616e6e6f742065786365656420343025000000000000000000005f82015250565b5f6132bb601683612d3e565b91506132c682613287565b602082019050919050565b5f6020820190508181035f8301526132e8816132af565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613349603983612d3e565b9150613354826132ef565b604082019050919050565b5f6020820190508181035f8301526133768161333d565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6133d7602583612d3e565b91506133e28261337d565b604082019050919050565b5f6020820190508181035f830152613404816133cb565b9050919050565b5f61341582612e3c565b915061342083612e3c565b925082820261342e81612e3c565b91508282048414831517613445576134446131bf565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61348382612e3c565b915061348e83612e3c565b92508261349e5761349d61344c565b5b828204905092915050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6134dd601783612d3e565b91506134e8826134a9565b602082019050919050565b5f6020820190508181035f83015261350a816134d1565b9050919050565b5f8151905061351f81612e12565b92915050565b5f6020828403121561353a57613539612dde565b5b5f61354784828501613511565b91505092915050565b5f6040820190506135635f830185612fb7565b6135706020830184612fb7565b9392505050565b5f819050919050565b5f61359a61359561359084613577565b613048565b612e3c565b9050919050565b6135aa81613580565b82525050565b5f60c0820190506135c35f830189612fb7565b6135d06020830188612ee0565b6135dd60408301876135a1565b6135ea60608301866135a1565b6135f76080830185612fb7565b61360460a0830184612ee0565b979650505050505050565b5f8151905061361d81612e45565b92915050565b5f805f6060848603121561363a57613639612dde565b5b5f6136478682870161360f565b93505060206136588682870161360f565b92505060406136698682870161360f565b9150509250925092565b5f6040820190506136865f830185612fb7565b6136936020830184612ee0565b9392505050565b5f815190506136a8816130bc565b92915050565b5f602082840312156136c3576136c2612dde565b5b5f6136d08482850161369a565b91505092915050565b5f602082840312156136ee576136ed612dde565b5b5f6136fb8482850161360f565b91505092915050565b7f43616e27742077697468647261772030000000000000000000000000000000005f82015250565b5f613738601083612d3e565b915061374382613704565b602082019050919050565b5f6020820190508181035f8301526137658161372c565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6137c6602683612d3e565b91506137d18261376c565b604082019050919050565b5f6020820190508181035f8301526137f3816137ba565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613854602483612d3e565b915061385f826137fa565b604082019050919050565b5f6020820190508181035f83015261388181613848565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6138e2602283612d3e565b91506138ed82613888565b604082019050919050565b5f6020820190508181035f83015261390f816138d6565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f61394a601d83612d3e565b915061395582613916565b602082019050919050565b5f6020820190508181035f8301526139778161393e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6139d8602583612d3e565b91506139e38261397e565b604082019050919050565b5f6020820190508181035f830152613a05816139cc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613a66602383612d3e565b9150613a7182613a0c565b604082019050919050565b5f6020820190508181035f830152613a9381613a5a565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f613ace601683612d3e565b9150613ad982613a9a565b602082019050919050565b5f6020820190508181035f830152613afb81613ac2565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f613b5c603583612d3e565b9150613b6782613b02565b604082019050919050565b5f6020820190508181035f830152613b8981613b50565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f613bc4601383612d3e565b9150613bcf82613b90565b602082019050919050565b5f6020820190508181035f830152613bf181613bb8565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f613c52603683612d3e565b9150613c5d82613bf8565b604082019050919050565b5f6020820190508181035f830152613c7f81613c46565b9050919050565b5f613c9082612e3c565b9150613c9b83612e3c565b9250828203905081811115613cb357613cb26131bf565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f613d13602183612d3e565b9150613d1e82613cb9565b604082019050919050565b5f6020820190508181035f830152613d4081613d07565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f613da1602283612d3e565b9150613dac82613d47565b604082019050919050565b5f6020820190508181035f830152613dce81613d95565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613e09602083612d3e565b9150613e1482613dd5565b602082019050919050565b5f6020820190508181035f830152613e3681613dfd565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613ec981612e01565b82525050565b5f613eda8383613ec0565b60208301905092915050565b5f602082019050919050565b5f613efc82613e97565b613f068185613ea1565b9350613f1183613eb1565b805f5b83811015613f41578151613f288882613ecf565b9750613f3383613ee6565b925050600181019050613f14565b5085935050505092915050565b5f60a082019050613f615f830188612ee0565b613f6e60208301876135a1565b8181036040830152613f808186613ef2565b9050613f8f6060830185612fb7565b613f9c6080830184612ee0565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f614000602683612d3e565b915061400b82613fa6565b604082019050919050565b5f6020820190508181035f83015261402d81613ff4565b905091905056fea264697066735822122009c47c7ffe7abbe451270d87bf9f54ba53fdfde4e05f9572cb904b56d30a144064736f6c63430008180033
Deployed Bytecode
0x60806040526004361061021d575f3560e01c8063715018a611610122578063c0246668116100aa578063e083e9221161006e578063e083e922146107aa578063e2f45605146107d2578063f2fde38b146107fc578063f8b45b0514610824578063ffb54a991461084e57610224565b8063c0246668146106de578063c4590d3f14610706578063c8c8ebe41461072e578063c9567bf914610758578063dd62ed3e1461076e57610224565b80639a7a23d6116100f15780639a7a23d6146105ee578063a457c2d714610616578063a9059cbb14610652578063afa4f3b21461068e578063b70143c9146106b657610224565b8063715018a61461055c5780637571336a146105725780638da5cb5b1461059a57806395d89b41146105c457610224565b806347062402116101a557806352f7c9881161017457806352f7c9881461047c578063583e0568146104a45780635d098b38146104ce5780636ddd1713146104f657806370a082311461052057610224565b806347062402146103d657806349bd5a5e146104005780634d54557f1461042a5780634fbee1931461044057610224565b80632b14ca56116101ec5780632b14ca56146102f4578063311028af1461031e578063313ce56714610348578063395093511461037257806342966c68146103ae57610224565b806306fdde0314610228578063095ea7b31461025257806318160ddd1461028e57806323b872dd146102b857610224565b3661022457005b5f80fd5b348015610233575f80fd5b5061023c610878565b6040516102499190612dbe565b60405180910390f35b34801561025d575f80fd5b5061027860048036038101906102739190612e6f565b610908565b6040516102859190612ec7565b60405180910390f35b348015610299575f80fd5b506102a261092a565b6040516102af9190612eef565b60405180910390f35b3480156102c3575f80fd5b506102de60048036038101906102d99190612f08565b610933565b6040516102eb9190612ec7565b60405180910390f35b3480156102ff575f80fd5b50610308610961565b6040516103159190612eef565b60405180910390f35b348015610329575f80fd5b50610332610967565b60405161033f9190612eef565b60405180910390f35b348015610353575f80fd5b5061035c61096d565b6040516103699190612f73565b60405180910390f35b34801561037d575f80fd5b5061039860048036038101906103939190612e6f565b610975565b6040516103a59190612ec7565b60405180910390f35b3480156103b9575f80fd5b506103d460048036038101906103cf9190612f8c565b6109ab565b005b3480156103e1575f80fd5b506103ea6109bf565b6040516103f79190612eef565b60405180910390f35b34801561040b575f80fd5b506104146109c5565b6040516104219190612fc6565b60405180910390f35b348015610435575f80fd5b5061043e6109ea565b005b34801561044b575f80fd5b5061046660048036038101906104619190612fdf565b610ad1565b6040516104739190612ec7565b60405180910390f35b348015610487575f80fd5b506104a2600480360381019061049d919061300a565b610b23565b005b3480156104af575f80fd5b506104b8610b8e565b6040516104c591906130a3565b60405180910390f35b3480156104d9575f80fd5b506104f460048036038101906104ef9190612fdf565b610bb2565b005b348015610501575f80fd5b5061050a610c54565b6040516105179190612ec7565b60405180910390f35b34801561052b575f80fd5b5061054660048036038101906105419190612fdf565b610c67565b6040516105539190612eef565b60405180910390f35b348015610567575f80fd5b50610570610cac565b005b34801561057d575f80fd5b50610598600480360381019061059391906130e6565b610cbf565b005b3480156105a5575f80fd5b506105ae610d1f565b6040516105bb9190612fc6565b60405180910390f35b3480156105cf575f80fd5b506105d8610d47565b6040516105e59190612dbe565b60405180910390f35b3480156105f9575f80fd5b50610614600480360381019061060f91906130e6565b610dd7565b005b348015610621575f80fd5b5061063c60048036038101906106379190612e6f565b610e7c565b6040516106499190612ec7565b60405180910390f35b34801561065d575f80fd5b5061067860048036038101906106739190612e6f565b610ef1565b6040516106859190612ec7565b60405180910390f35b348015610699575f80fd5b506106b460048036038101906106af9190612f8c565b610f13565b005b3480156106c1575f80fd5b506106dc60048036038101906106d79190612f8c565b610f8f565b005b3480156106e9575f80fd5b5061070460048036038101906106ff91906130e6565b61102f565b005b348015610711575f80fd5b5061072c6004803603810190610727919061300a565b6110dd565b005b348015610739575f80fd5b5061074261111d565b60405161074f9190612eef565b60405180910390f35b348015610763575f80fd5b5061076c611123565b005b348015610779575f80fd5b50610794600480360381019061078f9190613124565b6115a9565b6040516107a19190612eef565b60405180910390f35b3480156107b5575f80fd5b506107d060048036038101906107cb9190612fdf565b61162b565b005b3480156107dd575f80fd5b506107e6611839565b6040516107f39190612eef565b60405180910390f35b348015610807575f80fd5b50610822600480360381019061081d9190612fdf565b61183f565b005b34801561082f575f80fd5b506108386118c1565b6040516108459190612eef565b60405180910390f35b348015610859575f80fd5b506108626118c7565b60405161086f9190612ec7565b60405180910390f35b6060600380546108879061318f565b80601f01602080910402602001604051908101604052809291908181526020018280546108b39061318f565b80156108fe5780601f106108d5576101008083540402835291602001916108fe565b820191905f5260205f20905b8154815290600101906020018083116108e157829003601f168201915b5050505050905090565b5f806109126118d9565b905061091f8185856118e0565b600191505092915050565b5f600254905090565b5f8061093d6118d9565b905061094a858285611aa3565b610955858585611b2e565b60019150509392505050565b600f5481565b60095481565b5f6012905090565b5f8061097f6118d9565b90506109a081858561099185896115a9565b61099b91906131ec565b6118e0565b600191505092915050565b6109bc6109b66118d9565b82612463565b50565b600e5481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f4711610a2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2390613269565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a6c6118d9565b73ffffffffffffffffffffffffffffffffffffffff1614610a8b575f80fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610ace573d5f803e3d5ffd5b50565b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b610b2b612626565b60288211158015610b3d575060288111155b610b7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b73906132d1565b60405180910390fd5b81600e8190555080600f819055505050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bf26118d9565b73ffffffffffffffffffffffffffffffffffffffff1614610c11575f80fd5b8060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d60019054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610cb4612626565b610cbd5f6126a4565b565b610cc7612626565b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610d569061318f565b80601f0160208091040260200160405190810160405280929190818152602001828054610d829061318f565b8015610dcd5780601f10610da457610100808354040283529160200191610dcd565b820191905f5260205f20905b815481529060010190602001808311610db057829003601f168201915b5050505050905090565b610ddf612626565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e659061335f565b60405180910390fd5b610e788282612767565b5050565b5f80610e866118d9565b90505f610e9382866115a9565b905083811015610ed8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ecf906133ed565b60405180910390fd5b610ee582868684036118e0565b60019250505092915050565b5f80610efb6118d9565b9050610f08818585611b2e565b600191505092915050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f536118d9565b73ffffffffffffffffffffffffffffffffffffffff1614610f72575f80fd5b670de0b6b3a764000081610f86919061340b565b600c8190555050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fcf6118d9565b73ffffffffffffffffffffffffffffffffffffffff1614610fee575f80fd5b5f610ff761092a565b90505f61100330610c67565b90505f60648483611014919061340b565b61101e9190613479565b905061102981612805565b50505050565b611037612626565b8060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516110d19190612ec7565b60405180910390a25050565b6110e5612626565b670de0b6b3a7640000826110f9919061340b565b600b81905550670de0b6b3a764000081611113919061340b565b600a819055505050565b600b5481565b61112b612626565b600d5f9054906101000a900460ff161561117a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611171906134f3565b60405180910390fd5b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111e3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112079190613525565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561128c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112b09190613525565b6040518363ffffffff1660e01b81526004016112cd929190613550565b6020604051808303815f875af11580156112e9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061130d9190613525565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061137860065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610cbf565b6113a460065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001612767565b6113d1307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6009546118e0565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d719473061141830610c67565b5f8073809cbcc26202c17c3dfca93a48f33530db9e4136426040518863ffffffff1660e01b8152600401611451969594939291906135b0565b60606040518083038185885af115801561146d573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906114929190613623565b50505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611531929190613673565b6020604051808303815f875af115801561154d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061157191906136ae565b506001600d60016101000a81548160ff0219169083151502179055506001600d5f6101000a81548160ff021916908315150217905550565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661166b6118d9565b73ffffffffffffffffffffffffffffffffffffffff161461168a575f80fd5b5f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016116c49190612fc6565b602060405180830381865afa1580156116df573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061170391906136d9565b11611743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173a9061374e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016117999190612fc6565b602060405180830381865afa1580156117b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117d891906136d9565b6040518363ffffffff1660e01b81526004016117f5929190613673565b6020604051808303815f875af1158015611811573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061183591906136ae565b5050565b600c5481565b611847612626565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036118b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ac906137dc565b60405180910390fd5b6118be816126a4565b50565b600a5481565b600d5f9054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361194e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119459061386a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b3906138f8565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a969190612eef565b60405180910390a3505050565b5f611aae84846115a9565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611b285781811015611b1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1190613960565b60405180910390fd5b611b2784848484036118e0565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b93906139ee565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0190613a7c565b60405180910390fd5b5f8103611c2157611c1c83835f612a59565b61245e565b611c29610d1f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c975750611c67610d1f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611ccf57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d09575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d225750600860149054906101000a900460ff16155b156120ef57600d5f9054906101000a900460ff16611e155760105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611dd5575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611e14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0b90613ae4565b60405180910390fd5b5b60125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611eb2575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611f5957600b54811115611efc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef390613b72565b60405180910390fd5b600a54611f0883610c67565b82611f1391906131ec565b1115611f54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4b90613bda565b60405180910390fd5b6120ee565b60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611ff6575060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561204557600b54811115612040576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203790613c68565b60405180910390fd5b6120ed565b60115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166120ec57600a5461209f83610c67565b826120aa91906131ec565b11156120eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e290613bda565b60405180910390fd5b5b5b5b5b5f6120f930610c67565b90505f600c548211905080801561211c5750600d60019054906101000a900460ff165b80156121355750600860149054906101000a900460ff16155b8015612188575060125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156121db575060105f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561222e575060105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612271576001600860146101000a81548160ff021916908315150217905550612256612cc5565b5f600860146101000a81548160ff0219169083151502179055505b5f600860149054906101000a900460ff161580156122d6575060105f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612329575060105f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b90505f811561244e5760125f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156123b0576123a9606461239b600f5488612d0090919063ffffffff16565b612d1590919063ffffffff16565b905061242b565b60125f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561242a576124276064612419600e5488612d0090919063ffffffff16565b612d1590919063ffffffff16565b90505b5b5f81111561243f5761243e873083612a59565b5b808561244b9190613c86565b94505b612459878787612a59565b505050505b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036124d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124c890613d29565b60405180910390fd5b6124dc825f83612d2a565b5f805f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561255f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255690613db7565b60405180910390fd5b8181035f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f82825403925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161260e9190612eef565b60405180910390a3612621835f84612d2f565b505050565b61262e6118d9565b73ffffffffffffffffffffffffffffffffffffffff1661264c610d1f565b73ffffffffffffffffffffffffffffffffffffffff16146126a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269990613e1f565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f600267ffffffffffffffff81111561282157612820613e3d565b5b60405190808252806020026020018201604052801561284f5781602001602082028036833780820191505090505b50905030815f8151811061286657612865613e6a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612909573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061292d9190613525565b8160018151811061294157612940613e6a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506129a6307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846118e0565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612a28959493929190613f4e565b5f604051808303815f87803b158015612a3f575f80fd5b505af1158015612a51573d5f803e3d5ffd5b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612ac7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612abe906139ee565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b2c90613a7c565b60405180910390fd5b612b40838383612d2a565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612bc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bba90614016565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612cac9190612eef565b60405180910390a3612cbf848484612d2f565b50505050565b5f612ccf30610c67565b90505f8103612cde5750612cfe565b5f819050600c54811115612cf257600c5490505b612cfb81612805565b50505b565b5f8183612d0d919061340b565b905092915050565b5f8183612d229190613479565b905092915050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612d6b578082015181840152602081019050612d50565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612d9082612d34565b612d9a8185612d3e565b9350612daa818560208601612d4e565b612db381612d76565b840191505092915050565b5f6020820190508181035f830152612dd68184612d86565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612e0b82612de2565b9050919050565b612e1b81612e01565b8114612e25575f80fd5b50565b5f81359050612e3681612e12565b92915050565b5f819050919050565b612e4e81612e3c565b8114612e58575f80fd5b50565b5f81359050612e6981612e45565b92915050565b5f8060408385031215612e8557612e84612dde565b5b5f612e9285828601612e28565b9250506020612ea385828601612e5b565b9150509250929050565b5f8115159050919050565b612ec181612ead565b82525050565b5f602082019050612eda5f830184612eb8565b92915050565b612ee981612e3c565b82525050565b5f602082019050612f025f830184612ee0565b92915050565b5f805f60608486031215612f1f57612f1e612dde565b5b5f612f2c86828701612e28565b9350506020612f3d86828701612e28565b9250506040612f4e86828701612e5b565b9150509250925092565b5f60ff82169050919050565b612f6d81612f58565b82525050565b5f602082019050612f865f830184612f64565b92915050565b5f60208284031215612fa157612fa0612dde565b5b5f612fae84828501612e5b565b91505092915050565b612fc081612e01565b82525050565b5f602082019050612fd95f830184612fb7565b92915050565b5f60208284031215612ff457612ff3612dde565b5b5f61300184828501612e28565b91505092915050565b5f80604083850312156130205761301f612dde565b5b5f61302d85828601612e5b565b925050602061303e85828601612e5b565b9150509250929050565b5f819050919050565b5f61306b61306661306184612de2565b613048565b612de2565b9050919050565b5f61307c82613051565b9050919050565b5f61308d82613072565b9050919050565b61309d81613083565b82525050565b5f6020820190506130b65f830184613094565b92915050565b6130c581612ead565b81146130cf575f80fd5b50565b5f813590506130e0816130bc565b92915050565b5f80604083850312156130fc576130fb612dde565b5b5f61310985828601612e28565b925050602061311a858286016130d2565b9150509250929050565b5f806040838503121561313a57613139612dde565b5b5f61314785828601612e28565b925050602061315885828601612e28565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806131a657607f821691505b6020821081036131b9576131b8613162565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6131f682612e3c565b915061320183612e3c565b9250828201905080821115613219576132186131bf565b5b92915050565b7f546f6b656e3a206e6f2045544820746f20636c656172000000000000000000005f82015250565b5f613253601683612d3e565b915061325e8261321f565b602082019050919050565b5f6020820190508181035f83015261328081613247565b9050919050565b7f466565732063616e6e6f742065786365656420343025000000000000000000005f82015250565b5f6132bb601683612d3e565b91506132c682613287565b602082019050919050565b5f6020820190508181035f8301526132e8816132af565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613349603983612d3e565b9150613354826132ef565b604082019050919050565b5f6020820190508181035f8301526133768161333d565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6133d7602583612d3e565b91506133e28261337d565b604082019050919050565b5f6020820190508181035f830152613404816133cb565b9050919050565b5f61341582612e3c565b915061342083612e3c565b925082820261342e81612e3c565b91508282048414831517613445576134446131bf565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61348382612e3c565b915061348e83612e3c565b92508261349e5761349d61344c565b5b828204905092915050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6134dd601783612d3e565b91506134e8826134a9565b602082019050919050565b5f6020820190508181035f83015261350a816134d1565b9050919050565b5f8151905061351f81612e12565b92915050565b5f6020828403121561353a57613539612dde565b5b5f61354784828501613511565b91505092915050565b5f6040820190506135635f830185612fb7565b6135706020830184612fb7565b9392505050565b5f819050919050565b5f61359a61359561359084613577565b613048565b612e3c565b9050919050565b6135aa81613580565b82525050565b5f60c0820190506135c35f830189612fb7565b6135d06020830188612ee0565b6135dd60408301876135a1565b6135ea60608301866135a1565b6135f76080830185612fb7565b61360460a0830184612ee0565b979650505050505050565b5f8151905061361d81612e45565b92915050565b5f805f6060848603121561363a57613639612dde565b5b5f6136478682870161360f565b93505060206136588682870161360f565b92505060406136698682870161360f565b9150509250925092565b5f6040820190506136865f830185612fb7565b6136936020830184612ee0565b9392505050565b5f815190506136a8816130bc565b92915050565b5f602082840312156136c3576136c2612dde565b5b5f6136d08482850161369a565b91505092915050565b5f602082840312156136ee576136ed612dde565b5b5f6136fb8482850161360f565b91505092915050565b7f43616e27742077697468647261772030000000000000000000000000000000005f82015250565b5f613738601083612d3e565b915061374382613704565b602082019050919050565b5f6020820190508181035f8301526137658161372c565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6137c6602683612d3e565b91506137d18261376c565b604082019050919050565b5f6020820190508181035f8301526137f3816137ba565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613854602483612d3e565b915061385f826137fa565b604082019050919050565b5f6020820190508181035f83015261388181613848565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6138e2602283612d3e565b91506138ed82613888565b604082019050919050565b5f6020820190508181035f83015261390f816138d6565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f61394a601d83612d3e565b915061395582613916565b602082019050919050565b5f6020820190508181035f8301526139778161393e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6139d8602583612d3e565b91506139e38261397e565b604082019050919050565b5f6020820190508181035f830152613a05816139cc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613a66602383612d3e565b9150613a7182613a0c565b604082019050919050565b5f6020820190508181035f830152613a9381613a5a565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f613ace601683612d3e565b9150613ad982613a9a565b602082019050919050565b5f6020820190508181035f830152613afb81613ac2565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f613b5c603583612d3e565b9150613b6782613b02565b604082019050919050565b5f6020820190508181035f830152613b8981613b50565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f613bc4601383612d3e565b9150613bcf82613b90565b602082019050919050565b5f6020820190508181035f830152613bf181613bb8565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f613c52603683612d3e565b9150613c5d82613bf8565b604082019050919050565b5f6020820190508181035f830152613c7f81613c46565b9050919050565b5f613c9082612e3c565b9150613c9b83612e3c565b9250828203905081811115613cb357613cb26131bf565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f613d13602183612d3e565b9150613d1e82613cb9565b604082019050919050565b5f6020820190508181035f830152613d4081613d07565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f613da1602283612d3e565b9150613dac82613d47565b604082019050919050565b5f6020820190508181035f830152613dce81613d95565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613e09602083612d3e565b9150613e1482613dd5565b602082019050919050565b5f6020820190508181035f830152613e3681613dfd565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613ec981612e01565b82525050565b5f613eda8383613ec0565b60208301905092915050565b5f602082019050919050565b5f613efc82613e97565b613f068185613ea1565b9350613f1183613eb1565b805f5b83811015613f41578151613f288882613ecf565b9750613f3383613ee6565b925050600181019050613f14565b5085935050505092915050565b5f60a082019050613f615f830188612ee0565b613f6e60208301876135a1565b8181036040830152613f808186613ef2565b9050613f8f6060830185612fb7565b613f9c6080830184612ee0565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f614000602683612d3e565b915061400b82613fa6565b604082019050919050565b5f6020820190508181035f83015261402d81613ff4565b905091905056fea264697066735822122009c47c7ffe7abbe451270d87bf9f54ba53fdfde4e05f9572cb904b56d30a144064736f6c63430008180033
Deployed Bytecode Sourcemap
14528:9836:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9756:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10688:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10077:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10897:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15292:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14864:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9976:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11166:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17929:85;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15260:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14661:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22531:229;;;;;;;;;;;;;:::i;:::-;;18838:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23743:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14602:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23568:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15220:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10193:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;967:103;;;;;;;;;;;;;:::i;:::-;;18022:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;732:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9864:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18379:257;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11412:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10328:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23064:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23240:320;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18189:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22312:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15048:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16994:927;;;;;;;;;;;;;:::i;:::-;;10529:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22768:288;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15108:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1078:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14984:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15182:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9756:100;9810:13;9843:5;9836:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9756:100;:::o;10688:201::-;10771:4;10788:13;10804:12;:10;:12::i;:::-;10788:28;;10827:32;10836:5;10843:7;10852:6;10827:8;:32::i;:::-;10877:4;10870:11;;;10688:201;;;;:::o;10077:108::-;10138:7;10165:12;;10158:19;;10077:108;:::o;10897:261::-;10994:4;11011:15;11029:12;:10;:12::i;:::-;11011:30;;11052:38;11068:4;11074:7;11083:6;11052:15;:38::i;:::-;11101:27;11111:4;11117:2;11121:6;11101:9;:27::i;:::-;11146:4;11139:11;;;10897:261;;;;;:::o;15292:26::-;;;;:::o;14864:51::-;;;;:::o;9976:93::-;10034:5;10059:2;10052:9;;9976:93;:::o;11166:238::-;11254:4;11271:13;11287:12;:10;:12::i;:::-;11271:28;;11310:64;11319:5;11326:7;11363:10;11335:25;11345:5;11352:7;11335:9;:25::i;:::-;:38;;;;:::i;:::-;11310:8;:64::i;:::-;11392:4;11385:11;;;11166:238;;;;:::o;17929:85::-;17979:27;17985:12;:10;:12::i;:::-;17999:6;17979:5;:27::i;:::-;17929:85;:::o;15260:25::-;;;;:::o;14661:28::-;;;;;;;;;;;;;:::o;22531:229::-;22611:1;22587:21;:25;22579:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;22674:15;;;;;;;;;;;22658:31;;:12;:10;:12::i;:::-;:31;;;22650:40;;;;;;22709:10;22701:28;;:51;22730:21;22701:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22531:229::o;18838:126::-;18904:4;18928:19;:28;18948:7;18928:28;;;;;;;;;;;;;;;;;;;;;;;;;18921:35;;18838:126;;;:::o;23743:211::-;691:13;:11;:13::i;:::-;23843:2:::1;23832:7;:13;;:31;;;;;23861:2;23849:8;:14;;23832:31;23824:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;23910:7;23901:6;:16;;;;23938:8;23928:7;:18;;;;23743:211:::0;;:::o;14602:52::-;;;:::o;23568:167::-;23666:15;;;;;;;;;;;23650:31;;:12;:10;:12::i;:::-;:31;;;23642:40;;;;;;23711:16;23693:15;;:34;;;;;;;;;;;;;;;;;;23568:167;:::o;15220:31::-;;;;;;;;;;;;;:::o;10193:127::-;10267:7;10294:9;:18;10304:7;10294:18;;;;;;;;;;;;;;;;10287:25;;10193:127;;;:::o;967:103::-;691:13;:11;:13::i;:::-;1032:30:::1;1059:1;1032:18;:30::i;:::-;967:103::o:0;18022:159::-;691:13;:11;:13::i;:::-;18169:4:::1;18127:31;:39;18159:6;18127:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;18022:159:::0;;:::o;732:87::-;778:7;805:6;;;;;;;;;;;798:13;;732:87;:::o;9864:104::-;9920:13;9953:7;9946:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9864:104;:::o;18379:257::-;691:13;:11;:13::i;:::-;18501::::1;;;;;;;;;;;18493:21;;:4;:21;;::::0;18485:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18587:41;18616:4;18622:5;18587:28;:41::i;:::-;18379:257:::0;;:::o;11412:436::-;11505:4;11522:13;11538:12;:10;:12::i;:::-;11522:28;;11561:24;11588:25;11598:5;11605:7;11588:9;:25::i;:::-;11561:52;;11652:15;11632:16;:35;;11624:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11745:60;11754:5;11761:7;11789:15;11770:16;:34;11745:8;:60::i;:::-;11836:4;11829:11;;;;11412:436;;;;:::o;10328:193::-;10407:4;10424:13;10440:12;:10;:12::i;:::-;10424:28;;10463;10473:5;10480:2;10484:6;10463:9;:28::i;:::-;10509:4;10502:11;;;10328:193;;;;:::o;23064:168::-;23156:15;;;;;;;;;;;23140:31;;:12;:10;:12::i;:::-;:31;;;23132:40;;;;;;23215:8;23204:7;:20;;;;:::i;:::-;23183:18;:41;;;;23064:168;:::o;23240:320::-;23321:15;;;;;;;;;;;23305:31;;:12;:10;:12::i;:::-;:31;;;23297:40;;;;;;23348:25;23376:13;:11;:13::i;:::-;23348:41;;23400:23;23426:24;23444:4;23426:9;:24::i;:::-;23400:50;;23461:18;23510:3;23500:7;23482:15;:25;;;;:::i;:::-;:31;;;;:::i;:::-;23461:52;;23524:28;23541:10;23524:16;:28::i;:::-;23286:274;;;23240:320;:::o;18189:182::-;691:13;:11;:13::i;:::-;18305:8:::1;18274:19;:28;18294:7;18274:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18345:7;18329:34;;;18354:8;18329:34;;;;;;:::i;:::-;;;;;;;;18189:182:::0;;:::o;22312:211::-;691:13;:11;:13::i;:::-;22460:8:::1;22435:21;:34;;;;:::i;:::-;22412:20;:57;;;;22506:8;22492:10;:23;;;;:::i;:::-;22480:9;:35;;;;22312:211:::0;;:::o;15048:47::-;;;;:::o;16994:927::-;691:13;:11;:13::i;:::-;17058:11:::1;;;;;;;;;;;17057:12;17049:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;17206:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17188:56;;;17253:4;17260:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17188:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17172:13;;:112;;;;;;;;;;;;;;;;;;17295:55;17329:13;;;;;;;;;;;17345:4;17295:25;:55::i;:::-;17361:58;17398:13;;;;;;;;;;;17414:4;17361:28;:58::i;:::-;17432:70;17449:4;17464:16;17483:18;;17432:8;:70::i;:::-;17513:16;:32;;;17553:21;17598:4;17618:24;17636:4;17618:9;:24::i;:::-;17657:1;17673::::0;17689:42:::1;17746:15;17513:259;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17790:13;;;;;;;;;;;17783:29;;;17821:16;17840:14;17783:72;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17880:4;17866:11;;:18;;;;;;;;;;;;;;;;;;17909:4;17895:11;;:18;;;;;;;;;;;;;;;;;;16994:927::o:0;10529:151::-;10618:7;10645:11;:18;10657:5;10645:18;;;;;;;;;;;;;;;:27;10664:7;10645:27;;;;;;;;;;;;;;;;10638:34;;10529:151;;;;:::o;22768:288::-;22854:15;;;;;;;;;;;22838:31;;:12;:10;:12::i;:::-;:31;;;22830:40;;;;;;22933:1;22896:8;22889:26;;;22924:4;22889:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;22881:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;22975:8;22968:25;;;22994:10;23013:8;23006:26;;;23041:4;23006:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22968:80;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22768:288;:::o;15108:65::-;;;;:::o;1078:201::-;691:13;:11;:13::i;:::-;1187:1:::1;1167:22;;:8;:22;;::::0;1159:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1243:28;1262:8;1243:18;:28::i;:::-;1078:201:::0;:::o;14984:57::-;;;;:::o;15182:31::-;;;;;;;;;;;;;:::o;205:98::-;258:7;285:10;278:17;;205:98;:::o;13551:346::-;13670:1;13653:19;;:5;:19;;;13645:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13751:1;13732:21;;:7;:21;;;13724:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13835:6;13805:11;:18;13817:5;13805:18;;;;;;;;;;;;;;;:27;13824:7;13805:27;;;;;;;;;;;;;;;:36;;;;13873:7;13857:32;;13866:5;13857:32;;;13882:6;13857:32;;;;;;:::i;:::-;;;;;;;;13551:346;;;:::o;13905:419::-;14006:24;14033:25;14043:5;14050:7;14033:9;:25::i;:::-;14006:52;;14093:17;14073:16;:37;14069:248;;14155:6;14135:16;:26;;14127:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14239:51;14248:5;14255:7;14283:6;14264:16;:25;14239:8;:51::i;:::-;14069:248;13995:329;13905:419;;;:::o;18972:2848::-;19086:1;19070:18;;:4;:18;;;19062:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19163:1;19149:16;;:2;:16;;;19141:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19232:1;19222:6;:11;19218:93;;19250:28;19266:4;19272:2;19276:1;19250:15;:28::i;:::-;19293:7;;19218:93;19335:7;:5;:7::i;:::-;19327:15;;:4;:15;;;;:32;;;;;19352:7;:5;:7::i;:::-;19346:13;;:2;:13;;;;19327:32;:52;;;;;19377:1;19363:16;;:2;:16;;;;19327:52;:77;;;;;19397:6;19383:21;;:2;:21;;;;19327:77;:90;;;;;19409:8;;;;;;;;;;;19408:9;19327:90;19323:1292;;;19539:11;;;;;;;;;;;19534:140;;19579:19;:25;19599:4;19579:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;19608:19;:23;19628:2;19608:23;;;;;;;;;;;;;;;;;;;;;;;;;19579:52;19571:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;19534:140;19747:25;:31;19773:4;19747:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;19783:31;:35;19815:2;19783:35;;;;;;;;;;;;;;;;;;;;;;;;;19782:36;19747:71;19743:861;;;19857:20;;19847:6;:30;;19839:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;19988:9;;19971:13;19981:2;19971:9;:13::i;:::-;19962:6;:22;;;;:::i;:::-;:35;;19954:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19743:861;;;20178:25;:29;20204:2;20178:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;20212:31;:37;20244:4;20212:37;;;;;;;;;;;;;;;;;;;;;;;;;20211:38;20178:71;20174:430;;;20288:20;;20278:6;:30;;20270:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;20174:430;;;20465:31;:35;20497:2;20465:35;;;;;;;;;;;;;;;;;;;;;;;;;20460:144;;20555:9;;20538:13;20548:2;20538:9;:13::i;:::-;20529:6;:22;;;;:::i;:::-;:35;;20521:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20460:144;20174:430;19743:861;19323:1292;20674:28;20705:24;20723:4;20705:9;:24::i;:::-;20674:55;;20740:12;20778:18;;20755:20;:41;20740:56;;20811:7;:22;;;;;20822:11;;;;;;;;;;;20811:22;:35;;;;;20838:8;;;;;;;;;;;20837:9;20811:35;:71;;;;;20851:25;:31;20877:4;20851:31;;;;;;;;;;;;;;;;;;;;;;;;;20850:32;20811:71;:101;;;;;20887:19;:25;20907:4;20887:25;;;;;;;;;;;;;;;;;;;;;;;;;20886:26;20811:101;:129;;;;;20917:19;:23;20937:2;20917:23;;;;;;;;;;;;;;;;;;;;;;;;;20916:24;20811:129;20807:233;;;20968:4;20957:8;;:15;;;;;;;;;;;;;;;;;;20987:10;:8;:10::i;:::-;21023:5;21012:8;;:16;;;;;;;;;;;;;;;;;;20807:233;21146:12;21162:8;;;;;;;;;;;21161:9;:39;;;;;21175:19;:25;21195:4;21175:25;;;;;;;;;;;;;;;;;;;;;;;;;21174:26;21161:39;:67;;;;;21205:19;:23;21225:2;21205:23;;;;;;;;;;;;;;;;;;;;;;;;;21204:24;21161:67;21146:82;;21241:12;21272:7;21268:501;;;21345:25;:29;21371:2;21345:29;;;;;;;;;;;;;;;;;;;;;;;;;21341:279;;;21402:28;21426:3;21402:19;21413:7;;21402:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;21395:35;;21341:279;;;21518:25;:31;21544:4;21518:31;;;;;;;;;;;;;;;;;;;;;;;;;21515:105;;;21577:27;21600:3;21577:18;21588:6;;21577;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;21570:34;;21515:105;21341:279;21649:1;21642:4;:8;21638:91;;;21671:42;21687:4;21701;21708;21671:15;:42::i;:::-;21638:91;21753:4;21743:14;;;;;:::i;:::-;;;21268:501;21779:33;21795:4;21801:2;21805:6;21779:15;:33::i;:::-;19051:2769;;;;18972:2848;;;;:::o;12948:595::-;13051:1;13032:21;;:7;:21;;;13024:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13104:49;13125:7;13142:1;13146:6;13104:20;:49::i;:::-;13166:22;13191:9;:18;13201:7;13191:18;;;;;;;;;;;;;;;;13166:43;;13246:6;13228:14;:24;;13220:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13365:6;13348:14;:23;13327:9;:18;13337:7;13327:18;;;;;;;;;;;;;;;:44;;;;13402:6;13386:12;;:22;;;;;;;;;;;13463:1;13437:37;;13446:7;13437:37;;;13467:6;13437:37;;;;;;:::i;:::-;;;;;;;;13487:48;13507:7;13524:1;13528:6;13487:19;:48::i;:::-;13013:530;12948:595;;:::o;827:132::-;902:12;:10;:12::i;:::-;891:23;;:7;:5;:7::i;:::-;:23;;;883:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;827:132::o;1287:191::-;1361:16;1380:6;;;;;;;;;;;1361:25;;1406:8;1397:6;;:17;;;;;;;;;;;;;;;;;;1461:8;1430:40;;1451:8;1430:40;;;;;;;;;;;;1350:128;1287:191;:::o;18644:186::-;18761:5;18727:25;:31;18753:4;18727:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18816:5;18782:40;;18810:4;18782:40;;;;;;;;;;;;18644:186;;:::o;21828:476::-;21894:21;21932:1;21918:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21894:40;;21963:4;21945;21950:1;21945:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;21989:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21979:4;21984:1;21979:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;22023:63;22040:4;22055:16;22074:11;22023:8;:63::i;:::-;22097:16;:67;;;22179:11;22205:1;22221:4;22240:15;;;;;;;;;;;22270;22097:199;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21883:421;21828:476;:::o;11856:641::-;11969:1;11953:18;;:4;:18;;;11945:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12046:1;12032:16;;:2;:16;;;12024:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12101:38;12122:4;12128:2;12132:6;12101:20;:38::i;:::-;12152:19;12174:9;:15;12184:4;12174:15;;;;;;;;;;;;;;;;12152:37;;12223:6;12208:11;:21;;12200:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12340:6;12326:11;:20;12308:9;:15;12318:4;12308:15;;;;;;;;;;;;;;;:38;;;;12378:6;12361:9;:13;12371:2;12361:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;12428:2;12413:26;;12422:4;12413:26;;;12432:6;12413:26;;;;;;:::i;:::-;;;;;;;;12452:37;12472:4;12478:2;12482:6;12452:19;:37::i;:::-;11934:563;11856:641;;;:::o;23962:399::-;24001:23;24027:24;24045:4;24027:9;:24::i;:::-;24001:50;;24085:1;24066:15;:20;24062:91;;24135:7;;;24062:91;24165:20;24188:15;24165:38;;24233:18;;24218:12;:33;24214:99;;;24283:18;;24268:33;;24214:99;24323:30;24340:12;24323:16;:30::i;:::-;23990:371;;23962:399;:::o;8213:98::-;8271:7;8302:1;8298;:5;;;;:::i;:::-;8291:12;;8213:98;;;;:::o;8319:::-;8377:7;8408:1;8404;:5;;;;:::i;:::-;8397:12;;8319:98;;;;:::o;14332:91::-;;;;:::o;14431:90::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:329::-;5599:6;5648:2;5636:9;5627:7;5623:23;5619:32;5616:119;;;5654:79;;:::i;:::-;5616:119;5774:1;5799:53;5844:7;5835:6;5824:9;5820:22;5799:53;:::i;:::-;5789:63;;5745:117;5540:329;;;;:::o;5875:474::-;5943:6;5951;6000:2;5988:9;5979:7;5975:23;5971:32;5968:119;;;6006:79;;:::i;:::-;5968:119;6126:1;6151:53;6196:7;6187:6;6176:9;6172:22;6151:53;:::i;:::-;6141:63;;6097:117;6253:2;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6224:118;5875:474;;;;;:::o;6355:60::-;6383:3;6404:5;6397:12;;6355:60;;;:::o;6421:142::-;6471:9;6504:53;6522:34;6531:24;6549:5;6531:24;:::i;:::-;6522:34;:::i;:::-;6504:53;:::i;:::-;6491:66;;6421:142;;;:::o;6569:126::-;6619:9;6652:37;6683:5;6652:37;:::i;:::-;6639:50;;6569:126;;;:::o;6701:152::-;6777:9;6810:37;6841:5;6810:37;:::i;:::-;6797:50;;6701:152;;;:::o;6859:183::-;6972:63;7029:5;6972:63;:::i;:::-;6967:3;6960:76;6859:183;;:::o;7048:274::-;7167:4;7205:2;7194:9;7190:18;7182:26;;7218:97;7312:1;7301:9;7297:17;7288:6;7218:97;:::i;:::-;7048:274;;;;:::o;7328:116::-;7398:21;7413:5;7398:21;:::i;:::-;7391:5;7388:32;7378:60;;7434:1;7431;7424:12;7378:60;7328:116;:::o;7450:133::-;7493:5;7531:6;7518:20;7509:29;;7547:30;7571:5;7547:30;:::i;:::-;7450:133;;;;:::o;7589:468::-;7654:6;7662;7711:2;7699:9;7690:7;7686:23;7682:32;7679:119;;;7717:79;;:::i;:::-;7679:119;7837:1;7862:53;7907:7;7898:6;7887:9;7883:22;7862:53;:::i;:::-;7852:63;;7808:117;7964:2;7990:50;8032:7;8023:6;8012:9;8008:22;7990:50;:::i;:::-;7980:60;;7935:115;7589:468;;;;;:::o;8063:474::-;8131:6;8139;8188:2;8176:9;8167:7;8163:23;8159:32;8156:119;;;8194:79;;:::i;:::-;8156:119;8314:1;8339:53;8384:7;8375:6;8364:9;8360:22;8339:53;:::i;:::-;8329:63;;8285:117;8441:2;8467:53;8512:7;8503:6;8492:9;8488:22;8467:53;:::i;:::-;8457:63;;8412:118;8063:474;;;;;:::o;8543:180::-;8591:77;8588:1;8581:88;8688:4;8685:1;8678:15;8712:4;8709:1;8702:15;8729:320;8773:6;8810:1;8804:4;8800:12;8790:22;;8857:1;8851:4;8847:12;8878:18;8868:81;;8934:4;8926:6;8922:17;8912:27;;8868:81;8996:2;8988:6;8985:14;8965:18;8962:38;8959:84;;9015:18;;:::i;:::-;8959:84;8780:269;8729:320;;;:::o;9055:180::-;9103:77;9100:1;9093:88;9200:4;9197:1;9190:15;9224:4;9221:1;9214:15;9241:191;9281:3;9300:20;9318:1;9300:20;:::i;:::-;9295:25;;9334:20;9352:1;9334:20;:::i;:::-;9329:25;;9377:1;9374;9370:9;9363:16;;9398:3;9395:1;9392:10;9389:36;;;9405:18;;:::i;:::-;9389:36;9241:191;;;;:::o;9438:172::-;9578:24;9574:1;9566:6;9562:14;9555:48;9438:172;:::o;9616:366::-;9758:3;9779:67;9843:2;9838:3;9779:67;:::i;:::-;9772:74;;9855:93;9944:3;9855:93;:::i;:::-;9973:2;9968:3;9964:12;9957:19;;9616:366;;;:::o;9988:419::-;10154:4;10192:2;10181:9;10177:18;10169:26;;10241:9;10235:4;10231:20;10227:1;10216:9;10212:17;10205:47;10269:131;10395:4;10269:131;:::i;:::-;10261:139;;9988:419;;;:::o;10413:172::-;10553:24;10549:1;10541:6;10537:14;10530:48;10413:172;:::o;10591:366::-;10733:3;10754:67;10818:2;10813:3;10754:67;:::i;:::-;10747:74;;10830:93;10919:3;10830:93;:::i;:::-;10948:2;10943:3;10939:12;10932:19;;10591:366;;;:::o;10963:419::-;11129:4;11167:2;11156:9;11152:18;11144:26;;11216:9;11210:4;11206:20;11202:1;11191:9;11187:17;11180:47;11244:131;11370:4;11244:131;:::i;:::-;11236:139;;10963:419;;;:::o;11388:244::-;11528:34;11524:1;11516:6;11512:14;11505:58;11597:27;11592:2;11584:6;11580:15;11573:52;11388:244;:::o;11638:366::-;11780:3;11801:67;11865:2;11860:3;11801:67;:::i;:::-;11794:74;;11877:93;11966:3;11877:93;:::i;:::-;11995:2;11990:3;11986:12;11979:19;;11638:366;;;:::o;12010:419::-;12176:4;12214:2;12203:9;12199:18;12191:26;;12263:9;12257:4;12253:20;12249:1;12238:9;12234:17;12227:47;12291:131;12417:4;12291:131;:::i;:::-;12283:139;;12010:419;;;:::o;12435:224::-;12575:34;12571:1;12563:6;12559:14;12552:58;12644:7;12639:2;12631:6;12627:15;12620:32;12435:224;:::o;12665:366::-;12807:3;12828:67;12892:2;12887:3;12828:67;:::i;:::-;12821:74;;12904:93;12993:3;12904:93;:::i;:::-;13022:2;13017:3;13013:12;13006:19;;12665:366;;;:::o;13037:419::-;13203:4;13241:2;13230:9;13226:18;13218:26;;13290:9;13284:4;13280:20;13276:1;13265:9;13261:17;13254:47;13318:131;13444:4;13318:131;:::i;:::-;13310:139;;13037:419;;;:::o;13462:410::-;13502:7;13525:20;13543:1;13525:20;:::i;:::-;13520:25;;13559:20;13577:1;13559:20;:::i;:::-;13554:25;;13614:1;13611;13607:9;13636:30;13654:11;13636:30;:::i;:::-;13625:41;;13815:1;13806:7;13802:15;13799:1;13796:22;13776:1;13769:9;13749:83;13726:139;;13845:18;;:::i;:::-;13726:139;13510:362;13462:410;;;;:::o;13878:180::-;13926:77;13923:1;13916:88;14023:4;14020:1;14013:15;14047:4;14044:1;14037:15;14064:185;14104:1;14121:20;14139:1;14121:20;:::i;:::-;14116:25;;14155:20;14173:1;14155:20;:::i;:::-;14150:25;;14194:1;14184:35;;14199:18;;:::i;:::-;14184:35;14241:1;14238;14234:9;14229:14;;14064:185;;;;:::o;14255:173::-;14395:25;14391:1;14383:6;14379:14;14372:49;14255:173;:::o;14434:366::-;14576:3;14597:67;14661:2;14656:3;14597:67;:::i;:::-;14590:74;;14673:93;14762:3;14673:93;:::i;:::-;14791:2;14786:3;14782:12;14775:19;;14434:366;;;:::o;14806:419::-;14972:4;15010:2;14999:9;14995:18;14987:26;;15059:9;15053:4;15049:20;15045:1;15034:9;15030:17;15023:47;15087:131;15213:4;15087:131;:::i;:::-;15079:139;;14806:419;;;:::o;15231:143::-;15288:5;15319:6;15313:13;15304:22;;15335:33;15362:5;15335:33;:::i;:::-;15231:143;;;;:::o;15380:351::-;15450:6;15499:2;15487:9;15478:7;15474:23;15470:32;15467:119;;;15505:79;;:::i;:::-;15467:119;15625:1;15650:64;15706:7;15697:6;15686:9;15682:22;15650:64;:::i;:::-;15640:74;;15596:128;15380:351;;;;:::o;15737:332::-;15858:4;15896:2;15885:9;15881:18;15873:26;;15909:71;15977:1;15966:9;15962:17;15953:6;15909:71;:::i;:::-;15990:72;16058:2;16047:9;16043:18;16034:6;15990:72;:::i;:::-;15737:332;;;;;:::o;16075:85::-;16120:7;16149:5;16138:16;;16075:85;;;:::o;16166:158::-;16224:9;16257:61;16275:42;16284:32;16310:5;16284:32;:::i;:::-;16275:42;:::i;:::-;16257:61;:::i;:::-;16244:74;;16166:158;;;:::o;16330:147::-;16425:45;16464:5;16425:45;:::i;:::-;16420:3;16413:58;16330:147;;:::o;16483:807::-;16732:4;16770:3;16759:9;16755:19;16747:27;;16784:71;16852:1;16841:9;16837:17;16828:6;16784:71;:::i;:::-;16865:72;16933:2;16922:9;16918:18;16909:6;16865:72;:::i;:::-;16947:80;17023:2;17012:9;17008:18;16999:6;16947:80;:::i;:::-;17037;17113:2;17102:9;17098:18;17089:6;17037:80;:::i;:::-;17127:73;17195:3;17184:9;17180:19;17171:6;17127:73;:::i;:::-;17210;17278:3;17267:9;17263:19;17254:6;17210:73;:::i;:::-;16483:807;;;;;;;;;:::o;17296:143::-;17353:5;17384:6;17378:13;17369:22;;17400:33;17427:5;17400:33;:::i;:::-;17296:143;;;;:::o;17445:663::-;17533:6;17541;17549;17598:2;17586:9;17577:7;17573:23;17569:32;17566:119;;;17604:79;;:::i;:::-;17566:119;17724:1;17749:64;17805:7;17796:6;17785:9;17781:22;17749:64;:::i;:::-;17739:74;;17695:128;17862:2;17888:64;17944:7;17935:6;17924:9;17920:22;17888:64;:::i;:::-;17878:74;;17833:129;18001:2;18027:64;18083:7;18074:6;18063:9;18059:22;18027:64;:::i;:::-;18017:74;;17972:129;17445:663;;;;;:::o;18114:332::-;18235:4;18273:2;18262:9;18258:18;18250:26;;18286:71;18354:1;18343:9;18339:17;18330:6;18286:71;:::i;:::-;18367:72;18435:2;18424:9;18420:18;18411:6;18367:72;:::i;:::-;18114:332;;;;;:::o;18452:137::-;18506:5;18537:6;18531:13;18522:22;;18553:30;18577:5;18553:30;:::i;:::-;18452:137;;;;:::o;18595:345::-;18662:6;18711:2;18699:9;18690:7;18686:23;18682:32;18679:119;;;18717:79;;:::i;:::-;18679:119;18837:1;18862:61;18915:7;18906:6;18895:9;18891:22;18862:61;:::i;:::-;18852:71;;18808:125;18595:345;;;;:::o;18946:351::-;19016:6;19065:2;19053:9;19044:7;19040:23;19036:32;19033:119;;;19071:79;;:::i;:::-;19033:119;19191:1;19216:64;19272:7;19263:6;19252:9;19248:22;19216:64;:::i;:::-;19206:74;;19162:128;18946:351;;;;:::o;19303:166::-;19443:18;19439:1;19431:6;19427:14;19420:42;19303:166;:::o;19475:366::-;19617:3;19638:67;19702:2;19697:3;19638:67;:::i;:::-;19631:74;;19714:93;19803:3;19714:93;:::i;:::-;19832:2;19827:3;19823:12;19816:19;;19475:366;;;:::o;19847:419::-;20013:4;20051:2;20040:9;20036:18;20028:26;;20100:9;20094:4;20090:20;20086:1;20075:9;20071:17;20064:47;20128:131;20254:4;20128:131;:::i;:::-;20120:139;;19847:419;;;:::o;20272:225::-;20412:34;20408:1;20400:6;20396:14;20389:58;20481:8;20476:2;20468:6;20464:15;20457:33;20272:225;:::o;20503:366::-;20645:3;20666:67;20730:2;20725:3;20666:67;:::i;:::-;20659:74;;20742:93;20831:3;20742:93;:::i;:::-;20860:2;20855:3;20851:12;20844:19;;20503:366;;;:::o;20875:419::-;21041:4;21079:2;21068:9;21064:18;21056:26;;21128:9;21122:4;21118:20;21114:1;21103:9;21099:17;21092:47;21156:131;21282:4;21156:131;:::i;:::-;21148:139;;20875:419;;;:::o;21300:223::-;21440:34;21436:1;21428:6;21424:14;21417:58;21509:6;21504:2;21496:6;21492:15;21485:31;21300:223;:::o;21529:366::-;21671:3;21692:67;21756:2;21751:3;21692:67;:::i;:::-;21685:74;;21768:93;21857:3;21768:93;:::i;:::-;21886:2;21881:3;21877:12;21870:19;;21529:366;;;:::o;21901:419::-;22067:4;22105:2;22094:9;22090:18;22082:26;;22154:9;22148:4;22144:20;22140:1;22129:9;22125:17;22118:47;22182:131;22308:4;22182:131;:::i;:::-;22174:139;;21901:419;;;:::o;22326:221::-;22466:34;22462:1;22454:6;22450:14;22443:58;22535:4;22530:2;22522:6;22518:15;22511:29;22326:221;:::o;22553:366::-;22695:3;22716:67;22780:2;22775:3;22716:67;:::i;:::-;22709:74;;22792:93;22881:3;22792:93;:::i;:::-;22910:2;22905:3;22901:12;22894:19;;22553:366;;;:::o;22925:419::-;23091:4;23129:2;23118:9;23114:18;23106:26;;23178:9;23172:4;23168:20;23164:1;23153:9;23149:17;23142:47;23206:131;23332:4;23206:131;:::i;:::-;23198:139;;22925:419;;;:::o;23350:179::-;23490:31;23486:1;23478:6;23474:14;23467:55;23350:179;:::o;23535:366::-;23677:3;23698:67;23762:2;23757:3;23698:67;:::i;:::-;23691:74;;23774:93;23863:3;23774:93;:::i;:::-;23892:2;23887:3;23883:12;23876:19;;23535:366;;;:::o;23907:419::-;24073:4;24111:2;24100:9;24096:18;24088:26;;24160:9;24154:4;24150:20;24146:1;24135:9;24131:17;24124:47;24188:131;24314:4;24188:131;:::i;:::-;24180:139;;23907:419;;;:::o;24332:224::-;24472:34;24468:1;24460:6;24456:14;24449:58;24541:7;24536:2;24528:6;24524:15;24517:32;24332:224;:::o;24562:366::-;24704:3;24725:67;24789:2;24784:3;24725:67;:::i;:::-;24718:74;;24801:93;24890:3;24801:93;:::i;:::-;24919:2;24914:3;24910:12;24903:19;;24562:366;;;:::o;24934:419::-;25100:4;25138:2;25127:9;25123:18;25115:26;;25187:9;25181:4;25177:20;25173:1;25162:9;25158:17;25151:47;25215:131;25341:4;25215:131;:::i;:::-;25207:139;;24934:419;;;:::o;25359:222::-;25499:34;25495:1;25487:6;25483:14;25476:58;25568:5;25563:2;25555:6;25551:15;25544:30;25359:222;:::o;25587:366::-;25729:3;25750:67;25814:2;25809:3;25750:67;:::i;:::-;25743:74;;25826:93;25915:3;25826:93;:::i;:::-;25944:2;25939:3;25935:12;25928:19;;25587:366;;;:::o;25959:419::-;26125:4;26163:2;26152:9;26148:18;26140:26;;26212:9;26206:4;26202:20;26198:1;26187:9;26183:17;26176:47;26240:131;26366:4;26240:131;:::i;:::-;26232:139;;25959:419;;;:::o;26384:172::-;26524:24;26520:1;26512:6;26508:14;26501:48;26384:172;:::o;26562:366::-;26704:3;26725:67;26789:2;26784:3;26725:67;:::i;:::-;26718:74;;26801:93;26890:3;26801:93;:::i;:::-;26919:2;26914:3;26910:12;26903:19;;26562:366;;;:::o;26934:419::-;27100:4;27138:2;27127:9;27123:18;27115:26;;27187:9;27181:4;27177:20;27173:1;27162:9;27158:17;27151:47;27215:131;27341:4;27215:131;:::i;:::-;27207:139;;26934:419;;;:::o;27359:240::-;27499:34;27495:1;27487:6;27483:14;27476:58;27568:23;27563:2;27555:6;27551:15;27544:48;27359:240;:::o;27605:366::-;27747:3;27768:67;27832:2;27827:3;27768:67;:::i;:::-;27761:74;;27844:93;27933:3;27844:93;:::i;:::-;27962:2;27957:3;27953:12;27946:19;;27605:366;;;:::o;27977:419::-;28143:4;28181:2;28170:9;28166:18;28158:26;;28230:9;28224:4;28220:20;28216:1;28205:9;28201:17;28194:47;28258:131;28384:4;28258:131;:::i;:::-;28250:139;;27977:419;;;:::o;28402:169::-;28542:21;28538:1;28530:6;28526:14;28519:45;28402:169;:::o;28577:366::-;28719:3;28740:67;28804:2;28799:3;28740:67;:::i;:::-;28733:74;;28816:93;28905:3;28816:93;:::i;:::-;28934:2;28929:3;28925:12;28918:19;;28577:366;;;:::o;28949:419::-;29115:4;29153:2;29142:9;29138:18;29130:26;;29202:9;29196:4;29192:20;29188:1;29177:9;29173:17;29166:47;29230:131;29356:4;29230:131;:::i;:::-;29222:139;;28949:419;;;:::o;29374:241::-;29514:34;29510:1;29502:6;29498:14;29491:58;29583:24;29578:2;29570:6;29566:15;29559:49;29374:241;:::o;29621:366::-;29763:3;29784:67;29848:2;29843:3;29784:67;:::i;:::-;29777:74;;29860:93;29949:3;29860:93;:::i;:::-;29978:2;29973:3;29969:12;29962:19;;29621:366;;;:::o;29993:419::-;30159:4;30197:2;30186:9;30182:18;30174:26;;30246:9;30240:4;30236:20;30232:1;30221:9;30217:17;30210:47;30274:131;30400:4;30274:131;:::i;:::-;30266:139;;29993:419;;;:::o;30418:194::-;30458:4;30478:20;30496:1;30478:20;:::i;:::-;30473:25;;30512:20;30530:1;30512:20;:::i;:::-;30507:25;;30556:1;30553;30549:9;30541:17;;30580:1;30574:4;30571:11;30568:37;;;30585:18;;:::i;:::-;30568:37;30418:194;;;;:::o;30618:220::-;30758:34;30754:1;30746:6;30742:14;30735:58;30827:3;30822:2;30814:6;30810:15;30803:28;30618:220;:::o;30844:366::-;30986:3;31007:67;31071:2;31066:3;31007:67;:::i;:::-;31000:74;;31083:93;31172:3;31083:93;:::i;:::-;31201:2;31196:3;31192:12;31185:19;;30844:366;;;:::o;31216:419::-;31382:4;31420:2;31409:9;31405:18;31397:26;;31469:9;31463:4;31459:20;31455:1;31444:9;31440:17;31433:47;31497:131;31623:4;31497:131;:::i;:::-;31489:139;;31216:419;;;:::o;31641:221::-;31781:34;31777:1;31769:6;31765:14;31758:58;31850:4;31845:2;31837:6;31833:15;31826:29;31641:221;:::o;31868:366::-;32010:3;32031:67;32095:2;32090:3;32031:67;:::i;:::-;32024:74;;32107:93;32196:3;32107:93;:::i;:::-;32225:2;32220:3;32216:12;32209:19;;31868:366;;;:::o;32240:419::-;32406:4;32444:2;32433:9;32429:18;32421:26;;32493:9;32487:4;32483:20;32479:1;32468:9;32464:17;32457:47;32521:131;32647:4;32521:131;:::i;:::-;32513:139;;32240:419;;;:::o;32665:182::-;32805:34;32801:1;32793:6;32789:14;32782:58;32665:182;:::o;32853:366::-;32995:3;33016:67;33080:2;33075:3;33016:67;:::i;:::-;33009:74;;33092:93;33181:3;33092:93;:::i;:::-;33210:2;33205:3;33201:12;33194:19;;32853:366;;;:::o;33225:419::-;33391:4;33429:2;33418:9;33414:18;33406:26;;33478:9;33472:4;33468:20;33464:1;33453:9;33449:17;33442:47;33506:131;33632:4;33506:131;:::i;:::-;33498:139;;33225:419;;;:::o;33650:180::-;33698:77;33695:1;33688:88;33795:4;33792:1;33785:15;33819:4;33816:1;33809:15;33836:180;33884:77;33881:1;33874:88;33981:4;33978:1;33971:15;34005:4;34002:1;33995:15;34022:114;34089:6;34123:5;34117:12;34107:22;;34022:114;;;:::o;34142:184::-;34241:11;34275:6;34270:3;34263:19;34315:4;34310:3;34306:14;34291:29;;34142:184;;;;:::o;34332:132::-;34399:4;34422:3;34414:11;;34452:4;34447:3;34443:14;34435:22;;34332:132;;;:::o;34470:108::-;34547:24;34565:5;34547:24;:::i;:::-;34542:3;34535:37;34470:108;;:::o;34584:179::-;34653:10;34674:46;34716:3;34708:6;34674:46;:::i;:::-;34752:4;34747:3;34743:14;34729:28;;34584:179;;;;:::o;34769:113::-;34839:4;34871;34866:3;34862:14;34854:22;;34769:113;;;:::o;34918:732::-;35037:3;35066:54;35114:5;35066:54;:::i;:::-;35136:86;35215:6;35210:3;35136:86;:::i;:::-;35129:93;;35246:56;35296:5;35246:56;:::i;:::-;35325:7;35356:1;35341:284;35366:6;35363:1;35360:13;35341:284;;;35442:6;35436:13;35469:63;35528:3;35513:13;35469:63;:::i;:::-;35462:70;;35555:60;35608:6;35555:60;:::i;:::-;35545:70;;35401:224;35388:1;35385;35381:9;35376:14;;35341:284;;;35345:14;35641:3;35634:10;;35042:608;;;34918:732;;;;:::o;35656:831::-;35919:4;35957:3;35946:9;35942:19;35934:27;;35971:71;36039:1;36028:9;36024:17;36015:6;35971:71;:::i;:::-;36052:80;36128:2;36117:9;36113:18;36104:6;36052:80;:::i;:::-;36179:9;36173:4;36169:20;36164:2;36153:9;36149:18;36142:48;36207:108;36310:4;36301:6;36207:108;:::i;:::-;36199:116;;36325:72;36393:2;36382:9;36378:18;36369:6;36325:72;:::i;:::-;36407:73;36475:3;36464:9;36460:19;36451:6;36407:73;:::i;:::-;35656:831;;;;;;;;:::o;36493:225::-;36633:34;36629:1;36621:6;36617:14;36610:58;36702:8;36697:2;36689:6;36685:15;36678:33;36493:225;:::o;36724:366::-;36866:3;36887:67;36951:2;36946:3;36887:67;:::i;:::-;36880:74;;36963:93;37052:3;36963:93;:::i;:::-;37081:2;37076:3;37072:12;37065:19;;36724:366;;;:::o;37096:419::-;37262:4;37300:2;37289:9;37285:18;37277:26;;37349:9;37343:4;37339:20;37335:1;37324:9;37320:17;37313:47;37377:131;37503:4;37377:131;:::i;:::-;37369:139;;37096:419;;;:::o
Swarm Source
ipfs://09c47c7ffe7abbe451270d87bf9f54ba53fdfde4e05f9572cb904b56d30a1440
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.