ERC-20
Overview
Max Total Supply
100,000,000 MNRV
Holders
288
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
262,507.672723052 MNRVValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
MINERVA
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-09-05 */ /** https://t.me/MinervaWisdomBot_ERC https://twitter.com/MinervaERC https://minervabot.com/ **/ // SPDX-License-Identifier: MIT pragma solidity ^0.8.17; 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 MINERVA is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "Minerva Wisdom Bot"; string private constant _symbol = "MNRV"; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 100000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 5; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 5; //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; //Ratio uint16 receiver0Ratio = 1; uint16 receiver1Ratio = 2; uint16 receiver2Ratio = 2; uint16 receiverTotalRatio = receiver0Ratio + receiver1Ratio + receiver2Ratio; mapping(address => bool) public bots; mapping (address => uint256) public _buyMap; address payable public _feeReceiver0 = payable(0xb4cB418A2fD53350BeE0A1e0548A1e06849989d8); // Marketing address payable private _feeReceiver1 = payable(0x94Af6Be53C1185b1E917638AaC6061468af90a41); // Deployer address payable private _feeReceiver2 = payable(0x4182D2e7006c40885BDCBBE4A02386705471f079); // Rev Share IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 1000000 * 10**9; uint256 public _maxWalletSize = 1000000 * 10**9; uint256 public _swapTokensAtAmount = 50000 * 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[_feeReceiver0] = true; _isExcludedFromFee[_feeReceiver1] = true; _isExcludedFromFee[_feeReceiver2] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && to != owner()) { //Trade start check if (!tradingOpen) { require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled"); } require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } bool takeFee = true; //Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { //Set Fee for Buys if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _feeReceiver0.transfer(amount * receiver0Ratio / receiverTotalRatio); _feeReceiver1.transfer(amount * receiver1Ratio / receiverTotalRatio); _feeReceiver2.transfer(address(this).balance); } function beginTrading() public onlyOwner { tradingOpen = true; } function manualswap() external { require(_msgSender() == _feeReceiver1 || _msgSender() == _feeReceiver2); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _feeReceiver1 || _msgSender() == _feeReceiver2); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function blockBots(address[] memory bots_) public onlyOwner { for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function unblockBot(address notbot) public onlyOwner { bots[notbot] = false; } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { require(redisFeeOnBuy >= 0 && redisFeeOnBuy <= 4, "Buy rewards must be between 0% and 4%"); require(taxFeeOnBuy >= 0 && taxFeeOnBuy <= 99, "Buy tax must be between 0% and 99%"); require(redisFeeOnSell >= 0 && redisFeeOnSell <= 4, "Sell rewards must be between 0% and 4%"); require(taxFeeOnSell >= 0 && taxFeeOnSell <= 99, "Sell tax must be between 0% and 99%"); _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } //Set maximum transaction function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; } function removeLimits() external onlyOwner { _maxWalletSize = _tTotal; _maxTxAmount = _tTotal; } function adjustRatio(uint16 r0, uint16 r1, uint16 r2) external onlyOwner { receiver0Ratio = r0; receiver1Ratio = r1; receiver2Ratio = r2; receiverTotalRatio = receiver0Ratio + receiver1Ratio + receiver2Ratio; } function adjustReceivers(address r0, address r1, address r2) external onlyOwner { _feeReceiver0 = payable(r0); _feeReceiver1 = payable(r1); _feeReceiver2 = payable(r2); } 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":"_feeReceiver0","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":[{"internalType":"uint16","name":"r0","type":"uint16"},{"internalType":"uint16","name":"r1","type":"uint16"},{"internalType":"uint16","name":"r2","type":"uint16"}],"name":"adjustRatio","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"r0","type":"address"},{"internalType":"address","name":"r1","type":"address"},{"internalType":"address","name":"r2","type":"address"}],"name":"adjustReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"beginTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"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":[],"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
608060405267016345785d8a00006000196200001c91906200089f565b6000196200002b919062000906565b600655600060085560056009556000600a556005600b55600a54600c55600b54600d55600c54600e55600d54600f556001601060006101000a81548161ffff021916908361ffff1602179055506002601060026101000a81548161ffff021916908361ffff1602179055506002601060046101000a81548161ffff021916908361ffff160217905550601060049054906101000a900461ffff16601060029054906101000a900461ffff16601060009054906101000a900461ffff16620000f391906200094f565b620000ff91906200094f565b601060066101000a81548161ffff021916908361ffff16021790555073b4cb418a2fd53350bee0a1e0548a1e06849989d8601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507394af6be53c1185b1e917638aac6061468af90a41601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734182d2e7006c40885bdcbbe4a02386705471f079601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601760156101000a81548160ff0219169083151502179055506001601760166101000a81548160ff02191690831515021790555066038d7ea4c6800060185566038d7ea4c68000601955652d79883d2000601a553480156200027d57600080fd5b506000620002906200083560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460026000620003456200083560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000429573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200044f9190620009f6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004dd9190620009f6565b6040518363ffffffff1660e01b8152600401620004fc92919062000a39565b6020604051808303816000875af11580156200051c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005429190620009f6565b601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620005986200083d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620007bf6200083560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a000060405162000826919062000a77565b60405180910390a35062000a94565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620008ac8262000866565b9150620008b98362000866565b925082620008cc57620008cb62000870565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620009138262000866565b9150620009208362000866565b92508282039050818111156200093b576200093a620008d7565b5b92915050565b600061ffff82169050919050565b60006200095c8262000941565b9150620009698362000941565b9250828201905061ffff811115620009865762000985620008d7565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009be8262000991565b9050919050565b620009d081620009b1565b8114620009dc57600080fd5b50565b600081519050620009f081620009c5565b92915050565b60006020828403121562000a0f5762000a0e6200098c565b5b600062000a1f84828501620009df565b91505092915050565b62000a3381620009b1565b82525050565b600060408201905062000a50600083018562000a28565b62000a5f602083018462000a28565b9392505050565b62000a718162000866565b82525050565b600060208201905062000a8e600083018462000a66565b92915050565b6147eb8062000aa46000396000f3fe6080604052600436106101fc5760003560e01c80637d1db4a51161010d578063a9059cbb116100a0578063c492f0461161006f578063c492f046146106e1578063dd62ed3e1461070a578063ea1644d514610747578063ec424a7714610770578063f2fde38b1461079957610203565b8063a9059cbb14610639578063bfd7928414610676578063c3c8cd80146106b3578063c408c245146106ca57610203565b806391c65644116100dc57806391c656441461059357806395d89b41146105bc57806398a5c315146105e7578063a2a957bb1461061057610203565b80637d1db4a5146104d55780637f2feddc146105005780638da5cb5b1461053d5780638f9a55c01461056857610203565b80633daaa24f116101905780636fc3eaec1161015f5780636fc3eaec1461042a57806370a0823114610441578063715018a61461047e57806374010ece14610495578063751039fc146104be57610203565b80633daaa24f1461038257806349bd5a5e146103ad5780636b999053146103d85780636d8aa8f81461040157610203565b806318160ddd116101cc57806318160ddd146102c457806323b872dd146102ef5780632fd689e31461032c578063313ce5671461035757610203565b8062b8cf2a1461020857806306fdde0314610231578063095ea7b31461025c5780631694505e1461029957610203565b3661020357005b600080fd5b34801561021457600080fd5b5061022f600480360381019061022a9190613421565b6107c2565b005b34801561023d57600080fd5b506102466108ec565b60405161025391906134e9565b60405180910390f35b34801561026857600080fd5b50610283600480360381019061027e9190613541565b610929565b604051610290919061359c565b60405180910390f35b3480156102a557600080fd5b506102ae610947565b6040516102bb9190613616565b60405180910390f35b3480156102d057600080fd5b506102d961096d565b6040516102e69190613640565b60405180910390f35b3480156102fb57600080fd5b506103166004803603810190610311919061365b565b61097d565b604051610323919061359c565b60405180910390f35b34801561033857600080fd5b50610341610a56565b60405161034e9190613640565b60405180910390f35b34801561036357600080fd5b5061036c610a5c565b60405161037991906136ca565b60405180910390f35b34801561038e57600080fd5b50610397610a65565b6040516103a49190613706565b60405180910390f35b3480156103b957600080fd5b506103c2610a8b565b6040516103cf9190613730565b60405180910390f35b3480156103e457600080fd5b506103ff60048036038101906103fa919061374b565b610ab1565b005b34801561040d57600080fd5b50610428600480360381019061042391906137a4565b610ba1565b005b34801561043657600080fd5b5061043f610c53565b005b34801561044d57600080fd5b506104686004803603810190610463919061374b565b610d24565b6040516104759190613640565b60405180910390f35b34801561048a57600080fd5b50610493610d75565b005b3480156104a157600080fd5b506104bc60048036038101906104b791906137d1565b610ec8565b005b3480156104ca57600080fd5b506104d3610f67565b005b3480156104e157600080fd5b506104ea61101c565b6040516104f79190613640565b60405180910390f35b34801561050c57600080fd5b506105276004803603810190610522919061374b565b611022565b6040516105349190613640565b60405180910390f35b34801561054957600080fd5b5061055261103a565b60405161055f9190613730565b60405180910390f35b34801561057457600080fd5b5061057d611063565b60405161058a9190613640565b60405180910390f35b34801561059f57600080fd5b506105ba60048036038101906105b59190613838565b611069565b005b3480156105c857600080fd5b506105d16111bd565b6040516105de91906134e9565b60405180910390f35b3480156105f357600080fd5b5061060e600480360381019061060991906137d1565b6111fa565b005b34801561061c57600080fd5b506106376004803603810190610632919061388b565b611299565b005b34801561064557600080fd5b50610660600480360381019061065b9190613541565b611494565b60405161066d919061359c565b60405180910390f35b34801561068257600080fd5b5061069d6004803603810190610698919061374b565b6114b2565b6040516106aa919061359c565b60405180910390f35b3480156106bf57600080fd5b506106c86114d2565b005b3480156106d657600080fd5b506106df6115ab565b005b3480156106ed57600080fd5b506107086004803603810190610703919061394d565b61165d565b005b34801561071657600080fd5b50610731600480360381019061072c91906139ad565b611797565b60405161073e9190613640565b60405180910390f35b34801561075357600080fd5b5061076e600480360381019061076991906137d1565b61181e565b005b34801561077c57600080fd5b50610797600480360381019061079291906139ed565b6118bd565b005b3480156107a557600080fd5b506107c060048036038101906107bb919061374b565b611a1a565b005b6107ca611bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610857576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084e90613a8c565b60405180910390fd5b60005b81518110156108e85760016011600084848151811061087c5761087b613aac565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108e090613b0a565b91505061085a565b5050565b60606040518060400160405280601281526020017f4d696e6572766120576973646f6d20426f740000000000000000000000000000815250905090565b600061093d610936611bdb565b8484611be3565b6001905092915050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600067016345785d8a0000905090565b600061098a848484611dac565b610a4b84610996611bdb565b610a468560405180606001604052806028815260200161478e60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109fc611bdb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126319092919063ffffffff16565b611be3565b600190509392505050565b601a5481565b60006009905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ab9611bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3d90613a8c565b60405180910390fd5b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610ba9611bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2d90613a8c565b60405180910390fd5b80601760166101000a81548160ff02191690831515021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c94611bdb565b73ffffffffffffffffffffffffffffffffffffffff161480610d0a5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cf2611bdb565b73ffffffffffffffffffffffffffffffffffffffff16145b610d1357600080fd5b6000479050610d2181612695565b50565b6000610d6e600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461284f565b9050919050565b610d7d611bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0190613a8c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ed0611bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5490613a8c565b60405180910390fd5b8060188190555050565b610f6f611bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ffc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff390613a8c565b60405180910390fd5b67016345785d8a000060198190555067016345785d8a0000601881905550565b60185481565b60126020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60195481565b611071611bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f590613a8c565b60405180910390fd5b82601060006101000a81548161ffff021916908361ffff16021790555081601060026101000a81548161ffff021916908361ffff16021790555080601060046101000a81548161ffff021916908361ffff160217905550601060049054906101000a900461ffff16601060029054906101000a900461ffff16601060009054906101000a900461ffff166111929190613b52565b61119c9190613b52565b601060066101000a81548161ffff021916908361ffff160217905550505050565b60606040518060400160405280600481526020017f4d4e525600000000000000000000000000000000000000000000000000000000815250905090565b611202611bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461128f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128690613a8c565b60405180910390fd5b80601a8190555050565b6112a1611bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461132e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132590613a8c565b60405180910390fd5b60008410158015611340575060048411155b61137f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137690613bfa565b60405180910390fd5b60008210158015611391575060638211155b6113d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c790613c8c565b60405180910390fd5b600083101580156113e2575060048311155b611421576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141890613d1e565b60405180910390fd5b60008110158015611433575060638111155b611472576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146990613db0565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b60006114a86114a1611bdb565b8484611dac565b6001905092915050565b60116020528060005260406000206000915054906101000a900460ff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611513611bdb565b73ffffffffffffffffffffffffffffffffffffffff1614806115895750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611571611bdb565b73ffffffffffffffffffffffffffffffffffffffff16145b61159257600080fd5b600061159d30610d24565b90506115a8816128bd565b50565b6115b3611bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611640576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163790613a8c565b60405180910390fd5b6001601760146101000a81548160ff021916908315150217905550565b611665611bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e990613a8c565b60405180910390fd5b60005b8383905081101561179157816005600086868581811061171857611717613aac565b5b905060200201602081019061172d919061374b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061178990613b0a565b9150506116f5565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611826611bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118aa90613a8c565b60405180910390fd5b8060198190555050565b6118c5611bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611952576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194990613a8c565b60405180910390fd5b82601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b611a22611bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611aaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa690613a8c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1590613e42565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4990613ed4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611cc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb890613f66565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d9f9190613640565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1290613ff8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e819061408a565b60405180910390fd5b60008111611ecd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec49061411c565b60405180910390fd5b611ed561103a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f435750611f1361103a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561233057601760149054906101000a900460ff16611fd257611f6461103a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc8906141ae565b60405180910390fd5b5b601854811115612017576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200e9061421a565b60405180910390fd5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120bb5750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6120fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f1906142ac565b60405180910390fd5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146121a7576019548161215c84610d24565b61216691906142cc565b106121a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219d90614372565b60405180910390fd5b5b60006121b230610d24565b90506000601a54821015905060185482106121cd5760185491505b8080156121e75750601760159054906101000a900460ff16155b80156122415750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156122595750601760169054906101000a900460ff165b80156122af5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123055750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561232d57612313826128bd565b6000479050600081111561232b5761232a47612695565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123d75750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061248a5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156124895750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15612498576000905061261f565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156125435750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561255b57600854600c81905550600954600d819055505b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156126065750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561261e57600a54600c81905550600b54600d819055505b5b61262b84848484612b36565b50505050565b6000838311158290612679576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267091906134e9565b60405180910390fd5b50600083856126889190614392565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc601060069054906101000a900461ffff1661ffff16601060009054906101000a900461ffff1661ffff168461270691906143c6565b6127109190614437565b9081150290604051600060405180830381858888f1935050505015801561273b573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc601060069054906101000a900461ffff1661ffff16601060029054906101000a900461ffff1661ffff16846127ad91906143c6565b6127b79190614437565b9081150290604051600060405180830381858888f193505050501580156127e2573d6000803e3d6000fd5b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561284b573d6000803e3d6000fd5b5050565b6000600654821115612896576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288d906144da565b60405180910390fd5b60006128a0612b63565b90506128b58184612b8e90919063ffffffff16565b915050919050565b6001601760156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156128f5576128f4613280565b5b6040519080825280602002602001820160405280156129235781602001602082028036833780820191505090505b509050308160008151811061293b5761293a613aac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a06919061450f565b81600181518110612a1a57612a19613aac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612a8130601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611be3565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612ae5959493929190614635565b600060405180830381600087803b158015612aff57600080fd5b505af1158015612b13573d6000803e3d6000fd5b50505050506000601760156101000a81548160ff02191690831515021790555050565b80612b4457612b43612bd8565b5b612b4f848484612c15565b80612b5d57612b5c612de0565b5b50505050565b6000806000612b70612df4565b91509150612b878183612b8e90919063ffffffff16565b9250505090565b6000612bd083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e53565b905092915050565b6000600c54148015612bec57506000600d54145b612c1357600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612c2787612eb6565b955095509550955095509550612c8586600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f1e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d1a85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6890919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d6681612fc6565b612d708483613083565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612dcd9190613640565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600067016345785d8a00009050612e2867016345785d8a0000600654612b8e90919063ffffffff16565b821015612e465760065467016345785d8a0000935093505050612e4f565b81819350935050505b9091565b60008083118290612e9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e9191906134e9565b60405180910390fd5b5060008385612ea99190614437565b9050809150509392505050565b6000806000806000806000806000612ed38a600c54600d546130bd565b9250925092506000612ee3612b63565b90506000806000612ef68e878787613153565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612f6083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612631565b905092915050565b6000808284612f7791906142cc565b905083811015612fbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fb3906146db565b60405180910390fd5b8091505092915050565b6000612fd0612b63565b90506000612fe782846131dc90919063ffffffff16565b905061303b81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6890919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61309882600654612f1e90919063ffffffff16565b6006819055506130b381600754612f6890919063ffffffff16565b6007819055505050565b6000806000806130e960646130db888a6131dc90919063ffffffff16565b612b8e90919063ffffffff16565b905060006131136064613105888b6131dc90919063ffffffff16565b612b8e90919063ffffffff16565b9050600061313c8261312e858c612f1e90919063ffffffff16565b612f1e90919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061316c85896131dc90919063ffffffff16565b9050600061318386896131dc90919063ffffffff16565b9050600061319a87896131dc90919063ffffffff16565b905060006131c3826131b58587612f1e90919063ffffffff16565b612f1e90919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083036131ee5760009050613250565b600082846131fc91906143c6565b905082848261320b9190614437565b1461324b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132429061476d565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6132b88261326f565b810181811067ffffffffffffffff821117156132d7576132d6613280565b5b80604052505050565b60006132ea613256565b90506132f682826132af565b919050565b600067ffffffffffffffff82111561331657613315613280565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006133578261332c565b9050919050565b6133678161334c565b811461337257600080fd5b50565b6000813590506133848161335e565b92915050565b600061339d613398846132fb565b6132e0565b905080838252602082019050602084028301858111156133c0576133bf613327565b5b835b818110156133e957806133d58882613375565b8452602084019350506020810190506133c2565b5050509392505050565b600082601f8301126134085761340761326a565b5b813561341884826020860161338a565b91505092915050565b60006020828403121561343757613436613260565b5b600082013567ffffffffffffffff81111561345557613454613265565b5b613461848285016133f3565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156134a4578082015181840152602081019050613489565b60008484015250505050565b60006134bb8261346a565b6134c58185613475565b93506134d5818560208601613486565b6134de8161326f565b840191505092915050565b6000602082019050818103600083015261350381846134b0565b905092915050565b6000819050919050565b61351e8161350b565b811461352957600080fd5b50565b60008135905061353b81613515565b92915050565b6000806040838503121561355857613557613260565b5b600061356685828601613375565b92505060206135778582860161352c565b9150509250929050565b60008115159050919050565b61359681613581565b82525050565b60006020820190506135b1600083018461358d565b92915050565b6000819050919050565b60006135dc6135d76135d28461332c565b6135b7565b61332c565b9050919050565b60006135ee826135c1565b9050919050565b6000613600826135e3565b9050919050565b613610816135f5565b82525050565b600060208201905061362b6000830184613607565b92915050565b61363a8161350b565b82525050565b60006020820190506136556000830184613631565b92915050565b60008060006060848603121561367457613673613260565b5b600061368286828701613375565b935050602061369386828701613375565b92505060406136a48682870161352c565b9150509250925092565b600060ff82169050919050565b6136c4816136ae565b82525050565b60006020820190506136df60008301846136bb565b92915050565b60006136f08261332c565b9050919050565b613700816136e5565b82525050565b600060208201905061371b60008301846136f7565b92915050565b61372a8161334c565b82525050565b60006020820190506137456000830184613721565b92915050565b60006020828403121561376157613760613260565b5b600061376f84828501613375565b91505092915050565b61378181613581565b811461378c57600080fd5b50565b60008135905061379e81613778565b92915050565b6000602082840312156137ba576137b9613260565b5b60006137c88482850161378f565b91505092915050565b6000602082840312156137e7576137e6613260565b5b60006137f58482850161352c565b91505092915050565b600061ffff82169050919050565b613815816137fe565b811461382057600080fd5b50565b6000813590506138328161380c565b92915050565b60008060006060848603121561385157613850613260565b5b600061385f86828701613823565b935050602061387086828701613823565b925050604061388186828701613823565b9150509250925092565b600080600080608085870312156138a5576138a4613260565b5b60006138b38782880161352c565b94505060206138c48782880161352c565b93505060406138d58782880161352c565b92505060606138e68782880161352c565b91505092959194509250565b600080fd5b60008083601f84011261390d5761390c61326a565b5b8235905067ffffffffffffffff81111561392a576139296138f2565b5b60208301915083602082028301111561394657613945613327565b5b9250929050565b60008060006040848603121561396657613965613260565b5b600084013567ffffffffffffffff81111561398457613983613265565b5b613990868287016138f7565b935093505060206139a38682870161378f565b9150509250925092565b600080604083850312156139c4576139c3613260565b5b60006139d285828601613375565b92505060206139e385828601613375565b9150509250929050565b600080600060608486031215613a0657613a05613260565b5b6000613a1486828701613375565b9350506020613a2586828701613375565b9250506040613a3686828701613375565b9150509250925092565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613a76602083613475565b9150613a8182613a40565b602082019050919050565b60006020820190508181036000830152613aa581613a69565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613b158261350b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613b4757613b46613adb565b5b600182019050919050565b6000613b5d826137fe565b9150613b68836137fe565b9250828201905061ffff811115613b8257613b81613adb565b5b92915050565b7f4275792072657761726473206d757374206265206265747765656e203025206160008201527f6e64203425000000000000000000000000000000000000000000000000000000602082015250565b6000613be4602583613475565b9150613bef82613b88565b604082019050919050565b60006020820190508181036000830152613c1381613bd7565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e64203960008201527f3925000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c76602283613475565b9150613c8182613c1a565b604082019050919050565b60006020820190508181036000830152613ca581613c69565b9050919050565b7f53656c6c2072657761726473206d757374206265206265747765656e2030252060008201527f616e642034250000000000000000000000000000000000000000000000000000602082015250565b6000613d08602683613475565b9150613d1382613cac565b604082019050919050565b60006020820190508181036000830152613d3781613cfb565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e642060008201527f3939250000000000000000000000000000000000000000000000000000000000602082015250565b6000613d9a602383613475565b9150613da582613d3e565b604082019050919050565b60006020820190508181036000830152613dc981613d8d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613e2c602683613475565b9150613e3782613dd0565b604082019050919050565b60006020820190508181036000830152613e5b81613e1f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613ebe602483613475565b9150613ec982613e62565b604082019050919050565b60006020820190508181036000830152613eed81613eb1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f50602283613475565b9150613f5b82613ef4565b604082019050919050565b60006020820190508181036000830152613f7f81613f43565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613fe2602583613475565b9150613fed82613f86565b604082019050919050565b6000602082019050818103600083015261401181613fd5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614074602383613475565b915061407f82614018565b604082019050919050565b600060208201905081810360008301526140a381614067565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614106602983613475565b9150614111826140aa565b604082019050919050565b60006020820190508181036000830152614135816140f9565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000614198603f83613475565b91506141a38261413c565b604082019050919050565b600060208201905081810360008301526141c78161418b565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000614204601c83613475565b915061420f826141ce565b602082019050919050565b60006020820190508181036000830152614233816141f7565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000614296602383613475565b91506142a18261423a565b604082019050919050565b600060208201905081810360008301526142c581614289565b9050919050565b60006142d78261350b565b91506142e28361350b565b92508282019050808211156142fa576142f9613adb565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b600061435c602383613475565b915061436782614300565b604082019050919050565b6000602082019050818103600083015261438b8161434f565b9050919050565b600061439d8261350b565b91506143a88361350b565b92508282039050818111156143c0576143bf613adb565b5b92915050565b60006143d18261350b565b91506143dc8361350b565b92508282026143ea8161350b565b9150828204841483151761440157614400613adb565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006144428261350b565b915061444d8361350b565b92508261445d5761445c614408565b5b828204905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006144c4602a83613475565b91506144cf82614468565b604082019050919050565b600060208201905081810360008301526144f3816144b7565b9050919050565b6000815190506145098161335e565b92915050565b60006020828403121561452557614524613260565b5b6000614533848285016144fa565b91505092915050565b6000819050919050565b600061456161455c6145578461453c565b6135b7565b61350b565b9050919050565b61457181614546565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6145ac8161334c565b82525050565b60006145be83836145a3565b60208301905092915050565b6000602082019050919050565b60006145e282614577565b6145ec8185614582565b93506145f783614593565b8060005b8381101561462857815161460f88826145b2565b975061461a836145ca565b9250506001810190506145fb565b5085935050505092915050565b600060a08201905061464a6000830188613631565b6146576020830187614568565b818103604083015261466981866145d7565b90506146786060830185613721565b6146856080830184613631565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006146c5601b83613475565b91506146d08261468f565b602082019050919050565b600060208201905081810360008301526146f4816146b8565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614757602183613475565b9150614762826146fb565b604082019050919050565b600060208201905081810360008301526147868161474a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204c754ee5731c71e3a7a5900d58467df5fd0feedc633373fb77a9672afa3606a664736f6c63430008110033
Deployed Bytecode
0x6080604052600436106101fc5760003560e01c80637d1db4a51161010d578063a9059cbb116100a0578063c492f0461161006f578063c492f046146106e1578063dd62ed3e1461070a578063ea1644d514610747578063ec424a7714610770578063f2fde38b1461079957610203565b8063a9059cbb14610639578063bfd7928414610676578063c3c8cd80146106b3578063c408c245146106ca57610203565b806391c65644116100dc57806391c656441461059357806395d89b41146105bc57806398a5c315146105e7578063a2a957bb1461061057610203565b80637d1db4a5146104d55780637f2feddc146105005780638da5cb5b1461053d5780638f9a55c01461056857610203565b80633daaa24f116101905780636fc3eaec1161015f5780636fc3eaec1461042a57806370a0823114610441578063715018a61461047e57806374010ece14610495578063751039fc146104be57610203565b80633daaa24f1461038257806349bd5a5e146103ad5780636b999053146103d85780636d8aa8f81461040157610203565b806318160ddd116101cc57806318160ddd146102c457806323b872dd146102ef5780632fd689e31461032c578063313ce5671461035757610203565b8062b8cf2a1461020857806306fdde0314610231578063095ea7b31461025c5780631694505e1461029957610203565b3661020357005b600080fd5b34801561021457600080fd5b5061022f600480360381019061022a9190613421565b6107c2565b005b34801561023d57600080fd5b506102466108ec565b60405161025391906134e9565b60405180910390f35b34801561026857600080fd5b50610283600480360381019061027e9190613541565b610929565b604051610290919061359c565b60405180910390f35b3480156102a557600080fd5b506102ae610947565b6040516102bb9190613616565b60405180910390f35b3480156102d057600080fd5b506102d961096d565b6040516102e69190613640565b60405180910390f35b3480156102fb57600080fd5b506103166004803603810190610311919061365b565b61097d565b604051610323919061359c565b60405180910390f35b34801561033857600080fd5b50610341610a56565b60405161034e9190613640565b60405180910390f35b34801561036357600080fd5b5061036c610a5c565b60405161037991906136ca565b60405180910390f35b34801561038e57600080fd5b50610397610a65565b6040516103a49190613706565b60405180910390f35b3480156103b957600080fd5b506103c2610a8b565b6040516103cf9190613730565b60405180910390f35b3480156103e457600080fd5b506103ff60048036038101906103fa919061374b565b610ab1565b005b34801561040d57600080fd5b50610428600480360381019061042391906137a4565b610ba1565b005b34801561043657600080fd5b5061043f610c53565b005b34801561044d57600080fd5b506104686004803603810190610463919061374b565b610d24565b6040516104759190613640565b60405180910390f35b34801561048a57600080fd5b50610493610d75565b005b3480156104a157600080fd5b506104bc60048036038101906104b791906137d1565b610ec8565b005b3480156104ca57600080fd5b506104d3610f67565b005b3480156104e157600080fd5b506104ea61101c565b6040516104f79190613640565b60405180910390f35b34801561050c57600080fd5b506105276004803603810190610522919061374b565b611022565b6040516105349190613640565b60405180910390f35b34801561054957600080fd5b5061055261103a565b60405161055f9190613730565b60405180910390f35b34801561057457600080fd5b5061057d611063565b60405161058a9190613640565b60405180910390f35b34801561059f57600080fd5b506105ba60048036038101906105b59190613838565b611069565b005b3480156105c857600080fd5b506105d16111bd565b6040516105de91906134e9565b60405180910390f35b3480156105f357600080fd5b5061060e600480360381019061060991906137d1565b6111fa565b005b34801561061c57600080fd5b506106376004803603810190610632919061388b565b611299565b005b34801561064557600080fd5b50610660600480360381019061065b9190613541565b611494565b60405161066d919061359c565b60405180910390f35b34801561068257600080fd5b5061069d6004803603810190610698919061374b565b6114b2565b6040516106aa919061359c565b60405180910390f35b3480156106bf57600080fd5b506106c86114d2565b005b3480156106d657600080fd5b506106df6115ab565b005b3480156106ed57600080fd5b506107086004803603810190610703919061394d565b61165d565b005b34801561071657600080fd5b50610731600480360381019061072c91906139ad565b611797565b60405161073e9190613640565b60405180910390f35b34801561075357600080fd5b5061076e600480360381019061076991906137d1565b61181e565b005b34801561077c57600080fd5b50610797600480360381019061079291906139ed565b6118bd565b005b3480156107a557600080fd5b506107c060048036038101906107bb919061374b565b611a1a565b005b6107ca611bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610857576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084e90613a8c565b60405180910390fd5b60005b81518110156108e85760016011600084848151811061087c5761087b613aac565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108e090613b0a565b91505061085a565b5050565b60606040518060400160405280601281526020017f4d696e6572766120576973646f6d20426f740000000000000000000000000000815250905090565b600061093d610936611bdb565b8484611be3565b6001905092915050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600067016345785d8a0000905090565b600061098a848484611dac565b610a4b84610996611bdb565b610a468560405180606001604052806028815260200161478e60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109fc611bdb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126319092919063ffffffff16565b611be3565b600190509392505050565b601a5481565b60006009905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ab9611bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3d90613a8c565b60405180910390fd5b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610ba9611bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2d90613a8c565b60405180910390fd5b80601760166101000a81548160ff02191690831515021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c94611bdb565b73ffffffffffffffffffffffffffffffffffffffff161480610d0a5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cf2611bdb565b73ffffffffffffffffffffffffffffffffffffffff16145b610d1357600080fd5b6000479050610d2181612695565b50565b6000610d6e600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461284f565b9050919050565b610d7d611bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0190613a8c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ed0611bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5490613a8c565b60405180910390fd5b8060188190555050565b610f6f611bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ffc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff390613a8c565b60405180910390fd5b67016345785d8a000060198190555067016345785d8a0000601881905550565b60185481565b60126020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60195481565b611071611bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f590613a8c565b60405180910390fd5b82601060006101000a81548161ffff021916908361ffff16021790555081601060026101000a81548161ffff021916908361ffff16021790555080601060046101000a81548161ffff021916908361ffff160217905550601060049054906101000a900461ffff16601060029054906101000a900461ffff16601060009054906101000a900461ffff166111929190613b52565b61119c9190613b52565b601060066101000a81548161ffff021916908361ffff160217905550505050565b60606040518060400160405280600481526020017f4d4e525600000000000000000000000000000000000000000000000000000000815250905090565b611202611bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461128f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128690613a8c565b60405180910390fd5b80601a8190555050565b6112a1611bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461132e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132590613a8c565b60405180910390fd5b60008410158015611340575060048411155b61137f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137690613bfa565b60405180910390fd5b60008210158015611391575060638211155b6113d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c790613c8c565b60405180910390fd5b600083101580156113e2575060048311155b611421576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141890613d1e565b60405180910390fd5b60008110158015611433575060638111155b611472576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146990613db0565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b60006114a86114a1611bdb565b8484611dac565b6001905092915050565b60116020528060005260406000206000915054906101000a900460ff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611513611bdb565b73ffffffffffffffffffffffffffffffffffffffff1614806115895750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611571611bdb565b73ffffffffffffffffffffffffffffffffffffffff16145b61159257600080fd5b600061159d30610d24565b90506115a8816128bd565b50565b6115b3611bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611640576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163790613a8c565b60405180910390fd5b6001601760146101000a81548160ff021916908315150217905550565b611665611bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e990613a8c565b60405180910390fd5b60005b8383905081101561179157816005600086868581811061171857611717613aac565b5b905060200201602081019061172d919061374b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061178990613b0a565b9150506116f5565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611826611bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118aa90613a8c565b60405180910390fd5b8060198190555050565b6118c5611bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611952576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194990613a8c565b60405180910390fd5b82601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b611a22611bdb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611aaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa690613a8c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1590613e42565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4990613ed4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611cc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb890613f66565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d9f9190613640565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1290613ff8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e819061408a565b60405180910390fd5b60008111611ecd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec49061411c565b60405180910390fd5b611ed561103a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f435750611f1361103a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561233057601760149054906101000a900460ff16611fd257611f6461103a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc8906141ae565b60405180910390fd5b5b601854811115612017576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200e9061421a565b60405180910390fd5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120bb5750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6120fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f1906142ac565b60405180910390fd5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146121a7576019548161215c84610d24565b61216691906142cc565b106121a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219d90614372565b60405180910390fd5b5b60006121b230610d24565b90506000601a54821015905060185482106121cd5760185491505b8080156121e75750601760159054906101000a900460ff16155b80156122415750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156122595750601760169054906101000a900460ff165b80156122af5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123055750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561232d57612313826128bd565b6000479050600081111561232b5761232a47612695565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123d75750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061248a5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156124895750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15612498576000905061261f565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156125435750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561255b57600854600c81905550600954600d819055505b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156126065750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561261e57600a54600c81905550600b54600d819055505b5b61262b84848484612b36565b50505050565b6000838311158290612679576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267091906134e9565b60405180910390fd5b50600083856126889190614392565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc601060069054906101000a900461ffff1661ffff16601060009054906101000a900461ffff1661ffff168461270691906143c6565b6127109190614437565b9081150290604051600060405180830381858888f1935050505015801561273b573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc601060069054906101000a900461ffff1661ffff16601060029054906101000a900461ffff1661ffff16846127ad91906143c6565b6127b79190614437565b9081150290604051600060405180830381858888f193505050501580156127e2573d6000803e3d6000fd5b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561284b573d6000803e3d6000fd5b5050565b6000600654821115612896576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288d906144da565b60405180910390fd5b60006128a0612b63565b90506128b58184612b8e90919063ffffffff16565b915050919050565b6001601760156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156128f5576128f4613280565b5b6040519080825280602002602001820160405280156129235781602001602082028036833780820191505090505b509050308160008151811061293b5761293a613aac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a06919061450f565b81600181518110612a1a57612a19613aac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612a8130601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611be3565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612ae5959493929190614635565b600060405180830381600087803b158015612aff57600080fd5b505af1158015612b13573d6000803e3d6000fd5b50505050506000601760156101000a81548160ff02191690831515021790555050565b80612b4457612b43612bd8565b5b612b4f848484612c15565b80612b5d57612b5c612de0565b5b50505050565b6000806000612b70612df4565b91509150612b878183612b8e90919063ffffffff16565b9250505090565b6000612bd083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e53565b905092915050565b6000600c54148015612bec57506000600d54145b612c1357600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612c2787612eb6565b955095509550955095509550612c8586600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f1e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d1a85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6890919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d6681612fc6565b612d708483613083565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612dcd9190613640565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600067016345785d8a00009050612e2867016345785d8a0000600654612b8e90919063ffffffff16565b821015612e465760065467016345785d8a0000935093505050612e4f565b81819350935050505b9091565b60008083118290612e9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e9191906134e9565b60405180910390fd5b5060008385612ea99190614437565b9050809150509392505050565b6000806000806000806000806000612ed38a600c54600d546130bd565b9250925092506000612ee3612b63565b90506000806000612ef68e878787613153565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612f6083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612631565b905092915050565b6000808284612f7791906142cc565b905083811015612fbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fb3906146db565b60405180910390fd5b8091505092915050565b6000612fd0612b63565b90506000612fe782846131dc90919063ffffffff16565b905061303b81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6890919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61309882600654612f1e90919063ffffffff16565b6006819055506130b381600754612f6890919063ffffffff16565b6007819055505050565b6000806000806130e960646130db888a6131dc90919063ffffffff16565b612b8e90919063ffffffff16565b905060006131136064613105888b6131dc90919063ffffffff16565b612b8e90919063ffffffff16565b9050600061313c8261312e858c612f1e90919063ffffffff16565b612f1e90919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061316c85896131dc90919063ffffffff16565b9050600061318386896131dc90919063ffffffff16565b9050600061319a87896131dc90919063ffffffff16565b905060006131c3826131b58587612f1e90919063ffffffff16565b612f1e90919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083036131ee5760009050613250565b600082846131fc91906143c6565b905082848261320b9190614437565b1461324b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132429061476d565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6132b88261326f565b810181811067ffffffffffffffff821117156132d7576132d6613280565b5b80604052505050565b60006132ea613256565b90506132f682826132af565b919050565b600067ffffffffffffffff82111561331657613315613280565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006133578261332c565b9050919050565b6133678161334c565b811461337257600080fd5b50565b6000813590506133848161335e565b92915050565b600061339d613398846132fb565b6132e0565b905080838252602082019050602084028301858111156133c0576133bf613327565b5b835b818110156133e957806133d58882613375565b8452602084019350506020810190506133c2565b5050509392505050565b600082601f8301126134085761340761326a565b5b813561341884826020860161338a565b91505092915050565b60006020828403121561343757613436613260565b5b600082013567ffffffffffffffff81111561345557613454613265565b5b613461848285016133f3565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156134a4578082015181840152602081019050613489565b60008484015250505050565b60006134bb8261346a565b6134c58185613475565b93506134d5818560208601613486565b6134de8161326f565b840191505092915050565b6000602082019050818103600083015261350381846134b0565b905092915050565b6000819050919050565b61351e8161350b565b811461352957600080fd5b50565b60008135905061353b81613515565b92915050565b6000806040838503121561355857613557613260565b5b600061356685828601613375565b92505060206135778582860161352c565b9150509250929050565b60008115159050919050565b61359681613581565b82525050565b60006020820190506135b1600083018461358d565b92915050565b6000819050919050565b60006135dc6135d76135d28461332c565b6135b7565b61332c565b9050919050565b60006135ee826135c1565b9050919050565b6000613600826135e3565b9050919050565b613610816135f5565b82525050565b600060208201905061362b6000830184613607565b92915050565b61363a8161350b565b82525050565b60006020820190506136556000830184613631565b92915050565b60008060006060848603121561367457613673613260565b5b600061368286828701613375565b935050602061369386828701613375565b92505060406136a48682870161352c565b9150509250925092565b600060ff82169050919050565b6136c4816136ae565b82525050565b60006020820190506136df60008301846136bb565b92915050565b60006136f08261332c565b9050919050565b613700816136e5565b82525050565b600060208201905061371b60008301846136f7565b92915050565b61372a8161334c565b82525050565b60006020820190506137456000830184613721565b92915050565b60006020828403121561376157613760613260565b5b600061376f84828501613375565b91505092915050565b61378181613581565b811461378c57600080fd5b50565b60008135905061379e81613778565b92915050565b6000602082840312156137ba576137b9613260565b5b60006137c88482850161378f565b91505092915050565b6000602082840312156137e7576137e6613260565b5b60006137f58482850161352c565b91505092915050565b600061ffff82169050919050565b613815816137fe565b811461382057600080fd5b50565b6000813590506138328161380c565b92915050565b60008060006060848603121561385157613850613260565b5b600061385f86828701613823565b935050602061387086828701613823565b925050604061388186828701613823565b9150509250925092565b600080600080608085870312156138a5576138a4613260565b5b60006138b38782880161352c565b94505060206138c48782880161352c565b93505060406138d58782880161352c565b92505060606138e68782880161352c565b91505092959194509250565b600080fd5b60008083601f84011261390d5761390c61326a565b5b8235905067ffffffffffffffff81111561392a576139296138f2565b5b60208301915083602082028301111561394657613945613327565b5b9250929050565b60008060006040848603121561396657613965613260565b5b600084013567ffffffffffffffff81111561398457613983613265565b5b613990868287016138f7565b935093505060206139a38682870161378f565b9150509250925092565b600080604083850312156139c4576139c3613260565b5b60006139d285828601613375565b92505060206139e385828601613375565b9150509250929050565b600080600060608486031215613a0657613a05613260565b5b6000613a1486828701613375565b9350506020613a2586828701613375565b9250506040613a3686828701613375565b9150509250925092565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613a76602083613475565b9150613a8182613a40565b602082019050919050565b60006020820190508181036000830152613aa581613a69565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613b158261350b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613b4757613b46613adb565b5b600182019050919050565b6000613b5d826137fe565b9150613b68836137fe565b9250828201905061ffff811115613b8257613b81613adb565b5b92915050565b7f4275792072657761726473206d757374206265206265747765656e203025206160008201527f6e64203425000000000000000000000000000000000000000000000000000000602082015250565b6000613be4602583613475565b9150613bef82613b88565b604082019050919050565b60006020820190508181036000830152613c1381613bd7565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e64203960008201527f3925000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c76602283613475565b9150613c8182613c1a565b604082019050919050565b60006020820190508181036000830152613ca581613c69565b9050919050565b7f53656c6c2072657761726473206d757374206265206265747765656e2030252060008201527f616e642034250000000000000000000000000000000000000000000000000000602082015250565b6000613d08602683613475565b9150613d1382613cac565b604082019050919050565b60006020820190508181036000830152613d3781613cfb565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e642060008201527f3939250000000000000000000000000000000000000000000000000000000000602082015250565b6000613d9a602383613475565b9150613da582613d3e565b604082019050919050565b60006020820190508181036000830152613dc981613d8d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613e2c602683613475565b9150613e3782613dd0565b604082019050919050565b60006020820190508181036000830152613e5b81613e1f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613ebe602483613475565b9150613ec982613e62565b604082019050919050565b60006020820190508181036000830152613eed81613eb1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f50602283613475565b9150613f5b82613ef4565b604082019050919050565b60006020820190508181036000830152613f7f81613f43565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613fe2602583613475565b9150613fed82613f86565b604082019050919050565b6000602082019050818103600083015261401181613fd5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614074602383613475565b915061407f82614018565b604082019050919050565b600060208201905081810360008301526140a381614067565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614106602983613475565b9150614111826140aa565b604082019050919050565b60006020820190508181036000830152614135816140f9565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000614198603f83613475565b91506141a38261413c565b604082019050919050565b600060208201905081810360008301526141c78161418b565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000614204601c83613475565b915061420f826141ce565b602082019050919050565b60006020820190508181036000830152614233816141f7565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000614296602383613475565b91506142a18261423a565b604082019050919050565b600060208201905081810360008301526142c581614289565b9050919050565b60006142d78261350b565b91506142e28361350b565b92508282019050808211156142fa576142f9613adb565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b600061435c602383613475565b915061436782614300565b604082019050919050565b6000602082019050818103600083015261438b8161434f565b9050919050565b600061439d8261350b565b91506143a88361350b565b92508282039050818111156143c0576143bf613adb565b5b92915050565b60006143d18261350b565b91506143dc8361350b565b92508282026143ea8161350b565b9150828204841483151761440157614400613adb565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006144428261350b565b915061444d8361350b565b92508261445d5761445c614408565b5b828204905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006144c4602a83613475565b91506144cf82614468565b604082019050919050565b600060208201905081810360008301526144f3816144b7565b9050919050565b6000815190506145098161335e565b92915050565b60006020828403121561452557614524613260565b5b6000614533848285016144fa565b91505092915050565b6000819050919050565b600061456161455c6145578461453c565b6135b7565b61350b565b9050919050565b61457181614546565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6145ac8161334c565b82525050565b60006145be83836145a3565b60208301905092915050565b6000602082019050919050565b60006145e282614577565b6145ec8185614582565b93506145f783614593565b8060005b8381101561462857815161460f88826145b2565b975061461a836145ca565b9250506001810190506145fb565b5085935050505092915050565b600060a08201905061464a6000830188613631565b6146576020830187614568565b818103604083015261466981866145d7565b90506146786060830185613721565b6146856080830184613631565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006146c5601b83613475565b91506146d08261468f565b602082019050919050565b600060208201905081810360008301526146f4816146b8565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614757602183613475565b9150614762826146fb565b604082019050919050565b600060208201905081810360008301526147868161474a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204c754ee5731c71e3a7a5900d58467df5fd0feedc633373fb77a9672afa3606a664736f6c63430008110033
Deployed Bytecode Sourcemap
4198:15069:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13414:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7082:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8014:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5884:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7362:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8216:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6184:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7270:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5549:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5932:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13592:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18037:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13180:225;;;;;;;;;;;;;:::i;:::-;;7466:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1671:148;;;;;;;;;;;;;:::i;:::-;;18178:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18431:119;;;;;;;;;;;;;:::i;:::-;;6076:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5498:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1455:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6129:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18558:251;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7174:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17845:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17101:691;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7613:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5460:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12945:226;;;;;;;;;;;;;:::i;:::-;;12858:78;;;;;;;;;;;;;:::i;:::-;;19028:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7821:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18308:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18817:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1828:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13414:169;1593:12;:10;:12::i;:::-;1583:22;;:6;;;;;;;;;;:22;;;1575:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13490:9:::1;13485:91;13509:5;:12;13505:1;:16;13485:91;;;13560:4;13543;:14;13548:5;13554:1;13548:8;;;;;;;;:::i;:::-;;;;;;;;13543:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13523:3;;;;;:::i;:::-;;;;13485:91;;;;13414:169:::0;:::o;7082:83::-;7119:13;7152:5;;;;;;;;;;;;;;;;;7145:12;;7082:83;:::o;8014:193::-;8116:4;8138:39;8147:12;:10;:12::i;:::-;8161:7;8170:6;8138:8;:39::i;:::-;8195:4;8188:11;;8014:193;;;;:::o;5884:41::-;;;;;;;;;;;;;:::o;7362:95::-;7415:7;4757:17;7435:14;;7362:95;:::o;8216:446::-;8348:4;8365:36;8375:6;8383:9;8394:6;8365:9;:36::i;:::-;8412:220;8435:6;8456:12;:10;:12::i;:::-;8483:138;8539:6;8483:138;;;;;;;;;;;;;;;;;:11;:19;8495:6;8483:19;;;;;;;;;;;;;;;:33;8503:12;:10;:12::i;:::-;8483:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8412:8;:220::i;:::-;8650:4;8643:11;;8216:446;;;;;:::o;6184:50::-;;;;:::o;7270:83::-;7311:5;4430:1;7329:16;;7270:83;:::o;5549:90::-;;;;;;;;;;;;;:::o;5932:28::-;;;;;;;;;;;;;:::o;13592:92::-;1593:12;:10;:12::i;:::-;1583:22;;:6;;;;;;;;;;:22;;;1575:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13671:5:::1;13656:4;:12;13661:6;13656:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13592:92:::0;:::o;18037:101::-;1593:12;:10;:12::i;:::-;1583:22;;:6;;;;;;;;;;:22;;;1575:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18118:12:::1;18104:11;;:26;;;;;;;;;;;;;;;;;;18037:101:::0;:::o;13180:225::-;13246:13;;;;;;;;;;;13230:29;;:12;:10;:12::i;:::-;:29;;;:62;;;;13279:13;;;;;;;;;;;13263:29;;:12;:10;:12::i;:::-;:29;;;13230:62;13222:71;;;;;;13304:26;13333:21;13304:50;;13365:32;13378:18;13365:12;:32::i;:::-;13211:194;13180:225::o;7466:138::-;7532:7;7559:37;7579:7;:16;7587:7;7579:16;;;;;;;;;;;;;;;;7559:19;:37::i;:::-;7552:44;;7466:138;;;:::o;1671:148::-;1593:12;:10;:12::i;:::-;1583:22;;:6;;;;;;;;;;:22;;;1575:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1778:1:::1;1741:40;;1762:6;::::0;::::1;;;;;;;;1741:40;;;;;;;;;;;;1809:1;1792:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1671:148::o:0;18178:121::-;1593:12;:10;:12::i;:::-;1583:22;;:6;;;;;;;;;;:22;;;1575:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18270:11:::1;18255:12;:26;;;;18178:121:::0;:::o;18431:119::-;1593:12;:10;:12::i;:::-;1583:22;;:6;;;;;;;;;;:22;;;1575:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4757:17:::1;18485:14;:24;;;;4757:17;18520:12;:22;;;;18431:119::o:0;6076:45::-;;;;:::o;5498:43::-;;;;;;;;;;;;;;;;;:::o;1455:79::-;1493:7;1520:6;;;;;;;;;;;1513:13;;1455:79;:::o;6129:47::-;;;;:::o;18558:251::-;1593:12;:10;:12::i;:::-;1583:22;;:6;;;;;;;;;;:22;;;1575:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18659:2:::1;18642:14;;:19;;;;;;;;;;;;;;;;;;18689:2;18672:14;;:19;;;;;;;;;;;;;;;;;;18719:2;18702:14;;:19;;;;;;;;;;;;;;;;;;18787:14;;;;;;;;;;;18770;;;;;;;;;;;18753;;;;;;;;;;;:31;;;;:::i;:::-;:48;;;;:::i;:::-;18732:18;;:69;;;;;;;;;;;;;;;;;;18558:251:::0;;;:::o;7174:87::-;7213:13;7246:7;;;;;;;;;;;;;;;;;7239:14;;7174:87;:::o;17845:139::-;1593:12;:10;:12::i;:::-;1583:22;;:6;;;;;;;;;;:22;;;1575:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17958:18:::1;17936:19;:40;;;;17845:139:::0;:::o;17101:691::-;1593:12;:10;:12::i;:::-;1583:22;;:6;;;;;;;;;;:22;;;1575:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17260:1:::1;17243:13;:18;;:40;;;;;17282:1;17265:13;:18;;17243:40;17235:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;17359:1;17344:11;:16;;:37;;;;;17379:2;17364:11;:17;;17344:37;17336:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;17457:1;17439:14;:19;;:42;;;;;17480:1;17462:14;:19;;17439:42;17431:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;17559:1;17543:12;:17;;:39;;;;;17580:2;17564:12;:18;;17543:39;17535:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;17652:13;17635:14;:30;;;;17694:14;17676:15;:32;;;;17734:11;17719:12;:26;;;;17772:12;17756:13;:28;;;;17101:691:::0;;;;:::o;7613:199::-;7718:4;7740:42;7750:12;:10;:12::i;:::-;7764:9;7775:6;7740:9;:42::i;:::-;7800:4;7793:11;;7613:199;;;;:::o;5460:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12945:226::-;13011:13;;;;;;;;;;;12995:29;;:12;:10;:12::i;:::-;:29;;;:62;;;;13044:13;;;;;;;;;;;13028:29;;:12;:10;:12::i;:::-;:29;;;12995:62;12987:71;;;;;;13069:23;13095:24;13113:4;13095:9;:24::i;:::-;13069:50;;13130:33;13147:15;13130:16;:33::i;:::-;12976:195;12945:226::o;12858:78::-;1593:12;:10;:12::i;:::-;1583:22;;:6;;;;;;;;;;:22;;;1575:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12924:4:::1;12910:11;;:18;;;;;;;;;;;;;;;;;;12858:78::o:0;19028:234::-;1593:12;:10;:12::i;:::-;1583:22;;:6;;;;;;;;;;:22;;;1575:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19145:9:::1;19141:114;19164:8;;:15;;19160:1;:19;19141:114;;;19235:8;19201:18;:31;19220:8;;19229:1;19220:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;19201:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;19181:3;;;;;:::i;:::-;;;;19141:114;;;;19028:234:::0;;;:::o;7821:184::-;7938:7;7970:11;:18;7982:5;7970:18;;;;;;;;;;;;;;;:27;7989:7;7970:27;;;;;;;;;;;;;;;;7963:34;;7821:184;;;;:::o;18308:115::-;1593:12;:10;:12::i;:::-;1583:22;;:6;;;;;;;;;;:22;;;1575:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18402:13:::1;18385:14;:30;;;;18308:115:::0;:::o;18817:202::-;1593:12;:10;:12::i;:::-;1583:22;;:6;;;;;;;;;;:22;;;1575:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18932:2:::1;18908:13;;:27;;;;;;;;;;;;;;;;;;18970:2;18946:13;;:27;;;;;;;;;;;;;;;;;;19008:2;18984:13;;:27;;;;;;;;;;;;;;;;;;18817:202:::0;;;:::o;1828:244::-;1593:12;:10;:12::i;:::-;1583:22;;:6;;;;;;;;;;:22;;;1575:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1937:1:::1;1917:22;;:8;:22;;::::0;1909:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2027:8;1998:38;;2019:6;::::0;::::1;;;;;;;;1998:38;;;;;;;;;;;;2056:8;2047:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1828:244:::0;:::o;204:98::-;257:7;284:10;277:17;;204:98;:::o;9359:369::-;9503:1;9486:19;;:5;:19;;;9478:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9584:1;9565:21;;:7;:21;;;9557:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9666:6;9636:11;:18;9648:5;9636:18;;;;;;;;;;;;;;;:27;9655:7;9636:27;;;;;;;;;;;;;;;:36;;;;9704:7;9688:32;;9697:5;9688:32;;;9713:6;9688:32;;;;;;:::i;:::-;;;;;;;;9359:369;;;:::o;9737:2343::-;9875:1;9859:18;;:4;:18;;;9851:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9952:1;9938:16;;:2;:16;;;9930:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10022:1;10013:6;:10;10005:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10095:7;:5;:7::i;:::-;10087:15;;:4;:15;;;;:32;;;;;10112:7;:5;:7::i;:::-;10106:13;;:2;:13;;;;10087:32;10083:1265;;;10177:11;;;;;;;;;;;10172:144;;10225:7;:5;:7::i;:::-;10217:15;;:4;:15;;;10209:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;10172:144;10351:12;;10341:6;:22;;10333:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10420:4;:10;10425:4;10420:10;;;;;;;;;;;;;;;;;;;;;;;;;10419:11;:24;;;;;10435:4;:8;10440:2;10435:8;;;;;;;;;;;;;;;;;;;;;;;;;10434:9;10419:24;10411:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10510:13;;;;;;;;;;;10504:19;;:2;:19;;;10501:146;;10577:14;;10568:6;10552:13;10562:2;10552:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10544:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10501:146;10664:28;10695:24;10713:4;10695:9;:24::i;:::-;10664:55;;10734:12;10773:19;;10749:20;:43;;10734:58;;10837:12;;10813:20;:36;10810:124;;10906:12;;10883:35;;10810:124;10955:7;:18;;;;;10967:6;;;;;;;;;;;10966:7;10955:18;:43;;;;;10985:13;;;;;;;;;;;10977:21;;:4;:21;;;;10955:43;:58;;;;;11002:11;;;;;;;;;;;10955:58;:87;;;;;11018:18;:24;11037:4;11018:24;;;;;;;;;;;;;;;;;;;;;;;;;11017:25;10955:87;:114;;;;;11047:18;:22;11066:2;11047:22;;;;;;;;;;;;;;;;;;;;;;;;;11046:23;10955:114;10951:386;;;11090:38;11107:20;11090:16;:38::i;:::-;11147:26;11176:21;11147:50;;11241:1;11220:18;:22;11216:106;;;11267:35;11280:21;11267:12;:35::i;:::-;11216:106;11071:266;10951:386;10121:1227;;10083:1265;11361:12;11376:4;11361:19;;11426:18;:24;11445:4;11426:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11454:18;:22;11473:2;11454:22;;;;;;;;;;;;;;;;;;;;;;;;;11426:50;11425:102;;;;11490:13;;;;;;;;;;;11482:21;;:4;:21;;;;:44;;;;;11513:13;;;;;;;;;;;11507:19;;:2;:19;;;;11482:44;11425:102;11421:597;;;11554:5;11544:15;;11421:597;;;11638:13;;;;;;;;;;;11630:21;;:4;:21;;;:55;;;;;11669:15;;;;;;;;;;;11655:30;;:2;:30;;;;11630:55;11627:162;;;11718:14;;11706:9;:26;;;;11761:12;;11751:7;:22;;;;11627:162;11849:13;;;;;;;;;;;11843:19;;:2;:19;;;:55;;;;;11882:15;;;;;;;;;;;11866:32;;:4;:32;;;;11843:55;11839:165;;;11931:15;;11919:9;:27;;;;11975:13;;11965:7;:23;;;;11839:165;11421:597;12031:41;12046:4;12052:2;12056:6;12064:7;12031:14;:41::i;:::-;9840:2240;9737:2343;;;:::o;2440:224::-;2560:7;2593:1;2588;:6;;2596:12;2580:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2620:9;2636:1;2632;:5;;;;:::i;:::-;2620:17;;2655:1;2648:8;;;2440:224;;;;;:::o;12581:268::-;12638:13;;;;;;;;;;;:22;;:68;12687:18;;;;;;;;;;;12661:44;;12670:14;;;;;;;;;;;12661:23;;:6;:23;;;;:::i;:::-;:44;;;;:::i;:::-;12638:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12717:13;;;;;;;;;;;:22;;:68;12766:18;;;;;;;;;;;12740:44;;12749:14;;;;;;;;;;;12740:23;;:6;:23;;;;:::i;:::-;:44;;;;:::i;:::-;12717:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12796:13;;;;;;;;;;;:22;;:45;12819:21;12796:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12581:268;:::o;8671:323::-;8766:7;8824;;8813;:18;;8791:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8912:19;8934:10;:8;:10::i;:::-;8912:32;;8962:24;8974:11;8962:7;:11;;:24;;;;:::i;:::-;8955:31;;;8671:323;;;:::o;12089:483::-;6338:4;6329:6;;:13;;;;;;;;;;;;;;;;;;12167:21:::1;12205:1;12191:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12167:40;;12236:4;12218;12223:1;12218:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12262:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12252:4;12257:1;12252:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12295:62;12312:4;12327:15;;;;;;;;;;;12345:11;12295:8;:62::i;:::-;12368:15;;;;;;;;;;;:66;;;12449:11;12475:1;12491:4;12518;12538:15;12368:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12156:416;6374:5:::0;6365:6;;:14;;;;;;;;;;;;;;;;;;12089:483;:::o;13693:282::-;13849:7;13844:28;;13858:14;:12;:14::i;:::-;13844:28;13883:44;13901:6;13909:9;13920:6;13883:17;:44::i;:::-;13943:7;13938:29;;13952:15;:13;:15::i;:::-;13938:29;13693:282;;;;:::o;16662:164::-;16704:7;16725:15;16742;16761:19;:17;:19::i;:::-;16724:56;;;;16798:20;16810:7;16798;:11;;:20;;;;:::i;:::-;16791:27;;;;16662:164;:::o;2928:132::-;2986:7;3013:39;3017:1;3020;3013:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3006:46;;2928:132;;;;:::o;9003:221::-;9063:1;9050:9;;:14;:30;;;;;9079:1;9068:7;;:12;9050:30;9082:7;9046:43;9122:9;;9102:17;:29;;;;9160:7;;9142:15;:25;;;;9193:1;9181:9;:13;;;;9215:1;9205:7;:11;;;;9003:221;:::o;13984:610::-;14131:15;14161:23;14199:12;14226:23;14264:12;14291:13;14318:19;14329:7;14318:10;:19::i;:::-;14116:221;;;;;;;;;;;;14366:28;14386:7;14366;:15;14374:6;14366:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14348:7;:15;14356:6;14348:15;;;;;;;;;;;;;;;:46;;;;14426:39;14449:15;14426:7;:18;14434:9;14426:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14405:7;:18;14413:9;14405:18;;;;;;;;;;;;;;;:60;;;;14476:16;14486:5;14476:9;:16::i;:::-;14503:23;14515:4;14521;14503:11;:23::i;:::-;14559:9;14542:44;;14551:6;14542:44;;;14570:15;14542:44;;;;;;:::i;:::-;;;;;;;;14105:489;;;;;;13984:610;;;:::o;9233:117::-;9289:17;;9277:9;:29;;;;9327:15;;9317:7;:25;;;;9233:117::o;16835:257::-;16886:7;16895;16915:15;16933:7;;16915:25;;16951:15;4757:17;16951:25;;17001:20;4757:17;17001:7;;:11;;:20;;;;:::i;:::-;16991:7;:30;16987:61;;;17031:7;;4757:17;17023:25;;;;;;;;16987:61;17067:7;17076;17059:25;;;;;;16835:257;;;:::o;3069:223::-;3189:7;3221:1;3217;:5;3224:12;3209:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3248:9;3264:1;3260;:5;;;;:::i;:::-;3248:17;;3283:1;3276:8;;;3069:223;;;;;:::o;15017:615::-;15117:7;15139;15161;15183;15205;15227;15263:23;15288:12;15302:13;15332:40;15344:7;15353:9;;15364:7;;15332:11;:40::i;:::-;15262:110;;;;;;15383:19;15405:10;:8;:10::i;:::-;15383:32;;15427:15;15444:23;15469:12;15498:46;15510:7;15519:4;15525:5;15532:11;15498;:46::i;:::-;15426:118;;;;;;15563:7;15572:15;15589:4;15595:15;15612:4;15618:5;15555:69;;;;;;;;;;;;;;;;;;;15017:615;;;;;;;:::o;2295:136::-;2353:7;2380:43;2384:1;2387;2380:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2373:50;;2295:136;;;;:::o;2107:179::-;2165:7;2185:9;2201:1;2197;:5;;;;:::i;:::-;2185:17;;2226:1;2221;:6;;2213:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2277:1;2270:8;;;2107:179;;;;:::o;14603:211::-;14656:19;14678:10;:8;:10::i;:::-;14656:32;;14699:13;14715:22;14725:11;14715:5;:9;;:22;;;;:::i;:::-;14699:38;;14773:33;14800:5;14773:7;:22;14789:4;14773:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14748:7;:22;14764:4;14748:22;;;;;;;;;;;;;;;:58;;;;14645:169;;14603:211;:::o;14823:147::-;14901:17;14913:4;14901:7;;:11;;:17;;;;:::i;:::-;14891:7;:27;;;;14942:20;14957:4;14942:10;;:14;;:20;;;;:::i;:::-;14929:10;:33;;;;14823:147;;:::o;15641:469::-;15810:7;15832;15854;15889:12;15904:30;15930:3;15904:21;15916:8;15904:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15889:45;;15945:13;15961:28;15985:3;15961:19;15973:6;15961:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15945:44;;16000:23;16026:28;16048:5;16026:17;16038:4;16026:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16000:54;;16073:15;16090:4;16096:5;16065:37;;;;;;;;;15641:469;;;;;;;:::o;16119:534::-;16313:7;16335;16357;16392:15;16410:24;16422:11;16410:7;:11;;:24;;;;:::i;:::-;16392:42;;16445:12;16460:21;16469:11;16460:4;:8;;:21;;;;:::i;:::-;16445:36;;16492:13;16508:22;16518:11;16508:5;:9;;:22;;;;:::i;:::-;16492:38;;16541:23;16567:28;16589:5;16567:17;16579:4;16567:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16541:54;;16614:7;16623:15;16640:4;16606:39;;;;;;;;;;16119:534;;;;;;;;:::o;2673:246::-;2731:7;2760:1;2755;:6;2751:47;;2785:1;2778:8;;;;2751:47;2808:9;2824:1;2820;:5;;;;:::i;:::-;2808:17;;2853:1;2848;2844;:5;;;;:::i;:::-;:10;2836:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2910:1;2903:8;;;2673:246;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:246::-;4152:1;4162:113;4176:6;4173:1;4170:13;4162:113;;;4261:1;4256:3;4252:11;4246:18;4242:1;4237:3;4233:11;4226:39;4198:2;4195:1;4191:10;4186:15;;4162:113;;;4309:1;4300:6;4295:3;4291:16;4284:27;4133:184;4071:246;;;:::o;4323:377::-;4411:3;4439:39;4472:5;4439:39;:::i;:::-;4494:71;4558:6;4553:3;4494:71;:::i;:::-;4487:78;;4574:65;4632:6;4627:3;4620:4;4613:5;4609:16;4574:65;:::i;:::-;4664:29;4686:6;4664:29;:::i;:::-;4659:3;4655:39;4648:46;;4415:285;4323:377;;;;:::o;4706:313::-;4819:4;4857:2;4846:9;4842:18;4834:26;;4906:9;4900:4;4896:20;4892:1;4881:9;4877:17;4870:47;4934:78;5007:4;4998:6;4934:78;:::i;:::-;4926:86;;4706:313;;;;:::o;5025:77::-;5062:7;5091:5;5080:16;;5025:77;;;:::o;5108:122::-;5181:24;5199:5;5181:24;:::i;:::-;5174:5;5171:35;5161:63;;5220:1;5217;5210:12;5161:63;5108:122;:::o;5236:139::-;5282:5;5320:6;5307:20;5298:29;;5336:33;5363:5;5336:33;:::i;:::-;5236:139;;;;:::o;5381:474::-;5449:6;5457;5506:2;5494:9;5485:7;5481:23;5477:32;5474:119;;;5512:79;;:::i;:::-;5474:119;5632:1;5657:53;5702:7;5693:6;5682:9;5678:22;5657:53;:::i;:::-;5647:63;;5603:117;5759:2;5785:53;5830:7;5821:6;5810:9;5806:22;5785:53;:::i;:::-;5775:63;;5730:118;5381:474;;;;;:::o;5861:90::-;5895:7;5938:5;5931:13;5924:21;5913:32;;5861:90;;;:::o;5957:109::-;6038:21;6053:5;6038:21;:::i;:::-;6033:3;6026:34;5957:109;;:::o;6072:210::-;6159:4;6197:2;6186:9;6182:18;6174:26;;6210:65;6272:1;6261:9;6257:17;6248:6;6210:65;:::i;:::-;6072:210;;;;:::o;6288:60::-;6316:3;6337:5;6330:12;;6288:60;;;:::o;6354:142::-;6404:9;6437:53;6455:34;6464:24;6482:5;6464:24;:::i;:::-;6455:34;:::i;:::-;6437:53;:::i;:::-;6424:66;;6354:142;;;:::o;6502:126::-;6552:9;6585:37;6616:5;6585:37;:::i;:::-;6572:50;;6502:126;;;:::o;6634:152::-;6710:9;6743:37;6774:5;6743:37;:::i;:::-;6730:50;;6634:152;;;:::o;6792:183::-;6905:63;6962:5;6905:63;:::i;:::-;6900:3;6893:76;6792:183;;:::o;6981:274::-;7100:4;7138:2;7127:9;7123:18;7115:26;;7151:97;7245:1;7234:9;7230:17;7221:6;7151:97;:::i;:::-;6981:274;;;;:::o;7261:118::-;7348:24;7366:5;7348:24;:::i;:::-;7343:3;7336:37;7261:118;;:::o;7385:222::-;7478:4;7516:2;7505:9;7501:18;7493:26;;7529:71;7597:1;7586:9;7582:17;7573:6;7529:71;:::i;:::-;7385:222;;;;:::o;7613:619::-;7690:6;7698;7706;7755:2;7743:9;7734:7;7730:23;7726:32;7723:119;;;7761:79;;:::i;:::-;7723:119;7881:1;7906:53;7951:7;7942:6;7931:9;7927:22;7906:53;:::i;:::-;7896:63;;7852:117;8008:2;8034:53;8079:7;8070:6;8059:9;8055:22;8034:53;:::i;:::-;8024:63;;7979:118;8136:2;8162:53;8207:7;8198:6;8187:9;8183:22;8162:53;:::i;:::-;8152:63;;8107:118;7613:619;;;;;:::o;8238:86::-;8273:7;8313:4;8306:5;8302:16;8291:27;;8238:86;;;:::o;8330:112::-;8413:22;8429:5;8413:22;:::i;:::-;8408:3;8401:35;8330:112;;:::o;8448:214::-;8537:4;8575:2;8564:9;8560:18;8552:26;;8588:67;8652:1;8641:9;8637:17;8628:6;8588:67;:::i;:::-;8448:214;;;;:::o;8668:104::-;8713:7;8742:24;8760:5;8742:24;:::i;:::-;8731:35;;8668:104;;;:::o;8778:142::-;8881:32;8907:5;8881:32;:::i;:::-;8876:3;8869:45;8778:142;;:::o;8926:254::-;9035:4;9073:2;9062:9;9058:18;9050:26;;9086:87;9170:1;9159:9;9155:17;9146:6;9086:87;:::i;:::-;8926:254;;;;:::o;9186:118::-;9273:24;9291:5;9273:24;:::i;:::-;9268:3;9261:37;9186:118;;:::o;9310:222::-;9403:4;9441:2;9430:9;9426:18;9418:26;;9454:71;9522:1;9511:9;9507:17;9498:6;9454:71;:::i;:::-;9310:222;;;;:::o;9538:329::-;9597:6;9646:2;9634:9;9625:7;9621:23;9617:32;9614:119;;;9652:79;;:::i;:::-;9614:119;9772:1;9797:53;9842:7;9833:6;9822:9;9818:22;9797:53;:::i;:::-;9787:63;;9743:117;9538:329;;;;:::o;9873:116::-;9943:21;9958:5;9943:21;:::i;:::-;9936:5;9933:32;9923:60;;9979:1;9976;9969:12;9923:60;9873:116;:::o;9995:133::-;10038:5;10076:6;10063:20;10054:29;;10092:30;10116:5;10092:30;:::i;:::-;9995:133;;;;:::o;10134:323::-;10190:6;10239:2;10227:9;10218:7;10214:23;10210:32;10207:119;;;10245:79;;:::i;:::-;10207:119;10365:1;10390:50;10432:7;10423:6;10412:9;10408:22;10390:50;:::i;:::-;10380:60;;10336:114;10134:323;;;;:::o;10463:329::-;10522:6;10571:2;10559:9;10550:7;10546:23;10542:32;10539:119;;;10577:79;;:::i;:::-;10539:119;10697:1;10722:53;10767:7;10758:6;10747:9;10743:22;10722:53;:::i;:::-;10712:63;;10668:117;10463:329;;;;:::o;10798:89::-;10834:7;10874:6;10867:5;10863:18;10852:29;;10798:89;;;:::o;10893:120::-;10965:23;10982:5;10965:23;:::i;:::-;10958:5;10955:34;10945:62;;11003:1;11000;10993:12;10945:62;10893:120;:::o;11019:137::-;11064:5;11102:6;11089:20;11080:29;;11118:32;11144:5;11118:32;:::i;:::-;11019:137;;;;:::o;11162:613::-;11236:6;11244;11252;11301:2;11289:9;11280:7;11276:23;11272:32;11269:119;;;11307:79;;:::i;:::-;11269:119;11427:1;11452:52;11496:7;11487:6;11476:9;11472:22;11452:52;:::i;:::-;11442:62;;11398:116;11553:2;11579:52;11623:7;11614:6;11603:9;11599:22;11579:52;:::i;:::-;11569:62;;11524:117;11680:2;11706:52;11750:7;11741:6;11730:9;11726:22;11706:52;:::i;:::-;11696:62;;11651:117;11162:613;;;;;:::o;11781:765::-;11867:6;11875;11883;11891;11940:3;11928:9;11919:7;11915:23;11911:33;11908:120;;;11947:79;;:::i;:::-;11908:120;12067:1;12092:53;12137:7;12128:6;12117:9;12113:22;12092:53;:::i;:::-;12082:63;;12038:117;12194:2;12220:53;12265:7;12256:6;12245:9;12241:22;12220:53;:::i;:::-;12210:63;;12165:118;12322:2;12348:53;12393:7;12384:6;12373:9;12369:22;12348:53;:::i;:::-;12338:63;;12293:118;12450:2;12476:53;12521:7;12512:6;12501:9;12497:22;12476:53;:::i;:::-;12466:63;;12421:118;11781:765;;;;;;;:::o;12552:117::-;12661:1;12658;12651:12;12692:568;12765:8;12775:6;12825:3;12818:4;12810:6;12806:17;12802:27;12792:122;;12833:79;;:::i;:::-;12792:122;12946:6;12933:20;12923:30;;12976:18;12968:6;12965:30;12962:117;;;12998:79;;:::i;:::-;12962:117;13112:4;13104:6;13100:17;13088:29;;13166:3;13158:4;13150:6;13146:17;13136:8;13132:32;13129:41;13126:128;;;13173:79;;:::i;:::-;13126:128;12692:568;;;;;:::o;13266:698::-;13358:6;13366;13374;13423:2;13411:9;13402:7;13398:23;13394:32;13391:119;;;13429:79;;:::i;:::-;13391:119;13577:1;13566:9;13562:17;13549:31;13607:18;13599:6;13596:30;13593:117;;;13629:79;;:::i;:::-;13593:117;13742:80;13814:7;13805:6;13794:9;13790:22;13742:80;:::i;:::-;13724:98;;;;13520:312;13871:2;13897:50;13939:7;13930:6;13919:9;13915:22;13897:50;:::i;:::-;13887:60;;13842:115;13266:698;;;;;:::o;13970:474::-;14038:6;14046;14095:2;14083:9;14074:7;14070:23;14066:32;14063:119;;;14101:79;;:::i;:::-;14063:119;14221:1;14246:53;14291:7;14282:6;14271:9;14267:22;14246:53;:::i;:::-;14236:63;;14192:117;14348:2;14374:53;14419:7;14410:6;14399:9;14395:22;14374:53;:::i;:::-;14364:63;;14319:118;13970:474;;;;;:::o;14450:619::-;14527:6;14535;14543;14592:2;14580:9;14571:7;14567:23;14563:32;14560:119;;;14598:79;;:::i;:::-;14560:119;14718:1;14743:53;14788:7;14779:6;14768:9;14764:22;14743:53;:::i;:::-;14733:63;;14689:117;14845:2;14871:53;14916:7;14907:6;14896:9;14892:22;14871:53;:::i;:::-;14861:63;;14816:118;14973:2;14999:53;15044:7;15035:6;15024:9;15020:22;14999:53;:::i;:::-;14989:63;;14944:118;14450:619;;;;;:::o;15075:182::-;15215:34;15211:1;15203:6;15199:14;15192:58;15075:182;:::o;15263:366::-;15405:3;15426:67;15490:2;15485:3;15426:67;:::i;:::-;15419:74;;15502:93;15591:3;15502:93;:::i;:::-;15620:2;15615:3;15611:12;15604:19;;15263:366;;;:::o;15635:419::-;15801:4;15839:2;15828:9;15824:18;15816:26;;15888:9;15882:4;15878:20;15874:1;15863:9;15859:17;15852:47;15916:131;16042:4;15916:131;:::i;:::-;15908:139;;15635:419;;;:::o;16060:180::-;16108:77;16105:1;16098:88;16205:4;16202:1;16195:15;16229:4;16226:1;16219:15;16246:180;16294:77;16291:1;16284:88;16391:4;16388:1;16381:15;16415:4;16412:1;16405:15;16432:233;16471:3;16494:24;16512:5;16494:24;:::i;:::-;16485:33;;16540:66;16533:5;16530:77;16527:103;;16610:18;;:::i;:::-;16527:103;16657:1;16650:5;16646:13;16639:20;;16432:233;;;:::o;16671:193::-;16710:3;16729:19;16746:1;16729:19;:::i;:::-;16724:24;;16762:19;16779:1;16762:19;:::i;:::-;16757:24;;16804:1;16801;16797:9;16790:16;;16827:6;16822:3;16819:15;16816:41;;;16837:18;;:::i;:::-;16816:41;16671:193;;;;:::o;16870:224::-;17010:34;17006:1;16998:6;16994:14;16987:58;17079:7;17074:2;17066:6;17062:15;17055:32;16870:224;:::o;17100:366::-;17242:3;17263:67;17327:2;17322:3;17263:67;:::i;:::-;17256:74;;17339:93;17428:3;17339:93;:::i;:::-;17457:2;17452:3;17448:12;17441:19;;17100:366;;;:::o;17472:419::-;17638:4;17676:2;17665:9;17661:18;17653:26;;17725:9;17719:4;17715:20;17711:1;17700:9;17696:17;17689:47;17753:131;17879:4;17753:131;:::i;:::-;17745:139;;17472:419;;;:::o;17897:221::-;18037:34;18033:1;18025:6;18021:14;18014:58;18106:4;18101:2;18093:6;18089:15;18082:29;17897:221;:::o;18124:366::-;18266:3;18287:67;18351:2;18346:3;18287:67;:::i;:::-;18280:74;;18363:93;18452:3;18363:93;:::i;:::-;18481:2;18476:3;18472:12;18465:19;;18124:366;;;:::o;18496:419::-;18662:4;18700:2;18689:9;18685:18;18677:26;;18749:9;18743:4;18739:20;18735:1;18724:9;18720:17;18713:47;18777:131;18903:4;18777:131;:::i;:::-;18769:139;;18496:419;;;:::o;18921:225::-;19061:34;19057:1;19049:6;19045:14;19038:58;19130:8;19125:2;19117:6;19113:15;19106:33;18921:225;:::o;19152:366::-;19294:3;19315:67;19379:2;19374:3;19315:67;:::i;:::-;19308:74;;19391:93;19480:3;19391:93;:::i;:::-;19509:2;19504:3;19500:12;19493:19;;19152:366;;;:::o;19524:419::-;19690:4;19728:2;19717:9;19713:18;19705:26;;19777:9;19771:4;19767:20;19763:1;19752:9;19748:17;19741:47;19805:131;19931:4;19805:131;:::i;:::-;19797:139;;19524:419;;;:::o;19949:222::-;20089:34;20085:1;20077:6;20073:14;20066:58;20158:5;20153:2;20145:6;20141:15;20134:30;19949:222;:::o;20177:366::-;20319:3;20340:67;20404:2;20399:3;20340:67;:::i;:::-;20333:74;;20416:93;20505:3;20416:93;:::i;:::-;20534:2;20529:3;20525:12;20518:19;;20177:366;;;:::o;20549:419::-;20715:4;20753:2;20742:9;20738:18;20730:26;;20802:9;20796:4;20792:20;20788:1;20777:9;20773:17;20766:47;20830:131;20956:4;20830:131;:::i;:::-;20822:139;;20549:419;;;:::o;20974:225::-;21114:34;21110:1;21102:6;21098:14;21091:58;21183:8;21178:2;21170:6;21166:15;21159:33;20974:225;:::o;21205:366::-;21347:3;21368:67;21432:2;21427:3;21368:67;:::i;:::-;21361:74;;21444:93;21533:3;21444:93;:::i;:::-;21562:2;21557:3;21553:12;21546:19;;21205:366;;;:::o;21577:419::-;21743:4;21781:2;21770:9;21766:18;21758:26;;21830:9;21824:4;21820:20;21816:1;21805:9;21801:17;21794:47;21858:131;21984:4;21858:131;:::i;:::-;21850:139;;21577:419;;;:::o;22002:223::-;22142:34;22138:1;22130:6;22126:14;22119:58;22211:6;22206:2;22198:6;22194:15;22187:31;22002:223;:::o;22231:366::-;22373:3;22394:67;22458:2;22453:3;22394:67;:::i;:::-;22387:74;;22470:93;22559:3;22470:93;:::i;:::-;22588:2;22583:3;22579:12;22572:19;;22231:366;;;:::o;22603:419::-;22769:4;22807:2;22796:9;22792:18;22784:26;;22856:9;22850:4;22846:20;22842:1;22831:9;22827:17;22820:47;22884:131;23010:4;22884:131;:::i;:::-;22876:139;;22603:419;;;:::o;23028:221::-;23168:34;23164:1;23156:6;23152:14;23145:58;23237:4;23232:2;23224:6;23220:15;23213:29;23028:221;:::o;23255:366::-;23397:3;23418:67;23482:2;23477:3;23418:67;:::i;:::-;23411:74;;23494:93;23583:3;23494:93;:::i;:::-;23612:2;23607:3;23603:12;23596:19;;23255:366;;;:::o;23627:419::-;23793:4;23831:2;23820:9;23816:18;23808:26;;23880:9;23874:4;23870:20;23866:1;23855:9;23851:17;23844:47;23908:131;24034:4;23908:131;:::i;:::-;23900:139;;23627:419;;;:::o;24052:224::-;24192:34;24188:1;24180:6;24176:14;24169:58;24261:7;24256:2;24248:6;24244:15;24237:32;24052:224;:::o;24282:366::-;24424:3;24445:67;24509:2;24504:3;24445:67;:::i;:::-;24438:74;;24521:93;24610:3;24521:93;:::i;:::-;24639:2;24634:3;24630:12;24623:19;;24282:366;;;:::o;24654:419::-;24820:4;24858:2;24847:9;24843:18;24835:26;;24907:9;24901:4;24897:20;24893:1;24882:9;24878:17;24871:47;24935:131;25061:4;24935:131;:::i;:::-;24927:139;;24654:419;;;:::o;25079:222::-;25219:34;25215:1;25207:6;25203:14;25196:58;25288:5;25283:2;25275:6;25271:15;25264:30;25079:222;:::o;25307:366::-;25449:3;25470:67;25534:2;25529:3;25470:67;:::i;:::-;25463:74;;25546:93;25635:3;25546:93;:::i;:::-;25664:2;25659:3;25655:12;25648:19;;25307:366;;;:::o;25679:419::-;25845:4;25883:2;25872:9;25868:18;25860:26;;25932:9;25926:4;25922:20;25918:1;25907:9;25903:17;25896:47;25960:131;26086:4;25960:131;:::i;:::-;25952:139;;25679:419;;;:::o;26104:228::-;26244:34;26240:1;26232:6;26228:14;26221:58;26313:11;26308:2;26300:6;26296:15;26289:36;26104:228;:::o;26338:366::-;26480:3;26501:67;26565:2;26560:3;26501:67;:::i;:::-;26494:74;;26577:93;26666:3;26577:93;:::i;:::-;26695:2;26690:3;26686:12;26679:19;;26338:366;;;:::o;26710:419::-;26876:4;26914:2;26903:9;26899:18;26891:26;;26963:9;26957:4;26953:20;26949:1;26938:9;26934:17;26927:47;26991:131;27117:4;26991:131;:::i;:::-;26983:139;;26710:419;;;:::o;27135:250::-;27275:34;27271:1;27263:6;27259:14;27252:58;27344:33;27339:2;27331:6;27327:15;27320:58;27135:250;:::o;27391:366::-;27533:3;27554:67;27618:2;27613:3;27554:67;:::i;:::-;27547:74;;27630:93;27719:3;27630:93;:::i;:::-;27748:2;27743:3;27739:12;27732:19;;27391:366;;;:::o;27763:419::-;27929:4;27967:2;27956:9;27952:18;27944:26;;28016:9;28010:4;28006:20;28002:1;27991:9;27987:17;27980:47;28044:131;28170:4;28044:131;:::i;:::-;28036:139;;27763:419;;;:::o;28188:178::-;28328:30;28324:1;28316:6;28312:14;28305:54;28188:178;:::o;28372:366::-;28514:3;28535:67;28599:2;28594:3;28535:67;:::i;:::-;28528:74;;28611:93;28700:3;28611:93;:::i;:::-;28729:2;28724:3;28720:12;28713:19;;28372:366;;;:::o;28744:419::-;28910:4;28948:2;28937:9;28933:18;28925:26;;28997:9;28991:4;28987:20;28983:1;28972:9;28968:17;28961:47;29025:131;29151:4;29025:131;:::i;:::-;29017:139;;28744:419;;;:::o;29169:222::-;29309:34;29305:1;29297:6;29293:14;29286:58;29378:5;29373:2;29365:6;29361:15;29354:30;29169:222;:::o;29397:366::-;29539:3;29560:67;29624:2;29619:3;29560:67;:::i;:::-;29553:74;;29636:93;29725:3;29636:93;:::i;:::-;29754:2;29749:3;29745:12;29738:19;;29397:366;;;:::o;29769:419::-;29935:4;29973:2;29962:9;29958:18;29950:26;;30022:9;30016:4;30012:20;30008:1;29997:9;29993:17;29986:47;30050:131;30176:4;30050:131;:::i;:::-;30042:139;;29769:419;;;:::o;30194:191::-;30234:3;30253:20;30271:1;30253:20;:::i;:::-;30248:25;;30287:20;30305:1;30287:20;:::i;:::-;30282:25;;30330:1;30327;30323:9;30316:16;;30351:3;30348:1;30345:10;30342:36;;;30358:18;;:::i;:::-;30342:36;30194:191;;;;:::o;30391:222::-;30531:34;30527:1;30519:6;30515:14;30508:58;30600:5;30595:2;30587:6;30583:15;30576:30;30391:222;:::o;30619:366::-;30761:3;30782:67;30846:2;30841:3;30782:67;:::i;:::-;30775:74;;30858:93;30947:3;30858:93;:::i;:::-;30976:2;30971:3;30967:12;30960:19;;30619:366;;;:::o;30991:419::-;31157:4;31195:2;31184:9;31180:18;31172:26;;31244:9;31238:4;31234:20;31230:1;31219:9;31215:17;31208:47;31272:131;31398:4;31272:131;:::i;:::-;31264:139;;30991:419;;;:::o;31416:194::-;31456:4;31476:20;31494:1;31476:20;:::i;:::-;31471:25;;31510:20;31528:1;31510:20;:::i;:::-;31505:25;;31554:1;31551;31547:9;31539:17;;31578:1;31572:4;31569:11;31566:37;;;31583:18;;:::i;:::-;31566:37;31416:194;;;;:::o;31616:410::-;31656:7;31679:20;31697:1;31679:20;:::i;:::-;31674:25;;31713:20;31731:1;31713:20;:::i;:::-;31708:25;;31768:1;31765;31761:9;31790:30;31808:11;31790:30;:::i;:::-;31779:41;;31969:1;31960:7;31956:15;31953:1;31950:22;31930:1;31923:9;31903:83;31880:139;;31999:18;;:::i;:::-;31880:139;31664:362;31616:410;;;;:::o;32032:180::-;32080:77;32077:1;32070:88;32177:4;32174:1;32167:15;32201:4;32198:1;32191:15;32218:185;32258:1;32275:20;32293:1;32275:20;:::i;:::-;32270:25;;32309:20;32327:1;32309:20;:::i;:::-;32304:25;;32348:1;32338:35;;32353:18;;:::i;:::-;32338:35;32395:1;32392;32388:9;32383:14;;32218:185;;;;:::o;32409:229::-;32549:34;32545:1;32537:6;32533:14;32526:58;32618:12;32613:2;32605:6;32601:15;32594:37;32409:229;:::o;32644:366::-;32786:3;32807:67;32871:2;32866:3;32807:67;:::i;:::-;32800:74;;32883:93;32972:3;32883:93;:::i;:::-;33001:2;32996:3;32992:12;32985:19;;32644:366;;;:::o;33016:419::-;33182:4;33220:2;33209:9;33205:18;33197:26;;33269:9;33263:4;33259:20;33255:1;33244:9;33240:17;33233:47;33297:131;33423:4;33297:131;:::i;:::-;33289:139;;33016:419;;;:::o;33441:143::-;33498:5;33529:6;33523:13;33514:22;;33545:33;33572:5;33545:33;:::i;:::-;33441:143;;;;:::o;33590:351::-;33660:6;33709:2;33697:9;33688:7;33684:23;33680:32;33677:119;;;33715:79;;:::i;:::-;33677:119;33835:1;33860:64;33916:7;33907:6;33896:9;33892:22;33860:64;:::i;:::-;33850:74;;33806:128;33590:351;;;;:::o;33947:85::-;33992:7;34021:5;34010:16;;33947:85;;;:::o;34038:158::-;34096:9;34129:61;34147:42;34156:32;34182:5;34156:32;:::i;:::-;34147:42;:::i;:::-;34129:61;:::i;:::-;34116:74;;34038:158;;;:::o;34202:147::-;34297:45;34336:5;34297:45;:::i;:::-;34292:3;34285:58;34202:147;;:::o;34355:114::-;34422:6;34456:5;34450:12;34440:22;;34355:114;;;:::o;34475:184::-;34574:11;34608:6;34603:3;34596:19;34648:4;34643:3;34639:14;34624:29;;34475:184;;;;:::o;34665:132::-;34732:4;34755:3;34747:11;;34785:4;34780:3;34776:14;34768:22;;34665:132;;;:::o;34803:108::-;34880:24;34898:5;34880:24;:::i;:::-;34875:3;34868:37;34803:108;;:::o;34917:179::-;34986:10;35007:46;35049:3;35041:6;35007:46;:::i;:::-;35085:4;35080:3;35076:14;35062:28;;34917:179;;;;:::o;35102:113::-;35172:4;35204;35199:3;35195:14;35187:22;;35102:113;;;:::o;35251:732::-;35370:3;35399:54;35447:5;35399:54;:::i;:::-;35469:86;35548:6;35543:3;35469:86;:::i;:::-;35462:93;;35579:56;35629:5;35579:56;:::i;:::-;35658:7;35689:1;35674:284;35699:6;35696:1;35693:13;35674:284;;;35775:6;35769:13;35802:63;35861:3;35846:13;35802:63;:::i;:::-;35795:70;;35888:60;35941:6;35888:60;:::i;:::-;35878:70;;35734:224;35721:1;35718;35714:9;35709:14;;35674:284;;;35678:14;35974:3;35967:10;;35375:608;;;35251:732;;;;:::o;35989:831::-;36252:4;36290:3;36279:9;36275:19;36267:27;;36304:71;36372:1;36361:9;36357:17;36348:6;36304:71;:::i;:::-;36385:80;36461:2;36450:9;36446:18;36437:6;36385:80;:::i;:::-;36512:9;36506:4;36502:20;36497:2;36486:9;36482:18;36475:48;36540:108;36643:4;36634:6;36540:108;:::i;:::-;36532:116;;36658:72;36726:2;36715:9;36711:18;36702:6;36658:72;:::i;:::-;36740:73;36808:3;36797:9;36793:19;36784:6;36740:73;:::i;:::-;35989:831;;;;;;;;:::o;36826:177::-;36966:29;36962:1;36954:6;36950:14;36943:53;36826:177;:::o;37009:366::-;37151:3;37172:67;37236:2;37231:3;37172:67;:::i;:::-;37165:74;;37248:93;37337:3;37248:93;:::i;:::-;37366:2;37361:3;37357:12;37350:19;;37009:366;;;:::o;37381:419::-;37547:4;37585:2;37574:9;37570:18;37562:26;;37634:9;37628:4;37624:20;37620:1;37609:9;37605:17;37598:47;37662:131;37788:4;37662:131;:::i;:::-;37654:139;;37381:419;;;:::o;37806:220::-;37946:34;37942:1;37934:6;37930:14;37923:58;38015:3;38010:2;38002:6;37998:15;37991:28;37806:220;:::o;38032:366::-;38174:3;38195:67;38259:2;38254:3;38195:67;:::i;:::-;38188:74;;38271:93;38360:3;38271:93;:::i;:::-;38389:2;38384:3;38380:12;38373:19;;38032:366;;;:::o;38404:419::-;38570:4;38608:2;38597:9;38593:18;38585:26;;38657:9;38651:4;38647:20;38643:1;38632:9;38628:17;38621:47;38685:131;38811:4;38685:131;:::i;:::-;38677:139;;38404:419;;;:::o
Swarm Source
ipfs://4c754ee5731c71e3a7a5900d58467df5fd0feedc633373fb77a9672afa3606a6
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.