ERC-20
Overview
Max Total Supply
1,000,000,000,000 FROGEX
Holders
32
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
1,258,700,621.718317474 FROGEXValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
FROGEX
Compiler Version
v0.8.22+commit.4fc1097e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-11-24 */ // SPDX-License-Identifier: UNLICENSED /* FROGEX WEB: https://frogextoken.xyz/ TWITTER: https://twitter.com/FROGEXtoken TG: https://t.me/frogextoken */ pragma solidity 0.8.22; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract FROGEX is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping(address => uint256) private _holderLastTransferTimestamp; bool public transferDelayEnabled = true; mapping(address => uint256) private cooldownTimer; bool public buyCooldownEnabled = true; uint8 public cooldownTimerInterval = 1; address payable _devWallet; uint256 private _initialBuyTax = 18; uint256 private _initialSellTax = 18; uint256 private _finalBuyTax = 0; uint256 private _finalSellTax = 0; uint256 private _reduceBuyTaxAt = 18; uint256 private _reduceSellTaxAt = 18; uint256 private _preventSwapBefore = 18; uint256 private _buyCount = 0; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 1000000000000 * 10 **_decimals; string private constant _name = unicode"FROGE X"; string private constant _symbol = unicode"FROGEX"; uint256 public _maxTxAmount = 2 * _tTotal / 100; uint256 public _maxWalletSize = 2 * _tTotal / 100; uint256 public _taxSwapThreshold = _tTotal / 1000000; uint256 public _maxTaxSwap= 2 * _tTotal / 100; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; event MaxTxAmountUpdated(uint _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _devWallet = payable(_msgSender()); _balances[_msgSender()] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_devWallet] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); uint256 taxAmount = 0; if (from != owner() && to != owner()) { taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); if (transferDelayEnabled) { if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) { require(_holderLastTransferTimestamp[tx.origin] < block.number, "_transfer:: Transfer Delay enabled. Only one purchase per block allowed."); _holderLastTransferTimestamp[tx.origin] = block.number; } } if (from == uniswapV2Pair && buyCooldownEnabled && ! _isExcludedFromFee[to]) { require(cooldownTimer[to] < block.timestamp, "buy Cooldown exists"); cooldownTimer[to] = block.timestamp + cooldownTimerInterval; } if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); _buyCount++; } if(to == uniswapV2Pair && from!= address(this) ){ taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) { swapTokensForEth(min(amount, min(contractTokenBalance,_maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } if(taxAmount>0) { _balances[address(this)]=_balances[address(this)].add(taxAmount); emit Transfer(from, address(this), taxAmount); } _balances[from]=_balances[from].sub(amount); _balances[to]=_balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); } function min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function removeLimits() external onlyOwner { _maxTxAmount = _tTotal; _maxWalletSize = _tTotal; emit MaxTxAmountUpdated(_tTotal); } function openTrading() external onlyOwner() { require(!tradingOpen, "Trading is already open"); uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); swapEnabled = true; tradingOpen = true; } function sendETHToFee(uint256 amount) private { _devWallet.transfer(amount); } receive() external payable {} function manualSwap() external { require(_msgSender()==_devWallet); uint256 tokenBalance=balanceOf(address(this)); if(tokenBalance>0){ swapTokensForEth(tokenBalance); } uint256 ethBalance=address(this).balance; if(ethBalance>0){ sendETHToFee(ethBalance); } } function transferETHToDev() external onlyOwner() { require(address(this).balance > 0, "No ETH to transfer"); _devWallet.transfer(address(this).balance); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyCooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cooldownTimerInterval","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"transferETHToDev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600160055f6101000a81548160ff021916908315150217905550600160075f6101000a81548160ff0219169083151502179055506001600760016101000a81548160ff021916908360ff160217905550601260085560126009555f600a555f600b556012600c556012600d556012600e555f600f5560646009600a6200008b9190620006ad565b64e8d4a510006200009d9190620006fd565b6002620000ab9190620006fd565b620000b7919062000774565b60105560646009600a620000cc9190620006ad565b64e8d4a51000620000de9190620006fd565b6002620000ec9190620006fd565b620000f8919062000774565b601155620f42406009600a6200010f9190620006ad565b64e8d4a51000620001219190620006fd565b6200012d919062000774565b60125560646009600a620001429190620006ad565b64e8d4a51000620001549190620006fd565b6002620001629190620006fd565b6200016e919062000774565b6013555f6015806101000a81548160ff0219169083151502179055505f601560166101000a81548160ff021916908315150217905550348015620001b0575f80fd5b505f620001c2620004ed60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506200026e620004ed60201b60201c565b600760026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620002be9190620006ad565b64e8d4a51000620002d09190620006fd565b60015f620002e3620004ed60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f62000335620004f460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600760029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555062000460620004ed60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a620004be9190620006ad565b64e8d4a51000620004d09190620006fd565b604051620004df9190620007bc565b60405180910390a3620007d7565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620005a5578086048111156200057d576200057c6200051b565b5b60018516156200058d5780820291505b80810290506200059d8562000548565b94506200055d565b94509492505050565b5f82620005bf576001905062000691565b81620005ce575f905062000691565b8160018114620005e75760028114620005f25762000628565b600191505062000691565b60ff8411156200060757620006066200051b565b5b8360020a9150848211156200062157620006206200051b565b5b5062000691565b5060208310610133831016604e8410600b8410161715620006625782820a9050838111156200065c576200065b6200051b565b5b62000691565b62000671848484600162000554565b925090508184048111156200068b576200068a6200051b565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620006b98262000698565b9150620006c683620006a1565b9250620006f57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620005ae565b905092915050565b5f620007098262000698565b9150620007168362000698565b9250828202620007268162000698565b9150828204841483151762000740576200073f6200051b565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620007808262000698565b91506200078d8362000698565b925082620007a0576200079f62000747565b5b828204905092915050565b620007b68162000698565b82525050565b5f602082019050620007d15f830184620007ab565b92915050565b61339680620007e55f395ff3fe608060405260043610610138575f3560e01c8063722b62ad116100aa57806395d89b411161006e57806395d89b41146103c9578063a9059cbb146103f3578063bf474bed1461042f578063c876d0b914610459578063c9567bf914610483578063dd62ed3e146104995761013f565b8063722b62ad1461030b578063751039fc146103355780637d1db4a51461034b5780638da5cb5b146103755780638f9a55c01461039f5761013f565b8063313ce567116100fc578063313ce5671461023957806351bc3c8514610263578063617fe0ed14610279578063692cda7a146102a357806370a08231146102b9578063715018a6146102f55761013f565b806306fdde0314610143578063095ea7b31461016d5780630faee56f146101a957806318160ddd146101d357806323b872dd146101fd5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104d5565b60405161016491906123b8565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e9190612469565b610512565b6040516101a091906124c1565b60405180910390f35b3480156101b4575f80fd5b506101bd61052f565b6040516101ca91906124e9565b60405180910390f35b3480156101de575f80fd5b506101e7610535565b6040516101f491906124e9565b60405180910390f35b348015610208575f80fd5b50610223600480360381019061021e9190612502565b610559565b60405161023091906124c1565b60405180910390f35b348015610244575f80fd5b5061024d61062d565b60405161025a919061256d565b60405180910390f35b34801561026e575f80fd5b50610277610635565b005b348015610284575f80fd5b5061028d6106cd565b60405161029a91906124c1565b60405180910390f35b3480156102ae575f80fd5b506102b76106df565b005b3480156102c4575f80fd5b506102df60048036038101906102da9190612586565b61081d565b6040516102ec91906124e9565b60405180910390f35b348015610300575f80fd5b50610309610863565b005b348015610316575f80fd5b5061031f6109b1565b60405161032c919061256d565b60405180910390f35b348015610340575f80fd5b506103496109c4565b005b348015610356575f80fd5b5061035f610af6565b60405161036c91906124e9565b60405180910390f35b348015610380575f80fd5b50610389610afc565b60405161039691906125c0565b60405180910390f35b3480156103aa575f80fd5b506103b3610b23565b6040516103c091906124e9565b60405180910390f35b3480156103d4575f80fd5b506103dd610b29565b6040516103ea91906123b8565b60405180910390f35b3480156103fe575f80fd5b5061041960048036038101906104149190612469565b610b66565b60405161042691906124c1565b60405180910390f35b34801561043a575f80fd5b50610443610b83565b60405161045091906124e9565b60405180910390f35b348015610464575f80fd5b5061046d610b89565b60405161047a91906124c1565b60405180910390f35b34801561048e575f80fd5b50610497610b9b565b005b3480156104a4575f80fd5b506104bf60048036038101906104ba91906125d9565b6110be565b6040516104cc91906124e9565b60405180910390f35b60606040518060400160405280600781526020017f46524f4745205800000000000000000000000000000000000000000000000000815250905090565b5f61052561051e611140565b8484611147565b6001905092915050565b60135481565b5f6009600a6105449190612773565b64e8d4a5100061055491906127bd565b905090565b5f61056584848461130a565b61062284610571611140565b61061d856040518060600160405280602881526020016133396028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105d4611140565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e1b9092919063ffffffff16565b611147565b600190509392505050565b5f6009905090565b600760029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610676611140565b73ffffffffffffffffffffffffffffffffffffffff1614610695575f80fd5b5f61069f3061081d565b90505f8111156106b3576106b281611e7d565b5b5f4790505f8111156106c9576106c8816120e6565b5b5050565b60075f9054906101000a900460ff1681565b6106e7611140565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610773576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076a90612848565b60405180910390fd5b5f47116107b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ac906128b0565b60405180910390fd5b600760029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f1935050505015801561081a573d5f803e3d5ffd5b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61086b611140565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ee90612848565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600760019054906101000a900460ff1681565b6109cc611140565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4f90612848565b60405180910390fd5b6009600a610a669190612773565b64e8d4a51000610a7691906127bd565b6010819055506009600a610a8a9190612773565b64e8d4a51000610a9a91906127bd565b6011819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610acf9190612773565b64e8d4a51000610adf91906127bd565b604051610aec91906124e9565b60405180910390a1565b60105481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600681526020017f46524f4745580000000000000000000000000000000000000000000000000000815250905090565b5f610b79610b72611140565b848461130a565b6001905092915050565b60125481565b60055f9054906101000a900460ff1681565b610ba3611140565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2690612848565b60405180910390fd5b601560149054906101000a900460ff1615610c7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7690612918565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d1c3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d079190612773565b64e8d4a51000610d1791906127bd565b611147565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d86573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610daa919061294a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e54919061294a565b6040518363ffffffff1660e01b8152600401610e71929190612975565b6020604051808303815f875af1158015610e8d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eb1919061294a565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f383061081d565b5f80610f42610afc565b426040518863ffffffff1660e01b8152600401610f64969594939291906129de565b60606040518083038185885af1158015610f80573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fa59190612a51565b50505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611045929190612aa1565b6020604051808303815f875af1158015611061573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110859190612af2565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ac90612b8d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611223576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121a90612c1b565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112fd91906124e9565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611378576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136f90612ca9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113dd90612d37565b60405180910390fd5b5f8111611428576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141f90612dc5565b60405180910390fd5b5f611431610afc565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561149f575061146f610afc565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b6b576114e060646114d2600c54600f54116114bf576008546114c3565b600a545b8561214f90919063ffffffff16565b6121c690919063ffffffff16565b905060055f9054906101000a900460ff16156116685760145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115a0575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611667574360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611624576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161b90612e79565b60405180910390fd5b4360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116cf575060075f9054906101000a900460ff165b8015611722575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611806574260065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054106117a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179d90612ee1565b60405180910390fd5b600760019054906101000a900460ff1660ff16426117c49190612eff565b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156118af575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611902575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156119bc5760105482111561194c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194390612f7c565b60405180910390fd5b601154826119598561081d565b6119639190612eff565b11156119a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199b90612fe4565b60405180910390fd5b600f5f8154809291906119b690613002565b91905055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a4457503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a8857611a856064611a77600d54600f5411611a6457600954611a68565b600b545b8561214f90919063ffffffff16565b6121c690919063ffffffff16565b90505b5f611a923061081d565b905060158054906101000a900460ff16158015611afb575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611b135750601560169054906101000a900460ff165b8015611b20575060125481115b8015611b2f5750600e54600f54115b15611b6957611b51611b4c84611b478460135461220f565b61220f565b611e7d565b5f4790505f811115611b6757611b66476120e6565b5b505b505b5f811115611c6a57611bc38160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461222790919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c6191906124e9565b60405180910390a35b611cba8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461228490919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d5d611d11828461228490919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461222790919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e00848661228490919063ffffffff16565b604051611e0d91906124e9565b60405180910390a350505050565b5f838311158290611e62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5991906123b8565b60405180910390fd5b505f8385611e709190613049565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611eb357611eb261307c565b5b604051908082528060200260200182016040528015611ee15781602001602082028036833780820191505090505b50905030815f81518110611ef857611ef76130a9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f9c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fc0919061294a565b81600181518110611fd457611fd36130a9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061203a3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611147565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161209c95949392919061318d565b5f604051808303815f87803b1580156120b3575f80fd5b505af11580156120c5573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b600760029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561214b573d5f803e3d5ffd5b5050565b5f80830361215f575f90506121c0565b5f828461216c91906127bd565b905082848261217b9190613212565b146121bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b2906132b2565b60405180910390fd5b809150505b92915050565b5f61220783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122cd565b905092915050565b5f81831161221d578261221f565b815b905092915050565b5f8082846122359190612eff565b90508381101561227a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122719061331a565b60405180910390fd5b8091505092915050565b5f6122c583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e1b565b905092915050565b5f8083118290612313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230a91906123b8565b60405180910390fd5b505f83856123219190613212565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561236557808201518184015260208101905061234a565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61238a8261232e565b6123948185612338565b93506123a4818560208601612348565b6123ad81612370565b840191505092915050565b5f6020820190508181035f8301526123d08184612380565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612405826123dc565b9050919050565b612415816123fb565b811461241f575f80fd5b50565b5f813590506124308161240c565b92915050565b5f819050919050565b61244881612436565b8114612452575f80fd5b50565b5f813590506124638161243f565b92915050565b5f806040838503121561247f5761247e6123d8565b5b5f61248c85828601612422565b925050602061249d85828601612455565b9150509250929050565b5f8115159050919050565b6124bb816124a7565b82525050565b5f6020820190506124d45f8301846124b2565b92915050565b6124e381612436565b82525050565b5f6020820190506124fc5f8301846124da565b92915050565b5f805f60608486031215612519576125186123d8565b5b5f61252686828701612422565b935050602061253786828701612422565b925050604061254886828701612455565b9150509250925092565b5f60ff82169050919050565b61256781612552565b82525050565b5f6020820190506125805f83018461255e565b92915050565b5f6020828403121561259b5761259a6123d8565b5b5f6125a884828501612422565b91505092915050565b6125ba816123fb565b82525050565b5f6020820190506125d35f8301846125b1565b92915050565b5f80604083850312156125ef576125ee6123d8565b5b5f6125fc85828601612422565b925050602061260d85828601612422565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156126995780860481111561267557612674612617565b5b60018516156126845780820291505b808102905061269285612644565b9450612659565b94509492505050565b5f826126b1576001905061276c565b816126be575f905061276c565b81600181146126d457600281146126de5761270d565b600191505061276c565b60ff8411156126f0576126ef612617565b5b8360020a91508482111561270757612706612617565b5b5061276c565b5060208310610133831016604e8410600b84101617156127425782820a90508381111561273d5761273c612617565b5b61276c565b61274f8484846001612650565b9250905081840481111561276657612765612617565b5b81810290505b9392505050565b5f61277d82612436565b915061278883612552565b92506127b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846126a2565b905092915050565b5f6127c782612436565b91506127d283612436565b92508282026127e081612436565b915082820484148315176127f7576127f6612617565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612832602083612338565b915061283d826127fe565b602082019050919050565b5f6020820190508181035f83015261285f81612826565b9050919050565b7f4e6f2045544820746f207472616e7366657200000000000000000000000000005f82015250565b5f61289a601283612338565b91506128a582612866565b602082019050919050565b5f6020820190508181035f8301526128c78161288e565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612902601783612338565b915061290d826128ce565b602082019050919050565b5f6020820190508181035f83015261292f816128f6565b9050919050565b5f815190506129448161240c565b92915050565b5f6020828403121561295f5761295e6123d8565b5b5f61296c84828501612936565b91505092915050565b5f6040820190506129885f8301856125b1565b61299560208301846125b1565b9392505050565b5f819050919050565b5f819050919050565b5f6129c86129c36129be8461299c565b6129a5565b612436565b9050919050565b6129d8816129ae565b82525050565b5f60c0820190506129f15f8301896125b1565b6129fe60208301886124da565b612a0b60408301876129cf565b612a1860608301866129cf565b612a2560808301856125b1565b612a3260a08301846124da565b979650505050505050565b5f81519050612a4b8161243f565b92915050565b5f805f60608486031215612a6857612a676123d8565b5b5f612a7586828701612a3d565b9350506020612a8686828701612a3d565b9250506040612a9786828701612a3d565b9150509250925092565b5f604082019050612ab45f8301856125b1565b612ac160208301846124da565b9392505050565b612ad1816124a7565b8114612adb575f80fd5b50565b5f81519050612aec81612ac8565b92915050565b5f60208284031215612b0757612b066123d8565b5b5f612b1484828501612ade565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612b77602483612338565b9150612b8282612b1d565b604082019050919050565b5f6020820190508181035f830152612ba481612b6b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612c05602283612338565b9150612c1082612bab565b604082019050919050565b5f6020820190508181035f830152612c3281612bf9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612c93602583612338565b9150612c9e82612c39565b604082019050919050565b5f6020820190508181035f830152612cc081612c87565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612d21602383612338565b9150612d2c82612cc7565b604082019050919050565b5f6020820190508181035f830152612d4e81612d15565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612daf602983612338565b9150612dba82612d55565b604082019050919050565b5f6020820190508181035f830152612ddc81612da3565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e204f6e6c79206f6e652070757263686173652070657220626c6f636b2060208201527f616c6c6f7765642e000000000000000000000000000000000000000000000000604082015250565b5f612e63604883612338565b9150612e6e82612de3565b606082019050919050565b5f6020820190508181035f830152612e9081612e57565b9050919050565b7f62757920436f6f6c646f776e20657869737473000000000000000000000000005f82015250565b5f612ecb601383612338565b9150612ed682612e97565b602082019050919050565b5f6020820190508181035f830152612ef881612ebf565b9050919050565b5f612f0982612436565b9150612f1483612436565b9250828201905080821115612f2c57612f2b612617565b5b92915050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612f66601983612338565b9150612f7182612f32565b602082019050919050565b5f6020820190508181035f830152612f9381612f5a565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612fce601a83612338565b9150612fd982612f9a565b602082019050919050565b5f6020820190508181035f830152612ffb81612fc2565b9050919050565b5f61300c82612436565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361303e5761303d612617565b5b600182019050919050565b5f61305382612436565b915061305e83612436565b925082820390508181111561307657613075612617565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613108816123fb565b82525050565b5f61311983836130ff565b60208301905092915050565b5f602082019050919050565b5f61313b826130d6565b61314581856130e0565b9350613150836130f0565b805f5b83811015613180578151613167888261310e565b975061317283613125565b925050600181019050613153565b5085935050505092915050565b5f60a0820190506131a05f8301886124da565b6131ad60208301876129cf565b81810360408301526131bf8186613131565b90506131ce60608301856125b1565b6131db60808301846124da565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61321c82612436565b915061322783612436565b925082613237576132366131e5565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61329c602183612338565b91506132a782613242565b604082019050919050565b5f6020820190508181035f8301526132c981613290565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613304601b83612338565b915061330f826132d0565b602082019050919050565b5f6020820190508181035f830152613331816132f8565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e806736c77ebe1be2673e7896464401ee12131e8fe1665ecf52bdaef8f4c017164736f6c63430008160033
Deployed Bytecode
0x608060405260043610610138575f3560e01c8063722b62ad116100aa57806395d89b411161006e57806395d89b41146103c9578063a9059cbb146103f3578063bf474bed1461042f578063c876d0b914610459578063c9567bf914610483578063dd62ed3e146104995761013f565b8063722b62ad1461030b578063751039fc146103355780637d1db4a51461034b5780638da5cb5b146103755780638f9a55c01461039f5761013f565b8063313ce567116100fc578063313ce5671461023957806351bc3c8514610263578063617fe0ed14610279578063692cda7a146102a357806370a08231146102b9578063715018a6146102f55761013f565b806306fdde0314610143578063095ea7b31461016d5780630faee56f146101a957806318160ddd146101d357806323b872dd146101fd5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104d5565b60405161016491906123b8565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e9190612469565b610512565b6040516101a091906124c1565b60405180910390f35b3480156101b4575f80fd5b506101bd61052f565b6040516101ca91906124e9565b60405180910390f35b3480156101de575f80fd5b506101e7610535565b6040516101f491906124e9565b60405180910390f35b348015610208575f80fd5b50610223600480360381019061021e9190612502565b610559565b60405161023091906124c1565b60405180910390f35b348015610244575f80fd5b5061024d61062d565b60405161025a919061256d565b60405180910390f35b34801561026e575f80fd5b50610277610635565b005b348015610284575f80fd5b5061028d6106cd565b60405161029a91906124c1565b60405180910390f35b3480156102ae575f80fd5b506102b76106df565b005b3480156102c4575f80fd5b506102df60048036038101906102da9190612586565b61081d565b6040516102ec91906124e9565b60405180910390f35b348015610300575f80fd5b50610309610863565b005b348015610316575f80fd5b5061031f6109b1565b60405161032c919061256d565b60405180910390f35b348015610340575f80fd5b506103496109c4565b005b348015610356575f80fd5b5061035f610af6565b60405161036c91906124e9565b60405180910390f35b348015610380575f80fd5b50610389610afc565b60405161039691906125c0565b60405180910390f35b3480156103aa575f80fd5b506103b3610b23565b6040516103c091906124e9565b60405180910390f35b3480156103d4575f80fd5b506103dd610b29565b6040516103ea91906123b8565b60405180910390f35b3480156103fe575f80fd5b5061041960048036038101906104149190612469565b610b66565b60405161042691906124c1565b60405180910390f35b34801561043a575f80fd5b50610443610b83565b60405161045091906124e9565b60405180910390f35b348015610464575f80fd5b5061046d610b89565b60405161047a91906124c1565b60405180910390f35b34801561048e575f80fd5b50610497610b9b565b005b3480156104a4575f80fd5b506104bf60048036038101906104ba91906125d9565b6110be565b6040516104cc91906124e9565b60405180910390f35b60606040518060400160405280600781526020017f46524f4745205800000000000000000000000000000000000000000000000000815250905090565b5f61052561051e611140565b8484611147565b6001905092915050565b60135481565b5f6009600a6105449190612773565b64e8d4a5100061055491906127bd565b905090565b5f61056584848461130a565b61062284610571611140565b61061d856040518060600160405280602881526020016133396028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105d4611140565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e1b9092919063ffffffff16565b611147565b600190509392505050565b5f6009905090565b600760029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610676611140565b73ffffffffffffffffffffffffffffffffffffffff1614610695575f80fd5b5f61069f3061081d565b90505f8111156106b3576106b281611e7d565b5b5f4790505f8111156106c9576106c8816120e6565b5b5050565b60075f9054906101000a900460ff1681565b6106e7611140565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610773576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076a90612848565b60405180910390fd5b5f47116107b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ac906128b0565b60405180910390fd5b600760029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f1935050505015801561081a573d5f803e3d5ffd5b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61086b611140565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ee90612848565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600760019054906101000a900460ff1681565b6109cc611140565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4f90612848565b60405180910390fd5b6009600a610a669190612773565b64e8d4a51000610a7691906127bd565b6010819055506009600a610a8a9190612773565b64e8d4a51000610a9a91906127bd565b6011819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610acf9190612773565b64e8d4a51000610adf91906127bd565b604051610aec91906124e9565b60405180910390a1565b60105481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600681526020017f46524f4745580000000000000000000000000000000000000000000000000000815250905090565b5f610b79610b72611140565b848461130a565b6001905092915050565b60125481565b60055f9054906101000a900460ff1681565b610ba3611140565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2690612848565b60405180910390fd5b601560149054906101000a900460ff1615610c7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7690612918565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d1c3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d079190612773565b64e8d4a51000610d1791906127bd565b611147565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d86573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610daa919061294a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e54919061294a565b6040518363ffffffff1660e01b8152600401610e71929190612975565b6020604051808303815f875af1158015610e8d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eb1919061294a565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f383061081d565b5f80610f42610afc565b426040518863ffffffff1660e01b8152600401610f64969594939291906129de565b60606040518083038185885af1158015610f80573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fa59190612a51565b50505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611045929190612aa1565b6020604051808303815f875af1158015611061573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110859190612af2565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ac90612b8d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611223576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121a90612c1b565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112fd91906124e9565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611378576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136f90612ca9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113dd90612d37565b60405180910390fd5b5f8111611428576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141f90612dc5565b60405180910390fd5b5f611431610afc565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561149f575061146f610afc565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b6b576114e060646114d2600c54600f54116114bf576008546114c3565b600a545b8561214f90919063ffffffff16565b6121c690919063ffffffff16565b905060055f9054906101000a900460ff16156116685760145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115a0575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611667574360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611624576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161b90612e79565b60405180910390fd5b4360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116cf575060075f9054906101000a900460ff165b8015611722575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611806574260065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054106117a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179d90612ee1565b60405180910390fd5b600760019054906101000a900460ff1660ff16426117c49190612eff565b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156118af575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611902575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156119bc5760105482111561194c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194390612f7c565b60405180910390fd5b601154826119598561081d565b6119639190612eff565b11156119a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199b90612fe4565b60405180910390fd5b600f5f8154809291906119b690613002565b91905055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a4457503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a8857611a856064611a77600d54600f5411611a6457600954611a68565b600b545b8561214f90919063ffffffff16565b6121c690919063ffffffff16565b90505b5f611a923061081d565b905060158054906101000a900460ff16158015611afb575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611b135750601560169054906101000a900460ff165b8015611b20575060125481115b8015611b2f5750600e54600f54115b15611b6957611b51611b4c84611b478460135461220f565b61220f565b611e7d565b5f4790505f811115611b6757611b66476120e6565b5b505b505b5f811115611c6a57611bc38160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461222790919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c6191906124e9565b60405180910390a35b611cba8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461228490919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d5d611d11828461228490919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461222790919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e00848661228490919063ffffffff16565b604051611e0d91906124e9565b60405180910390a350505050565b5f838311158290611e62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5991906123b8565b60405180910390fd5b505f8385611e709190613049565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611eb357611eb261307c565b5b604051908082528060200260200182016040528015611ee15781602001602082028036833780820191505090505b50905030815f81518110611ef857611ef76130a9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f9c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fc0919061294a565b81600181518110611fd457611fd36130a9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061203a3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611147565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161209c95949392919061318d565b5f604051808303815f87803b1580156120b3575f80fd5b505af11580156120c5573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b600760029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561214b573d5f803e3d5ffd5b5050565b5f80830361215f575f90506121c0565b5f828461216c91906127bd565b905082848261217b9190613212565b146121bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b2906132b2565b60405180910390fd5b809150505b92915050565b5f61220783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122cd565b905092915050565b5f81831161221d578261221f565b815b905092915050565b5f8082846122359190612eff565b90508381101561227a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122719061331a565b60405180910390fd5b8091505092915050565b5f6122c583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e1b565b905092915050565b5f8083118290612313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230a91906123b8565b60405180910390fd5b505f83856123219190613212565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561236557808201518184015260208101905061234a565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61238a8261232e565b6123948185612338565b93506123a4818560208601612348565b6123ad81612370565b840191505092915050565b5f6020820190508181035f8301526123d08184612380565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612405826123dc565b9050919050565b612415816123fb565b811461241f575f80fd5b50565b5f813590506124308161240c565b92915050565b5f819050919050565b61244881612436565b8114612452575f80fd5b50565b5f813590506124638161243f565b92915050565b5f806040838503121561247f5761247e6123d8565b5b5f61248c85828601612422565b925050602061249d85828601612455565b9150509250929050565b5f8115159050919050565b6124bb816124a7565b82525050565b5f6020820190506124d45f8301846124b2565b92915050565b6124e381612436565b82525050565b5f6020820190506124fc5f8301846124da565b92915050565b5f805f60608486031215612519576125186123d8565b5b5f61252686828701612422565b935050602061253786828701612422565b925050604061254886828701612455565b9150509250925092565b5f60ff82169050919050565b61256781612552565b82525050565b5f6020820190506125805f83018461255e565b92915050565b5f6020828403121561259b5761259a6123d8565b5b5f6125a884828501612422565b91505092915050565b6125ba816123fb565b82525050565b5f6020820190506125d35f8301846125b1565b92915050565b5f80604083850312156125ef576125ee6123d8565b5b5f6125fc85828601612422565b925050602061260d85828601612422565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156126995780860481111561267557612674612617565b5b60018516156126845780820291505b808102905061269285612644565b9450612659565b94509492505050565b5f826126b1576001905061276c565b816126be575f905061276c565b81600181146126d457600281146126de5761270d565b600191505061276c565b60ff8411156126f0576126ef612617565b5b8360020a91508482111561270757612706612617565b5b5061276c565b5060208310610133831016604e8410600b84101617156127425782820a90508381111561273d5761273c612617565b5b61276c565b61274f8484846001612650565b9250905081840481111561276657612765612617565b5b81810290505b9392505050565b5f61277d82612436565b915061278883612552565b92506127b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846126a2565b905092915050565b5f6127c782612436565b91506127d283612436565b92508282026127e081612436565b915082820484148315176127f7576127f6612617565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612832602083612338565b915061283d826127fe565b602082019050919050565b5f6020820190508181035f83015261285f81612826565b9050919050565b7f4e6f2045544820746f207472616e7366657200000000000000000000000000005f82015250565b5f61289a601283612338565b91506128a582612866565b602082019050919050565b5f6020820190508181035f8301526128c78161288e565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612902601783612338565b915061290d826128ce565b602082019050919050565b5f6020820190508181035f83015261292f816128f6565b9050919050565b5f815190506129448161240c565b92915050565b5f6020828403121561295f5761295e6123d8565b5b5f61296c84828501612936565b91505092915050565b5f6040820190506129885f8301856125b1565b61299560208301846125b1565b9392505050565b5f819050919050565b5f819050919050565b5f6129c86129c36129be8461299c565b6129a5565b612436565b9050919050565b6129d8816129ae565b82525050565b5f60c0820190506129f15f8301896125b1565b6129fe60208301886124da565b612a0b60408301876129cf565b612a1860608301866129cf565b612a2560808301856125b1565b612a3260a08301846124da565b979650505050505050565b5f81519050612a4b8161243f565b92915050565b5f805f60608486031215612a6857612a676123d8565b5b5f612a7586828701612a3d565b9350506020612a8686828701612a3d565b9250506040612a9786828701612a3d565b9150509250925092565b5f604082019050612ab45f8301856125b1565b612ac160208301846124da565b9392505050565b612ad1816124a7565b8114612adb575f80fd5b50565b5f81519050612aec81612ac8565b92915050565b5f60208284031215612b0757612b066123d8565b5b5f612b1484828501612ade565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612b77602483612338565b9150612b8282612b1d565b604082019050919050565b5f6020820190508181035f830152612ba481612b6b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612c05602283612338565b9150612c1082612bab565b604082019050919050565b5f6020820190508181035f830152612c3281612bf9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612c93602583612338565b9150612c9e82612c39565b604082019050919050565b5f6020820190508181035f830152612cc081612c87565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612d21602383612338565b9150612d2c82612cc7565b604082019050919050565b5f6020820190508181035f830152612d4e81612d15565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612daf602983612338565b9150612dba82612d55565b604082019050919050565b5f6020820190508181035f830152612ddc81612da3565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e204f6e6c79206f6e652070757263686173652070657220626c6f636b2060208201527f616c6c6f7765642e000000000000000000000000000000000000000000000000604082015250565b5f612e63604883612338565b9150612e6e82612de3565b606082019050919050565b5f6020820190508181035f830152612e9081612e57565b9050919050565b7f62757920436f6f6c646f776e20657869737473000000000000000000000000005f82015250565b5f612ecb601383612338565b9150612ed682612e97565b602082019050919050565b5f6020820190508181035f830152612ef881612ebf565b9050919050565b5f612f0982612436565b9150612f1483612436565b9250828201905080821115612f2c57612f2b612617565b5b92915050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612f66601983612338565b9150612f7182612f32565b602082019050919050565b5f6020820190508181035f830152612f9381612f5a565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612fce601a83612338565b9150612fd982612f9a565b602082019050919050565b5f6020820190508181035f830152612ffb81612fc2565b9050919050565b5f61300c82612436565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361303e5761303d612617565b5b600182019050919050565b5f61305382612436565b915061305e83612436565b925082820390508181111561307657613075612617565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613108816123fb565b82525050565b5f61311983836130ff565b60208301905092915050565b5f602082019050919050565b5f61313b826130d6565b61314581856130e0565b9350613150836130f0565b805f5b83811015613180578151613167888261310e565b975061317283613125565b925050600181019050613153565b5085935050505092915050565b5f60a0820190506131a05f8301886124da565b6131ad60208301876129cf565b81810360408301526131bf8186613131565b90506131ce60608301856125b1565b6131db60808301846124da565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61321c82612436565b915061322783612436565b925082613237576132366131e5565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61329c602183612338565b91506132a782613242565b604082019050919050565b5f6020820190508181035f8301526132c981613290565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613304601b83612338565b915061330f826132d0565b602082019050919050565b5f6020820190508181035f830152613331816132f8565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e806736c77ebe1be2673e7896464401ee12131e8fe1665ecf52bdaef8f4c017164736f6c63430008160033
Deployed Bytecode Sourcemap
3619:8387:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5636:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6469:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4918:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5913:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6638:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5822:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11470:348;;;;;;;;;;;;;:::i;:::-;;4064:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11826:177;;;;;;;;;;;;;:::i;:::-;;6016:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2702:148;;;;;;;;;;;;;:::i;:::-;;4108:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10479:162;;;;;;;;;;;;;:::i;:::-;;4749:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2488:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4803:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5727:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6143:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4859:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3962:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10653:672;;;;;;;;;;;;;:::i;:::-;;6318:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5636:83;5673:13;5706:5;;;;;;;;;;;;;;;;;5699:12;;5636:83;:::o;6469:161::-;6544:4;6561:39;6570:12;:10;:12::i;:::-;6584:7;6593:6;6561:8;:39::i;:::-;6618:4;6611:11;;6469:161;;;;:::o;4918:45::-;;;;:::o;5913:95::-;5966:7;4558:1;4617:2;:14;;;;:::i;:::-;4601:13;:30;;;;:::i;:::-;5986:14;;5913:95;:::o;6638:313::-;6736:4;6753:36;6763:6;6771:9;6782:6;6753:9;:36::i;:::-;6800:121;6809:6;6817:12;:10;:12::i;:::-;6831:89;6869:6;6831:89;;;;;;;;;;;;;;;;;:11;:19;6843:6;6831:19;;;;;;;;;;;;;;;:33;6851:12;:10;:12::i;:::-;6831:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6800:8;:121::i;:::-;6939:4;6932:11;;6638:313;;;;;:::o;5822:83::-;5863:5;4558:1;5881:16;;5822:83;:::o;11470:348::-;11534:10;;;;;;;;;;;11520:24;;:12;:10;:12::i;:::-;:24;;;11512:33;;;;;;11556:20;11577:24;11595:4;11577:9;:24::i;:::-;11556:45;;11628:1;11615:12;:14;11612:73;;;11643:30;11660:12;11643:16;:30::i;:::-;11612:73;11695:18;11714:21;11695:40;;11760:1;11749:10;:12;11746:65;;;11775:24;11788:10;11775:12;:24::i;:::-;11746:65;11501:317;;11470:348::o;4064:37::-;;;;;;;;;;;;;:::o;11826:177::-;2625:12;:10;:12::i;:::-;2615:22;;:6;;;;;;;;;;:22;;;2607:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11918:1:::1;11894:21;:25;11886:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;11953:10;;;;;;;;;;;:19;;:42;11973:21;11953:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;11826:177::o:0;6016:119::-;6082:7;6109:9;:18;6119:7;6109:18;;;;;;;;;;;;;;;;6102:25;;6016:119;;;:::o;2702:148::-;2625:12;:10;:12::i;:::-;2615:22;;:6;;;;;;;;;;:22;;;2607:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2809:1:::1;2772:40;;2793:6;::::0;::::1;;;;;;;;2772:40;;;;;;;;;;;;2840:1;2823:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2702:148::o:0;4108:38::-;;;;;;;;;;;;;:::o;10479:162::-;2625:12;:10;:12::i;:::-;2615:22;;:6;;;;;;;;;;:22;;;2607:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4558:1:::1;4617:2;:14;;;;:::i;:::-;4601:13;:30;;;;:::i;:::-;10533:12;:22;;;;4558:1;4617:2;:14;;;;:::i;:::-;4601:13;:30;;;;:::i;:::-;10566:14;:24;;;;10606:27;4558:1;4617:2;:14;;;;:::i;:::-;4601:13;:30;;;;:::i;:::-;10606:27;;;;;;:::i;:::-;;;;;;;;10479:162::o:0;4749:47::-;;;;:::o;2488:79::-;2526:7;2553:6;;;;;;;;;;;2546:13;;2488:79;:::o;4803:49::-;;;;:::o;5727:87::-;5766:13;5799:7;;;;;;;;;;;;;;;;;5792:14;;5727:87;:::o;6143:167::-;6221:4;6238:42;6248:12;:10;:12::i;:::-;6262:9;6273:6;6238:9;:42::i;:::-;6298:4;6291:11;;6143:167;;;;:::o;4859:52::-;;;;:::o;3962:39::-;;;;;;;;;;;;;:::o;10653:672::-;2625:12;:10;:12::i;:::-;2615:22;;:6;;;;;;;;;;:22;;;2607:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10717:11:::1;;;;;;;;;;;10716:12;10708:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10804:42;10767:15;;:80;;;;;;;;;;;;;;;;;;10858:58;10875:4;10890:15;;;;;;;;;;;4558:1;4617:2;:14;;;;:::i;:::-;4601:13;:30;;;;:::i;:::-;10858:8;:58::i;:::-;10961:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10943:55;;;11007:4;11014:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10943:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10927:13;;:110;;;;;;;;;;;;;;;;;;11048:15;;;;;;;;;;;:31;;;11087:21;11118:4;11124:24;11142:4;11124:9;:24::i;:::-;11149:1;11151::::0;11153:7:::1;:5;:7::i;:::-;11161:15;11048:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11195:13;;;;;;;;;;;11188:29;;;11226:15;;;;;;;;;;;11244:14;11188:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11284:4;11270:11;;:18;;;;;;;;;;;;;;;;;;11313:4;11299:11;;:18;;;;;;;;;;;;;;;;;;10653:672::o:0;6318:143::-;6399:7;6426:11;:18;6438:5;6426:18;;;;;;;;;;;;;;;:27;6445:7;6426:27;;;;;;;;;;;;;;;;6419:34;;6318:143;;;;:::o;245:98::-;298:7;325:10;318:17;;245:98;:::o;6959:335::-;7069:1;7052:19;;:5;:19;;;7044:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7150:1;7131:21;;:7;:21;;;7123:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7232:6;7202:11;:18;7214:5;7202:18;;;;;;;;;;;;;;;:27;7221:7;7202:27;;;;;;;;;;;;;;;:36;;;;7270:7;7254:32;;7263:5;7254:32;;;7279:6;7254:32;;;;;;:::i;:::-;;;;;;;;6959:335;;;:::o;7302:2569::-;7406:1;7390:18;;:4;:18;;;7382:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7483:1;7469:16;;:2;:16;;;7461:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7553:1;7544:6;:10;7536:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7611:17;7655:7;:5;:7::i;:::-;7647:15;;:4;:15;;;;:32;;;;;7672:7;:5;:7::i;:::-;7666:13;;:2;:13;;;;7647:32;7643:1870;;;7708:76;7780:3;7708:67;7730:15;;7720:9;;:25;7719:55;;7760:14;;7719:55;;;7747:12;;7719:55;7708:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7696:88;;7805:20;;;;;;;;;;;7801:397;;;7866:15;;;;;;;;;;;7852:30;;:2;:30;;;;:62;;;;;7900:13;;;;;;;;;;;7886:28;;:2;:28;;;;7852:62;7848:333;;;7991:12;7949:28;:39;7978:9;7949:39;;;;;;;;;;;;;;;;:54;7941:139;;;;;;;;;;;;:::i;:::-;;;;;;;;;8147:12;8105:28;:39;8134:9;8105:39;;;;;;;;;;;;;;;:54;;;;7848:333;7801:397;8226:13;;;;;;;;;;;8218:21;;:4;:21;;;:43;;;;;8243:18;;;;;;;;;;;8218:43;:71;;;;;8267:18;:22;8286:2;8267:22;;;;;;;;;;;;;;;;;;;;;;;;;8265:24;8218:71;8214:257;;;8338:15;8318:13;:17;8332:2;8318:17;;;;;;;;;;;;;;;;:35;8310:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8434:21;;;;;;;;;;;8416:39;;:15;:39;;;;:::i;:::-;8396:13;:17;8410:2;8396:17;;;;;;;;;;;;;;;:59;;;;8214:257;8499:13;;;;;;;;;;;8491:21;;:4;:21;;;:55;;;;;8530:15;;;;;;;;;;;8516:30;;:2;:30;;;;8491:55;:83;;;;;8552:18;:22;8571:2;8552:22;;;;;;;;;;;;;;;;;;;;;;;;;8550:24;8491:83;8487:313;;;8614:12;;8604:6;:22;;8596:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8709:14;;8699:6;8683:13;8693:2;8683:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8675:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8773:9;;:11;;;;;;;;;:::i;:::-;;;;;;8487:313;8825:13;;;;;;;;;;;8819:19;;:2;:19;;;:43;;;;;8857:4;8842:20;;:4;:20;;;;8819:43;8816:174;;;8895:79;8970:3;8895:70;8917:16;;8907:9;;:26;8906:58;;8949:15;;8906:58;;;8935:13;;8906:58;8895:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8883:91;;8816:174;9006:28;9037:24;9055:4;9037:9;:24::i;:::-;9006:55;;9081:6;;;;;;;;;;9080:7;:32;;;;;9099:13;;;;;;;;;;;9091:21;;:2;:21;;;9080:32;:47;;;;;9116:11;;;;;;;;;;;9080:47;:91;;;;;9154:17;;9131:20;:40;9080:91;:125;;;;;9187:18;;9175:9;;:30;9080:125;9076:426;;;9226:68;9243:50;9247:6;9255:37;9259:20;9280:11;;9255:3;:37::i;:::-;9243:3;:50::i;:::-;9226:16;:68::i;:::-;9313:26;9342:21;9313:50;;9406:1;9385:18;:22;9382:105;;;9432:35;9445:21;9432:12;:35::i;:::-;9382:105;9207:295;9076:426;7681:1832;7643:1870;9538:1;9528:9;:11;9525:163;;;9579:39;9608:9;9579;:24;9597:4;9579:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9554:9;:24;9572:4;9554:24;;;;;;;;;;;;;;;:64;;;;9659:4;9636:40;;9645:4;9636:40;;;9666:9;9636:40;;;;;;:::i;:::-;;;;;;;;9525:163;9714:27;9734:6;9714:9;:15;9724:4;9714:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9698:9;:15;9708:4;9698:15;;;;;;;;;;;;;;;:43;;;;9766:40;9784:21;9795:9;9784:6;:10;;:21;;;;:::i;:::-;9766:9;:13;9776:2;9766:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9752:9;:13;9762:2;9752:13;;;;;;;;;;;;;;;:54;;;;9837:2;9822:41;;9831:4;9822:41;;;9841:21;9852:9;9841:6;:10;;:21;;;;:::i;:::-;9822:41;;;;;;:::i;:::-;;;;;;;;7371:2500;7302:2569;;;:::o;1382:190::-;1468:7;1501:1;1496;:6;;1504:12;1488:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1528:9;1544:1;1540;:5;;;;:::i;:::-;1528:17;;1563:1;1556:8;;;1382:190;;;;;:::o;9987:483::-;5254:4;5245:6;;:13;;;;;;;;;;;;;;;;;;10065:21:::1;10103:1;10089:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10065:40;;10134:4;10116;10121:1;10116:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10160:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10150:4;10155:1;10150:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10193:62;10210:4;10225:15;;;;;;;;;;;10243:11;10193:8;:62::i;:::-;10266:15;;;;;;;;;;;:66;;;10347:11;10373:1;10389:4;10416;10436:15;10266:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10054:416;5290:5:::0;5281:6;;:14;;;;;;;;;;;;;;;;;;9987:483;:::o;11333:92::-;11390:10;;;;;;;;;;;:19;;:27;11410:6;11390:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11333:92;:::o;1580:246::-;1638:7;1667:1;1662;:6;1658:47;;1692:1;1685:8;;;;1658:47;1715:9;1731:1;1727;:5;;;;:::i;:::-;1715:17;;1760:1;1755;1751;:5;;;;:::i;:::-;:10;1743:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1817:1;1810:8;;;1580:246;;;;;:::o;1834:132::-;1892:7;1919:39;1923:1;1926;1919:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1912:46;;1834:132;;;;:::o;9881:98::-;9938:7;9965:1;9963;:3;9962:9;;9970:1;9962:9;;;9968:1;9962:9;9955:16;;9881:98;;;;:::o;1051:179::-;1109:7;1129:9;1145:1;1141;:5;;;;:::i;:::-;1129:17;;1170:1;1165;:6;;1157:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1221:1;1214:8;;;1051:179;;;;:::o;1238:136::-;1296:7;1323:43;1327:1;1330;1323:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1316:50;;1238:136;;;;:::o;1974:189::-;2060:7;2092:1;2088;:5;2095:12;2080:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2119:9;2135:1;2131;:5;;;;:::i;:::-;2119:17;;2154:1;2147:8;;;1974:189;;;;;:::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:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:180::-;6068:77;6065:1;6058:88;6165:4;6162:1;6155:15;6189:4;6186:1;6179:15;6206:102;6248:8;6295:5;6292:1;6288:13;6267:34;;6206:102;;;:::o;6314:848::-;6375:5;6382:4;6406:6;6397:15;;6430:5;6421:14;;6444:712;6465:1;6455:8;6452:15;6444:712;;;6560:4;6555:3;6551:14;6545:4;6542:24;6539:50;;;6569:18;;:::i;:::-;6539:50;6619:1;6609:8;6605:16;6602:451;;;7034:4;7027:5;7023:16;7014:25;;6602:451;7084:4;7078;7074:15;7066:23;;7114:32;7137:8;7114:32;:::i;:::-;7102:44;;6444:712;;;6314:848;;;;;;;:::o;7168:1073::-;7222:5;7413:8;7403:40;;7434:1;7425:10;;7436:5;;7403:40;7462:4;7452:36;;7479:1;7470:10;;7481:5;;7452:36;7548:4;7596:1;7591:27;;;;7632:1;7627:191;;;;7541:277;;7591:27;7609:1;7600:10;;7611:5;;;7627:191;7672:3;7662:8;7659:17;7656:43;;;7679:18;;:::i;:::-;7656:43;7728:8;7725:1;7721:16;7712:25;;7763:3;7756:5;7753:14;7750:40;;;7770:18;;:::i;:::-;7750:40;7803:5;;;7541:277;;7927:2;7917:8;7914:16;7908:3;7902:4;7899:13;7895:36;7877:2;7867:8;7864:16;7859:2;7853:4;7850:12;7846:35;7830:111;7827:246;;;7983:8;7977:4;7973:19;7964:28;;8018:3;8011:5;8008:14;8005:40;;;8025:18;;:::i;:::-;8005:40;8058:5;;7827:246;8098:42;8136:3;8126:8;8120:4;8117:1;8098:42;:::i;:::-;8083:57;;;;8172:4;8167:3;8163:14;8156:5;8153:25;8150:51;;;8181:18;;:::i;:::-;8150:51;8230:4;8223:5;8219:16;8210:25;;7168:1073;;;;;;:::o;8247:281::-;8305:5;8329:23;8347:4;8329:23;:::i;:::-;8321:31;;8373:25;8389:8;8373:25;:::i;:::-;8361:37;;8417:104;8454:66;8444:8;8438:4;8417:104;:::i;:::-;8408:113;;8247:281;;;;:::o;8534:410::-;8574:7;8597:20;8615:1;8597:20;:::i;:::-;8592:25;;8631:20;8649:1;8631:20;:::i;:::-;8626:25;;8686:1;8683;8679:9;8708:30;8726:11;8708:30;:::i;:::-;8697:41;;8887:1;8878:7;8874:15;8871:1;8868:22;8848:1;8841:9;8821:83;8798:139;;8917:18;;:::i;:::-;8798:139;8582:362;8534:410;;;;:::o;8950:182::-;9090:34;9086:1;9078:6;9074:14;9067:58;8950:182;:::o;9138:366::-;9280:3;9301:67;9365:2;9360:3;9301:67;:::i;:::-;9294:74;;9377:93;9466:3;9377:93;:::i;:::-;9495:2;9490:3;9486:12;9479:19;;9138:366;;;:::o;9510:419::-;9676:4;9714:2;9703:9;9699:18;9691:26;;9763:9;9757:4;9753:20;9749:1;9738:9;9734:17;9727:47;9791:131;9917:4;9791:131;:::i;:::-;9783:139;;9510:419;;;:::o;9935:168::-;10075:20;10071:1;10063:6;10059:14;10052:44;9935:168;:::o;10109:366::-;10251:3;10272:67;10336:2;10331:3;10272:67;:::i;:::-;10265:74;;10348:93;10437:3;10348:93;:::i;:::-;10466:2;10461:3;10457:12;10450:19;;10109:366;;;:::o;10481:419::-;10647:4;10685:2;10674:9;10670:18;10662:26;;10734:9;10728:4;10724:20;10720:1;10709:9;10705:17;10698:47;10762:131;10888:4;10762:131;:::i;:::-;10754:139;;10481:419;;;:::o;10906:173::-;11046:25;11042:1;11034:6;11030:14;11023:49;10906:173;:::o;11085:366::-;11227:3;11248:67;11312:2;11307:3;11248:67;:::i;:::-;11241:74;;11324:93;11413:3;11324:93;:::i;:::-;11442:2;11437:3;11433:12;11426:19;;11085:366;;;:::o;11457:419::-;11623:4;11661:2;11650:9;11646:18;11638:26;;11710:9;11704:4;11700:20;11696:1;11685:9;11681:17;11674:47;11738:131;11864:4;11738:131;:::i;:::-;11730:139;;11457:419;;;:::o;11882:143::-;11939:5;11970:6;11964:13;11955:22;;11986:33;12013:5;11986:33;:::i;:::-;11882:143;;;;:::o;12031:351::-;12101:6;12150:2;12138:9;12129:7;12125:23;12121:32;12118:119;;;12156:79;;:::i;:::-;12118:119;12276:1;12301:64;12357:7;12348:6;12337:9;12333:22;12301:64;:::i;:::-;12291:74;;12247:128;12031:351;;;;:::o;12388:332::-;12509:4;12547:2;12536:9;12532:18;12524:26;;12560:71;12628:1;12617:9;12613:17;12604:6;12560:71;:::i;:::-;12641:72;12709:2;12698:9;12694:18;12685:6;12641:72;:::i;:::-;12388:332;;;;;:::o;12726:85::-;12771:7;12800:5;12789:16;;12726:85;;;:::o;12817:60::-;12845:3;12866:5;12859:12;;12817:60;;;:::o;12883:158::-;12941:9;12974:61;12992:42;13001:32;13027:5;13001:32;:::i;:::-;12992:42;:::i;:::-;12974:61;:::i;:::-;12961:74;;12883:158;;;:::o;13047:147::-;13142:45;13181:5;13142:45;:::i;:::-;13137:3;13130:58;13047:147;;:::o;13200:807::-;13449:4;13487:3;13476:9;13472:19;13464:27;;13501:71;13569:1;13558:9;13554:17;13545:6;13501:71;:::i;:::-;13582:72;13650:2;13639:9;13635:18;13626:6;13582:72;:::i;:::-;13664:80;13740:2;13729:9;13725:18;13716:6;13664:80;:::i;:::-;13754;13830:2;13819:9;13815:18;13806:6;13754:80;:::i;:::-;13844:73;13912:3;13901:9;13897:19;13888:6;13844:73;:::i;:::-;13927;13995:3;13984:9;13980:19;13971:6;13927:73;:::i;:::-;13200:807;;;;;;;;;:::o;14013:143::-;14070:5;14101:6;14095:13;14086:22;;14117:33;14144:5;14117:33;:::i;:::-;14013:143;;;;:::o;14162:663::-;14250:6;14258;14266;14315:2;14303:9;14294:7;14290:23;14286:32;14283:119;;;14321:79;;:::i;:::-;14283:119;14441:1;14466:64;14522:7;14513:6;14502:9;14498:22;14466:64;:::i;:::-;14456:74;;14412:128;14579:2;14605:64;14661:7;14652:6;14641:9;14637:22;14605:64;:::i;:::-;14595:74;;14550:129;14718:2;14744:64;14800:7;14791:6;14780:9;14776:22;14744:64;:::i;:::-;14734:74;;14689:129;14162:663;;;;;:::o;14831:332::-;14952:4;14990:2;14979:9;14975:18;14967:26;;15003:71;15071:1;15060:9;15056:17;15047:6;15003:71;:::i;:::-;15084:72;15152:2;15141:9;15137:18;15128:6;15084:72;:::i;:::-;14831:332;;;;;:::o;15169:116::-;15239:21;15254:5;15239:21;:::i;:::-;15232:5;15229:32;15219:60;;15275:1;15272;15265:12;15219:60;15169:116;:::o;15291:137::-;15345:5;15376:6;15370:13;15361:22;;15392:30;15416:5;15392:30;:::i;:::-;15291:137;;;;:::o;15434:345::-;15501:6;15550:2;15538:9;15529:7;15525:23;15521:32;15518:119;;;15556:79;;:::i;:::-;15518:119;15676:1;15701:61;15754:7;15745:6;15734:9;15730:22;15701:61;:::i;:::-;15691:71;;15647:125;15434:345;;;;:::o;15785:223::-;15925:34;15921:1;15913:6;15909:14;15902:58;15994:6;15989:2;15981:6;15977:15;15970:31;15785:223;:::o;16014:366::-;16156:3;16177:67;16241:2;16236:3;16177:67;:::i;:::-;16170:74;;16253:93;16342:3;16253:93;:::i;:::-;16371:2;16366:3;16362:12;16355:19;;16014:366;;;:::o;16386:419::-;16552:4;16590:2;16579:9;16575:18;16567:26;;16639:9;16633:4;16629:20;16625:1;16614:9;16610:17;16603:47;16667:131;16793:4;16667:131;:::i;:::-;16659:139;;16386:419;;;:::o;16811:221::-;16951:34;16947:1;16939:6;16935:14;16928:58;17020:4;17015:2;17007:6;17003:15;16996:29;16811:221;:::o;17038:366::-;17180:3;17201:67;17265:2;17260:3;17201:67;:::i;:::-;17194:74;;17277:93;17366:3;17277:93;:::i;:::-;17395:2;17390:3;17386:12;17379:19;;17038:366;;;:::o;17410:419::-;17576:4;17614:2;17603:9;17599:18;17591:26;;17663:9;17657:4;17653:20;17649:1;17638:9;17634:17;17627:47;17691:131;17817:4;17691:131;:::i;:::-;17683:139;;17410:419;;;:::o;17835:224::-;17975:34;17971:1;17963:6;17959:14;17952:58;18044:7;18039:2;18031:6;18027:15;18020:32;17835:224;:::o;18065:366::-;18207:3;18228:67;18292:2;18287:3;18228:67;:::i;:::-;18221:74;;18304:93;18393:3;18304:93;:::i;:::-;18422:2;18417:3;18413:12;18406:19;;18065:366;;;:::o;18437:419::-;18603:4;18641:2;18630:9;18626:18;18618:26;;18690:9;18684:4;18680:20;18676:1;18665:9;18661:17;18654:47;18718:131;18844:4;18718:131;:::i;:::-;18710:139;;18437:419;;;:::o;18862:222::-;19002:34;18998:1;18990:6;18986:14;18979:58;19071:5;19066:2;19058:6;19054:15;19047:30;18862:222;:::o;19090:366::-;19232:3;19253:67;19317:2;19312:3;19253:67;:::i;:::-;19246:74;;19329:93;19418:3;19329:93;:::i;:::-;19447:2;19442:3;19438:12;19431:19;;19090:366;;;:::o;19462:419::-;19628:4;19666:2;19655:9;19651:18;19643:26;;19715:9;19709:4;19705:20;19701:1;19690:9;19686:17;19679:47;19743:131;19869:4;19743:131;:::i;:::-;19735:139;;19462:419;;;:::o;19887:228::-;20027:34;20023:1;20015:6;20011:14;20004:58;20096:11;20091:2;20083:6;20079:15;20072:36;19887:228;:::o;20121:366::-;20263:3;20284:67;20348:2;20343:3;20284:67;:::i;:::-;20277:74;;20360:93;20449:3;20360:93;:::i;:::-;20478:2;20473:3;20469:12;20462:19;;20121:366;;;:::o;20493:419::-;20659:4;20697:2;20686:9;20682:18;20674:26;;20746:9;20740:4;20736:20;20732:1;20721:9;20717:17;20710:47;20774:131;20900:4;20774:131;:::i;:::-;20766:139;;20493:419;;;:::o;20918:296::-;21058:34;21054:1;21046:6;21042:14;21035:58;21127:34;21122:2;21114:6;21110:15;21103:59;21196:10;21191:2;21183:6;21179:15;21172:35;20918:296;:::o;21220:366::-;21362:3;21383:67;21447:2;21442:3;21383:67;:::i;:::-;21376:74;;21459:93;21548:3;21459:93;:::i;:::-;21577:2;21572:3;21568:12;21561:19;;21220:366;;;:::o;21592:419::-;21758:4;21796:2;21785:9;21781:18;21773:26;;21845:9;21839:4;21835:20;21831:1;21820:9;21816:17;21809:47;21873:131;21999:4;21873:131;:::i;:::-;21865:139;;21592:419;;;:::o;22017:169::-;22157:21;22153:1;22145:6;22141:14;22134:45;22017:169;:::o;22192:366::-;22334:3;22355:67;22419:2;22414:3;22355:67;:::i;:::-;22348:74;;22431:93;22520:3;22431:93;:::i;:::-;22549:2;22544:3;22540:12;22533:19;;22192:366;;;:::o;22564:419::-;22730:4;22768:2;22757:9;22753:18;22745:26;;22817:9;22811:4;22807:20;22803:1;22792:9;22788:17;22781:47;22845:131;22971:4;22845:131;:::i;:::-;22837:139;;22564:419;;;:::o;22989:191::-;23029:3;23048:20;23066:1;23048:20;:::i;:::-;23043:25;;23082:20;23100:1;23082:20;:::i;:::-;23077:25;;23125:1;23122;23118:9;23111:16;;23146:3;23143:1;23140:10;23137:36;;;23153:18;;:::i;:::-;23137:36;22989:191;;;;:::o;23186:175::-;23326:27;23322:1;23314:6;23310:14;23303:51;23186:175;:::o;23367:366::-;23509:3;23530:67;23594:2;23589:3;23530:67;:::i;:::-;23523:74;;23606:93;23695:3;23606:93;:::i;:::-;23724:2;23719:3;23715:12;23708:19;;23367:366;;;:::o;23739:419::-;23905:4;23943:2;23932:9;23928:18;23920:26;;23992:9;23986:4;23982:20;23978:1;23967:9;23963:17;23956:47;24020:131;24146:4;24020:131;:::i;:::-;24012:139;;23739:419;;;:::o;24164:176::-;24304:28;24300:1;24292:6;24288:14;24281:52;24164:176;:::o;24346:366::-;24488:3;24509:67;24573:2;24568:3;24509:67;:::i;:::-;24502:74;;24585:93;24674:3;24585:93;:::i;:::-;24703:2;24698:3;24694:12;24687:19;;24346:366;;;:::o;24718:419::-;24884:4;24922:2;24911:9;24907:18;24899:26;;24971:9;24965:4;24961:20;24957:1;24946:9;24942:17;24935:47;24999:131;25125:4;24999:131;:::i;:::-;24991:139;;24718:419;;;:::o;25143:233::-;25182:3;25205:24;25223:5;25205:24;:::i;:::-;25196:33;;25251:66;25244:5;25241:77;25238:103;;25321:18;;:::i;:::-;25238:103;25368:1;25361:5;25357:13;25350:20;;25143:233;;;:::o;25382:194::-;25422:4;25442:20;25460:1;25442:20;:::i;:::-;25437:25;;25476:20;25494:1;25476:20;:::i;:::-;25471:25;;25520:1;25517;25513:9;25505:17;;25544:1;25538:4;25535:11;25532:37;;;25549:18;;:::i;:::-;25532:37;25382:194;;;;:::o;25582:180::-;25630:77;25627:1;25620:88;25727:4;25724:1;25717:15;25751:4;25748:1;25741:15;25768:180;25816:77;25813:1;25806:88;25913:4;25910:1;25903:15;25937:4;25934:1;25927:15;25954:114;26021:6;26055:5;26049:12;26039:22;;25954:114;;;:::o;26074:184::-;26173:11;26207:6;26202:3;26195:19;26247:4;26242:3;26238:14;26223:29;;26074:184;;;;:::o;26264:132::-;26331:4;26354:3;26346:11;;26384:4;26379:3;26375:14;26367:22;;26264:132;;;:::o;26402:108::-;26479:24;26497:5;26479:24;:::i;:::-;26474:3;26467:37;26402:108;;:::o;26516:179::-;26585:10;26606:46;26648:3;26640:6;26606:46;:::i;:::-;26684:4;26679:3;26675:14;26661:28;;26516:179;;;;:::o;26701:113::-;26771:4;26803;26798:3;26794:14;26786:22;;26701:113;;;:::o;26850:732::-;26969:3;26998:54;27046:5;26998:54;:::i;:::-;27068:86;27147:6;27142:3;27068:86;:::i;:::-;27061:93;;27178:56;27228:5;27178:56;:::i;:::-;27257:7;27288:1;27273:284;27298:6;27295:1;27292:13;27273:284;;;27374:6;27368:13;27401:63;27460:3;27445:13;27401:63;:::i;:::-;27394:70;;27487:60;27540:6;27487:60;:::i;:::-;27477:70;;27333:224;27320:1;27317;27313:9;27308:14;;27273:284;;;27277:14;27573:3;27566:10;;26974:608;;;26850:732;;;;:::o;27588:831::-;27851:4;27889:3;27878:9;27874:19;27866:27;;27903:71;27971:1;27960:9;27956:17;27947:6;27903:71;:::i;:::-;27984:80;28060:2;28049:9;28045:18;28036:6;27984:80;:::i;:::-;28111:9;28105:4;28101:20;28096:2;28085:9;28081:18;28074:48;28139:108;28242:4;28233:6;28139:108;:::i;:::-;28131:116;;28257:72;28325:2;28314:9;28310:18;28301:6;28257:72;:::i;:::-;28339:73;28407:3;28396:9;28392:19;28383:6;28339:73;:::i;:::-;27588:831;;;;;;;;:::o;28425:180::-;28473:77;28470:1;28463:88;28570:4;28567:1;28560:15;28594:4;28591:1;28584:15;28611:185;28651:1;28668:20;28686:1;28668:20;:::i;:::-;28663:25;;28702:20;28720:1;28702:20;:::i;:::-;28697:25;;28741:1;28731:35;;28746:18;;:::i;:::-;28731:35;28788:1;28785;28781:9;28776:14;;28611:185;;;;:::o;28802:220::-;28942:34;28938:1;28930:6;28926:14;28919:58;29011:3;29006:2;28998:6;28994:15;28987:28;28802:220;:::o;29028:366::-;29170:3;29191:67;29255:2;29250:3;29191:67;:::i;:::-;29184:74;;29267:93;29356:3;29267:93;:::i;:::-;29385:2;29380:3;29376:12;29369:19;;29028:366;;;:::o;29400:419::-;29566:4;29604:2;29593:9;29589:18;29581:26;;29653:9;29647:4;29643:20;29639:1;29628:9;29624:17;29617:47;29681:131;29807:4;29681:131;:::i;:::-;29673:139;;29400:419;;;:::o;29825:177::-;29965:29;29961:1;29953:6;29949:14;29942:53;29825:177;:::o;30008:366::-;30150:3;30171:67;30235:2;30230:3;30171:67;:::i;:::-;30164:74;;30247:93;30336:3;30247:93;:::i;:::-;30365:2;30360:3;30356:12;30349:19;;30008:366;;;:::o;30380:419::-;30546:4;30584:2;30573:9;30569:18;30561:26;;30633:9;30627:4;30623:20;30619:1;30608:9;30604:17;30597:47;30661:131;30787:4;30661:131;:::i;:::-;30653:139;;30380:419;;;:::o
Swarm Source
ipfs://e806736c77ebe1be2673e7896464401ee12131e8fe1665ecf52bdaef8f4c0171
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.