ERC-20
Overview
Max Total Supply
1,000,000,000 Shiho
Holders
145
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
1,331,530.883426243 ShihoValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ShihouInu
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-01-11 */ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.4; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if(a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract ShihouInu is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _rOwned; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => User) private cooldown; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1e9 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; string private constant _name = unicode"Shihou Inu"; string private constant _symbol = unicode"Shiho"; uint8 private constant _decimals = 9; uint256 private _taxFee = 1; uint256 private _teamFee = 9; uint256 private _feeRate = 10; uint256 private _feeMultiplier = 1000; uint256 private _launchTime; uint256 private _previousTaxFee = _taxFee; uint256 private _previousteamFee = _teamFee; uint256 private _maxBuyAmount; address payable private _FeeAddress; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private _cooldownEnabled = true; bool private inSwap = false; uint256 private buyLimitEnd; uint private holdingCapPercent = 3; struct User { uint256 buy; uint256 sell; bool exists; } event MaxBuyAmountUpdated(uint _maxBuyAmount); event CooldownEnabledUpdated(bool _cooldown); event FeeMultiplierUpdated(uint _multiplier); event FeeRateUpdated(uint _rate); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor (address payable FeeAddress) { _FeeAddress = FeeAddress; _rOwned[_msgSender()] = _rTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[FeeAddress] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function tokenFromReflection(uint256 rAmount) private view returns(uint256) { require(rAmount <= _rTotal, "Amount must be less than total reflections"); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if(_taxFee == 0 && _teamFee == 0) return; _previousTaxFee = _taxFee; _previousteamFee = _teamFee; _taxFee = 0; _teamFee = 0; } function restoreAllFee() private { _taxFee = _previousTaxFee; _teamFee = _previousteamFee; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if(from != owner() && to != owner()) { if(_cooldownEnabled) { if(!cooldown[msg.sender].exists) { cooldown[msg.sender] = User(0,0,true); } } if (to != uniswapV2Pair && to != address(this)) require(balanceOf(to) + amount <= _getMaxHolding(), "Max holding cap breached."); // buy if(from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) { require(tradingOpen, "Trading not yet enabled."); _teamFee = 9; if(_cooldownEnabled) { if(buyLimitEnd > block.timestamp) { require(amount <= _maxBuyAmount); require(cooldown[to].buy < block.timestamp, "Your buy cooldown has not expired."); cooldown[to].buy = block.timestamp + (45 seconds); } } if(_cooldownEnabled) { cooldown[to].sell = block.timestamp + (15 seconds); } } uint256 contractTokenBalance = balanceOf(address(this)); // sell if(!inSwap && from != uniswapV2Pair && tradingOpen) { _teamFee = 9; if(_cooldownEnabled) { require(cooldown[from].sell < block.timestamp, "Your sell cooldown has not expired."); } if(contractTokenBalance > 0) { if(contractTokenBalance > balanceOf(uniswapV2Pair).mul(_feeRate).div(100)) { contractTokenBalance = balanceOf(uniswapV2Pair).mul(_feeRate).div(100); } swapTokensForEth(contractTokenBalance); } uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } bool takeFee = true; if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){ takeFee = false; } _tokenTransfer(from,to,amount,takeFee); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _FeeAddress.transfer(amount); } function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private { if(!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if(!takeFee) restoreAllFee(); } function _transferStandard(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _taxFee, _teamFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) { uint256 tFee = tAmount.mul(taxFee).div(100); uint256 tTeam = tAmount.mul(TeamFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRate() private view returns(uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns(uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if(rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function addLiquidity() external onlyOwner() { require(!tradingOpen,"trading is already open"); IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); _maxBuyAmount = 5000000 * 10**9; _launchTime = block.timestamp; IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); } function openTrading() public onlyOwner { tradingOpen = true; buyLimitEnd = block.timestamp + (500 seconds); } function manualswap() external { require(_msgSender() == _FeeAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _FeeAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } // fallback in case contract is not releasing tokens fast enough function setFeeRate(uint256 rate) external { require(_msgSender() == _FeeAddress); require(rate < 51, "Rate can't exceed 50%"); _feeRate = rate; emit FeeRateUpdated(_feeRate); } function setCooldownEnabled(bool onoff) external onlyOwner() { _cooldownEnabled = onoff; emit CooldownEnabledUpdated(_cooldownEnabled); } function thisBalance() public view returns (uint) { return balanceOf(address(this)); } function cooldownEnabled() public view returns (bool) { return _cooldownEnabled; } function timeToBuy(address buyer) public view returns (uint) { return block.timestamp - cooldown[buyer].buy; } function timeToSell(address buyer) public view returns (uint) { return block.timestamp - cooldown[buyer].sell; } function amountInPool() public view returns (uint) { return balanceOf(uniswapV2Pair); } function _getMaxHolding() internal view returns (uint256) { return (totalSupply() * holdingCapPercent) / 100; } function _setMaxHolding(uint8 percent) external { require(percent > 0, "Max holding cap cannot be less than 1"); holdingCapPercent = percent; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address payable","name":"FeeAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_cooldown","type":"bool"}],"name":"CooldownEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_multiplier","type":"uint256"}],"name":"FeeMultiplierUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_rate","type":"uint256"}],"name":"FeeRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxBuyAmount","type":"uint256"}],"name":"MaxBuyAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint8","name":"percent","type":"uint8"}],"name":"_setMaxHolding","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountInPool","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":"cooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","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":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setFeeRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"thisBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"buyer","type":"address"}],"name":"timeToBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"buyer","type":"address"}],"name":"timeToSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052670de0b6b3a76400006000196200001c9190620004bb565b6000196200002b919062000442565b60075560016009556009600a55600a600b556103e8600c55600954600e55600a54600f556001601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff02191690831515021790555060036015553480156200009757600080fd5b5060405162003fea38038062003fea8339818101604052810190620000bd9190620003e8565b6000620000cf620003a060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060075460026000620001c5620003a060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016005600062000219620003a860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200032a620003a060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a764000060405162000391919062000425565b60405180910390a3506200056b565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050620003e28162000551565b92915050565b600060208284031215620003fb57600080fd5b60006200040b84828501620003d1565b91505092915050565b6200041f81620004b1565b82525050565b60006020820190506200043c600083018462000414565b92915050565b60006200044f82620004b1565b91506200045c83620004b1565b925082821015620004725762000471620004f3565b5b828203905092915050565b60006200048a8262000491565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000620004c882620004b1565b9150620004d583620004b1565b925082620004e857620004e762000522565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6200055c816200047d565b81146200056857600080fd5b50565b613a6f806200057b6000396000f3fe6080604052600436106101445760003560e01c806370a08231116100b6578063a9fc35a91161006f578063a9fc35a914610457578063c3c8cd8014610494578063c9567bf9146104ab578063db92dbb6146104c2578063dd62ed3e146104ed578063e8078d941461052a5761014b565b806370a0823114610345578063715018a6146103825780638da5cb5b1461039957806395d89b41146103c4578063a9059cbb146103ef578063a985ceef1461042c5761014b565b8063313ce56711610108578063313ce5671461024b57806345596e2e14610276578063522644df1461029f5780635932ead1146102c857806368a3a6a5146102f15780636fc3eaec1461032e5761014b565b806306fdde0314610150578063095ea7b31461017b57806318160ddd146101b857806323b872dd146101e357806327f3a72a146102205761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610541565b6040516101729190613084565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190612b33565b61057e565b6040516101af9190613069565b60405180910390f35b3480156101c457600080fd5b506101cd61059c565b6040516101da91906132a6565b60405180910390f35b3480156101ef57600080fd5b5061020a60048036038101906102059190612ae4565b6105ac565b6040516102179190613069565b60405180910390f35b34801561022c57600080fd5b50610235610685565b60405161024291906132a6565b60405180910390f35b34801561025757600080fd5b50610260610695565b60405161026d919061331b565b60405180910390f35b34801561028257600080fd5b5061029d60048036038101906102989190612bc1565b61069e565b005b3480156102ab57600080fd5b506102c660048036038101906102c19190612c39565b610785565b005b3480156102d457600080fd5b506102ef60048036038101906102ea9190612b6f565b6107d8565b005b3480156102fd57600080fd5b5061031860048036038101906103139190612a56565b6108d0565b60405161032591906132a6565b60405180910390f35b34801561033a57600080fd5b50610343610927565b005b34801561035157600080fd5b5061036c60048036038101906103679190612a56565b610999565b60405161037991906132a6565b60405180910390f35b34801561038e57600080fd5b506103976109ea565b005b3480156103a557600080fd5b506103ae610b3d565b6040516103bb9190612f9b565b60405180910390f35b3480156103d057600080fd5b506103d9610b66565b6040516103e69190613084565b60405180910390f35b3480156103fb57600080fd5b5061041660048036038101906104119190612b33565b610ba3565b6040516104239190613069565b60405180910390f35b34801561043857600080fd5b50610441610bc1565b60405161044e9190613069565b60405180910390f35b34801561046357600080fd5b5061047e60048036038101906104799190612a56565b610bd8565b60405161048b91906132a6565b60405180910390f35b3480156104a057600080fd5b506104a9610c2f565b005b3480156104b757600080fd5b506104c0610ca9565b005b3480156104ce57600080fd5b506104d7610d6f565b6040516104e491906132a6565b60405180910390f35b3480156104f957600080fd5b50610514600480360381019061050f9190612aa8565b610da1565b60405161052191906132a6565b60405180910390f35b34801561053657600080fd5b5061053f610e28565b005b60606040518060400160405280600a81526020017f536869686f7520496e7500000000000000000000000000000000000000000000815250905090565b600061059261058b611338565b8484611340565b6001905092915050565b6000670de0b6b3a7640000905090565b60006105b984848461150b565b61067a846105c5611338565b61067585604051806060016040528060288152602001613a1260289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061062b611338565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3c9092919063ffffffff16565b611340565b600190509392505050565b600061069030610999565b905090565b60006009905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106df611338565b73ffffffffffffffffffffffffffffffffffffffff16146106ff57600080fd5b60338110610742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073990613166565b60405180910390fd5b80600b819055507f208f1b468d3d61f0f085e975bd9d04367c930d599642faad06695229f3eadcd8600b5460405161077a91906132a6565b60405180910390a150565b60008160ff16116107cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c290613286565b60405180910390fd5b8060ff1660158190555050565b6107e0611338565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461086d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610864906131c6565b60405180910390fd5b80601360156101000a81548160ff0219169083151502179055507f0d63187a8abb5b4d1bb562e1163897386b0a88ee72e0799dd105bd0fd6f28706601360159054906101000a900460ff166040516108c59190613069565b60405180910390a150565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015442610920919061346c565b9050919050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610968611338565b73ffffffffffffffffffffffffffffffffffffffff161461098857600080fd5b600047905061099681611ea0565b50565b60006109e3600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f0c565b9050919050565b6109f2611338565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a76906131c6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f536869686f000000000000000000000000000000000000000000000000000000815250905090565b6000610bb7610bb0611338565b848461150b565b6001905092915050565b6000601360159054906101000a900460ff16905090565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015442610c28919061346c565b9050919050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c70611338565b73ffffffffffffffffffffffffffffffffffffffff1614610c9057600080fd5b6000610c9b30610999565b9050610ca681611f7a565b50565b610cb1611338565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d35906131c6565b60405180910390fd5b6001601360146101000a81548160ff0219169083151502179055506101f442610d67919061338b565b601481905550565b6000610d9c601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610999565b905090565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e30611338565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ebd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb4906131c6565b60405180910390fd5b601360149054906101000a900460ff1615610f0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0490613246565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f9c30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a7640000611340565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610fe257600080fd5b505afa158015610ff6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101a9190612a7f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561107c57600080fd5b505afa158015611090573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b49190612a7f565b6040518363ffffffff1660e01b81526004016110d1929190612fb6565b602060405180830381600087803b1580156110eb57600080fd5b505af11580156110ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111239190612a7f565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306111ac30610999565b6000806111b7610b3d565b426040518863ffffffff1660e01b81526004016111d996959493929190613008565b6060604051808303818588803b1580156111f257600080fd5b505af1158015611206573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061122b9190612bea565b5050506611c37937e0800060108190555042600d81905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016112e2929190612fdf565b602060405180830381600087803b1580156112fc57600080fd5b505af1158015611310573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113349190612b98565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a790613226565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611420576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611417906130e6565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114fe91906132a6565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561157b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157290613206565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e2906130a6565b60405180910390fd5b6000811161162e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611625906131e6565b60405180910390fd5b611636610b3d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116a45750611674610b3d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d7957601360159054906101000a900460ff16156117aa57600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff166117a9576040518060600160405280600081526020016000815260200160011515815250600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff0219169083151502179055509050505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561183457503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561189757611841612274565b8161184b84610999565b611855919061338b565b1115611896576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188d90613106565b60405180910390fd5b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119425750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156119985750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b6557601360149054906101000a900460ff166119ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e390613266565b60405180910390fd5b6009600a81905550601360159054906101000a900460ff1615611afb57426014541115611afa57601054811115611a2257600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410611aa6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9d90613126565b60405180910390fd5b602d42611ab3919061338b565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b5b601360159054906101000a900460ff1615611b6457600f42611b1d919061338b565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b5b6000611b7030610999565b9050601360169054906101000a900460ff16158015611bdd5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611bf55750601360149054906101000a900460ff165b15611d77576009600a81905550601360159054906101000a900460ff1615611c9c5742600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015410611c9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9290613186565b60405180910390fd5b5b6000811115611d5d57611cf76064611ce9600b54611cdb601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610999565b61229c90919063ffffffff16565b61231790919063ffffffff16565b811115611d5357611d506064611d42600b54611d34601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610999565b61229c90919063ffffffff16565b61231790919063ffffffff16565b90505b611d5c81611f7a565b5b60004790506000811115611d7557611d7447611ea0565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e205750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611e2a57600090505b611e3684848484612361565b50505050565b6000838311158290611e84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7b9190613084565b60405180910390fd5b5060008385611e93919061346c565b9050809150509392505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f08573d6000803e3d6000fd5b5050565b6000600754821115611f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4a906130c6565b60405180910390fd5b6000611f5d61238e565b9050611f72818461231790919063ffffffff16565b915050919050565b6001601360166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611fd8577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156120065781602001602082028036833780820191505090505b5090503081600081518110612044577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156120e657600080fd5b505afa1580156120fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061211e9190612a7f565b81600181518110612158577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121bf30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611340565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122239594939291906132c1565b600060405180830381600087803b15801561223d57600080fd5b505af1158015612251573d6000803e3d6000fd5b50505050506000601360166101000a81548160ff02191690831515021790555050565b6000606460155461228361059c565b61228d9190613412565b61229791906133e1565b905090565b6000808314156122af5760009050612311565b600082846122bd9190613412565b90508284826122cc91906133e1565b1461230c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612303906131a6565b60405180910390fd5b809150505b92915050565b600061235983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123b9565b905092915050565b8061236f5761236e61241c565b5b61237a84848461245f565b806123885761238761262a565b5b50505050565b600080600061239b61263e565b915091506123b2818361231790919063ffffffff16565b9250505090565b60008083118290612400576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f79190613084565b60405180910390fd5b506000838561240f91906133e1565b9050809150509392505050565b600060095414801561243057506000600a54145b1561243a5761245d565b600954600e81905550600a54600f8190555060006009819055506000600a819055505b565b6000806000806000806124718761269d565b9550955095509550955095506124cf86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461270590919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061256485600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461274f90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125b0816127ad565b6125ba848361286a565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161261791906132a6565b60405180910390a3505050505050505050565b600e54600981905550600f54600a81905550565b600080600060075490506000670de0b6b3a76400009050612672670de0b6b3a764000060075461231790919063ffffffff16565b82101561269057600754670de0b6b3a7640000935093505050612699565b81819350935050505b9091565b60008060008060008060008060006126ba8a600954600a546128a4565b92509250925060006126ca61238e565b905060008060006126dd8e87878761293a565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061274783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e3c565b905092915050565b600080828461275e919061338b565b9050838110156127a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279a90613146565b60405180910390fd5b8091505092915050565b60006127b761238e565b905060006127ce828461229c90919063ffffffff16565b905061282281600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461274f90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61287f8260075461270590919063ffffffff16565b60078190555061289a8160085461274f90919063ffffffff16565b6008819055505050565b6000806000806128d060646128c2888a61229c90919063ffffffff16565b61231790919063ffffffff16565b905060006128fa60646128ec888b61229c90919063ffffffff16565b61231790919063ffffffff16565b9050600061292382612915858c61270590919063ffffffff16565b61270590919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612953858961229c90919063ffffffff16565b9050600061296a868961229c90919063ffffffff16565b90506000612981878961229c90919063ffffffff16565b905060006129aa8261299c858761270590919063ffffffff16565b61270590919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000813590506129d2816139b5565b92915050565b6000815190506129e7816139b5565b92915050565b6000813590506129fc816139cc565b92915050565b600081519050612a11816139cc565b92915050565b600081359050612a26816139e3565b92915050565b600081519050612a3b816139e3565b92915050565b600081359050612a50816139fa565b92915050565b600060208284031215612a6857600080fd5b6000612a76848285016129c3565b91505092915050565b600060208284031215612a9157600080fd5b6000612a9f848285016129d8565b91505092915050565b60008060408385031215612abb57600080fd5b6000612ac9858286016129c3565b9250506020612ada858286016129c3565b9150509250929050565b600080600060608486031215612af957600080fd5b6000612b07868287016129c3565b9350506020612b18868287016129c3565b9250506040612b2986828701612a17565b9150509250925092565b60008060408385031215612b4657600080fd5b6000612b54858286016129c3565b9250506020612b6585828601612a17565b9150509250929050565b600060208284031215612b8157600080fd5b6000612b8f848285016129ed565b91505092915050565b600060208284031215612baa57600080fd5b6000612bb884828501612a02565b91505092915050565b600060208284031215612bd357600080fd5b6000612be184828501612a17565b91505092915050565b600080600060608486031215612bff57600080fd5b6000612c0d86828701612a2c565b9350506020612c1e86828701612a2c565b9250506040612c2f86828701612a2c565b9150509250925092565b600060208284031215612c4b57600080fd5b6000612c5984828501612a41565b91505092915050565b6000612c6e8383612c7a565b60208301905092915050565b612c83816134a0565b82525050565b612c92816134a0565b82525050565b6000612ca382613346565b612cad8185613369565b9350612cb883613336565b8060005b83811015612ce9578151612cd08882612c62565b9750612cdb8361335c565b925050600181019050612cbc565b5085935050505092915050565b612cff816134b2565b82525050565b612d0e816134f5565b82525050565b6000612d1f82613351565b612d29818561337a565b9350612d39818560208601613507565b612d4281613598565b840191505092915050565b6000612d5a60238361337a565b9150612d65826135a9565b604082019050919050565b6000612d7d602a8361337a565b9150612d88826135f8565b604082019050919050565b6000612da060228361337a565b9150612dab82613647565b604082019050919050565b6000612dc360198361337a565b9150612dce82613696565b602082019050919050565b6000612de660228361337a565b9150612df1826136bf565b604082019050919050565b6000612e09601b8361337a565b9150612e148261370e565b602082019050919050565b6000612e2c60158361337a565b9150612e3782613737565b602082019050919050565b6000612e4f60238361337a565b9150612e5a82613760565b604082019050919050565b6000612e7260218361337a565b9150612e7d826137af565b604082019050919050565b6000612e9560208361337a565b9150612ea0826137fe565b602082019050919050565b6000612eb860298361337a565b9150612ec382613827565b604082019050919050565b6000612edb60258361337a565b9150612ee682613876565b604082019050919050565b6000612efe60248361337a565b9150612f09826138c5565b604082019050919050565b6000612f2160178361337a565b9150612f2c82613914565b602082019050919050565b6000612f4460188361337a565b9150612f4f8261393d565b602082019050919050565b6000612f6760258361337a565b9150612f7282613966565b604082019050919050565b612f86816134de565b82525050565b612f95816134e8565b82525050565b6000602082019050612fb06000830184612c89565b92915050565b6000604082019050612fcb6000830185612c89565b612fd86020830184612c89565b9392505050565b6000604082019050612ff46000830185612c89565b6130016020830184612f7d565b9392505050565b600060c08201905061301d6000830189612c89565b61302a6020830188612f7d565b6130376040830187612d05565b6130446060830186612d05565b6130516080830185612c89565b61305e60a0830184612f7d565b979650505050505050565b600060208201905061307e6000830184612cf6565b92915050565b6000602082019050818103600083015261309e8184612d14565b905092915050565b600060208201905081810360008301526130bf81612d4d565b9050919050565b600060208201905081810360008301526130df81612d70565b9050919050565b600060208201905081810360008301526130ff81612d93565b9050919050565b6000602082019050818103600083015261311f81612db6565b9050919050565b6000602082019050818103600083015261313f81612dd9565b9050919050565b6000602082019050818103600083015261315f81612dfc565b9050919050565b6000602082019050818103600083015261317f81612e1f565b9050919050565b6000602082019050818103600083015261319f81612e42565b9050919050565b600060208201905081810360008301526131bf81612e65565b9050919050565b600060208201905081810360008301526131df81612e88565b9050919050565b600060208201905081810360008301526131ff81612eab565b9050919050565b6000602082019050818103600083015261321f81612ece565b9050919050565b6000602082019050818103600083015261323f81612ef1565b9050919050565b6000602082019050818103600083015261325f81612f14565b9050919050565b6000602082019050818103600083015261327f81612f37565b9050919050565b6000602082019050818103600083015261329f81612f5a565b9050919050565b60006020820190506132bb6000830184612f7d565b92915050565b600060a0820190506132d66000830188612f7d565b6132e36020830187612d05565b81810360408301526132f58186612c98565b90506133046060830185612c89565b6133116080830184612f7d565b9695505050505050565b60006020820190506133306000830184612f8c565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613396826134de565b91506133a1836134de565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156133d6576133d561353a565b5b828201905092915050565b60006133ec826134de565b91506133f7836134de565b92508261340757613406613569565b5b828204905092915050565b600061341d826134de565b9150613428836134de565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156134615761346061353a565b5b828202905092915050565b6000613477826134de565b9150613482836134de565b9250828210156134955761349461353a565b5b828203905092915050565b60006134ab826134be565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613500826134de565b9050919050565b60005b8381101561352557808201518184015260208101905061350a565b83811115613534576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f4d617820686f6c64696e67206361702062726561636865642e00000000000000600082015250565b7f596f75722062757920636f6f6c646f776e20686173206e6f742065787069726560008201527f642e000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f526174652063616e277420657863656564203530250000000000000000000000600082015250565b7f596f75722073656c6c20636f6f6c646f776e20686173206e6f7420657870697260008201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b7f4d617820686f6c64696e67206361702063616e6e6f74206265206c657373207460008201527f68616e2031000000000000000000000000000000000000000000000000000000602082015250565b6139be816134a0565b81146139c957600080fd5b50565b6139d5816134b2565b81146139e057600080fd5b50565b6139ec816134de565b81146139f757600080fd5b50565b613a03816134e8565b8114613a0e57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220efcfbf49538e2494ff54c60e43a2e91525c91be0d56d0b2189239e8afdd3896364736f6c634300080400330000000000000000000000003e8a905c8c73627e0729e4a8e677bd77baf184f6
Deployed Bytecode
0x6080604052600436106101445760003560e01c806370a08231116100b6578063a9fc35a91161006f578063a9fc35a914610457578063c3c8cd8014610494578063c9567bf9146104ab578063db92dbb6146104c2578063dd62ed3e146104ed578063e8078d941461052a5761014b565b806370a0823114610345578063715018a6146103825780638da5cb5b1461039957806395d89b41146103c4578063a9059cbb146103ef578063a985ceef1461042c5761014b565b8063313ce56711610108578063313ce5671461024b57806345596e2e14610276578063522644df1461029f5780635932ead1146102c857806368a3a6a5146102f15780636fc3eaec1461032e5761014b565b806306fdde0314610150578063095ea7b31461017b57806318160ddd146101b857806323b872dd146101e357806327f3a72a146102205761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610541565b6040516101729190613084565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190612b33565b61057e565b6040516101af9190613069565b60405180910390f35b3480156101c457600080fd5b506101cd61059c565b6040516101da91906132a6565b60405180910390f35b3480156101ef57600080fd5b5061020a60048036038101906102059190612ae4565b6105ac565b6040516102179190613069565b60405180910390f35b34801561022c57600080fd5b50610235610685565b60405161024291906132a6565b60405180910390f35b34801561025757600080fd5b50610260610695565b60405161026d919061331b565b60405180910390f35b34801561028257600080fd5b5061029d60048036038101906102989190612bc1565b61069e565b005b3480156102ab57600080fd5b506102c660048036038101906102c19190612c39565b610785565b005b3480156102d457600080fd5b506102ef60048036038101906102ea9190612b6f565b6107d8565b005b3480156102fd57600080fd5b5061031860048036038101906103139190612a56565b6108d0565b60405161032591906132a6565b60405180910390f35b34801561033a57600080fd5b50610343610927565b005b34801561035157600080fd5b5061036c60048036038101906103679190612a56565b610999565b60405161037991906132a6565b60405180910390f35b34801561038e57600080fd5b506103976109ea565b005b3480156103a557600080fd5b506103ae610b3d565b6040516103bb9190612f9b565b60405180910390f35b3480156103d057600080fd5b506103d9610b66565b6040516103e69190613084565b60405180910390f35b3480156103fb57600080fd5b5061041660048036038101906104119190612b33565b610ba3565b6040516104239190613069565b60405180910390f35b34801561043857600080fd5b50610441610bc1565b60405161044e9190613069565b60405180910390f35b34801561046357600080fd5b5061047e60048036038101906104799190612a56565b610bd8565b60405161048b91906132a6565b60405180910390f35b3480156104a057600080fd5b506104a9610c2f565b005b3480156104b757600080fd5b506104c0610ca9565b005b3480156104ce57600080fd5b506104d7610d6f565b6040516104e491906132a6565b60405180910390f35b3480156104f957600080fd5b50610514600480360381019061050f9190612aa8565b610da1565b60405161052191906132a6565b60405180910390f35b34801561053657600080fd5b5061053f610e28565b005b60606040518060400160405280600a81526020017f536869686f7520496e7500000000000000000000000000000000000000000000815250905090565b600061059261058b611338565b8484611340565b6001905092915050565b6000670de0b6b3a7640000905090565b60006105b984848461150b565b61067a846105c5611338565b61067585604051806060016040528060288152602001613a1260289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061062b611338565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3c9092919063ffffffff16565b611340565b600190509392505050565b600061069030610999565b905090565b60006009905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106df611338565b73ffffffffffffffffffffffffffffffffffffffff16146106ff57600080fd5b60338110610742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073990613166565b60405180910390fd5b80600b819055507f208f1b468d3d61f0f085e975bd9d04367c930d599642faad06695229f3eadcd8600b5460405161077a91906132a6565b60405180910390a150565b60008160ff16116107cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c290613286565b60405180910390fd5b8060ff1660158190555050565b6107e0611338565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461086d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610864906131c6565b60405180910390fd5b80601360156101000a81548160ff0219169083151502179055507f0d63187a8abb5b4d1bb562e1163897386b0a88ee72e0799dd105bd0fd6f28706601360159054906101000a900460ff166040516108c59190613069565b60405180910390a150565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015442610920919061346c565b9050919050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610968611338565b73ffffffffffffffffffffffffffffffffffffffff161461098857600080fd5b600047905061099681611ea0565b50565b60006109e3600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f0c565b9050919050565b6109f2611338565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a76906131c6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f536869686f000000000000000000000000000000000000000000000000000000815250905090565b6000610bb7610bb0611338565b848461150b565b6001905092915050565b6000601360159054906101000a900460ff16905090565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015442610c28919061346c565b9050919050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c70611338565b73ffffffffffffffffffffffffffffffffffffffff1614610c9057600080fd5b6000610c9b30610999565b9050610ca681611f7a565b50565b610cb1611338565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d35906131c6565b60405180910390fd5b6001601360146101000a81548160ff0219169083151502179055506101f442610d67919061338b565b601481905550565b6000610d9c601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610999565b905090565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e30611338565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ebd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb4906131c6565b60405180910390fd5b601360149054906101000a900460ff1615610f0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0490613246565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f9c30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a7640000611340565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610fe257600080fd5b505afa158015610ff6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101a9190612a7f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561107c57600080fd5b505afa158015611090573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b49190612a7f565b6040518363ffffffff1660e01b81526004016110d1929190612fb6565b602060405180830381600087803b1580156110eb57600080fd5b505af11580156110ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111239190612a7f565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306111ac30610999565b6000806111b7610b3d565b426040518863ffffffff1660e01b81526004016111d996959493929190613008565b6060604051808303818588803b1580156111f257600080fd5b505af1158015611206573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061122b9190612bea565b5050506611c37937e0800060108190555042600d81905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016112e2929190612fdf565b602060405180830381600087803b1580156112fc57600080fd5b505af1158015611310573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113349190612b98565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a790613226565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611420576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611417906130e6565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114fe91906132a6565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561157b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157290613206565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e2906130a6565b60405180910390fd5b6000811161162e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611625906131e6565b60405180910390fd5b611636610b3d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116a45750611674610b3d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d7957601360159054906101000a900460ff16156117aa57600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff166117a9576040518060600160405280600081526020016000815260200160011515815250600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff0219169083151502179055509050505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561183457503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561189757611841612274565b8161184b84610999565b611855919061338b565b1115611896576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188d90613106565b60405180910390fd5b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119425750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156119985750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b6557601360149054906101000a900460ff166119ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e390613266565b60405180910390fd5b6009600a81905550601360159054906101000a900460ff1615611afb57426014541115611afa57601054811115611a2257600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410611aa6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9d90613126565b60405180910390fd5b602d42611ab3919061338b565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b5b601360159054906101000a900460ff1615611b6457600f42611b1d919061338b565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b5b6000611b7030610999565b9050601360169054906101000a900460ff16158015611bdd5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611bf55750601360149054906101000a900460ff165b15611d77576009600a81905550601360159054906101000a900460ff1615611c9c5742600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015410611c9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9290613186565b60405180910390fd5b5b6000811115611d5d57611cf76064611ce9600b54611cdb601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610999565b61229c90919063ffffffff16565b61231790919063ffffffff16565b811115611d5357611d506064611d42600b54611d34601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610999565b61229c90919063ffffffff16565b61231790919063ffffffff16565b90505b611d5c81611f7a565b5b60004790506000811115611d7557611d7447611ea0565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e205750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611e2a57600090505b611e3684848484612361565b50505050565b6000838311158290611e84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7b9190613084565b60405180910390fd5b5060008385611e93919061346c565b9050809150509392505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f08573d6000803e3d6000fd5b5050565b6000600754821115611f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4a906130c6565b60405180910390fd5b6000611f5d61238e565b9050611f72818461231790919063ffffffff16565b915050919050565b6001601360166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611fd8577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156120065781602001602082028036833780820191505090505b5090503081600081518110612044577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156120e657600080fd5b505afa1580156120fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061211e9190612a7f565b81600181518110612158577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121bf30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611340565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122239594939291906132c1565b600060405180830381600087803b15801561223d57600080fd5b505af1158015612251573d6000803e3d6000fd5b50505050506000601360166101000a81548160ff02191690831515021790555050565b6000606460155461228361059c565b61228d9190613412565b61229791906133e1565b905090565b6000808314156122af5760009050612311565b600082846122bd9190613412565b90508284826122cc91906133e1565b1461230c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612303906131a6565b60405180910390fd5b809150505b92915050565b600061235983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123b9565b905092915050565b8061236f5761236e61241c565b5b61237a84848461245f565b806123885761238761262a565b5b50505050565b600080600061239b61263e565b915091506123b2818361231790919063ffffffff16565b9250505090565b60008083118290612400576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f79190613084565b60405180910390fd5b506000838561240f91906133e1565b9050809150509392505050565b600060095414801561243057506000600a54145b1561243a5761245d565b600954600e81905550600a54600f8190555060006009819055506000600a819055505b565b6000806000806000806124718761269d565b9550955095509550955095506124cf86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461270590919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061256485600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461274f90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125b0816127ad565b6125ba848361286a565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161261791906132a6565b60405180910390a3505050505050505050565b600e54600981905550600f54600a81905550565b600080600060075490506000670de0b6b3a76400009050612672670de0b6b3a764000060075461231790919063ffffffff16565b82101561269057600754670de0b6b3a7640000935093505050612699565b81819350935050505b9091565b60008060008060008060008060006126ba8a600954600a546128a4565b92509250925060006126ca61238e565b905060008060006126dd8e87878761293a565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061274783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e3c565b905092915050565b600080828461275e919061338b565b9050838110156127a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279a90613146565b60405180910390fd5b8091505092915050565b60006127b761238e565b905060006127ce828461229c90919063ffffffff16565b905061282281600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461274f90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61287f8260075461270590919063ffffffff16565b60078190555061289a8160085461274f90919063ffffffff16565b6008819055505050565b6000806000806128d060646128c2888a61229c90919063ffffffff16565b61231790919063ffffffff16565b905060006128fa60646128ec888b61229c90919063ffffffff16565b61231790919063ffffffff16565b9050600061292382612915858c61270590919063ffffffff16565b61270590919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612953858961229c90919063ffffffff16565b9050600061296a868961229c90919063ffffffff16565b90506000612981878961229c90919063ffffffff16565b905060006129aa8261299c858761270590919063ffffffff16565b61270590919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000813590506129d2816139b5565b92915050565b6000815190506129e7816139b5565b92915050565b6000813590506129fc816139cc565b92915050565b600081519050612a11816139cc565b92915050565b600081359050612a26816139e3565b92915050565b600081519050612a3b816139e3565b92915050565b600081359050612a50816139fa565b92915050565b600060208284031215612a6857600080fd5b6000612a76848285016129c3565b91505092915050565b600060208284031215612a9157600080fd5b6000612a9f848285016129d8565b91505092915050565b60008060408385031215612abb57600080fd5b6000612ac9858286016129c3565b9250506020612ada858286016129c3565b9150509250929050565b600080600060608486031215612af957600080fd5b6000612b07868287016129c3565b9350506020612b18868287016129c3565b9250506040612b2986828701612a17565b9150509250925092565b60008060408385031215612b4657600080fd5b6000612b54858286016129c3565b9250506020612b6585828601612a17565b9150509250929050565b600060208284031215612b8157600080fd5b6000612b8f848285016129ed565b91505092915050565b600060208284031215612baa57600080fd5b6000612bb884828501612a02565b91505092915050565b600060208284031215612bd357600080fd5b6000612be184828501612a17565b91505092915050565b600080600060608486031215612bff57600080fd5b6000612c0d86828701612a2c565b9350506020612c1e86828701612a2c565b9250506040612c2f86828701612a2c565b9150509250925092565b600060208284031215612c4b57600080fd5b6000612c5984828501612a41565b91505092915050565b6000612c6e8383612c7a565b60208301905092915050565b612c83816134a0565b82525050565b612c92816134a0565b82525050565b6000612ca382613346565b612cad8185613369565b9350612cb883613336565b8060005b83811015612ce9578151612cd08882612c62565b9750612cdb8361335c565b925050600181019050612cbc565b5085935050505092915050565b612cff816134b2565b82525050565b612d0e816134f5565b82525050565b6000612d1f82613351565b612d29818561337a565b9350612d39818560208601613507565b612d4281613598565b840191505092915050565b6000612d5a60238361337a565b9150612d65826135a9565b604082019050919050565b6000612d7d602a8361337a565b9150612d88826135f8565b604082019050919050565b6000612da060228361337a565b9150612dab82613647565b604082019050919050565b6000612dc360198361337a565b9150612dce82613696565b602082019050919050565b6000612de660228361337a565b9150612df1826136bf565b604082019050919050565b6000612e09601b8361337a565b9150612e148261370e565b602082019050919050565b6000612e2c60158361337a565b9150612e3782613737565b602082019050919050565b6000612e4f60238361337a565b9150612e5a82613760565b604082019050919050565b6000612e7260218361337a565b9150612e7d826137af565b604082019050919050565b6000612e9560208361337a565b9150612ea0826137fe565b602082019050919050565b6000612eb860298361337a565b9150612ec382613827565b604082019050919050565b6000612edb60258361337a565b9150612ee682613876565b604082019050919050565b6000612efe60248361337a565b9150612f09826138c5565b604082019050919050565b6000612f2160178361337a565b9150612f2c82613914565b602082019050919050565b6000612f4460188361337a565b9150612f4f8261393d565b602082019050919050565b6000612f6760258361337a565b9150612f7282613966565b604082019050919050565b612f86816134de565b82525050565b612f95816134e8565b82525050565b6000602082019050612fb06000830184612c89565b92915050565b6000604082019050612fcb6000830185612c89565b612fd86020830184612c89565b9392505050565b6000604082019050612ff46000830185612c89565b6130016020830184612f7d565b9392505050565b600060c08201905061301d6000830189612c89565b61302a6020830188612f7d565b6130376040830187612d05565b6130446060830186612d05565b6130516080830185612c89565b61305e60a0830184612f7d565b979650505050505050565b600060208201905061307e6000830184612cf6565b92915050565b6000602082019050818103600083015261309e8184612d14565b905092915050565b600060208201905081810360008301526130bf81612d4d565b9050919050565b600060208201905081810360008301526130df81612d70565b9050919050565b600060208201905081810360008301526130ff81612d93565b9050919050565b6000602082019050818103600083015261311f81612db6565b9050919050565b6000602082019050818103600083015261313f81612dd9565b9050919050565b6000602082019050818103600083015261315f81612dfc565b9050919050565b6000602082019050818103600083015261317f81612e1f565b9050919050565b6000602082019050818103600083015261319f81612e42565b9050919050565b600060208201905081810360008301526131bf81612e65565b9050919050565b600060208201905081810360008301526131df81612e88565b9050919050565b600060208201905081810360008301526131ff81612eab565b9050919050565b6000602082019050818103600083015261321f81612ece565b9050919050565b6000602082019050818103600083015261323f81612ef1565b9050919050565b6000602082019050818103600083015261325f81612f14565b9050919050565b6000602082019050818103600083015261327f81612f37565b9050919050565b6000602082019050818103600083015261329f81612f5a565b9050919050565b60006020820190506132bb6000830184612f7d565b92915050565b600060a0820190506132d66000830188612f7d565b6132e36020830187612d05565b81810360408301526132f58186612c98565b90506133046060830185612c89565b6133116080830184612f7d565b9695505050505050565b60006020820190506133306000830184612f8c565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613396826134de565b91506133a1836134de565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156133d6576133d561353a565b5b828201905092915050565b60006133ec826134de565b91506133f7836134de565b92508261340757613406613569565b5b828204905092915050565b600061341d826134de565b9150613428836134de565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156134615761346061353a565b5b828202905092915050565b6000613477826134de565b9150613482836134de565b9250828210156134955761349461353a565b5b828203905092915050565b60006134ab826134be565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613500826134de565b9050919050565b60005b8381101561352557808201518184015260208101905061350a565b83811115613534576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f4d617820686f6c64696e67206361702062726561636865642e00000000000000600082015250565b7f596f75722062757920636f6f6c646f776e20686173206e6f742065787069726560008201527f642e000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f526174652063616e277420657863656564203530250000000000000000000000600082015250565b7f596f75722073656c6c20636f6f6c646f776e20686173206e6f7420657870697260008201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b7f4d617820686f6c64696e67206361702063616e6e6f74206265206c657373207460008201527f68616e2031000000000000000000000000000000000000000000000000000000602082015250565b6139be816134a0565b81146139c957600080fd5b50565b6139d5816134b2565b81146139e057600080fd5b50565b6139ec816134de565b81146139f757600080fd5b50565b613a03816134e8565b8114613a0e57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220efcfbf49538e2494ff54c60e43a2e91525c91be0d56d0b2189239e8afdd3896364736f6c63430008040033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000003e8a905c8c73627e0729e4a8e677bd77baf184f6
-----Decoded View---------------
Arg [0] : FeeAddress (address): 0x3e8a905C8C73627E0729e4A8E677BD77BAF184f6
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000003e8a905c8c73627e0729e4a8e677bd77baf184f6
Deployed Bytecode Sourcemap
3829:13107:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5899:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6751:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6176:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6920:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16038:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6085:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15644:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16767:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15870:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16250:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15376:190;;;;;;;;;;;;;:::i;:::-;;6279:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2908:148;;;;;;;;;;;;;:::i;:::-;;2694:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5990:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6425:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16146:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16382:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15173:191;;;;;;;;;;;;;:::i;:::-;;15032:133;;;;;;;;;;;;;:::i;:::-;;16516:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6600:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14261:763;;;;;;;;;;;;;:::i;:::-;;5899:83;5936:13;5969:5;;;;;;;;;;;;;;;;;5962:12;;5899:83;:::o;6751:161::-;6826:4;6843:39;6852:12;:10;:12::i;:::-;6866:7;6875:6;6843:8;:39::i;:::-;6900:4;6893:11;;6751:161;;;;:::o;6176:95::-;6229:7;4286:11;6249:14;;6176:95;:::o;6920:313::-;7018:4;7035:36;7045:6;7053:9;7064:6;7035:9;:36::i;:::-;7082:121;7091:6;7099:12;:10;:12::i;:::-;7113:89;7151:6;7113:89;;;;;;;;;;;;;;;;;:11;:19;7125:6;7113:19;;;;;;;;;;;;;;;:33;7133:12;:10;:12::i;:::-;7113:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7082:8;:121::i;:::-;7221:4;7214:11;;6920:313;;;;;:::o;16038:100::-;16082:4;16106:24;16124:4;16106:9;:24::i;:::-;16099:31;;16038:100;:::o;6085:83::-;6126:5;4541:1;6144:16;;6085:83;:::o;15644:218::-;15722:11;;;;;;;;;;;15706:27;;:12;:10;:12::i;:::-;:27;;;15698:36;;;;;;15760:2;15753:4;:9;15745:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;15810:4;15799:8;:15;;;;15830:24;15845:8;;15830:24;;;;;;:::i;:::-;;;;;;;;15644:218;:::o;16767:166::-;16844:1;16834:7;:11;;;16826:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;16918:7;16898:27;;:17;:27;;;;16767:166;:::o;15870:160::-;2831:12;:10;:12::i;:::-;2821:22;;:6;;;;;;;;;;:22;;;2813:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15961:5:::1;15942:16;;:24;;;;;;;;;;;;;;;;;;15982:40;16005:16;;;;;;;;;;;15982:40;;;;;;:::i;:::-;;;;;;;;15870:160:::0;:::o;16250:124::-;16305:4;16347:8;:15;16356:5;16347:15;;;;;;;;;;;;;;;:19;;;16329:15;:37;;;;:::i;:::-;16322:44;;16250:124;;;:::o;15376:190::-;15442:11;;;;;;;;;;;15426:27;;:12;:10;:12::i;:::-;:27;;;15418:36;;;;;;15465:26;15494:21;15465:50;;15526:32;15539:18;15526:12;:32::i;:::-;15376:190;:::o;6279:138::-;6345:7;6372:37;6392:7;:16;6400:7;6392:16;;;;;;;;;;;;;;;;6372:19;:37::i;:::-;6365:44;;6279:138;;;:::o;2908:148::-;2831:12;:10;:12::i;:::-;2821:22;;:6;;;;;;;;;;:22;;;2813:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3015:1:::1;2978:40;;2999:6;::::0;::::1;;;;;;;;2978:40;;;;;;;;;;;;3046:1;3029:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2908:148::o:0;2694:79::-;2732:7;2759:6;;;;;;;;;;;2752:13;;2694:79;:::o;5990:87::-;6029:13;6062:7;;;;;;;;;;;;;;;;;6055:14;;5990:87;:::o;6425:167::-;6503:4;6520:42;6530:12;:10;:12::i;:::-;6544:9;6555:6;6520:9;:42::i;:::-;6580:4;6573:11;;6425:167;;;;:::o;16146:96::-;16194:4;16218:16;;;;;;;;;;;16211:23;;16146:96;:::o;16382:126::-;16438:4;16480:8;:15;16489:5;16480:15;;;;;;;;;;;;;;;:20;;;16462:15;:38;;;;:::i;:::-;16455:45;;16382:126;;;:::o;15173:191::-;15239:11;;;;;;;;;;;15223:27;;:12;:10;:12::i;:::-;:27;;;15215:36;;;;;;15262:23;15288:24;15306:4;15288:9;:24::i;:::-;15262:50;;15323:33;15340:15;15323:16;:33::i;:::-;15173:191;:::o;15032:133::-;2831:12;:10;:12::i;:::-;2821:22;;:6;;;;;;;;;;:22;;;2813:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15097:4:::1;15083:11;;:18;;;;;;;;;;;;;;;;;;15145:11;15126:15;:31;;;;:::i;:::-;15112:11;:45;;;;15032:133::o:0;16516:101::-;16561:4;16585:24;16595:13;;;;;;;;;;;16585:9;:24::i;:::-;16578:31;;16516:101;:::o;6600:143::-;6681:7;6708:11;:18;6720:5;6708:18;;;;;;;;;;;;;;;:27;6727:7;6708:27;;;;;;;;;;;;;;;;6701:34;;6600:143;;;;:::o;14261:763::-;2831:12;:10;:12::i;:::-;2821:22;;:6;;;;;;;;;;:22;;;2813:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14326:11:::1;;;;;;;;;;;14325:12;14317:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;14375:35;14432:42;14375:100;;14504:16;14486:15;;:34;;;;;;;;;;;;;;;;;;14531:58;14548:4;14563:15;;;;;;;;;;;4286:11;14531:8;:58::i;:::-;14634:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14616:56;;;14681:4;14688:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14616:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14600:13;;:112;;;;;;;;;;;;;;;;;;14723:15;;;;;;;;;;;:31;;;14762:21;14793:4;14799:24;14817:4;14799:9;:24::i;:::-;14824:1;14826::::0;14828:7:::1;:5;:7::i;:::-;14836:15;14723:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14879:15;14863:13;:31;;;;14919:15;14905:11;:29;;;;14952:13;;;;;;;;;;;14945:29;;;14983:15;;;;;;;;;;;15001:14;14945:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2891:1;14261:763::o:0;103:98::-;156:7;183:10;176:17;;103:98;:::o;7848:335::-;7958:1;7941:19;;:5;:19;;;;7933:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8039:1;8020:21;;:7;:21;;;;8012:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8121:6;8091:11;:18;8103:5;8091:18;;;;;;;;;;;;;;;:27;8110:7;8091:27;;;;;;;;;;;;;;;:36;;;;8159:7;8143:32;;8152:5;8143:32;;;8168:6;8143:32;;;;;;:::i;:::-;;;;;;;;7848:335;;;:::o;8191:2585::-;8295:1;8279:18;;:4;:18;;;;8271:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8372:1;8358:16;;:2;:16;;;;8350:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8442:1;8433:6;:10;8425:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8513:7;:5;:7::i;:::-;8505:15;;:4;:15;;;;:32;;;;;8530:7;:5;:7::i;:::-;8524:13;;:2;:13;;;;8505:32;8502:2070;;;8557:16;;;;;;;;;;;8554:168;;;8598:8;:20;8607:10;8598:20;;;;;;;;;;;;;;;:27;;;;;;;;;;;;8594:113;;8673:14;;;;;;;;8678:1;8673:14;;;;8680:1;8673:14;;;;8682:4;8673:14;;;;;8650:8;:20;8659:10;8650:20;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8594:113;8554:168;8760:13;;;;;;;;;;;8754:19;;:2;:19;;;;:42;;;;;8791:4;8777:19;;:2;:19;;;;8754:42;8750:146;;;8850:16;:14;:16::i;:::-;8840:6;8824:13;8834:2;8824:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;8816:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;8750:146;8944:13;;;;;;;;;;;8936:21;;:4;:21;;;:55;;;;;8975:15;;;;;;;;;;;8961:30;;:2;:30;;;;8936:55;:82;;;;;8996:18;:22;9015:2;8996:22;;;;;;;;;;;;;;;;;;;;;;;;;8995:23;8936:82;8933:715;;;9047:11;;;;;;;;;;;9039:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;9117:1;9106:8;:12;;;;9140:16;;;;;;;;;;;9137:364;;;9198:15;9184:11;;:29;9181:301;;;9260:13;;9250:6;:23;;9242:32;;;;;;9328:15;9309:8;:12;9318:2;9309:12;;;;;;;;;;;;;;;:16;;;:34;9301:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;9447:10;9428:15;:30;;;;:::i;:::-;9409:8;:12;9418:2;9409:12;;;;;;;;;;;;;;;:16;;:49;;;;9181:301;9137:364;9522:16;;;;;;;;;;;9519:114;;;9602:10;9583:15;:30;;;;:::i;:::-;9563:8;:12;9572:2;9563:12;;;;;;;;;;;;;;;:17;;:50;;;;9519:114;8933:715;9662:28;9693:24;9711:4;9693:9;:24::i;:::-;9662:55;;9759:6;;;;;;;;;;;9758:7;:32;;;;;9777:13;;;;;;;;;;;9769:21;;:4;:21;;;;9758:32;:47;;;;;9794:11;;;;;;;;;;;9758:47;9755:806;;;9837:1;9826:8;:12;;;;9860:16;;;;;;;;;;;9857:149;;;9931:15;9909:8;:14;9918:4;9909:14;;;;;;;;;;;;;;;:19;;;:37;9901:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;9857:149;10052:1;10029:20;:24;10026:328;;;10104:47;10147:3;10104:38;10133:8;;10104:24;10114:13;;;;;;;;;;;10104:9;:24::i;:::-;:28;;:38;;;;:::i;:::-;:42;;:47;;;;:::i;:::-;10081:20;:70;10078:196;;;10203:47;10246:3;10203:38;10232:8;;10203:24;10213:13;;;;;;;;;;;10203:9;:24::i;:::-;:28;;:38;;;;:::i;:::-;:42;;:47;;;;:::i;:::-;10180:70;;10078:196;10296:38;10313:20;10296:16;:38::i;:::-;10026:328;10372:26;10401:21;10372:50;;10465:1;10444:18;:22;10441:105;;;10491:35;10504:21;10491:12;:35::i;:::-;10441:105;9755:806;;8502:2070;;10582:12;10597:4;10582:19;;10617:18;:24;10636:4;10617:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10645:18;:22;10664:2;10645:22;;;;;;;;;;;;;;;;;;;;;;;;;10617:50;10614:96;;;10693:5;10683:15;;10614:96;10730:38;10745:4;10750:2;10753:6;10760:7;10730:14;:38::i;:::-;8191:2585;;;;:::o;1240:190::-;1326:7;1359:1;1354;:6;;1362:12;1346:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1386:9;1402:1;1398;:5;;;;:::i;:::-;1386:17;;1421:1;1414:8;;;1240:190;;;;;:::o;11283:93::-;11340:11;;;;;;;;;;;:20;;:28;11361:6;11340:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11283:93;:::o;7241:254::-;7308:7;7347;;7336;:18;;7328:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7412:19;7435:10;:8;:10::i;:::-;7412:33;;7463:24;7475:11;7463:7;:11;;:24;;;;:::i;:::-;7456:31;;;7241:254;;;:::o;10784:483::-;5507:4;5498:6;;:13;;;;;;;;;;;;;;;;;;10862:21:::1;10900:1;10886:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10862:40;;10931:4;10913;10918:1;10913:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;10957:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10947:4;10952:1;10947:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;10990:62;11007:4;11022:15;;;;;;;;;;;11040:11;10990:8;:62::i;:::-;11063:15;;;;;;;;;;;:66;;;11144:11;11170:1;11186:4;11213;11233:15;11063:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5522:1;5543:5:::0;5534:6;;:14;;;;;;;;;;;;;;;;;;10784:483;:::o;16629:126::-;16678:7;16744:3;16723:17;;16707:13;:11;:13::i;:::-;:33;;;;:::i;:::-;16706:41;;;;:::i;:::-;16698:49;;16629:126;:::o;1438:245::-;1496:7;1524:1;1519;:6;1516:46;;;1549:1;1542:8;;;;1516:46;1572:9;1588:1;1584;:5;;;;:::i;:::-;1572:17;;1617:1;1612;1608;:5;;;;:::i;:::-;:10;1600:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1674:1;1667:8;;;1438:245;;;;;:::o;1691:132::-;1749:7;1776:39;1780:1;1783;1776:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1769:46;;1691:132;;;;:::o;11388:263::-;11500:7;11496:40;;11522:14;:12;:14::i;:::-;11496:40;11547:44;11565:6;11573:9;11584:6;11547:17;:44::i;:::-;11606:7;11602:41;;11628:15;:13;:15::i;:::-;11602:41;11388:263;;;;:::o;12992:163::-;13033:7;13054:15;13071;13090:19;:17;:19::i;:::-;13053:56;;;;13127:20;13139:7;13127;:11;;:20;;;;:::i;:::-;13120:27;;;;12992:163;:::o;1831:189::-;1917:7;1949:1;1945;:5;1952:12;1937:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1976:9;1992:1;1988;:5;;;;:::i;:::-;1976:17;;2011:1;2004:8;;;1831:189;;;;;:::o;7503:210::-;7560:1;7549:7;;:12;:29;;;;;7577:1;7565:8;;:13;7549:29;7546:41;;;7580:7;;7546:41;7615:7;;7597:15;:25;;;;7652:8;;7633:16;:27;;;;7681:1;7671:7;:11;;;;7704:1;7693:8;:12;;;;7503:210;:::o;11659:490::-;11758:15;11775:23;11800:12;11814:23;11839:12;11853:13;11870:19;11881:7;11870:10;:19::i;:::-;11757:132;;;;;;;;;;;;11918:28;11938:7;11918;:15;11926:6;11918:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11900:7;:15;11908:6;11900:15;;;;;;;;;;;;;;;:46;;;;11978:39;12001:15;11978:7;:18;11986:9;11978:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11957:7;:18;11965:9;11957:18;;;;;;;;;;;;;;;:60;;;;12031:16;12041:5;12031:9;:16::i;:::-;12058:23;12070:4;12076;12058:11;:23::i;:::-;12114:9;12097:44;;12106:6;12097:44;;;12125:15;12097:44;;;;;;:::i;:::-;;;;;;;;11659:490;;;;;;;;;:::o;7725:115::-;7779:15;;7769:7;:25;;;;7816:16;;7805:8;:27;;;;7725:115::o;13163:255::-;13213:7;13222;13242:15;13260:7;;13242:25;;13278:15;4286:11;13278:25;;13327:20;4286:11;13327:7;;:11;;:20;;;;:::i;:::-;13317:7;:30;13314:60;;;13357:7;;4286:11;13349:25;;;;;;;;13314:60;13393:7;13402;13385:25;;;;;;13163:255;;;:::o;12157:468::-;12216:7;12225;12234;12243;12252;12261;12282:23;12307:12;12321:13;12338:39;12350:7;12359;;12368:8;;12338:11;:39::i;:::-;12281:96;;;;;;12388:19;12411:10;:8;:10::i;:::-;12388:33;;12433:15;12450:23;12475:12;12491:46;12503:7;12512:4;12518:5;12525:11;12491;:46::i;:::-;12432:105;;;;;;12556:7;12565:15;12582:4;12588:15;12605:4;12611:5;12548:69;;;;;;;;;;;;;;;;;;;12157:468;;;;;;;:::o;1096:136::-;1154:7;1181:43;1185:1;1188;1181:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1174:50;;1096:136;;;;:::o;909:179::-;967:7;987:9;1003:1;999;:5;;;;:::i;:::-;987:17;;1028:1;1023;:6;;1015:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1079:1;1072:8;;;909:179;;;;:::o;13843:214::-;13896:19;13919:10;:8;:10::i;:::-;13896:33;;13940:13;13956:22;13966:11;13956:5;:9;;:22;;;;:::i;:::-;13940:38;;14016:33;14043:5;14016:7;:22;14032:4;14016:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;13991:7;:22;14007:4;13991:22;;;;;;;;;;;;;;;:58;;;;13843:214;;;:::o;14065:147::-;14143:17;14155:4;14143:7;;:11;;:17;;;;:::i;:::-;14133:7;:27;;;;14184:20;14199:4;14184:10;;:14;;:20;;;;:::i;:::-;14171:10;:33;;;;14065:147;;:::o;12633:351::-;12726:7;12735;12744;12764:12;12779:28;12803:3;12779:19;12791:6;12779:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;12764:43;;12818:13;12834:29;12859:3;12834:20;12846:7;12834;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;12818:45;;12874:23;12900:28;12922:5;12900:17;12912:4;12900:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12874:54;;12947:15;12964:4;12970:5;12939:37;;;;;;;;;12633:351;;;;;;;:::o;13426:409::-;13536:7;13545;13554;13574:15;13592:24;13604:11;13592:7;:11;;:24;;;;:::i;:::-;13574:42;;13627:12;13642:21;13651:11;13642:4;:8;;:21;;;;:::i;:::-;13627:36;;13674:13;13690:22;13700:11;13690:5;:9;;:22;;;;:::i;:::-;13674:38;;13723:23;13749:28;13771:5;13749:17;13761:4;13749:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13723:54;;13796:7;13805:15;13822:4;13788:39;;;;;;;;;;13426:409;;;;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;350:84;;;;:::o;440:137::-;494:5;525:6;519:13;510:22;;541:30;565:5;541:30;:::i;:::-;500:77;;;;:::o;583:139::-;629:5;667:6;654:20;645:29;;683:33;710:5;683:33;:::i;:::-;635:87;;;;:::o;728:143::-;785:5;816:6;810:13;801:22;;832:33;859:5;832:33;:::i;:::-;791:80;;;;:::o;877:135::-;921:5;959:6;946:20;937:29;;975:31;1000:5;975:31;:::i;:::-;927:85;;;;:::o;1018:262::-;1077:6;1126:2;1114:9;1105:7;1101:23;1097:32;1094:2;;;1142:1;1139;1132:12;1094:2;1185:1;1210:53;1255:7;1246:6;1235:9;1231:22;1210:53;:::i;:::-;1200:63;;1156:117;1084:196;;;;:::o;1286:284::-;1356:6;1405:2;1393:9;1384:7;1380:23;1376:32;1373:2;;;1421:1;1418;1411:12;1373:2;1464:1;1489:64;1545:7;1536:6;1525:9;1521:22;1489:64;:::i;:::-;1479:74;;1435:128;1363:207;;;;:::o;1576:407::-;1644:6;1652;1701:2;1689:9;1680:7;1676:23;1672:32;1669:2;;;1717:1;1714;1707:12;1669:2;1760:1;1785:53;1830:7;1821:6;1810:9;1806:22;1785:53;:::i;:::-;1775:63;;1731:117;1887:2;1913:53;1958:7;1949:6;1938:9;1934:22;1913:53;:::i;:::-;1903:63;;1858:118;1659:324;;;;;:::o;1989:552::-;2066:6;2074;2082;2131:2;2119:9;2110:7;2106:23;2102:32;2099:2;;;2147:1;2144;2137:12;2099:2;2190:1;2215:53;2260:7;2251:6;2240:9;2236:22;2215:53;:::i;:::-;2205:63;;2161:117;2317:2;2343:53;2388:7;2379:6;2368:9;2364:22;2343:53;:::i;:::-;2333:63;;2288:118;2445:2;2471:53;2516:7;2507:6;2496:9;2492:22;2471:53;:::i;:::-;2461:63;;2416:118;2089:452;;;;;:::o;2547:407::-;2615:6;2623;2672:2;2660:9;2651:7;2647:23;2643:32;2640:2;;;2688:1;2685;2678:12;2640:2;2731:1;2756:53;2801:7;2792:6;2781:9;2777:22;2756:53;:::i;:::-;2746:63;;2702:117;2858:2;2884:53;2929:7;2920:6;2909:9;2905:22;2884:53;:::i;:::-;2874:63;;2829:118;2630:324;;;;;:::o;2960:256::-;3016:6;3065:2;3053:9;3044:7;3040:23;3036:32;3033:2;;;3081:1;3078;3071:12;3033:2;3124:1;3149:50;3191:7;3182:6;3171:9;3167:22;3149:50;:::i;:::-;3139:60;;3095:114;3023:193;;;;:::o;3222:278::-;3289:6;3338:2;3326:9;3317:7;3313:23;3309:32;3306:2;;;3354:1;3351;3344:12;3306:2;3397:1;3422:61;3475:7;3466:6;3455:9;3451:22;3422:61;:::i;:::-;3412:71;;3368:125;3296:204;;;;:::o;3506:262::-;3565:6;3614:2;3602:9;3593:7;3589:23;3585:32;3582:2;;;3630:1;3627;3620:12;3582:2;3673:1;3698:53;3743:7;3734:6;3723:9;3719:22;3698:53;:::i;:::-;3688:63;;3644:117;3572:196;;;;:::o;3774:596::-;3862:6;3870;3878;3927:2;3915:9;3906:7;3902:23;3898:32;3895:2;;;3943:1;3940;3933:12;3895:2;3986:1;4011:64;4067:7;4058:6;4047:9;4043:22;4011:64;:::i;:::-;4001:74;;3957:128;4124:2;4150:64;4206:7;4197:6;4186:9;4182:22;4150:64;:::i;:::-;4140:74;;4095:129;4263:2;4289:64;4345:7;4336:6;4325:9;4321:22;4289:64;:::i;:::-;4279:74;;4234:129;3885:485;;;;;:::o;4376:258::-;4433:6;4482:2;4470:9;4461:7;4457:23;4453:32;4450:2;;;4498:1;4495;4488:12;4450:2;4541:1;4566:51;4609:7;4600:6;4589:9;4585:22;4566:51;:::i;:::-;4556:61;;4512:115;4440:194;;;;:::o;4640:179::-;4709:10;4730:46;4772:3;4764:6;4730:46;:::i;:::-;4808:4;4803:3;4799:14;4785:28;;4720:99;;;;:::o;4825:108::-;4902:24;4920:5;4902:24;:::i;:::-;4897:3;4890:37;4880:53;;:::o;4939:118::-;5026:24;5044:5;5026:24;:::i;:::-;5021:3;5014:37;5004:53;;:::o;5093:732::-;5212:3;5241:54;5289:5;5241:54;:::i;:::-;5311:86;5390:6;5385:3;5311:86;:::i;:::-;5304:93;;5421:56;5471:5;5421:56;:::i;:::-;5500:7;5531:1;5516:284;5541:6;5538:1;5535:13;5516:284;;;5617:6;5611:13;5644:63;5703:3;5688:13;5644:63;:::i;:::-;5637:70;;5730:60;5783:6;5730:60;:::i;:::-;5720:70;;5576:224;5563:1;5560;5556:9;5551:14;;5516:284;;;5520:14;5816:3;5809:10;;5217:608;;;;;;;:::o;5831:109::-;5912:21;5927:5;5912:21;:::i;:::-;5907:3;5900:34;5890:50;;:::o;5946:147::-;6041:45;6080:5;6041:45;:::i;:::-;6036:3;6029:58;6019:74;;:::o;6099:364::-;6187:3;6215:39;6248:5;6215:39;:::i;:::-;6270:71;6334:6;6329:3;6270:71;:::i;:::-;6263:78;;6350:52;6395:6;6390:3;6383:4;6376:5;6372:16;6350:52;:::i;:::-;6427:29;6449:6;6427:29;:::i;:::-;6422:3;6418:39;6411:46;;6191:272;;;;;:::o;6469:366::-;6611:3;6632:67;6696:2;6691:3;6632:67;:::i;:::-;6625:74;;6708:93;6797:3;6708:93;:::i;:::-;6826:2;6821:3;6817:12;6810:19;;6615:220;;;:::o;6841:366::-;6983:3;7004:67;7068:2;7063:3;7004:67;:::i;:::-;6997:74;;7080:93;7169:3;7080:93;:::i;:::-;7198:2;7193:3;7189:12;7182:19;;6987:220;;;:::o;7213:366::-;7355:3;7376:67;7440:2;7435:3;7376:67;:::i;:::-;7369:74;;7452:93;7541:3;7452:93;:::i;:::-;7570:2;7565:3;7561:12;7554:19;;7359:220;;;:::o;7585:366::-;7727:3;7748:67;7812:2;7807:3;7748:67;:::i;:::-;7741:74;;7824:93;7913:3;7824:93;:::i;:::-;7942:2;7937:3;7933:12;7926:19;;7731:220;;;:::o;7957:366::-;8099:3;8120:67;8184:2;8179:3;8120:67;:::i;:::-;8113:74;;8196:93;8285:3;8196:93;:::i;:::-;8314:2;8309:3;8305:12;8298:19;;8103:220;;;:::o;8329:366::-;8471:3;8492:67;8556:2;8551:3;8492:67;:::i;:::-;8485:74;;8568:93;8657:3;8568:93;:::i;:::-;8686:2;8681:3;8677:12;8670:19;;8475:220;;;:::o;8701:366::-;8843:3;8864:67;8928:2;8923:3;8864:67;:::i;:::-;8857:74;;8940:93;9029:3;8940:93;:::i;:::-;9058:2;9053:3;9049:12;9042:19;;8847:220;;;:::o;9073:366::-;9215:3;9236:67;9300:2;9295:3;9236:67;:::i;:::-;9229:74;;9312:93;9401:3;9312:93;:::i;:::-;9430:2;9425:3;9421:12;9414:19;;9219:220;;;:::o;9445:366::-;9587:3;9608:67;9672:2;9667:3;9608:67;:::i;:::-;9601:74;;9684:93;9773:3;9684:93;:::i;:::-;9802:2;9797:3;9793:12;9786:19;;9591:220;;;:::o;9817:366::-;9959:3;9980:67;10044:2;10039:3;9980:67;:::i;:::-;9973:74;;10056:93;10145:3;10056:93;:::i;:::-;10174:2;10169:3;10165:12;10158:19;;9963:220;;;:::o;10189:366::-;10331:3;10352:67;10416:2;10411:3;10352:67;:::i;:::-;10345:74;;10428:93;10517:3;10428:93;:::i;:::-;10546:2;10541:3;10537:12;10530:19;;10335:220;;;:::o;10561:366::-;10703:3;10724:67;10788:2;10783:3;10724:67;:::i;:::-;10717:74;;10800:93;10889:3;10800:93;:::i;:::-;10918:2;10913:3;10909:12;10902:19;;10707:220;;;:::o;10933:366::-;11075:3;11096:67;11160:2;11155:3;11096:67;:::i;:::-;11089:74;;11172:93;11261:3;11172:93;:::i;:::-;11290:2;11285:3;11281:12;11274:19;;11079:220;;;:::o;11305:366::-;11447:3;11468:67;11532:2;11527:3;11468:67;:::i;:::-;11461:74;;11544:93;11633:3;11544:93;:::i;:::-;11662:2;11657:3;11653:12;11646:19;;11451:220;;;:::o;11677:366::-;11819:3;11840:67;11904:2;11899:3;11840:67;:::i;:::-;11833:74;;11916:93;12005:3;11916:93;:::i;:::-;12034:2;12029:3;12025:12;12018:19;;11823:220;;;:::o;12049:366::-;12191:3;12212:67;12276:2;12271:3;12212:67;:::i;:::-;12205:74;;12288:93;12377:3;12288:93;:::i;:::-;12406:2;12401:3;12397:12;12390:19;;12195:220;;;:::o;12421:118::-;12508:24;12526:5;12508:24;:::i;:::-;12503:3;12496:37;12486:53;;:::o;12545:112::-;12628:22;12644:5;12628:22;:::i;:::-;12623:3;12616:35;12606:51;;:::o;12663:222::-;12756:4;12794:2;12783:9;12779:18;12771:26;;12807:71;12875:1;12864:9;12860:17;12851:6;12807:71;:::i;:::-;12761:124;;;;:::o;12891:332::-;13012:4;13050:2;13039:9;13035:18;13027:26;;13063:71;13131:1;13120:9;13116:17;13107:6;13063:71;:::i;:::-;13144:72;13212:2;13201:9;13197:18;13188:6;13144:72;:::i;:::-;13017:206;;;;;:::o;13229:332::-;13350:4;13388:2;13377:9;13373:18;13365:26;;13401:71;13469:1;13458:9;13454:17;13445:6;13401:71;:::i;:::-;13482:72;13550:2;13539:9;13535:18;13526:6;13482:72;:::i;:::-;13355:206;;;;;:::o;13567:807::-;13816:4;13854:3;13843:9;13839:19;13831:27;;13868:71;13936:1;13925:9;13921:17;13912:6;13868:71;:::i;:::-;13949:72;14017:2;14006:9;14002:18;13993:6;13949:72;:::i;:::-;14031:80;14107:2;14096:9;14092:18;14083:6;14031:80;:::i;:::-;14121;14197:2;14186:9;14182:18;14173:6;14121:80;:::i;:::-;14211:73;14279:3;14268:9;14264:19;14255:6;14211:73;:::i;:::-;14294;14362:3;14351:9;14347:19;14338:6;14294:73;:::i;:::-;13821:553;;;;;;;;;:::o;14380:210::-;14467:4;14505:2;14494:9;14490:18;14482:26;;14518:65;14580:1;14569:9;14565:17;14556:6;14518:65;:::i;:::-;14472:118;;;;:::o;14596:313::-;14709:4;14747:2;14736:9;14732:18;14724:26;;14796:9;14790:4;14786:20;14782:1;14771:9;14767:17;14760:47;14824:78;14897:4;14888:6;14824:78;:::i;:::-;14816:86;;14714:195;;;;:::o;14915:419::-;15081:4;15119:2;15108:9;15104:18;15096:26;;15168:9;15162:4;15158:20;15154:1;15143:9;15139:17;15132:47;15196:131;15322:4;15196:131;:::i;:::-;15188:139;;15086:248;;;:::o;15340:419::-;15506:4;15544:2;15533:9;15529:18;15521:26;;15593:9;15587:4;15583:20;15579:1;15568:9;15564:17;15557:47;15621:131;15747:4;15621:131;:::i;:::-;15613:139;;15511:248;;;:::o;15765:419::-;15931:4;15969:2;15958:9;15954:18;15946:26;;16018:9;16012:4;16008:20;16004:1;15993:9;15989:17;15982:47;16046:131;16172:4;16046:131;:::i;:::-;16038:139;;15936:248;;;:::o;16190:419::-;16356:4;16394:2;16383:9;16379:18;16371:26;;16443:9;16437:4;16433:20;16429:1;16418:9;16414:17;16407:47;16471:131;16597:4;16471:131;:::i;:::-;16463:139;;16361:248;;;:::o;16615:419::-;16781:4;16819:2;16808:9;16804:18;16796:26;;16868:9;16862:4;16858:20;16854:1;16843:9;16839:17;16832:47;16896:131;17022:4;16896:131;:::i;:::-;16888:139;;16786:248;;;:::o;17040:419::-;17206:4;17244:2;17233:9;17229:18;17221:26;;17293:9;17287:4;17283:20;17279:1;17268:9;17264:17;17257:47;17321:131;17447:4;17321:131;:::i;:::-;17313:139;;17211:248;;;:::o;17465:419::-;17631:4;17669:2;17658:9;17654:18;17646:26;;17718:9;17712:4;17708:20;17704:1;17693:9;17689:17;17682:47;17746:131;17872:4;17746:131;:::i;:::-;17738:139;;17636:248;;;:::o;17890:419::-;18056:4;18094:2;18083:9;18079:18;18071:26;;18143:9;18137:4;18133:20;18129:1;18118:9;18114:17;18107:47;18171:131;18297:4;18171:131;:::i;:::-;18163:139;;18061:248;;;:::o;18315:419::-;18481:4;18519:2;18508:9;18504:18;18496:26;;18568:9;18562:4;18558:20;18554:1;18543:9;18539:17;18532:47;18596:131;18722:4;18596:131;:::i;:::-;18588:139;;18486:248;;;:::o;18740:419::-;18906:4;18944:2;18933:9;18929:18;18921:26;;18993:9;18987:4;18983:20;18979:1;18968:9;18964:17;18957:47;19021:131;19147:4;19021:131;:::i;:::-;19013:139;;18911:248;;;:::o;19165:419::-;19331:4;19369:2;19358:9;19354:18;19346:26;;19418:9;19412:4;19408:20;19404:1;19393:9;19389:17;19382:47;19446:131;19572:4;19446:131;:::i;:::-;19438:139;;19336:248;;;:::o;19590:419::-;19756:4;19794:2;19783:9;19779:18;19771:26;;19843:9;19837:4;19833:20;19829:1;19818:9;19814:17;19807:47;19871:131;19997:4;19871:131;:::i;:::-;19863:139;;19761:248;;;:::o;20015:419::-;20181:4;20219:2;20208:9;20204:18;20196:26;;20268:9;20262:4;20258:20;20254:1;20243:9;20239:17;20232:47;20296:131;20422:4;20296:131;:::i;:::-;20288:139;;20186:248;;;:::o;20440:419::-;20606:4;20644:2;20633:9;20629:18;20621:26;;20693:9;20687:4;20683:20;20679:1;20668:9;20664:17;20657:47;20721:131;20847:4;20721:131;:::i;:::-;20713:139;;20611:248;;;:::o;20865:419::-;21031:4;21069:2;21058:9;21054:18;21046:26;;21118:9;21112:4;21108:20;21104:1;21093:9;21089:17;21082:47;21146:131;21272:4;21146:131;:::i;:::-;21138:139;;21036:248;;;:::o;21290:419::-;21456:4;21494:2;21483:9;21479:18;21471:26;;21543:9;21537:4;21533:20;21529:1;21518:9;21514:17;21507:47;21571:131;21697:4;21571:131;:::i;:::-;21563:139;;21461:248;;;:::o;21715:222::-;21808:4;21846:2;21835:9;21831:18;21823:26;;21859:71;21927:1;21916:9;21912:17;21903:6;21859:71;:::i;:::-;21813:124;;;;:::o;21943:831::-;22206:4;22244:3;22233:9;22229:19;22221:27;;22258:71;22326:1;22315:9;22311:17;22302:6;22258:71;:::i;:::-;22339:80;22415:2;22404:9;22400:18;22391:6;22339:80;:::i;:::-;22466:9;22460:4;22456:20;22451:2;22440:9;22436:18;22429:48;22494:108;22597:4;22588:6;22494:108;:::i;:::-;22486:116;;22612:72;22680:2;22669:9;22665:18;22656:6;22612:72;:::i;:::-;22694:73;22762:3;22751:9;22747:19;22738:6;22694:73;:::i;:::-;22211:563;;;;;;;;:::o;22780:214::-;22869:4;22907:2;22896:9;22892:18;22884:26;;22920:67;22984:1;22973:9;22969:17;22960:6;22920:67;:::i;:::-;22874:120;;;;:::o;23000:132::-;23067:4;23090:3;23082:11;;23120:4;23115:3;23111:14;23103:22;;23072:60;;;:::o;23138:114::-;23205:6;23239:5;23233:12;23223:22;;23212:40;;;:::o;23258:99::-;23310:6;23344:5;23338:12;23328:22;;23317:40;;;:::o;23363:113::-;23433:4;23465;23460:3;23456:14;23448:22;;23438:38;;;:::o;23482:184::-;23581:11;23615:6;23610:3;23603:19;23655:4;23650:3;23646:14;23631:29;;23593:73;;;;:::o;23672:169::-;23756:11;23790:6;23785:3;23778:19;23830:4;23825:3;23821:14;23806:29;;23768:73;;;;:::o;23847:305::-;23887:3;23906:20;23924:1;23906:20;:::i;:::-;23901:25;;23940:20;23958:1;23940:20;:::i;:::-;23935:25;;24094:1;24026:66;24022:74;24019:1;24016:81;24013:2;;;24100:18;;:::i;:::-;24013:2;24144:1;24141;24137:9;24130:16;;23891:261;;;;:::o;24158:185::-;24198:1;24215:20;24233:1;24215:20;:::i;:::-;24210:25;;24249:20;24267:1;24249:20;:::i;:::-;24244:25;;24288:1;24278:2;;24293:18;;:::i;:::-;24278:2;24335:1;24332;24328:9;24323:14;;24200:143;;;;:::o;24349:348::-;24389:7;24412:20;24430:1;24412:20;:::i;:::-;24407:25;;24446:20;24464:1;24446:20;:::i;:::-;24441:25;;24634:1;24566:66;24562:74;24559:1;24556:81;24551:1;24544:9;24537:17;24533:105;24530:2;;;24641:18;;:::i;:::-;24530:2;24689:1;24686;24682:9;24671:20;;24397:300;;;;:::o;24703:191::-;24743:4;24763:20;24781:1;24763:20;:::i;:::-;24758:25;;24797:20;24815:1;24797:20;:::i;:::-;24792:25;;24836:1;24833;24830:8;24827:2;;;24841:18;;:::i;:::-;24827:2;24886:1;24883;24879:9;24871:17;;24748:146;;;;:::o;24900:96::-;24937:7;24966:24;24984:5;24966:24;:::i;:::-;24955:35;;24945:51;;;:::o;25002:90::-;25036:7;25079:5;25072:13;25065:21;25054:32;;25044:48;;;:::o;25098:126::-;25135:7;25175:42;25168:5;25164:54;25153:65;;25143:81;;;:::o;25230:77::-;25267:7;25296:5;25285:16;;25275:32;;;:::o;25313:86::-;25348:7;25388:4;25381:5;25377:16;25366:27;;25356:43;;;:::o;25405:121::-;25463:9;25496:24;25514:5;25496:24;:::i;:::-;25483:37;;25473:53;;;:::o;25532:307::-;25600:1;25610:113;25624:6;25621:1;25618:13;25610:113;;;25709:1;25704:3;25700:11;25694:18;25690:1;25685:3;25681:11;25674:39;25646:2;25643:1;25639:10;25634:15;;25610:113;;;25741:6;25738:1;25735:13;25732:2;;;25821:1;25812:6;25807:3;25803:16;25796:27;25732:2;25581:258;;;;:::o;25845:180::-;25893:77;25890:1;25883:88;25990:4;25987:1;25980:15;26014:4;26011:1;26004:15;26031:180;26079:77;26076:1;26069:88;26176:4;26173:1;26166:15;26200:4;26197:1;26190:15;26217:102;26258:6;26309:2;26305:7;26300:2;26293:5;26289:14;26285:28;26275:38;;26265:54;;;:::o;26325:222::-;26465:34;26461:1;26453:6;26449:14;26442:58;26534:5;26529:2;26521:6;26517:15;26510:30;26431:116;:::o;26553:229::-;26693:34;26689:1;26681:6;26677:14;26670:58;26762:12;26757:2;26749:6;26745:15;26738:37;26659:123;:::o;26788:221::-;26928:34;26924:1;26916:6;26912:14;26905:58;26997:4;26992:2;26984:6;26980:15;26973:29;26894:115;:::o;27015:175::-;27155:27;27151:1;27143:6;27139:14;27132:51;27121:69;:::o;27196:221::-;27336:34;27332:1;27324:6;27320:14;27313:58;27405:4;27400:2;27392:6;27388:15;27381:29;27302:115;:::o;27423:177::-;27563:29;27559:1;27551:6;27547:14;27540:53;27529:71;:::o;27606:171::-;27746:23;27742:1;27734:6;27730:14;27723:47;27712:65;:::o;27783:222::-;27923:34;27919:1;27911:6;27907:14;27900:58;27992:5;27987:2;27979:6;27975:15;27968:30;27889:116;:::o;28011:220::-;28151:34;28147:1;28139:6;28135:14;28128:58;28220:3;28215:2;28207:6;28203:15;28196:28;28117:114;:::o;28237:182::-;28377:34;28373:1;28365:6;28361:14;28354:58;28343:76;:::o;28425:228::-;28565:34;28561:1;28553:6;28549:14;28542:58;28634:11;28629:2;28621:6;28617:15;28610:36;28531:122;:::o;28659:224::-;28799:34;28795:1;28787:6;28783:14;28776:58;28868:7;28863:2;28855:6;28851:15;28844:32;28765:118;:::o;28889:223::-;29029:34;29025:1;29017:6;29013:14;29006:58;29098:6;29093:2;29085:6;29081:15;29074:31;28995:117;:::o;29118:173::-;29258:25;29254:1;29246:6;29242:14;29235:49;29224:67;:::o;29297:174::-;29437:26;29433:1;29425:6;29421:14;29414:50;29403:68;:::o;29477:224::-;29617:34;29613:1;29605:6;29601:14;29594:58;29686:7;29681:2;29673:6;29669:15;29662:32;29583:118;:::o;29707:122::-;29780:24;29798:5;29780:24;:::i;:::-;29773:5;29770:35;29760:2;;29819:1;29816;29809:12;29760:2;29750:79;:::o;29835:116::-;29905:21;29920:5;29905:21;:::i;:::-;29898:5;29895:32;29885:2;;29941:1;29938;29931:12;29885:2;29875:76;:::o;29957:122::-;30030:24;30048:5;30030:24;:::i;:::-;30023:5;30020:35;30010:2;;30069:1;30066;30059:12;30010:2;30000:79;:::o;30085:118::-;30156:22;30172:5;30156:22;:::i;:::-;30149:5;30146:33;30136:2;;30193:1;30190;30183:12;30136:2;30126:77;:::o
Swarm Source
ipfs://efcfbf49538e2494ff54c60e43a2e91525c91be0d56d0b2189239e8afdd38963
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.