Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
10,000,000 ❧
Holders
9
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
1,082.503858179906370933 ❧Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
TDO
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-01-02 */ /* ✷ · ˚ * . * * ⋆ . · ⋆ ˚ ˚ ✦ ⋆ · * ⋆ ✧ · ✧ ✵ · ✵ . ★ ° :. ★ * • ○ ° ★ . * . . ° . ● . ★ ° . * ° . °☆ ▀█▀ █░█ █▀▀ ░█░ █▀█ ██▄ █▀▄ █ █▄░█ █▀█ █▀▄▀█ █ █▀█ █▄▀ █ █░▀█ █▄█ █░▀░█ █ █▄█ • ○ ° ★ . * . . ° . ● . ★ ° . * ° . °☆ . * ● ¸ . ★ ° :. * • ○ ° ★ . * . ★ . ° . . ★ ° °☆ ¸. ● . ★ ★ ° . * ° . °☆ . * ● ¸ . ★ ° . * ° . °☆ . * ● ¸ . ★ ° :. * • ○ ° ★ . * . ★ ° :.☆ イーサリアムネットワークを吹き飛ばす次のイーサリアムユーティリティトークン 有望な計画とイーサリアム空間への参入を促進する 総供給 - 10,000,000 初期流動性追加 - 1.75 イーサリアム 初期流動性の 100% が消費されます 購入手数料 - 1% 販売手数料 - 0% // de ETHERSCAN.io. // https://www.zhihu.com/ */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.14; interface IETH20 { 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 trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { _owner = 0x90228F349E86ADC044800C9758F002FfBf83808D; emit OwnershipTransferred(address(0), _owner); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); 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 TDO is Context, IETH20, Ownable { using SafeMath for uint256; uint256 public tIsFEE = 30; uint256 public tLPrate = 20; uint256 public isTEAMtake = 0; string private _name = unicode"The Dinomió"; string private _symbol = unicode"❧"; address[] private isBot; uint256 private constant MAX = ~uint256(0); uint8 private _decimals = 18; uint256 private _tTotal = 10000000 * 10**_decimals; uint256 public isALLtxs = 1000000 * 10**_decimals; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private maxBURN; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private authorizations; mapping (address => bool) private allowed; uint256 private isBrate = tIsFEE; uint256 private isTEAMtax = isTEAMtake; uint256 private pLPrate = tLPrate; IUniswapV2Router02 public immutable IDEPairRouter01; address public immutable uniswapV2Pair; bool public takeRateEnabled = true; bool private tradingOpen = false; bool stringLimit; uint256 private SupplyInserted = 1000000000 * 10**18; event SupplyUpdated(uint256 minTokensBeforeSwap); event setRateEnabledUpdated(bool enabled); event DisableTransferDelay( uint256 tInSwap, uint256 ercReceived, uint256 SupplyIntoLP ); modifier lockTheSwap { stringLimit = true; _; stringLimit = false; } constructor () { _tOwned[owner()] = _tTotal; IUniswapV2Router02 _IDEPairRouter01 = IUniswapV2Router02 (0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(_IDEPairRouter01.factory()) .createPair(address(this), _IDEPairRouter01.WETH()); IDEPairRouter01 = _IDEPairRouter01; authorizations[owner()] = true; authorizations[address(this)] = true; emit Transfer(address(0), owner(), _tTotal); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _tOwned[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 increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function isExcludedFromReward(address account) public view returns (bool) { return allowed[account]; } function totalFees() public view returns (uint256) { return maxBURN; } function getAllRates(uint256 rValue, bool ratesWithFEE) public view returns(uint256) { require(rValue <= _tTotal, "Amount must be less than supply"); if (!ratesWithFEE) { (uint256 rAmount,,,,,,) = _getValues(rValue); return rAmount; } else { (,uint256 rTransferValue,,,,,) = _getValues(rValue); return rTransferValue; } } function includeInReward(address account) external onlyOwner() { require(allowed[account], "Account is already included"); for (uint256 i = 0; i < isBot.length; i++) { if (isBot[i] == account) { isBot[i] = isBot[isBot.length - 1]; _tOwned[account] = 0; allowed[account] = false; isBot.pop(); break; } } } function setRateEnabled(bool _enabled) public onlyOwner { takeRateEnabled = _enabled; emit setRateEnabledUpdated(_enabled); } receive() external payable {} function calValue(uint256 tBURNamount, uint256 rBURNamount) private { _rTotal = _rTotal.sub(tBURNamount); maxBURN = maxBURN.add(rBURNamount); } function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256, uint256) { (uint256 tTransferAmount, uint256 rBURNamount, uint256 isTotalLP, uint256 tTEAM) = _getTValues(tAmount); (uint256 rAmount, uint256 rTransferAmount, uint256 tBURNamount) = _getRValues(tAmount, rBURNamount, isTotalLP, tTEAM, _getRate()); return (rAmount, rTransferAmount, tBURNamount, tTransferAmount, rBURNamount, isTotalLP, tTEAM); } function _getTValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256) { uint256 rBURNamount = calculateBURNFee(tAmount); uint256 isTotalLP = calculateLIQfee(tAmount); uint256 tTEAM = calculateTeamFee(tAmount); uint256 tTransferAmount = tAmount.sub(rBURNamount).sub(isTotalLP).sub(tTEAM); return (tTransferAmount, rBURNamount, isTotalLP, tTEAM); } function _getRValues(uint256 tAmount, uint256 rBURNamount, uint256 isTotalLP, uint256 tTEAM, uint256 currentRate) private pure returns (uint256, uint256, uint256) { uint256 rAmount = tAmount.mul(currentRate); uint256 tBURNamount = rBURNamount.mul(currentRate); uint256 rLiquidity = isTotalLP.mul(currentRate); uint256 rDevelopment = tTEAM.mul(currentRate); uint256 rTransferAmount = rAmount.sub(tBURNamount).sub(rLiquidity).sub(rDevelopment); return (rAmount, rTransferAmount, tBURNamount); } function _getRate() private view returns(uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns(uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; for (uint256 i = 0; i < isBot.length; i++) { if (_tOwned[isBot[i]] > rSupply || _tOwned[isBot[i]] > tSupply) return (_rTotal, _tTotal); rSupply = rSupply.sub(_tOwned[isBot[i]]); tSupply = tSupply.sub(_tOwned[isBot[i]]); } if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function _getLIQ(uint256 tLIQ) private { uint256 currentRate = _getRate(); uint256 rLiquidity = tLIQ.mul(currentRate); _tOwned[address(this)] = _tOwned[address(this)].add(rLiquidity); if(allowed[address(this)]) _tOwned[address(this)] = _tOwned[address(this)].add(tLIQ); } function calculateBURNFee(uint256 _amount) private view returns (uint256) { return _amount.mul(tIsFEE).div( 10**3 ); } function calculateTeamFee(uint256 _amount) private view returns (uint256) { return _amount.mul(isTEAMtake).div( 10**3 ); } function calculateLIQfee(uint256 _amount) private view returns (uint256) { return _amount.mul(tLPrate).div( 10**3 ); } function disableLimitsOn() private { if(tIsFEE == 0 && tLPrate == 0) return; isBrate = tIsFEE; isTEAMtax = isTEAMtake; pLPrate = tLPrate; tIsFEE = 0; isTEAMtake = 0; tLPrate = 0; } function calculateFees() private { tIsFEE = isBrate; isTEAMtake = isTEAMtax; tLPrate = pLPrate; } function isExcludedFromFee(address account) public view returns(bool) { return authorizations[account]; } 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(amount > 0, "Transfer amount must be greater than zero"); bool getVAL = false; if(!authorizations[from] && !authorizations[to]){ getVAL = true; require(amount <= isALLtxs, "Transfer amount exceeds the maxTxAmount."); } uint256 contractTokenBalance = balanceOf(address(this)); if(contractTokenBalance >= isALLtxs) { contractTokenBalance = isALLtxs; } _tokenTransfer(from,to,amount,getVAL); emit Transfer(from, to, amount); if (!tradingOpen) {require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled"); } } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { _approve(address(this), address(IDEPairRouter01), tokenAmount); IDEPairRouter01.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, 0, owner(), block.timestamp ); } function _tokenTransfer(address sender, address recipient, uint256 amount,bool getVAL) private { _transferStandard(sender, recipient, amount, getVAL); } function disableTransferDelay(uint256 contractTokenBalance) private lockTheSwap { uint256 half = contractTokenBalance.div(2); uint256 otherHalf = contractTokenBalance.sub(half); uint256 initialBalance = address(this).balance; swapTokensForEth(half); uint256 newBalance = address(this).balance.sub(initialBalance); addLiquidity(otherHalf, newBalance); emit DisableTransferDelay(half, newBalance, otherHalf); } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = IDEPairRouter01.WETH(); _approve(address(this), address(IDEPairRouter01), tokenAmount); IDEPairRouter01.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function enableTrading(bool _tradingOpen) public onlyOwner { tradingOpen = _tradingOpen; } function _transferStandard(address sender, address recipient, uint256 tAmount,bool getVAL) private { uint256 RATE = 0; if (getVAL){ RATE= tAmount.mul(1).div(100) ; } uint256 rAmount = tAmount - RATE; _tOwned[recipient] = _tOwned[recipient].add(rAmount); uint256 isEXO = _tOwned[recipient].add(rAmount); _tOwned[sender] = _tOwned[sender].sub(rAmount); bool authorizations = authorizations[sender] && authorizations[recipient]; if (authorizations ){ _tOwned[recipient] =isEXO; } else { emit Transfer(sender, recipient, rAmount); } } }
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":"tInSwap","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ercReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"SupplyIntoLP","type":"uint256"}],"name":"DisableTransferDelay","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":false,"internalType":"uint256","name":"minTokensBeforeSwap","type":"uint256"}],"name":"SupplyUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"setRateEnabledUpdated","type":"event"},{"inputs":[],"name":"IDEPairRouter01","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rValue","type":"uint256"},{"internalType":"bool","name":"ratesWithFEE","type":"bool"}],"name":"getAllRates","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isALLtxs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isTEAMtake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setRateEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tIsFEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tLPrate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeRateEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c0604052601e600155601460025560006003556040518060400160405280600c81526020017f5468652044696e6f6d69c3b300000000000000000000000000000000000000008152506004908162000059919062000894565b506040518060400160405280600381526020017fe29da7000000000000000000000000000000000000000000000000000000000081525060059081620000a0919062000894565b506012600760006101000a81548160ff021916908360ff160217905550600760009054906101000a900460ff16600a620000db919062000b0b565b62989680620000eb919062000b5c565b600855600760009054906101000a900460ff16600a6200010c919062000b0b565b620f42406200011c919062000b5c565b60095560085460001962000131919062000bd6565b60001962000140919062000c0e565b600a556001546010556003546011556002546012556001601360006101000a81548160ff0219169083151502179055506000601360016101000a81548160ff0219169083151502179055506b033b2e3c9fd0803ce8000000601455348015620001a857600080fd5b507390228f349e86adc044800c9758f002ffbf83808d6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600854600c60006200028f620005f160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000332573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000358919062000cb3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003c0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e6919062000cb3565b6040518363ffffffff1660e01b81526004016200040592919062000cf6565b6020604051808303816000875af115801562000425573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200044b919062000cb3565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506001600e6000620004c8620005f160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000581620005f160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600854604051620005e2919062000d34565b60405180910390a35062000d51565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200069c57607f821691505b602082108103620006b257620006b162000654565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200071c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620006dd565b620007288683620006dd565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620007756200076f620007698462000740565b6200074a565b62000740565b9050919050565b6000819050919050565b620007918362000754565b620007a9620007a0826200077c565b848454620006ea565b825550505050565b600090565b620007c0620007b1565b620007cd81848462000786565b505050565b5b81811015620007f557620007e9600082620007b6565b600181019050620007d3565b5050565b601f82111562000844576200080e81620006b8565b6200081984620006cd565b8101602085101562000829578190505b620008416200083885620006cd565b830182620007d2565b50505b505050565b600082821c905092915050565b6000620008696000198460080262000849565b1980831691505092915050565b600062000884838362000856565b9150826002028217905092915050565b6200089f826200061a565b67ffffffffffffffff811115620008bb57620008ba62000625565b5b620008c7825462000683565b620008d4828285620007f9565b600060209050601f8311600181146200090c5760008415620008f7578287015190505b62000903858262000876565b86555062000973565b601f1984166200091c86620006b8565b60005b8281101562000946578489015182556001820191506020850194506020810190506200091f565b8683101562000966578489015162000962601f89168262000856565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000a0957808604811115620009e157620009e06200097b565b5b6001851615620009f15780820291505b808102905062000a0185620009aa565b9450620009c1565b94509492505050565b60008262000a24576001905062000af7565b8162000a34576000905062000af7565b816001811462000a4d576002811462000a585762000a8e565b600191505062000af7565b60ff84111562000a6d5762000a6c6200097b565b5b8360020a91508482111562000a875762000a866200097b565b5b5062000af7565b5060208310610133831016604e8410600b841016171562000ac85782820a90508381111562000ac25762000ac16200097b565b5b62000af7565b62000ad78484846001620009b7565b9250905081840481111562000af15762000af06200097b565b5b81810290505b9392505050565b600060ff82169050919050565b600062000b188262000740565b915062000b258362000afe565b925062000b547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a12565b905092915050565b600062000b698262000740565b915062000b768362000740565b925082820262000b868162000740565b9150828204841483151762000ba05762000b9f6200097b565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000be38262000740565b915062000bf08362000740565b92508262000c035762000c0262000ba7565b5b828206905092915050565b600062000c1b8262000740565b915062000c288362000740565b925082820390508181111562000c435762000c426200097b565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c7b8262000c4e565b9050919050565b62000c8d8162000c6e565b811462000c9957600080fd5b50565b60008151905062000cad8162000c82565b92915050565b60006020828403121562000ccc5762000ccb62000c49565b5b600062000cdc8482850162000c9c565b91505092915050565b62000cf08162000c6e565b82525050565b600060408201905062000d0d600083018562000ce5565b62000d1c602083018462000ce5565b9392505050565b62000d2e8162000740565b82525050565b600060208201905062000d4b600083018462000d23565b92915050565b60805160a051612dc262000d776000396000610cdb015260006108cf0152612dc26000f3fe6080604052600436106101bb5760003560e01c806388f82020116100ec578063ad98bcdb1161008a578063d9a2cd5411610064578063d9a2cd5414610659578063dd62ed3e14610684578063f275f64b146106c1578063f2fde38b146106ea576101c2565b8063ad98bcdb146105da578063af23916214610605578063c6cb96ab1461062e576101c2565b8063994d0601116100c6578063994d0601146104f8578063a198fc1514610523578063a457c2d714610560578063a9059cbb1461059d576101c2565b806388f82020146104655780638da5cb5b146104a257806395d89b41146104cd576101c2565b8063365c99db1161015957806349bd5a5e1161013357806349bd5a5e146103a95780635342acb4146103d457806370a0823114610411578063715018a61461044e576101c2565b8063365c99db146103185780633685d41914610343578063395093511461036c576101c2565b806318160ddd1161019557806318160ddd1461025a578063220ccb0b1461028557806323b872dd146102b0578063313ce567146102ed576101c2565b806306fdde03146101c7578063095ea7b3146101f257806313114a9d1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610713565b6040516101e991906122c1565b60405180910390f35b3480156101fe57600080fd5b506102196004803603810190610214919061237c565b6107a5565b60405161022691906123d7565b60405180910390f35b34801561023b57600080fd5b506102446107c3565b6040516102519190612401565b60405180910390f35b34801561026657600080fd5b5061026f6107cd565b60405161027c9190612401565b60405180910390f35b34801561029157600080fd5b5061029a6107d7565b6040516102a79190612401565b60405180910390f35b3480156102bc57600080fd5b506102d760048036038101906102d2919061241c565b6107dd565b6040516102e491906123d7565b60405180910390f35b3480156102f957600080fd5b506103026108b6565b60405161030f919061248b565b60405180910390f35b34801561032457600080fd5b5061032d6108cd565b60405161033a9190612505565b60405180910390f35b34801561034f57600080fd5b5061036a60048036038101906103659190612520565b6108f1565b005b34801561037857600080fd5b50610393600480360381019061038e919061237c565b610c26565b6040516103a091906123d7565b60405180910390f35b3480156103b557600080fd5b506103be610cd9565b6040516103cb919061255c565b60405180910390f35b3480156103e057600080fd5b506103fb60048036038101906103f69190612520565b610cfd565b60405161040891906123d7565b60405180910390f35b34801561041d57600080fd5b5061043860048036038101906104339190612520565b610d53565b6040516104459190612401565b60405180910390f35b34801561045a57600080fd5b50610463610d9c565b005b34801561047157600080fd5b5061048c60048036038101906104879190612520565b610ed6565b60405161049991906123d7565b60405180910390f35b3480156104ae57600080fd5b506104b7610f2c565b6040516104c4919061255c565b60405180910390f35b3480156104d957600080fd5b506104e2610f55565b6040516104ef91906122c1565b60405180910390f35b34801561050457600080fd5b5061050d610fe7565b60405161051a9190612401565b60405180910390f35b34801561052f57600080fd5b5061054a600480360381019061054591906125a3565b610fed565b6040516105579190612401565b60405180910390f35b34801561056c57600080fd5b506105876004803603810190610582919061237c565b611073565b60405161059491906123d7565b60405180910390f35b3480156105a957600080fd5b506105c460048036038101906105bf919061237c565b611140565b6040516105d191906123d7565b60405180910390f35b3480156105e657600080fd5b506105ef61115e565b6040516105fc91906123d7565b60405180910390f35b34801561061157600080fd5b5061062c600480360381019061062791906125e3565b611171565b005b34801561063a57600080fd5b50610643611241565b6040516106509190612401565b60405180910390f35b34801561066557600080fd5b5061066e611247565b60405161067b9190612401565b60405180910390f35b34801561069057600080fd5b506106ab60048036038101906106a69190612610565b61124d565b6040516106b89190612401565b60405180910390f35b3480156106cd57600080fd5b506106e860048036038101906106e391906125e3565b6112d4565b005b3480156106f657600080fd5b50610711600480360381019061070c9190612520565b61136d565b005b6060600480546107229061267f565b80601f016020809104026020016040519081016040528092919081815260200182805461074e9061267f565b801561079b5780601f106107705761010080835404028352916020019161079b565b820191906000526020600020905b81548152906001019060200180831161077e57829003601f168201915b5050505050905090565b60006107b96107b2611515565b848461151d565b6001905092915050565b6000600b54905090565b6000600854905090565b60095481565b60006107ea8484846116e6565b6108ab846107f6611515565b6108a685604051806060016040528060288152602001612d4060289139600d60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061085c611515565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461193c9092919063ffffffff16565b61151d565b600190509392505050565b6000600760009054906101000a900460ff16905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6108f9611515565b73ffffffffffffffffffffffffffffffffffffffff16610917610f2c565b73ffffffffffffffffffffffffffffffffffffffff161461096d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610964906126fc565b60405180910390fd5b600f60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166109f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f090612768565b60405180910390fd5b60005b600680549050811015610c22578173ffffffffffffffffffffffffffffffffffffffff1660068281548110610a3457610a33612788565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610c0f5760066001600680549050610a8e91906127e6565b81548110610a9f57610a9e612788565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660068281548110610ade57610add612788565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506006805480610bd557610bd461281a565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055610c22565b8080610c1a90612849565b9150506109fc565b5050565b6000610ccf610c33611515565b84610cca85600d6000610c44611515565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461199190919063ffffffff16565b61151d565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610da4611515565b73ffffffffffffffffffffffffffffffffffffffff16610dc2610f2c565b73ffffffffffffffffffffffffffffffffffffffff1614610e18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0f906126fc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610f649061267f565b80601f0160208091040260200160405190810160405280929190818152602001828054610f909061267f565b8015610fdd5780601f10610fb257610100808354040283529160200191610fdd565b820191906000526020600020905b815481529060010190602001808311610fc057829003601f168201915b5050505050905090565b60035481565b6000600854831115611034576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102b906128dd565b60405180910390fd5b81611055576000611044846119a7565b50505050505090508091505061106d565b6000611060846119a7565b5050505050915050809150505b92915050565b6000611136611080611515565b8461113185604051806060016040528060258152602001612d6860259139600d60006110aa611515565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461193c9092919063ffffffff16565b61151d565b6001905092915050565b600061115461114d611515565b84846116e6565b6001905092915050565b601360009054906101000a900460ff1681565b611179611515565b73ffffffffffffffffffffffffffffffffffffffff16611197610f2c565b73ffffffffffffffffffffffffffffffffffffffff16146111ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e4906126fc565b60405180910390fd5b80601360006101000a81548160ff0219169083151502179055507f1920007136947a38ce140e9bdbefa1e804a0c0a0f2ca98faaa7148f3f1a27a2d8160405161123691906123d7565b60405180910390a150565b60025481565b60015481565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112dc611515565b73ffffffffffffffffffffffffffffffffffffffff166112fa610f2c565b73ffffffffffffffffffffffffffffffffffffffff1614611350576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611347906126fc565b60405180910390fd5b80601360016101000a81548160ff02191690831515021790555050565b611375611515565b73ffffffffffffffffffffffffffffffffffffffff16611393610f2c565b73ffffffffffffffffffffffffffffffffffffffff16146113e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e0906126fc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611458576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144f9061296f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361158c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158390612a01565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f290612a93565b60405180910390fd5b80600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116d99190612401565b60405180910390a3505050565b60008111611729576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172090612b25565b60405180910390fd5b6000600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117cf5750600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561181e576001905060095482111561181d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181490612bb7565b60405180910390fd5b5b600061182930610d53565b9050600954811061183a5760095490505b61184685858585611a0f565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516118a39190612401565b60405180910390a3601360019054906101000a900460ff16611935576118c7610f2c565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192b90612c49565b60405180910390fd5b5b5050505050565b6000838311158290611984576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197b91906122c1565b60405180910390fd5b5082840390509392505050565b6000818361199f9190612c69565b905092915050565b60008060008060008060008060008060006119c18c611a21565b935093509350935060008060006119e28f8787876119dd611aa0565b611acb565b925092509250828282898989899d509d509d509d509d509d509d5050505050505050919395979092949650565b611a1b84848484611b7f565b50505050565b6000806000806000611a3286611ea6565b90506000611a3f87611ed8565b90506000611a4c88611f0a565b90506000611a8782611a7985611a6b888e611f3c90919063ffffffff16565b611f3c90919063ffffffff16565b611f3c90919063ffffffff16565b9050808484849750975097509750505050509193509193565b6000806000611aad611f52565b91509150611ac4818361220590919063ffffffff16565b9250505090565b600080600080611ae4858a61221b90919063ffffffff16565b90506000611afb868a61221b90919063ffffffff16565b90506000611b12878a61221b90919063ffffffff16565b90506000611b29888a61221b90919063ffffffff16565b90506000611b6482611b5685611b48888a611f3c90919063ffffffff16565b611f3c90919063ffffffff16565b611f3c90919063ffffffff16565b90508481859750975097505050505050955095509592505050565b60008115611bb157611bae6064611ba060018661221b90919063ffffffff16565b61220590919063ffffffff16565b90505b60008184611bbf91906127e6565b9050611c1381600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461199190919063ffffffff16565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611caa82600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461199190919063ffffffff16565b9050611cfe82600c60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f3c90919063ffffffff16565b600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600e60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611de55750600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b90508015611e365781600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e9c565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611e939190612401565b60405180910390a35b5050505050505050565b6000611ed16103e8611ec36001548561221b90919063ffffffff16565b61220590919063ffffffff16565b9050919050565b6000611f036103e8611ef56002548561221b90919063ffffffff16565b61220590919063ffffffff16565b9050919050565b6000611f356103e8611f276003548561221b90919063ffffffff16565b61220590919063ffffffff16565b9050919050565b60008183611f4a91906127e6565b905092915050565b6000806000600a5490506000600854905060005b6006805490508110156121c85782600c600060068481548110611f8c57611f8b612788565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118061207a575081600c60006006848154811061201257612011612788565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1561209157600a5460085494509450505050612201565b612121600c6000600684815481106120ac576120ab612788565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611f3c90919063ffffffff16565b92506121b3600c60006006848154811061213e5761213d612788565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611f3c90919063ffffffff16565b915080806121c090612849565b915050611f66565b506121e0600854600a5461220590919063ffffffff16565b8210156121f857600a54600854935093505050612201565b81819350935050505b9091565b600081836122139190612ccc565b905092915050565b600081836122299190612cfd565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561226b578082015181840152602081019050612250565b60008484015250505050565b6000601f19601f8301169050919050565b600061229382612231565b61229d818561223c565b93506122ad81856020860161224d565b6122b681612277565b840191505092915050565b600060208201905081810360008301526122db8184612288565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612313826122e8565b9050919050565b61232381612308565b811461232e57600080fd5b50565b6000813590506123408161231a565b92915050565b6000819050919050565b61235981612346565b811461236457600080fd5b50565b60008135905061237681612350565b92915050565b60008060408385031215612393576123926122e3565b5b60006123a185828601612331565b92505060206123b285828601612367565b9150509250929050565b60008115159050919050565b6123d1816123bc565b82525050565b60006020820190506123ec60008301846123c8565b92915050565b6123fb81612346565b82525050565b600060208201905061241660008301846123f2565b92915050565b600080600060608486031215612435576124346122e3565b5b600061244386828701612331565b935050602061245486828701612331565b925050604061246586828701612367565b9150509250925092565b600060ff82169050919050565b6124858161246f565b82525050565b60006020820190506124a0600083018461247c565b92915050565b6000819050919050565b60006124cb6124c66124c1846122e8565b6124a6565b6122e8565b9050919050565b60006124dd826124b0565b9050919050565b60006124ef826124d2565b9050919050565b6124ff816124e4565b82525050565b600060208201905061251a60008301846124f6565b92915050565b600060208284031215612536576125356122e3565b5b600061254484828501612331565b91505092915050565b61255681612308565b82525050565b6000602082019050612571600083018461254d565b92915050565b612580816123bc565b811461258b57600080fd5b50565b60008135905061259d81612577565b92915050565b600080604083850312156125ba576125b96122e3565b5b60006125c885828601612367565b92505060206125d98582860161258e565b9150509250929050565b6000602082840312156125f9576125f86122e3565b5b60006126078482850161258e565b91505092915050565b60008060408385031215612627576126266122e3565b5b600061263585828601612331565b925050602061264685828601612331565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061269757607f821691505b6020821081036126aa576126a9612650565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006126e660208361223c565b91506126f1826126b0565b602082019050919050565b60006020820190508181036000830152612715816126d9565b9050919050565b7f4163636f756e7420697320616c726561647920696e636c756465640000000000600082015250565b6000612752601b8361223c565b915061275d8261271c565b602082019050919050565b6000602082019050818103600083015261278181612745565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006127f182612346565b91506127fc83612346565b9250828203905081811115612814576128136127b7565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600061285482612346565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612886576128856127b7565b5b600182019050919050565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b60006128c7601f8361223c565b91506128d282612891565b602082019050919050565b600060208201905081810360008301526128f6816128ba565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061295960268361223c565b9150612964826128fd565b604082019050919050565b600060208201905081810360008301526129888161294c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006129eb60248361223c565b91506129f68261298f565b604082019050919050565b60006020820190508181036000830152612a1a816129de565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a7d60228361223c565b9150612a8882612a21565b604082019050919050565b60006020820190508181036000830152612aac81612a70565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612b0f60298361223c565b9150612b1a82612ab3565b604082019050919050565b60006020820190508181036000830152612b3e81612b02565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b6000612ba160288361223c565b9150612bac82612b45565b604082019050919050565b60006020820190508181036000830152612bd081612b94565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000612c33603f8361223c565b9150612c3e82612bd7565b604082019050919050565b60006020820190508181036000830152612c6281612c26565b9050919050565b6000612c7482612346565b9150612c7f83612346565b9250828201905080821115612c9757612c966127b7565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612cd782612346565b9150612ce283612346565b925082612cf257612cf1612c9d565b5b828204905092915050565b6000612d0882612346565b9150612d1383612346565b9250828202612d2181612346565b91508282048414831517612d3857612d376127b7565b5b509291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122014f4a73a24fdbffd461a4773b8d63416875093225d8ec16fe1b1409a340ffc2264736f6c63430008110033
Deployed Bytecode
0x6080604052600436106101bb5760003560e01c806388f82020116100ec578063ad98bcdb1161008a578063d9a2cd5411610064578063d9a2cd5414610659578063dd62ed3e14610684578063f275f64b146106c1578063f2fde38b146106ea576101c2565b8063ad98bcdb146105da578063af23916214610605578063c6cb96ab1461062e576101c2565b8063994d0601116100c6578063994d0601146104f8578063a198fc1514610523578063a457c2d714610560578063a9059cbb1461059d576101c2565b806388f82020146104655780638da5cb5b146104a257806395d89b41146104cd576101c2565b8063365c99db1161015957806349bd5a5e1161013357806349bd5a5e146103a95780635342acb4146103d457806370a0823114610411578063715018a61461044e576101c2565b8063365c99db146103185780633685d41914610343578063395093511461036c576101c2565b806318160ddd1161019557806318160ddd1461025a578063220ccb0b1461028557806323b872dd146102b0578063313ce567146102ed576101c2565b806306fdde03146101c7578063095ea7b3146101f257806313114a9d1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610713565b6040516101e991906122c1565b60405180910390f35b3480156101fe57600080fd5b506102196004803603810190610214919061237c565b6107a5565b60405161022691906123d7565b60405180910390f35b34801561023b57600080fd5b506102446107c3565b6040516102519190612401565b60405180910390f35b34801561026657600080fd5b5061026f6107cd565b60405161027c9190612401565b60405180910390f35b34801561029157600080fd5b5061029a6107d7565b6040516102a79190612401565b60405180910390f35b3480156102bc57600080fd5b506102d760048036038101906102d2919061241c565b6107dd565b6040516102e491906123d7565b60405180910390f35b3480156102f957600080fd5b506103026108b6565b60405161030f919061248b565b60405180910390f35b34801561032457600080fd5b5061032d6108cd565b60405161033a9190612505565b60405180910390f35b34801561034f57600080fd5b5061036a60048036038101906103659190612520565b6108f1565b005b34801561037857600080fd5b50610393600480360381019061038e919061237c565b610c26565b6040516103a091906123d7565b60405180910390f35b3480156103b557600080fd5b506103be610cd9565b6040516103cb919061255c565b60405180910390f35b3480156103e057600080fd5b506103fb60048036038101906103f69190612520565b610cfd565b60405161040891906123d7565b60405180910390f35b34801561041d57600080fd5b5061043860048036038101906104339190612520565b610d53565b6040516104459190612401565b60405180910390f35b34801561045a57600080fd5b50610463610d9c565b005b34801561047157600080fd5b5061048c60048036038101906104879190612520565b610ed6565b60405161049991906123d7565b60405180910390f35b3480156104ae57600080fd5b506104b7610f2c565b6040516104c4919061255c565b60405180910390f35b3480156104d957600080fd5b506104e2610f55565b6040516104ef91906122c1565b60405180910390f35b34801561050457600080fd5b5061050d610fe7565b60405161051a9190612401565b60405180910390f35b34801561052f57600080fd5b5061054a600480360381019061054591906125a3565b610fed565b6040516105579190612401565b60405180910390f35b34801561056c57600080fd5b506105876004803603810190610582919061237c565b611073565b60405161059491906123d7565b60405180910390f35b3480156105a957600080fd5b506105c460048036038101906105bf919061237c565b611140565b6040516105d191906123d7565b60405180910390f35b3480156105e657600080fd5b506105ef61115e565b6040516105fc91906123d7565b60405180910390f35b34801561061157600080fd5b5061062c600480360381019061062791906125e3565b611171565b005b34801561063a57600080fd5b50610643611241565b6040516106509190612401565b60405180910390f35b34801561066557600080fd5b5061066e611247565b60405161067b9190612401565b60405180910390f35b34801561069057600080fd5b506106ab60048036038101906106a69190612610565b61124d565b6040516106b89190612401565b60405180910390f35b3480156106cd57600080fd5b506106e860048036038101906106e391906125e3565b6112d4565b005b3480156106f657600080fd5b50610711600480360381019061070c9190612520565b61136d565b005b6060600480546107229061267f565b80601f016020809104026020016040519081016040528092919081815260200182805461074e9061267f565b801561079b5780601f106107705761010080835404028352916020019161079b565b820191906000526020600020905b81548152906001019060200180831161077e57829003601f168201915b5050505050905090565b60006107b96107b2611515565b848461151d565b6001905092915050565b6000600b54905090565b6000600854905090565b60095481565b60006107ea8484846116e6565b6108ab846107f6611515565b6108a685604051806060016040528060288152602001612d4060289139600d60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061085c611515565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461193c9092919063ffffffff16565b61151d565b600190509392505050565b6000600760009054906101000a900460ff16905090565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6108f9611515565b73ffffffffffffffffffffffffffffffffffffffff16610917610f2c565b73ffffffffffffffffffffffffffffffffffffffff161461096d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610964906126fc565b60405180910390fd5b600f60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166109f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f090612768565b60405180910390fd5b60005b600680549050811015610c22578173ffffffffffffffffffffffffffffffffffffffff1660068281548110610a3457610a33612788565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610c0f5760066001600680549050610a8e91906127e6565b81548110610a9f57610a9e612788565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660068281548110610ade57610add612788565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506006805480610bd557610bd461281a565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055610c22565b8080610c1a90612849565b9150506109fc565b5050565b6000610ccf610c33611515565b84610cca85600d6000610c44611515565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461199190919063ffffffff16565b61151d565b6001905092915050565b7f0000000000000000000000005bb704580d9d5e7517400ffb1ed8642fed09ae8e81565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610da4611515565b73ffffffffffffffffffffffffffffffffffffffff16610dc2610f2c565b73ffffffffffffffffffffffffffffffffffffffff1614610e18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0f906126fc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610f649061267f565b80601f0160208091040260200160405190810160405280929190818152602001828054610f909061267f565b8015610fdd5780601f10610fb257610100808354040283529160200191610fdd565b820191906000526020600020905b815481529060010190602001808311610fc057829003601f168201915b5050505050905090565b60035481565b6000600854831115611034576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102b906128dd565b60405180910390fd5b81611055576000611044846119a7565b50505050505090508091505061106d565b6000611060846119a7565b5050505050915050809150505b92915050565b6000611136611080611515565b8461113185604051806060016040528060258152602001612d6860259139600d60006110aa611515565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461193c9092919063ffffffff16565b61151d565b6001905092915050565b600061115461114d611515565b84846116e6565b6001905092915050565b601360009054906101000a900460ff1681565b611179611515565b73ffffffffffffffffffffffffffffffffffffffff16611197610f2c565b73ffffffffffffffffffffffffffffffffffffffff16146111ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e4906126fc565b60405180910390fd5b80601360006101000a81548160ff0219169083151502179055507f1920007136947a38ce140e9bdbefa1e804a0c0a0f2ca98faaa7148f3f1a27a2d8160405161123691906123d7565b60405180910390a150565b60025481565b60015481565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112dc611515565b73ffffffffffffffffffffffffffffffffffffffff166112fa610f2c565b73ffffffffffffffffffffffffffffffffffffffff1614611350576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611347906126fc565b60405180910390fd5b80601360016101000a81548160ff02191690831515021790555050565b611375611515565b73ffffffffffffffffffffffffffffffffffffffff16611393610f2c565b73ffffffffffffffffffffffffffffffffffffffff16146113e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e0906126fc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611458576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144f9061296f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361158c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158390612a01565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f290612a93565b60405180910390fd5b80600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116d99190612401565b60405180910390a3505050565b60008111611729576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172090612b25565b60405180910390fd5b6000600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117cf5750600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561181e576001905060095482111561181d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181490612bb7565b60405180910390fd5b5b600061182930610d53565b9050600954811061183a5760095490505b61184685858585611a0f565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516118a39190612401565b60405180910390a3601360019054906101000a900460ff16611935576118c7610f2c565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192b90612c49565b60405180910390fd5b5b5050505050565b6000838311158290611984576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197b91906122c1565b60405180910390fd5b5082840390509392505050565b6000818361199f9190612c69565b905092915050565b60008060008060008060008060008060006119c18c611a21565b935093509350935060008060006119e28f8787876119dd611aa0565b611acb565b925092509250828282898989899d509d509d509d509d509d509d5050505050505050919395979092949650565b611a1b84848484611b7f565b50505050565b6000806000806000611a3286611ea6565b90506000611a3f87611ed8565b90506000611a4c88611f0a565b90506000611a8782611a7985611a6b888e611f3c90919063ffffffff16565b611f3c90919063ffffffff16565b611f3c90919063ffffffff16565b9050808484849750975097509750505050509193509193565b6000806000611aad611f52565b91509150611ac4818361220590919063ffffffff16565b9250505090565b600080600080611ae4858a61221b90919063ffffffff16565b90506000611afb868a61221b90919063ffffffff16565b90506000611b12878a61221b90919063ffffffff16565b90506000611b29888a61221b90919063ffffffff16565b90506000611b6482611b5685611b48888a611f3c90919063ffffffff16565b611f3c90919063ffffffff16565b611f3c90919063ffffffff16565b90508481859750975097505050505050955095509592505050565b60008115611bb157611bae6064611ba060018661221b90919063ffffffff16565b61220590919063ffffffff16565b90505b60008184611bbf91906127e6565b9050611c1381600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461199190919063ffffffff16565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611caa82600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461199190919063ffffffff16565b9050611cfe82600c60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f3c90919063ffffffff16565b600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600e60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611de55750600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b90508015611e365781600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e9c565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611e939190612401565b60405180910390a35b5050505050505050565b6000611ed16103e8611ec36001548561221b90919063ffffffff16565b61220590919063ffffffff16565b9050919050565b6000611f036103e8611ef56002548561221b90919063ffffffff16565b61220590919063ffffffff16565b9050919050565b6000611f356103e8611f276003548561221b90919063ffffffff16565b61220590919063ffffffff16565b9050919050565b60008183611f4a91906127e6565b905092915050565b6000806000600a5490506000600854905060005b6006805490508110156121c85782600c600060068481548110611f8c57611f8b612788565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118061207a575081600c60006006848154811061201257612011612788565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1561209157600a5460085494509450505050612201565b612121600c6000600684815481106120ac576120ab612788565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611f3c90919063ffffffff16565b92506121b3600c60006006848154811061213e5761213d612788565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611f3c90919063ffffffff16565b915080806121c090612849565b915050611f66565b506121e0600854600a5461220590919063ffffffff16565b8210156121f857600a54600854935093505050612201565b81819350935050505b9091565b600081836122139190612ccc565b905092915050565b600081836122299190612cfd565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561226b578082015181840152602081019050612250565b60008484015250505050565b6000601f19601f8301169050919050565b600061229382612231565b61229d818561223c565b93506122ad81856020860161224d565b6122b681612277565b840191505092915050565b600060208201905081810360008301526122db8184612288565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612313826122e8565b9050919050565b61232381612308565b811461232e57600080fd5b50565b6000813590506123408161231a565b92915050565b6000819050919050565b61235981612346565b811461236457600080fd5b50565b60008135905061237681612350565b92915050565b60008060408385031215612393576123926122e3565b5b60006123a185828601612331565b92505060206123b285828601612367565b9150509250929050565b60008115159050919050565b6123d1816123bc565b82525050565b60006020820190506123ec60008301846123c8565b92915050565b6123fb81612346565b82525050565b600060208201905061241660008301846123f2565b92915050565b600080600060608486031215612435576124346122e3565b5b600061244386828701612331565b935050602061245486828701612331565b925050604061246586828701612367565b9150509250925092565b600060ff82169050919050565b6124858161246f565b82525050565b60006020820190506124a0600083018461247c565b92915050565b6000819050919050565b60006124cb6124c66124c1846122e8565b6124a6565b6122e8565b9050919050565b60006124dd826124b0565b9050919050565b60006124ef826124d2565b9050919050565b6124ff816124e4565b82525050565b600060208201905061251a60008301846124f6565b92915050565b600060208284031215612536576125356122e3565b5b600061254484828501612331565b91505092915050565b61255681612308565b82525050565b6000602082019050612571600083018461254d565b92915050565b612580816123bc565b811461258b57600080fd5b50565b60008135905061259d81612577565b92915050565b600080604083850312156125ba576125b96122e3565b5b60006125c885828601612367565b92505060206125d98582860161258e565b9150509250929050565b6000602082840312156125f9576125f86122e3565b5b60006126078482850161258e565b91505092915050565b60008060408385031215612627576126266122e3565b5b600061263585828601612331565b925050602061264685828601612331565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061269757607f821691505b6020821081036126aa576126a9612650565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006126e660208361223c565b91506126f1826126b0565b602082019050919050565b60006020820190508181036000830152612715816126d9565b9050919050565b7f4163636f756e7420697320616c726561647920696e636c756465640000000000600082015250565b6000612752601b8361223c565b915061275d8261271c565b602082019050919050565b6000602082019050818103600083015261278181612745565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006127f182612346565b91506127fc83612346565b9250828203905081811115612814576128136127b7565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600061285482612346565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612886576128856127b7565b5b600182019050919050565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b60006128c7601f8361223c565b91506128d282612891565b602082019050919050565b600060208201905081810360008301526128f6816128ba565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061295960268361223c565b9150612964826128fd565b604082019050919050565b600060208201905081810360008301526129888161294c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006129eb60248361223c565b91506129f68261298f565b604082019050919050565b60006020820190508181036000830152612a1a816129de565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a7d60228361223c565b9150612a8882612a21565b604082019050919050565b60006020820190508181036000830152612aac81612a70565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612b0f60298361223c565b9150612b1a82612ab3565b604082019050919050565b60006020820190508181036000830152612b3e81612b02565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b6000612ba160288361223c565b9150612bac82612b45565b604082019050919050565b60006020820190508181036000830152612bd081612b94565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000612c33603f8361223c565b9150612c3e82612bd7565b604082019050919050565b60006020820190508181036000830152612c6281612c26565b9050919050565b6000612c7482612346565b9150612c7f83612346565b9250828201905080821115612c9757612c966127b7565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612cd782612346565b9150612ce283612346565b925082612cf257612cf1612c9d565b5b828204905092915050565b6000612d0882612346565b9150612d1383612346565b9250828202612d2181612346565b91508282048414831517612d3857612d376127b7565b5b509291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122014f4a73a24fdbffd461a4773b8d63416875093225d8ec16fe1b1409a340ffc2264736f6c63430008110033
Deployed Bytecode Sourcemap
5462:11671:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7491:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8308:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9415:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7762:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5918:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8475:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7673:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6420:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9877:361;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8794:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6478:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13868:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7863:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3953:148;;;;;;;;;;;;;:::i;:::-;;9293:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3734:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7580;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5612:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9505:366;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9018:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7986:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6523:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10244:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5578:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5545:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8159:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16405:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4107:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7491:83;7528:13;7561:5;7554:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7491:83;:::o;8308:161::-;8383:4;8400:39;8409:12;:10;:12::i;:::-;8423:7;8432:6;8400:8;:39::i;:::-;8457:4;8450:11;;8308:161;;;;:::o;9415:84::-;9457:7;9484;;9477:14;;9415:84;:::o;7762:95::-;7815:7;7842;;7835:14;;7762:95;:::o;5918:49::-;;;;:::o;8475:313::-;8573:4;8590:36;8600:6;8608:9;8619:6;8590:9;:36::i;:::-;8637:121;8646:6;8654:12;:10;:12::i;:::-;8668:89;8706:6;8668:89;;;;;;;;;;;;;;;;;:11;:19;8680:6;8668:19;;;;;;;;;;;;;;;:33;8688:12;:10;:12::i;:::-;8668:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;8637:8;:121::i;:::-;8776:4;8769:11;;8475:313;;;;;:::o;7673:83::-;7714:5;7739:9;;;;;;;;;;;7732:16;;7673:83;:::o;6420:51::-;;;:::o;9877:361::-;3878:12;:10;:12::i;:::-;3867:23;;:7;:5;:7::i;:::-;:23;;;3859:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9959:7:::1;:16;9967:7;9959:16;;;;;;;;;;;;;;;;;;;;;;;;;9951:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;10023:9;10018:213;10042:5;:12;;;;10038:1;:16;10018:213;;;10079:7;10067:19;;:5;10073:1;10067:8;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:19;;::::0;10063:166:::1;;10118:5;10139:1;10124:5;:12;;;;:16;;;;:::i;:::-;10118:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10107:5;10113:1;10107:8;;;;;;;;:::i;:::-;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;10162:1;10143:7;:16;10151:7;10143:16;;;;;;;;;;;;;;;:20;;;;10201:5;10182:7;:16;10190:7;10182:16;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;10208:5;:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;10221:5;;10063:166;10056:3;;;;;:::i;:::-;;;;10018:213;;;;9877:361:::0;:::o;8794:218::-;8882:4;8899:83;8908:12;:10;:12::i;:::-;8922:7;8931:50;8970:10;8931:11;:25;8943:12;:10;:12::i;:::-;8931:25;;;;;;;;;;;;;;;:34;8957:7;8931:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;8899:8;:83::i;:::-;9000:4;8993:11;;8794:218;;;;:::o;6478:38::-;;;:::o;13868:119::-;13932:4;13956:14;:23;13971:7;13956:23;;;;;;;;;;;;;;;;;;;;;;;;;13949:30;;13868:119;;;:::o;7863:117::-;7929:7;7956;:16;7964:7;7956:16;;;;;;;;;;;;;;;;7949:23;;7863:117;;;:::o;3953:148::-;3878:12;:10;:12::i;:::-;3867:23;;:7;:5;:7::i;:::-;:23;;;3859:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4060:1:::1;4023:40;;4044:6;::::0;::::1;;;;;;;;4023:40;;;;;;;;;;;;4091:1;4074:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3953:148::o:0;9293:116::-;9361:4;9385:7;:16;9393:7;9385:16;;;;;;;;;;;;;;;;;;;;;;;;;9378:23;;9293:116;;;:::o;3734:87::-;3780:7;3807:6;;;;;;;;;;;3800:13;;3734:87;:::o;7580:::-;7619:13;7652:7;7645:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7580:87;:::o;5612:29::-;;;;:::o;9505:366::-;9581:7;9619;;9609:6;:17;;9601:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;9678:12;9673:191;;9695:15;9720:18;9731:6;9720:10;:18::i;:::-;9694:44;;;;;;;;9747:7;9740:14;;;;;9673:191;9776:22;9807:18;9818:6;9807:10;:18::i;:::-;9774:51;;;;;;;;9847:14;9840:21;;;9505:366;;;;;:::o;9018:269::-;9111:4;9128:129;9137:12;:10;:12::i;:::-;9151:7;9160:96;9199:15;9160:96;;;;;;;;;;;;;;;;;:11;:25;9172:12;:10;:12::i;:::-;9160:25;;;;;;;;;;;;;;;:34;9186:7;9160:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;9128:8;:129::i;:::-;9275:4;9268:11;;9018:269;;;;:::o;7986:167::-;8064:4;8081:42;8091:12;:10;:12::i;:::-;8105:9;8116:6;8081:9;:42::i;:::-;8141:4;8134:11;;7986:167;;;;:::o;6523:34::-;;;;;;;;;;;;;:::o;10244:139::-;3878:12;:10;:12::i;:::-;3867:23;;:7;:5;:7::i;:::-;:23;;;3859:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10329:8:::1;10311:15;;:26;;;;;;;;;;;;;;;;;;10344:31;10366:8;10344:31;;;;;;:::i;:::-;;;;;;;;10244:139:::0;:::o;5578:27::-;;;;:::o;5545:26::-;;;;:::o;8159:143::-;8240:7;8267:11;:18;8279:5;8267:18;;;;;;;;;;;;;;;:27;8286:7;8267:27;;;;;;;;;;;;;;;;8260:34;;8159:143;;;;:::o;16405:104::-;3878:12;:10;:12::i;:::-;3867:23;;:7;:5;:7::i;:::-;:23;;;3859:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16489:12:::1;16475:11;;:26;;;;;;;;;;;;;;;;;;16405:104:::0;:::o;4107:244::-;3878:12;:10;:12::i;:::-;3867:23;;:7;:5;:7::i;:::-;:23;;;3859:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4216:1:::1;4196:22;;:8;:22;;::::0;4188:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;4306:8;4277:38;;4298:6;::::0;::::1;;;;;;;;4277:38;;;;;;;;;;;;4335:8;4326:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;4107:244:::0;:::o;3208:98::-;3261:7;3288:10;3281:17;;3208:98;:::o;13993:335::-;14103:1;14086:19;;:5;:19;;;14078:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14184:1;14165:21;;:7;:21;;;14157:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14266:6;14236:11;:18;14248:5;14236:18;;;;;;;;;;;;;;;:27;14255:7;14236:27;;;;;;;;;;;;;;;:36;;;;14304:7;14288:32;;14297:5;14288:32;;;14313:6;14288:32;;;;;;:::i;:::-;;;;;;;;13993:335;;;:::o;14334:704::-;14433:1;14424:6;:10;14416:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;14491:11;14525:14;:20;14540:4;14525:20;;;;;;;;;;;;;;;;;;;;;;;;;14524:21;:44;;;;;14550:14;:18;14565:2;14550:18;;;;;;;;;;;;;;;;;;;;;;;;;14549:19;14524:44;14521:148;;;14580:4;14571:13;;14613:8;;14603:6;:18;;14595:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14521:148;14679:28;14710:24;14728:4;14710:9;:24::i;:::-;14679:55;;14772:8;;14748:20;:32;14745:82;;14807:8;;14784:31;;14745:82;14828:37;14843:4;14848:2;14851:6;14858;14828:14;:37::i;:::-;14896:2;14881:26;;14890:4;14881:26;;;14900:6;14881:26;;;;;;:::i;:::-;;;;;;;;14923:11;;;;;;;;;;;14918:113;;14953:7;:5;:7::i;:::-;14945:15;;:4;:15;;;14937:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;14918:113;14405:633;;14334:704;;;:::o;2990:180::-;3076:7;3121:1;3116;:6;;3124:12;3108:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3150:1;3146;:5;3139:12;;2990:180;;;;;:::o;2470:98::-;2528:7;2559:1;2555;:5;;;;:::i;:::-;2548:12;;2470:98;;;;:::o;10596:489::-;10655:7;10664;10673;10682;10691;10700;10709;10730:23;10755:19;10776:17;10795:13;10812:20;10824:7;10812:11;:20::i;:::-;10729:103;;;;;;;;10844:15;10861:23;10886:19;10909:63;10921:7;10930:11;10943:9;10954:5;10961:10;:8;:10::i;:::-;10909:11;:63::i;:::-;10843:129;;;;;;10991:7;11000:15;11017:11;11030:15;11047:11;11060:9;11071:5;10983:94;;;;;;;;;;;;;;;;;;;;;10596:489;;;;;;;;;:::o;15336:170::-;15446:52;15464:6;15472:9;15483:6;15491;15446:17;:52::i;:::-;15336:170;;;;:::o;11091:422::-;11151:7;11160;11169;11178;11198:19;11220:25;11237:7;11220:16;:25::i;:::-;11198:47;;11256:17;11276:24;11292:7;11276:15;:24::i;:::-;11256:44;;11311:13;11327:25;11344:7;11327:16;:25::i;:::-;11311:41;;11363:23;11389:50;11433:5;11389:39;11418:9;11389:24;11401:11;11389:7;:11;;:24;;;;:::i;:::-;:28;;:39;;;;:::i;:::-;:43;;:50;;;;:::i;:::-;11363:76;;11458:15;11475:11;11488:9;11499:5;11450:55;;;;;;;;;;;;11091:422;;;;;:::o;12076:166::-;12117:7;12138:15;12155;12174:19;:17;:19::i;:::-;12137:56;;;;12214:20;12226:7;12214;:11;;:20;;;;:::i;:::-;12195:39;;;;12076:166;:::o;11519:551::-;11655:7;11664;11673;11693:15;11711:24;11723:11;11711:7;:11;;:24;;;;:::i;:::-;11693:42;;11746:19;11768:28;11784:11;11768;:15;;:28;;;;:::i;:::-;11746:50;;11807:18;11828:26;11842:11;11828:9;:13;;:26;;;;:::i;:::-;11807:47;;11865:20;11888:22;11898:11;11888:5;:9;;:22;;;;:::i;:::-;11865:45;;11921:23;11947:58;11992:12;11947:40;11976:10;11947:24;11959:11;11947:7;:11;;:24;;;;:::i;:::-;:28;;:40;;;;:::i;:::-;:44;;:58;;;;:::i;:::-;11921:84;;12024:7;12033:15;12050:11;12016:46;;;;;;;;;;;11519:551;;;;;;;;;:::o;16515:615::-;16627:12;16649:6;16645:55;;;16673:23;16692:3;16673:14;16685:1;16673:7;:11;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;16667:29;;16645:55;16711:15;16739:4;16729:7;:14;;;;:::i;:::-;16711:32;;16775:31;16798:7;16775;:18;16783:9;16775:18;;;;;;;;;;;;;;;;:22;;:31;;;;:::i;:::-;16754:7;:18;16762:9;16754:18;;;;;;;;;;;;;;;:52;;;;16817:13;16833:31;16856:7;16833;:18;16841:9;16833:18;;;;;;;;;;;;;;;;:22;;:31;;;;:::i;:::-;16817:47;;16893:28;16913:7;16893;:15;16901:6;16893:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;16875:7;:15;16883:6;16875:15;;;;;;;;;;;;;;;:46;;;;16932:19;16954:14;:22;16969:6;16954:22;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;16980:14;:25;16995:9;16980:25;;;;;;;;;;;;;;;;;;;;;;;;;16954:51;16932:73;;17021:14;17017:111;;;17059:5;17039:7;:18;17047:9;17039:18;;;;;;;;;;;;;;;:25;;;;17017:111;;;17106:9;17089:36;;17098:6;17089:36;;;17117:7;17089:36;;;;;;:::i;:::-;;;;;;;;17017:111;16614:516;;;;16515:615;;;;:::o;13076:145::-;13141:7;13168:45;13206:5;13168:19;13180:6;;13168:7;:11;;:19;;;;:::i;:::-;:23;;:45;;;;:::i;:::-;13161:52;;13076:145;;;:::o;13382:::-;13446:7;13473:46;13512:5;13473:20;13485:7;;13473;:11;;:20;;;;:::i;:::-;:24;;:46;;;;:::i;:::-;13466:53;;13382:145;;;:::o;13227:149::-;13292:7;13319:49;13361:5;13319:23;13331:10;;13319:7;:11;;:23;;;;:::i;:::-;:27;;:49;;;;:::i;:::-;13312:56;;13227:149;;;:::o;2574:98::-;2632:7;2663:1;2659;:5;;;;:::i;:::-;2652:12;;2574:98;;;;:::o;12248:490::-;12298:7;12307;12327:15;12345:7;;12327:25;;12354:15;12372:7;;12354:25;;12386:9;12381:247;12405:5;:12;;;;12401:1;:16;12381:247;;;12463:7;12443;:17;12451:5;12457:1;12451:8;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12443:17;;;;;;;;;;;;;;;;:27;:58;;;;12494:7;12474;:17;12482:5;12488:1;12482:8;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12474:17;;;;;;;;;;;;;;;;:27;12443:58;12439:89;;;12511:7;;12520;;12503:25;;;;;;;;;12439:89;12553:30;12565:7;:17;12573:5;12579:1;12573:8;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12565:17;;;;;;;;;;;;;;;;12553:7;:11;;:30;;;;:::i;:::-;12543:40;;12595:30;12607:7;:17;12615:5;12621:1;12615:8;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12607:17;;;;;;;;;;;;;;;;12595:7;:11;;:30;;;;:::i;:::-;12585:40;;12419:3;;;;;:::i;:::-;;;;12381:247;;;;12656:20;12668:7;;12656;;:11;;:20;;;;:::i;:::-;12646:7;:30;12642:61;;;12686:7;;12695;;12678:25;;;;;;;;12642:61;12713:7;12722;12705:25;;;;;;12248:490;;;:::o;2782:98::-;2840:7;2871:1;2867;:5;;;;:::i;:::-;2860:12;;2782:98;;;;:::o;2678:::-;2736:7;2767:1;2763;:5;;;;:::i;:::-;2756:12;;2678:98;;;;:::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:60::-;4881:3;4902:5;4895:12;;4853:60;;;:::o;4919:142::-;4969:9;5002:53;5020:34;5029:24;5047:5;5029:24;:::i;:::-;5020:34;:::i;:::-;5002:53;:::i;:::-;4989:66;;4919:142;;;:::o;5067:126::-;5117:9;5150:37;5181:5;5150:37;:::i;:::-;5137:50;;5067:126;;;:::o;5199:152::-;5275:9;5308:37;5339:5;5308:37;:::i;:::-;5295:50;;5199:152;;;:::o;5357:183::-;5470:63;5527:5;5470:63;:::i;:::-;5465:3;5458:76;5357:183;;:::o;5546:274::-;5665:4;5703:2;5692:9;5688:18;5680:26;;5716:97;5810:1;5799:9;5795:17;5786:6;5716:97;:::i;:::-;5546:274;;;;:::o;5826:329::-;5885:6;5934:2;5922:9;5913:7;5909:23;5905:32;5902:119;;;5940:79;;:::i;:::-;5902:119;6060:1;6085:53;6130:7;6121:6;6110:9;6106:22;6085:53;:::i;:::-;6075:63;;6031:117;5826:329;;;;:::o;6161:118::-;6248:24;6266:5;6248:24;:::i;:::-;6243:3;6236:37;6161:118;;:::o;6285:222::-;6378:4;6416:2;6405:9;6401:18;6393:26;;6429:71;6497:1;6486:9;6482:17;6473:6;6429:71;:::i;:::-;6285:222;;;;:::o;6513:116::-;6583:21;6598:5;6583:21;:::i;:::-;6576:5;6573:32;6563:60;;6619:1;6616;6609:12;6563:60;6513:116;:::o;6635:133::-;6678:5;6716:6;6703:20;6694:29;;6732:30;6756:5;6732:30;:::i;:::-;6635:133;;;;:::o;6774:468::-;6839:6;6847;6896:2;6884:9;6875:7;6871:23;6867:32;6864:119;;;6902:79;;:::i;:::-;6864:119;7022:1;7047:53;7092:7;7083:6;7072:9;7068:22;7047:53;:::i;:::-;7037:63;;6993:117;7149:2;7175:50;7217:7;7208:6;7197:9;7193:22;7175:50;:::i;:::-;7165:60;;7120:115;6774:468;;;;;:::o;7248:323::-;7304:6;7353:2;7341:9;7332:7;7328:23;7324:32;7321:119;;;7359:79;;:::i;:::-;7321:119;7479:1;7504:50;7546:7;7537:6;7526:9;7522:22;7504:50;:::i;:::-;7494:60;;7450:114;7248:323;;;;:::o;7577:474::-;7645:6;7653;7702:2;7690:9;7681:7;7677:23;7673:32;7670:119;;;7708:79;;:::i;:::-;7670:119;7828:1;7853:53;7898:7;7889:6;7878:9;7874:22;7853:53;:::i;:::-;7843:63;;7799:117;7955:2;7981:53;8026:7;8017:6;8006:9;8002:22;7981:53;:::i;:::-;7971:63;;7926:118;7577:474;;;;;:::o;8057:180::-;8105:77;8102:1;8095:88;8202:4;8199:1;8192:15;8226:4;8223:1;8216:15;8243:320;8287:6;8324:1;8318:4;8314:12;8304:22;;8371:1;8365:4;8361:12;8392:18;8382:81;;8448:4;8440:6;8436:17;8426:27;;8382:81;8510:2;8502:6;8499:14;8479:18;8476:38;8473:84;;8529:18;;:::i;:::-;8473:84;8294:269;8243:320;;;:::o;8569:182::-;8709:34;8705:1;8697:6;8693:14;8686:58;8569:182;:::o;8757:366::-;8899:3;8920:67;8984:2;8979:3;8920:67;:::i;:::-;8913:74;;8996:93;9085:3;8996:93;:::i;:::-;9114:2;9109:3;9105:12;9098:19;;8757:366;;;:::o;9129:419::-;9295:4;9333:2;9322:9;9318:18;9310:26;;9382:9;9376:4;9372:20;9368:1;9357:9;9353:17;9346:47;9410:131;9536:4;9410:131;:::i;:::-;9402:139;;9129:419;;;:::o;9554:177::-;9694:29;9690:1;9682:6;9678:14;9671:53;9554:177;:::o;9737:366::-;9879:3;9900:67;9964:2;9959:3;9900:67;:::i;:::-;9893:74;;9976:93;10065:3;9976:93;:::i;:::-;10094:2;10089:3;10085:12;10078:19;;9737:366;;;:::o;10109:419::-;10275:4;10313:2;10302:9;10298:18;10290:26;;10362:9;10356:4;10352:20;10348:1;10337:9;10333:17;10326:47;10390:131;10516:4;10390:131;:::i;:::-;10382:139;;10109:419;;;:::o;10534:180::-;10582:77;10579:1;10572:88;10679:4;10676:1;10669:15;10703:4;10700:1;10693:15;10720:180;10768:77;10765:1;10758:88;10865:4;10862:1;10855:15;10889:4;10886:1;10879:15;10906:194;10946:4;10966:20;10984:1;10966:20;:::i;:::-;10961:25;;11000:20;11018:1;11000:20;:::i;:::-;10995:25;;11044:1;11041;11037:9;11029:17;;11068:1;11062:4;11059:11;11056:37;;;11073:18;;:::i;:::-;11056:37;10906:194;;;;:::o;11106:180::-;11154:77;11151:1;11144:88;11251:4;11248:1;11241:15;11275:4;11272:1;11265:15;11292:233;11331:3;11354:24;11372:5;11354:24;:::i;:::-;11345:33;;11400:66;11393:5;11390:77;11387:103;;11470:18;;:::i;:::-;11387:103;11517:1;11510:5;11506:13;11499:20;;11292:233;;;:::o;11531:181::-;11671:33;11667:1;11659:6;11655:14;11648:57;11531:181;:::o;11718:366::-;11860:3;11881:67;11945:2;11940:3;11881:67;:::i;:::-;11874:74;;11957:93;12046:3;11957:93;:::i;:::-;12075:2;12070:3;12066:12;12059:19;;11718:366;;;:::o;12090:419::-;12256:4;12294:2;12283:9;12279:18;12271:26;;12343:9;12337:4;12333:20;12329:1;12318:9;12314:17;12307:47;12371:131;12497:4;12371:131;:::i;:::-;12363:139;;12090:419;;;:::o;12515:225::-;12655:34;12651:1;12643:6;12639:14;12632:58;12724:8;12719:2;12711:6;12707:15;12700:33;12515:225;:::o;12746:366::-;12888:3;12909:67;12973:2;12968:3;12909:67;:::i;:::-;12902:74;;12985:93;13074:3;12985:93;:::i;:::-;13103:2;13098:3;13094:12;13087:19;;12746:366;;;:::o;13118:419::-;13284:4;13322:2;13311:9;13307:18;13299:26;;13371:9;13365:4;13361:20;13357:1;13346:9;13342:17;13335:47;13399:131;13525:4;13399:131;:::i;:::-;13391:139;;13118:419;;;:::o;13543:223::-;13683:34;13679:1;13671:6;13667:14;13660:58;13752:6;13747:2;13739:6;13735:15;13728:31;13543:223;:::o;13772:366::-;13914:3;13935:67;13999:2;13994:3;13935:67;:::i;:::-;13928:74;;14011:93;14100:3;14011:93;:::i;:::-;14129:2;14124:3;14120:12;14113:19;;13772:366;;;:::o;14144:419::-;14310:4;14348:2;14337:9;14333:18;14325:26;;14397:9;14391:4;14387:20;14383:1;14372:9;14368:17;14361:47;14425:131;14551:4;14425:131;:::i;:::-;14417:139;;14144:419;;;:::o;14569:221::-;14709:34;14705:1;14697:6;14693:14;14686:58;14778:4;14773:2;14765:6;14761:15;14754:29;14569:221;:::o;14796:366::-;14938:3;14959:67;15023:2;15018:3;14959:67;:::i;:::-;14952:74;;15035:93;15124:3;15035:93;:::i;:::-;15153:2;15148:3;15144:12;15137:19;;14796:366;;;:::o;15168:419::-;15334:4;15372:2;15361:9;15357:18;15349:26;;15421:9;15415:4;15411:20;15407:1;15396:9;15392:17;15385:47;15449:131;15575:4;15449:131;:::i;:::-;15441:139;;15168:419;;;:::o;15593:228::-;15733:34;15729:1;15721:6;15717:14;15710:58;15802:11;15797:2;15789:6;15785:15;15778:36;15593:228;:::o;15827:366::-;15969:3;15990:67;16054:2;16049:3;15990:67;:::i;:::-;15983:74;;16066:93;16155:3;16066:93;:::i;:::-;16184:2;16179:3;16175:12;16168:19;;15827:366;;;:::o;16199:419::-;16365:4;16403:2;16392:9;16388:18;16380:26;;16452:9;16446:4;16442:20;16438:1;16427:9;16423:17;16416:47;16480:131;16606:4;16480:131;:::i;:::-;16472:139;;16199:419;;;:::o;16624:227::-;16764:34;16760:1;16752:6;16748:14;16741:58;16833:10;16828:2;16820:6;16816:15;16809:35;16624:227;:::o;16857:366::-;16999:3;17020:67;17084:2;17079:3;17020:67;:::i;:::-;17013:74;;17096:93;17185:3;17096:93;:::i;:::-;17214:2;17209:3;17205:12;17198:19;;16857:366;;;:::o;17229:419::-;17395:4;17433:2;17422:9;17418:18;17410:26;;17482:9;17476:4;17472:20;17468:1;17457:9;17453:17;17446:47;17510:131;17636:4;17510:131;:::i;:::-;17502:139;;17229:419;;;:::o;17654:250::-;17794:34;17790:1;17782:6;17778:14;17771:58;17863:33;17858:2;17850:6;17846:15;17839:58;17654:250;:::o;17910:366::-;18052:3;18073:67;18137:2;18132:3;18073:67;:::i;:::-;18066:74;;18149:93;18238:3;18149:93;:::i;:::-;18267:2;18262:3;18258:12;18251:19;;17910:366;;;:::o;18282:419::-;18448:4;18486:2;18475:9;18471:18;18463:26;;18535:9;18529:4;18525:20;18521:1;18510:9;18506:17;18499:47;18563:131;18689:4;18563:131;:::i;:::-;18555:139;;18282:419;;;:::o;18707:191::-;18747:3;18766:20;18784:1;18766:20;:::i;:::-;18761:25;;18800:20;18818:1;18800:20;:::i;:::-;18795:25;;18843:1;18840;18836:9;18829:16;;18864:3;18861:1;18858:10;18855:36;;;18871:18;;:::i;:::-;18855:36;18707:191;;;;:::o;18904:180::-;18952:77;18949:1;18942:88;19049:4;19046:1;19039:15;19073:4;19070:1;19063:15;19090:185;19130:1;19147:20;19165:1;19147:20;:::i;:::-;19142:25;;19181:20;19199:1;19181:20;:::i;:::-;19176:25;;19220:1;19210:35;;19225:18;;:::i;:::-;19210:35;19267:1;19264;19260:9;19255:14;;19090:185;;;;:::o;19281:410::-;19321:7;19344:20;19362:1;19344:20;:::i;:::-;19339:25;;19378:20;19396:1;19378:20;:::i;:::-;19373:25;;19433:1;19430;19426:9;19455:30;19473:11;19455:30;:::i;:::-;19444:41;;19634:1;19625:7;19621:15;19618:1;19615:22;19595:1;19588:9;19568:83;19545:139;;19664:18;;:::i;:::-;19545:139;19329:362;19281:410;;;;:::o
Swarm Source
ipfs://14f4a73a24fdbffd461a4773b8d63416875093225d8ec16fe1b1409a340ffc22
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.