ERC-20
Overview
Max Total Supply
420,000,000,000 GGI
Holders
34
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
10,668,549.875097027 GGIValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
GorillaGlueInu
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-03-11 */ // SPDX-License-Identifier: MIT 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; } } 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( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract GorillaGlueInu is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "GorillaGlueInu"; string private constant _symbol = "GGI"; uint8 private constant _decimals = 9; // RFI mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 420000000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _taxFee = 5; uint256 private _teamFee = 4; uint256 private _numOfTokensToExchangeForTeam = 500000 * 10**9; uint256 private _routermax = 16800000000 * 10**9; // Bot detection mapping(address => bool) private bots; mapping(address => uint256) private cooldown; address payable private _Marketingfund; address payable private _Deployer; address payable private _devWalletAddress; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; bool private cooldownEnabled = false; uint256 private _maxTxAmount = _tTotal; uint256 public launchBlock; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor(address payable devFundAddr, address payable devfeeAddr, address payable depAddr) { _Marketingfund = devFundAddr; _Deployer = depAddr; _devWalletAddress = devfeeAddr; _rOwned[_msgSender()] = _rTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_Marketingfund] = true; _isExcludedFromFee[_devWalletAddress] = 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 setCooldownEnabled(bool onoff) external onlyOwner() { cooldownEnabled = onoff; } 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; _taxFee = 0; _teamFee = 0; } function restoreAllFee() private { _taxFee = 5; _teamFee = 4; } 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 ( from != address(this) && to != address(this) && from != address(uniswapV2Router) && to != address(uniswapV2Router) ) { require( _msgSender() == address(uniswapV2Router) || _msgSender() == uniswapV2Pair, "ERR: Uniswap only" ); } } if(from != address(this)){ require(amount <= _maxTxAmount); } require(!bots[from] && !bots[to] && !bots[msg.sender]); if ( from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to] && cooldownEnabled ) { require(cooldown[to] < block.timestamp); cooldown[to] = block.timestamp + (15 seconds); } // This is done to prevent the taxes from filling up in the router since compiled taxes emptying can impact the chart. // This reduces the impact of taxes on the chart. uint256 contractTokenBalance = balanceOf(address(this)); if(contractTokenBalance >= _routermax) { contractTokenBalance = _routermax; } bool overMinTokenBalance = contractTokenBalance >= _numOfTokensToExchangeForTeam; if (!inSwap && swapEnabled && overMinTokenBalance && from != uniswapV2Pair && from != address(uniswapV2Router) ) { // We need to swap the current tokens to ETH and send to the team wallet 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 isExcluded(address account) public view returns (bool) { return _isExcludedFromFee[account]; } function isBlackListed(address account) public view returns (bool) { return bots[account]; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap{ // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _Marketingfund.transfer(amount.div(6).mul(4)); _devWalletAddress.transfer(amount.div(6).mul(2)); } function openTrading() 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 ); swapEnabled = true; cooldownEnabled = false; _maxTxAmount = 25000000000 * 10**9; launchBlock = block.number; tradingOpen = true; IERC20(uniswapV2Pair).approve( address(uniswapV2Router), type(uint256).max ); } function setSwapEnabled(bool enabled) external { require(_msgSender() == _Deployer); swapEnabled = enabled; } function manualswap() external { require(_msgSender() == _Deployer); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _Deployer); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function setBots(address[] memory bots_) public { require(_msgSender() == _Deployer); for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function delBot(address notbot) public { require(_msgSender() == _Deployer); bots[notbot] = false; } 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 _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 _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 _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 _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 setMaxTxPercent(uint256 maxTxPercent) external { require(_msgSender() == _Deployer); require(maxTxPercent > 0, "Amount must be greater than 0"); _maxTxAmount = _tTotal.mul(maxTxPercent).div(10**2); emit MaxTxAmountUpdated(_maxTxAmount); } function setRouterPercent(uint256 maxRouterPercent) external { require(_msgSender() == _Deployer); require(maxRouterPercent > 0, "Amount must be greater than 0"); _routermax = _tTotal.mul(maxRouterPercent).div(10**4); } function _setTeamFee(uint256 teamFee) external { require(_msgSender() == _Deployer); require(teamFee >= 1 && teamFee <= 25, 'teamFee should be in 1 - 25'); _teamFee = teamFee; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address payable","name":"devFundAddr","type":"address"},{"internalType":"address payable","name":"devfeeAddr","type":"address"},{"internalType":"address payable","name":"depAddr","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":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"teamFee","type":"uint256"}],"name":"_setTeamFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isBlackListed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxRouterPercent","type":"uint256"}],"name":"setRouterPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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
60806040526816c4abbebea01000006000196200001d91906200062a565b6000196200002c9190620005b1565b600655600560085560046009556601c6bf52634000600a5567e92596fd62900000600b556000601260156101000a81548160ff0219169083151502179055506000601260166101000a81548160ff0219169083151502179055506000601260176101000a81548160ff0219169083151502179055506816c4abbebea0100000601355348015620000bb57600080fd5b5060405162004430380380620044308339818101604052810190620000e191906200052d565b6000620000f3620004e560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35082600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654600260006200026b620004e560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620002bf620004ed60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200046c620004e560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6816c4abbebea0100000604051620004d4919062000594565b60405180910390a3505050620006da565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000815190506200052781620006c0565b92915050565b6000806000606084860312156200054357600080fd5b6000620005538682870162000516565b9350506020620005668682870162000516565b9250506040620005798682870162000516565b9150509250925092565b6200058e8162000620565b82525050565b6000602082019050620005ab600083018462000583565b92915050565b6000620005be8262000620565b9150620005cb8362000620565b925082821015620005e157620005e062000662565b5b828203905092915050565b6000620005f98262000600565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000620006378262000620565b9150620006448362000620565b92508262000657576200065662000691565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b620006cb81620005ec565b8114620006d757600080fd5b50565b613d4680620006ea6000396000f3fe60806040526004361061014f5760003560e01c806395d89b41116100b6578063cba0e9961161006f578063cba0e9961461044f578063d00efb2f1461048c578063d543dbeb146104b7578063dd62ed3e146104e0578063e01af92c1461051d578063e47d60601461054657610156565b806395d89b4114610367578063a9059cbb14610392578063b515566a146103cf578063c0e6b46e146103f8578063c3c8cd8014610421578063c9567bf91461043857610156565b8063313ce56711610108578063313ce5671461027d5780635932ead1146102a85780636fc3eaec146102d157806370a08231146102e8578063715018a6146103255780638da5cb5b1461033c57610156565b806306fdde031461015b578063095ea7b31461018657806318160ddd146101c357806323b872dd146101ee578063273123b71461022b578063286671621461025457610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610583565b60405161017d91906133c5565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a89190612ec5565b6105c0565b6040516101ba91906133aa565b60405180910390f35b3480156101cf57600080fd5b506101d86105de565b6040516101e59190613587565b60405180910390f35b3480156101fa57600080fd5b5061021560048036038101906102109190612e76565b6105ef565b60405161022291906133aa565b60405180910390f35b34801561023757600080fd5b50610252600480360381019061024d9190612de8565b6106c8565b005b34801561026057600080fd5b5061027b60048036038101906102769190612f94565b610784565b005b34801561028957600080fd5b50610292610840565b60405161029f91906135fc565b60405180910390f35b3480156102b457600080fd5b506102cf60048036038101906102ca9190612f42565b610849565b005b3480156102dd57600080fd5b506102e66108fb565b005b3480156102f457600080fd5b5061030f600480360381019061030a9190612de8565b61096d565b60405161031c9190613587565b60405180910390f35b34801561033157600080fd5b5061033a6109be565b005b34801561034857600080fd5b50610351610b11565b60405161035e91906132dc565b60405180910390f35b34801561037357600080fd5b5061037c610b3a565b60405161038991906133c5565b60405180910390f35b34801561039e57600080fd5b506103b960048036038101906103b49190612ec5565b610b77565b6040516103c691906133aa565b60405180910390f35b3480156103db57600080fd5b506103f660048036038101906103f19190612f01565b610b95565b005b34801561040457600080fd5b5061041f600480360381019061041a9190612f94565b610cb1565b005b34801561042d57600080fd5b50610436610d8e565b005b34801561044457600080fd5b5061044d610e08565b005b34801561045b57600080fd5b5061047660048036038101906104719190612de8565b61136c565b60405161048391906133aa565b60405180910390f35b34801561049857600080fd5b506104a16113c2565b6040516104ae9190613587565b60405180910390f35b3480156104c357600080fd5b506104de60048036038101906104d99190612f94565b6113c8565b005b3480156104ec57600080fd5b5061050760048036038101906105029190612e3a565b6114dd565b6040516105149190613587565b60405180910390f35b34801561052957600080fd5b50610544600480360381019061053f9190612f42565b611564565b005b34801561055257600080fd5b5061056d60048036038101906105689190612de8565b6115e2565b60405161057a91906133aa565b60405180910390f35b60606040518060400160405280600e81526020017f476f72696c6c61476c7565496e75000000000000000000000000000000000000815250905090565b60006105d46105cd611638565b8484611640565b6001905092915050565b60006816c4abbebea0100000905090565b60006105fc84848461180b565b6106bd84610608611638565b6106b885604051806060016040528060288152602001613ce960289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061066e611638565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120d19092919063ffffffff16565b611640565b600190509392505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610709611638565b73ffffffffffffffffffffffffffffffffffffffff161461072957600080fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107c5611638565b73ffffffffffffffffffffffffffffffffffffffff16146107e557600080fd5b600181101580156107f7575060198111155b610836576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d90613447565b60405180910390fd5b8060098190555050565b60006009905090565b610851611638565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d5906134c7565b60405180910390fd5b80601260176101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661093c611638565b73ffffffffffffffffffffffffffffffffffffffff161461095c57600080fd5b600047905061096a81612135565b50565b60006109b7600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612256565b9050919050565b6109c6611638565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4a906134c7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f4747490000000000000000000000000000000000000000000000000000000000815250905090565b6000610b8b610b84611638565b848461180b565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bd6611638565b73ffffffffffffffffffffffffffffffffffffffff1614610bf657600080fd5b60005b8151811015610cad576001600c6000848481518110610c41577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610ca59061389d565b915050610bf9565b5050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cf2611638565b73ffffffffffffffffffffffffffffffffffffffff1614610d1257600080fd5b60008111610d55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4c90613487565b60405180910390fd5b610d85612710610d77836816c4abbebea01000006122c490919063ffffffff16565b61233f90919063ffffffff16565b600b8190555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dcf611638565b73ffffffffffffffffffffffffffffffffffffffff1614610def57600080fd5b6000610dfa3061096d565b9050610e0581612389565b50565b610e10611638565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e94906134c7565b60405180910390fd5b601260149054906101000a900460ff1615610eed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee490613547565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f7d30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166816c4abbebea0100000611640565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610fc357600080fd5b505afa158015610fd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffb9190612e11565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561105d57600080fd5b505afa158015611071573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110959190612e11565b6040518363ffffffff1660e01b81526004016110b29291906132f7565b602060405180830381600087803b1580156110cc57600080fd5b505af11580156110e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111049190612e11565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061118d3061096d565b600080611198610b11565b426040518863ffffffff1660e01b81526004016111ba96959493929190613349565b6060604051808303818588803b1580156111d357600080fd5b505af11580156111e7573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061120c9190612fbd565b5050506001601260166101000a81548160ff0219169083151502179055506000601260176101000a81548160ff02191690831515021790555068015af1d78b58c40000601381905550436014819055506001601260146101000a81548160ff021916908315150217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611316929190613320565b602060405180830381600087803b15801561133057600080fd5b505af1158015611344573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113689190612f6b565b5050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60145481565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611409611638565b73ffffffffffffffffffffffffffffffffffffffff161461142957600080fd5b6000811161146c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146390613487565b60405180910390fd5b61149b606461148d836816c4abbebea01000006122c490919063ffffffff16565b61233f90919063ffffffff16565b6013819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6013546040516114d29190613587565b60405180910390a150565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115a5611638565b73ffffffffffffffffffffffffffffffffffffffff16146115c557600080fd5b80601260166101000a81548160ff02191690831515021790555050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a790613527565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611720576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171790613427565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117fe9190613587565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561187b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187290613507565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e2906133e7565b60405180910390fd5b6000811161192e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611925906134e7565b60405180910390fd5b611936610b11565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119a45750611974610b11565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561200e57601260179054906101000a900460ff1615611bd7573073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a2657503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611a805750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ada5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611bd657601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b20611638565b73ffffffffffffffffffffffffffffffffffffffff161480611b965750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b7e611638565b73ffffffffffffffffffffffffffffffffffffffff16145b611bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcc90613567565b60405180910390fd5b5b5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611c1a57601354811115611c1957600080fd5b5b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611cbe5750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d145750600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611d1d57600080fd5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611dc85750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611e1e5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611e365750601260179054906101000a900460ff165b15611ed75742600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611e8657600080fd5b600f42611e9391906136bd565b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000611ee23061096d565b9050600b548110611ef357600b5490505b6000600a548210159050601260159054906101000a900460ff16158015611f265750601260169054906101000a900460ff165b8015611f2f5750805b8015611f895750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611fe35750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1561200b57611ff182612389565b600047905060008111156120095761200847612135565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120b55750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156120bf57600090505b6120cb84848484612683565b50505050565b6000838311158290612119576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211091906133c5565b60405180910390fd5b5060008385612128919061379e565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612198600461218a60068661233f90919063ffffffff16565b6122c490919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156121c3573d6000803e3d6000fd5b50601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612227600261221960068661233f90919063ffffffff16565b6122c490919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612252573d6000803e3d6000fd5b5050565b600060065482111561229d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229490613407565b60405180910390fd5b60006122a76126b0565b90506122bc818461233f90919063ffffffff16565b915050919050565b6000808314156122d75760009050612339565b600082846122e59190613744565b90508284826122f49190613713565b14612334576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232b906134a7565b60405180910390fd5b809150505b92915050565b600061238183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126db565b905092915050565b6001601260156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156123e7577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156124155781602001602082028036833780820191505090505b5090503081600081518110612453577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156124f557600080fd5b505afa158015612509573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061252d9190612e11565b81600181518110612567577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125ce30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611640565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016126329594939291906135a2565b600060405180830381600087803b15801561264c57600080fd5b505af1158015612660573d6000803e3d6000fd5b50505050506000601260156101000a81548160ff02191690831515021790555050565b806126915761269061273e565b5b61269c84848461276f565b806126aa576126a961293a565b5b50505050565b60008060006126bd61294c565b915091506126d4818361233f90919063ffffffff16565b9250505090565b60008083118290612722576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161271991906133c5565b60405180910390fd5b50600083856127319190613713565b9050809150509392505050565b600060085414801561275257506000600954145b1561275c5761276d565b600060088190555060006009819055505b565b600080600080600080612781876129ae565b9550955095509550955095506127df86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a1690919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061287485600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a6090919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128c081612abe565b6128ca8483612b7b565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516129279190613587565b60405180910390a3505050505050505050565b60056008819055506004600981905550565b6000806000600654905060006816c4abbebea010000090506129826816c4abbebea010000060065461233f90919063ffffffff16565b8210156129a1576006546816c4abbebea01000009350935050506129aa565b81819350935050505b9091565b60008060008060008060008060006129cb8a600854600954612bb5565b92509250925060006129db6126b0565b905060008060006129ee8e878787612c4b565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612a5883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120d1565b905092915050565b6000808284612a6f91906136bd565b905083811015612ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aab90613467565b60405180910390fd5b8091505092915050565b6000612ac86126b0565b90506000612adf82846122c490919063ffffffff16565b9050612b3381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a6090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612b9082600654612a1690919063ffffffff16565b600681905550612bab81600754612a6090919063ffffffff16565b6007819055505050565b600080600080612be16064612bd3888a6122c490919063ffffffff16565b61233f90919063ffffffff16565b90506000612c0b6064612bfd888b6122c490919063ffffffff16565b61233f90919063ffffffff16565b90506000612c3482612c26858c612a1690919063ffffffff16565b612a1690919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612c6485896122c490919063ffffffff16565b90506000612c7b86896122c490919063ffffffff16565b90506000612c9287896122c490919063ffffffff16565b90506000612cbb82612cad8587612a1690919063ffffffff16565b612a1690919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000612ce7612ce28461363c565b613617565b90508083825260208201905082856020860282011115612d0657600080fd5b60005b85811015612d365781612d1c8882612d40565b845260208401935060208301925050600181019050612d09565b5050509392505050565b600081359050612d4f81613ca3565b92915050565b600081519050612d6481613ca3565b92915050565b600082601f830112612d7b57600080fd5b8135612d8b848260208601612cd4565b91505092915050565b600081359050612da381613cba565b92915050565b600081519050612db881613cba565b92915050565b600081359050612dcd81613cd1565b92915050565b600081519050612de281613cd1565b92915050565b600060208284031215612dfa57600080fd5b6000612e0884828501612d40565b91505092915050565b600060208284031215612e2357600080fd5b6000612e3184828501612d55565b91505092915050565b60008060408385031215612e4d57600080fd5b6000612e5b85828601612d40565b9250506020612e6c85828601612d40565b9150509250929050565b600080600060608486031215612e8b57600080fd5b6000612e9986828701612d40565b9350506020612eaa86828701612d40565b9250506040612ebb86828701612dbe565b9150509250925092565b60008060408385031215612ed857600080fd5b6000612ee685828601612d40565b9250506020612ef785828601612dbe565b9150509250929050565b600060208284031215612f1357600080fd5b600082013567ffffffffffffffff811115612f2d57600080fd5b612f3984828501612d6a565b91505092915050565b600060208284031215612f5457600080fd5b6000612f6284828501612d94565b91505092915050565b600060208284031215612f7d57600080fd5b6000612f8b84828501612da9565b91505092915050565b600060208284031215612fa657600080fd5b6000612fb484828501612dbe565b91505092915050565b600080600060608486031215612fd257600080fd5b6000612fe086828701612dd3565b9350506020612ff186828701612dd3565b925050604061300286828701612dd3565b9150509250925092565b60006130188383613024565b60208301905092915050565b61302d816137d2565b82525050565b61303c816137d2565b82525050565b600061304d82613678565b613057818561369b565b935061306283613668565b8060005b8381101561309357815161307a888261300c565b97506130858361368e565b925050600181019050613066565b5085935050505092915050565b6130a9816137e4565b82525050565b6130b881613827565b82525050565b60006130c982613683565b6130d381856136ac565b93506130e3818560208601613839565b6130ec81613973565b840191505092915050565b60006131046023836136ac565b915061310f82613984565b604082019050919050565b6000613127602a836136ac565b9150613132826139d3565b604082019050919050565b600061314a6022836136ac565b915061315582613a22565b604082019050919050565b600061316d601b836136ac565b915061317882613a71565b602082019050919050565b6000613190601b836136ac565b915061319b82613a9a565b602082019050919050565b60006131b3601d836136ac565b91506131be82613ac3565b602082019050919050565b60006131d66021836136ac565b91506131e182613aec565b604082019050919050565b60006131f96020836136ac565b915061320482613b3b565b602082019050919050565b600061321c6029836136ac565b915061322782613b64565b604082019050919050565b600061323f6025836136ac565b915061324a82613bb3565b604082019050919050565b60006132626024836136ac565b915061326d82613c02565b604082019050919050565b60006132856017836136ac565b915061329082613c51565b602082019050919050565b60006132a86011836136ac565b91506132b382613c7a565b602082019050919050565b6132c781613810565b82525050565b6132d68161381a565b82525050565b60006020820190506132f16000830184613033565b92915050565b600060408201905061330c6000830185613033565b6133196020830184613033565b9392505050565b60006040820190506133356000830185613033565b61334260208301846132be565b9392505050565b600060c08201905061335e6000830189613033565b61336b60208301886132be565b61337860408301876130af565b61338560608301866130af565b6133926080830185613033565b61339f60a08301846132be565b979650505050505050565b60006020820190506133bf60008301846130a0565b92915050565b600060208201905081810360008301526133df81846130be565b905092915050565b60006020820190508181036000830152613400816130f7565b9050919050565b600060208201905081810360008301526134208161311a565b9050919050565b600060208201905081810360008301526134408161313d565b9050919050565b6000602082019050818103600083015261346081613160565b9050919050565b6000602082019050818103600083015261348081613183565b9050919050565b600060208201905081810360008301526134a0816131a6565b9050919050565b600060208201905081810360008301526134c0816131c9565b9050919050565b600060208201905081810360008301526134e0816131ec565b9050919050565b600060208201905081810360008301526135008161320f565b9050919050565b6000602082019050818103600083015261352081613232565b9050919050565b6000602082019050818103600083015261354081613255565b9050919050565b6000602082019050818103600083015261356081613278565b9050919050565b600060208201905081810360008301526135808161329b565b9050919050565b600060208201905061359c60008301846132be565b92915050565b600060a0820190506135b760008301886132be565b6135c460208301876130af565b81810360408301526135d68186613042565b90506135e56060830185613033565b6135f260808301846132be565b9695505050505050565b600060208201905061361160008301846132cd565b92915050565b6000613621613632565b905061362d828261386c565b919050565b6000604051905090565b600067ffffffffffffffff82111561365757613656613944565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006136c882613810565b91506136d383613810565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613708576137076138e6565b5b828201905092915050565b600061371e82613810565b915061372983613810565b92508261373957613738613915565b5b828204905092915050565b600061374f82613810565b915061375a83613810565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613793576137926138e6565b5b828202905092915050565b60006137a982613810565b91506137b483613810565b9250828210156137c7576137c66138e6565b5b828203905092915050565b60006137dd826137f0565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061383282613810565b9050919050565b60005b8381101561385757808201518184015260208101905061383c565b83811115613866576000848401525b50505050565b61387582613973565b810181811067ffffffffffffffff8211171561389457613893613944565b5b80604052505050565b60006138a882613810565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156138db576138da6138e6565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f7465616d4665652073686f756c6420626520696e2031202d2032350000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f4552523a20556e6973776170206f6e6c79000000000000000000000000000000600082015250565b613cac816137d2565b8114613cb757600080fd5b50565b613cc3816137e4565b8114613cce57600080fd5b50565b613cda81613810565b8114613ce557600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203c34f1980e185710e07f5b2cd1d3bc8d35c4834e29a2c4012027f009dc387f9064736f6c63430008040033000000000000000000000000acbc10656fc271d9df6e27e7f1620350a6c81f2000000000000000000000000098b4af0479065c2e224f0d4b10da000738deaedc0000000000000000000000005c4d76c7641882cbdf7f8bffdeba82693d344274
Deployed Bytecode
0x60806040526004361061014f5760003560e01c806395d89b41116100b6578063cba0e9961161006f578063cba0e9961461044f578063d00efb2f1461048c578063d543dbeb146104b7578063dd62ed3e146104e0578063e01af92c1461051d578063e47d60601461054657610156565b806395d89b4114610367578063a9059cbb14610392578063b515566a146103cf578063c0e6b46e146103f8578063c3c8cd8014610421578063c9567bf91461043857610156565b8063313ce56711610108578063313ce5671461027d5780635932ead1146102a85780636fc3eaec146102d157806370a08231146102e8578063715018a6146103255780638da5cb5b1461033c57610156565b806306fdde031461015b578063095ea7b31461018657806318160ddd146101c357806323b872dd146101ee578063273123b71461022b578063286671621461025457610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610583565b60405161017d91906133c5565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a89190612ec5565b6105c0565b6040516101ba91906133aa565b60405180910390f35b3480156101cf57600080fd5b506101d86105de565b6040516101e59190613587565b60405180910390f35b3480156101fa57600080fd5b5061021560048036038101906102109190612e76565b6105ef565b60405161022291906133aa565b60405180910390f35b34801561023757600080fd5b50610252600480360381019061024d9190612de8565b6106c8565b005b34801561026057600080fd5b5061027b60048036038101906102769190612f94565b610784565b005b34801561028957600080fd5b50610292610840565b60405161029f91906135fc565b60405180910390f35b3480156102b457600080fd5b506102cf60048036038101906102ca9190612f42565b610849565b005b3480156102dd57600080fd5b506102e66108fb565b005b3480156102f457600080fd5b5061030f600480360381019061030a9190612de8565b61096d565b60405161031c9190613587565b60405180910390f35b34801561033157600080fd5b5061033a6109be565b005b34801561034857600080fd5b50610351610b11565b60405161035e91906132dc565b60405180910390f35b34801561037357600080fd5b5061037c610b3a565b60405161038991906133c5565b60405180910390f35b34801561039e57600080fd5b506103b960048036038101906103b49190612ec5565b610b77565b6040516103c691906133aa565b60405180910390f35b3480156103db57600080fd5b506103f660048036038101906103f19190612f01565b610b95565b005b34801561040457600080fd5b5061041f600480360381019061041a9190612f94565b610cb1565b005b34801561042d57600080fd5b50610436610d8e565b005b34801561044457600080fd5b5061044d610e08565b005b34801561045b57600080fd5b5061047660048036038101906104719190612de8565b61136c565b60405161048391906133aa565b60405180910390f35b34801561049857600080fd5b506104a16113c2565b6040516104ae9190613587565b60405180910390f35b3480156104c357600080fd5b506104de60048036038101906104d99190612f94565b6113c8565b005b3480156104ec57600080fd5b5061050760048036038101906105029190612e3a565b6114dd565b6040516105149190613587565b60405180910390f35b34801561052957600080fd5b50610544600480360381019061053f9190612f42565b611564565b005b34801561055257600080fd5b5061056d60048036038101906105689190612de8565b6115e2565b60405161057a91906133aa565b60405180910390f35b60606040518060400160405280600e81526020017f476f72696c6c61476c7565496e75000000000000000000000000000000000000815250905090565b60006105d46105cd611638565b8484611640565b6001905092915050565b60006816c4abbebea0100000905090565b60006105fc84848461180b565b6106bd84610608611638565b6106b885604051806060016040528060288152602001613ce960289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061066e611638565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120d19092919063ffffffff16565b611640565b600190509392505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610709611638565b73ffffffffffffffffffffffffffffffffffffffff161461072957600080fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107c5611638565b73ffffffffffffffffffffffffffffffffffffffff16146107e557600080fd5b600181101580156107f7575060198111155b610836576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d90613447565b60405180910390fd5b8060098190555050565b60006009905090565b610851611638565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d5906134c7565b60405180910390fd5b80601260176101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661093c611638565b73ffffffffffffffffffffffffffffffffffffffff161461095c57600080fd5b600047905061096a81612135565b50565b60006109b7600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612256565b9050919050565b6109c6611638565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4a906134c7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f4747490000000000000000000000000000000000000000000000000000000000815250905090565b6000610b8b610b84611638565b848461180b565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bd6611638565b73ffffffffffffffffffffffffffffffffffffffff1614610bf657600080fd5b60005b8151811015610cad576001600c6000848481518110610c41577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610ca59061389d565b915050610bf9565b5050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cf2611638565b73ffffffffffffffffffffffffffffffffffffffff1614610d1257600080fd5b60008111610d55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4c90613487565b60405180910390fd5b610d85612710610d77836816c4abbebea01000006122c490919063ffffffff16565b61233f90919063ffffffff16565b600b8190555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dcf611638565b73ffffffffffffffffffffffffffffffffffffffff1614610def57600080fd5b6000610dfa3061096d565b9050610e0581612389565b50565b610e10611638565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e94906134c7565b60405180910390fd5b601260149054906101000a900460ff1615610eed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee490613547565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f7d30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166816c4abbebea0100000611640565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610fc357600080fd5b505afa158015610fd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffb9190612e11565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561105d57600080fd5b505afa158015611071573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110959190612e11565b6040518363ffffffff1660e01b81526004016110b29291906132f7565b602060405180830381600087803b1580156110cc57600080fd5b505af11580156110e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111049190612e11565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061118d3061096d565b600080611198610b11565b426040518863ffffffff1660e01b81526004016111ba96959493929190613349565b6060604051808303818588803b1580156111d357600080fd5b505af11580156111e7573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061120c9190612fbd565b5050506001601260166101000a81548160ff0219169083151502179055506000601260176101000a81548160ff02191690831515021790555068015af1d78b58c40000601381905550436014819055506001601260146101000a81548160ff021916908315150217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611316929190613320565b602060405180830381600087803b15801561133057600080fd5b505af1158015611344573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113689190612f6b565b5050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60145481565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611409611638565b73ffffffffffffffffffffffffffffffffffffffff161461142957600080fd5b6000811161146c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146390613487565b60405180910390fd5b61149b606461148d836816c4abbebea01000006122c490919063ffffffff16565b61233f90919063ffffffff16565b6013819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6013546040516114d29190613587565b60405180910390a150565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115a5611638565b73ffffffffffffffffffffffffffffffffffffffff16146115c557600080fd5b80601260166101000a81548160ff02191690831515021790555050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a790613527565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611720576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171790613427565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117fe9190613587565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561187b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187290613507565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e2906133e7565b60405180910390fd5b6000811161192e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611925906134e7565b60405180910390fd5b611936610b11565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119a45750611974610b11565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561200e57601260179054906101000a900460ff1615611bd7573073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a2657503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611a805750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ada5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611bd657601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b20611638565b73ffffffffffffffffffffffffffffffffffffffff161480611b965750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b7e611638565b73ffffffffffffffffffffffffffffffffffffffff16145b611bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcc90613567565b60405180910390fd5b5b5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611c1a57601354811115611c1957600080fd5b5b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611cbe5750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d145750600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611d1d57600080fd5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611dc85750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611e1e5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611e365750601260179054906101000a900460ff165b15611ed75742600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611e8657600080fd5b600f42611e9391906136bd565b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000611ee23061096d565b9050600b548110611ef357600b5490505b6000600a548210159050601260159054906101000a900460ff16158015611f265750601260169054906101000a900460ff165b8015611f2f5750805b8015611f895750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611fe35750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1561200b57611ff182612389565b600047905060008111156120095761200847612135565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120b55750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156120bf57600090505b6120cb84848484612683565b50505050565b6000838311158290612119576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211091906133c5565b60405180910390fd5b5060008385612128919061379e565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612198600461218a60068661233f90919063ffffffff16565b6122c490919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156121c3573d6000803e3d6000fd5b50601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612227600261221960068661233f90919063ffffffff16565b6122c490919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612252573d6000803e3d6000fd5b5050565b600060065482111561229d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229490613407565b60405180910390fd5b60006122a76126b0565b90506122bc818461233f90919063ffffffff16565b915050919050565b6000808314156122d75760009050612339565b600082846122e59190613744565b90508284826122f49190613713565b14612334576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232b906134a7565b60405180910390fd5b809150505b92915050565b600061238183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126db565b905092915050565b6001601260156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156123e7577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156124155781602001602082028036833780820191505090505b5090503081600081518110612453577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156124f557600080fd5b505afa158015612509573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061252d9190612e11565b81600181518110612567577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125ce30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611640565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016126329594939291906135a2565b600060405180830381600087803b15801561264c57600080fd5b505af1158015612660573d6000803e3d6000fd5b50505050506000601260156101000a81548160ff02191690831515021790555050565b806126915761269061273e565b5b61269c84848461276f565b806126aa576126a961293a565b5b50505050565b60008060006126bd61294c565b915091506126d4818361233f90919063ffffffff16565b9250505090565b60008083118290612722576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161271991906133c5565b60405180910390fd5b50600083856127319190613713565b9050809150509392505050565b600060085414801561275257506000600954145b1561275c5761276d565b600060088190555060006009819055505b565b600080600080600080612781876129ae565b9550955095509550955095506127df86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a1690919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061287485600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a6090919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128c081612abe565b6128ca8483612b7b565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516129279190613587565b60405180910390a3505050505050505050565b60056008819055506004600981905550565b6000806000600654905060006816c4abbebea010000090506129826816c4abbebea010000060065461233f90919063ffffffff16565b8210156129a1576006546816c4abbebea01000009350935050506129aa565b81819350935050505b9091565b60008060008060008060008060006129cb8a600854600954612bb5565b92509250925060006129db6126b0565b905060008060006129ee8e878787612c4b565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612a5883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120d1565b905092915050565b6000808284612a6f91906136bd565b905083811015612ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aab90613467565b60405180910390fd5b8091505092915050565b6000612ac86126b0565b90506000612adf82846122c490919063ffffffff16565b9050612b3381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a6090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612b9082600654612a1690919063ffffffff16565b600681905550612bab81600754612a6090919063ffffffff16565b6007819055505050565b600080600080612be16064612bd3888a6122c490919063ffffffff16565b61233f90919063ffffffff16565b90506000612c0b6064612bfd888b6122c490919063ffffffff16565b61233f90919063ffffffff16565b90506000612c3482612c26858c612a1690919063ffffffff16565b612a1690919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612c6485896122c490919063ffffffff16565b90506000612c7b86896122c490919063ffffffff16565b90506000612c9287896122c490919063ffffffff16565b90506000612cbb82612cad8587612a1690919063ffffffff16565b612a1690919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000612ce7612ce28461363c565b613617565b90508083825260208201905082856020860282011115612d0657600080fd5b60005b85811015612d365781612d1c8882612d40565b845260208401935060208301925050600181019050612d09565b5050509392505050565b600081359050612d4f81613ca3565b92915050565b600081519050612d6481613ca3565b92915050565b600082601f830112612d7b57600080fd5b8135612d8b848260208601612cd4565b91505092915050565b600081359050612da381613cba565b92915050565b600081519050612db881613cba565b92915050565b600081359050612dcd81613cd1565b92915050565b600081519050612de281613cd1565b92915050565b600060208284031215612dfa57600080fd5b6000612e0884828501612d40565b91505092915050565b600060208284031215612e2357600080fd5b6000612e3184828501612d55565b91505092915050565b60008060408385031215612e4d57600080fd5b6000612e5b85828601612d40565b9250506020612e6c85828601612d40565b9150509250929050565b600080600060608486031215612e8b57600080fd5b6000612e9986828701612d40565b9350506020612eaa86828701612d40565b9250506040612ebb86828701612dbe565b9150509250925092565b60008060408385031215612ed857600080fd5b6000612ee685828601612d40565b9250506020612ef785828601612dbe565b9150509250929050565b600060208284031215612f1357600080fd5b600082013567ffffffffffffffff811115612f2d57600080fd5b612f3984828501612d6a565b91505092915050565b600060208284031215612f5457600080fd5b6000612f6284828501612d94565b91505092915050565b600060208284031215612f7d57600080fd5b6000612f8b84828501612da9565b91505092915050565b600060208284031215612fa657600080fd5b6000612fb484828501612dbe565b91505092915050565b600080600060608486031215612fd257600080fd5b6000612fe086828701612dd3565b9350506020612ff186828701612dd3565b925050604061300286828701612dd3565b9150509250925092565b60006130188383613024565b60208301905092915050565b61302d816137d2565b82525050565b61303c816137d2565b82525050565b600061304d82613678565b613057818561369b565b935061306283613668565b8060005b8381101561309357815161307a888261300c565b97506130858361368e565b925050600181019050613066565b5085935050505092915050565b6130a9816137e4565b82525050565b6130b881613827565b82525050565b60006130c982613683565b6130d381856136ac565b93506130e3818560208601613839565b6130ec81613973565b840191505092915050565b60006131046023836136ac565b915061310f82613984565b604082019050919050565b6000613127602a836136ac565b9150613132826139d3565b604082019050919050565b600061314a6022836136ac565b915061315582613a22565b604082019050919050565b600061316d601b836136ac565b915061317882613a71565b602082019050919050565b6000613190601b836136ac565b915061319b82613a9a565b602082019050919050565b60006131b3601d836136ac565b91506131be82613ac3565b602082019050919050565b60006131d66021836136ac565b91506131e182613aec565b604082019050919050565b60006131f96020836136ac565b915061320482613b3b565b602082019050919050565b600061321c6029836136ac565b915061322782613b64565b604082019050919050565b600061323f6025836136ac565b915061324a82613bb3565b604082019050919050565b60006132626024836136ac565b915061326d82613c02565b604082019050919050565b60006132856017836136ac565b915061329082613c51565b602082019050919050565b60006132a86011836136ac565b91506132b382613c7a565b602082019050919050565b6132c781613810565b82525050565b6132d68161381a565b82525050565b60006020820190506132f16000830184613033565b92915050565b600060408201905061330c6000830185613033565b6133196020830184613033565b9392505050565b60006040820190506133356000830185613033565b61334260208301846132be565b9392505050565b600060c08201905061335e6000830189613033565b61336b60208301886132be565b61337860408301876130af565b61338560608301866130af565b6133926080830185613033565b61339f60a08301846132be565b979650505050505050565b60006020820190506133bf60008301846130a0565b92915050565b600060208201905081810360008301526133df81846130be565b905092915050565b60006020820190508181036000830152613400816130f7565b9050919050565b600060208201905081810360008301526134208161311a565b9050919050565b600060208201905081810360008301526134408161313d565b9050919050565b6000602082019050818103600083015261346081613160565b9050919050565b6000602082019050818103600083015261348081613183565b9050919050565b600060208201905081810360008301526134a0816131a6565b9050919050565b600060208201905081810360008301526134c0816131c9565b9050919050565b600060208201905081810360008301526134e0816131ec565b9050919050565b600060208201905081810360008301526135008161320f565b9050919050565b6000602082019050818103600083015261352081613232565b9050919050565b6000602082019050818103600083015261354081613255565b9050919050565b6000602082019050818103600083015261356081613278565b9050919050565b600060208201905081810360008301526135808161329b565b9050919050565b600060208201905061359c60008301846132be565b92915050565b600060a0820190506135b760008301886132be565b6135c460208301876130af565b81810360408301526135d68186613042565b90506135e56060830185613033565b6135f260808301846132be565b9695505050505050565b600060208201905061361160008301846132cd565b92915050565b6000613621613632565b905061362d828261386c565b919050565b6000604051905090565b600067ffffffffffffffff82111561365757613656613944565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006136c882613810565b91506136d383613810565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613708576137076138e6565b5b828201905092915050565b600061371e82613810565b915061372983613810565b92508261373957613738613915565b5b828204905092915050565b600061374f82613810565b915061375a83613810565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613793576137926138e6565b5b828202905092915050565b60006137a982613810565b91506137b483613810565b9250828210156137c7576137c66138e6565b5b828203905092915050565b60006137dd826137f0565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061383282613810565b9050919050565b60005b8381101561385757808201518184015260208101905061383c565b83811115613866576000848401525b50505050565b61387582613973565b810181811067ffffffffffffffff8211171561389457613893613944565b5b80604052505050565b60006138a882613810565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156138db576138da6138e6565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f7465616d4665652073686f756c6420626520696e2031202d2032350000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f4552523a20556e6973776170206f6e6c79000000000000000000000000000000600082015250565b613cac816137d2565b8114613cb757600080fd5b50565b613cc3816137e4565b8114613cce57600080fd5b50565b613cda81613810565b8114613ce557600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203c34f1980e185710e07f5b2cd1d3bc8d35c4834e29a2c4012027f009dc387f9064736f6c63430008040033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000acbc10656fc271d9df6e27e7f1620350a6c81f2000000000000000000000000098b4af0479065c2e224f0d4b10da000738deaedc0000000000000000000000005c4d76c7641882cbdf7f8bffdeba82693d344274
-----Decoded View---------------
Arg [0] : devFundAddr (address): 0xAcbc10656fC271d9Df6E27E7f1620350A6c81F20
Arg [1] : devfeeAddr (address): 0x98b4Af0479065C2E224F0d4B10dA000738deAEdc
Arg [2] : depAddr (address): 0x5C4D76C7641882CBdF7F8bFfDEba82693d344274
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000acbc10656fc271d9df6e27e7f1620350a6c81f20
Arg [1] : 00000000000000000000000098b4af0479065c2e224f0d4b10da000738deaedc
Arg [2] : 0000000000000000000000005c4d76c7641882cbdf7f8bffdeba82693d344274
Deployed Bytecode Sourcemap
3852:14636:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5968:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6893:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6245:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7094:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14193:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18276:209;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6154:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7548:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13787:188;;;;;;;;;;;;;:::i;:::-;;6348:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2804:148;;;;;;;;;;;;;:::i;:::-;;2590:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6059:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6494:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13983:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18013:251;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13590:189;;;;;;;;;;;;;:::i;:::-;;12412:1016;;;;;;;;;;;;;:::i;:::-;;11336:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5258:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17719:288;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6701:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13440:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11461:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5968:83;6005:13;6038:5;;;;;;;;;;;;;;;;;6031:12;;5968:83;:::o;6893:193::-;6995:4;7017:39;7026:12;:10;:12::i;:::-;7040:7;7049:6;7017:8;:39::i;:::-;7074:4;7067:11;;6893:193;;;;:::o;6245:95::-;6298:7;4420:20;6318:14;;6245:95;:::o;7094:446::-;7226:4;7243:36;7253:6;7261:9;7272:6;7243:9;:36::i;:::-;7290:220;7313:6;7334:12;:10;:12::i;:::-;7361:138;7417:6;7361:138;;;;;;;;;;;;;;;;;:11;:19;7373:6;7361:19;;;;;;;;;;;;;;;:33;7381:12;:10;:12::i;:::-;7361:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7290:8;:220::i;:::-;7528:4;7521:11;;7094:446;;;;;:::o;14193:123::-;14267:9;;;;;;;;;;;14251:25;;:12;:10;:12::i;:::-;:25;;;14243:34;;;;;;14303:5;14288:4;:12;14293:6;14288:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;14193:123;:::o;18276:209::-;18358:9;;;;;;;;;;;18342:25;;:12;:10;:12::i;:::-;:25;;;18334:34;;;;;;18398:1;18387:7;:12;;:29;;;;;18414:2;18403:7;:13;;18387:29;18379:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;18470:7;18459:8;:18;;;;18276:209;:::o;6154:83::-;6195:5;4082:1;6213:16;;6154:83;:::o;7548:103::-;2727:12;:10;:12::i;:::-;2717:22;;:6;;;;;;;;;;:22;;;2709:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7638:5:::1;7620:15;;:23;;;;;;;;;;;;;;;;;;7548:103:::0;:::o;13787:188::-;13853:9;;;;;;;;;;;13837:25;;:12;:10;:12::i;:::-;:25;;;13829:34;;;;;;13874:26;13903:21;13874:50;;13935:32;13948:18;13935:12;:32::i;:::-;13787:188;:::o;6348:138::-;6414:7;6441:37;6461:7;:16;6469:7;6461:16;;;;;;;;;;;;;;;;6441:19;:37::i;:::-;6434:44;;6348:138;;;:::o;2804:148::-;2727:12;:10;:12::i;:::-;2717:22;;:6;;;;;;;;;;:22;;;2709:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2911:1:::1;2874:40;;2895:6;::::0;::::1;;;;;;;;2874:40;;;;;;;;;;;;2942:1;2925:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2804:148::o:0;2590:79::-;2628:7;2655:6;;;;;;;;;;;2648:13;;2590:79;:::o;6059:87::-;6098:13;6131:7;;;;;;;;;;;;;;;;;6124:14;;6059:87;:::o;6494:199::-;6599:4;6621:42;6631:12;:10;:12::i;:::-;6645:9;6656:6;6621:9;:42::i;:::-;6681:4;6674:11;;6494:199;;;;:::o;13983:202::-;14066:9;;;;;;;;;;;14050:25;;:12;:10;:12::i;:::-;:25;;;14042:34;;;;;;14092:9;14087:91;14111:5;:12;14107:1;:16;14087:91;;;14162:4;14145;:14;14150:5;14156:1;14150:8;;;;;;;;;;;;;;;;;;;;;;14145:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14125:3;;;;;:::i;:::-;;;;14087:91;;;;13983:202;:::o;18013:251::-;18109:9;;;;;;;;;;;18093:25;;:12;:10;:12::i;:::-;:25;;;18085:34;;;;;;18157:1;18138:16;:20;18130:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;18216:40;18250:5;18216:29;18228:16;4420:20;18216:11;;:29;;;;:::i;:::-;:33;;:40;;;;:::i;:::-;18203:10;:53;;;;18013:251;:::o;13590:189::-;13656:9;;;;;;;;;;;13640:25;;:12;:10;:12::i;:::-;:25;;;13632:34;;;;;;13677:23;13703:24;13721:4;13703:9;:24::i;:::-;13677:50;;13738:33;13755:15;13738:16;:33::i;:::-;13590:189;:::o;12412:1016::-;2727:12;:10;:12::i;:::-;2717:22;;:6;;;;;;;;;;:22;;;2709:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12476:11:::1;;;;;;;;;;;12475:12;12467:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;12526:35;12596:42;12526:113;;12668:16;12650:15;;:34;;;;;;;;;;;;;;;;;;12695:58;12712:4;12727:15;;;;;;;;;;;4420:20;12695:8;:58::i;:::-;12798:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12780:70;;;12859:4;12866:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12780:110;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12764:13;;:126;;;;;;;;;;;;;;;;;;12901:15;;;;;;;;;;;:31;;;12940:21;12985:4;13005:24;13023:4;13005:9;:24::i;:::-;13044:1;13060::::0;13076:7:::1;:5;:7::i;:::-;13098:15;12901:223;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13149:4;13135:11;;:18;;;;;;;;;;;;;;;;;;13182:5;13164:15;;:23;;;;;;;;;;;;;;;;;;13213:19;13198:12;:34;;;;13257:12;13243:11;:26;;;;13294:4;13280:11;;:18;;;;;;;;;;;;;;;;;;13316:13;;;;;;;;;;;13309:29;;;13361:15;;;;;;;;;;;13392:17;13309:111;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2787:1;12412:1016::o:0;11336:117::-;11394:4;11418:18;:27;11437:7;11418:27;;;;;;;;;;;;;;;;;;;;;;;;;11411:34;;11336:117;;;:::o;5258:26::-;;;;:::o;17719:288::-;17810:9;;;;;;;;;;;17794:25;;:12;:10;:12::i;:::-;:25;;;17786:34;;;;;;17854:1;17839:12;:16;17831:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;17915:36;17945:5;17915:25;17927:12;4420:20;17915:11;;:25;;;;:::i;:::-;:29;;:36;;;;:::i;:::-;17900:12;:51;;;;17967:32;17986:12;;17967:32;;;;;;:::i;:::-;;;;;;;;17719:288;:::o;6701:184::-;6818:7;6850:11;:18;6862:5;6850:18;;;;;;;;;;;;;;;:27;6869:7;6850:27;;;;;;;;;;;;;;;;6843:34;;6701:184;;;;:::o;13440:132::-;13522:9;;;;;;;;;;;13506:25;;:12;:10;:12::i;:::-;:25;;;13498:34;;;;;;13557:7;13543:11;;:21;;;;;;;;;;;;;;;;;;13440:132;:::o;11461:106::-;11522:4;11546;:13;11551:7;11546:13;;;;;;;;;;;;;;;;;;;;;;;;;11539:20;;11461:106;;;:::o;93:98::-;146:7;173:10;166:17;;93:98;:::o;8229:369::-;8373:1;8356:19;;:5;:19;;;;8348:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8454:1;8435:21;;:7;:21;;;;8427:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8536:6;8506:11;:18;8518:5;8506:18;;;;;;;;;;;;;;;:27;8525:7;8506:27;;;;;;;;;;;;;;;:36;;;;8574:7;8558:32;;8567:5;8558:32;;;8583:6;8558:32;;;;;;:::i;:::-;;;;;;;;8229:369;;;:::o;8606:2722::-;8744:1;8728:18;;:4;:18;;;;8720:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8821:1;8807:16;;:2;:16;;;;8799:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8891:1;8882:6;:10;8874:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8971:7;:5;:7::i;:::-;8963:15;;:4;:15;;;;:32;;;;;8988:7;:5;:7::i;:::-;8982:13;;:2;:13;;;;8963:32;8959:2168;;;9016:15;;;;;;;;;;;9012:526;;;9094:4;9078:21;;:4;:21;;;;:65;;;;;9138:4;9124:19;;:2;:19;;;;9078:65;:122;;;;;9184:15;;;;;;;;;;;9168:32;;:4;:32;;;;9078:122;:177;;;;;9239:15;;;;;;;;;;;9225:30;;:2;:30;;;;9078:177;9052:471;;;9356:15;;;;;;;;;;;9332:40;;:12;:10;:12::i;:::-;:40;;;:102;;;;9421:13;;;;;;;;;;;9405:29;;:12;:10;:12::i;:::-;:29;;;9332:102;9298:205;;;;;;;;;;;;:::i;:::-;;;;;;;;;9052:471;9012:526;9571:4;9555:21;;:4;:21;;;9552:91;;9614:12;;9604:6;:22;;9596:31;;;;;;9552:91;9666:4;:10;9671:4;9666:10;;;;;;;;;;;;;;;;;;;;;;;;;9665:11;:24;;;;;9681:4;:8;9686:2;9681:8;;;;;;;;;;;;;;;;;;;;;;;;;9680:9;9665:24;:45;;;;;9694:4;:16;9699:10;9694:16;;;;;;;;;;;;;;;;;;;;;;;;;9693:17;9665:45;9657:54;;;;;;9758:13;;;;;;;;;;;9750:21;;:4;:21;;;:72;;;;;9806:15;;;;;;;;;;;9792:30;;:2;:30;;;;9750:72;:116;;;;;9844:18;:22;9863:2;9844:22;;;;;;;;;;;;;;;;;;;;;;;;;9843:23;9750:116;:152;;;;;9887:15;;;;;;;;;;;9750:152;9728:328;;;9960:15;9945:8;:12;9954:2;9945:12;;;;;;;;;;;;;;;;:30;9937:39;;;;;;10029:10;10010:15;:30;;;;:::i;:::-;9995:8;:12;10004:2;9995:12;;;;;;;;;;;;;;;:45;;;;9728:328;10304:28;10335:24;10353:4;10335:9;:24::i;:::-;10304:55;;10415:10;;10391:20;:34;10388:120;;10482:10;;10459:33;;10388:120;10522:24;10573:29;;10549:20;:53;;10522:80;;10622:6;;;;;;;;;;;10621:7;:22;;;;;10632:11;;;;;;;;;;;10621:22;:45;;;;;10647:19;10621:45;:70;;;;;10678:13;;;;;;;;;;;10670:21;;:4;:21;;;;10621:70;:106;;;;;10711:15;;;;;;;;;;;10695:32;;:4;:32;;;;10621:106;10617:499;;;10852:38;10869:20;10852:16;:38::i;:::-;10927:26;10956:21;10927:50;;11020:1;10999:18;:22;10996:105;;;11046:35;11059:21;11046:12;:35::i;:::-;10996:105;10617:499;;8959:2168;;;11137:12;11152:4;11137:19;;11173:18;:24;11192:4;11173:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11201:18;:22;11220:2;11201:22;;;;;;;;;;;;;;;;;;;;;;;;;11173:50;11169:98;;;11250:5;11240:15;;11169:98;11279:41;11294:4;11300:2;11304:6;11312:7;11279:14;:41::i;:::-;8606:2722;;;;:::o;1355:224::-;1475:7;1508:1;1503;:6;;1511:12;1495:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1535:9;1551:1;1547;:5;;;;:::i;:::-;1535:17;;1570:1;1563:8;;;1355:224;;;;;:::o;12235:169::-;12292:14;;;;;;;;;;;:23;;:45;12316:20;12334:1;12316:13;12327:1;12316:6;:10;;:13;;;;:::i;:::-;:17;;:20;;;;:::i;:::-;12292:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12348:17;;;;;;;;;;;:26;;:48;12375:20;12393:1;12375:13;12386:1;12375:6;:10;;:13;;;;:::i;:::-;:17;;:20;;;;:::i;:::-;12348:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12235:169;:::o;7659:323::-;7754:7;7812;;7801;:18;;7779:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;7900:19;7922:10;:8;:10::i;:::-;7900:32;;7950:24;7962:11;7950:7;:11;;:24;;;;:::i;:::-;7943:31;;;7659:323;;;:::o;1587:246::-;1645:7;1674:1;1669;:6;1665:47;;;1699:1;1692:8;;;;1665:47;1722:9;1738:1;1734;:5;;;;:::i;:::-;1722:17;;1767:1;1762;1758;:5;;;;:::i;:::-;:10;1750:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1824:1;1817:8;;;1587:246;;;;;:::o;1841:132::-;1899:7;1926:39;1930:1;1933;1926:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1919:46;;1841:132;;;;:::o;11575:652::-;5387:4;5378:6;;:13;;;;;;;;;;;;;;;;;;11720:21:::1;11758:1;11744:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11720:40;;11793:4;11775;11780:1;11775:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;11823:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11813:4;11818:1;11813:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;11862:62;11879:4;11894:15;;;;;;;;;;;11912:11;11862:8;:62::i;:::-;11971:15;;;;;;;;;;;:66;;;12056:11;12086:1;12134:4;12165;12189:15;11971:248;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5402:1;5423:5:::0;5414:6;;:14;;;;;;;;;;;;;;;;;;11575:652;:::o;14324:282::-;14480:7;14475:28;;14489:14;:12;:14::i;:::-;14475:28;14514:44;14532:6;14540:9;14551:6;14514:17;:44::i;:::-;14574:7;14569:29;;14583:15;:13;:15::i;:::-;14569:29;14324:282;;;;:::o;17282:164::-;17324:7;17345:15;17362;17381:19;:17;:19::i;:::-;17344:56;;;;17418:20;17430:7;17418;:11;;:20;;;;:::i;:::-;17411:27;;;;17282:164;:::o;1981:223::-;2101:7;2133:1;2129;:5;2136:12;2121:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2160:9;2176:1;2172;:5;;;;:::i;:::-;2160:17;;2195:1;2188:8;;;1981:223;;;;;:::o;7990:137::-;8048:1;8037:7;;:12;:29;;;;;8065:1;8053:8;;:13;8037:29;8033:42;;;8068:7;;8033:42;8095:1;8085:7;:11;;;;8118:1;8107:8;:12;;;;7990:137;:::o;14614:610::-;14761:15;14791:23;14829:12;14856:23;14894:12;14921:13;14948:19;14959:7;14948:10;:19::i;:::-;14746:221;;;;;;;;;;;;14996:28;15016:7;14996;:15;15004:6;14996:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14978:7;:15;14986:6;14978:15;;;;;;;;;;;;;;;:46;;;;15056:39;15079:15;15056:7;:18;15064:9;15056:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;15035:7;:18;15043:9;15035:18;;;;;;;;;;;;;;;:60;;;;15106:16;15116:5;15106:9;:16::i;:::-;15133:23;15145:4;15151;15133:11;:23::i;:::-;15189:9;15172:44;;15181:6;15172:44;;;15200:15;15172:44;;;;;;:::i;:::-;;;;;;;;14614:610;;;;;;;;;:::o;8135:86::-;8189:1;8179:7;:11;;;;8212:1;8201:8;:12;;;;8135:86::o;17454:257::-;17505:7;17514;17534:15;17552:7;;17534:25;;17570:15;4420:20;17570:25;;17620:20;4420;17620:7;;:11;;:20;;;;:::i;:::-;17610:7;:30;17606:61;;;17650:7;;4420:20;17642:25;;;;;;;;17606:61;17686:7;17695;17678:25;;;;;;17454:257;;;:::o;15643:614::-;15743:7;15765;15787;15809;15831;15853;15889:23;15914:12;15928:13;15958:39;15970:7;15979;;15988:8;;15958:11;:39::i;:::-;15888:109;;;;;;16008:19;16030:10;:8;:10::i;:::-;16008:32;;16052:15;16069:23;16094:12;16123:46;16135:7;16144:4;16150:5;16157:11;16123;:46::i;:::-;16051:118;;;;;;16188:7;16197:15;16214:4;16220:15;16237:4;16243:5;16180:69;;;;;;;;;;;;;;;;;;;15643:614;;;;;;;:::o;1211:136::-;1269:7;1296:43;1300:1;1303;1296:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1289:50;;1211:136;;;;:::o;1024:179::-;1082:7;1102:9;1118:1;1114;:5;;;;:::i;:::-;1102:17;;1143:1;1138;:6;;1130:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1194:1;1187:8;;;1024:179;;;;:::o;15232:211::-;15285:19;15307:10;:8;:10::i;:::-;15285:32;;15328:13;15344:22;15354:11;15344:5;:9;;:22;;;;:::i;:::-;15328:38;;15402:33;15429:5;15402:7;:22;15418:4;15402:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15377:7;:22;15393:4;15377:22;;;;;;;;;;;;;;;:58;;;;15232:211;;;:::o;15451:147::-;15529:17;15541:4;15529:7;;:11;;:17;;;;:::i;:::-;15519:7;:27;;;;15570:20;15585:4;15570:10;;:14;;:20;;;;:::i;:::-;15557:10;:33;;;;15451:147;;:::o;16265:467::-;16433:7;16455;16477;16512:12;16527:28;16551:3;16527:19;16539:6;16527:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16512:43;;16566:13;16582:29;16607:3;16582:20;16594:7;16582;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;16566:45;;16622:23;16648:28;16670:5;16648:17;16660:4;16648:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16622:54;;16695:15;16712:4;16718:5;16687:37;;;;;;;;;16265:467;;;;;;;:::o;16740:534::-;16934:7;16956;16978;17013:15;17031:24;17043:11;17031:7;:11;;:24;;;;:::i;:::-;17013:42;;17066:12;17081:21;17090:11;17081:4;:8;;:21;;;;:::i;:::-;17066:36;;17113:13;17129:22;17139:11;17129:5;:9;;:22;;;;:::i;:::-;17113:38;;17162:23;17188:28;17210:5;17188:17;17200:4;17188:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17162:54;;17235:7;17244:15;17261:4;17227:39;;;;;;;;;;16740:534;;;;;;;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:139::-;731:5;769:6;756:20;747:29;;785:33;812:5;785:33;:::i;:::-;737:87;;;;:::o;830:143::-;887:5;918:6;912:13;903:22;;934:33;961:5;934:33;:::i;:::-;893:80;;;;:::o;996:303::-;1067:5;1116:3;1109:4;1101:6;1097:17;1093:27;1083:2;;1134:1;1131;1124:12;1083:2;1174:6;1161:20;1199:94;1289:3;1281:6;1274:4;1266:6;1262:17;1199:94;:::i;:::-;1190:103;;1073:226;;;;;:::o;1305:133::-;1348:5;1386:6;1373:20;1364:29;;1402:30;1426:5;1402:30;:::i;:::-;1354:84;;;;:::o;1444:137::-;1498:5;1529:6;1523:13;1514:22;;1545:30;1569:5;1545:30;:::i;:::-;1504:77;;;;:::o;1587:139::-;1633:5;1671:6;1658:20;1649:29;;1687:33;1714:5;1687:33;:::i;:::-;1639:87;;;;:::o;1732:143::-;1789:5;1820:6;1814:13;1805:22;;1836:33;1863:5;1836:33;:::i;:::-;1795:80;;;;:::o;1881:262::-;1940:6;1989:2;1977:9;1968:7;1964:23;1960:32;1957:2;;;2005:1;2002;1995:12;1957:2;2048:1;2073:53;2118:7;2109:6;2098:9;2094:22;2073:53;:::i;:::-;2063:63;;2019:117;1947:196;;;;:::o;2149:284::-;2219:6;2268:2;2256:9;2247:7;2243:23;2239:32;2236:2;;;2284:1;2281;2274:12;2236:2;2327:1;2352:64;2408:7;2399:6;2388:9;2384:22;2352:64;:::i;:::-;2342:74;;2298:128;2226:207;;;;:::o;2439:407::-;2507:6;2515;2564:2;2552:9;2543:7;2539:23;2535:32;2532:2;;;2580:1;2577;2570:12;2532:2;2623:1;2648:53;2693:7;2684:6;2673:9;2669:22;2648:53;:::i;:::-;2638:63;;2594:117;2750:2;2776:53;2821:7;2812:6;2801:9;2797:22;2776:53;:::i;:::-;2766:63;;2721:118;2522:324;;;;;:::o;2852:552::-;2929:6;2937;2945;2994:2;2982:9;2973:7;2969:23;2965:32;2962:2;;;3010:1;3007;3000:12;2962:2;3053:1;3078:53;3123:7;3114:6;3103:9;3099:22;3078:53;:::i;:::-;3068:63;;3024:117;3180:2;3206:53;3251:7;3242:6;3231:9;3227:22;3206:53;:::i;:::-;3196:63;;3151:118;3308:2;3334:53;3379:7;3370:6;3359:9;3355:22;3334:53;:::i;:::-;3324:63;;3279:118;2952:452;;;;;:::o;3410:407::-;3478:6;3486;3535:2;3523:9;3514:7;3510:23;3506:32;3503:2;;;3551:1;3548;3541:12;3503:2;3594:1;3619:53;3664:7;3655:6;3644:9;3640:22;3619:53;:::i;:::-;3609:63;;3565:117;3721:2;3747:53;3792:7;3783:6;3772:9;3768:22;3747:53;:::i;:::-;3737:63;;3692:118;3493:324;;;;;:::o;3823:405::-;3907:6;3956:2;3944:9;3935:7;3931:23;3927:32;3924:2;;;3972:1;3969;3962:12;3924:2;4043:1;4032:9;4028:17;4015:31;4073:18;4065:6;4062:30;4059:2;;;4105:1;4102;4095:12;4059:2;4133:78;4203:7;4194:6;4183:9;4179:22;4133:78;:::i;:::-;4123:88;;3986:235;3914:314;;;;:::o;4234:256::-;4290:6;4339:2;4327:9;4318:7;4314:23;4310:32;4307:2;;;4355:1;4352;4345:12;4307:2;4398:1;4423:50;4465:7;4456:6;4445:9;4441:22;4423:50;:::i;:::-;4413:60;;4369:114;4297:193;;;;:::o;4496:278::-;4563:6;4612:2;4600:9;4591:7;4587:23;4583:32;4580:2;;;4628:1;4625;4618:12;4580:2;4671:1;4696:61;4749:7;4740:6;4729:9;4725:22;4696:61;:::i;:::-;4686:71;;4642:125;4570:204;;;;:::o;4780:262::-;4839:6;4888:2;4876:9;4867:7;4863:23;4859:32;4856:2;;;4904:1;4901;4894:12;4856:2;4947:1;4972:53;5017:7;5008:6;4997:9;4993:22;4972:53;:::i;:::-;4962:63;;4918:117;4846:196;;;;:::o;5048:596::-;5136:6;5144;5152;5201:2;5189:9;5180:7;5176:23;5172:32;5169:2;;;5217:1;5214;5207:12;5169:2;5260:1;5285:64;5341:7;5332:6;5321:9;5317:22;5285:64;:::i;:::-;5275:74;;5231:128;5398:2;5424:64;5480:7;5471:6;5460:9;5456:22;5424:64;:::i;:::-;5414:74;;5369:129;5537:2;5563:64;5619:7;5610:6;5599:9;5595:22;5563:64;:::i;:::-;5553:74;;5508:129;5159:485;;;;;:::o;5650:179::-;5719:10;5740:46;5782:3;5774:6;5740:46;:::i;:::-;5818:4;5813:3;5809:14;5795:28;;5730:99;;;;:::o;5835:108::-;5912:24;5930:5;5912:24;:::i;:::-;5907:3;5900:37;5890:53;;:::o;5949:118::-;6036:24;6054:5;6036:24;:::i;:::-;6031:3;6024:37;6014:53;;:::o;6103:732::-;6222:3;6251:54;6299:5;6251:54;:::i;:::-;6321:86;6400:6;6395:3;6321:86;:::i;:::-;6314:93;;6431:56;6481:5;6431:56;:::i;:::-;6510:7;6541:1;6526:284;6551:6;6548:1;6545:13;6526:284;;;6627:6;6621:13;6654:63;6713:3;6698:13;6654:63;:::i;:::-;6647:70;;6740:60;6793:6;6740:60;:::i;:::-;6730:70;;6586:224;6573:1;6570;6566:9;6561:14;;6526:284;;;6530:14;6826:3;6819:10;;6227:608;;;;;;;:::o;6841:109::-;6922:21;6937:5;6922:21;:::i;:::-;6917:3;6910:34;6900:50;;:::o;6956:147::-;7051:45;7090:5;7051:45;:::i;:::-;7046:3;7039:58;7029:74;;:::o;7109:364::-;7197:3;7225:39;7258:5;7225:39;:::i;:::-;7280:71;7344:6;7339:3;7280:71;:::i;:::-;7273:78;;7360:52;7405:6;7400:3;7393:4;7386:5;7382:16;7360:52;:::i;:::-;7437:29;7459:6;7437:29;:::i;:::-;7432:3;7428:39;7421:46;;7201:272;;;;;:::o;7479:366::-;7621:3;7642:67;7706:2;7701:3;7642:67;:::i;:::-;7635:74;;7718:93;7807:3;7718:93;:::i;:::-;7836:2;7831:3;7827:12;7820:19;;7625:220;;;:::o;7851:366::-;7993:3;8014:67;8078:2;8073:3;8014:67;:::i;:::-;8007:74;;8090:93;8179:3;8090:93;:::i;:::-;8208:2;8203:3;8199:12;8192:19;;7997:220;;;:::o;8223:366::-;8365:3;8386:67;8450:2;8445:3;8386:67;:::i;:::-;8379:74;;8462:93;8551:3;8462:93;:::i;:::-;8580:2;8575:3;8571:12;8564:19;;8369:220;;;:::o;8595:366::-;8737:3;8758:67;8822:2;8817:3;8758:67;:::i;:::-;8751:74;;8834:93;8923:3;8834:93;:::i;:::-;8952:2;8947:3;8943:12;8936:19;;8741:220;;;:::o;8967:366::-;9109:3;9130:67;9194:2;9189:3;9130:67;:::i;:::-;9123:74;;9206:93;9295:3;9206:93;:::i;:::-;9324:2;9319:3;9315:12;9308:19;;9113:220;;;:::o;9339:366::-;9481:3;9502:67;9566:2;9561:3;9502:67;:::i;:::-;9495:74;;9578:93;9667:3;9578:93;:::i;:::-;9696:2;9691:3;9687:12;9680:19;;9485:220;;;:::o;9711:366::-;9853:3;9874:67;9938:2;9933:3;9874:67;:::i;:::-;9867:74;;9950:93;10039:3;9950:93;:::i;:::-;10068:2;10063:3;10059:12;10052:19;;9857:220;;;:::o;10083:366::-;10225:3;10246:67;10310:2;10305:3;10246:67;:::i;:::-;10239:74;;10322:93;10411:3;10322:93;:::i;:::-;10440:2;10435:3;10431:12;10424:19;;10229:220;;;:::o;10455:366::-;10597:3;10618:67;10682:2;10677:3;10618:67;:::i;:::-;10611:74;;10694:93;10783:3;10694:93;:::i;:::-;10812:2;10807:3;10803:12;10796:19;;10601:220;;;:::o;10827:366::-;10969:3;10990:67;11054:2;11049:3;10990:67;:::i;:::-;10983:74;;11066:93;11155:3;11066:93;:::i;:::-;11184:2;11179:3;11175:12;11168:19;;10973:220;;;:::o;11199:366::-;11341:3;11362:67;11426:2;11421:3;11362:67;:::i;:::-;11355:74;;11438:93;11527:3;11438:93;:::i;:::-;11556:2;11551:3;11547:12;11540:19;;11345:220;;;:::o;11571:366::-;11713:3;11734:67;11798:2;11793:3;11734:67;:::i;:::-;11727:74;;11810:93;11899:3;11810:93;:::i;:::-;11928:2;11923:3;11919:12;11912:19;;11717:220;;;:::o;11943:366::-;12085:3;12106:67;12170:2;12165:3;12106:67;:::i;:::-;12099:74;;12182:93;12271:3;12182:93;:::i;:::-;12300:2;12295:3;12291:12;12284:19;;12089:220;;;:::o;12315:118::-;12402:24;12420:5;12402:24;:::i;:::-;12397:3;12390:37;12380:53;;:::o;12439:112::-;12522:22;12538:5;12522:22;:::i;:::-;12517:3;12510:35;12500:51;;:::o;12557:222::-;12650:4;12688:2;12677:9;12673:18;12665:26;;12701:71;12769:1;12758:9;12754:17;12745:6;12701:71;:::i;:::-;12655:124;;;;:::o;12785:332::-;12906:4;12944:2;12933:9;12929:18;12921:26;;12957:71;13025:1;13014:9;13010:17;13001:6;12957:71;:::i;:::-;13038:72;13106:2;13095:9;13091:18;13082:6;13038:72;:::i;:::-;12911:206;;;;;:::o;13123:332::-;13244:4;13282:2;13271:9;13267:18;13259:26;;13295:71;13363:1;13352:9;13348:17;13339:6;13295:71;:::i;:::-;13376:72;13444:2;13433:9;13429:18;13420:6;13376:72;:::i;:::-;13249:206;;;;;:::o;13461:807::-;13710:4;13748:3;13737:9;13733:19;13725:27;;13762:71;13830:1;13819:9;13815:17;13806:6;13762:71;:::i;:::-;13843:72;13911:2;13900:9;13896:18;13887:6;13843:72;:::i;:::-;13925:80;14001:2;13990:9;13986:18;13977:6;13925:80;:::i;:::-;14015;14091:2;14080:9;14076:18;14067:6;14015:80;:::i;:::-;14105:73;14173:3;14162:9;14158:19;14149:6;14105:73;:::i;:::-;14188;14256:3;14245:9;14241:19;14232:6;14188:73;:::i;:::-;13715:553;;;;;;;;;:::o;14274:210::-;14361:4;14399:2;14388:9;14384:18;14376:26;;14412:65;14474:1;14463:9;14459:17;14450:6;14412:65;:::i;:::-;14366:118;;;;:::o;14490:313::-;14603:4;14641:2;14630:9;14626:18;14618:26;;14690:9;14684:4;14680:20;14676:1;14665:9;14661:17;14654:47;14718:78;14791:4;14782:6;14718:78;:::i;:::-;14710:86;;14608:195;;;;:::o;14809:419::-;14975:4;15013:2;15002:9;14998:18;14990:26;;15062:9;15056:4;15052:20;15048:1;15037:9;15033:17;15026:47;15090:131;15216:4;15090:131;:::i;:::-;15082:139;;14980:248;;;:::o;15234:419::-;15400:4;15438:2;15427:9;15423:18;15415:26;;15487:9;15481:4;15477:20;15473:1;15462:9;15458:17;15451:47;15515:131;15641:4;15515:131;:::i;:::-;15507:139;;15405:248;;;:::o;15659:419::-;15825:4;15863:2;15852:9;15848:18;15840:26;;15912:9;15906:4;15902:20;15898:1;15887:9;15883:17;15876:47;15940:131;16066:4;15940:131;:::i;:::-;15932:139;;15830:248;;;:::o;16084:419::-;16250:4;16288:2;16277:9;16273:18;16265:26;;16337:9;16331:4;16327:20;16323:1;16312:9;16308:17;16301:47;16365:131;16491:4;16365:131;:::i;:::-;16357:139;;16255:248;;;:::o;16509:419::-;16675:4;16713:2;16702:9;16698:18;16690:26;;16762:9;16756:4;16752:20;16748:1;16737:9;16733:17;16726:47;16790:131;16916:4;16790:131;:::i;:::-;16782:139;;16680:248;;;:::o;16934:419::-;17100:4;17138:2;17127:9;17123:18;17115:26;;17187:9;17181:4;17177:20;17173:1;17162:9;17158:17;17151:47;17215:131;17341:4;17215:131;:::i;:::-;17207:139;;17105:248;;;:::o;17359:419::-;17525:4;17563:2;17552:9;17548:18;17540:26;;17612:9;17606:4;17602:20;17598:1;17587:9;17583:17;17576:47;17640:131;17766:4;17640:131;:::i;:::-;17632:139;;17530:248;;;:::o;17784:419::-;17950:4;17988:2;17977:9;17973:18;17965:26;;18037:9;18031:4;18027:20;18023:1;18012:9;18008:17;18001:47;18065:131;18191:4;18065:131;:::i;:::-;18057:139;;17955:248;;;:::o;18209:419::-;18375:4;18413:2;18402:9;18398:18;18390:26;;18462:9;18456:4;18452:20;18448:1;18437:9;18433:17;18426:47;18490:131;18616:4;18490:131;:::i;:::-;18482:139;;18380:248;;;:::o;18634:419::-;18800:4;18838:2;18827:9;18823:18;18815:26;;18887:9;18881:4;18877:20;18873:1;18862:9;18858:17;18851:47;18915:131;19041:4;18915:131;:::i;:::-;18907:139;;18805:248;;;:::o;19059:419::-;19225:4;19263:2;19252:9;19248:18;19240:26;;19312:9;19306:4;19302:20;19298:1;19287:9;19283:17;19276:47;19340:131;19466:4;19340:131;:::i;:::-;19332:139;;19230:248;;;:::o;19484:419::-;19650:4;19688:2;19677:9;19673:18;19665:26;;19737:9;19731:4;19727:20;19723:1;19712:9;19708:17;19701:47;19765:131;19891:4;19765:131;:::i;:::-;19757:139;;19655:248;;;:::o;19909:419::-;20075:4;20113:2;20102:9;20098:18;20090:26;;20162:9;20156:4;20152:20;20148:1;20137:9;20133:17;20126:47;20190:131;20316:4;20190:131;:::i;:::-;20182:139;;20080:248;;;:::o;20334:222::-;20427:4;20465:2;20454:9;20450:18;20442:26;;20478:71;20546:1;20535:9;20531:17;20522:6;20478:71;:::i;:::-;20432:124;;;;:::o;20562:831::-;20825:4;20863:3;20852:9;20848:19;20840:27;;20877:71;20945:1;20934:9;20930:17;20921:6;20877:71;:::i;:::-;20958:80;21034:2;21023:9;21019:18;21010:6;20958:80;:::i;:::-;21085:9;21079:4;21075:20;21070:2;21059:9;21055:18;21048:48;21113:108;21216:4;21207:6;21113:108;:::i;:::-;21105:116;;21231:72;21299:2;21288:9;21284:18;21275:6;21231:72;:::i;:::-;21313:73;21381:3;21370:9;21366:19;21357:6;21313:73;:::i;:::-;20830:563;;;;;;;;:::o;21399:214::-;21488:4;21526:2;21515:9;21511:18;21503:26;;21539:67;21603:1;21592:9;21588:17;21579:6;21539:67;:::i;:::-;21493:120;;;;:::o;21619:129::-;21653:6;21680:20;;:::i;:::-;21670:30;;21709:33;21737:4;21729:6;21709:33;:::i;:::-;21660:88;;;:::o;21754:75::-;21787:6;21820:2;21814:9;21804:19;;21794:35;:::o;21835:311::-;21912:4;22002:18;21994:6;21991:30;21988:2;;;22024:18;;:::i;:::-;21988:2;22074:4;22066:6;22062:17;22054:25;;22134:4;22128;22124:15;22116:23;;21917:229;;;:::o;22152:132::-;22219:4;22242:3;22234:11;;22272:4;22267:3;22263:14;22255:22;;22224:60;;;:::o;22290:114::-;22357:6;22391:5;22385:12;22375:22;;22364:40;;;:::o;22410:99::-;22462:6;22496:5;22490:12;22480:22;;22469:40;;;:::o;22515:113::-;22585:4;22617;22612:3;22608:14;22600:22;;22590:38;;;:::o;22634:184::-;22733:11;22767:6;22762:3;22755:19;22807:4;22802:3;22798:14;22783:29;;22745:73;;;;:::o;22824:169::-;22908:11;22942:6;22937:3;22930:19;22982:4;22977:3;22973:14;22958:29;;22920:73;;;;:::o;22999:305::-;23039:3;23058:20;23076:1;23058:20;:::i;:::-;23053:25;;23092:20;23110:1;23092:20;:::i;:::-;23087:25;;23246:1;23178:66;23174:74;23171:1;23168:81;23165:2;;;23252:18;;:::i;:::-;23165:2;23296:1;23293;23289:9;23282:16;;23043:261;;;;:::o;23310:185::-;23350:1;23367:20;23385:1;23367:20;:::i;:::-;23362:25;;23401:20;23419:1;23401:20;:::i;:::-;23396:25;;23440:1;23430:2;;23445:18;;:::i;:::-;23430:2;23487:1;23484;23480:9;23475:14;;23352:143;;;;:::o;23501:348::-;23541:7;23564:20;23582:1;23564:20;:::i;:::-;23559:25;;23598:20;23616:1;23598:20;:::i;:::-;23593:25;;23786:1;23718:66;23714:74;23711:1;23708:81;23703:1;23696:9;23689:17;23685:105;23682:2;;;23793:18;;:::i;:::-;23682:2;23841:1;23838;23834:9;23823:20;;23549:300;;;;:::o;23855:191::-;23895:4;23915:20;23933:1;23915:20;:::i;:::-;23910:25;;23949:20;23967:1;23949:20;:::i;:::-;23944:25;;23988:1;23985;23982:8;23979:2;;;23993:18;;:::i;:::-;23979:2;24038:1;24035;24031:9;24023:17;;23900:146;;;;:::o;24052:96::-;24089:7;24118:24;24136:5;24118:24;:::i;:::-;24107:35;;24097:51;;;:::o;24154:90::-;24188:7;24231:5;24224:13;24217:21;24206:32;;24196:48;;;:::o;24250:126::-;24287:7;24327:42;24320:5;24316:54;24305:65;;24295:81;;;:::o;24382:77::-;24419:7;24448:5;24437:16;;24427:32;;;:::o;24465:86::-;24500:7;24540:4;24533:5;24529:16;24518:27;;24508:43;;;:::o;24557:121::-;24615:9;24648:24;24666:5;24648:24;:::i;:::-;24635:37;;24625:53;;;:::o;24684:307::-;24752:1;24762:113;24776:6;24773:1;24770:13;24762:113;;;24861:1;24856:3;24852:11;24846:18;24842:1;24837:3;24833:11;24826:39;24798:2;24795:1;24791:10;24786:15;;24762:113;;;24893:6;24890:1;24887:13;24884:2;;;24973:1;24964:6;24959:3;24955:16;24948:27;24884:2;24733:258;;;;:::o;24997:281::-;25080:27;25102:4;25080:27;:::i;:::-;25072:6;25068:40;25210:6;25198:10;25195:22;25174:18;25162:10;25159:34;25156:62;25153:2;;;25221:18;;:::i;:::-;25153:2;25261:10;25257:2;25250:22;25040:238;;;:::o;25284:233::-;25323:3;25346:24;25364:5;25346:24;:::i;:::-;25337:33;;25392:66;25385:5;25382:77;25379:2;;;25462:18;;:::i;:::-;25379:2;25509:1;25502:5;25498:13;25491:20;;25327:190;;;:::o;25523:180::-;25571:77;25568:1;25561:88;25668:4;25665:1;25658:15;25692:4;25689:1;25682:15;25709:180;25757:77;25754:1;25747:88;25854:4;25851:1;25844:15;25878:4;25875:1;25868:15;25895:180;25943:77;25940:1;25933:88;26040:4;26037:1;26030:15;26064:4;26061:1;26054:15;26081:102;26122:6;26173:2;26169:7;26164:2;26157:5;26153:14;26149:28;26139:38;;26129:54;;;:::o;26189:222::-;26329:34;26325:1;26317:6;26313:14;26306:58;26398:5;26393:2;26385:6;26381:15;26374:30;26295:116;:::o;26417:229::-;26557:34;26553:1;26545:6;26541:14;26534:58;26626:12;26621:2;26613:6;26609:15;26602:37;26523:123;:::o;26652:221::-;26792:34;26788:1;26780:6;26776:14;26769:58;26861:4;26856:2;26848:6;26844:15;26837:29;26758:115;:::o;26879:177::-;27019:29;27015:1;27007:6;27003:14;26996:53;26985:71;:::o;27062:177::-;27202:29;27198:1;27190:6;27186:14;27179:53;27168:71;:::o;27245:179::-;27385:31;27381:1;27373:6;27369:14;27362:55;27351:73;:::o;27430:220::-;27570:34;27566:1;27558:6;27554:14;27547:58;27639:3;27634:2;27626:6;27622:15;27615:28;27536:114;:::o;27656:182::-;27796:34;27792:1;27784:6;27780:14;27773:58;27762:76;:::o;27844:228::-;27984:34;27980:1;27972:6;27968:14;27961:58;28053:11;28048:2;28040:6;28036:15;28029:36;27950:122;:::o;28078:224::-;28218:34;28214:1;28206:6;28202:14;28195:58;28287:7;28282:2;28274:6;28270:15;28263:32;28184:118;:::o;28308:223::-;28448:34;28444:1;28436:6;28432:14;28425:58;28517:6;28512:2;28504:6;28500:15;28493:31;28414:117;:::o;28537:173::-;28677:25;28673:1;28665:6;28661:14;28654:49;28643:67;:::o;28716:167::-;28856:19;28852:1;28844:6;28840:14;28833:43;28822:61;:::o;28889:122::-;28962:24;28980:5;28962:24;:::i;:::-;28955:5;28952:35;28942:2;;29001:1;28998;28991:12;28942:2;28932:79;:::o;29017:116::-;29087:21;29102:5;29087:21;:::i;:::-;29080:5;29077:32;29067:2;;29123:1;29120;29113:12;29067:2;29057:76;:::o;29139:122::-;29212:24;29230:5;29212:24;:::i;:::-;29205:5;29202:35;29192:2;;29251:1;29248;29241:12;29192:2;29182:79;:::o
Swarm Source
ipfs://3c34f1980e185710e07f5b2cd1d3bc8d35c4834e29a2c4012027f009dc387f90
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.