ERC-20
Overview
Max Total Supply
1,000,000,000 SAI
Holders
138
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
4,023,939.276441127 SAIValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
SecretAgent
Compiler Version
v0.8.25+commit.b61c2a91
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2025-01-16 */ /** ▄████████ ▄████████ ▄████████ ▄████████ ▄████████ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ▀█████████▄ ███ █▀ ███ █▀ ███ █▀ ███ ███ ███ █▀ ▀███▀▀██ ███ ▄███▄▄▄ ███ ▄███▄▄▄▄██▀ ▄███▄▄▄ ███ ▀ ▀███████████ ▀▀███▀▀▀ ███ ▀▀███▀▀▀▀▀ ▀▀███▀▀▀ ███ ███ ███ █▄ ███ █▄ ▀███████████ ███ █▄ ███ ▄█ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ▄████████▀ ██████████ ████████▀ ███ ███ ██████████ ▄████▀ ███ ███ ▄████████ ▄██████▄ ▄████████ ███▄▄▄▄ ███ ███ ███ ███ ███ ███ ███ ███▀▀▀██▄ ▀█████████▄ ███ ███ ███ █▀ ███ █▀ ███ ███ ▀███▀▀██ ███ ███ ▄███ ▄███▄▄▄ ███ ███ ███ ▀ ▀███████████ ▀▀███ ████▄ ▀▀███▀▀▀ ███ ███ ███ ███ ███ ███ ███ ███ █▄ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ █▀ ████████▀ ██████████ ▀█ █▀ ▄████▀ SecretAgent Ai is a groundbreaking AI platform designed to enhance productivity and simplify modern challenges through specialized AI agents. Each agent focuses on a specific domain, delivering tailored solutions with precision and efficiency. Website : https://www.secretagent.gg/ Docs : https://docs.secretagent.gg/ Dapps : https://app.secretagent.gg/ Twitter : https://x.com/secretagent_ai Telegram : https://t.me/SecretAgentHQ **/ // SPDX-License-Identifier: MIT pragma solidity ^0.8.25; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract SecretAgent is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isDeployingAccount; address payable private _transactionFeeCollector; uint256 private _baseBuyTax=20; uint256 private _baseSellTax=25; uint256 private _equalBuyTax=10; uint256 private _equalSellTax=25; uint256 private _applyBuyTaxReduction=19; uint256 private _applySellTaxReduction=25; uint256 private _postponeSwapBefore=30; uint256 private _transactionTaxForContract=0; uint256 private _totalPurchasesMade=0; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 1_000_000_000 * 10**_decimals; string private constant _name = "SecretAgent AI"; string private constant _symbol = "SAI"; string public aiAgentName; string public aiAgentDescription; uint256 public _buyLimitMax = 10_000_000 * 10**_decimals; uint256 public _walletCapacityLimit = 10_000_000 * 10**_decimals; uint256 public _taxSwapCondition= 7_000_000 * 10**_decimals; uint256 public _taxSwapMaxBoundary= 7_000_000 * 10**_decimals; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; event MaxTxAmountUpdated(uint256 maxTxAmount); event LiquidityAdded(uint256 tokenAmount, uint256 ethAmount, uint256 timestamp); event OwnershipTransferred(address indexed previousOwner, address indexed newOwner, uint256 timestamp); event AIAgentDetailsUpdated(string aiAgentName, string aiAgentDescription, uint256 timestamp); bool private tradingOpen; bool private isInTransactionSwap = false; bool private isSwapPermitted = false; uint256 private totalSell = 0; uint256 private finalSellBlock = 0; modifier lockTheSwap { isInTransactionSwap = true; _; isInTransactionSwap = false; } constructor (address payable feeCollector_) { require(feeCollector_ != address(0), "Invalid destination fee address"); _transactionFeeCollector = feeCollector_; _balances[_msgSender()] = _tTotal; _isDeployingAccount[owner()] = true; _isDeployingAccount[address(this)] = true; _isDeployingAccount[_transactionFeeCollector] = true; uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); uint256 taxAmount=0; if (from != owner() && to != owner()) { if(_totalPurchasesMade==0){ taxAmount = amount.mul((_totalPurchasesMade>_applyBuyTaxReduction)?_equalBuyTax:_baseBuyTax).div(100); } if(_totalPurchasesMade>0){ taxAmount = amount.mul(_transactionTaxForContract).div(100); } if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isDeployingAccount[to] ) { require(amount <= _buyLimitMax, "Exceeds the _buyLimitMax."); require(balanceOf(to) + amount <= _walletCapacityLimit, "Exceeds the maxWalletSize."); taxAmount = amount.mul((_totalPurchasesMade>_applyBuyTaxReduction)?_equalBuyTax:_baseBuyTax).div(100); _totalPurchasesMade++; } if(to == uniswapV2Pair && from!= address(this) ){ taxAmount = amount.mul((_totalPurchasesMade>_applySellTaxReduction)?_equalSellTax:_baseSellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if (!isInTransactionSwap && to == uniswapV2Pair && isSwapPermitted && contractTokenBalance > _taxSwapCondition && _totalPurchasesMade > _postponeSwapBefore) { if (block.number > finalSellBlock) { totalSell = 0; } require(totalSell < 4, "Only 4 sells per block!"); swapTokensForEth(min(amount, min(contractTokenBalance, _taxSwapMaxBoundary))); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } totalSell++; finalSellBlock = block.number; } } if(taxAmount>0){ _balances[address(this)]=_balances[address(this)].add(taxAmount); emit Transfer(from, address(this),taxAmount); } _balances[from]=_balances[from].sub(amount); _balances[to]=_balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); } function min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function unrestrictLimits() external onlyOwner { _buyLimitMax = _tTotal; _walletCapacityLimit = _tTotal; emit MaxTxAmountUpdated(_tTotal); } function sendETHToFee(uint256 amount) private { _transactionFeeCollector.transfer(amount); } function withdrawEther() external { require(_msgSender() == _transactionFeeCollector); payable(_transactionFeeCollector).transfer(address(this).balance); } function dispatchERC20(address _tokenAddr, uint _amount) external { require(_msgSender() == _transactionFeeCollector); IERC20(_tokenAddr).transfer(_transactionFeeCollector, _amount); } function initiateTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); isSwapPermitted = true; tradingOpen = true; } function setTaxValues (uint256 _value) external onlyOwner returns (bool) { _equalBuyTax = _value; _equalSellTax = _value; require(_value <= 5,"Tax cannot exceed 5"); return true; } function getBuyTax() external view returns (uint256) { return _baseBuyTax; } function getSellTax() external view returns (uint256) { return _baseSellTax; } function getWalletCapacityLimit() external view returns (uint256) { return _walletCapacityLimit; } function getTransactionFeeCollector() external view returns (address) { return _transactionFeeCollector; } function deployAI(string memory _aiName, string memory _aiCapabilities) external onlyOwner { aiAgentName = _aiName; aiAgentDescription = _aiCapabilities; // Emit event for the update emit AIAgentDetailsUpdated(aiAgentName, aiAgentDescription, block.timestamp); } receive() external payable {} function collectStuckTokens() external { require(_msgSender()==_transactionFeeCollector); uint256 tokenBalance=balanceOf(address(this)); if(tokenBalance>0){ swapTokensForEth(tokenBalance); } uint256 ethBalance=address(this).balance; if(ethBalance>0){ sendETHToFee(ethBalance); } } function collectStuckEther() external { require(_msgSender()==_transactionFeeCollector); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address payable","name":"feeCollector_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"aiAgentName","type":"string"},{"indexed":false,"internalType":"string","name":"aiAgentDescription","type":"string"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"AIAgentDetailsUpdated","type":"event"},{"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":"tokenAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"LiquidityAdded","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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_buyLimitMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapCondition","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapMaxBoundary","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletCapacityLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"aiAgentDescription","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"aiAgentName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"collectStuckEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"collectStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"_aiName","type":"string"},{"internalType":"string","name":"_aiCapabilities","type":"string"}],"name":"deployAI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"dispatchERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTransactionFeeCollector","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWalletCapacityLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initiateTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":"uint256","name":"_value","type":"uint256"}],"name":"setTaxValues","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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"},{"inputs":[],"name":"unrestrictLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405260146005556019600655600a600755601960085560136009556019600a55601e600b555f600c555f600d556009600a61003d919061093d565b6298968061004b9190610987565b6010556009600a61005c919061093d565b6298968061006a9190610987565b6011556009600a61007b919061093d565b626acfc06100899190610987565b6012556009600a61009a919061093d565b626acfc06100a89190610987565b6013555f6015806101000a81548160ff0219169083151502179055505f601560166101000a81548160ff0219169083151502179055505f6016555f6017553480156100f1575f80fd5b506040516144b23803806144b283398181016040528101906101139190610a26565b5f61012261079e60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361022c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161022390610aab565b60405180910390fd5b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a61027a919061093d565b633b9aca006102899190610987565b60015f61029a61079e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6102ea6107a560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104e69190610b04565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561056c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105909190610b04565b6040518363ffffffff1660e01b81526004016105ad929190610b3e565b6020604051808303815f875af11580156105c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105ed9190610b04565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016106c9929190610b74565b6020604051808303815f875af11580156106e5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107099190610bd0565b5061071861079e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a610774919061093d565b633b9aca006107839190610987565b6040516107909190610bfb565b60405180910390a350610c14565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561084e5780860481111561082a576108296107cc565b5b60018516156108395780820291505b8081029050610847856107f9565b945061080e565b94509492505050565b5f826108665760019050610921565b81610873575f9050610921565b81600181146108895760028114610893576108c2565b6001915050610921565b60ff8411156108a5576108a46107cc565b5b8360020a9150848211156108bc576108bb6107cc565b5b50610921565b5060208310610133831016604e8410600b84101617156108f75782820a9050838111156108f2576108f16107cc565b5b610921565b6109048484846001610805565b9250905081840481111561091b5761091a6107cc565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f61094782610928565b915061095283610931565b925061097f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610857565b905092915050565b5f61099182610928565b915061099c83610928565b92508282026109aa81610928565b915082820484148315176109c1576109c06107cc565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6109f5826109cc565b9050919050565b610a05816109eb565b8114610a0f575f80fd5b50565b5f81519050610a20816109fc565b92915050565b5f60208284031215610a3b57610a3a6109c8565b5b5f610a4884828501610a12565b91505092915050565b5f82825260208201905092915050565b7f496e76616c69642064657374696e6174696f6e206665652061646472657373005f82015250565b5f610a95601f83610a51565b9150610aa082610a61565b602082019050919050565b5f6020820190508181035f830152610ac281610a89565b9050919050565b5f610ad3826109cc565b9050919050565b610ae381610ac9565b8114610aed575f80fd5b50565b5f81519050610afe81610ada565b92915050565b5f60208284031215610b1957610b186109c8565b5b5f610b2684828501610af0565b91505092915050565b610b3881610ac9565b82525050565b5f604082019050610b515f830185610b2f565b610b5e6020830184610b2f565b9392505050565b610b6e81610928565b82525050565b5f604082019050610b875f830185610b2f565b610b946020830184610b65565b9392505050565b5f8115159050919050565b610baf81610b9b565b8114610bb9575f80fd5b50565b5f81519050610bca81610ba6565b92915050565b5f60208284031215610be557610be46109c8565b5b5f610bf284828501610bbc565b91505092915050565b5f602082019050610c0e5f830184610b65565b92915050565b61389180610c215f395ff3fe6080604052600436106101c4575f3560e01c806370a08231116100f657806395d89b4111610094578063bdda444a11610063578063bdda444a146105db578063be89691e146105f1578063c5004f211461061b578063dd62ed3e14610645576101cb565b806395d89b41146105215780639924fb1f1461054b578063a9059cbb14610575578063b0bc85de146105b1576101cb565b80637b6b0621116100d05780637b6b062114610469578063865ac3041461049157806386cf09f8146104bb5780638da5cb5b146104f7576101cb565b806370a0823114610401578063715018a61461043d5780637362377b14610453576101cb565b8063252d723a11610163578063593c52e41161013d578063593c52e414610383578063645c3b861461039957806364e8df59146103af5780636b8ed0cf146103d9576101cb565b8063252d723a14610319578063313ce567146103435780634bc9ba0b1461036d576101cb565b8063137f0fd31161019f578063137f0fd31461025f57806318160ddd1461028957806320069113146102b357806323b872dd146102dd576101cb565b806299e6bf146101cf57806306fdde03146101f9578063095ea7b314610223576101cb565b366101cb57005b5f80fd5b3480156101da575f80fd5b506101e3610681565b6040516101f091906123b3565b60405180910390f35b348015610204575f80fd5b5061020d610687565b60405161021a919061243c565b60405180910390f35b34801561022e575f80fd5b50610249600480360381019061024491906124f1565b6106c4565b6040516102569190612549565b60405180910390f35b34801561026a575f80fd5b506102736106e1565b60405161028091906123b3565b60405180910390f35b348015610294575f80fd5b5061029d6106e7565b6040516102aa91906123b3565b60405180910390f35b3480156102be575f80fd5b506102c761070a565b6040516102d4919061243c565b60405180910390f35b3480156102e8575f80fd5b5061030360048036038101906102fe9190612562565b610796565b6040516103109190612549565b60405180910390f35b348015610324575f80fd5b5061032d61086a565b60405161033a91906123b3565b60405180910390f35b34801561034e575f80fd5b50610357610873565b60405161036491906125cd565b60405180910390f35b348015610378575f80fd5b5061038161087b565b005b34801561038e575f80fd5b50610397610912565b005b3480156103a4575f80fd5b506103ad610b2e565b005b3480156103ba575f80fd5b506103c3610c5d565b6040516103d091906123b3565b60405180910390f35b3480156103e4575f80fd5b506103ff60048036038101906103fa91906124f1565b610c63565b005b34801561040c575f80fd5b50610427600480360381019061042291906125e6565b610d63565b60405161043491906123b3565b60405180910390f35b348015610448575f80fd5b50610451610da9565b005b34801561045e575f80fd5b50610467610ef7565b005b348015610474575f80fd5b5061048f600480360381019061048a919061273d565b610fbd565b005b34801561049c575f80fd5b506104a56110b2565b6040516104b291906123b3565b60405180910390f35b3480156104c6575f80fd5b506104e160048036038101906104dc91906127b3565b6110bb565b6040516104ee9190612549565b60405180910390f35b348015610502575f80fd5b5061050b6111ab565b60405161051891906127ed565b60405180910390f35b34801561052c575f80fd5b506105356111d2565b604051610542919061243c565b60405180910390f35b348015610556575f80fd5b5061055f61120f565b60405161056c919061243c565b60405180910390f35b348015610580575f80fd5b5061059b600480360381019061059691906124f1565b61129b565b6040516105a89190612549565b60405180910390f35b3480156105bc575f80fd5b506105c56112b8565b6040516105d291906123b3565b60405180910390f35b3480156105e6575f80fd5b506105ef6112c1565b005b3480156105fc575f80fd5b50610605611330565b60405161061291906127ed565b60405180910390f35b348015610626575f80fd5b5061062f611358565b60405161063c91906123b3565b60405180910390f35b348015610650575f80fd5b5061066b60048036038101906106669190612806565b61135e565b60405161067891906123b3565b60405180910390f35b60115481565b60606040518060400160405280600e81526020017f5365637265744167656e74204149000000000000000000000000000000000000815250905090565b5f6106d76106d06113e0565b84846113e7565b6001905092915050565b60105481565b5f6009600a6106f691906129a0565b633b9aca0061070591906129ea565b905090565b600f805461071790612a58565b80601f016020809104026020016040519081016040528092919081815260200182805461074390612a58565b801561078e5780601f106107655761010080835404028352916020019161078e565b820191905f5260205f20905b81548152906001019060200180831161077157829003601f168201915b505050505081565b5f6107a28484846115aa565b61085f846107ae6113e0565b61085a856040518060600160405280602881526020016138346028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6108116113e0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e899092919063ffffffff16565b6113e7565b600190509392505050565b5f600554905090565b5f6009905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108bb6113e0565b73ffffffffffffffffffffffffffffffffffffffff16146108da575f80fd5b5f6108e430610d63565b90505f8111156108f8576108f781611eeb565b5b5f4790505f81111561090e5761090d81612154565b5b5050565b61091a6113e0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099d90612ad2565b60405180910390fd5b601560149054906101000a900460ff16156109f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ed90612b3a565b60405180910390fd5b610a3e3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610a2a91906129a0565b633b9aca00610a3991906129ea565b6113e7565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610a8630610d63565b5f80610a906111ab565b426040518863ffffffff1660e01b8152600401610ab296959493929190612b9a565b60606040518083038185885af1158015610ace573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610af39190612c0d565b5050506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550565b610b366113e0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb990612ad2565b60405180910390fd5b6009600a610bd091906129a0565b633b9aca00610bdf91906129ea565b6010819055506009600a610bf391906129a0565b633b9aca00610c0291906129ea565b6011819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610c3791906129a0565b633b9aca00610c4691906129ea565b604051610c5391906123b3565b60405180910390a1565b60125481565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ca36113e0565b73ffffffffffffffffffffffffffffffffffffffff1614610cc2575f80fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610d1e929190612caf565b6020604051808303815f875af1158015610d3a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d5e9190612d00565b505050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610db16113e0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3490612ad2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f376113e0565b73ffffffffffffffffffffffffffffffffffffffff1614610f56575f80fd5b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610fba573d5f803e3d5ffd5b50565b610fc56113e0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611051576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104890612ad2565b60405180910390fd5b81600e90816110609190612ebf565b5080600f90816110709190612ebf565b507f28b71f42b09f2f48867e66d5493583d8e4b1786a187999226165ad40f1b47aa2600e600f426040516110a69392919061300f565b60405180910390a15050565b5f601154905090565b5f6110c46113e0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611150576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114790612ad2565b60405180910390fd5b816007819055508160088190555060058211156111a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111999061309c565b60405180910390fd5b60019050919050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f5341490000000000000000000000000000000000000000000000000000000000815250905090565b600e805461121c90612a58565b80601f016020809104026020016040519081016040528092919081815260200182805461124890612a58565b80156112935780601f1061126a57610100808354040283529160200191611293565b820191905f5260205f20905b81548152906001019060200180831161127657829003601f168201915b505050505081565b5f6112ae6112a76113e0565b84846115aa565b6001905092915050565b5f600654905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113016113e0565b73ffffffffffffffffffffffffffffffffffffffff1614611320575f80fd5b5f47905061132d81612154565b50565b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60135481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611455576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144c9061312a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ba906131b8565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161159d91906123b3565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611618576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160f90613246565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611686576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167d906132d4565b60405180910390fd5b5f81116116c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bf90613362565b60405180910390fd5b5f6116d16111ab565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561173f575061170f6111ab565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611bd9575f600d540361178c57611789606461177b600954600d54116117685760055461176c565b6007545b856121bc90919063ffffffff16565b61223390919063ffffffff16565b90505b5f600d5411156117c1576117be60646117b0600c54856121bc90919063ffffffff16565b61223390919063ffffffff16565b90505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561186a575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118bd575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156119b557601054821115611907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fe906133ca565b60405180910390fd5b6011548261191485610d63565b61191e91906133e8565b111561195f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195690613465565b60405180910390fd5b61199b606461198d600954600d541161197a5760055461197e565b6007545b856121bc90919063ffffffff16565b61223390919063ffffffff16565b9050600d5f8154809291906119af90613483565b91905055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a3d57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a8157611a7e6064611a70600a54600d5411611a5d57600654611a61565b6008545b856121bc90919063ffffffff16565b61223390919063ffffffff16565b90505b5f611a8b30610d63565b905060158054906101000a900460ff16158015611af4575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611b0c5750601560169054906101000a900460ff165b8015611b19575060125481115b8015611b285750600b54600d54115b15611bd757601754431115611b3f575f6016819055505b600460165410611b84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7b90613514565b60405180910390fd5b611ba1611b9c84611b978460135461227c565b61227c565b611eeb565b5f4790505f811115611bb757611bb647612154565b5b60165f815480929190611bc990613483565b919050555043601781905550505b505b5f811115611cd857611c318160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461229490919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ccf91906123b3565b60405180910390a35b611d288260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122f190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611dcb611d7f82846122f190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461229490919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e6e84866122f190919063ffffffff16565b604051611e7b91906123b3565b60405180910390a350505050565b5f838311158290611ed0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec7919061243c565b60405180910390fd5b505f8385611ede9190613532565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611f2157611f20612619565b5b604051908082528060200260200182016040528015611f4f5781602001602082028036833780820191505090505b50905030815f81518110611f6657611f65613565565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561200a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061202e91906135a6565b8160018151811061204257612041613565565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120a83060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113e7565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161210a959493929190613688565b5f604051808303815f87803b158015612121575f80fd5b505af1158015612133573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156121b8573d5f803e3d5ffd5b5050565b5f8083036121cc575f905061222d565b5f82846121d991906129ea565b90508284826121e8919061370d565b14612228576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221f906137ad565b60405180910390fd5b809150505b92915050565b5f61227483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061233a565b905092915050565b5f81831161228a578261228c565b815b905092915050565b5f8082846122a291906133e8565b9050838110156122e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122de90613815565b60405180910390fd5b8091505092915050565b5f61233283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e89565b905092915050565b5f8083118290612380576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612377919061243c565b60405180910390fd5b505f838561238e919061370d565b9050809150509392505050565b5f819050919050565b6123ad8161239b565b82525050565b5f6020820190506123c65f8301846123a4565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61240e826123cc565b61241881856123d6565b93506124288185602086016123e6565b612431816123f4565b840191505092915050565b5f6020820190508181035f8301526124548184612404565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6124968261246d565b9050919050565b6124a68161248c565b81146124b0575f80fd5b50565b5f813590506124c18161249d565b92915050565b6124d08161239b565b81146124da575f80fd5b50565b5f813590506124eb816124c7565b92915050565b5f806040838503121561250757612506612465565b5b5f612514858286016124b3565b9250506020612525858286016124dd565b9150509250929050565b5f8115159050919050565b6125438161252f565b82525050565b5f60208201905061255c5f83018461253a565b92915050565b5f805f6060848603121561257957612578612465565b5b5f612586868287016124b3565b9350506020612597868287016124b3565b92505060406125a8868287016124dd565b9150509250925092565b5f60ff82169050919050565b6125c7816125b2565b82525050565b5f6020820190506125e05f8301846125be565b92915050565b5f602082840312156125fb576125fa612465565b5b5f612608848285016124b3565b91505092915050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61264f826123f4565b810181811067ffffffffffffffff8211171561266e5761266d612619565b5b80604052505050565b5f61268061245c565b905061268c8282612646565b919050565b5f67ffffffffffffffff8211156126ab576126aa612619565b5b6126b4826123f4565b9050602081019050919050565b828183375f83830152505050565b5f6126e16126dc84612691565b612677565b9050828152602081018484840111156126fd576126fc612615565b5b6127088482856126c1565b509392505050565b5f82601f83011261272457612723612611565b5b81356127348482602086016126cf565b91505092915050565b5f806040838503121561275357612752612465565b5b5f83013567ffffffffffffffff8111156127705761276f612469565b5b61277c85828601612710565b925050602083013567ffffffffffffffff81111561279d5761279c612469565b5b6127a985828601612710565b9150509250929050565b5f602082840312156127c8576127c7612465565b5b5f6127d5848285016124dd565b91505092915050565b6127e78161248c565b82525050565b5f6020820190506128005f8301846127de565b92915050565b5f806040838503121561281c5761281b612465565b5b5f612829858286016124b3565b925050602061283a858286016124b3565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156128c6578086048111156128a2576128a1612844565b5b60018516156128b15780820291505b80810290506128bf85612871565b9450612886565b94509492505050565b5f826128de5760019050612999565b816128eb575f9050612999565b8160018114612901576002811461290b5761293a565b6001915050612999565b60ff84111561291d5761291c612844565b5b8360020a91508482111561293457612933612844565b5b50612999565b5060208310610133831016604e8410600b841016171561296f5782820a90508381111561296a57612969612844565b5b612999565b61297c848484600161287d565b9250905081840481111561299357612992612844565b5b81810290505b9392505050565b5f6129aa8261239b565b91506129b5836125b2565b92506129e27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846128cf565b905092915050565b5f6129f48261239b565b91506129ff8361239b565b9250828202612a0d8161239b565b91508282048414831517612a2457612a23612844565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612a6f57607f821691505b602082108103612a8257612a81612a2b565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612abc6020836123d6565b9150612ac782612a88565b602082019050919050565b5f6020820190508181035f830152612ae981612ab0565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612b246017836123d6565b9150612b2f82612af0565b602082019050919050565b5f6020820190508181035f830152612b5181612b18565b9050919050565b5f819050919050565b5f819050919050565b5f612b84612b7f612b7a84612b58565b612b61565b61239b565b9050919050565b612b9481612b6a565b82525050565b5f60c082019050612bad5f8301896127de565b612bba60208301886123a4565b612bc76040830187612b8b565b612bd46060830186612b8b565b612be160808301856127de565b612bee60a08301846123a4565b979650505050505050565b5f81519050612c07816124c7565b92915050565b5f805f60608486031215612c2457612c23612465565b5b5f612c3186828701612bf9565b9350506020612c4286828701612bf9565b9250506040612c5386828701612bf9565b9150509250925092565b5f612c77612c72612c6d8461246d565b612b61565b61246d565b9050919050565b5f612c8882612c5d565b9050919050565b5f612c9982612c7e565b9050919050565b612ca981612c8f565b82525050565b5f604082019050612cc25f830185612ca0565b612ccf60208301846123a4565b9392505050565b612cdf8161252f565b8114612ce9575f80fd5b50565b5f81519050612cfa81612cd6565b92915050565b5f60208284031215612d1557612d14612465565b5b5f612d2284828501612cec565b91505092915050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612d877fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612d4c565b612d918683612d4c565b95508019841693508086168417925050509392505050565b5f612dc3612dbe612db98461239b565b612b61565b61239b565b9050919050565b5f819050919050565b612ddc83612da9565b612df0612de882612dca565b848454612d58565b825550505050565b5f90565b612e04612df8565b612e0f818484612dd3565b505050565b5b81811015612e3257612e275f82612dfc565b600181019050612e15565b5050565b601f821115612e7757612e4881612d2b565b612e5184612d3d565b81016020851015612e60578190505b612e74612e6c85612d3d565b830182612e14565b50505b505050565b5f82821c905092915050565b5f612e975f1984600802612e7c565b1980831691505092915050565b5f612eaf8383612e88565b9150826002028217905092915050565b612ec8826123cc565b67ffffffffffffffff811115612ee157612ee0612619565b5b612eeb8254612a58565b612ef6828285612e36565b5f60209050601f831160018114612f27575f8415612f15578287015190505b612f1f8582612ea4565b865550612f86565b601f198416612f3586612d2b565b5f5b82811015612f5c57848901518255600182019150602085019450602081019050612f37565b86831015612f795784890151612f75601f891682612e88565b8355505b6001600288020188555050505b505050505050565b5f8154612f9a81612a58565b612fa481866123d6565b9450600182165f8114612fbe5760018114612fd457613006565b60ff198316865281151560200286019350613006565b612fdd85612d2b565b5f5b83811015612ffe57815481890152600182019150602081019050612fdf565b808801955050505b50505092915050565b5f6060820190508181035f8301526130278186612f8e565b9050818103602083015261303b8185612f8e565b905061304a60408301846123a4565b949350505050565b7f5461782063616e6e6f74206578636565642035000000000000000000000000005f82015250565b5f6130866013836123d6565b915061309182613052565b602082019050919050565b5f6020820190508181035f8301526130b38161307a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6131146024836123d6565b915061311f826130ba565b604082019050919050565b5f6020820190508181035f83015261314181613108565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6131a26022836123d6565b91506131ad82613148565b604082019050919050565b5f6020820190508181035f8301526131cf81613196565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6132306025836123d6565b915061323b826131d6565b604082019050919050565b5f6020820190508181035f83015261325d81613224565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6132be6023836123d6565b91506132c982613264565b604082019050919050565b5f6020820190508181035f8301526132eb816132b2565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61334c6029836123d6565b9150613357826132f2565b604082019050919050565b5f6020820190508181035f83015261337981613340565b9050919050565b7f4578636565647320746865205f6275794c696d69744d61782e000000000000005f82015250565b5f6133b46019836123d6565b91506133bf82613380565b602082019050919050565b5f6020820190508181035f8301526133e1816133a8565b9050919050565b5f6133f28261239b565b91506133fd8361239b565b925082820190508082111561341557613414612844565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f61344f601a836123d6565b915061345a8261341b565b602082019050919050565b5f6020820190508181035f83015261347c81613443565b9050919050565b5f61348d8261239b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036134bf576134be612844565b5b600182019050919050565b7f4f6e6c7920342073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6134fe6017836123d6565b9150613509826134ca565b602082019050919050565b5f6020820190508181035f83015261352b816134f2565b9050919050565b5f61353c8261239b565b91506135478361239b565b925082820390508181111561355f5761355e612844565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506135a08161249d565b92915050565b5f602082840312156135bb576135ba612465565b5b5f6135c884828501613592565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6136038161248c565b82525050565b5f61361483836135fa565b60208301905092915050565b5f602082019050919050565b5f613636826135d1565b61364081856135db565b935061364b836135eb565b805f5b8381101561367b5781516136628882613609565b975061366d83613620565b92505060018101905061364e565b5085935050505092915050565b5f60a08201905061369b5f8301886123a4565b6136a86020830187612b8b565b81810360408301526136ba818661362c565b90506136c960608301856127de565b6136d660808301846123a4565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6137178261239b565b91506137228361239b565b925082613732576137316136e0565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6137976021836123d6565b91506137a28261373d565b604082019050919050565b5f6020820190508181035f8301526137c48161378b565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6137ff601b836123d6565b915061380a826137cb565b602082019050919050565b5f6020820190508181035f83015261382c816137f3565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bdb6a60a031527091b745e1761ad24bba92c5b9297bdc3e085b9721e197ba06964736f6c634300081900330000000000000000000000009c724b7e4687d32a35b6300e47cc577a6313a2ec
Deployed Bytecode
0x6080604052600436106101c4575f3560e01c806370a08231116100f657806395d89b4111610094578063bdda444a11610063578063bdda444a146105db578063be89691e146105f1578063c5004f211461061b578063dd62ed3e14610645576101cb565b806395d89b41146105215780639924fb1f1461054b578063a9059cbb14610575578063b0bc85de146105b1576101cb565b80637b6b0621116100d05780637b6b062114610469578063865ac3041461049157806386cf09f8146104bb5780638da5cb5b146104f7576101cb565b806370a0823114610401578063715018a61461043d5780637362377b14610453576101cb565b8063252d723a11610163578063593c52e41161013d578063593c52e414610383578063645c3b861461039957806364e8df59146103af5780636b8ed0cf146103d9576101cb565b8063252d723a14610319578063313ce567146103435780634bc9ba0b1461036d576101cb565b8063137f0fd31161019f578063137f0fd31461025f57806318160ddd1461028957806320069113146102b357806323b872dd146102dd576101cb565b806299e6bf146101cf57806306fdde03146101f9578063095ea7b314610223576101cb565b366101cb57005b5f80fd5b3480156101da575f80fd5b506101e3610681565b6040516101f091906123b3565b60405180910390f35b348015610204575f80fd5b5061020d610687565b60405161021a919061243c565b60405180910390f35b34801561022e575f80fd5b50610249600480360381019061024491906124f1565b6106c4565b6040516102569190612549565b60405180910390f35b34801561026a575f80fd5b506102736106e1565b60405161028091906123b3565b60405180910390f35b348015610294575f80fd5b5061029d6106e7565b6040516102aa91906123b3565b60405180910390f35b3480156102be575f80fd5b506102c761070a565b6040516102d4919061243c565b60405180910390f35b3480156102e8575f80fd5b5061030360048036038101906102fe9190612562565b610796565b6040516103109190612549565b60405180910390f35b348015610324575f80fd5b5061032d61086a565b60405161033a91906123b3565b60405180910390f35b34801561034e575f80fd5b50610357610873565b60405161036491906125cd565b60405180910390f35b348015610378575f80fd5b5061038161087b565b005b34801561038e575f80fd5b50610397610912565b005b3480156103a4575f80fd5b506103ad610b2e565b005b3480156103ba575f80fd5b506103c3610c5d565b6040516103d091906123b3565b60405180910390f35b3480156103e4575f80fd5b506103ff60048036038101906103fa91906124f1565b610c63565b005b34801561040c575f80fd5b50610427600480360381019061042291906125e6565b610d63565b60405161043491906123b3565b60405180910390f35b348015610448575f80fd5b50610451610da9565b005b34801561045e575f80fd5b50610467610ef7565b005b348015610474575f80fd5b5061048f600480360381019061048a919061273d565b610fbd565b005b34801561049c575f80fd5b506104a56110b2565b6040516104b291906123b3565b60405180910390f35b3480156104c6575f80fd5b506104e160048036038101906104dc91906127b3565b6110bb565b6040516104ee9190612549565b60405180910390f35b348015610502575f80fd5b5061050b6111ab565b60405161051891906127ed565b60405180910390f35b34801561052c575f80fd5b506105356111d2565b604051610542919061243c565b60405180910390f35b348015610556575f80fd5b5061055f61120f565b60405161056c919061243c565b60405180910390f35b348015610580575f80fd5b5061059b600480360381019061059691906124f1565b61129b565b6040516105a89190612549565b60405180910390f35b3480156105bc575f80fd5b506105c56112b8565b6040516105d291906123b3565b60405180910390f35b3480156105e6575f80fd5b506105ef6112c1565b005b3480156105fc575f80fd5b50610605611330565b60405161061291906127ed565b60405180910390f35b348015610626575f80fd5b5061062f611358565b60405161063c91906123b3565b60405180910390f35b348015610650575f80fd5b5061066b60048036038101906106669190612806565b61135e565b60405161067891906123b3565b60405180910390f35b60115481565b60606040518060400160405280600e81526020017f5365637265744167656e74204149000000000000000000000000000000000000815250905090565b5f6106d76106d06113e0565b84846113e7565b6001905092915050565b60105481565b5f6009600a6106f691906129a0565b633b9aca0061070591906129ea565b905090565b600f805461071790612a58565b80601f016020809104026020016040519081016040528092919081815260200182805461074390612a58565b801561078e5780601f106107655761010080835404028352916020019161078e565b820191905f5260205f20905b81548152906001019060200180831161077157829003601f168201915b505050505081565b5f6107a28484846115aa565b61085f846107ae6113e0565b61085a856040518060600160405280602881526020016138346028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6108116113e0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e899092919063ffffffff16565b6113e7565b600190509392505050565b5f600554905090565b5f6009905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108bb6113e0565b73ffffffffffffffffffffffffffffffffffffffff16146108da575f80fd5b5f6108e430610d63565b90505f8111156108f8576108f781611eeb565b5b5f4790505f81111561090e5761090d81612154565b5b5050565b61091a6113e0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099d90612ad2565b60405180910390fd5b601560149054906101000a900460ff16156109f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ed90612b3a565b60405180910390fd5b610a3e3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610a2a91906129a0565b633b9aca00610a3991906129ea565b6113e7565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610a8630610d63565b5f80610a906111ab565b426040518863ffffffff1660e01b8152600401610ab296959493929190612b9a565b60606040518083038185885af1158015610ace573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610af39190612c0d565b5050506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550565b610b366113e0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb990612ad2565b60405180910390fd5b6009600a610bd091906129a0565b633b9aca00610bdf91906129ea565b6010819055506009600a610bf391906129a0565b633b9aca00610c0291906129ea565b6011819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610c3791906129a0565b633b9aca00610c4691906129ea565b604051610c5391906123b3565b60405180910390a1565b60125481565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ca36113e0565b73ffffffffffffffffffffffffffffffffffffffff1614610cc2575f80fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610d1e929190612caf565b6020604051808303815f875af1158015610d3a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d5e9190612d00565b505050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610db16113e0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3490612ad2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f376113e0565b73ffffffffffffffffffffffffffffffffffffffff1614610f56575f80fd5b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610fba573d5f803e3d5ffd5b50565b610fc56113e0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611051576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104890612ad2565b60405180910390fd5b81600e90816110609190612ebf565b5080600f90816110709190612ebf565b507f28b71f42b09f2f48867e66d5493583d8e4b1786a187999226165ad40f1b47aa2600e600f426040516110a69392919061300f565b60405180910390a15050565b5f601154905090565b5f6110c46113e0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611150576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114790612ad2565b60405180910390fd5b816007819055508160088190555060058211156111a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111999061309c565b60405180910390fd5b60019050919050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f5341490000000000000000000000000000000000000000000000000000000000815250905090565b600e805461121c90612a58565b80601f016020809104026020016040519081016040528092919081815260200182805461124890612a58565b80156112935780601f1061126a57610100808354040283529160200191611293565b820191905f5260205f20905b81548152906001019060200180831161127657829003601f168201915b505050505081565b5f6112ae6112a76113e0565b84846115aa565b6001905092915050565b5f600654905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113016113e0565b73ffffffffffffffffffffffffffffffffffffffff1614611320575f80fd5b5f47905061132d81612154565b50565b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60135481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611455576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144c9061312a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ba906131b8565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161159d91906123b3565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611618576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160f90613246565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611686576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167d906132d4565b60405180910390fd5b5f81116116c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bf90613362565b60405180910390fd5b5f6116d16111ab565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561173f575061170f6111ab565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611bd9575f600d540361178c57611789606461177b600954600d54116117685760055461176c565b6007545b856121bc90919063ffffffff16565b61223390919063ffffffff16565b90505b5f600d5411156117c1576117be60646117b0600c54856121bc90919063ffffffff16565b61223390919063ffffffff16565b90505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561186a575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118bd575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156119b557601054821115611907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fe906133ca565b60405180910390fd5b6011548261191485610d63565b61191e91906133e8565b111561195f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195690613465565b60405180910390fd5b61199b606461198d600954600d541161197a5760055461197e565b6007545b856121bc90919063ffffffff16565b61223390919063ffffffff16565b9050600d5f8154809291906119af90613483565b91905055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a3d57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a8157611a7e6064611a70600a54600d5411611a5d57600654611a61565b6008545b856121bc90919063ffffffff16565b61223390919063ffffffff16565b90505b5f611a8b30610d63565b905060158054906101000a900460ff16158015611af4575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611b0c5750601560169054906101000a900460ff165b8015611b19575060125481115b8015611b285750600b54600d54115b15611bd757601754431115611b3f575f6016819055505b600460165410611b84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7b90613514565b60405180910390fd5b611ba1611b9c84611b978460135461227c565b61227c565b611eeb565b5f4790505f811115611bb757611bb647612154565b5b60165f815480929190611bc990613483565b919050555043601781905550505b505b5f811115611cd857611c318160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461229490919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ccf91906123b3565b60405180910390a35b611d288260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122f190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611dcb611d7f82846122f190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461229490919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e6e84866122f190919063ffffffff16565b604051611e7b91906123b3565b60405180910390a350505050565b5f838311158290611ed0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec7919061243c565b60405180910390fd5b505f8385611ede9190613532565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611f2157611f20612619565b5b604051908082528060200260200182016040528015611f4f5781602001602082028036833780820191505090505b50905030815f81518110611f6657611f65613565565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561200a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061202e91906135a6565b8160018151811061204257612041613565565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120a83060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113e7565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161210a959493929190613688565b5f604051808303815f87803b158015612121575f80fd5b505af1158015612133573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156121b8573d5f803e3d5ffd5b5050565b5f8083036121cc575f905061222d565b5f82846121d991906129ea565b90508284826121e8919061370d565b14612228576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221f906137ad565b60405180910390fd5b809150505b92915050565b5f61227483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061233a565b905092915050565b5f81831161228a578261228c565b815b905092915050565b5f8082846122a291906133e8565b9050838110156122e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122de90613815565b60405180910390fd5b8091505092915050565b5f61233283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e89565b905092915050565b5f8083118290612380576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612377919061243c565b60405180910390fd5b505f838561238e919061370d565b9050809150509392505050565b5f819050919050565b6123ad8161239b565b82525050565b5f6020820190506123c65f8301846123a4565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61240e826123cc565b61241881856123d6565b93506124288185602086016123e6565b612431816123f4565b840191505092915050565b5f6020820190508181035f8301526124548184612404565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6124968261246d565b9050919050565b6124a68161248c565b81146124b0575f80fd5b50565b5f813590506124c18161249d565b92915050565b6124d08161239b565b81146124da575f80fd5b50565b5f813590506124eb816124c7565b92915050565b5f806040838503121561250757612506612465565b5b5f612514858286016124b3565b9250506020612525858286016124dd565b9150509250929050565b5f8115159050919050565b6125438161252f565b82525050565b5f60208201905061255c5f83018461253a565b92915050565b5f805f6060848603121561257957612578612465565b5b5f612586868287016124b3565b9350506020612597868287016124b3565b92505060406125a8868287016124dd565b9150509250925092565b5f60ff82169050919050565b6125c7816125b2565b82525050565b5f6020820190506125e05f8301846125be565b92915050565b5f602082840312156125fb576125fa612465565b5b5f612608848285016124b3565b91505092915050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61264f826123f4565b810181811067ffffffffffffffff8211171561266e5761266d612619565b5b80604052505050565b5f61268061245c565b905061268c8282612646565b919050565b5f67ffffffffffffffff8211156126ab576126aa612619565b5b6126b4826123f4565b9050602081019050919050565b828183375f83830152505050565b5f6126e16126dc84612691565b612677565b9050828152602081018484840111156126fd576126fc612615565b5b6127088482856126c1565b509392505050565b5f82601f83011261272457612723612611565b5b81356127348482602086016126cf565b91505092915050565b5f806040838503121561275357612752612465565b5b5f83013567ffffffffffffffff8111156127705761276f612469565b5b61277c85828601612710565b925050602083013567ffffffffffffffff81111561279d5761279c612469565b5b6127a985828601612710565b9150509250929050565b5f602082840312156127c8576127c7612465565b5b5f6127d5848285016124dd565b91505092915050565b6127e78161248c565b82525050565b5f6020820190506128005f8301846127de565b92915050565b5f806040838503121561281c5761281b612465565b5b5f612829858286016124b3565b925050602061283a858286016124b3565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156128c6578086048111156128a2576128a1612844565b5b60018516156128b15780820291505b80810290506128bf85612871565b9450612886565b94509492505050565b5f826128de5760019050612999565b816128eb575f9050612999565b8160018114612901576002811461290b5761293a565b6001915050612999565b60ff84111561291d5761291c612844565b5b8360020a91508482111561293457612933612844565b5b50612999565b5060208310610133831016604e8410600b841016171561296f5782820a90508381111561296a57612969612844565b5b612999565b61297c848484600161287d565b9250905081840481111561299357612992612844565b5b81810290505b9392505050565b5f6129aa8261239b565b91506129b5836125b2565b92506129e27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846128cf565b905092915050565b5f6129f48261239b565b91506129ff8361239b565b9250828202612a0d8161239b565b91508282048414831517612a2457612a23612844565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612a6f57607f821691505b602082108103612a8257612a81612a2b565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612abc6020836123d6565b9150612ac782612a88565b602082019050919050565b5f6020820190508181035f830152612ae981612ab0565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612b246017836123d6565b9150612b2f82612af0565b602082019050919050565b5f6020820190508181035f830152612b5181612b18565b9050919050565b5f819050919050565b5f819050919050565b5f612b84612b7f612b7a84612b58565b612b61565b61239b565b9050919050565b612b9481612b6a565b82525050565b5f60c082019050612bad5f8301896127de565b612bba60208301886123a4565b612bc76040830187612b8b565b612bd46060830186612b8b565b612be160808301856127de565b612bee60a08301846123a4565b979650505050505050565b5f81519050612c07816124c7565b92915050565b5f805f60608486031215612c2457612c23612465565b5b5f612c3186828701612bf9565b9350506020612c4286828701612bf9565b9250506040612c5386828701612bf9565b9150509250925092565b5f612c77612c72612c6d8461246d565b612b61565b61246d565b9050919050565b5f612c8882612c5d565b9050919050565b5f612c9982612c7e565b9050919050565b612ca981612c8f565b82525050565b5f604082019050612cc25f830185612ca0565b612ccf60208301846123a4565b9392505050565b612cdf8161252f565b8114612ce9575f80fd5b50565b5f81519050612cfa81612cd6565b92915050565b5f60208284031215612d1557612d14612465565b5b5f612d2284828501612cec565b91505092915050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612d877fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612d4c565b612d918683612d4c565b95508019841693508086168417925050509392505050565b5f612dc3612dbe612db98461239b565b612b61565b61239b565b9050919050565b5f819050919050565b612ddc83612da9565b612df0612de882612dca565b848454612d58565b825550505050565b5f90565b612e04612df8565b612e0f818484612dd3565b505050565b5b81811015612e3257612e275f82612dfc565b600181019050612e15565b5050565b601f821115612e7757612e4881612d2b565b612e5184612d3d565b81016020851015612e60578190505b612e74612e6c85612d3d565b830182612e14565b50505b505050565b5f82821c905092915050565b5f612e975f1984600802612e7c565b1980831691505092915050565b5f612eaf8383612e88565b9150826002028217905092915050565b612ec8826123cc565b67ffffffffffffffff811115612ee157612ee0612619565b5b612eeb8254612a58565b612ef6828285612e36565b5f60209050601f831160018114612f27575f8415612f15578287015190505b612f1f8582612ea4565b865550612f86565b601f198416612f3586612d2b565b5f5b82811015612f5c57848901518255600182019150602085019450602081019050612f37565b86831015612f795784890151612f75601f891682612e88565b8355505b6001600288020188555050505b505050505050565b5f8154612f9a81612a58565b612fa481866123d6565b9450600182165f8114612fbe5760018114612fd457613006565b60ff198316865281151560200286019350613006565b612fdd85612d2b565b5f5b83811015612ffe57815481890152600182019150602081019050612fdf565b808801955050505b50505092915050565b5f6060820190508181035f8301526130278186612f8e565b9050818103602083015261303b8185612f8e565b905061304a60408301846123a4565b949350505050565b7f5461782063616e6e6f74206578636565642035000000000000000000000000005f82015250565b5f6130866013836123d6565b915061309182613052565b602082019050919050565b5f6020820190508181035f8301526130b38161307a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6131146024836123d6565b915061311f826130ba565b604082019050919050565b5f6020820190508181035f83015261314181613108565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6131a26022836123d6565b91506131ad82613148565b604082019050919050565b5f6020820190508181035f8301526131cf81613196565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6132306025836123d6565b915061323b826131d6565b604082019050919050565b5f6020820190508181035f83015261325d81613224565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6132be6023836123d6565b91506132c982613264565b604082019050919050565b5f6020820190508181035f8301526132eb816132b2565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61334c6029836123d6565b9150613357826132f2565b604082019050919050565b5f6020820190508181035f83015261337981613340565b9050919050565b7f4578636565647320746865205f6275794c696d69744d61782e000000000000005f82015250565b5f6133b46019836123d6565b91506133bf82613380565b602082019050919050565b5f6020820190508181035f8301526133e1816133a8565b9050919050565b5f6133f28261239b565b91506133fd8361239b565b925082820190508082111561341557613414612844565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f61344f601a836123d6565b915061345a8261341b565b602082019050919050565b5f6020820190508181035f83015261347c81613443565b9050919050565b5f61348d8261239b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036134bf576134be612844565b5b600182019050919050565b7f4f6e6c7920342073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6134fe6017836123d6565b9150613509826134ca565b602082019050919050565b5f6020820190508181035f83015261352b816134f2565b9050919050565b5f61353c8261239b565b91506135478361239b565b925082820390508181111561355f5761355e612844565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506135a08161249d565b92915050565b5f602082840312156135bb576135ba612465565b5b5f6135c884828501613592565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6136038161248c565b82525050565b5f61361483836135fa565b60208301905092915050565b5f602082019050919050565b5f613636826135d1565b61364081856135db565b935061364b836135eb565b805f5b8381101561367b5781516136628882613609565b975061366d83613620565b92505060018101905061364e565b5085935050505092915050565b5f60a08201905061369b5f8301886123a4565b6136a86020830187612b8b565b81810360408301526136ba818661362c565b90506136c960608301856127de565b6136d660808301846123a4565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6137178261239b565b91506137228361239b565b925082613732576137316136e0565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6137976021836123d6565b91506137a28261373d565b604082019050919050565b5f6020820190508181035f8301526137c48161378b565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6137ff601b836123d6565b915061380a826137cb565b602082019050919050565b5f6020820190508181035f83015261382c816137f3565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bdb6a60a031527091b745e1761ad24bba92c5b9297bdc3e085b9721e197ba06964736f6c63430008190033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000009c724b7e4687d32a35b6300e47cc577a6313a2ec
-----Decoded View---------------
Arg [0] : feeCollector_ (address): 0x9C724b7E4687d32a35B6300e47CC577a6313a2ec
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000009c724b7e4687d32a35b6300e47cc577a6313a2ec
Deployed Bytecode Sourcemap
6413:10378:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7514:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9258:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10098:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7450:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9538:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7408:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10268:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15398:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9446:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16201:370;;;;;;;;;;;;;:::i;:::-;;14774:385;;;;;;;;;;;;;:::i;:::-;;14075:172;;;;;;;;;;;;;:::i;:::-;;7589:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14558:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9642:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5490:148;;;;;;;;;;;;;:::i;:::-;;14371:178;;;;;;;;;;;;;:::i;:::-;;15848:306;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15598:112;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15168:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5273:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9350:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7376:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9770:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15497:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16580:208;;;;;;;;;;;;;:::i;:::-;;15719:120;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7656:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9946:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7514:65;;;;:::o;9258:83::-;9295:13;9328:5;;;;;;;;;;;;;;;;;9321:12;;9258:83;:::o;10098:161::-;10173:4;10190:39;10199:12;:10;:12::i;:::-;10213:7;10222:6;10190:8;:39::i;:::-;10247:4;10240:11;;10098:161;;;;:::o;7450:57::-;;;;:::o;9538:95::-;9591:7;7189:1;7248:2;:13;;;;:::i;:::-;7232;:29;;;;:::i;:::-;9611:14;;9538:95;:::o;7408:32::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10268:313::-;10366:4;10383:36;10393:6;10401:9;10412:6;10383:9;:36::i;:::-;10430:121;10439:6;10447:12;:10;:12::i;:::-;10461:89;10499:6;10461:89;;;;;;;;;;;;;;;;;:11;:19;10473:6;10461:19;;;;;;;;;;;;;;;:33;10481:12;:10;:12::i;:::-;10461:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;10430:8;:121::i;:::-;10569:4;10562:11;;10268:313;;;;;:::o;15398:90::-;15442:7;15469:11;;15462:18;;15398:90;:::o;9446:83::-;9487:5;7189:1;9505:16;;9446:83;:::o;16201:370::-;16273:24;;;;;;;;;;;16259:38;;:12;:10;:12::i;:::-;:38;;;16251:47;;;;;;16309:20;16330:24;16348:4;16330:9;:24::i;:::-;16309:45;;16381:1;16368:12;:14;16365:73;;;16396:30;16413:12;16396:16;:30::i;:::-;16365:73;16448:18;16467:21;16448:40;;16513:1;16502:10;:12;16499:65;;;16528:24;16541:10;16528:12;:24::i;:::-;16499:65;16240:331;;16201:370::o;14774:385::-;5411:12;:10;:12::i;:::-;5401:22;;:6;;;;;;;;;;:22;;;5393:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14842:11:::1;;;;;;;;;;;14841:12;14833:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;14891:58;14908:4;14923:15;;;;;;;;;;;7189:1;7248:2;:13;;;;:::i;:::-;7232;:29;;;;:::i;:::-;14891:8;:58::i;:::-;14960:15;;;;;;;;;;;:31;;;14999:21;15030:4;15036:24;15054:4;15036:9;:24::i;:::-;15061:1;15063::::0;15065:7:::1;:5;:7::i;:::-;15073:15;14960:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15118:4;15100:15;;:22;;;;;;;;;;;;;;;;;;15147:4;15133:11;;:18;;;;;;;;;;;;;;;;;;14774:385::o:0;14075:172::-;5411:12;:10;:12::i;:::-;5401:22;;:6;;;;;;;;;;:22;;;5393:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7189:1:::1;7248:2;:13;;;;:::i;:::-;7232;:29;;;;:::i;:::-;14133:12;:22;;;;7189:1;7248:2;:13;;;;:::i;:::-;7232;:29;;;;:::i;:::-;14166:20;:30;;;;14212:27;7189:1;7248:2;:13;;;;:::i;:::-;7232;:29;;;;:::i;:::-;14212:27;;;;;;:::i;:::-;;;;;;;;14075:172::o:0;7589:60::-;;;;:::o;14558:207::-;14659:24;;;;;;;;;;;14643:40;;:12;:10;:12::i;:::-;:40;;;14635:49;;;;;;14702:10;14695:27;;;14723:24;;;;;;;;;;;14749:7;14695:62;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14558:207;;:::o;9642:119::-;9708:7;9735:9;:18;9745:7;9735:18;;;;;;;;;;;;;;;;9728:25;;9642:119;;;:::o;5490:148::-;5411:12;:10;:12::i;:::-;5401:22;;:6;;;;;;;;;;:22;;;5393:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5597:1:::1;5560:40;;5581:6;::::0;::::1;;;;;;;;5560:40;;;;;;;;;;;;5628:1;5611:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5490:148::o:0;14371:178::-;14440:24;;;;;;;;;;;14424:40;;:12;:10;:12::i;:::-;:40;;;14416:49;;;;;;14484:24;;;;;;;;;;;14476:42;;:65;14519:21;14476:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14371:178::o;15848:306::-;5411:12;:10;:12::i;:::-;5401:22;;:6;;;;;;;;;;:22;;;5393:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15964:7:::1;15950:11;:21;;;;;;:::i;:::-;;16003:15;15982:18;:36;;;;;;:::i;:::-;;16075:71;16097:11;16110:18;16130:15;16075:71;;;;;;;;:::i;:::-;;;;;;;;15848:306:::0;;:::o;15598:112::-;15655:7;15682:20;;15675:27;;15598:112;:::o;15168:221::-;15235:4;5411:12;:10;:12::i;:::-;5401:22;;:6;;;;;;;;;;:22;;;5393:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15267:6:::1;15252:12;:21;;;;15300:6;15284:13;:22;;;;15335:1;15325:6;:11;;15317:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;15377:4;15370:11;;15168:221:::0;;;:::o;5273:79::-;5311:7;5338:6;;;;;;;;;;;5331:13;;5273:79;:::o;9350:87::-;9389:13;9422:7;;;;;;;;;;;;;;;;;9415:14;;9350:87;:::o;7376:25::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9770:167::-;9848:4;9865:42;9875:12;:10;:12::i;:::-;9889:9;9900:6;9865:9;:42::i;:::-;9925:4;9918:11;;9770:167;;;;:::o;15497:92::-;15542:7;15569:12;;15562:19;;15497:92;:::o;16580:208::-;16651:24;;;;;;;;;;;16637:38;;:12;:10;:12::i;:::-;:38;;;16629:47;;;;;;16687:26;16716:21;16687:50;;16748:32;16761:18;16748:12;:32::i;:::-;16618:170;16580:208::o;15719:120::-;15780:7;15807:24;;;;;;;;;;;15800:31;;15719:120;:::o;7656:61::-;;;;:::o;9946:143::-;10027:7;10054:11;:18;10066:5;10054:18;;;;;;;;;;;;;;;:27;10073:7;10054:27;;;;;;;;;;;;;;;;10047:34;;9946:143;;;;:::o;3011:98::-;3064:7;3091:10;3084:17;;3011:98;:::o;10590:335::-;10700:1;10683:19;;:5;:19;;;10675:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10781:1;10762:21;;:7;:21;;;10754:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10863:6;10833:11;:18;10845:5;10833:18;;;;;;;;;;;;;;;:27;10852:7;10833:27;;;;;;;;;;;;;;;:36;;;;10901:7;10885:32;;10894:5;10885:32;;;10910:6;10885:32;;;;;;:::i;:::-;;;;;;;;10590:335;;;:::o;10934:2533::-;11038:1;11022:18;;:4;:18;;;11014:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11115:1;11101:16;;:2;:16;;;11093:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11185:1;11176:6;:10;11168:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11243:17;11285:7;:5;:7::i;:::-;11277:15;;:4;:15;;;;:32;;;;;11302:7;:5;:7::i;:::-;11296:13;;:2;:13;;;;11277:32;11273:1837;;;11353:1;11332:19;;:22;11329:162;;11386:89;11471:3;11386:80;11418:21;;11398:19;;:41;11397:68;;11454:11;;11397:68;;;11441:12;;11397:68;11386:6;:10;;:80;;;;:::i;:::-;:84;;:89;;;;:::i;:::-;11374:101;;11329:162;11528:1;11508:19;;:21;11505:119;;;11561:47;11604:3;11561:38;11572:26;;11561:6;:10;;:38;;;;:::i;:::-;:42;;:47;;;;:::i;:::-;11549:59;;11505:119;11653:13;;;;;;;;;;;11645:21;;:4;:21;;;:55;;;;;11684:15;;;;;;;;;;;11670:30;;:2;:30;;;;11645:55;:84;;;;;11706:19;:23;11726:2;11706:23;;;;;;;;;;;;;;;;;;;;;;;;;11704:25;11645:84;11641:450;;;11769:12;;11759:6;:22;;11751:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;11864:20;;11854:6;11838:13;11848:2;11838:9;:13::i;:::-;:22;;;;:::i;:::-;:46;;11830:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11946:89;12031:3;11946:80;11978:21;;11958:19;;:41;11957:68;;12014:11;;11957:68;;;12001:12;;11957:68;11946:6;:10;;:80;;;;:::i;:::-;:84;;:89;;;;:::i;:::-;11934:101;;12054:19;;:21;;;;;;;;;:::i;:::-;;;;;;11641:450;12117:13;;;;;;;;;;;12111:19;;:2;:19;;;:43;;;;;12149:4;12134:20;;:4;:20;;;;12111:43;12108:187;;;12187:92;12275:3;12187:83;12219:22;;12199:19;;:42;12198:71;;12257:12;;12198:71;;;12243:13;;12198:71;12187:6;:10;;:83;;;;:::i;:::-;:87;;:92;;;;:::i;:::-;12175:104;;12108:187;12312:28;12343:24;12361:4;12343:9;:24::i;:::-;12312:55;;12387:19;;;;;;;;;;12386:20;:43;;;;;12416:13;;;;;;;;;;;12410:19;;:2;:19;;;12386:43;:62;;;;;12433:15;;;;;;;;;;;12386:62;:106;;;;;12475:17;;12452:20;:40;12386:106;:151;;;;;12518:19;;12496;;:41;12386:151;12382:717;;;12577:14;;12562:12;:29;12558:91;;;12628:1;12616:9;:13;;;;12558:91;12687:1;12675:9;;:13;12667:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;12735:77;12752:59;12756:6;12764:46;12768:20;12790:19;;12764:3;:46::i;:::-;12752:3;:59::i;:::-;12735:16;:77::i;:::-;12831:26;12860:21;12831:50;;12925:1;12904:18;:22;12900:106;;;12951:35;12964:21;12951:12;:35::i;:::-;12900:106;13024:9;;:11;;;;;;;;;:::i;:::-;;;;;;13071:12;13054:14;:29;;;;12539:560;12382:717;11311:1799;11273:1837;13136:1;13126:9;:11;13123:161;;;13176:39;13205:9;13176;:24;13194:4;13176:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;13151:9;:24;13169:4;13151:24;;;;;;;;;;;;;;;:64;;;;13256:4;13233:39;;13242:4;13233:39;;;13262:9;13233:39;;;;;;:::i;:::-;;;;;;;;13123:161;13310:27;13330:6;13310:9;:15;13320:4;13310:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;13294:9;:15;13304:4;13294:15;;;;;;;;;;;;;;;:43;;;;13362:40;13380:21;13391:9;13380:6;:10;;:21;;;;:::i;:::-;13362:9;:13;13372:2;13362:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;13348:9;:13;13358:2;13348:13;;;;;;;;;;;;;;;:54;;;;13433:2;13418:41;;13427:4;13418:41;;;13437:21;13448:9;13437:6;:10;;:21;;;;:::i;:::-;13418:41;;;;;;:::i;:::-;;;;;;;;11003:2464;10934:2533;;;:::o;4158:190::-;4244:7;4277:1;4272;:6;;4280:12;4264:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4304:9;4320:1;4316;:5;;;;:::i;:::-;4304:17;;4339:1;4332:8;;;4158:190;;;;;:::o;13583:483::-;8429:4;8407:19;;:26;;;;;;;;;;;;;;;;;;13661:21:::1;13699:1;13685:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13661:40;;13730:4;13712;13717:1;13712:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13756:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13746:4;13751:1;13746:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;13789:62;13806:4;13821:15;;;;;;;;;;;13839:11;13789:8;:62::i;:::-;13862:15;;;;;;;;;;;:66;;;13943:11;13969:1;13985:4;14012;14032:15;13862:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13650:416;8478:5:::0;8456:19;;:27;;;;;;;;;;;;;;;;;;13583:483;:::o;14256:106::-;14313:24;;;;;;;;;;;:33;;:41;14347:6;14313:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14256:106;:::o;4357:246::-;4415:7;4444:1;4439;:6;4435:47;;4469:1;4462:8;;;;4435:47;4492:9;4508:1;4504;:5;;;;:::i;:::-;4492:17;;4537:1;4532;4528;:5;;;;:::i;:::-;:10;4520:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4594:1;4587:8;;;4357:246;;;;;:::o;4612:132::-;4670:7;4697:39;4701:1;4704;4697:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;4690:46;;4612:132;;;;:::o;13476:98::-;13533:7;13560:1;13558;:3;13557:9;;13565:1;13557:9;;;13563:1;13557:9;13550:16;;13476:98;;;;:::o;3825:179::-;3883:7;3903:9;3919:1;3915;:5;;;;:::i;:::-;3903:17;;3944:1;3939;:6;;3931:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3995:1;3988:8;;;3825:179;;;;:::o;4013:136::-;4071:7;4098:43;4102:1;4105;4098:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4091:50;;4013:136;;;;:::o;4753:189::-;4839:7;4871:1;4867;:5;4874:12;4859:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4898:9;4914:1;4910;:5;;;;:::i;:::-;4898:17;;4933:1;4926:8;;;4753:189;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:139::-;811:6;806:3;801;795:23;852:1;843:6;838:3;834:16;827:27;722:139;;;:::o;867:102::-;908:6;959:2;955:7;950:2;943:5;939:14;935:28;925:38;;867:102;;;:::o;975:377::-;1063:3;1091:39;1124:5;1091:39;:::i;:::-;1146:71;1210:6;1205:3;1146:71;:::i;:::-;1139:78;;1226:65;1284:6;1279:3;1272:4;1265:5;1261:16;1226:65;:::i;:::-;1316:29;1338:6;1316:29;:::i;:::-;1311:3;1307:39;1300:46;;1067:285;975:377;;;;:::o;1358:313::-;1471:4;1509:2;1498:9;1494:18;1486:26;;1558:9;1552:4;1548:20;1544:1;1533:9;1529:17;1522:47;1586:78;1659:4;1650:6;1586:78;:::i;:::-;1578:86;;1358:313;;;;:::o;1677:75::-;1710:6;1743:2;1737:9;1727:19;;1677:75;:::o;1758:117::-;1867:1;1864;1857:12;1881:117;1990:1;1987;1980:12;2004:126;2041:7;2081:42;2074:5;2070:54;2059:65;;2004:126;;;:::o;2136:96::-;2173:7;2202:24;2220:5;2202:24;:::i;:::-;2191:35;;2136:96;;;:::o;2238:122::-;2311:24;2329:5;2311:24;:::i;:::-;2304:5;2301:35;2291:63;;2350:1;2347;2340:12;2291:63;2238:122;:::o;2366:139::-;2412:5;2450:6;2437:20;2428:29;;2466:33;2493:5;2466:33;:::i;:::-;2366:139;;;;:::o;2511:122::-;2584:24;2602:5;2584:24;:::i;:::-;2577:5;2574:35;2564:63;;2623:1;2620;2613:12;2564:63;2511:122;:::o;2639:139::-;2685:5;2723:6;2710:20;2701:29;;2739:33;2766:5;2739:33;:::i;:::-;2639:139;;;;:::o;2784:474::-;2852:6;2860;2909:2;2897:9;2888:7;2884:23;2880:32;2877:119;;;2915:79;;:::i;:::-;2877:119;3035:1;3060:53;3105:7;3096:6;3085:9;3081:22;3060:53;:::i;:::-;3050:63;;3006:117;3162:2;3188:53;3233:7;3224:6;3213:9;3209:22;3188:53;:::i;:::-;3178:63;;3133:118;2784:474;;;;;:::o;3264:90::-;3298:7;3341:5;3334:13;3327:21;3316:32;;3264:90;;;:::o;3360:109::-;3441:21;3456:5;3441:21;:::i;:::-;3436:3;3429:34;3360:109;;:::o;3475:210::-;3562:4;3600:2;3589:9;3585:18;3577:26;;3613:65;3675:1;3664:9;3660:17;3651:6;3613:65;:::i;:::-;3475:210;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:117::-;5190:1;5187;5180:12;5204:117;5313:1;5310;5303:12;5327:180;5375:77;5372:1;5365:88;5472:4;5469:1;5462:15;5496:4;5493:1;5486:15;5513:281;5596:27;5618:4;5596:27;:::i;:::-;5588:6;5584:40;5726:6;5714:10;5711:22;5690:18;5678:10;5675:34;5672:62;5669:88;;;5737:18;;:::i;:::-;5669:88;5777:10;5773:2;5766:22;5556:238;5513:281;;:::o;5800:129::-;5834:6;5861:20;;:::i;:::-;5851:30;;5890:33;5918:4;5910:6;5890:33;:::i;:::-;5800:129;;;:::o;5935:308::-;5997:4;6087:18;6079:6;6076:30;6073:56;;;6109:18;;:::i;:::-;6073:56;6147:29;6169:6;6147:29;:::i;:::-;6139:37;;6231:4;6225;6221:15;6213:23;;5935:308;;;:::o;6249:148::-;6347:6;6342:3;6337;6324:30;6388:1;6379:6;6374:3;6370:16;6363:27;6249:148;;;:::o;6403:425::-;6481:5;6506:66;6522:49;6564:6;6522:49;:::i;:::-;6506:66;:::i;:::-;6497:75;;6595:6;6588:5;6581:21;6633:4;6626:5;6622:16;6671:3;6662:6;6657:3;6653:16;6650:25;6647:112;;;6678:79;;:::i;:::-;6647:112;6768:54;6815:6;6810:3;6805;6768:54;:::i;:::-;6487:341;6403:425;;;;;:::o;6848:340::-;6904:5;6953:3;6946:4;6938:6;6934:17;6930:27;6920:122;;6961:79;;:::i;:::-;6920:122;7078:6;7065:20;7103:79;7178:3;7170:6;7163:4;7155:6;7151:17;7103:79;:::i;:::-;7094:88;;6910:278;6848:340;;;;:::o;7194:834::-;7282:6;7290;7339:2;7327:9;7318:7;7314:23;7310:32;7307:119;;;7345:79;;:::i;:::-;7307:119;7493:1;7482:9;7478:17;7465:31;7523:18;7515:6;7512:30;7509:117;;;7545:79;;:::i;:::-;7509:117;7650:63;7705:7;7696:6;7685:9;7681:22;7650:63;:::i;:::-;7640:73;;7436:287;7790:2;7779:9;7775:18;7762:32;7821:18;7813:6;7810:30;7807:117;;;7843:79;;:::i;:::-;7807:117;7948:63;8003:7;7994:6;7983:9;7979:22;7948:63;:::i;:::-;7938:73;;7733:288;7194:834;;;;;:::o;8034:329::-;8093:6;8142:2;8130:9;8121:7;8117:23;8113:32;8110:119;;;8148:79;;:::i;:::-;8110:119;8268:1;8293:53;8338:7;8329:6;8318:9;8314:22;8293:53;:::i;:::-;8283:63;;8239:117;8034:329;;;;:::o;8369:118::-;8456:24;8474:5;8456:24;:::i;:::-;8451:3;8444:37;8369:118;;:::o;8493:222::-;8586:4;8624:2;8613:9;8609:18;8601:26;;8637:71;8705:1;8694:9;8690:17;8681:6;8637:71;:::i;:::-;8493:222;;;;:::o;8721:474::-;8789:6;8797;8846:2;8834:9;8825:7;8821:23;8817:32;8814:119;;;8852:79;;:::i;:::-;8814:119;8972:1;8997:53;9042:7;9033:6;9022:9;9018:22;8997:53;:::i;:::-;8987:63;;8943:117;9099:2;9125:53;9170:7;9161:6;9150:9;9146:22;9125:53;:::i;:::-;9115:63;;9070:118;8721:474;;;;;:::o;9201:180::-;9249:77;9246:1;9239:88;9346:4;9343:1;9336:15;9370:4;9367:1;9360:15;9387:102;9429:8;9476:5;9473:1;9469:13;9448:34;;9387:102;;;:::o;9495:848::-;9556:5;9563:4;9587:6;9578:15;;9611:5;9602:14;;9625:712;9646:1;9636:8;9633:15;9625:712;;;9741:4;9736:3;9732:14;9726:4;9723:24;9720:50;;;9750:18;;:::i;:::-;9720:50;9800:1;9790:8;9786:16;9783:451;;;10215:4;10208:5;10204:16;10195:25;;9783:451;10265:4;10259;10255:15;10247:23;;10295:32;10318:8;10295:32;:::i;:::-;10283:44;;9625:712;;;9495:848;;;;;;;:::o;10349:1073::-;10403:5;10594:8;10584:40;;10615:1;10606:10;;10617:5;;10584:40;10643:4;10633:36;;10660:1;10651:10;;10662:5;;10633:36;10729:4;10777:1;10772:27;;;;10813:1;10808:191;;;;10722:277;;10772:27;10790:1;10781:10;;10792:5;;;10808:191;10853:3;10843:8;10840:17;10837:43;;;10860:18;;:::i;:::-;10837:43;10909:8;10906:1;10902:16;10893:25;;10944:3;10937:5;10934:14;10931:40;;;10951:18;;:::i;:::-;10931:40;10984:5;;;10722:277;;11108:2;11098:8;11095:16;11089:3;11083:4;11080:13;11076:36;11058:2;11048:8;11045:16;11040:2;11034:4;11031:12;11027:35;11011:111;11008:246;;;11164:8;11158:4;11154:19;11145:28;;11199:3;11192:5;11189:14;11186:40;;;11206:18;;:::i;:::-;11186:40;11239:5;;11008:246;11279:42;11317:3;11307:8;11301:4;11298:1;11279:42;:::i;:::-;11264:57;;;;11353:4;11348:3;11344:14;11337:5;11334:25;11331:51;;;11362:18;;:::i;:::-;11331:51;11411:4;11404:5;11400:16;11391:25;;10349:1073;;;;;;:::o;11428:281::-;11486:5;11510:23;11528:4;11510:23;:::i;:::-;11502:31;;11554:25;11570:8;11554:25;:::i;:::-;11542:37;;11598:104;11635:66;11625:8;11619:4;11598:104;:::i;:::-;11589:113;;11428:281;;;;:::o;11715:410::-;11755:7;11778:20;11796:1;11778:20;:::i;:::-;11773:25;;11812:20;11830:1;11812:20;:::i;:::-;11807:25;;11867:1;11864;11860:9;11889:30;11907:11;11889:30;:::i;:::-;11878:41;;12068:1;12059:7;12055:15;12052:1;12049:22;12029:1;12022:9;12002:83;11979:139;;12098:18;;:::i;:::-;11979:139;11763:362;11715:410;;;;:::o;12131:180::-;12179:77;12176:1;12169:88;12276:4;12273:1;12266:15;12300:4;12297:1;12290:15;12317:320;12361:6;12398:1;12392:4;12388:12;12378:22;;12445:1;12439:4;12435:12;12466:18;12456:81;;12522:4;12514:6;12510:17;12500:27;;12456:81;12584:2;12576:6;12573:14;12553:18;12550:38;12547:84;;12603:18;;:::i;:::-;12547:84;12368:269;12317:320;;;:::o;12643:182::-;12783:34;12779:1;12771:6;12767:14;12760:58;12643:182;:::o;12831:366::-;12973:3;12994:67;13058:2;13053:3;12994:67;:::i;:::-;12987:74;;13070:93;13159:3;13070:93;:::i;:::-;13188:2;13183:3;13179:12;13172:19;;12831:366;;;:::o;13203:419::-;13369:4;13407:2;13396:9;13392:18;13384:26;;13456:9;13450:4;13446:20;13442:1;13431:9;13427:17;13420:47;13484:131;13610:4;13484:131;:::i;:::-;13476:139;;13203:419;;;:::o;13628:173::-;13768:25;13764:1;13756:6;13752:14;13745:49;13628:173;:::o;13807:366::-;13949:3;13970:67;14034:2;14029:3;13970:67;:::i;:::-;13963:74;;14046:93;14135:3;14046:93;:::i;:::-;14164:2;14159:3;14155:12;14148:19;;13807:366;;;:::o;14179:419::-;14345:4;14383:2;14372:9;14368:18;14360:26;;14432:9;14426:4;14422:20;14418:1;14407:9;14403:17;14396:47;14460:131;14586:4;14460:131;:::i;:::-;14452:139;;14179:419;;;:::o;14604:85::-;14649:7;14678:5;14667:16;;14604:85;;;:::o;14695:60::-;14723:3;14744:5;14737:12;;14695:60;;;:::o;14761:158::-;14819:9;14852:61;14870:42;14879:32;14905:5;14879:32;:::i;:::-;14870:42;:::i;:::-;14852:61;:::i;:::-;14839:74;;14761:158;;;:::o;14925:147::-;15020:45;15059:5;15020:45;:::i;:::-;15015:3;15008:58;14925:147;;:::o;15078:807::-;15327:4;15365:3;15354:9;15350:19;15342:27;;15379:71;15447:1;15436:9;15432:17;15423:6;15379:71;:::i;:::-;15460:72;15528:2;15517:9;15513:18;15504:6;15460:72;:::i;:::-;15542:80;15618:2;15607:9;15603:18;15594:6;15542:80;:::i;:::-;15632;15708:2;15697:9;15693:18;15684:6;15632:80;:::i;:::-;15722:73;15790:3;15779:9;15775:19;15766:6;15722:73;:::i;:::-;15805;15873:3;15862:9;15858:19;15849:6;15805:73;:::i;:::-;15078:807;;;;;;;;;:::o;15891:143::-;15948:5;15979:6;15973:13;15964:22;;15995:33;16022:5;15995:33;:::i;:::-;15891:143;;;;:::o;16040:663::-;16128:6;16136;16144;16193:2;16181:9;16172:7;16168:23;16164:32;16161:119;;;16199:79;;:::i;:::-;16161:119;16319:1;16344:64;16400:7;16391:6;16380:9;16376:22;16344:64;:::i;:::-;16334:74;;16290:128;16457:2;16483:64;16539:7;16530:6;16519:9;16515:22;16483:64;:::i;:::-;16473:74;;16428:129;16596:2;16622:64;16678:7;16669:6;16658:9;16654:22;16622:64;:::i;:::-;16612:74;;16567:129;16040:663;;;;;:::o;16709:142::-;16759:9;16792:53;16810:34;16819:24;16837:5;16819:24;:::i;:::-;16810:34;:::i;:::-;16792:53;:::i;:::-;16779:66;;16709:142;;;:::o;16857:126::-;16907:9;16940:37;16971:5;16940:37;:::i;:::-;16927:50;;16857:126;;;:::o;16989:134::-;17047:9;17080:37;17111:5;17080:37;:::i;:::-;17067:50;;16989:134;;;:::o;17129:147::-;17224:45;17263:5;17224:45;:::i;:::-;17219:3;17212:58;17129:147;;:::o;17282:348::-;17411:4;17449:2;17438:9;17434:18;17426:26;;17462:79;17538:1;17527:9;17523:17;17514:6;17462:79;:::i;:::-;17551:72;17619:2;17608:9;17604:18;17595:6;17551:72;:::i;:::-;17282:348;;;;;:::o;17636:116::-;17706:21;17721:5;17706:21;:::i;:::-;17699:5;17696:32;17686:60;;17742:1;17739;17732:12;17686:60;17636:116;:::o;17758:137::-;17812:5;17843:6;17837:13;17828:22;;17859:30;17883:5;17859:30;:::i;:::-;17758:137;;;;:::o;17901:345::-;17968:6;18017:2;18005:9;17996:7;17992:23;17988:32;17985:119;;;18023:79;;:::i;:::-;17985:119;18143:1;18168:61;18221:7;18212:6;18201:9;18197:22;18168:61;:::i;:::-;18158:71;;18114:125;17901:345;;;;:::o;18252:141::-;18301:4;18324:3;18316:11;;18347:3;18344:1;18337:14;18381:4;18378:1;18368:18;18360:26;;18252:141;;;:::o;18399:93::-;18436:6;18483:2;18478;18471:5;18467:14;18463:23;18453:33;;18399:93;;;:::o;18498:107::-;18542:8;18592:5;18586:4;18582:16;18561:37;;18498:107;;;;:::o;18611:393::-;18680:6;18730:1;18718:10;18714:18;18753:97;18783:66;18772:9;18753:97;:::i;:::-;18871:39;18901:8;18890:9;18871:39;:::i;:::-;18859:51;;18943:4;18939:9;18932:5;18928:21;18919:30;;18992:4;18982:8;18978:19;18971:5;18968:30;18958:40;;18687:317;;18611:393;;;;;:::o;19010:142::-;19060:9;19093:53;19111:34;19120:24;19138:5;19120:24;:::i;:::-;19111:34;:::i;:::-;19093:53;:::i;:::-;19080:66;;19010:142;;;:::o;19158:75::-;19201:3;19222:5;19215:12;;19158:75;;;:::o;19239:269::-;19349:39;19380:7;19349:39;:::i;:::-;19410:91;19459:41;19483:16;19459:41;:::i;:::-;19451:6;19444:4;19438:11;19410:91;:::i;:::-;19404:4;19397:105;19315:193;19239:269;;;:::o;19514:73::-;19559:3;19514:73;:::o;19593:189::-;19670:32;;:::i;:::-;19711:65;19769:6;19761;19755:4;19711:65;:::i;:::-;19646:136;19593:189;;:::o;19788:186::-;19848:120;19865:3;19858:5;19855:14;19848:120;;;19919:39;19956:1;19949:5;19919:39;:::i;:::-;19892:1;19885:5;19881:13;19872:22;;19848:120;;;19788:186;;:::o;19980:543::-;20081:2;20076:3;20073:11;20070:446;;;20115:38;20147:5;20115:38;:::i;:::-;20199:29;20217:10;20199:29;:::i;:::-;20189:8;20185:44;20382:2;20370:10;20367:18;20364:49;;;20403:8;20388:23;;20364:49;20426:80;20482:22;20500:3;20482:22;:::i;:::-;20472:8;20468:37;20455:11;20426:80;:::i;:::-;20085:431;;20070:446;19980:543;;;:::o;20529:117::-;20583:8;20633:5;20627:4;20623:16;20602:37;;20529:117;;;;:::o;20652:169::-;20696:6;20729:51;20777:1;20773:6;20765:5;20762:1;20758:13;20729:51;:::i;:::-;20725:56;20810:4;20804;20800:15;20790:25;;20703:118;20652:169;;;;:::o;20826:295::-;20902:4;21048:29;21073:3;21067:4;21048:29;:::i;:::-;21040:37;;21110:3;21107:1;21103:11;21097:4;21094:21;21086:29;;20826:295;;;;:::o;21126:1395::-;21243:37;21276:3;21243:37;:::i;:::-;21345:18;21337:6;21334:30;21331:56;;;21367:18;;:::i;:::-;21331:56;21411:38;21443:4;21437:11;21411:38;:::i;:::-;21496:67;21556:6;21548;21542:4;21496:67;:::i;:::-;21590:1;21614:4;21601:17;;21646:2;21638:6;21635:14;21663:1;21658:618;;;;22320:1;22337:6;22334:77;;;22386:9;22381:3;22377:19;22371:26;22362:35;;22334:77;22437:67;22497:6;22490:5;22437:67;:::i;:::-;22431:4;22424:81;22293:222;21628:887;;21658:618;21710:4;21706:9;21698:6;21694:22;21744:37;21776:4;21744:37;:::i;:::-;21803:1;21817:208;21831:7;21828:1;21825:14;21817:208;;;21910:9;21905:3;21901:19;21895:26;21887:6;21880:42;21961:1;21953:6;21949:14;21939:24;;22008:2;21997:9;21993:18;21980:31;;21854:4;21851:1;21847:12;21842:17;;21817:208;;;22053:6;22044:7;22041:19;22038:179;;;22111:9;22106:3;22102:19;22096:26;22154:48;22196:4;22188:6;22184:17;22173:9;22154:48;:::i;:::-;22146:6;22139:64;22061:156;22038:179;22263:1;22259;22251:6;22247:14;22243:22;22237:4;22230:36;21665:611;;;21628:887;;21218:1303;;;21126:1395;;:::o;22551:831::-;22636:3;22673:5;22667:12;22702:36;22728:9;22702:36;:::i;:::-;22754:71;22818:6;22813:3;22754:71;:::i;:::-;22747:78;;22856:1;22845:9;22841:17;22872:1;22867:164;;;;23045:1;23040:336;;;;22834:542;;22867:164;22951:4;22947:9;22936;22932:25;22927:3;22920:38;23011:6;23004:14;22997:22;22991:4;22987:33;22982:3;22978:43;22971:50;;22867:164;;23040:336;23107:38;23139:5;23107:38;:::i;:::-;23167:1;23181:154;23195:6;23192:1;23189:13;23181:154;;;23269:7;23263:14;23259:1;23254:3;23250:11;23243:35;23319:1;23310:7;23306:15;23295:26;;23217:4;23214:1;23210:12;23205:17;;23181:154;;;23364:1;23359:3;23355:11;23348:18;;23047:329;;22834:542;;22640:742;;22551:831;;;;:::o;23388:612::-;23571:4;23609:2;23598:9;23594:18;23586:26;;23658:9;23652:4;23648:20;23644:1;23633:9;23629:17;23622:47;23686:75;23756:4;23747:6;23686:75;:::i;:::-;23678:83;;23808:9;23802:4;23798:20;23793:2;23782:9;23778:18;23771:48;23836:75;23906:4;23897:6;23836:75;:::i;:::-;23828:83;;23921:72;23989:2;23978:9;23974:18;23965:6;23921:72;:::i;:::-;23388:612;;;;;;:::o;24006:169::-;24146:21;24142:1;24134:6;24130:14;24123:45;24006:169;:::o;24181:366::-;24323:3;24344:67;24408:2;24403:3;24344:67;:::i;:::-;24337:74;;24420:93;24509:3;24420:93;:::i;:::-;24538:2;24533:3;24529:12;24522:19;;24181:366;;;:::o;24553:419::-;24719:4;24757:2;24746:9;24742:18;24734:26;;24806:9;24800:4;24796:20;24792:1;24781:9;24777:17;24770:47;24834:131;24960:4;24834:131;:::i;:::-;24826:139;;24553:419;;;:::o;24978:223::-;25118:34;25114:1;25106:6;25102:14;25095:58;25187:6;25182:2;25174:6;25170:15;25163:31;24978:223;:::o;25207:366::-;25349:3;25370:67;25434:2;25429:3;25370:67;:::i;:::-;25363:74;;25446:93;25535:3;25446:93;:::i;:::-;25564:2;25559:3;25555:12;25548:19;;25207:366;;;:::o;25579:419::-;25745:4;25783:2;25772:9;25768:18;25760:26;;25832:9;25826:4;25822:20;25818:1;25807:9;25803:17;25796:47;25860:131;25986:4;25860:131;:::i;:::-;25852:139;;25579:419;;;:::o;26004:221::-;26144:34;26140:1;26132:6;26128:14;26121:58;26213:4;26208:2;26200:6;26196:15;26189:29;26004:221;:::o;26231:366::-;26373:3;26394:67;26458:2;26453:3;26394:67;:::i;:::-;26387:74;;26470:93;26559:3;26470:93;:::i;:::-;26588:2;26583:3;26579:12;26572:19;;26231:366;;;:::o;26603:419::-;26769:4;26807:2;26796:9;26792:18;26784:26;;26856:9;26850:4;26846:20;26842:1;26831:9;26827:17;26820:47;26884:131;27010:4;26884:131;:::i;:::-;26876:139;;26603:419;;;:::o;27028:224::-;27168:34;27164:1;27156:6;27152:14;27145:58;27237:7;27232:2;27224:6;27220:15;27213:32;27028:224;:::o;27258:366::-;27400:3;27421:67;27485:2;27480:3;27421:67;:::i;:::-;27414:74;;27497:93;27586:3;27497:93;:::i;:::-;27615:2;27610:3;27606:12;27599:19;;27258:366;;;:::o;27630:419::-;27796:4;27834:2;27823:9;27819:18;27811:26;;27883:9;27877:4;27873:20;27869:1;27858:9;27854:17;27847:47;27911:131;28037:4;27911:131;:::i;:::-;27903:139;;27630:419;;;:::o;28055:222::-;28195:34;28191:1;28183:6;28179:14;28172:58;28264:5;28259:2;28251:6;28247:15;28240:30;28055:222;:::o;28283:366::-;28425:3;28446:67;28510:2;28505:3;28446:67;:::i;:::-;28439:74;;28522:93;28611:3;28522:93;:::i;:::-;28640:2;28635:3;28631:12;28624:19;;28283:366;;;:::o;28655:419::-;28821:4;28859:2;28848:9;28844:18;28836:26;;28908:9;28902:4;28898:20;28894:1;28883:9;28879:17;28872:47;28936:131;29062:4;28936:131;:::i;:::-;28928:139;;28655:419;;;:::o;29080:228::-;29220:34;29216:1;29208:6;29204:14;29197:58;29289:11;29284:2;29276:6;29272:15;29265:36;29080:228;:::o;29314:366::-;29456:3;29477:67;29541:2;29536:3;29477:67;:::i;:::-;29470:74;;29553:93;29642:3;29553:93;:::i;:::-;29671:2;29666:3;29662:12;29655:19;;29314:366;;;:::o;29686:419::-;29852:4;29890:2;29879:9;29875:18;29867:26;;29939:9;29933:4;29929:20;29925:1;29914:9;29910:17;29903:47;29967:131;30093:4;29967:131;:::i;:::-;29959:139;;29686:419;;;:::o;30111:175::-;30251:27;30247:1;30239:6;30235:14;30228:51;30111:175;:::o;30292:366::-;30434:3;30455:67;30519:2;30514:3;30455:67;:::i;:::-;30448:74;;30531:93;30620:3;30531:93;:::i;:::-;30649:2;30644:3;30640:12;30633:19;;30292:366;;;:::o;30664:419::-;30830:4;30868:2;30857:9;30853:18;30845:26;;30917:9;30911:4;30907:20;30903:1;30892:9;30888:17;30881:47;30945:131;31071:4;30945:131;:::i;:::-;30937:139;;30664:419;;;:::o;31089:191::-;31129:3;31148:20;31166:1;31148:20;:::i;:::-;31143:25;;31182:20;31200:1;31182:20;:::i;:::-;31177:25;;31225:1;31222;31218:9;31211:16;;31246:3;31243:1;31240:10;31237:36;;;31253:18;;:::i;:::-;31237:36;31089:191;;;;:::o;31286:176::-;31426:28;31422:1;31414:6;31410:14;31403:52;31286:176;:::o;31468:366::-;31610:3;31631:67;31695:2;31690:3;31631:67;:::i;:::-;31624:74;;31707:93;31796:3;31707:93;:::i;:::-;31825:2;31820:3;31816:12;31809:19;;31468:366;;;:::o;31840:419::-;32006:4;32044:2;32033:9;32029:18;32021:26;;32093:9;32087:4;32083:20;32079:1;32068:9;32064:17;32057:47;32121:131;32247:4;32121:131;:::i;:::-;32113:139;;31840:419;;;:::o;32265:233::-;32304:3;32327:24;32345:5;32327:24;:::i;:::-;32318:33;;32373:66;32366:5;32363:77;32360:103;;32443:18;;:::i;:::-;32360:103;32490:1;32483:5;32479:13;32472:20;;32265:233;;;:::o;32504:173::-;32644:25;32640:1;32632:6;32628:14;32621:49;32504:173;:::o;32683:366::-;32825:3;32846:67;32910:2;32905:3;32846:67;:::i;:::-;32839:74;;32922:93;33011:3;32922:93;:::i;:::-;33040:2;33035:3;33031:12;33024:19;;32683:366;;;:::o;33055:419::-;33221:4;33259:2;33248:9;33244:18;33236:26;;33308:9;33302:4;33298:20;33294:1;33283:9;33279:17;33272:47;33336:131;33462:4;33336:131;:::i;:::-;33328:139;;33055:419;;;:::o;33480:194::-;33520:4;33540:20;33558:1;33540:20;:::i;:::-;33535:25;;33574:20;33592:1;33574:20;:::i;:::-;33569:25;;33618:1;33615;33611:9;33603:17;;33642:1;33636:4;33633:11;33630:37;;;33647:18;;:::i;:::-;33630:37;33480:194;;;;:::o;33680:180::-;33728:77;33725:1;33718:88;33825:4;33822:1;33815:15;33849:4;33846:1;33839:15;33866:143;33923:5;33954:6;33948:13;33939:22;;33970:33;33997:5;33970:33;:::i;:::-;33866:143;;;;:::o;34015:351::-;34085:6;34134:2;34122:9;34113:7;34109:23;34105:32;34102:119;;;34140:79;;:::i;:::-;34102:119;34260:1;34285:64;34341:7;34332:6;34321:9;34317:22;34285:64;:::i;:::-;34275:74;;34231:128;34015:351;;;;:::o;34372:114::-;34439:6;34473:5;34467:12;34457:22;;34372:114;;;:::o;34492:184::-;34591:11;34625:6;34620:3;34613:19;34665:4;34660:3;34656:14;34641:29;;34492:184;;;;:::o;34682:132::-;34749:4;34772:3;34764:11;;34802:4;34797:3;34793:14;34785:22;;34682:132;;;:::o;34820:108::-;34897:24;34915:5;34897:24;:::i;:::-;34892:3;34885:37;34820:108;;:::o;34934:179::-;35003:10;35024:46;35066:3;35058:6;35024:46;:::i;:::-;35102:4;35097:3;35093:14;35079:28;;34934:179;;;;:::o;35119:113::-;35189:4;35221;35216:3;35212:14;35204:22;;35119:113;;;:::o;35268:732::-;35387:3;35416:54;35464:5;35416:54;:::i;:::-;35486:86;35565:6;35560:3;35486:86;:::i;:::-;35479:93;;35596:56;35646:5;35596:56;:::i;:::-;35675:7;35706:1;35691:284;35716:6;35713:1;35710:13;35691:284;;;35792:6;35786:13;35819:63;35878:3;35863:13;35819:63;:::i;:::-;35812:70;;35905:60;35958:6;35905:60;:::i;:::-;35895:70;;35751:224;35738:1;35735;35731:9;35726:14;;35691:284;;;35695:14;35991:3;35984:10;;35392:608;;;35268:732;;;;:::o;36006:831::-;36269:4;36307:3;36296:9;36292:19;36284:27;;36321:71;36389:1;36378:9;36374:17;36365:6;36321:71;:::i;:::-;36402:80;36478:2;36467:9;36463:18;36454:6;36402:80;:::i;:::-;36529:9;36523:4;36519:20;36514:2;36503:9;36499:18;36492:48;36557:108;36660:4;36651:6;36557:108;:::i;:::-;36549:116;;36675:72;36743:2;36732:9;36728:18;36719:6;36675:72;:::i;:::-;36757:73;36825:3;36814:9;36810:19;36801:6;36757:73;:::i;:::-;36006:831;;;;;;;;:::o;36843:180::-;36891:77;36888:1;36881:88;36988:4;36985:1;36978:15;37012:4;37009:1;37002:15;37029:185;37069:1;37086:20;37104:1;37086:20;:::i;:::-;37081:25;;37120:20;37138:1;37120:20;:::i;:::-;37115:25;;37159:1;37149:35;;37164:18;;:::i;:::-;37149:35;37206:1;37203;37199:9;37194:14;;37029:185;;;;:::o;37220:220::-;37360:34;37356:1;37348:6;37344:14;37337:58;37429:3;37424:2;37416:6;37412:15;37405:28;37220:220;:::o;37446:366::-;37588:3;37609:67;37673:2;37668:3;37609:67;:::i;:::-;37602:74;;37685:93;37774:3;37685:93;:::i;:::-;37803:2;37798:3;37794:12;37787:19;;37446:366;;;:::o;37818:419::-;37984:4;38022:2;38011:9;38007:18;37999:26;;38071:9;38065:4;38061:20;38057:1;38046:9;38042:17;38035:47;38099:131;38225:4;38099:131;:::i;:::-;38091:139;;37818:419;;;:::o;38243:177::-;38383:29;38379:1;38371:6;38367:14;38360:53;38243:177;:::o;38426:366::-;38568:3;38589:67;38653:2;38648:3;38589:67;:::i;:::-;38582:74;;38665:93;38754:3;38665:93;:::i;:::-;38783:2;38778:3;38774:12;38767:19;;38426:366;;;:::o;38798:419::-;38964:4;39002:2;38991:9;38987:18;38979:26;;39051:9;39045:4;39041:20;39037:1;39026:9;39022:17;39015:47;39079:131;39205:4;39079:131;:::i;:::-;39071:139;;38798:419;;;:::o
Swarm Source
ipfs://bdb6a60a031527091b745e1761ad24bba92c5b9297bdc3e085b9721e197ba069
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.