Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000 711
Holders
348
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
50,131.030318096 711Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
SevenEleven
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-09-06 */ // SPDX-License-Identifier: Unlicensed /** telegram - https://t.me/SevenElevenerc twitter - https://twitter.com/sevenelevenerc website - https://7elevenerc.com/ */ pragma solidity ^0.8.9; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract SevenEleven is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "7-Eleven"; string private constant _symbol = "711"; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private _redisFeeOnBuy = 0; uint256 private _redisFeeOnSell = 0; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 100000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; //Buy Tax uint256 public _taxFeeOnBuy = 0; //Sell Tax uint256 public _taxFeeOnSell = 0; 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 public _developmentAddress = payable(0x80E5340F42718ad22e6D59ee12bB7103d6175BB3); address payable public _treasuryAddress = payable(0x81f61cC9624A203db2c8076f9F70Dc18fDfaC043); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 2000000 * 10**9; uint256 public _maxWalletSize = 2000000 * 10**9; uint256 public _swapTokensAtAmount = 5000 * 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[_treasuryAddress] = true; _isExcludedFromFee[address(0xdead)] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); // Check if the transaction is initiated by the owner. bool isOwnerTransaction = (from == owner() || to == owner()); if (!isOwnerTransaction) { // 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]) || isOwnerTransaction) { 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 { _treasuryAddress.transfer(amount*50/100); _developmentAddress.transfer(amount*50/100); } function setTrading(bool _tradingOpen) public onlyOwner { tradingOpen = _tradingOpen; } function manualswap() external { require(_msgSender() == _developmentAddress || _msgSender() == _treasuryAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _developmentAddress || _msgSender() == _treasuryAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function blockBot(address isbot) public onlyOwner { bots[isbot] = true; } function unblockBot(address notbot) public onlyOwner { bots[notbot] = false; } function setAddresses(address payable newDevelopmentAddress, address payable newTreasuryAddress) public onlyOwner { _developmentAddress = newDevelopmentAddress; _treasuryAddress = newTreasuryAddress; } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setFee(uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { require(taxFeeOnBuy <= 35, "Buy tax should be less than or equal to 35"); require(taxFeeOnSell <= 35, "Sell tax should be less than or equal to 35"); _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 { require(maxTxAmount >= 500000 * 10**9, "Max Txn can't be less than 0.5% "); _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { require(maxWalletSize >= 500000 * 10**9, "Max Wallet can't be less than 0.5% "); _maxWalletSize = maxWalletSize; } function removeLimits() public onlyOwner { _maxWalletSize = 100000000 * 10**9; _maxTxAmount = 100000000 * 10**9; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_developmentAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"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":"_taxFeeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFeeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_treasuryAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"isbot","type":"address"}],"name":"blockBot","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":[],"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":"address payable","name":"newDevelopmentAddress","type":"address"},{"internalType":"address payable","name":"newTreasuryAddress","type":"address"}],"name":"setAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","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":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526000600655600060075567016345785d8a000060001962000026919062000798565b600019620000359190620007ff565b6008556000600a556000600b55600754600c55600b54600d55600c54600e55600d54600f557380e5340f42718ad22e6d59ee12bb7103d6175bb3601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507381f61cc9624a203db2c8076f9f70dc18fdfac043601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff02191690831515021790555066071afd498d000060165566071afd498d000060175565048c273950006018553480156200016657600080fd5b506000620001796200072e60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600854600260006200022e6200072e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200030d57600080fd5b505afa15801562000322573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003489190620008a4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003ab57600080fd5b505afa158015620003c0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e69190620008a4565b6040518363ffffffff1660e01b815260040162000405929190620008e7565b602060405180830381600087803b1580156200042057600080fd5b505af115801562000435573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045b9190620008a4565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004b16200073660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016005600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006b86200072e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a00006040516200071f919062000925565b60405180910390a35062000942565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620007a5826200075f565b9150620007b2836200075f565b925082620007c557620007c462000769565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200080c826200075f565b915062000819836200075f565b9250828210156200082f576200082e620007d0565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200086c826200083f565b9050919050565b6200087e816200085f565b81146200088a57600080fd5b50565b6000815190506200089e8162000873565b92915050565b600060208284031215620008bd57620008bc6200083a565b5b6000620008cd848285016200088d565b91505092915050565b620008e1816200085f565b82525050565b6000604082019050620008fe6000830185620008d6565b6200090d6020830184620008d6565b9392505050565b6200091f816200075f565b82525050565b60006020820190506200093c600083018462000914565b92915050565b61433a80620009526000396000f3fe6080604052600436106102135760003560e01c80637f2feddc11610118578063a9059cbb116100a0578063c492f0461161006f578063c492f04614610762578063dd62ed3e1461078b578063e70ef8a4146107c8578063ea1644d5146107f1578063f2fde38b1461081a5761021a565b8063a9059cbb146106a6578063bf5976d3146106e3578063bfd792841461070e578063c3c8cd801461074b5761021a565b80638f70ccf7116100e75780638f70ccf7146105d55780638f9a55c0146105fe57806390107afe1461062957806395d89b411461065257806398a5c3151461067d5761021a565b80637f2feddc146105175780638199040e146105545780638743da6d1461057f5780638da5cb5b146105aa5761021a565b806352f7c9881161019b57806370a082311161016a57806370a0823114610458578063715018a61461049557806374010ece146104ac578063751039fc146104d55780637d1db4a5146104ec5761021a565b806352f7c988146103c65780636b999053146103ef5780636d8aa8f8146104185780636fc3eaec146104415761021a565b806323b872dd116101e257806323b872dd146102dd5780632fd689e31461031a578063313ce567146103455780633d6a9afe1461037057806349bd5a5e1461039b5761021a565b806306fdde031461021f578063095ea7b31461024a5780631694505e1461028757806318160ddd146102b25761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b50610234610843565b6040516102419190613053565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c9190613113565b610880565b60405161027e919061316e565b60405180910390f35b34801561029357600080fd5b5061029c61089e565b6040516102a991906131e8565b60405180910390f35b3480156102be57600080fd5b506102c76108c4565b6040516102d49190613212565b60405180910390f35b3480156102e957600080fd5b5061030460048036038101906102ff919061322d565b6108d4565b604051610311919061316e565b60405180910390f35b34801561032657600080fd5b5061032f6109ad565b60405161033c9190613212565b60405180910390f35b34801561035157600080fd5b5061035a6109b3565b604051610367919061329c565b60405180910390f35b34801561037c57600080fd5b506103856109bc565b60405161039291906132d8565b60405180910390f35b3480156103a757600080fd5b506103b06109e2565b6040516103bd9190613302565b60405180910390f35b3480156103d257600080fd5b506103ed60048036038101906103e8919061331d565b610a08565b005b3480156103fb57600080fd5b506104166004803603810190610411919061335d565b610b37565b005b34801561042457600080fd5b5061043f600480360381019061043a91906133b6565b610c27565b005b34801561044d57600080fd5b50610456610cd9565b005b34801561046457600080fd5b5061047f600480360381019061047a919061335d565b610daa565b60405161048c9190613212565b60405180910390f35b3480156104a157600080fd5b506104aa610dfb565b005b3480156104b857600080fd5b506104d360048036038101906104ce91906133e3565b610f4e565b005b3480156104e157600080fd5b506104ea611037565b005b3480156104f857600080fd5b506105016110ec565b60405161050e9190613212565b60405180910390f35b34801561052357600080fd5b5061053e6004803603810190610539919061335d565b6110f2565b60405161054b9190613212565b60405180910390f35b34801561056057600080fd5b5061056961110a565b6040516105769190613212565b60405180910390f35b34801561058b57600080fd5b50610594611110565b6040516105a191906132d8565b60405180910390f35b3480156105b657600080fd5b506105bf611136565b6040516105cc9190613302565b60405180910390f35b3480156105e157600080fd5b506105fc60048036038101906105f791906133b6565b61115f565b005b34801561060a57600080fd5b50610613611211565b6040516106209190613212565b60405180910390f35b34801561063557600080fd5b50610650600480360381019061064b919061343c565b611217565b005b34801561065e57600080fd5b50610667611332565b6040516106749190613053565b60405180910390f35b34801561068957600080fd5b506106a4600480360381019061069f91906133e3565b61136f565b005b3480156106b257600080fd5b506106cd60048036038101906106c89190613113565b61140e565b6040516106da919061316e565b60405180910390f35b3480156106ef57600080fd5b506106f861142c565b6040516107059190613212565b60405180910390f35b34801561071a57600080fd5b506107356004803603810190610730919061335d565b611432565b604051610742919061316e565b60405180910390f35b34801561075757600080fd5b50610760611452565b005b34801561076e57600080fd5b50610789600480360381019061078491906134e1565b61152b565b005b34801561079757600080fd5b506107b260048036038101906107ad9190613541565b611665565b6040516107bf9190613212565b60405180910390f35b3480156107d457600080fd5b506107ef60048036038101906107ea919061335d565b6116ec565b005b3480156107fd57600080fd5b50610818600480360381019061081391906133e3565b6117dc565b005b34801561082657600080fd5b50610841600480360381019061083c919061335d565b6118c5565b005b60606040518060400160405280600881526020017f372d456c6576656e000000000000000000000000000000000000000000000000815250905090565b600061089461088d611a87565b8484611a8f565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600067016345785d8a0000905090565b60006108e1848484611c5a565b6109a2846108ed611a87565b61099d856040518060600160405280602881526020016142dd60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610953611a87565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124369092919063ffffffff16565b611a8f565b600190509392505050565b60185481565b60006009905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a10611a87565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a94906135cd565b60405180910390fd5b6023821115610ae1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad89061365f565b60405180910390fd5b6023811115610b25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1c906136f1565b60405180910390fd5b81600a8190555080600b819055505050565b610b3f611a87565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc3906135cd565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610c2f611a87565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb3906135cd565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d1a611a87565b73ffffffffffffffffffffffffffffffffffffffff161480610d905750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d78611a87565b73ffffffffffffffffffffffffffffffffffffffff16145b610d9957600080fd5b6000479050610da78161249a565b50565b6000610df4600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461259f565b9050919050565b610e03611a87565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e87906135cd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610f56611a87565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fe3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fda906135cd565b60405180910390fd5b6601c6bf5263400081101561102d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110249061375d565b60405180910390fd5b8060168190555050565b61103f611a87565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c3906135cd565b60405180910390fd5b67016345785d8a000060178190555067016345785d8a0000601681905550565b60165481565b60116020528060005260406000206000915090505481565b600b5481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611167611a87565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111eb906135cd565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b61121f611a87565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a3906135cd565b60405180910390fd5b81601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60606040518060400160405280600381526020017f3731310000000000000000000000000000000000000000000000000000000000815250905090565b611377611a87565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611404576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fb906135cd565b60405180910390fd5b8060188190555050565b600061142261141b611a87565b8484611c5a565b6001905092915050565b600a5481565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611493611a87565b73ffffffffffffffffffffffffffffffffffffffff1614806115095750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114f1611a87565b73ffffffffffffffffffffffffffffffffffffffff16145b61151257600080fd5b600061151d30610daa565b90506115288161260d565b50565b611533611a87565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b7906135cd565b60405180910390fd5b60005b8383905081101561165f5781600560008686858181106115e6576115e561377d565b5b90506020020160208101906115fb919061335d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611657906137db565b9150506115c3565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6116f4611a87565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611781576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611778906135cd565b60405180910390fd5b6001601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6117e4611a87565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611871576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611868906135cd565b60405180910390fd5b6601c6bf526340008110156118bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b290613896565b60405180910390fd5b8060178190555050565b6118cd611a87565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461195a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611951906135cd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156119ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c190613928565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611aff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af6906139ba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6690613a4c565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c4d9190613212565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611cca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc190613ade565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3190613b70565b60405180910390fd5b60008111611d7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7490613c02565b60405180910390fd5b6000611d87611136565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611df25750611dc3611136565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b9050806121df57601560149054906101000a900460ff16611e8357611e15611136565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611e82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7990613c94565b60405180910390fd5b5b601654821115611ec8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebf90613d00565b60405180910390fd5b601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f6c5750601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611fab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa290613d92565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612058576017548261200d85610daa565b6120179190613db2565b10612057576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204e90613e7a565b60405180910390fd5b5b600061206330610daa565b905060006018548210159050601654821061207e5760165491505b808015612096575060158054906101000a900460ff16155b80156120f05750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b80156121085750601560169054906101000a900460ff165b801561215e5750600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121b45750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121dc576121c28261260d565b600047905060008111156121da576121d94761249a565b5b505b50505b600060019050600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122865750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061228e5750815b1561229c5760009050612423565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156123475750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561235f57600654600c81905550600a54600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561240a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1561242257600754600c81905550600b54600d819055505b5b61242f85858584612893565b5050505050565b600083831115829061247e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124759190613053565b60405180910390fd5b506000838561248d9190613e9a565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60646032846124e59190613ece565b6124ef9190613f57565b9081150290604051600060405180830381858888f1935050505015801561251a573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60646032846125669190613ece565b6125709190613f57565b9081150290604051600060405180830381858888f1935050505015801561259b573d6000803e3d6000fd5b5050565b60006008548211156125e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125dd90613ffa565b60405180910390fd5b60006125f06128c0565b905061260581846128eb90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156126445761264361401a565b5b6040519080825280602002602001820160405280156126725781602001602082028036833780820191505090505b509050308160008151811061268a5761268961377d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561272c57600080fd5b505afa158015612740573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612764919061405e565b816001815181106127785761277761377d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506127df30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a8f565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612843959493929190614184565b600060405180830381600087803b15801561285d57600080fd5b505af1158015612871573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806128a1576128a0612935565b5b6128ac848484612978565b806128ba576128b9612b43565b5b50505050565b60008060006128cd612b57565b915091506128e481836128eb90919063ffffffff16565b9250505090565b600061292d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612bb6565b905092915050565b6000600c5414801561294957506000600d54145b1561295357612976565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061298a87612c19565b9550955095509550955095506129e886600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c8190919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a7d85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ccb90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ac981612d29565b612ad38483612de6565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612b309190613212565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006008549050600067016345785d8a00009050612b8b67016345785d8a00006008546128eb90919063ffffffff16565b821015612ba95760085467016345785d8a0000935093505050612bb2565b81819350935050505b9091565b60008083118290612bfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bf49190613053565b60405180910390fd5b5060008385612c0c9190613f57565b9050809150509392505050565b6000806000806000806000806000612c368a600c54600d54612e20565b9250925092506000612c466128c0565b90506000806000612c598e878787612eb6565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612cc383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612436565b905092915050565b6000808284612cda9190613db2565b905083811015612d1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d169061422a565b60405180910390fd5b8091505092915050565b6000612d336128c0565b90506000612d4a8284612f3f90919063ffffffff16565b9050612d9e81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ccb90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612dfb82600854612c8190919063ffffffff16565b600881905550612e1681600954612ccb90919063ffffffff16565b6009819055505050565b600080600080612e4c6064612e3e888a612f3f90919063ffffffff16565b6128eb90919063ffffffff16565b90506000612e766064612e68888b612f3f90919063ffffffff16565b6128eb90919063ffffffff16565b90506000612e9f82612e91858c612c8190919063ffffffff16565b612c8190919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612ecf8589612f3f90919063ffffffff16565b90506000612ee68689612f3f90919063ffffffff16565b90506000612efd8789612f3f90919063ffffffff16565b90506000612f2682612f188587612c8190919063ffffffff16565b612c8190919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612f525760009050612fb4565b60008284612f609190613ece565b9050828482612f6f9190613f57565b14612faf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fa6906142bc565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ff4578082015181840152602081019050612fd9565b83811115613003576000848401525b50505050565b6000601f19601f8301169050919050565b600061302582612fba565b61302f8185612fc5565b935061303f818560208601612fd6565b61304881613009565b840191505092915050565b6000602082019050818103600083015261306d818461301a565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006130aa8261307f565b9050919050565b6130ba8161309f565b81146130c557600080fd5b50565b6000813590506130d7816130b1565b92915050565b6000819050919050565b6130f0816130dd565b81146130fb57600080fd5b50565b60008135905061310d816130e7565b92915050565b6000806040838503121561312a57613129613075565b5b6000613138858286016130c8565b9250506020613149858286016130fe565b9150509250929050565b60008115159050919050565b61316881613153565b82525050565b6000602082019050613183600083018461315f565b92915050565b6000819050919050565b60006131ae6131a96131a48461307f565b613189565b61307f565b9050919050565b60006131c082613193565b9050919050565b60006131d2826131b5565b9050919050565b6131e2816131c7565b82525050565b60006020820190506131fd60008301846131d9565b92915050565b61320c816130dd565b82525050565b60006020820190506132276000830184613203565b92915050565b60008060006060848603121561324657613245613075565b5b6000613254868287016130c8565b9350506020613265868287016130c8565b9250506040613276868287016130fe565b9150509250925092565b600060ff82169050919050565b61329681613280565b82525050565b60006020820190506132b1600083018461328d565b92915050565b60006132c28261307f565b9050919050565b6132d2816132b7565b82525050565b60006020820190506132ed60008301846132c9565b92915050565b6132fc8161309f565b82525050565b600060208201905061331760008301846132f3565b92915050565b6000806040838503121561333457613333613075565b5b6000613342858286016130fe565b9250506020613353858286016130fe565b9150509250929050565b60006020828403121561337357613372613075565b5b6000613381848285016130c8565b91505092915050565b61339381613153565b811461339e57600080fd5b50565b6000813590506133b08161338a565b92915050565b6000602082840312156133cc576133cb613075565b5b60006133da848285016133a1565b91505092915050565b6000602082840312156133f9576133f8613075565b5b6000613407848285016130fe565b91505092915050565b613419816132b7565b811461342457600080fd5b50565b60008135905061343681613410565b92915050565b6000806040838503121561345357613452613075565b5b600061346185828601613427565b925050602061347285828601613427565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126134a1576134a061347c565b5b8235905067ffffffffffffffff8111156134be576134bd613481565b5b6020830191508360208202830111156134da576134d9613486565b5b9250929050565b6000806000604084860312156134fa576134f9613075565b5b600084013567ffffffffffffffff8111156135185761351761307a565b5b6135248682870161348b565b93509350506020613537868287016133a1565b9150509250925092565b6000806040838503121561355857613557613075565b5b6000613566858286016130c8565b9250506020613577858286016130c8565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006135b7602083612fc5565b91506135c282613581565b602082019050919050565b600060208201905081810360008301526135e6816135aa565b9050919050565b7f427579207461782073686f756c64206265206c657373207468616e206f72206560008201527f7175616c20746f20333500000000000000000000000000000000000000000000602082015250565b6000613649602a83612fc5565b9150613654826135ed565b604082019050919050565b600060208201905081810360008301526136788161363c565b9050919050565b7f53656c6c207461782073686f756c64206265206c657373207468616e206f722060008201527f657175616c20746f203335000000000000000000000000000000000000000000602082015250565b60006136db602b83612fc5565b91506136e68261367f565b604082019050919050565b6000602082019050818103600083015261370a816136ce565b9050919050565b7f4d61782054786e2063616e2774206265206c657373207468616e20302e352520600082015250565b6000613747602083612fc5565b915061375282613711565b602082019050919050565b600060208201905081810360008301526137768161373a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006137e6826130dd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613819576138186137ac565b5b600182019050919050565b7f4d61782057616c6c65742063616e2774206265206c657373207468616e20302e60008201527f3525200000000000000000000000000000000000000000000000000000000000602082015250565b6000613880602383612fc5565b915061388b82613824565b604082019050919050565b600060208201905081810360008301526138af81613873565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613912602683612fc5565b915061391d826138b6565b604082019050919050565b6000602082019050818103600083015261394181613905565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006139a4602483612fc5565b91506139af82613948565b604082019050919050565b600060208201905081810360008301526139d381613997565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a36602283612fc5565b9150613a41826139da565b604082019050919050565b60006020820190508181036000830152613a6581613a29565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613ac8602583612fc5565b9150613ad382613a6c565b604082019050919050565b60006020820190508181036000830152613af781613abb565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613b5a602383612fc5565b9150613b6582613afe565b604082019050919050565b60006020820190508181036000830152613b8981613b4d565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613bec602983612fc5565b9150613bf782613b90565b604082019050919050565b60006020820190508181036000830152613c1b81613bdf565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613c7e603f83612fc5565b9150613c8982613c22565b604082019050919050565b60006020820190508181036000830152613cad81613c71565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613cea601c83612fc5565b9150613cf582613cb4565b602082019050919050565b60006020820190508181036000830152613d1981613cdd565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613d7c602383612fc5565b9150613d8782613d20565b604082019050919050565b60006020820190508181036000830152613dab81613d6f565b9050919050565b6000613dbd826130dd565b9150613dc8836130dd565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613dfd57613dfc6137ac565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613e64602383612fc5565b9150613e6f82613e08565b604082019050919050565b60006020820190508181036000830152613e9381613e57565b9050919050565b6000613ea5826130dd565b9150613eb0836130dd565b925082821015613ec357613ec26137ac565b5b828203905092915050565b6000613ed9826130dd565b9150613ee4836130dd565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613f1d57613f1c6137ac565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613f62826130dd565b9150613f6d836130dd565b925082613f7d57613f7c613f28565b5b828204905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613fe4602a83612fc5565b9150613fef82613f88565b604082019050919050565b6000602082019050818103600083015261401381613fd7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050614058816130b1565b92915050565b60006020828403121561407457614073613075565b5b600061408284828501614049565b91505092915050565b6000819050919050565b60006140b06140ab6140a68461408b565b613189565b6130dd565b9050919050565b6140c081614095565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6140fb8161309f565b82525050565b600061410d83836140f2565b60208301905092915050565b6000602082019050919050565b6000614131826140c6565b61413b81856140d1565b9350614146836140e2565b8060005b8381101561417757815161415e8882614101565b975061416983614119565b92505060018101905061414a565b5085935050505092915050565b600060a0820190506141996000830188613203565b6141a660208301876140b7565b81810360408301526141b88186614126565b90506141c760608301856132f3565b6141d46080830184613203565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614214601b83612fc5565b915061421f826141de565b602082019050919050565b6000602082019050818103600083015261424381614207565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006142a6602183612fc5565b91506142b18261424a565b604082019050919050565b600060208201905081810360008301526142d581614299565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c0bae421548a57687f62558660823e93113a03a8e4d87c953eea0ff8fa42720264736f6c63430008090033
Deployed Bytecode
0x6080604052600436106102135760003560e01c80637f2feddc11610118578063a9059cbb116100a0578063c492f0461161006f578063c492f04614610762578063dd62ed3e1461078b578063e70ef8a4146107c8578063ea1644d5146107f1578063f2fde38b1461081a5761021a565b8063a9059cbb146106a6578063bf5976d3146106e3578063bfd792841461070e578063c3c8cd801461074b5761021a565b80638f70ccf7116100e75780638f70ccf7146105d55780638f9a55c0146105fe57806390107afe1461062957806395d89b411461065257806398a5c3151461067d5761021a565b80637f2feddc146105175780638199040e146105545780638743da6d1461057f5780638da5cb5b146105aa5761021a565b806352f7c9881161019b57806370a082311161016a57806370a0823114610458578063715018a61461049557806374010ece146104ac578063751039fc146104d55780637d1db4a5146104ec5761021a565b806352f7c988146103c65780636b999053146103ef5780636d8aa8f8146104185780636fc3eaec146104415761021a565b806323b872dd116101e257806323b872dd146102dd5780632fd689e31461031a578063313ce567146103455780633d6a9afe1461037057806349bd5a5e1461039b5761021a565b806306fdde031461021f578063095ea7b31461024a5780631694505e1461028757806318160ddd146102b25761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b50610234610843565b6040516102419190613053565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c9190613113565b610880565b60405161027e919061316e565b60405180910390f35b34801561029357600080fd5b5061029c61089e565b6040516102a991906131e8565b60405180910390f35b3480156102be57600080fd5b506102c76108c4565b6040516102d49190613212565b60405180910390f35b3480156102e957600080fd5b5061030460048036038101906102ff919061322d565b6108d4565b604051610311919061316e565b60405180910390f35b34801561032657600080fd5b5061032f6109ad565b60405161033c9190613212565b60405180910390f35b34801561035157600080fd5b5061035a6109b3565b604051610367919061329c565b60405180910390f35b34801561037c57600080fd5b506103856109bc565b60405161039291906132d8565b60405180910390f35b3480156103a757600080fd5b506103b06109e2565b6040516103bd9190613302565b60405180910390f35b3480156103d257600080fd5b506103ed60048036038101906103e8919061331d565b610a08565b005b3480156103fb57600080fd5b506104166004803603810190610411919061335d565b610b37565b005b34801561042457600080fd5b5061043f600480360381019061043a91906133b6565b610c27565b005b34801561044d57600080fd5b50610456610cd9565b005b34801561046457600080fd5b5061047f600480360381019061047a919061335d565b610daa565b60405161048c9190613212565b60405180910390f35b3480156104a157600080fd5b506104aa610dfb565b005b3480156104b857600080fd5b506104d360048036038101906104ce91906133e3565b610f4e565b005b3480156104e157600080fd5b506104ea611037565b005b3480156104f857600080fd5b506105016110ec565b60405161050e9190613212565b60405180910390f35b34801561052357600080fd5b5061053e6004803603810190610539919061335d565b6110f2565b60405161054b9190613212565b60405180910390f35b34801561056057600080fd5b5061056961110a565b6040516105769190613212565b60405180910390f35b34801561058b57600080fd5b50610594611110565b6040516105a191906132d8565b60405180910390f35b3480156105b657600080fd5b506105bf611136565b6040516105cc9190613302565b60405180910390f35b3480156105e157600080fd5b506105fc60048036038101906105f791906133b6565b61115f565b005b34801561060a57600080fd5b50610613611211565b6040516106209190613212565b60405180910390f35b34801561063557600080fd5b50610650600480360381019061064b919061343c565b611217565b005b34801561065e57600080fd5b50610667611332565b6040516106749190613053565b60405180910390f35b34801561068957600080fd5b506106a4600480360381019061069f91906133e3565b61136f565b005b3480156106b257600080fd5b506106cd60048036038101906106c89190613113565b61140e565b6040516106da919061316e565b60405180910390f35b3480156106ef57600080fd5b506106f861142c565b6040516107059190613212565b60405180910390f35b34801561071a57600080fd5b506107356004803603810190610730919061335d565b611432565b604051610742919061316e565b60405180910390f35b34801561075757600080fd5b50610760611452565b005b34801561076e57600080fd5b50610789600480360381019061078491906134e1565b61152b565b005b34801561079757600080fd5b506107b260048036038101906107ad9190613541565b611665565b6040516107bf9190613212565b60405180910390f35b3480156107d457600080fd5b506107ef60048036038101906107ea919061335d565b6116ec565b005b3480156107fd57600080fd5b50610818600480360381019061081391906133e3565b6117dc565b005b34801561082657600080fd5b50610841600480360381019061083c919061335d565b6118c5565b005b60606040518060400160405280600881526020017f372d456c6576656e000000000000000000000000000000000000000000000000815250905090565b600061089461088d611a87565b8484611a8f565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600067016345785d8a0000905090565b60006108e1848484611c5a565b6109a2846108ed611a87565b61099d856040518060600160405280602881526020016142dd60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610953611a87565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124369092919063ffffffff16565b611a8f565b600190509392505050565b60185481565b60006009905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a10611a87565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a94906135cd565b60405180910390fd5b6023821115610ae1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad89061365f565b60405180910390fd5b6023811115610b25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1c906136f1565b60405180910390fd5b81600a8190555080600b819055505050565b610b3f611a87565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc3906135cd565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610c2f611a87565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb3906135cd565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d1a611a87565b73ffffffffffffffffffffffffffffffffffffffff161480610d905750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d78611a87565b73ffffffffffffffffffffffffffffffffffffffff16145b610d9957600080fd5b6000479050610da78161249a565b50565b6000610df4600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461259f565b9050919050565b610e03611a87565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e87906135cd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610f56611a87565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fe3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fda906135cd565b60405180910390fd5b6601c6bf5263400081101561102d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110249061375d565b60405180910390fd5b8060168190555050565b61103f611a87565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c3906135cd565b60405180910390fd5b67016345785d8a000060178190555067016345785d8a0000601681905550565b60165481565b60116020528060005260406000206000915090505481565b600b5481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611167611a87565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111eb906135cd565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b61121f611a87565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a3906135cd565b60405180910390fd5b81601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60606040518060400160405280600381526020017f3731310000000000000000000000000000000000000000000000000000000000815250905090565b611377611a87565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611404576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fb906135cd565b60405180910390fd5b8060188190555050565b600061142261141b611a87565b8484611c5a565b6001905092915050565b600a5481565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611493611a87565b73ffffffffffffffffffffffffffffffffffffffff1614806115095750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114f1611a87565b73ffffffffffffffffffffffffffffffffffffffff16145b61151257600080fd5b600061151d30610daa565b90506115288161260d565b50565b611533611a87565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b7906135cd565b60405180910390fd5b60005b8383905081101561165f5781600560008686858181106115e6576115e561377d565b5b90506020020160208101906115fb919061335d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611657906137db565b9150506115c3565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6116f4611a87565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611781576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611778906135cd565b60405180910390fd5b6001601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6117e4611a87565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611871576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611868906135cd565b60405180910390fd5b6601c6bf526340008110156118bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b290613896565b60405180910390fd5b8060178190555050565b6118cd611a87565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461195a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611951906135cd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156119ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c190613928565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611aff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af6906139ba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6690613a4c565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c4d9190613212565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611cca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc190613ade565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3190613b70565b60405180910390fd5b60008111611d7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7490613c02565b60405180910390fd5b6000611d87611136565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611df25750611dc3611136565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b9050806121df57601560149054906101000a900460ff16611e8357611e15611136565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611e82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7990613c94565b60405180910390fd5b5b601654821115611ec8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebf90613d00565b60405180910390fd5b601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f6c5750601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611fab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa290613d92565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612058576017548261200d85610daa565b6120179190613db2565b10612057576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204e90613e7a565b60405180910390fd5b5b600061206330610daa565b905060006018548210159050601654821061207e5760165491505b808015612096575060158054906101000a900460ff16155b80156120f05750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b80156121085750601560169054906101000a900460ff165b801561215e5750600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121b45750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121dc576121c28261260d565b600047905060008111156121da576121d94761249a565b5b505b50505b600060019050600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122865750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061228e5750815b1561229c5760009050612423565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156123475750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561235f57600654600c81905550600a54600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561240a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1561242257600754600c81905550600b54600d819055505b5b61242f85858584612893565b5050505050565b600083831115829061247e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124759190613053565b60405180910390fd5b506000838561248d9190613e9a565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60646032846124e59190613ece565b6124ef9190613f57565b9081150290604051600060405180830381858888f1935050505015801561251a573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60646032846125669190613ece565b6125709190613f57565b9081150290604051600060405180830381858888f1935050505015801561259b573d6000803e3d6000fd5b5050565b60006008548211156125e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125dd90613ffa565b60405180910390fd5b60006125f06128c0565b905061260581846128eb90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156126445761264361401a565b5b6040519080825280602002602001820160405280156126725781602001602082028036833780820191505090505b509050308160008151811061268a5761268961377d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561272c57600080fd5b505afa158015612740573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612764919061405e565b816001815181106127785761277761377d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506127df30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a8f565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612843959493929190614184565b600060405180830381600087803b15801561285d57600080fd5b505af1158015612871573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806128a1576128a0612935565b5b6128ac848484612978565b806128ba576128b9612b43565b5b50505050565b60008060006128cd612b57565b915091506128e481836128eb90919063ffffffff16565b9250505090565b600061292d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612bb6565b905092915050565b6000600c5414801561294957506000600d54145b1561295357612976565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061298a87612c19565b9550955095509550955095506129e886600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c8190919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a7d85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ccb90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ac981612d29565b612ad38483612de6565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612b309190613212565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006008549050600067016345785d8a00009050612b8b67016345785d8a00006008546128eb90919063ffffffff16565b821015612ba95760085467016345785d8a0000935093505050612bb2565b81819350935050505b9091565b60008083118290612bfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bf49190613053565b60405180910390fd5b5060008385612c0c9190613f57565b9050809150509392505050565b6000806000806000806000806000612c368a600c54600d54612e20565b9250925092506000612c466128c0565b90506000806000612c598e878787612eb6565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612cc383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612436565b905092915050565b6000808284612cda9190613db2565b905083811015612d1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d169061422a565b60405180910390fd5b8091505092915050565b6000612d336128c0565b90506000612d4a8284612f3f90919063ffffffff16565b9050612d9e81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ccb90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612dfb82600854612c8190919063ffffffff16565b600881905550612e1681600954612ccb90919063ffffffff16565b6009819055505050565b600080600080612e4c6064612e3e888a612f3f90919063ffffffff16565b6128eb90919063ffffffff16565b90506000612e766064612e68888b612f3f90919063ffffffff16565b6128eb90919063ffffffff16565b90506000612e9f82612e91858c612c8190919063ffffffff16565b612c8190919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612ecf8589612f3f90919063ffffffff16565b90506000612ee68689612f3f90919063ffffffff16565b90506000612efd8789612f3f90919063ffffffff16565b90506000612f2682612f188587612c8190919063ffffffff16565b612c8190919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612f525760009050612fb4565b60008284612f609190613ece565b9050828482612f6f9190613f57565b14612faf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fa6906142bc565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ff4578082015181840152602081019050612fd9565b83811115613003576000848401525b50505050565b6000601f19601f8301169050919050565b600061302582612fba565b61302f8185612fc5565b935061303f818560208601612fd6565b61304881613009565b840191505092915050565b6000602082019050818103600083015261306d818461301a565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006130aa8261307f565b9050919050565b6130ba8161309f565b81146130c557600080fd5b50565b6000813590506130d7816130b1565b92915050565b6000819050919050565b6130f0816130dd565b81146130fb57600080fd5b50565b60008135905061310d816130e7565b92915050565b6000806040838503121561312a57613129613075565b5b6000613138858286016130c8565b9250506020613149858286016130fe565b9150509250929050565b60008115159050919050565b61316881613153565b82525050565b6000602082019050613183600083018461315f565b92915050565b6000819050919050565b60006131ae6131a96131a48461307f565b613189565b61307f565b9050919050565b60006131c082613193565b9050919050565b60006131d2826131b5565b9050919050565b6131e2816131c7565b82525050565b60006020820190506131fd60008301846131d9565b92915050565b61320c816130dd565b82525050565b60006020820190506132276000830184613203565b92915050565b60008060006060848603121561324657613245613075565b5b6000613254868287016130c8565b9350506020613265868287016130c8565b9250506040613276868287016130fe565b9150509250925092565b600060ff82169050919050565b61329681613280565b82525050565b60006020820190506132b1600083018461328d565b92915050565b60006132c28261307f565b9050919050565b6132d2816132b7565b82525050565b60006020820190506132ed60008301846132c9565b92915050565b6132fc8161309f565b82525050565b600060208201905061331760008301846132f3565b92915050565b6000806040838503121561333457613333613075565b5b6000613342858286016130fe565b9250506020613353858286016130fe565b9150509250929050565b60006020828403121561337357613372613075565b5b6000613381848285016130c8565b91505092915050565b61339381613153565b811461339e57600080fd5b50565b6000813590506133b08161338a565b92915050565b6000602082840312156133cc576133cb613075565b5b60006133da848285016133a1565b91505092915050565b6000602082840312156133f9576133f8613075565b5b6000613407848285016130fe565b91505092915050565b613419816132b7565b811461342457600080fd5b50565b60008135905061343681613410565b92915050565b6000806040838503121561345357613452613075565b5b600061346185828601613427565b925050602061347285828601613427565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126134a1576134a061347c565b5b8235905067ffffffffffffffff8111156134be576134bd613481565b5b6020830191508360208202830111156134da576134d9613486565b5b9250929050565b6000806000604084860312156134fa576134f9613075565b5b600084013567ffffffffffffffff8111156135185761351761307a565b5b6135248682870161348b565b93509350506020613537868287016133a1565b9150509250925092565b6000806040838503121561355857613557613075565b5b6000613566858286016130c8565b9250506020613577858286016130c8565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006135b7602083612fc5565b91506135c282613581565b602082019050919050565b600060208201905081810360008301526135e6816135aa565b9050919050565b7f427579207461782073686f756c64206265206c657373207468616e206f72206560008201527f7175616c20746f20333500000000000000000000000000000000000000000000602082015250565b6000613649602a83612fc5565b9150613654826135ed565b604082019050919050565b600060208201905081810360008301526136788161363c565b9050919050565b7f53656c6c207461782073686f756c64206265206c657373207468616e206f722060008201527f657175616c20746f203335000000000000000000000000000000000000000000602082015250565b60006136db602b83612fc5565b91506136e68261367f565b604082019050919050565b6000602082019050818103600083015261370a816136ce565b9050919050565b7f4d61782054786e2063616e2774206265206c657373207468616e20302e352520600082015250565b6000613747602083612fc5565b915061375282613711565b602082019050919050565b600060208201905081810360008301526137768161373a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006137e6826130dd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613819576138186137ac565b5b600182019050919050565b7f4d61782057616c6c65742063616e2774206265206c657373207468616e20302e60008201527f3525200000000000000000000000000000000000000000000000000000000000602082015250565b6000613880602383612fc5565b915061388b82613824565b604082019050919050565b600060208201905081810360008301526138af81613873565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613912602683612fc5565b915061391d826138b6565b604082019050919050565b6000602082019050818103600083015261394181613905565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006139a4602483612fc5565b91506139af82613948565b604082019050919050565b600060208201905081810360008301526139d381613997565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a36602283612fc5565b9150613a41826139da565b604082019050919050565b60006020820190508181036000830152613a6581613a29565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613ac8602583612fc5565b9150613ad382613a6c565b604082019050919050565b60006020820190508181036000830152613af781613abb565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613b5a602383612fc5565b9150613b6582613afe565b604082019050919050565b60006020820190508181036000830152613b8981613b4d565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613bec602983612fc5565b9150613bf782613b90565b604082019050919050565b60006020820190508181036000830152613c1b81613bdf565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613c7e603f83612fc5565b9150613c8982613c22565b604082019050919050565b60006020820190508181036000830152613cad81613c71565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613cea601c83612fc5565b9150613cf582613cb4565b602082019050919050565b60006020820190508181036000830152613d1981613cdd565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613d7c602383612fc5565b9150613d8782613d20565b604082019050919050565b60006020820190508181036000830152613dab81613d6f565b9050919050565b6000613dbd826130dd565b9150613dc8836130dd565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613dfd57613dfc6137ac565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613e64602383612fc5565b9150613e6f82613e08565b604082019050919050565b60006020820190508181036000830152613e9381613e57565b9050919050565b6000613ea5826130dd565b9150613eb0836130dd565b925082821015613ec357613ec26137ac565b5b828203905092915050565b6000613ed9826130dd565b9150613ee4836130dd565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613f1d57613f1c6137ac565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613f62826130dd565b9150613f6d836130dd565b925082613f7d57613f7c613f28565b5b828204905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613fe4602a83612fc5565b9150613fef82613f88565b604082019050919050565b6000602082019050818103600083015261401381613fd7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050614058816130b1565b92915050565b60006020828403121561407457614073613075565b5b600061408284828501614049565b91505092915050565b6000819050919050565b60006140b06140ab6140a68461408b565b613189565b6130dd565b9050919050565b6140c081614095565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6140fb8161309f565b82525050565b600061410d83836140f2565b60208301905092915050565b6000602082019050919050565b6000614131826140c6565b61413b81856140d1565b9350614146836140e2565b8060005b8381101561417757815161415e8882614101565b975061416983614119565b92505060018101905061414a565b5085935050505092915050565b600060a0820190506141996000830188613203565b6141a660208301876140b7565b81810360408301526141b88186614126565b90506141c760608301856132f3565b6141d46080830184613203565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614214601b83612fc5565b915061421f826141de565b602082019050919050565b6000602082019050818103600083015261424381614207565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006142a6602183612fc5565b91506142b18261424a565b604082019050919050565b600060208201905081810360008301526142d581614299565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c0bae421548a57687f62558660823e93113a03a8e4d87c953eea0ff8fa42720264736f6c63430008090033
Deployed Bytecode Sourcemap
4202:14216:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6752:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7677:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5553:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7029:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7878:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5851:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6938:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5347:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5601:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16907:328;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13177:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17478:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12840:234;;;;;;;;;;;;;:::i;:::-;;7132:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1689:148;;;;;;;;;;;;;:::i;:::-;;17618:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18032:139;;;;;;;;;;;;;:::i;:::-;;5743:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5297:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5018:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5451:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1475:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12488:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5797:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13277:224;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6843:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17287:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7278:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4964:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5259:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12597:235;;;;;;;;;;;;;:::i;:::-;;18179:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7485:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13082:87;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17819:205;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1845:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6752:83;6789:13;6822:5;;;;;;;;;;;;;;;;;6815:12;;6752:83;:::o;7677:193::-;7779:4;7801:39;7810:12;:10;:12::i;:::-;7824:7;7833:6;7801:8;:39::i;:::-;7858:4;7851:11;;7677:193;;;;:::o;5553:41::-;;;;;;;;;;;;;:::o;7029:95::-;7082:7;4834:17;7102:14;;7029:95;:::o;7878:446::-;8010:4;8027:36;8037:6;8045:9;8056:6;8027:9;:36::i;:::-;8074:220;8097:6;8118:12;:10;:12::i;:::-;8145:138;8201:6;8145:138;;;;;;;;;;;;;;;;;:11;:19;8157:6;8145:19;;;;;;;;;;;;;;;:33;8165:12;:10;:12::i;:::-;8145:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8074:8;:220::i;:::-;8312:4;8305:11;;7878:446;;;;;:::o;5851:49::-;;;;:::o;6938:83::-;6979:5;4425:1;6997:16;;6938:83;:::o;5347:96::-;;;;;;;;;;;;;:::o;5601:28::-;;;;;;;;;;;;;:::o;16907:328::-;1612:12;:10;:12::i;:::-;1602:22;;:6;;;;;;;;;;:22;;;1594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17017:2:::1;17002:11;:17;;16994:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;17101:2;17085:12;:18;;17077:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;17177:11;17162:12;:26;;;;17215:12;17199:13;:28;;;;16907:328:::0;;:::o;13177:92::-;1612:12;:10;:12::i;:::-;1602:22;;:6;;;;;;;;;;:22;;;1594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13256:5:::1;13241:4;:12;13246:6;13241:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13177:92:::0;:::o;17478:101::-;1612:12;:10;:12::i;:::-;1602:22;;:6;;;;;;;;;;:22;;;1594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17559:12:::1;17545:11;;:26;;;;;;;;;;;;;;;;;;17478:101:::0;:::o;12840:234::-;12906:19;;;;;;;;;;;12890:35;;:12;:10;:12::i;:::-;:35;;;:71;;;;12945:16;;;;;;;;;;;12929:32;;:12;:10;:12::i;:::-;:32;;;12890:71;12882:80;;;;;;12973:26;13002:21;12973:50;;13034:32;13047:18;13034:12;:32::i;:::-;12871:203;12840:234::o;7132:138::-;7198:7;7225:37;7245:7;:16;7253:7;7245:16;;;;;;;;;;;;;;;;7225:19;:37::i;:::-;7218:44;;7132:138;;;:::o;1689:148::-;1612:12;:10;:12::i;:::-;1602:22;;:6;;;;;;;;;;:22;;;1594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1796:1:::1;1759:40;;1780:6;::::0;::::1;;;;;;;;1759:40;;;;;;;;;;;;1827:1;1810:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1689:148::o:0;17618:193::-;1612:12;:10;:12::i;:::-;1602:22;;:6;;;;;;;;;;:22;;;1594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17715:14:::1;17700:11;:29;;17692:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;17792:11;17777:12;:26;;;;17618:193:::0;:::o;18032:139::-;1612:12;:10;:12::i;:::-;1602:22;;:6;;;;;;;;;;:22;;;1594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18101:17:::1;18084:14;:34;;;;18146:17;18129:12;:34;;;;18032:139::o:0;5743:47::-;;;;:::o;5297:43::-;;;;;;;;;;;;;;;;;:::o;5018:32::-;;;;:::o;5451:93::-;;;;;;;;;;;;;:::o;1475:79::-;1513:7;1540:6;;;;;;;;;;;1533:13;;1475:79;:::o;12488:101::-;1612:12;:10;:12::i;:::-;1602:22;;:6;;;;;;;;;;:22;;;1594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12569:12:::1;12555:11;;:26;;;;;;;;;;;;;;;;;;12488:101:::0;:::o;5797:47::-;;;;:::o;13277:224::-;1612:12;:10;:12::i;:::-;1602:22;;:6;;;;;;;;;;:22;;;1594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13424:21:::1;13402:19;;:43;;;;;;;;;;;;;;;;;;13475:18;13456:16;;:37;;;;;;;;;;;;;;;;;;13277:224:::0;;:::o;6843:87::-;6882:13;6915:7;;;;;;;;;;;;;;;;;6908:14;;6843:87;:::o;17287:139::-;1612:12;:10;:12::i;:::-;1602:22;;:6;;;;;;;;;;:22;;;1594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17400:18:::1;17378:19;:40;;;;17287:139:::0;:::o;7278:199::-;7383:4;7405:42;7415:12;:10;:12::i;:::-;7429:9;7440:6;7405:9;:42::i;:::-;7465:4;7458:11;;7278:199;;;;:::o;4964:31::-;;;;:::o;5259:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12597:235::-;12663:19;;;;;;;;;;;12647:35;;:12;:10;:12::i;:::-;:35;;;:71;;;;12702:16;;;;;;;;;;;12686:32;;:12;:10;:12::i;:::-;:32;;;12647:71;12639:80;;;;;;12730:23;12756:24;12774:4;12756:9;:24::i;:::-;12730:50;;12791:33;12808:15;12791:16;:33::i;:::-;12628:204;12597:235::o;18179:234::-;1612:12;:10;:12::i;:::-;1602:22;;:6;;;;;;;;;;:22;;;1594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18296:9:::1;18292:114;18315:8;;:15;;18311:1;:19;18292:114;;;18386:8;18352:18;:31;18371:8;;18380:1;18371:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18352:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;18332:3;;;;;:::i;:::-;;;;18292:114;;;;18179:234:::0;;;:::o;7485:184::-;7602:7;7634:11;:18;7646:5;7634:18;;;;;;;;;;;;;;;:27;7653:7;7634:27;;;;;;;;;;;;;;;;7627:34;;7485:184;;;;:::o;13082:87::-;1612:12;:10;:12::i;:::-;1602:22;;:6;;;;;;;;;;:22;;;1594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13157:4:::1;13143;:11;13148:5;13143:11;;;;;;;;;;;;;;;;:18;;;;;;;;;;;;;;;;;;13082:87:::0;:::o;17819:205::-;1612:12;:10;:12::i;:::-;1602:22;;:6;;;;;;;;;;:22;;;1594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17921:14:::1;17904:13;:31;;17896:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;18003:13;17986:14;:30;;;;17819:205:::0;:::o;1845:244::-;1612:12;:10;:12::i;:::-;1602:22;;:6;;;;;;;;;;:22;;;1594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1954:1:::1;1934:22;;:8;:22;;;;1926:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2044:8;2015:38;;2036:6;::::0;::::1;;;;;;;;2015:38;;;;;;;;;;;;2073:8;2064:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1845:244:::0;:::o;234:98::-;287:7;314:10;307:17;;234:98;:::o;9015:369::-;9159:1;9142:19;;:5;:19;;;;9134:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9240:1;9221:21;;:7;:21;;;;9213:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9322:6;9292:11;:18;9304:5;9292:18;;;;;;;;;;;;;;;:27;9311:7;9292:27;;;;;;;;;;;;;;;:36;;;;9360:7;9344:32;;9353:5;9344:32;;;9369:6;9344:32;;;;;;:::i;:::-;;;;;;;;9015:369;;;:::o;9392:2428::-;9530:1;9514:18;;:4;:18;;;;9506:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9607:1;9593:16;;:2;:16;;;;9585:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9677:1;9668:6;:10;9660:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9801:23;9836:7;:5;:7::i;:::-;9828:15;;:4;:15;;;:32;;;;9853:7;:5;:7::i;:::-;9847:13;;:2;:13;;;9828:32;9801:60;;9879:18;9874:1247;;9955:11;;;;;;;;;;;9950:144;;10003:7;:5;:7::i;:::-;9995:15;;:4;:15;;;9987:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9950:144;10128:12;;10118:6;:22;;10110:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10197:4;:10;10202:4;10197:10;;;;;;;;;;;;;;;;;;;;;;;;;10196:11;:24;;;;;10212:4;:8;10217:2;10212:8;;;;;;;;;;;;;;;;;;;;;;;;;10211:9;10196:24;10188:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10286:13;;;;;;;;;;;10280:19;;:2;:19;;;10277:146;;10353:14;;10344:6;10328:13;10338:2;10328:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10320:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10277:146;10439:28;10470:24;10488:4;10470:9;:24::i;:::-;10439:55;;10509:12;10548:19;;10524:20;:43;;10509:58;;10611:12;;10587:20;:36;10584:124;;10680:12;;10657:35;;10584:124;10728:7;:18;;;;;10740:6;;;;;;;;;;10739:7;10728:18;:43;;;;;10758:13;;;;;;;;;;;10750:21;;:4;:21;;;;10728:43;:58;;;;;10775:11;;;;;;;;;;;10728:58;:87;;;;;10791:18;:24;10810:4;10791:24;;;;;;;;;;;;;;;;;;;;;;;;;10790:25;10728:87;:114;;;;;10820:18;:22;10839:2;10820:22;;;;;;;;;;;;;;;;;;;;;;;;;10819:23;10728:114;10724:386;;;10863:38;10880:20;10863:16;:38::i;:::-;10920:26;10949:21;10920:50;;11014:1;10993:18;:22;10989:106;;;11040:35;11053:21;11040:12;:35::i;:::-;10989:106;10844:266;10724:386;9899:1222;;9874:1247;11133:12;11148:4;11133:19;;11198:18;:24;11217:4;11198:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11226:18;:22;11245:2;11226:22;;;;;;;;;;;;;;;;;;;;;;;;;11198:50;11197:74;;;;11253:18;11197:74;11193:566;;;11298:5;11288:15;;11193:566;;;11382:13;;;;;;;;;;;11374:21;;:4;:21;;;:55;;;;;11413:15;;;;;;;;;;;11399:30;;:2;:30;;;;11374:55;11371:162;;;11462:14;;11450:9;:26;;;;11505:12;;11495:7;:22;;;;11371:162;11593:13;;;;;;;;;;;11587:19;;:2;:19;;;:55;;;;;11626:15;;;;;;;;;;;11610:32;;:4;:32;;;;11587:55;11583:165;;;11675:15;;11663:9;:27;;;;11719:13;;11709:7;:23;;;;11583:165;11193:566;11771:41;11786:4;11792:2;11796:6;11804:7;11771:14;:41::i;:::-;9495:2325;;9392:2428;;;:::o;2453:224::-;2573:7;2606:1;2601;:6;;2609:12;2593:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2633:9;2649:1;2645;:5;;;;:::i;:::-;2633:17;;2668:1;2661:8;;;2453:224;;;;;:::o;12321:159::-;12378:16;;;;;;;;;;;:25;;:40;12414:3;12411:2;12404:6;:9;;;;:::i;:::-;:13;;;;:::i;:::-;12378:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12429:19;;;;;;;;;;;:28;;:43;12468:3;12465:2;12458:6;:9;;;;:::i;:::-;:13;;;;:::i;:::-;12429:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12321:159;:::o;8332:323::-;8427:7;8485;;8474;:18;;8452:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8573:19;8595:10;:8;:10::i;:::-;8573:32;;8623:24;8635:11;8623:7;:11;;:24;;;;:::i;:::-;8616:31;;;8332:323;;;:::o;11830:483::-;6003:4;5994:6;;:13;;;;;;;;;;;;;;;;;;11908:21:::1;11946:1;11932:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11908:40;;11977:4;11959;11964:1;11959:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12003:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11993:4;11998:1;11993:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12036:62;12053:4;12068:15;;;;;;;;;;;12086:11;12036:8;:62::i;:::-;12109:15;;;;;;;;;;;:66;;;12190:11;12216:1;12232:4;12259;12279:15;12109:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11897:416;6039:5:::0;6030:6;;:14;;;;;;;;;;;;;;;;;;11830:483;:::o;13509:282::-;13665:7;13660:28;;13674:14;:12;:14::i;:::-;13660:28;13699:44;13717:6;13725:9;13736:6;13699:17;:44::i;:::-;13759:7;13754:29;;13768:15;:13;:15::i;:::-;13754:29;13509:282;;;;:::o;16470:164::-;16512:7;16533:15;16550;16569:19;:17;:19::i;:::-;16532:56;;;;16606:20;16618:7;16606;:11;;:20;;;;:::i;:::-;16599:27;;;;16470:164;:::o;2939:132::-;2997:7;3024:39;3028:1;3031;3024:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3017:46;;2939:132;;;;:::o;8663:219::-;8723:1;8710:9;;:14;:30;;;;;8739:1;8728:7;;:12;8710:30;8706:43;;;8742:7;;8706:43;8781:9;;8761:17;:29;;;;8819:7;;8801:15;:25;;;;8851:1;8839:9;:13;;;;8873:1;8863:7;:11;;;;8663:219;:::o;13799:610::-;13946:15;13976:23;14014:12;14041:23;14079:12;14106:13;14133:19;14144:7;14133:10;:19::i;:::-;13931:221;;;;;;;;;;;;14181:28;14201:7;14181;:15;14189:6;14181:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14163:7;:15;14171:6;14163:15;;;;;;;;;;;;;;;:46;;;;14241:39;14264:15;14241:7;:18;14249:9;14241:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14220:7;:18;14228:9;14220:18;;;;;;;;;;;;;;;:60;;;;14291:16;14301:5;14291:9;:16::i;:::-;14318:23;14330:4;14336;14318:11;:23::i;:::-;14374:9;14357:44;;14366:6;14357:44;;;14385:15;14357:44;;;;;;:::i;:::-;;;;;;;;13920:489;;;;;;13799:610;;;:::o;8890:117::-;8946:17;;8934:9;:29;;;;8984:15;;8974:7;:25;;;;8890:117::o;16642:257::-;16693:7;16702;16722:15;16740:7;;16722:25;;16758:15;4834:17;16758:25;;16808:20;4834:17;16808:7;;:11;;:20;;;;:::i;:::-;16798:7;:30;16794:61;;;16838:7;;4834:17;16830:25;;;;;;;;16794:61;16874:7;16883;16866:25;;;;;;16642:257;;;:::o;3079:223::-;3199:7;3231:1;3227;:5;3234:12;3219:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3258:9;3274:1;3270;:5;;;;:::i;:::-;3258:17;;3293:1;3286:8;;;3079:223;;;;;:::o;14828:615::-;14928:7;14950;14972;14994;15016;15038;15074:23;15099:12;15113:13;15143:40;15155:7;15164:9;;15175:7;;15143:11;:40::i;:::-;15073:110;;;;;;15194:19;15216:10;:8;:10::i;:::-;15194:32;;15238:15;15255:23;15280:12;15309:46;15321:7;15330:4;15336:5;15343:11;15309;:46::i;:::-;15237:118;;;;;;15374:7;15383:15;15400:4;15406:15;15423:4;15429:5;15366:69;;;;;;;;;;;;;;;;;;;14828:615;;;;;;;:::o;2309:136::-;2367:7;2394:43;2398:1;2401;2394:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2387:50;;2309:136;;;;:::o;2122:179::-;2180:7;2200:9;2216:1;2212;:5;;;;:::i;:::-;2200:17;;2241:1;2236;:6;;2228:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2292:1;2285:8;;;2122:179;;;;:::o;14417:211::-;14470:19;14492:10;:8;:10::i;:::-;14470:32;;14513:13;14529:22;14539:11;14529:5;:9;;:22;;;;:::i;:::-;14513:38;;14587:33;14614:5;14587:7;:22;14603:4;14587:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14562:7;:22;14578:4;14562:22;;;;;;;;;;;;;;;:58;;;;14459:169;;14417:211;:::o;14636:147::-;14714:17;14726:4;14714:7;;:11;;:17;;;;:::i;:::-;14704:7;:27;;;;14755:20;14770:4;14755:10;;:14;;:20;;;;:::i;:::-;14742:10;:33;;;;14636:147;;:::o;15451:469::-;15620:7;15642;15664;15699:12;15714:30;15740:3;15714:21;15726:8;15714:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15699:45;;15755:13;15771:28;15795:3;15771:19;15783:6;15771:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15755:44;;15810:23;15836:28;15858:5;15836:17;15848:4;15836:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15810:54;;15883:15;15900:4;15906:5;15875:37;;;;;;;;;15451:469;;;;;;;:::o;15928:534::-;16122:7;16144;16166;16201:15;16219:24;16231:11;16219:7;:11;;:24;;;;:::i;:::-;16201:42;;16254:12;16269:21;16278:11;16269:4;:8;;:21;;;;:::i;:::-;16254:36;;16301:13;16317:22;16327:11;16317:5;:9;;:22;;;;:::i;:::-;16301:38;;16350:23;16376:28;16398:5;16376:17;16388:4;16376:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16350:54;;16423:7;16432:15;16449:4;16415:39;;;;;;;;;;15928:534;;;;;;;;:::o;2685:246::-;2743:7;2772:1;2767;:6;2763:47;;;2797:1;2790:8;;;;2763:47;2820:9;2836:1;2832;:5;;;;:::i;:::-;2820:17;;2865:1;2860;2856;:5;;;;:::i;:::-;:10;2848:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2922:1;2915:8;;;2685:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:60::-;3522:3;3543:5;3536:12;;3494:60;;;:::o;3560:142::-;3610:9;3643:53;3661:34;3670:24;3688:5;3670:24;:::i;:::-;3661:34;:::i;:::-;3643:53;:::i;:::-;3630:66;;3560:142;;;:::o;3708:126::-;3758:9;3791:37;3822:5;3791:37;:::i;:::-;3778:50;;3708:126;;;:::o;3840:152::-;3916:9;3949:37;3980:5;3949:37;:::i;:::-;3936:50;;3840:152;;;:::o;3998:183::-;4111:63;4168:5;4111:63;:::i;:::-;4106:3;4099:76;3998:183;;:::o;4187:274::-;4306:4;4344:2;4333:9;4329:18;4321:26;;4357:97;4451:1;4440:9;4436:17;4427:6;4357:97;:::i;:::-;4187:274;;;;:::o;4467:118::-;4554:24;4572:5;4554:24;:::i;:::-;4549:3;4542:37;4467:118;;:::o;4591:222::-;4684:4;4722:2;4711:9;4707:18;4699:26;;4735:71;4803:1;4792:9;4788:17;4779:6;4735:71;:::i;:::-;4591:222;;;;:::o;4819:619::-;4896:6;4904;4912;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;5214:2;5240:53;5285:7;5276:6;5265:9;5261:22;5240:53;:::i;:::-;5230:63;;5185:118;5342:2;5368:53;5413:7;5404:6;5393:9;5389:22;5368:53;:::i;:::-;5358:63;;5313:118;4819:619;;;;;:::o;5444:86::-;5479:7;5519:4;5512:5;5508:16;5497:27;;5444:86;;;:::o;5536:112::-;5619:22;5635:5;5619:22;:::i;:::-;5614:3;5607:35;5536:112;;:::o;5654:214::-;5743:4;5781:2;5770:9;5766:18;5758:26;;5794:67;5858:1;5847:9;5843:17;5834:6;5794:67;:::i;:::-;5654:214;;;;:::o;5874:104::-;5919:7;5948:24;5966:5;5948:24;:::i;:::-;5937:35;;5874:104;;;:::o;5984:142::-;6087:32;6113:5;6087:32;:::i;:::-;6082:3;6075:45;5984:142;;:::o;6132:254::-;6241:4;6279:2;6268:9;6264:18;6256:26;;6292:87;6376:1;6365:9;6361:17;6352:6;6292:87;:::i;:::-;6132:254;;;;:::o;6392:118::-;6479:24;6497:5;6479:24;:::i;:::-;6474:3;6467:37;6392:118;;:::o;6516:222::-;6609:4;6647:2;6636:9;6632:18;6624:26;;6660:71;6728:1;6717:9;6713:17;6704:6;6660:71;:::i;:::-;6516:222;;;;:::o;6744:474::-;6812:6;6820;6869:2;6857:9;6848:7;6844:23;6840:32;6837:119;;;6875:79;;:::i;:::-;6837:119;6995:1;7020:53;7065:7;7056:6;7045:9;7041:22;7020:53;:::i;:::-;7010:63;;6966:117;7122:2;7148:53;7193:7;7184:6;7173:9;7169:22;7148:53;:::i;:::-;7138:63;;7093:118;6744:474;;;;;:::o;7224:329::-;7283:6;7332:2;7320:9;7311:7;7307:23;7303:32;7300:119;;;7338:79;;:::i;:::-;7300:119;7458:1;7483:53;7528:7;7519:6;7508:9;7504:22;7483:53;:::i;:::-;7473:63;;7429:117;7224:329;;;;:::o;7559:116::-;7629:21;7644:5;7629:21;:::i;:::-;7622:5;7619:32;7609:60;;7665:1;7662;7655:12;7609:60;7559:116;:::o;7681:133::-;7724:5;7762:6;7749:20;7740:29;;7778:30;7802:5;7778:30;:::i;:::-;7681:133;;;;:::o;7820:323::-;7876:6;7925:2;7913:9;7904:7;7900:23;7896:32;7893:119;;;7931:79;;:::i;:::-;7893:119;8051:1;8076:50;8118:7;8109:6;8098:9;8094:22;8076:50;:::i;:::-;8066:60;;8022:114;7820:323;;;;:::o;8149:329::-;8208:6;8257:2;8245:9;8236:7;8232:23;8228:32;8225:119;;;8263:79;;:::i;:::-;8225:119;8383:1;8408:53;8453:7;8444:6;8433:9;8429:22;8408:53;:::i;:::-;8398:63;;8354:117;8149:329;;;;:::o;8484:138::-;8565:32;8591:5;8565:32;:::i;:::-;8558:5;8555:43;8545:71;;8612:1;8609;8602:12;8545:71;8484:138;:::o;8628:155::-;8682:5;8720:6;8707:20;8698:29;;8736:41;8771:5;8736:41;:::i;:::-;8628:155;;;;:::o;8789:506::-;8873:6;8881;8930:2;8918:9;8909:7;8905:23;8901:32;8898:119;;;8936:79;;:::i;:::-;8898:119;9056:1;9081:61;9134:7;9125:6;9114:9;9110:22;9081:61;:::i;:::-;9071:71;;9027:125;9191:2;9217:61;9270:7;9261:6;9250:9;9246:22;9217:61;:::i;:::-;9207:71;;9162:126;8789:506;;;;;:::o;9301:117::-;9410:1;9407;9400:12;9424:117;9533:1;9530;9523:12;9547:117;9656:1;9653;9646:12;9687:568;9760:8;9770:6;9820:3;9813:4;9805:6;9801:17;9797:27;9787:122;;9828:79;;:::i;:::-;9787:122;9941:6;9928:20;9918:30;;9971:18;9963:6;9960:30;9957:117;;;9993:79;;:::i;:::-;9957:117;10107:4;10099:6;10095:17;10083:29;;10161:3;10153:4;10145:6;10141:17;10131:8;10127:32;10124:41;10121:128;;;10168:79;;:::i;:::-;10121:128;9687:568;;;;;:::o;10261:698::-;10353:6;10361;10369;10418:2;10406:9;10397:7;10393:23;10389:32;10386:119;;;10424:79;;:::i;:::-;10386:119;10572:1;10561:9;10557:17;10544:31;10602:18;10594:6;10591:30;10588:117;;;10624:79;;:::i;:::-;10588:117;10737:80;10809:7;10800:6;10789:9;10785:22;10737:80;:::i;:::-;10719:98;;;;10515:312;10866:2;10892:50;10934:7;10925:6;10914:9;10910:22;10892:50;:::i;:::-;10882:60;;10837:115;10261:698;;;;;:::o;10965:474::-;11033:6;11041;11090:2;11078:9;11069:7;11065:23;11061:32;11058:119;;;11096:79;;:::i;:::-;11058:119;11216:1;11241:53;11286:7;11277:6;11266:9;11262:22;11241:53;:::i;:::-;11231:63;;11187:117;11343:2;11369:53;11414:7;11405:6;11394:9;11390:22;11369:53;:::i;:::-;11359:63;;11314:118;10965:474;;;;;:::o;11445:182::-;11585:34;11581:1;11573:6;11569:14;11562:58;11445:182;:::o;11633:366::-;11775:3;11796:67;11860:2;11855:3;11796:67;:::i;:::-;11789:74;;11872:93;11961:3;11872:93;:::i;:::-;11990:2;11985:3;11981:12;11974:19;;11633:366;;;:::o;12005:419::-;12171:4;12209:2;12198:9;12194:18;12186:26;;12258:9;12252:4;12248:20;12244:1;12233:9;12229:17;12222:47;12286:131;12412:4;12286:131;:::i;:::-;12278:139;;12005:419;;;:::o;12430:229::-;12570:34;12566:1;12558:6;12554:14;12547:58;12639:12;12634:2;12626:6;12622:15;12615:37;12430:229;:::o;12665:366::-;12807:3;12828:67;12892:2;12887:3;12828:67;:::i;:::-;12821:74;;12904:93;12993:3;12904:93;:::i;:::-;13022:2;13017:3;13013:12;13006:19;;12665:366;;;:::o;13037:419::-;13203:4;13241:2;13230:9;13226:18;13218:26;;13290:9;13284:4;13280:20;13276:1;13265:9;13261:17;13254:47;13318:131;13444:4;13318:131;:::i;:::-;13310:139;;13037:419;;;:::o;13462:230::-;13602:34;13598:1;13590:6;13586:14;13579:58;13671:13;13666:2;13658:6;13654:15;13647:38;13462:230;:::o;13698:366::-;13840:3;13861:67;13925:2;13920:3;13861:67;:::i;:::-;13854:74;;13937:93;14026:3;13937:93;:::i;:::-;14055:2;14050:3;14046:12;14039:19;;13698:366;;;:::o;14070:419::-;14236:4;14274:2;14263:9;14259:18;14251:26;;14323:9;14317:4;14313:20;14309:1;14298:9;14294:17;14287:47;14351:131;14477:4;14351:131;:::i;:::-;14343:139;;14070:419;;;:::o;14495:182::-;14635:34;14631:1;14623:6;14619:14;14612:58;14495:182;:::o;14683:366::-;14825:3;14846:67;14910:2;14905:3;14846:67;:::i;:::-;14839:74;;14922:93;15011:3;14922:93;:::i;:::-;15040:2;15035:3;15031:12;15024:19;;14683:366;;;:::o;15055:419::-;15221:4;15259:2;15248:9;15244:18;15236:26;;15308:9;15302:4;15298:20;15294:1;15283:9;15279:17;15272:47;15336:131;15462:4;15336:131;:::i;:::-;15328:139;;15055:419;;;:::o;15480:180::-;15528:77;15525:1;15518:88;15625:4;15622:1;15615:15;15649:4;15646:1;15639:15;15666:180;15714:77;15711:1;15704:88;15811:4;15808:1;15801:15;15835:4;15832:1;15825:15;15852:233;15891:3;15914:24;15932:5;15914:24;:::i;:::-;15905:33;;15960:66;15953:5;15950:77;15947:103;;;16030:18;;:::i;:::-;15947:103;16077:1;16070:5;16066:13;16059:20;;15852:233;;;:::o;16091:222::-;16231:34;16227:1;16219:6;16215:14;16208:58;16300:5;16295:2;16287:6;16283:15;16276:30;16091:222;:::o;16319:366::-;16461:3;16482:67;16546:2;16541:3;16482:67;:::i;:::-;16475:74;;16558:93;16647:3;16558:93;:::i;:::-;16676:2;16671:3;16667:12;16660:19;;16319:366;;;:::o;16691:419::-;16857:4;16895:2;16884:9;16880:18;16872:26;;16944:9;16938:4;16934:20;16930:1;16919:9;16915:17;16908:47;16972:131;17098:4;16972:131;:::i;:::-;16964:139;;16691:419;;;:::o;17116:225::-;17256:34;17252:1;17244:6;17240:14;17233:58;17325:8;17320:2;17312:6;17308:15;17301:33;17116:225;:::o;17347:366::-;17489:3;17510:67;17574:2;17569:3;17510:67;:::i;:::-;17503:74;;17586:93;17675:3;17586:93;:::i;:::-;17704:2;17699:3;17695:12;17688:19;;17347:366;;;:::o;17719:419::-;17885:4;17923:2;17912:9;17908:18;17900:26;;17972:9;17966:4;17962:20;17958:1;17947:9;17943:17;17936:47;18000:131;18126:4;18000:131;:::i;:::-;17992:139;;17719:419;;;:::o;18144:223::-;18284:34;18280:1;18272:6;18268:14;18261:58;18353:6;18348:2;18340:6;18336:15;18329:31;18144:223;:::o;18373:366::-;18515:3;18536:67;18600:2;18595:3;18536:67;:::i;:::-;18529:74;;18612:93;18701:3;18612:93;:::i;:::-;18730:2;18725:3;18721:12;18714:19;;18373:366;;;:::o;18745:419::-;18911:4;18949:2;18938:9;18934:18;18926:26;;18998:9;18992:4;18988:20;18984:1;18973:9;18969:17;18962:47;19026:131;19152:4;19026:131;:::i;:::-;19018:139;;18745:419;;;:::o;19170:221::-;19310:34;19306:1;19298:6;19294:14;19287:58;19379:4;19374:2;19366:6;19362:15;19355:29;19170:221;:::o;19397:366::-;19539:3;19560:67;19624:2;19619:3;19560:67;:::i;:::-;19553:74;;19636:93;19725:3;19636:93;:::i;:::-;19754:2;19749:3;19745:12;19738:19;;19397:366;;;:::o;19769:419::-;19935:4;19973:2;19962:9;19958:18;19950:26;;20022:9;20016:4;20012:20;20008:1;19997:9;19993:17;19986:47;20050:131;20176:4;20050:131;:::i;:::-;20042:139;;19769:419;;;:::o;20194:224::-;20334:34;20330:1;20322:6;20318:14;20311:58;20403:7;20398:2;20390:6;20386:15;20379:32;20194:224;:::o;20424:366::-;20566:3;20587:67;20651:2;20646:3;20587:67;:::i;:::-;20580:74;;20663:93;20752:3;20663:93;:::i;:::-;20781:2;20776:3;20772:12;20765:19;;20424:366;;;:::o;20796:419::-;20962:4;21000:2;20989:9;20985:18;20977:26;;21049:9;21043:4;21039:20;21035:1;21024:9;21020:17;21013:47;21077:131;21203:4;21077:131;:::i;:::-;21069:139;;20796:419;;;:::o;21221:222::-;21361:34;21357:1;21349:6;21345:14;21338:58;21430:5;21425:2;21417:6;21413:15;21406:30;21221:222;:::o;21449:366::-;21591:3;21612:67;21676:2;21671:3;21612:67;:::i;:::-;21605:74;;21688:93;21777:3;21688:93;:::i;:::-;21806:2;21801:3;21797:12;21790:19;;21449:366;;;:::o;21821:419::-;21987:4;22025:2;22014:9;22010:18;22002:26;;22074:9;22068:4;22064:20;22060:1;22049:9;22045:17;22038:47;22102:131;22228:4;22102:131;:::i;:::-;22094:139;;21821:419;;;:::o;22246:228::-;22386:34;22382:1;22374:6;22370:14;22363:58;22455:11;22450:2;22442:6;22438:15;22431:36;22246:228;:::o;22480:366::-;22622:3;22643:67;22707:2;22702:3;22643:67;:::i;:::-;22636:74;;22719:93;22808:3;22719:93;:::i;:::-;22837:2;22832:3;22828:12;22821:19;;22480:366;;;:::o;22852:419::-;23018:4;23056:2;23045:9;23041:18;23033:26;;23105:9;23099:4;23095:20;23091:1;23080:9;23076:17;23069:47;23133:131;23259:4;23133:131;:::i;:::-;23125:139;;22852:419;;;:::o;23277:250::-;23417:34;23413:1;23405:6;23401:14;23394:58;23486:33;23481:2;23473:6;23469:15;23462:58;23277:250;:::o;23533:366::-;23675:3;23696:67;23760:2;23755:3;23696:67;:::i;:::-;23689:74;;23772:93;23861:3;23772:93;:::i;:::-;23890:2;23885:3;23881:12;23874:19;;23533:366;;;:::o;23905:419::-;24071:4;24109:2;24098:9;24094:18;24086:26;;24158:9;24152:4;24148:20;24144:1;24133:9;24129:17;24122:47;24186:131;24312:4;24186:131;:::i;:::-;24178:139;;23905:419;;;:::o;24330:178::-;24470:30;24466:1;24458:6;24454:14;24447:54;24330:178;:::o;24514:366::-;24656:3;24677:67;24741:2;24736:3;24677:67;:::i;:::-;24670:74;;24753:93;24842:3;24753:93;:::i;:::-;24871:2;24866:3;24862:12;24855:19;;24514:366;;;:::o;24886:419::-;25052:4;25090:2;25079:9;25075:18;25067:26;;25139:9;25133:4;25129:20;25125:1;25114:9;25110:17;25103:47;25167:131;25293:4;25167:131;:::i;:::-;25159:139;;24886:419;;;:::o;25311:222::-;25451:34;25447:1;25439:6;25435:14;25428:58;25520:5;25515:2;25507:6;25503:15;25496:30;25311:222;:::o;25539:366::-;25681:3;25702:67;25766:2;25761:3;25702:67;:::i;:::-;25695:74;;25778:93;25867:3;25778:93;:::i;:::-;25896:2;25891:3;25887:12;25880:19;;25539:366;;;:::o;25911:419::-;26077:4;26115:2;26104:9;26100:18;26092:26;;26164:9;26158:4;26154:20;26150:1;26139:9;26135:17;26128:47;26192:131;26318:4;26192:131;:::i;:::-;26184:139;;25911:419;;;:::o;26336:305::-;26376:3;26395:20;26413:1;26395:20;:::i;:::-;26390:25;;26429:20;26447:1;26429:20;:::i;:::-;26424:25;;26583:1;26515:66;26511:74;26508:1;26505:81;26502:107;;;26589:18;;:::i;:::-;26502:107;26633:1;26630;26626:9;26619:16;;26336:305;;;;:::o;26647:222::-;26787:34;26783:1;26775:6;26771:14;26764:58;26856:5;26851:2;26843:6;26839:15;26832:30;26647:222;:::o;26875:366::-;27017:3;27038:67;27102:2;27097:3;27038:67;:::i;:::-;27031:74;;27114:93;27203:3;27114:93;:::i;:::-;27232:2;27227:3;27223:12;27216:19;;26875:366;;;:::o;27247:419::-;27413:4;27451:2;27440:9;27436:18;27428:26;;27500:9;27494:4;27490:20;27486:1;27475:9;27471:17;27464:47;27528:131;27654:4;27528:131;:::i;:::-;27520:139;;27247:419;;;:::o;27672:191::-;27712:4;27732:20;27750:1;27732:20;:::i;:::-;27727:25;;27766:20;27784:1;27766:20;:::i;:::-;27761:25;;27805:1;27802;27799:8;27796:34;;;27810:18;;:::i;:::-;27796:34;27855:1;27852;27848:9;27840:17;;27672:191;;;;:::o;27869:348::-;27909:7;27932:20;27950:1;27932:20;:::i;:::-;27927:25;;27966:20;27984:1;27966:20;:::i;:::-;27961:25;;28154:1;28086:66;28082:74;28079:1;28076:81;28071:1;28064:9;28057:17;28053:105;28050:131;;;28161:18;;:::i;:::-;28050:131;28209:1;28206;28202:9;28191:20;;27869:348;;;;:::o;28223:180::-;28271:77;28268:1;28261:88;28368:4;28365:1;28358:15;28392:4;28389:1;28382:15;28409:185;28449:1;28466:20;28484:1;28466:20;:::i;:::-;28461:25;;28500:20;28518:1;28500:20;:::i;:::-;28495:25;;28539:1;28529:35;;28544:18;;:::i;:::-;28529:35;28586:1;28583;28579:9;28574:14;;28409:185;;;;:::o;28600:229::-;28740:34;28736:1;28728:6;28724:14;28717:58;28809:12;28804:2;28796:6;28792:15;28785:37;28600:229;:::o;28835:366::-;28977:3;28998:67;29062:2;29057:3;28998:67;:::i;:::-;28991:74;;29074:93;29163:3;29074:93;:::i;:::-;29192:2;29187:3;29183:12;29176:19;;28835:366;;;:::o;29207:419::-;29373:4;29411:2;29400:9;29396:18;29388:26;;29460:9;29454:4;29450:20;29446:1;29435:9;29431:17;29424:47;29488:131;29614:4;29488:131;:::i;:::-;29480:139;;29207:419;;;:::o;29632:180::-;29680:77;29677:1;29670:88;29777:4;29774:1;29767:15;29801:4;29798:1;29791:15;29818:143;29875:5;29906:6;29900:13;29891:22;;29922:33;29949:5;29922:33;:::i;:::-;29818:143;;;;:::o;29967:351::-;30037:6;30086:2;30074:9;30065:7;30061:23;30057:32;30054:119;;;30092:79;;:::i;:::-;30054:119;30212:1;30237:64;30293:7;30284:6;30273:9;30269:22;30237:64;:::i;:::-;30227:74;;30183:128;29967:351;;;;:::o;30324:85::-;30369:7;30398:5;30387:16;;30324:85;;;:::o;30415:158::-;30473:9;30506:61;30524:42;30533:32;30559:5;30533:32;:::i;:::-;30524:42;:::i;:::-;30506:61;:::i;:::-;30493:74;;30415:158;;;:::o;30579:147::-;30674:45;30713:5;30674:45;:::i;:::-;30669:3;30662:58;30579:147;;:::o;30732:114::-;30799:6;30833:5;30827:12;30817:22;;30732:114;;;:::o;30852:184::-;30951:11;30985:6;30980:3;30973:19;31025:4;31020:3;31016:14;31001:29;;30852:184;;;;:::o;31042:132::-;31109:4;31132:3;31124:11;;31162:4;31157:3;31153:14;31145:22;;31042:132;;;:::o;31180:108::-;31257:24;31275:5;31257:24;:::i;:::-;31252:3;31245:37;31180:108;;:::o;31294:179::-;31363:10;31384:46;31426:3;31418:6;31384:46;:::i;:::-;31462:4;31457:3;31453:14;31439:28;;31294:179;;;;:::o;31479:113::-;31549:4;31581;31576:3;31572:14;31564:22;;31479:113;;;:::o;31628:732::-;31747:3;31776:54;31824:5;31776:54;:::i;:::-;31846:86;31925:6;31920:3;31846:86;:::i;:::-;31839:93;;31956:56;32006:5;31956:56;:::i;:::-;32035:7;32066:1;32051:284;32076:6;32073:1;32070:13;32051:284;;;32152:6;32146:13;32179:63;32238:3;32223:13;32179:63;:::i;:::-;32172:70;;32265:60;32318:6;32265:60;:::i;:::-;32255:70;;32111:224;32098:1;32095;32091:9;32086:14;;32051:284;;;32055:14;32351:3;32344:10;;31752:608;;;31628:732;;;;:::o;32366:831::-;32629:4;32667:3;32656:9;32652:19;32644:27;;32681:71;32749:1;32738:9;32734:17;32725:6;32681:71;:::i;:::-;32762:80;32838:2;32827:9;32823:18;32814:6;32762:80;:::i;:::-;32889:9;32883:4;32879:20;32874:2;32863:9;32859:18;32852:48;32917:108;33020:4;33011:6;32917:108;:::i;:::-;32909:116;;33035:72;33103:2;33092:9;33088:18;33079:6;33035:72;:::i;:::-;33117:73;33185:3;33174:9;33170:19;33161:6;33117:73;:::i;:::-;32366:831;;;;;;;;:::o;33203:177::-;33343:29;33339:1;33331:6;33327:14;33320:53;33203:177;:::o;33386:366::-;33528:3;33549:67;33613:2;33608:3;33549:67;:::i;:::-;33542:74;;33625:93;33714:3;33625:93;:::i;:::-;33743:2;33738:3;33734:12;33727:19;;33386:366;;;:::o;33758:419::-;33924:4;33962:2;33951:9;33947:18;33939:26;;34011:9;34005:4;34001:20;33997:1;33986:9;33982:17;33975:47;34039:131;34165:4;34039:131;:::i;:::-;34031:139;;33758:419;;;:::o;34183:220::-;34323:34;34319:1;34311:6;34307:14;34300:58;34392:3;34387:2;34379:6;34375:15;34368:28;34183:220;:::o;34409:366::-;34551:3;34572:67;34636:2;34631:3;34572:67;:::i;:::-;34565:74;;34648:93;34737:3;34648:93;:::i;:::-;34766:2;34761:3;34757:12;34750:19;;34409:366;;;:::o;34781:419::-;34947:4;34985:2;34974:9;34970:18;34962:26;;35034:9;35028:4;35024:20;35020:1;35009:9;35005:17;34998:47;35062:131;35188:4;35062:131;:::i;:::-;35054:139;;34781:419;;;:::o
Swarm Source
ipfs://c0bae421548a57687f62558660823e93113a03a8e4d87c953eea0ff8fa427202
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.