ERC-20
DeFi
Overview
Max Total Supply
200,000,000 OpenLi
Holders
308 (0.00%)
Market
Price
$0.00 @ 0.000000 ETH (+0.81%)
Onchain Market Cap
$43,342.00
Circulating Supply Market Cap
$0.00
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.000000001 OpenLiValue
$0.00 ( ~0 Eth) [0.0000%]Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
OpenLiquidity
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-06-19 */ // SPDX-License-Identifier: MIT /* Unlock the Potential of Locked Liquidity in DeFi Website: openliquidity.io X: x.com/Open_Liquidity Telegram: t.me/Open_Liquidity backed by CryptoDo */ pragma solidity ^0.8.23; 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 OpenLiquidity is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "OpenLiquidity"; string private constant _symbol = "OpenLi"; uint8 private constant _decimals = 9; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) public _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 200_000_000 * 10**_decimals; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 public _taxFeeOnBuy = 5; uint256 public _taxFeeOnSell = 5; uint256 public _maxFeeThreshold = 25; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previoustaxFee = _taxFee; address payable public _devAddress; address payable public _daoAddress; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingActive; bool private inSwap = false; bool private swapEnabled = true; bool public daoFeeEnabled = false; bool public feeAddressesManagementRevoked; uint256 public _maxTxAmount = _tTotal.div(100); uint256 public _maxWalletSize = _tTotal.div(100); uint256 public _swapTokensAtAmount = 1000 * 10**_decimals; address public operatorAddress; address public saleStarterAddress; modifier lockTheSwap() { inSwap = true; _; inSwap = false; } constructor( address routerAddress, address devAddress, address daoAddress ) { _tOwned[_msgSender()] = _rTotal; _devAddress = payable(devAddress); _daoAddress = payable(daoAddress); IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(routerAddress); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_devAddress] = 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 tokenFromRef(_tOwned[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, "the transfer amount exceeds allowance" ) ); return true; } function tokenFromRef(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount has to be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function remAllFee() private { if (_taxFee == 0) return; _previoustaxFee = _taxFee; _taxFee = 0; } function resAllFee() private { _taxFee = _previoustaxFee; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "Can't approve from zero address"); require(spender != address(0), "Can't approve to zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(to != address(0), "Cant transfer to address zero"); require(amount > 0, "Amount should be above zero"); if (from != owner() && to != owner()) { if (!tradingActive) { require( from == owner(), "Only owner can trade before trading activation" ); } require(amount <= _maxTxAmount, "Exceeded max transaction limit"); if (to != uniswapV2Pair) { require( balanceOf(to) + amount <= _maxWalletSize, "Exceeds max wallet balance" ); } 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; if ( (_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair) ) { takeFee = false; } else { if (from == uniswapV2Pair && to != address(uniswapV2Router)) { _taxFee = _taxFeeOnBuy; } if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _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 { if (daoFeeEnabled) { uint256 primaryAmount = amount.mul(80).div(100); uint256 secondaryAmount = amount.mul(20).div(100); (bool sentdev, ) = payable(_devAddress).call{value: primaryAmount}(""); require(sentdev, "Transfer to dev failed"); (bool sentdao, ) = payable(_daoAddress).call{value: secondaryAmount}(""); require(sentdao, "Transfer to dao failed"); } else { (bool sentdev, ) = payable(_devAddress).call{value: amount}(""); require(sentdev, "Transfer to dev failed"); } } function enableTrading(bool _tradingActive) public { require( msg.sender == operatorAddress || msg.sender == owner() || msg.sender == saleStarterAddress, "Forbidden" ); tradingActive = _tradingActive; } function setOperator(address operator) public onlyOwner { operatorAddress = operator; } function setSaleStarter(address saleStarter) public onlyOperator { saleStarterAddress = saleStarter; } function toggleDaoFeeEnabled() public onlyOperator { daoFeeEnabled = !daoFeeEnabled; } function manualSend() external { require(msg.sender == _devAddress, "Caller is not a dev address"); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) remAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) resAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 tTransferAmount, uint256 tCom ) = _getValues(tAmount); _tOwned[sender] = _tOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(rTransferAmount); _takeCom(tCom, sender); emit Transfer(sender, recipient, tTransferAmount); } function _takeCom(uint256 tCom, address from) private { uint256 currentRate = _getRate(); uint256 rCom = tCom.mul(currentRate); _tOwned[address(this)] = _tOwned[address(this)].add(rCom); emit Transfer(from, address(this), rCom); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tTeam) = _getTValues( tAmount, _taxFee ); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount) = _getRValues( tAmount, tTeam, currentRate ); return (rAmount, rTransferAmount, tTransferAmount, tTeam); } function _getTValues(uint256 tAmount, uint256 taxFee) private pure returns (uint256, uint256) { uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tTeam); return (tTransferAmount, tTeam); } function _getRValues( uint256 tAmount, uint256 tTeam, uint256 currentRate ) private pure returns (uint256, uint256) { uint256 rAmount = tAmount.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rTeam); return (rAmount, rTransferAmount); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setFee(uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOperator { require( taxFeeOnBuy >= 0 && taxFeeOnBuy <= _maxFeeThreshold, "Buy tax must be between 0% and _maxFeeThreshold" ); require( taxFeeOnSell >= 0 && taxFeeOnSell <= _maxFeeThreshold, "Sell tax must be between 0% and _maxFeeThreshold" ); _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } function downgradeMaxFee() public onlyOperator { require(_maxFeeThreshold != 5, "fee already downgraded"); _maxFeeThreshold = 5; _taxFeeOnBuy = 5; _taxFeeOnSell = 5; } function setMinSwapTokens(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } function setMaxWalletAmount(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; } function excludeAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOperator { for (uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } function changeDevelopmentAddress(address newDevAddress) public onlyOperator { require( !feeAddressesManagementRevoked, "Rights to change the fee addresses has beed revoked" ); require( newDevAddress != address(0), "New development address cannot be zero address" ); _isExcludedFromFee[_devAddress] = false; _devAddress = payable(newDevAddress); _isExcludedFromFee[_devAddress] = true; } function changeDaoAddress(address newDaoAddress) public onlyOperator { require( !feeAddressesManagementRevoked, "Rights to change the fee addresses has beed revoked" ); require( newDaoAddress != address(0), "New dao address cannot be zero address" ); _isExcludedFromFee[_daoAddress] = false; _daoAddress = payable(newDaoAddress); _isExcludedFromFee[_daoAddress] = true; } function revokeRightsToChangeFeeAddresses() public onlyOperator { require(!feeAddressesManagementRevoked, "Rights already revoked"); feeAddressesManagementRevoked = true; } modifier onlyOperator() { require( msg.sender == operatorAddress || msg.sender == owner(), "Caller is not an operator" ); _; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"routerAddress","type":"address"},{"internalType":"address","name":"devAddress","type":"address"},{"internalType":"address","name":"daoAddress","type":"address"}],"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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_daoAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_devAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxFeeThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFeeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFeeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newDaoAddress","type":"address"}],"name":"changeDaoAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newDevAddress","type":"address"}],"name":"changeDevelopmentAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"daoFeeEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"downgradeMaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingActive","type":"bool"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeAddressesManagementRevoked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"operatorAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"revokeRightsToChangeFeeAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"saleStarterAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"setOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"saleStarter","type":"address"}],"name":"setSaleStarter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"toggleDaoFeeEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526009600a61001291906108bc565b630bebc2006100219190610906565b5f1961002d9190610974565b5f1961003991906109a4565b600555600560075560056008556019600955600854600a55600a54600b555f600f60156101000a81548160ff0219169083151502179055506001600f60166101000a81548160ff0219169083151502179055505f600f60176101000a81548160ff0219169083151502179055506100d660646009600a6100b991906108bc565b630bebc2006100c89190610906565b61066d60201b90919060201c565b60105561010960646009600a6100ec91906108bc565b630bebc2006100fb9190610906565b61066d60201b90919060201c565b6011556009600a61011a91906108bc565b6103e86101279190610906565b601255348015610135575f80fd5b506040516157d33803806157d383398181016040528101906101579190610a35565b5f6101666106bc60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060055460025f6102166106bc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555081600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f83905080600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610360573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103849190610a85565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103e9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061040d9190610a85565b6040518363ffffffff1660e01b815260040161042a929190610abf565b6020604051808303815f875af1158015610446573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061046a9190610a85565b600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f6104bc6106c360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506105e46106bc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a61064091906108bc565b630bebc20061064f9190610906565b60405161065c9190610af5565b60405180910390a350505050610bce565b5f6106b483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506106ea60201b60201c565b905092915050565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f8083118290610730576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107279190610b7e565b60405180910390fd5b505f838561073e9190610b9e565b9050809150509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156107cd578086048111156107a9576107a861074b565b5b60018516156107b85780820291505b80810290506107c685610778565b945061078d565b94509492505050565b5f826107e557600190506108a0565b816107f2575f90506108a0565b8160018114610808576002811461081257610841565b60019150506108a0565b60ff8411156108245761082361074b565b5b8360020a91508482111561083b5761083a61074b565b5b506108a0565b5060208310610133831016604e8410600b84101617156108765782820a9050838111156108715761087061074b565b5b6108a0565b6108838484846001610784565b9250905081840481111561089a5761089961074b565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6108c6826108a7565b91506108d1836108b0565b92506108fe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846107d6565b905092915050565b5f610910826108a7565b915061091b836108a7565b9250828202610929816108a7565b915082820484148315176109405761093f61074b565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61097e826108a7565b9150610989836108a7565b92508261099957610998610947565b5b828206905092915050565b5f6109ae826108a7565b91506109b9836108a7565b92508282039050818111156109d1576109d061074b565b5b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610a04826109db565b9050919050565b610a14816109fa565b8114610a1e575f80fd5b50565b5f81519050610a2f81610a0b565b92915050565b5f805f60608486031215610a4c57610a4b6109d7565b5b5f610a5986828701610a21565b9350506020610a6a86828701610a21565b9250506040610a7b86828701610a21565b9150509250925092565b5f60208284031215610a9a57610a996109d7565b5b5f610aa784828501610a21565b91505092915050565b610ab9816109fa565b82525050565b5f604082019050610ad25f830185610ab0565b610adf6020830184610ab0565b9392505050565b610aef816108a7565b82525050565b5f602082019050610b085f830184610ae6565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610b5082610b0e565b610b5a8185610b18565b9350610b6a818560208601610b28565b610b7381610b36565b840191505092915050565b5f6020820190508181035f830152610b968184610b46565b905092915050565b5f610ba8826108a7565b9150610bb3836108a7565b925082610bc357610bc2610947565b5b828204905092915050565b614bf880610bdb5f395ff3fe608060405260043610610249575f3560e01c806374010ece116101385780639fa6108c116100b5578063dd88800511610079578063dd88800514610820578063f275f64b14610848578063f2fde38b14610870578063f429389014610898578063f63c1607146108ae578063fb0c2643146108d857610250565b80639fa6108c1461072c578063a9059cbb14610756578063b3ab15fb14610792578063bf5976d3146107ba578063dd62ed3e146107e457610250565b80638da5cb5b116100fc5780638da5cb5b1461065c5780638f9a55c01461068657806390171908146106b057806390d2c93a146106da57806395d89b411461070257610250565b806374010ece1461058e578063768dc710146105b65780637abb427d146105f25780637d1db4a5146106085780638199040e1461063257610250565b80632fd689e3116101c657806352f7c9881161018a57806352f7c988146104c05780636acf32c9146104e85780636af659291461051257806370a082311461053c578063715018a61461057857610250565b80632fd689e3146103f0578063313ce5671461041a57806349bd5a5e146104445780634c1853451461046e5780634ead9c1c1461049857610250565b80631e7fc8471161020d5780631e7fc8471461033857806323b872dd14610360578063266786231461039c57806327a14fc2146103b25780632a402492146103da57610250565b806306fdde0314610254578063095ea7b31461027e578063127effb2146102ba5780631694505e146102e457806318160ddd1461030e57610250565b3661025057005b5f80fd5b34801561025f575f80fd5b50610268610900565b604051610275919061372f565b60405180910390f35b348015610289575f80fd5b506102a4600480360381019061029f91906137e4565b61093d565b6040516102b1919061383c565b60405180910390f35b3480156102c5575f80fd5b506102ce61095a565b6040516102db9190613864565b60405180910390f35b3480156102ef575f80fd5b506102f861097f565b60405161030591906138d8565b60405180910390f35b348015610319575f80fd5b506103226109a4565b60405161032f9190613900565b60405180910390f35b348015610343575f80fd5b5061035e60048036038101906103599190613919565b6109c7565b005b34801561036b575f80fd5b5061038660048036038101906103819190613944565b610c7f565b604051610393919061383c565b60405180910390f35b3480156103a7575f80fd5b506103b0610d53565b005b3480156103bd575f80fd5b506103d860048036038101906103d39190613994565b610e7e565b005b3480156103e5575f80fd5b506103ee610f1c565b005b3480156103fb575f80fd5b50610404611055565b6040516104119190613900565b60405180910390f35b348015610425575f80fd5b5061042e61105b565b60405161043b91906139da565b60405180910390f35b34801561044f575f80fd5b50610458611063565b6040516104659190613864565b60405180910390f35b348015610479575f80fd5b50610482611088565b60405161048f9190613a13565b60405180910390f35b3480156104a3575f80fd5b506104be60048036038101906104b99190613919565b6110ad565b005b3480156104cb575f80fd5b506104e660048036038101906104e19190613a2c565b6111bc565b005b3480156104f3575f80fd5b506104fc61133c565b6040516105099190613864565b60405180910390f35b34801561051d575f80fd5b50610526611361565b6040516105339190613a13565b60405180910390f35b348015610547575f80fd5b50610562600480360381019061055d9190613919565b611386565b60405161056f9190613900565b60405180910390f35b348015610583575f80fd5b5061058c6113d4565b005b348015610599575f80fd5b506105b460048036038101906105af9190613994565b611522565b005b3480156105c1575f80fd5b506105dc60048036038101906105d79190613919565b6115c0565b6040516105e9919061383c565b60405180910390f35b3480156105fd575f80fd5b506106066115dd565b005b348015610613575f80fd5b5061061c6116d5565b6040516106299190613900565b60405180910390f35b34801561063d575f80fd5b506106466116db565b6040516106539190613900565b60405180910390f35b348015610667575f80fd5b506106706116e1565b60405161067d9190613864565b60405180910390f35b348015610691575f80fd5b5061069a611708565b6040516106a79190613900565b60405180910390f35b3480156106bb575f80fd5b506106c461170e565b6040516106d1919061383c565b60405180910390f35b3480156106e5575f80fd5b5061070060048036038101906106fb9190613af5565b611721565b005b34801561070d575f80fd5b50610716611888565b604051610723919061372f565b60405180910390f35b348015610737575f80fd5b506107406118c5565b60405161074d919061383c565b60405180910390f35b348015610761575f80fd5b5061077c600480360381019061077791906137e4565b6118d8565b604051610789919061383c565b60405180910390f35b34801561079d575f80fd5b506107b860048036038101906107b39190613919565b6118f5565b005b3480156107c5575f80fd5b506107ce6119cc565b6040516107db9190613900565b60405180910390f35b3480156107ef575f80fd5b5061080a60048036038101906108059190613b52565b6119d2565b6040516108179190613900565b60405180910390f35b34801561082b575f80fd5b5061084660048036038101906108419190613994565b611a54565b005b348015610853575f80fd5b5061086e60048036038101906108699190613b90565b611af2565b005b34801561087b575f80fd5b5061089660048036038101906108919190613919565b611c32565b005b3480156108a3575f80fd5b506108ac611def565b005b3480156108b9575f80fd5b506108c2611e8e565b6040516108cf9190613900565b60405180910390f35b3480156108e3575f80fd5b506108fe60048036038101906108f99190613919565b611e94565b005b60606040518060400160405280600d81526020017f4f70656e4c697175696469747900000000000000000000000000000000000000815250905090565b5f61095061094961214c565b8484612153565b6001905092915050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6009600a6109b39190613d17565b630bebc2006109c29190613d61565b905090565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610a545750610a256116e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610a93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8a90613dec565b60405180910390fd5b600f60189054906101000a900460ff1615610ae3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ada90613e7a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4890613f08565b60405180910390fd5b5f60045f600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f610c8b848484612316565b610d4884610c9761214c565b610d4385604051806060016040528060258152602001614b9e6025913960035f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610cfa61214c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612a1c9092919063ffffffff16565b612153565b600190509392505050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610de05750610db16116e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610e1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1690613dec565b60405180910390fd5b600560095403610e64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5b90613f70565b60405180910390fd5b600560098190555060056007819055506005600881905550565b610e8661214c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0990613fd8565b60405180910390fd5b8060118190555050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610fa95750610f7a6116e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610fe8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdf90613dec565b60405180910390fd5b600f60189054906101000a900460ff1615611038576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102f90614040565b60405180910390fd5b6001600f60186101000a81548160ff021916908315150217905550565b60125481565b5f6009905090565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061113a575061110b6116e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611179576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117090613dec565b60405180910390fd5b8060145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611249575061121a6116e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611288576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127f90613dec565b60405180910390fd5b5f821015801561129a57506009548211155b6112d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d0906140ce565b60405180910390fd5b5f81101580156112eb57506009548111155b61132a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113219061415c565b60405180910390fd5b81600781905550806008819055505050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6113cd60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612a7e565b9050919050565b6113dc61214c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611468576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145f90613fd8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61152a61214c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ad90613fd8565b60405180910390fd5b8060108190555050565b6004602052805f5260405f205f915054906101000a900460ff1681565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061166a575061163b6116e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6116a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a090613dec565b60405180910390fd5b600f60179054906101000a900460ff1615600f60176101000a81548160ff021916908315150217905550565b60105481565b60085481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b600f60179054906101000a900460ff1681565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806117ae575061177f6116e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6117ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e490613dec565b60405180910390fd5b5f5b83839050811015611882578160045f8686858181106118115761181061417a565b5b90506020020160208101906118269190613919565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506117ef565b50505050565b60606040518060400160405280600681526020017f4f70656e4c690000000000000000000000000000000000000000000000000000815250905090565b600f60189054906101000a900460ff1681565b5f6118eb6118e461214c565b8484612316565b6001905092915050565b6118fd61214c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611989576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198090613fd8565b60405180910390fd5b8060135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60075481565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611a5c61214c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ae8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611adf90613fd8565b60405180910390fd5b8060128190555050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611b7f5750611b506116e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80611bd6575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611c15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0c906141f1565b60405180910390fd5b80600f60146101000a81548160ff02191690831515021790555050565b611c3a61214c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbd90613fd8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2b9061427f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e75906142e7565b60405180910390fd5b5f479050611e8b81612aea565b50565b60095481565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611f215750611ef26116e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611f60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5790613dec565b60405180910390fd5b600f60189054906101000a900460ff1615611fb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa790613e7a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361201e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201590614375565b60405180910390fd5b5f60045f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036121c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b8906143dd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361222f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222690614445565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516123099190613900565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612384576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237b906144ad565b60405180910390fd5b5f81116123c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123bd90614515565b60405180910390fd5b6123ce6116e1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561243c575061240c6116e1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561273b57600f60149054906101000a900460ff166124cb5761245d6116e1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146124ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124c1906145a3565b60405180910390fd5b5b601054811115612510576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125079061460b565b60405180910390fd5b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146125bd576011548161257184611386565b61257b9190614629565b11156125bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125b3906146a6565b60405180910390fd5b5b5f6125c730611386565b90505f601254821015905060105482106125e15760105491505b8080156125fb5750600f60159054906101000a900460ff16155b80156126545750600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561266c5750600f60169054906101000a900460ff165b80156126bf575060045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612712575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156127385761272082612dbc565b5f4790505f8111156127365761273547612aea565b5b505b50505b5f6001905060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806127db575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8061288c5750600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561288b5750600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15612899575f9050612a0a565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156129425750600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561295157600754600a819055505b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156129fa5750600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612a0957600854600a819055505b5b612a1684848484613027565b50505050565b5f838311158290612a63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5a919061372f565b60405180910390fd5b505f8385612a7191906146c4565b9050809150509392505050565b5f600554821115612ac4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612abb90614767565b60405180910390fd5b5f612acd613054565b9050612ae2818461307d90919063ffffffff16565b915050919050565b600f60179054906101000a900460ff1615612cee575f612b276064612b196050856130c690919063ffffffff16565b61307d90919063ffffffff16565b90505f612b516064612b436014866130c690919063ffffffff16565b61307d90919063ffffffff16565b90505f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612b99906147b2565b5f6040518083038185875af1925050503d805f8114612bd3576040519150601f19603f3d011682016040523d82523d5f602084013e612bd8565b606091505b5050905080612c1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c1390614810565b60405180910390fd5b5f600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612c62906147b2565b5f6040518083038185875af1925050503d805f8114612c9c576040519150601f19603f3d011682016040523d82523d5f602084013e612ca1565b606091505b5050905080612ce5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cdc90614878565b60405180910390fd5b50505050612db9565b5f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612d34906147b2565b5f6040518083038185875af1925050503d805f8114612d6e576040519150601f19603f3d011682016040523d82523d5f602084013e612d73565b606091505b5050905080612db7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dae90614810565b60405180910390fd5b505b50565b6001600f60156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115612df357612df2614896565b5b604051908082528060200260200182016040528015612e215781602001602082028036833780820191505090505b50905030815f81518110612e3857612e3761417a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612edc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f0091906148d7565b81600181518110612f1457612f1361417a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612f7a30600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612153565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612fdc9594939291906149f2565b5f604051808303815f87803b158015612ff3575f80fd5b505af1158015613005573d5f803e3d5ffd5b50505050505f600f60156101000a81548160ff02191690831515021790555050565b806130355761303461313d565b5b61304084848461315a565b8061304e5761304d613309565b5b50505050565b5f805f61305f613314565b91509150613076818361307d90919063ffffffff16565b9250505090565b5f6130be83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506133ac565b905092915050565b5f8083036130d6575f9050613137565b5f82846130e39190613d61565b90508284826130f29190614a77565b14613132576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161312990614b17565b60405180910390fd5b809150505b92915050565b5f600a54031561315857600a54600b819055505f600a819055505b565b5f805f806131678561340d565b93509350935093506131bf8460025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461345790919063ffffffff16565b60025f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506132508360025f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546134a090919063ffffffff16565b60025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061329b81886134fd565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516132f89190613900565b60405180910390a350505050505050565b600b54600a81905550565b5f805f60055490505f6009600a61332b9190613d17565b630bebc20061333a9190613d61565b905061336d6009600a61334d9190613d17565b630bebc20061335c9190613d61565b60055461307d90919063ffffffff16565b82101561339f576005546009600a6133859190613d17565b630bebc2006133949190613d61565b9350935050506133a8565b81819350935050505b9091565b5f80831182906133f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133e9919061372f565b60405180910390fd5b505f83856134009190614a77565b9050809150509392505050565b5f805f805f8061341f87600a5461361a565b915091505f61342c613054565b90505f8061343b8a858561366a565b9150915081818686985098509850985050505050509193509193565b5f61349883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612a1c565b905092915050565b5f8082846134ae9190614629565b9050838110156134f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134ea90614b7f565b60405180910390fd5b8091505092915050565b5f613506613054565b90505f61351c82856130c690919063ffffffff16565b905061356e8160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546134a090919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161360c9190613900565b60405180910390a350505050565b5f805f613643606461363586886130c690919063ffffffff16565b61307d90919063ffffffff16565b90505f613659828761345790919063ffffffff16565b905080829350935050509250929050565b5f805f61368084876130c690919063ffffffff16565b90505f61369685876130c690919063ffffffff16565b90505f6136ac828461345790919063ffffffff16565b9050828194509450505050935093915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f613701826136bf565b61370b81856136c9565b935061371b8185602086016136d9565b613724816136e7565b840191505092915050565b5f6020820190508181035f83015261374781846136f7565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61378082613757565b9050919050565b61379081613776565b811461379a575f80fd5b50565b5f813590506137ab81613787565b92915050565b5f819050919050565b6137c3816137b1565b81146137cd575f80fd5b50565b5f813590506137de816137ba565b92915050565b5f80604083850312156137fa576137f961374f565b5b5f6138078582860161379d565b9250506020613818858286016137d0565b9150509250929050565b5f8115159050919050565b61383681613822565b82525050565b5f60208201905061384f5f83018461382d565b92915050565b61385e81613776565b82525050565b5f6020820190506138775f830184613855565b92915050565b5f819050919050565b5f6138a061389b61389684613757565b61387d565b613757565b9050919050565b5f6138b182613886565b9050919050565b5f6138c2826138a7565b9050919050565b6138d2816138b8565b82525050565b5f6020820190506138eb5f8301846138c9565b92915050565b6138fa816137b1565b82525050565b5f6020820190506139135f8301846138f1565b92915050565b5f6020828403121561392e5761392d61374f565b5b5f61393b8482850161379d565b91505092915050565b5f805f6060848603121561395b5761395a61374f565b5b5f6139688682870161379d565b93505060206139798682870161379d565b925050604061398a868287016137d0565b9150509250925092565b5f602082840312156139a9576139a861374f565b5b5f6139b6848285016137d0565b91505092915050565b5f60ff82169050919050565b6139d4816139bf565b82525050565b5f6020820190506139ed5f8301846139cb565b92915050565b5f6139fd82613757565b9050919050565b613a0d816139f3565b82525050565b5f602082019050613a265f830184613a04565b92915050565b5f8060408385031215613a4257613a4161374f565b5b5f613a4f858286016137d0565b9250506020613a60858286016137d0565b9150509250929050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112613a8b57613a8a613a6a565b5b8235905067ffffffffffffffff811115613aa857613aa7613a6e565b5b602083019150836020820283011115613ac457613ac3613a72565b5b9250929050565b613ad481613822565b8114613ade575f80fd5b50565b5f81359050613aef81613acb565b92915050565b5f805f60408486031215613b0c57613b0b61374f565b5b5f84013567ffffffffffffffff811115613b2957613b28613753565b5b613b3586828701613a76565b93509350506020613b4886828701613ae1565b9150509250925092565b5f8060408385031215613b6857613b6761374f565b5b5f613b758582860161379d565b9250506020613b868582860161379d565b9150509250929050565b5f60208284031215613ba557613ba461374f565b5b5f613bb284828501613ae1565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115613c3d57808604811115613c1957613c18613bbb565b5b6001851615613c285780820291505b8081029050613c3685613be8565b9450613bfd565b94509492505050565b5f82613c555760019050613d10565b81613c62575f9050613d10565b8160018114613c785760028114613c8257613cb1565b6001915050613d10565b60ff841115613c9457613c93613bbb565b5b8360020a915084821115613cab57613caa613bbb565b5b50613d10565b5060208310610133831016604e8410600b8410161715613ce65782820a905083811115613ce157613ce0613bbb565b5b613d10565b613cf38484846001613bf4565b92509050818404811115613d0a57613d09613bbb565b5b81810290505b9392505050565b5f613d21826137b1565b9150613d2c836139bf565b9250613d597fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613c46565b905092915050565b5f613d6b826137b1565b9150613d76836137b1565b9250828202613d84816137b1565b91508282048414831517613d9b57613d9a613bbb565b5b5092915050565b7f43616c6c6572206973206e6f7420616e206f70657261746f72000000000000005f82015250565b5f613dd66019836136c9565b9150613de182613da2565b602082019050919050565b5f6020820190508181035f830152613e0381613dca565b9050919050565b7f52696768747320746f206368616e6765207468652066656520616464726573735f8201527f6573206861732062656564207265766f6b656400000000000000000000000000602082015250565b5f613e646033836136c9565b9150613e6f82613e0a565b604082019050919050565b5f6020820190508181035f830152613e9181613e58565b9050919050565b7f4e65772064616f20616464726573732063616e6e6f74206265207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613ef26026836136c9565b9150613efd82613e98565b604082019050919050565b5f6020820190508181035f830152613f1f81613ee6565b9050919050565b7f66656520616c726561647920646f776e677261646564000000000000000000005f82015250565b5f613f5a6016836136c9565b9150613f6582613f26565b602082019050919050565b5f6020820190508181035f830152613f8781613f4e565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613fc26020836136c9565b9150613fcd82613f8e565b602082019050919050565b5f6020820190508181035f830152613fef81613fb6565b9050919050565b7f52696768747320616c7265616479207265766f6b6564000000000000000000005f82015250565b5f61402a6016836136c9565b915061403582613ff6565b602082019050919050565b5f6020820190508181035f8301526140578161401e565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e64205f5f8201527f6d61784665655468726573686f6c640000000000000000000000000000000000602082015250565b5f6140b8602f836136c9565b91506140c38261405e565b604082019050919050565b5f6020820190508181035f8301526140e5816140ac565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e64205f8201527f5f6d61784665655468726573686f6c6400000000000000000000000000000000602082015250565b5f6141466030836136c9565b9150614151826140ec565b604082019050919050565b5f6020820190508181035f8301526141738161413a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f466f7262696464656e00000000000000000000000000000000000000000000005f82015250565b5f6141db6009836136c9565b91506141e6826141a7565b602082019050919050565b5f6020820190508181035f830152614208816141cf565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6142696026836136c9565b91506142748261420f565b604082019050919050565b5f6020820190508181035f8301526142968161425d565b9050919050565b7f43616c6c6572206973206e6f74206120646576206164647265737300000000005f82015250565b5f6142d1601b836136c9565b91506142dc8261429d565b602082019050919050565b5f6020820190508181035f8301526142fe816142c5565b9050919050565b7f4e657720646576656c6f706d656e7420616464726573732063616e6e6f7420625f8201527f65207a65726f2061646472657373000000000000000000000000000000000000602082015250565b5f61435f602e836136c9565b915061436a82614305565b604082019050919050565b5f6020820190508181035f83015261438c81614353565b9050919050565b7f43616e277420617070726f76652066726f6d207a65726f2061646472657373005f82015250565b5f6143c7601f836136c9565b91506143d282614393565b602082019050919050565b5f6020820190508181035f8301526143f4816143bb565b9050919050565b7f43616e277420617070726f766520746f207a65726f20616464726573730000005f82015250565b5f61442f601d836136c9565b915061443a826143fb565b602082019050919050565b5f6020820190508181035f83015261445c81614423565b9050919050565b7f43616e74207472616e7366657220746f2061646472657373207a65726f0000005f82015250565b5f614497601d836136c9565b91506144a282614463565b602082019050919050565b5f6020820190508181035f8301526144c48161448b565b9050919050565b7f416d6f756e742073686f756c642062652061626f7665207a65726f00000000005f82015250565b5f6144ff601b836136c9565b915061450a826144cb565b602082019050919050565b5f6020820190508181035f83015261452c816144f3565b9050919050565b7f4f6e6c79206f776e65722063616e207472616465206265666f726520747261645f8201527f696e672061637469766174696f6e000000000000000000000000000000000000602082015250565b5f61458d602e836136c9565b915061459882614533565b604082019050919050565b5f6020820190508181035f8301526145ba81614581565b9050919050565b7f4578636565646564206d6178207472616e73616374696f6e206c696d697400005f82015250565b5f6145f5601e836136c9565b9150614600826145c1565b602082019050919050565b5f6020820190508181035f830152614622816145e9565b9050919050565b5f614633826137b1565b915061463e836137b1565b925082820190508082111561465657614655613bbb565b5b92915050565b7f45786365656473206d61782077616c6c65742062616c616e63650000000000005f82015250565b5f614690601a836136c9565b915061469b8261465c565b602082019050919050565b5f6020820190508181035f8301526146bd81614684565b9050919050565b5f6146ce826137b1565b91506146d9836137b1565b92508282039050818111156146f1576146f0613bbb565b5b92915050565b7f416d6f756e742068617320746f206265206c657373207468616e20746f74616c5f8201527f207265666c656374696f6e730000000000000000000000000000000000000000602082015250565b5f614751602c836136c9565b915061475c826146f7565b604082019050919050565b5f6020820190508181035f83015261477e81614745565b9050919050565b5f81905092915050565b50565b5f61479d5f83614785565b91506147a88261478f565b5f82019050919050565b5f6147bc82614792565b9150819050919050565b7f5472616e7366657220746f20646576206661696c6564000000000000000000005f82015250565b5f6147fa6016836136c9565b9150614805826147c6565b602082019050919050565b5f6020820190508181035f830152614827816147ee565b9050919050565b7f5472616e7366657220746f2064616f206661696c6564000000000000000000005f82015250565b5f6148626016836136c9565b915061486d8261482e565b602082019050919050565b5f6020820190508181035f83015261488f81614856565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f815190506148d181613787565b92915050565b5f602082840312156148ec576148eb61374f565b5b5f6148f9848285016148c3565b91505092915050565b5f819050919050565b5f61492561492061491b84614902565b61387d565b6137b1565b9050919050565b6149358161490b565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61496d81613776565b82525050565b5f61497e8383614964565b60208301905092915050565b5f602082019050919050565b5f6149a08261493b565b6149aa8185614945565b93506149b583614955565b805f5b838110156149e55781516149cc8882614973565b97506149d78361498a565b9250506001810190506149b8565b5085935050505092915050565b5f60a082019050614a055f8301886138f1565b614a12602083018761492c565b8181036040830152614a248186614996565b9050614a336060830185613855565b614a4060808301846138f1565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f614a81826137b1565b9150614a8c836137b1565b925082614a9c57614a9b614a4a565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f614b016021836136c9565b9150614b0c82614aa7565b604082019050919050565b5f6020820190508181035f830152614b2e81614af5565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f614b69601b836136c9565b9150614b7482614b35565b602082019050919050565b5f6020820190508181035f830152614b9681614b5d565b905091905056fe746865207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c0c83a019e386b6f89c0273e44460665e0adfc599ff7ac88df16d524fe8c459964736f6c634300081a00330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d00000000000000000000000090a482e6bd0dfb6d13c7987f43f7ff9f71a4076e00000000000000000000000090a482e6bd0dfb6d13c7987f43f7ff9f71a4076e
Deployed Bytecode
0x608060405260043610610249575f3560e01c806374010ece116101385780639fa6108c116100b5578063dd88800511610079578063dd88800514610820578063f275f64b14610848578063f2fde38b14610870578063f429389014610898578063f63c1607146108ae578063fb0c2643146108d857610250565b80639fa6108c1461072c578063a9059cbb14610756578063b3ab15fb14610792578063bf5976d3146107ba578063dd62ed3e146107e457610250565b80638da5cb5b116100fc5780638da5cb5b1461065c5780638f9a55c01461068657806390171908146106b057806390d2c93a146106da57806395d89b411461070257610250565b806374010ece1461058e578063768dc710146105b65780637abb427d146105f25780637d1db4a5146106085780638199040e1461063257610250565b80632fd689e3116101c657806352f7c9881161018a57806352f7c988146104c05780636acf32c9146104e85780636af659291461051257806370a082311461053c578063715018a61461057857610250565b80632fd689e3146103f0578063313ce5671461041a57806349bd5a5e146104445780634c1853451461046e5780634ead9c1c1461049857610250565b80631e7fc8471161020d5780631e7fc8471461033857806323b872dd14610360578063266786231461039c57806327a14fc2146103b25780632a402492146103da57610250565b806306fdde0314610254578063095ea7b31461027e578063127effb2146102ba5780631694505e146102e457806318160ddd1461030e57610250565b3661025057005b5f80fd5b34801561025f575f80fd5b50610268610900565b604051610275919061372f565b60405180910390f35b348015610289575f80fd5b506102a4600480360381019061029f91906137e4565b61093d565b6040516102b1919061383c565b60405180910390f35b3480156102c5575f80fd5b506102ce61095a565b6040516102db9190613864565b60405180910390f35b3480156102ef575f80fd5b506102f861097f565b60405161030591906138d8565b60405180910390f35b348015610319575f80fd5b506103226109a4565b60405161032f9190613900565b60405180910390f35b348015610343575f80fd5b5061035e60048036038101906103599190613919565b6109c7565b005b34801561036b575f80fd5b5061038660048036038101906103819190613944565b610c7f565b604051610393919061383c565b60405180910390f35b3480156103a7575f80fd5b506103b0610d53565b005b3480156103bd575f80fd5b506103d860048036038101906103d39190613994565b610e7e565b005b3480156103e5575f80fd5b506103ee610f1c565b005b3480156103fb575f80fd5b50610404611055565b6040516104119190613900565b60405180910390f35b348015610425575f80fd5b5061042e61105b565b60405161043b91906139da565b60405180910390f35b34801561044f575f80fd5b50610458611063565b6040516104659190613864565b60405180910390f35b348015610479575f80fd5b50610482611088565b60405161048f9190613a13565b60405180910390f35b3480156104a3575f80fd5b506104be60048036038101906104b99190613919565b6110ad565b005b3480156104cb575f80fd5b506104e660048036038101906104e19190613a2c565b6111bc565b005b3480156104f3575f80fd5b506104fc61133c565b6040516105099190613864565b60405180910390f35b34801561051d575f80fd5b50610526611361565b6040516105339190613a13565b60405180910390f35b348015610547575f80fd5b50610562600480360381019061055d9190613919565b611386565b60405161056f9190613900565b60405180910390f35b348015610583575f80fd5b5061058c6113d4565b005b348015610599575f80fd5b506105b460048036038101906105af9190613994565b611522565b005b3480156105c1575f80fd5b506105dc60048036038101906105d79190613919565b6115c0565b6040516105e9919061383c565b60405180910390f35b3480156105fd575f80fd5b506106066115dd565b005b348015610613575f80fd5b5061061c6116d5565b6040516106299190613900565b60405180910390f35b34801561063d575f80fd5b506106466116db565b6040516106539190613900565b60405180910390f35b348015610667575f80fd5b506106706116e1565b60405161067d9190613864565b60405180910390f35b348015610691575f80fd5b5061069a611708565b6040516106a79190613900565b60405180910390f35b3480156106bb575f80fd5b506106c461170e565b6040516106d1919061383c565b60405180910390f35b3480156106e5575f80fd5b5061070060048036038101906106fb9190613af5565b611721565b005b34801561070d575f80fd5b50610716611888565b604051610723919061372f565b60405180910390f35b348015610737575f80fd5b506107406118c5565b60405161074d919061383c565b60405180910390f35b348015610761575f80fd5b5061077c600480360381019061077791906137e4565b6118d8565b604051610789919061383c565b60405180910390f35b34801561079d575f80fd5b506107b860048036038101906107b39190613919565b6118f5565b005b3480156107c5575f80fd5b506107ce6119cc565b6040516107db9190613900565b60405180910390f35b3480156107ef575f80fd5b5061080a60048036038101906108059190613b52565b6119d2565b6040516108179190613900565b60405180910390f35b34801561082b575f80fd5b5061084660048036038101906108419190613994565b611a54565b005b348015610853575f80fd5b5061086e60048036038101906108699190613b90565b611af2565b005b34801561087b575f80fd5b5061089660048036038101906108919190613919565b611c32565b005b3480156108a3575f80fd5b506108ac611def565b005b3480156108b9575f80fd5b506108c2611e8e565b6040516108cf9190613900565b60405180910390f35b3480156108e3575f80fd5b506108fe60048036038101906108f99190613919565b611e94565b005b60606040518060400160405280600d81526020017f4f70656e4c697175696469747900000000000000000000000000000000000000815250905090565b5f61095061094961214c565b8484612153565b6001905092915050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6009600a6109b39190613d17565b630bebc2006109c29190613d61565b905090565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610a545750610a256116e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610a93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8a90613dec565b60405180910390fd5b600f60189054906101000a900460ff1615610ae3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ada90613e7a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4890613f08565b60405180910390fd5b5f60045f600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f610c8b848484612316565b610d4884610c9761214c565b610d4385604051806060016040528060258152602001614b9e6025913960035f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610cfa61214c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612a1c9092919063ffffffff16565b612153565b600190509392505050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610de05750610db16116e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610e1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1690613dec565b60405180910390fd5b600560095403610e64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5b90613f70565b60405180910390fd5b600560098190555060056007819055506005600881905550565b610e8661214c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0990613fd8565b60405180910390fd5b8060118190555050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610fa95750610f7a6116e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610fe8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdf90613dec565b60405180910390fd5b600f60189054906101000a900460ff1615611038576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102f90614040565b60405180910390fd5b6001600f60186101000a81548160ff021916908315150217905550565b60125481565b5f6009905090565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061113a575061110b6116e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611179576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117090613dec565b60405180910390fd5b8060145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611249575061121a6116e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611288576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127f90613dec565b60405180910390fd5b5f821015801561129a57506009548211155b6112d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d0906140ce565b60405180910390fd5b5f81101580156112eb57506009548111155b61132a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113219061415c565b60405180910390fd5b81600781905550806008819055505050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6113cd60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612a7e565b9050919050565b6113dc61214c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611468576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145f90613fd8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61152a61214c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ad90613fd8565b60405180910390fd5b8060108190555050565b6004602052805f5260405f205f915054906101000a900460ff1681565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061166a575061163b6116e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6116a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a090613dec565b60405180910390fd5b600f60179054906101000a900460ff1615600f60176101000a81548160ff021916908315150217905550565b60105481565b60085481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b600f60179054906101000a900460ff1681565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806117ae575061177f6116e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6117ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e490613dec565b60405180910390fd5b5f5b83839050811015611882578160045f8686858181106118115761181061417a565b5b90506020020160208101906118269190613919565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506117ef565b50505050565b60606040518060400160405280600681526020017f4f70656e4c690000000000000000000000000000000000000000000000000000815250905090565b600f60189054906101000a900460ff1681565b5f6118eb6118e461214c565b8484612316565b6001905092915050565b6118fd61214c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611989576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198090613fd8565b60405180910390fd5b8060135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60075481565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611a5c61214c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ae8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611adf90613fd8565b60405180910390fd5b8060128190555050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611b7f5750611b506116e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80611bd6575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611c15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0c906141f1565b60405180910390fd5b80600f60146101000a81548160ff02191690831515021790555050565b611c3a61214c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbd90613fd8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2b9061427f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e75906142e7565b60405180910390fd5b5f479050611e8b81612aea565b50565b60095481565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611f215750611ef26116e1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611f60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5790613dec565b60405180910390fd5b600f60189054906101000a900460ff1615611fb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa790613e7a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361201e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201590614375565b60405180910390fd5b5f60045f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036121c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b8906143dd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361222f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222690614445565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516123099190613900565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612384576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237b906144ad565b60405180910390fd5b5f81116123c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123bd90614515565b60405180910390fd5b6123ce6116e1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561243c575061240c6116e1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561273b57600f60149054906101000a900460ff166124cb5761245d6116e1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146124ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124c1906145a3565b60405180910390fd5b5b601054811115612510576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125079061460b565b60405180910390fd5b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146125bd576011548161257184611386565b61257b9190614629565b11156125bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125b3906146a6565b60405180910390fd5b5b5f6125c730611386565b90505f601254821015905060105482106125e15760105491505b8080156125fb5750600f60159054906101000a900460ff16155b80156126545750600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561266c5750600f60169054906101000a900460ff165b80156126bf575060045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612712575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156127385761272082612dbc565b5f4790505f8111156127365761273547612aea565b5b505b50505b5f6001905060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806127db575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8061288c5750600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561288b5750600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15612899575f9050612a0a565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156129425750600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561295157600754600a819055505b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156129fa5750600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612a0957600854600a819055505b5b612a1684848484613027565b50505050565b5f838311158290612a63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5a919061372f565b60405180910390fd5b505f8385612a7191906146c4565b9050809150509392505050565b5f600554821115612ac4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612abb90614767565b60405180910390fd5b5f612acd613054565b9050612ae2818461307d90919063ffffffff16565b915050919050565b600f60179054906101000a900460ff1615612cee575f612b276064612b196050856130c690919063ffffffff16565b61307d90919063ffffffff16565b90505f612b516064612b436014866130c690919063ffffffff16565b61307d90919063ffffffff16565b90505f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612b99906147b2565b5f6040518083038185875af1925050503d805f8114612bd3576040519150601f19603f3d011682016040523d82523d5f602084013e612bd8565b606091505b5050905080612c1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c1390614810565b60405180910390fd5b5f600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612c62906147b2565b5f6040518083038185875af1925050503d805f8114612c9c576040519150601f19603f3d011682016040523d82523d5f602084013e612ca1565b606091505b5050905080612ce5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cdc90614878565b60405180910390fd5b50505050612db9565b5f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612d34906147b2565b5f6040518083038185875af1925050503d805f8114612d6e576040519150601f19603f3d011682016040523d82523d5f602084013e612d73565b606091505b5050905080612db7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dae90614810565b60405180910390fd5b505b50565b6001600f60156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115612df357612df2614896565b5b604051908082528060200260200182016040528015612e215781602001602082028036833780820191505090505b50905030815f81518110612e3857612e3761417a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612edc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f0091906148d7565b81600181518110612f1457612f1361417a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612f7a30600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612153565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612fdc9594939291906149f2565b5f604051808303815f87803b158015612ff3575f80fd5b505af1158015613005573d5f803e3d5ffd5b50505050505f600f60156101000a81548160ff02191690831515021790555050565b806130355761303461313d565b5b61304084848461315a565b8061304e5761304d613309565b5b50505050565b5f805f61305f613314565b91509150613076818361307d90919063ffffffff16565b9250505090565b5f6130be83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506133ac565b905092915050565b5f8083036130d6575f9050613137565b5f82846130e39190613d61565b90508284826130f29190614a77565b14613132576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161312990614b17565b60405180910390fd5b809150505b92915050565b5f600a54031561315857600a54600b819055505f600a819055505b565b5f805f806131678561340d565b93509350935093506131bf8460025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461345790919063ffffffff16565b60025f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506132508360025f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546134a090919063ffffffff16565b60025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061329b81886134fd565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516132f89190613900565b60405180910390a350505050505050565b600b54600a81905550565b5f805f60055490505f6009600a61332b9190613d17565b630bebc20061333a9190613d61565b905061336d6009600a61334d9190613d17565b630bebc20061335c9190613d61565b60055461307d90919063ffffffff16565b82101561339f576005546009600a6133859190613d17565b630bebc2006133949190613d61565b9350935050506133a8565b81819350935050505b9091565b5f80831182906133f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133e9919061372f565b60405180910390fd5b505f83856134009190614a77565b9050809150509392505050565b5f805f805f8061341f87600a5461361a565b915091505f61342c613054565b90505f8061343b8a858561366a565b9150915081818686985098509850985050505050509193509193565b5f61349883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612a1c565b905092915050565b5f8082846134ae9190614629565b9050838110156134f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134ea90614b7f565b60405180910390fd5b8091505092915050565b5f613506613054565b90505f61351c82856130c690919063ffffffff16565b905061356e8160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546134a090919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161360c9190613900565b60405180910390a350505050565b5f805f613643606461363586886130c690919063ffffffff16565b61307d90919063ffffffff16565b90505f613659828761345790919063ffffffff16565b905080829350935050509250929050565b5f805f61368084876130c690919063ffffffff16565b90505f61369685876130c690919063ffffffff16565b90505f6136ac828461345790919063ffffffff16565b9050828194509450505050935093915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f613701826136bf565b61370b81856136c9565b935061371b8185602086016136d9565b613724816136e7565b840191505092915050565b5f6020820190508181035f83015261374781846136f7565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61378082613757565b9050919050565b61379081613776565b811461379a575f80fd5b50565b5f813590506137ab81613787565b92915050565b5f819050919050565b6137c3816137b1565b81146137cd575f80fd5b50565b5f813590506137de816137ba565b92915050565b5f80604083850312156137fa576137f961374f565b5b5f6138078582860161379d565b9250506020613818858286016137d0565b9150509250929050565b5f8115159050919050565b61383681613822565b82525050565b5f60208201905061384f5f83018461382d565b92915050565b61385e81613776565b82525050565b5f6020820190506138775f830184613855565b92915050565b5f819050919050565b5f6138a061389b61389684613757565b61387d565b613757565b9050919050565b5f6138b182613886565b9050919050565b5f6138c2826138a7565b9050919050565b6138d2816138b8565b82525050565b5f6020820190506138eb5f8301846138c9565b92915050565b6138fa816137b1565b82525050565b5f6020820190506139135f8301846138f1565b92915050565b5f6020828403121561392e5761392d61374f565b5b5f61393b8482850161379d565b91505092915050565b5f805f6060848603121561395b5761395a61374f565b5b5f6139688682870161379d565b93505060206139798682870161379d565b925050604061398a868287016137d0565b9150509250925092565b5f602082840312156139a9576139a861374f565b5b5f6139b6848285016137d0565b91505092915050565b5f60ff82169050919050565b6139d4816139bf565b82525050565b5f6020820190506139ed5f8301846139cb565b92915050565b5f6139fd82613757565b9050919050565b613a0d816139f3565b82525050565b5f602082019050613a265f830184613a04565b92915050565b5f8060408385031215613a4257613a4161374f565b5b5f613a4f858286016137d0565b9250506020613a60858286016137d0565b9150509250929050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112613a8b57613a8a613a6a565b5b8235905067ffffffffffffffff811115613aa857613aa7613a6e565b5b602083019150836020820283011115613ac457613ac3613a72565b5b9250929050565b613ad481613822565b8114613ade575f80fd5b50565b5f81359050613aef81613acb565b92915050565b5f805f60408486031215613b0c57613b0b61374f565b5b5f84013567ffffffffffffffff811115613b2957613b28613753565b5b613b3586828701613a76565b93509350506020613b4886828701613ae1565b9150509250925092565b5f8060408385031215613b6857613b6761374f565b5b5f613b758582860161379d565b9250506020613b868582860161379d565b9150509250929050565b5f60208284031215613ba557613ba461374f565b5b5f613bb284828501613ae1565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115613c3d57808604811115613c1957613c18613bbb565b5b6001851615613c285780820291505b8081029050613c3685613be8565b9450613bfd565b94509492505050565b5f82613c555760019050613d10565b81613c62575f9050613d10565b8160018114613c785760028114613c8257613cb1565b6001915050613d10565b60ff841115613c9457613c93613bbb565b5b8360020a915084821115613cab57613caa613bbb565b5b50613d10565b5060208310610133831016604e8410600b8410161715613ce65782820a905083811115613ce157613ce0613bbb565b5b613d10565b613cf38484846001613bf4565b92509050818404811115613d0a57613d09613bbb565b5b81810290505b9392505050565b5f613d21826137b1565b9150613d2c836139bf565b9250613d597fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613c46565b905092915050565b5f613d6b826137b1565b9150613d76836137b1565b9250828202613d84816137b1565b91508282048414831517613d9b57613d9a613bbb565b5b5092915050565b7f43616c6c6572206973206e6f7420616e206f70657261746f72000000000000005f82015250565b5f613dd66019836136c9565b9150613de182613da2565b602082019050919050565b5f6020820190508181035f830152613e0381613dca565b9050919050565b7f52696768747320746f206368616e6765207468652066656520616464726573735f8201527f6573206861732062656564207265766f6b656400000000000000000000000000602082015250565b5f613e646033836136c9565b9150613e6f82613e0a565b604082019050919050565b5f6020820190508181035f830152613e9181613e58565b9050919050565b7f4e65772064616f20616464726573732063616e6e6f74206265207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613ef26026836136c9565b9150613efd82613e98565b604082019050919050565b5f6020820190508181035f830152613f1f81613ee6565b9050919050565b7f66656520616c726561647920646f776e677261646564000000000000000000005f82015250565b5f613f5a6016836136c9565b9150613f6582613f26565b602082019050919050565b5f6020820190508181035f830152613f8781613f4e565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613fc26020836136c9565b9150613fcd82613f8e565b602082019050919050565b5f6020820190508181035f830152613fef81613fb6565b9050919050565b7f52696768747320616c7265616479207265766f6b6564000000000000000000005f82015250565b5f61402a6016836136c9565b915061403582613ff6565b602082019050919050565b5f6020820190508181035f8301526140578161401e565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e64205f5f8201527f6d61784665655468726573686f6c640000000000000000000000000000000000602082015250565b5f6140b8602f836136c9565b91506140c38261405e565b604082019050919050565b5f6020820190508181035f8301526140e5816140ac565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e64205f8201527f5f6d61784665655468726573686f6c6400000000000000000000000000000000602082015250565b5f6141466030836136c9565b9150614151826140ec565b604082019050919050565b5f6020820190508181035f8301526141738161413a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f466f7262696464656e00000000000000000000000000000000000000000000005f82015250565b5f6141db6009836136c9565b91506141e6826141a7565b602082019050919050565b5f6020820190508181035f830152614208816141cf565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6142696026836136c9565b91506142748261420f565b604082019050919050565b5f6020820190508181035f8301526142968161425d565b9050919050565b7f43616c6c6572206973206e6f74206120646576206164647265737300000000005f82015250565b5f6142d1601b836136c9565b91506142dc8261429d565b602082019050919050565b5f6020820190508181035f8301526142fe816142c5565b9050919050565b7f4e657720646576656c6f706d656e7420616464726573732063616e6e6f7420625f8201527f65207a65726f2061646472657373000000000000000000000000000000000000602082015250565b5f61435f602e836136c9565b915061436a82614305565b604082019050919050565b5f6020820190508181035f83015261438c81614353565b9050919050565b7f43616e277420617070726f76652066726f6d207a65726f2061646472657373005f82015250565b5f6143c7601f836136c9565b91506143d282614393565b602082019050919050565b5f6020820190508181035f8301526143f4816143bb565b9050919050565b7f43616e277420617070726f766520746f207a65726f20616464726573730000005f82015250565b5f61442f601d836136c9565b915061443a826143fb565b602082019050919050565b5f6020820190508181035f83015261445c81614423565b9050919050565b7f43616e74207472616e7366657220746f2061646472657373207a65726f0000005f82015250565b5f614497601d836136c9565b91506144a282614463565b602082019050919050565b5f6020820190508181035f8301526144c48161448b565b9050919050565b7f416d6f756e742073686f756c642062652061626f7665207a65726f00000000005f82015250565b5f6144ff601b836136c9565b915061450a826144cb565b602082019050919050565b5f6020820190508181035f83015261452c816144f3565b9050919050565b7f4f6e6c79206f776e65722063616e207472616465206265666f726520747261645f8201527f696e672061637469766174696f6e000000000000000000000000000000000000602082015250565b5f61458d602e836136c9565b915061459882614533565b604082019050919050565b5f6020820190508181035f8301526145ba81614581565b9050919050565b7f4578636565646564206d6178207472616e73616374696f6e206c696d697400005f82015250565b5f6145f5601e836136c9565b9150614600826145c1565b602082019050919050565b5f6020820190508181035f830152614622816145e9565b9050919050565b5f614633826137b1565b915061463e836137b1565b925082820190508082111561465657614655613bbb565b5b92915050565b7f45786365656473206d61782077616c6c65742062616c616e63650000000000005f82015250565b5f614690601a836136c9565b915061469b8261465c565b602082019050919050565b5f6020820190508181035f8301526146bd81614684565b9050919050565b5f6146ce826137b1565b91506146d9836137b1565b92508282039050818111156146f1576146f0613bbb565b5b92915050565b7f416d6f756e742068617320746f206265206c657373207468616e20746f74616c5f8201527f207265666c656374696f6e730000000000000000000000000000000000000000602082015250565b5f614751602c836136c9565b915061475c826146f7565b604082019050919050565b5f6020820190508181035f83015261477e81614745565b9050919050565b5f81905092915050565b50565b5f61479d5f83614785565b91506147a88261478f565b5f82019050919050565b5f6147bc82614792565b9150819050919050565b7f5472616e7366657220746f20646576206661696c6564000000000000000000005f82015250565b5f6147fa6016836136c9565b9150614805826147c6565b602082019050919050565b5f6020820190508181035f830152614827816147ee565b9050919050565b7f5472616e7366657220746f2064616f206661696c6564000000000000000000005f82015250565b5f6148626016836136c9565b915061486d8261482e565b602082019050919050565b5f6020820190508181035f83015261488f81614856565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f815190506148d181613787565b92915050565b5f602082840312156148ec576148eb61374f565b5b5f6148f9848285016148c3565b91505092915050565b5f819050919050565b5f61492561492061491b84614902565b61387d565b6137b1565b9050919050565b6149358161490b565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61496d81613776565b82525050565b5f61497e8383614964565b60208301905092915050565b5f602082019050919050565b5f6149a08261493b565b6149aa8185614945565b93506149b583614955565b805f5b838110156149e55781516149cc8882614973565b97506149d78361498a565b9250506001810190506149b8565b5085935050505092915050565b5f60a082019050614a055f8301886138f1565b614a12602083018761492c565b8181036040830152614a248186614996565b9050614a336060830185613855565b614a4060808301846138f1565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f614a81826137b1565b9150614a8c836137b1565b925082614a9c57614a9b614a4a565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f614b016021836136c9565b9150614b0c82614aa7565b604082019050919050565b5f6020820190508181035f830152614b2e81614af5565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f614b69601b836136c9565b9150614b7482614b35565b602082019050919050565b5f6020820190508181035f830152614b9681614b5d565b905091905056fe746865207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c0c83a019e386b6f89c0273e44460665e0adfc599ff7ac88df16d524fe8c459964736f6c634300081a0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d00000000000000000000000090a482e6bd0dfb6d13c7987f43f7ff9f71a4076e00000000000000000000000090a482e6bd0dfb6d13c7987f43f7ff9f71a4076e
-----Decoded View---------------
Arg [0] : routerAddress (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : devAddress (address): 0x90a482E6Bd0DFb6D13c7987f43F7FF9F71a4076E
Arg [2] : daoAddress (address): 0x90a482E6Bd0DFb6D13c7987f43F7FF9F71a4076E
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [1] : 00000000000000000000000090a482e6bd0dfb6d13c7987f43f7ff9f71a4076e
Arg [2] : 00000000000000000000000090a482e6bd0dfb6d13c7987f43f7ff9f71a4076e
Deployed Bytecode Sourcemap
4321:14600:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6620:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7538:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5710:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5254:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6897:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18032:491;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7739:443;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16638:208;;;;;;;;;;;;;:::i;:::-;;17108:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18531:195;;;;;;;;;;;;;:::i;:::-;;5644:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6806:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5302:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5211:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12849:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16121:509;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5747:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5170:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7000:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1773:148;;;;;;;;;;;;;:::i;:::-;;16992:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4686:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12973:100;;;;;;;;;;;;;:::i;:::-;;5536:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4988:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1559:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5589:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5446:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17233:253;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6711:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5486:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7139:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12740:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4950:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7346:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16854:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12438:294;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1929:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13081:219;;;;;;;;;;;;;:::i;:::-;;5027:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17494:530;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6620:83;6657:13;6690:5;;;;;;;;;;;;;;;;;6683:12;;6620:83;:::o;7538:193::-;7640:4;7662:39;7671:12;:10;:12::i;:::-;7685:7;7694:6;7662:8;:39::i;:::-;7719:4;7712:11;;7538:193;;;;:::o;5710:30::-;;;;;;;;;;;;;:::o;5254:41::-;;;;;;;;;;;;;:::o;6897:95::-;6950:7;4552:1;4841:2;:13;;;;:::i;:::-;4827:11;:27;;;;:::i;:::-;6970:14;;6897:95;:::o;18032:491::-;18805:15;;;;;;;;;;;18791:29;;:10;:29;;;:54;;;;18838:7;:5;:7::i;:::-;18824:21;;:10;:21;;;18791:54;18769:129;;;;;;;;;;;;:::i;:::-;;;;;;;;;18135:29:::1;;;;;;;;;;;18134:30;18112:131;;;;;;;;;;;;:::i;:::-;;;;;;;;;18301:1;18276:27;;:13;:27;;::::0;18254:115:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18414:5;18380:18;:31;18399:11;;;;;;;;;;;18380:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18452:13;18430:11;;:36;;;;;;;;;;;;;;;;;;18511:4;18477:18;:31;18496:11;;;;;;;;;;;18477:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;18032:491:::0;:::o;7739:443::-;7871:4;7888:36;7898:6;7906:9;7917:6;7888:9;:36::i;:::-;7935:217;7958:6;7979:12;:10;:12::i;:::-;8006:135;8062:6;8006:135;;;;;;;;;;;;;;;;;:11;:19;8018:6;8006:19;;;;;;;;;;;;;;;:33;8026:12;:10;:12::i;:::-;8006:33;;;;;;;;;;;;;;;;:37;;:135;;;;;:::i;:::-;7935:8;:217::i;:::-;8170:4;8163:11;;7739:443;;;;;:::o;16638:208::-;18805:15;;;;;;;;;;;18791:29;;:10;:29;;;:54;;;;18838:7;:5;:7::i;:::-;18824:21;;:10;:21;;;18791:54;18769:129;;;;;;;;;;;;:::i;:::-;;;;;;;;;16724:1:::1;16704:16;;:21:::0;16696:56:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;16782:1;16763:16;:20;;;;16809:1;16794:12;:16;;;;16837:1;16821:13;:17;;;;16638:208::o:0;17108:117::-;1696:12;:10;:12::i;:::-;1686:22;;:6;;;;;;;;;;:22;;;1678:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17204:13:::1;17187:14;:30;;;;17108:117:::0;:::o;18531:195::-;18805:15;;;;;;;;;;;18791:29;;:10;:29;;;:54;;;;18838:7;:5;:7::i;:::-;18824:21;;:10;:21;;;18791:54;18769:129;;;;;;;;;;;;:::i;:::-;;;;;;;;;18615:29:::1;;;;;;;;;;;18614:30;18606:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;18714:4;18682:29;;:36;;;;;;;;;;;;;;;;;;18531:195::o:0;5644:57::-;;;;:::o;6806:83::-;6847:5;4552:1;6865:16;;6806:83;:::o;5302:28::-;;;;;;;;;;;;;:::o;5211:34::-;;;;;;;;;;;;;:::o;12849:116::-;18805:15;;;;;;;;;;;18791:29;;:10;:29;;;:54;;;;18838:7;:5;:7::i;:::-;18824:21;;:10;:21;;;18791:54;18769:129;;;;;;;;;;;;:::i;:::-;;;;;;;;;12946:11:::1;12925:18;;:32;;;;;;;;;;;;;;;;;;12849:116:::0;:::o;16121:509::-;18805:15;;;;;;;;;;;18791:29;;:10;:29;;;:54;;;;18838:7;:5;:7::i;:::-;18824:21;;:10;:21;;;18791:54;18769:129;;;;;;;;;;;;:::i;:::-;;;;;;;;;16271:1:::1;16256:11;:16;;:51;;;;;16291:16;;16276:11;:31;;16256:51;16234:148;;;;;;;;;;;;:::i;:::-;;;;;;;;;16431:1;16415:12;:17;;:53;;;;;16452:16;;16436:12;:32;;16415:53;16393:151;;;;;;;;;;;;:::i;:::-;;;;;;;;;16572:11;16557:12;:26;;;;16610:12;16594:13;:28;;;;16121:509:::0;;:::o;5747:33::-;;;;;;;;;;;;;:::o;5170:34::-;;;;;;;;;;;;;:::o;7000:131::-;7066:7;7093:30;7106:7;:16;7114:7;7106:16;;;;;;;;;;;;;;;;7093:12;:30::i;:::-;7086:37;;7000:131;;;:::o;1773:148::-;1696:12;:10;:12::i;:::-;1686:22;;:6;;;;;;;;;;:22;;;1678:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1880:1:::1;1843:40;;1864:6;::::0;::::1;;;;;;;;1843:40;;;;;;;;;;;;1911:1;1894:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1773:148::o:0;16992:108::-;1696:12;:10;:12::i;:::-;1686:22;;:6;;;;;;;;;;:22;;;1678:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17081:11:::1;17066:12;:26;;;;16992:108:::0;:::o;4686:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;12973:100::-;18805:15;;;;;;;;;;;18791:29;;:10;:29;;;:54;;;;18838:7;:5;:7::i;:::-;18824:21;;:10;:21;;;18791:54;18769:129;;;;;;;;;;;;:::i;:::-;;;;;;;;;13052:13:::1;;;;;;;;;;;13051:14;13035:13;;:30;;;;;;;;;;;;;;;;;;12973:100::o:0;5536:46::-;;;;:::o;4988:32::-;;;;:::o;1559:79::-;1597:7;1624:6;;;;;;;;;;;1617:13;;1559:79;:::o;5589:48::-;;;;:::o;5446:33::-;;;;;;;;;;;;;:::o;17233:253::-;18805:15;;;;;;;;;;;18791:29;;:10;:29;;;:54;;;;18838:7;:5;:7::i;:::-;18824:21;;:10;:21;;;18791:54;18769:129;;;;;;;;;;;;:::i;:::-;;;;;;;;;17369:9:::1;17364:115;17388:8;;:15;;17384:1;:19;17364:115;;;17459:8;17425:18;:31;17444:8;;17453:1;17444:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17425:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17405:3;;;;;;;17364:115;;;;17233:253:::0;;;:::o;6711:87::-;6750:13;6783:7;;;;;;;;;;;;;;;;;6776:14;;6711:87;:::o;5486:41::-;;;;;;;;;;;;;:::o;7139:199::-;7244:4;7266:42;7276:12;:10;:12::i;:::-;7290:9;7301:6;7266:9;:42::i;:::-;7326:4;7319:11;;7139:199;;;;:::o;12740:101::-;1696:12;:10;:12::i;:::-;1686:22;;:6;;;;;;;;;;:22;;;1678:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12825:8:::1;12807:15;;:26;;;;;;;;;;;;;;;;;;12740:101:::0;:::o;4950:31::-;;;;:::o;7346:184::-;7463:7;7495:11;:18;7507:5;7495:18;;;;;;;;;;;;;;;:27;7514:7;7495:27;;;;;;;;;;;;;;;;7488:34;;7346:184;;;;:::o;16854:130::-;1696:12;:10;:12::i;:::-;1686:22;;:6;;;;;;;;;;:22;;;1678:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16958:18:::1;16936:19;:40;;;;16854:130:::0;:::o;12438:294::-;12536:15;;;;;;;;;;;12522:29;;:10;:29;;;:71;;;;12586:7;:5;:7::i;:::-;12572:21;;:10;:21;;;12522:71;:124;;;;12628:18;;;;;;;;;;;12614:32;;:10;:32;;;12522:124;12500:183;;;;;;;;;;;;:::i;:::-;;;;;;;;;12710:14;12694:13;;:30;;;;;;;;;;;;;;;;;;12438:294;:::o;1929:281::-;1696:12;:10;:12::i;:::-;1686:22;;:6;;;;;;;;;;:22;;;1678:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2052:1:::1;2032:22;;:8;:22;;::::0;2010:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2165:8;2136:38;;2157:6;::::0;::::1;;;;;;;;2136:38;;;;;;;;;;;;2194:8;2185:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1929:281:::0;:::o;13081:219::-;13145:11;;;;;;;;;;;13131:25;;:10;:25;;;13123:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;13199:26;13228:21;13199:50;;13260:32;13273:18;13260:12;:32::i;:::-;13112:188;13081:219::o;5027:36::-;;;;:::o;17494:530::-;18805:15;;;;;;;;;;;18791:29;;:10;:29;;;:54;;;;18838:7;:5;:7::i;:::-;18824:21;;:10;:21;;;18791:54;18769:129;;;;;;;;;;;;:::i;:::-;;;;;;;;;17628:29:::1;;;;;;;;;;;17627:30;17605:131;;;;;;;;;;;;:::i;:::-;;;;;;;;;17794:1;17769:27;;:13;:27;;::::0;17747:123:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;17915:5;17881:18;:31;17900:11;;;;;;;;;;;17881:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17953:13;17931:11;;:36;;;;;;;;;;;;;;;;;;18012:4;17978:18;:31;17997:11;;;;;;;;;;;17978:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;17494:530:::0;:::o;273:98::-;326:7;353:10;346:17;;273:98;:::o;8703:361::-;8847:1;8830:19;;:5;:19;;;8822:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;8923:1;8904:21;;:7;:21;;;8896:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;9002:6;8972:11;:18;8984:5;8972:18;;;;;;;;;;;;;;;:27;8991:7;8972:27;;;;;;;;;;;;;;;:36;;;;9040:7;9024:32;;9033:5;9024:32;;;9049:6;9024:32;;;;;;:::i;:::-;;;;;;;;8703:361;;;:::o;9072:2167::-;9208:1;9194:16;;:2;:16;;;9186:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9272:1;9263:6;:10;9255:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;9330:7;:5;:7::i;:::-;9322:15;;:4;:15;;;;:32;;;;;9347:7;:5;:7::i;:::-;9341:13;;:2;:13;;;;9322:32;9318:1344;;;9376:13;;;;;;;;;;;9371:190;;9448:7;:5;:7::i;:::-;9440:15;;:4;:15;;;9410:135;;;;;;;;;;;;:::i;:::-;;;;;;;;;9371:190;9595:12;;9585:6;:22;;9577:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;9669:13;;;;;;;;;;;9663:19;;:2;:19;;;9659:200;;9759:14;;9749:6;9733:13;9743:2;9733:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9703:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;9659:200;9875:28;9906:24;9924:4;9906:9;:24::i;:::-;9875:55;;9945:12;9984:19;;9960:20;:43;;9945:58;;10048:12;;10024:20;:36;10020:112;;10104:12;;10081:35;;10020:112;10170:7;:35;;;;;10199:6;;;;;;;;;;;10198:7;10170:35;:77;;;;;10234:13;;;;;;;;;;;10226:21;;:4;:21;;;;10170:77;:109;;;;;10268:11;;;;;;;;;;;10170:109;:155;;;;;10301:18;:24;10320:4;10301:24;;;;;;;;;;;;;;;;;;;;;;;;;10300:25;10170:155;:199;;;;;10347:18;:22;10366:2;10347:22;;;;;;;;;;;;;;;;;;;;;;;;;10346:23;10170:199;10148:503;;;10404:38;10421:20;10404:16;:38::i;:::-;10461:26;10490:21;10461:50;;10555:1;10534:18;:22;10530:106;;;10581:35;10594:21;10581:12;:35::i;:::-;10530:106;10385:266;10148:503;9356:1306;;9318:1344;10674:12;10689:4;10674:19;;10725:18;:24;10744:4;10725:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10753:18;:22;10772:2;10753:22;;;;;;;;;;;;;;;;;;;;;;;;;10725:50;10724:115;;;;10802:13;;;;;;;;;;;10794:21;;:4;:21;;;;:44;;;;;10825:13;;;;;;;;;;;10819:19;;:2;:19;;;;10794:44;10724:115;10706:472;;;10876:5;10866:15;;10706:472;;;10926:13;;;;;;;;;;;10918:21;;:4;:21;;;:55;;;;;10957:15;;;;;;;;;;;10943:30;;:2;:30;;;;10918:55;10914:118;;;11004:12;;10994:7;:22;;;;10914:118;11058:13;;;;;;;;;;;11052:19;;:2;:19;;;:55;;;;;11091:15;;;;;;;;;;;11075:32;;:4;:32;;;;11052:55;11048:119;;;11138:13;;11128:7;:23;;;;11048:119;10706:472;11190:41;11205:4;11211:2;11215:6;11223:7;11190:14;:41::i;:::-;9175:2064;9072:2167;;;:::o;2572:224::-;2692:7;2725:1;2720;:6;;2728:12;2712:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2752:9;2768:1;2764;:5;;;;:::i;:::-;2752:17;;2787:1;2780:8;;;2572:224;;;;;:::o;8190:286::-;8251:7;8304;;8293;:18;;8271:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;8394:19;8416:10;:8;:10::i;:::-;8394:32;;8444:24;8456:11;8444:7;:11;;:24;;;;:::i;:::-;8437:31;;;8190:286;;;:::o;11738:692::-;11799:13;;;;;;;;;;;11795:628;;;11829:21;11853:23;11872:3;11853:14;11864:2;11853:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;11829:47;;11891:23;11917;11936:3;11917:14;11928:2;11917:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;11891:49;;11972:12;11998:11;;;;;;;;;;;11990:25;;12023:13;11990:51;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11971:70;;;12064:7;12056:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;12116:12;12142:11;;;;;;;;;;;12134:25;;12167:15;12134:53;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12115:72;;;12210:7;12202:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;11814:456;;;;11795:628;;;12292:12;12318:11;;;;;;;;;;;12310:25;;12343:6;12310:44;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12291:63;;;12377:7;12369:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;12276:147;11795:628;11738:692;:::o;11247:483::-;5832:4;5823:6;;:13;;;;;;;;;;;;;;;;;;11325:21:::1;11363:1;11349:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11325:40;;11394:4;11376;11381:1;11376:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11420:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11410:4;11415:1;11410:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11453:62;11470:4;11485:15;;;;;;;;;;;11503:11;11453:8;:62::i;:::-;11526:15;;;;;;;;;;;:66;;;11607:11;11633:1;11649:4;11676;11696:15;11526:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11314:416;5868:5:::0;5859:6;;:14;;;;;;;;;;;;;;;;;;11247:483;:::o;13308:275::-;13464:7;13459:25;;13473:11;:9;:11::i;:::-;13459:25;13495:44;13513:6;13521:9;13532:6;13495:17;:44::i;:::-;13555:7;13550:25;;13564:11;:9;:11::i;:::-;13550:25;13308:275;;;;:::o;15684:164::-;15726:7;15747:15;15764;15783:19;:17;:19::i;:::-;15746:56;;;;15820:20;15832:7;15820;:11;;:20;;;;:::i;:::-;15813:27;;;;15684:164;:::o;3058:132::-;3116:7;3143:39;3147:1;3150;3143:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3136:46;;3058:132;;;;:::o;2804:246::-;2862:7;2891:1;2886;:6;2882:47;;2916:1;2909:8;;;;2882:47;2939:9;2955:1;2951;:5;;;;:::i;:::-;2939:17;;2984:1;2979;2975;:5;;;;:::i;:::-;:10;2967:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3041:1;3034:8;;;2804:246;;;;;:::o;8484:130::-;8539:1;8528:7;;:12;8524:25;8542:7;8524:25;8577:7;;8559:15;:25;;;;8605:1;8595:7;:11;;;;8484:130;:::o;13591:527::-;13738:15;13768:23;13806;13844:12;13870:19;13881:7;13870:10;:19::i;:::-;13723:166;;;;;;;;13918:28;13938:7;13918;:15;13926:6;13918:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13900:7;:15;13908:6;13900:15;;;;;;;;;;;;;;;:46;;;;13978:39;14001:15;13978:7;:18;13986:9;13978:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13957:7;:18;13965:9;13957:18;;;;;;;;;;;;;;;:60;;;;14028:22;14037:4;14043:6;14028:8;:22::i;:::-;14083:9;14066:44;;14075:6;14066:44;;;14094:15;14066:44;;;;;;:::i;:::-;;;;;;;;13712:406;;;;13591:527;;;:::o;8622:73::-;8672:15;;8662:7;:25;;;;8622:73::o;15856:257::-;15907:7;15916;15936:15;15954:7;;15936:25;;15972:15;4552:1;4841:2;:13;;;;:::i;:::-;4827:11;:27;;;;:::i;:::-;15972:25;;16022:20;4552:1;4841:2;:13;;;;:::i;:::-;4827:11;:27;;;;:::i;:::-;16022:7;;:11;;:20;;;;:::i;:::-;16012:7;:30;16008:61;;;16052:7;;4552:1;4841:2;:13;;;;:::i;:::-;4827:11;:27;;;;:::i;:::-;16044:25;;;;;;;;16008:61;16088:7;16097;16080:25;;;;;;15856:257;;;:::o;3198:223::-;3318:7;3350:1;3346;:5;3353:12;3338:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3377:9;3393:1;3389;:5;;;;:::i;:::-;3377:17;;3412:1;3405:8;;;3198:223;;;;;:::o;14442:575::-;14542:7;14564;14586;14608;14644:23;14669:13;14686:66;14712:7;14734;;14686:11;:66::i;:::-;14643:109;;;;14763:19;14785:10;:8;:10::i;:::-;14763:32;;14807:15;14824:23;14851:90;14877:7;14899:5;14919:11;14851;:90::i;:::-;14806:135;;;;14960:7;14969:15;14986;15003:5;14952:57;;;;;;;;;;;;;14442:575;;;;;:::o;2428:136::-;2486:7;2513:43;2517:1;2520;2513:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2506:50;;2428:136;;;;:::o;2241:179::-;2299:7;2319:9;2335:1;2331;:5;;;;:::i;:::-;2319:17;;2360:1;2355;:6;;2347:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2411:1;2404:8;;;2241:179;;;;:::o;14126:271::-;14191:19;14213:10;:8;:10::i;:::-;14191:32;;14234:12;14249:21;14258:11;14249:4;:8;;:21;;;;:::i;:::-;14234:36;;14306:32;14333:4;14306:7;:22;14322:4;14306:22;;;;;;;;;;;;;;;;:26;;:32;;;;:::i;:::-;14281:7;:22;14297:4;14281:22;;;;;;;;;;;;;;;:57;;;;14377:4;14354:35;;14363:4;14354:35;;;14384:4;14354:35;;;;;;:::i;:::-;;;;;;;;14180:217;;14126:271;;:::o;15025:286::-;15128:7;15137;15162:13;15178:28;15202:3;15178:19;15190:6;15178:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15162:44;;15217:23;15243:18;15255:5;15243:7;:11;;:18;;;;:::i;:::-;15217:44;;15280:15;15297:5;15272:31;;;;;;15025:286;;;;;:::o;15319:357::-;15449:7;15458;15478:15;15496:24;15508:11;15496:7;:11;;:24;;;;:::i;:::-;15478:42;;15531:13;15547:22;15557:11;15547:5;:9;;:22;;;;:::i;:::-;15531:38;;15580:23;15606:18;15618:5;15606:7;:11;;:18;;;;:::i;:::-;15580:44;;15643:7;15652:15;15635:33;;;;;;;15319:357;;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1446:117;1555:1;1552;1545:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:60::-;3719:3;3740:5;3733:12;;3691:60;;;:::o;3757:142::-;3807:9;3840:53;3858:34;3867:24;3885:5;3867:24;:::i;:::-;3858:34;:::i;:::-;3840:53;:::i;:::-;3827:66;;3757:142;;;:::o;3905:126::-;3955:9;3988:37;4019:5;3988:37;:::i;:::-;3975:50;;3905:126;;;:::o;4037:152::-;4113:9;4146:37;4177:5;4146:37;:::i;:::-;4133:50;;4037:152;;;:::o;4195:183::-;4308:63;4365:5;4308:63;:::i;:::-;4303:3;4296:76;4195:183;;:::o;4384:274::-;4503:4;4541:2;4530:9;4526:18;4518:26;;4554:97;4648:1;4637:9;4633:17;4624:6;4554:97;:::i;:::-;4384:274;;;;:::o;4664:118::-;4751:24;4769:5;4751:24;:::i;:::-;4746:3;4739:37;4664:118;;:::o;4788:222::-;4881:4;4919:2;4908:9;4904:18;4896:26;;4932:71;5000:1;4989:9;4985:17;4976:6;4932:71;:::i;:::-;4788:222;;;;:::o;5016:329::-;5075:6;5124:2;5112:9;5103:7;5099:23;5095:32;5092:119;;;5130:79;;:::i;:::-;5092:119;5250:1;5275:53;5320:7;5311:6;5300:9;5296:22;5275:53;:::i;:::-;5265:63;;5221:117;5016:329;;;;:::o;5351:619::-;5428:6;5436;5444;5493:2;5481:9;5472:7;5468:23;5464:32;5461:119;;;5499:79;;:::i;:::-;5461:119;5619:1;5644:53;5689:7;5680:6;5669:9;5665:22;5644:53;:::i;:::-;5634:63;;5590:117;5746:2;5772:53;5817:7;5808:6;5797:9;5793:22;5772:53;:::i;:::-;5762:63;;5717:118;5874:2;5900:53;5945:7;5936:6;5925:9;5921:22;5900:53;:::i;:::-;5890:63;;5845:118;5351:619;;;;;:::o;5976:329::-;6035:6;6084:2;6072:9;6063:7;6059:23;6055:32;6052:119;;;6090:79;;:::i;:::-;6052:119;6210:1;6235:53;6280:7;6271:6;6260:9;6256:22;6235:53;:::i;:::-;6225:63;;6181:117;5976:329;;;;:::o;6311:86::-;6346:7;6386:4;6379:5;6375:16;6364:27;;6311:86;;;:::o;6403:112::-;6486:22;6502:5;6486:22;:::i;:::-;6481:3;6474:35;6403:112;;:::o;6521:214::-;6610:4;6648:2;6637:9;6633:18;6625:26;;6661:67;6725:1;6714:9;6710:17;6701:6;6661:67;:::i;:::-;6521:214;;;;:::o;6741:104::-;6786:7;6815:24;6833:5;6815:24;:::i;:::-;6804:35;;6741:104;;;:::o;6851:142::-;6954:32;6980:5;6954:32;:::i;:::-;6949:3;6942:45;6851:142;;:::o;6999:254::-;7108:4;7146:2;7135:9;7131:18;7123:26;;7159:87;7243:1;7232:9;7228:17;7219:6;7159:87;:::i;:::-;6999:254;;;;:::o;7259:474::-;7327:6;7335;7384:2;7372:9;7363:7;7359:23;7355:32;7352:119;;;7390:79;;:::i;:::-;7352:119;7510:1;7535:53;7580:7;7571:6;7560:9;7556:22;7535:53;:::i;:::-;7525:63;;7481:117;7637:2;7663:53;7708:7;7699:6;7688:9;7684:22;7663:53;:::i;:::-;7653:63;;7608:118;7259:474;;;;;:::o;7739:117::-;7848:1;7845;7838:12;7862:117;7971:1;7968;7961:12;7985:117;8094:1;8091;8084:12;8125:568;8198:8;8208:6;8258:3;8251:4;8243:6;8239:17;8235:27;8225:122;;8266:79;;:::i;:::-;8225:122;8379:6;8366:20;8356:30;;8409:18;8401:6;8398:30;8395:117;;;8431:79;;:::i;:::-;8395:117;8545:4;8537:6;8533:17;8521:29;;8599:3;8591:4;8583:6;8579:17;8569:8;8565:32;8562:41;8559:128;;;8606:79;;:::i;:::-;8559:128;8125:568;;;;;:::o;8699:116::-;8769:21;8784:5;8769:21;:::i;:::-;8762:5;8759:32;8749:60;;8805:1;8802;8795:12;8749:60;8699:116;:::o;8821:133::-;8864:5;8902:6;8889:20;8880:29;;8918:30;8942:5;8918:30;:::i;:::-;8821:133;;;;:::o;8960:698::-;9052:6;9060;9068;9117:2;9105:9;9096:7;9092:23;9088:32;9085:119;;;9123:79;;:::i;:::-;9085:119;9271:1;9260:9;9256:17;9243:31;9301:18;9293:6;9290:30;9287:117;;;9323:79;;:::i;:::-;9287:117;9436:80;9508:7;9499:6;9488:9;9484:22;9436:80;:::i;:::-;9418:98;;;;9214:312;9565:2;9591:50;9633:7;9624:6;9613:9;9609:22;9591:50;:::i;:::-;9581:60;;9536:115;8960:698;;;;;:::o;9664:474::-;9732:6;9740;9789:2;9777:9;9768:7;9764:23;9760:32;9757:119;;;9795:79;;:::i;:::-;9757:119;9915:1;9940:53;9985:7;9976:6;9965:9;9961:22;9940:53;:::i;:::-;9930:63;;9886:117;10042:2;10068:53;10113:7;10104:6;10093:9;10089:22;10068:53;:::i;:::-;10058:63;;10013:118;9664:474;;;;;:::o;10144:323::-;10200:6;10249:2;10237:9;10228:7;10224:23;10220:32;10217:119;;;10255:79;;:::i;:::-;10217:119;10375:1;10400:50;10442:7;10433:6;10422:9;10418:22;10400:50;:::i;:::-;10390:60;;10346:114;10144:323;;;;:::o;10473:180::-;10521:77;10518:1;10511:88;10618:4;10615:1;10608:15;10642:4;10639:1;10632:15;10659:102;10701:8;10748:5;10745:1;10741:13;10720:34;;10659:102;;;:::o;10767:848::-;10828:5;10835:4;10859:6;10850:15;;10883:5;10874:14;;10897:712;10918:1;10908:8;10905:15;10897:712;;;11013:4;11008:3;11004:14;10998:4;10995:24;10992:50;;;11022:18;;:::i;:::-;10992:50;11072:1;11062:8;11058:16;11055:451;;;11487:4;11480:5;11476:16;11467:25;;11055:451;11537:4;11531;11527:15;11519:23;;11567:32;11590:8;11567:32;:::i;:::-;11555:44;;10897:712;;;10767:848;;;;;;;:::o;11621:1073::-;11675:5;11866:8;11856:40;;11887:1;11878:10;;11889:5;;11856:40;11915:4;11905:36;;11932:1;11923:10;;11934:5;;11905:36;12001:4;12049:1;12044:27;;;;12085:1;12080:191;;;;11994:277;;12044:27;12062:1;12053:10;;12064:5;;;12080:191;12125:3;12115:8;12112:17;12109:43;;;12132:18;;:::i;:::-;12109:43;12181:8;12178:1;12174:16;12165:25;;12216:3;12209:5;12206:14;12203:40;;;12223:18;;:::i;:::-;12203:40;12256:5;;;11994:277;;12380:2;12370:8;12367:16;12361:3;12355:4;12352:13;12348:36;12330:2;12320:8;12317:16;12312:2;12306:4;12303:12;12299:35;12283:111;12280:246;;;12436:8;12430:4;12426:19;12417:28;;12471:3;12464:5;12461:14;12458:40;;;12478:18;;:::i;:::-;12458:40;12511:5;;12280:246;12551:42;12589:3;12579:8;12573:4;12570:1;12551:42;:::i;:::-;12536:57;;;;12625:4;12620:3;12616:14;12609:5;12606:25;12603:51;;;12634:18;;:::i;:::-;12603:51;12683:4;12676:5;12672:16;12663:25;;11621:1073;;;;;;:::o;12700:281::-;12758:5;12782:23;12800:4;12782:23;:::i;:::-;12774:31;;12826:25;12842:8;12826:25;:::i;:::-;12814:37;;12870:104;12907:66;12897:8;12891:4;12870:104;:::i;:::-;12861:113;;12700:281;;;;:::o;12987:410::-;13027:7;13050:20;13068:1;13050:20;:::i;:::-;13045:25;;13084:20;13102:1;13084:20;:::i;:::-;13079:25;;13139:1;13136;13132:9;13161:30;13179:11;13161:30;:::i;:::-;13150:41;;13340:1;13331:7;13327:15;13324:1;13321:22;13301:1;13294:9;13274:83;13251:139;;13370:18;;:::i;:::-;13251:139;13035:362;12987:410;;;;:::o;13403:175::-;13543:27;13539:1;13531:6;13527:14;13520:51;13403:175;:::o;13584:366::-;13726:3;13747:67;13811:2;13806:3;13747:67;:::i;:::-;13740:74;;13823:93;13912:3;13823:93;:::i;:::-;13941:2;13936:3;13932:12;13925:19;;13584:366;;;:::o;13956:419::-;14122:4;14160:2;14149:9;14145:18;14137:26;;14209:9;14203:4;14199:20;14195:1;14184:9;14180:17;14173:47;14237:131;14363:4;14237:131;:::i;:::-;14229:139;;13956:419;;;:::o;14381:238::-;14521:34;14517:1;14509:6;14505:14;14498:58;14590:21;14585:2;14577:6;14573:15;14566:46;14381:238;:::o;14625:366::-;14767:3;14788:67;14852:2;14847:3;14788:67;:::i;:::-;14781:74;;14864:93;14953:3;14864:93;:::i;:::-;14982:2;14977:3;14973:12;14966:19;;14625:366;;;:::o;14997:419::-;15163:4;15201:2;15190:9;15186:18;15178:26;;15250:9;15244:4;15240:20;15236:1;15225:9;15221:17;15214:47;15278:131;15404:4;15278:131;:::i;:::-;15270:139;;14997:419;;;:::o;15422:225::-;15562:34;15558:1;15550:6;15546:14;15539:58;15631:8;15626:2;15618:6;15614:15;15607:33;15422:225;:::o;15653:366::-;15795:3;15816:67;15880:2;15875:3;15816:67;:::i;:::-;15809:74;;15892:93;15981:3;15892:93;:::i;:::-;16010:2;16005:3;16001:12;15994:19;;15653:366;;;:::o;16025:419::-;16191:4;16229:2;16218:9;16214:18;16206:26;;16278:9;16272:4;16268:20;16264:1;16253:9;16249:17;16242:47;16306:131;16432:4;16306:131;:::i;:::-;16298:139;;16025:419;;;:::o;16450:172::-;16590:24;16586:1;16578:6;16574:14;16567:48;16450:172;:::o;16628:366::-;16770:3;16791:67;16855:2;16850:3;16791:67;:::i;:::-;16784:74;;16867:93;16956:3;16867:93;:::i;:::-;16985:2;16980:3;16976:12;16969:19;;16628:366;;;:::o;17000:419::-;17166:4;17204:2;17193:9;17189:18;17181:26;;17253:9;17247:4;17243:20;17239:1;17228:9;17224:17;17217:47;17281:131;17407:4;17281:131;:::i;:::-;17273:139;;17000:419;;;:::o;17425:182::-;17565:34;17561:1;17553:6;17549:14;17542:58;17425:182;:::o;17613:366::-;17755:3;17776:67;17840:2;17835:3;17776:67;:::i;:::-;17769:74;;17852:93;17941:3;17852:93;:::i;:::-;17970:2;17965:3;17961:12;17954:19;;17613:366;;;:::o;17985:419::-;18151:4;18189:2;18178:9;18174:18;18166:26;;18238:9;18232:4;18228:20;18224:1;18213:9;18209:17;18202:47;18266:131;18392:4;18266:131;:::i;:::-;18258:139;;17985:419;;;:::o;18410:172::-;18550:24;18546:1;18538:6;18534:14;18527:48;18410:172;:::o;18588:366::-;18730:3;18751:67;18815:2;18810:3;18751:67;:::i;:::-;18744:74;;18827:93;18916:3;18827:93;:::i;:::-;18945:2;18940:3;18936:12;18929:19;;18588:366;;;:::o;18960:419::-;19126:4;19164:2;19153:9;19149:18;19141:26;;19213:9;19207:4;19203:20;19199:1;19188:9;19184:17;19177:47;19241:131;19367:4;19241:131;:::i;:::-;19233:139;;18960:419;;;:::o;19385:234::-;19525:34;19521:1;19513:6;19509:14;19502:58;19594:17;19589:2;19581:6;19577:15;19570:42;19385:234;:::o;19625:366::-;19767:3;19788:67;19852:2;19847:3;19788:67;:::i;:::-;19781:74;;19864:93;19953:3;19864:93;:::i;:::-;19982:2;19977:3;19973:12;19966:19;;19625:366;;;:::o;19997:419::-;20163:4;20201:2;20190:9;20186:18;20178:26;;20250:9;20244:4;20240:20;20236:1;20225:9;20221:17;20214:47;20278:131;20404:4;20278:131;:::i;:::-;20270:139;;19997:419;;;:::o;20422:235::-;20562:34;20558:1;20550:6;20546:14;20539:58;20631:18;20626:2;20618:6;20614:15;20607:43;20422:235;:::o;20663:366::-;20805:3;20826:67;20890:2;20885:3;20826:67;:::i;:::-;20819:74;;20902:93;20991:3;20902:93;:::i;:::-;21020:2;21015:3;21011:12;21004:19;;20663:366;;;:::o;21035:419::-;21201:4;21239:2;21228:9;21224:18;21216:26;;21288:9;21282:4;21278:20;21274:1;21263:9;21259:17;21252:47;21316:131;21442:4;21316:131;:::i;:::-;21308:139;;21035:419;;;:::o;21460:180::-;21508:77;21505:1;21498:88;21605:4;21602:1;21595:15;21629:4;21626:1;21619:15;21646:159;21786:11;21782:1;21774:6;21770:14;21763:35;21646:159;:::o;21811:365::-;21953:3;21974:66;22038:1;22033:3;21974:66;:::i;:::-;21967:73;;22049:93;22138:3;22049:93;:::i;:::-;22167:2;22162:3;22158:12;22151:19;;21811:365;;;:::o;22182:419::-;22348:4;22386:2;22375:9;22371:18;22363:26;;22435:9;22429:4;22425:20;22421:1;22410:9;22406:17;22399:47;22463:131;22589:4;22463:131;:::i;:::-;22455:139;;22182:419;;;:::o;22607:225::-;22747:34;22743:1;22735:6;22731:14;22724:58;22816:8;22811:2;22803:6;22799:15;22792:33;22607:225;:::o;22838:366::-;22980:3;23001:67;23065:2;23060:3;23001:67;:::i;:::-;22994:74;;23077:93;23166:3;23077:93;:::i;:::-;23195:2;23190:3;23186:12;23179:19;;22838:366;;;:::o;23210:419::-;23376:4;23414:2;23403:9;23399:18;23391:26;;23463:9;23457:4;23453:20;23449:1;23438:9;23434:17;23427:47;23491:131;23617:4;23491:131;:::i;:::-;23483:139;;23210:419;;;:::o;23635:177::-;23775:29;23771:1;23763:6;23759:14;23752:53;23635:177;:::o;23818:366::-;23960:3;23981:67;24045:2;24040:3;23981:67;:::i;:::-;23974:74;;24057:93;24146:3;24057:93;:::i;:::-;24175:2;24170:3;24166:12;24159:19;;23818:366;;;:::o;24190:419::-;24356:4;24394:2;24383:9;24379:18;24371:26;;24443:9;24437:4;24433:20;24429:1;24418:9;24414:17;24407:47;24471:131;24597:4;24471:131;:::i;:::-;24463:139;;24190:419;;;:::o;24615:233::-;24755:34;24751:1;24743:6;24739:14;24732:58;24824:16;24819:2;24811:6;24807:15;24800:41;24615:233;:::o;24854:366::-;24996:3;25017:67;25081:2;25076:3;25017:67;:::i;:::-;25010:74;;25093:93;25182:3;25093:93;:::i;:::-;25211:2;25206:3;25202:12;25195:19;;24854:366;;;:::o;25226:419::-;25392:4;25430:2;25419:9;25415:18;25407:26;;25479:9;25473:4;25469:20;25465:1;25454:9;25450:17;25443:47;25507:131;25633:4;25507:131;:::i;:::-;25499:139;;25226:419;;;:::o;25651:181::-;25791:33;25787:1;25779:6;25775:14;25768:57;25651:181;:::o;25838:366::-;25980:3;26001:67;26065:2;26060:3;26001:67;:::i;:::-;25994:74;;26077:93;26166:3;26077:93;:::i;:::-;26195:2;26190:3;26186:12;26179:19;;25838:366;;;:::o;26210:419::-;26376:4;26414:2;26403:9;26399:18;26391:26;;26463:9;26457:4;26453:20;26449:1;26438:9;26434:17;26427:47;26491:131;26617:4;26491:131;:::i;:::-;26483:139;;26210:419;;;:::o;26635:179::-;26775:31;26771:1;26763:6;26759:14;26752:55;26635:179;:::o;26820:366::-;26962:3;26983:67;27047:2;27042:3;26983:67;:::i;:::-;26976:74;;27059:93;27148:3;27059:93;:::i;:::-;27177:2;27172:3;27168:12;27161:19;;26820:366;;;:::o;27192:419::-;27358:4;27396:2;27385:9;27381:18;27373:26;;27445:9;27439:4;27435:20;27431:1;27420:9;27416:17;27409:47;27473:131;27599:4;27473:131;:::i;:::-;27465:139;;27192:419;;;:::o;27617:179::-;27757:31;27753:1;27745:6;27741:14;27734:55;27617:179;:::o;27802:366::-;27944:3;27965:67;28029:2;28024:3;27965:67;:::i;:::-;27958:74;;28041:93;28130:3;28041:93;:::i;:::-;28159:2;28154:3;28150:12;28143:19;;27802:366;;;:::o;28174:419::-;28340:4;28378:2;28367:9;28363:18;28355:26;;28427:9;28421:4;28417:20;28413:1;28402:9;28398:17;28391:47;28455:131;28581:4;28455:131;:::i;:::-;28447:139;;28174:419;;;:::o;28599:177::-;28739:29;28735:1;28727:6;28723:14;28716:53;28599:177;:::o;28782:366::-;28924:3;28945:67;29009:2;29004:3;28945:67;:::i;:::-;28938:74;;29021:93;29110:3;29021:93;:::i;:::-;29139:2;29134:3;29130:12;29123:19;;28782:366;;;:::o;29154:419::-;29320:4;29358:2;29347:9;29343:18;29335:26;;29407:9;29401:4;29397:20;29393:1;29382:9;29378:17;29371:47;29435:131;29561:4;29435:131;:::i;:::-;29427:139;;29154:419;;;:::o;29579:233::-;29719:34;29715:1;29707:6;29703:14;29696:58;29788:16;29783:2;29775:6;29771:15;29764:41;29579:233;:::o;29818:366::-;29960:3;29981:67;30045:2;30040:3;29981:67;:::i;:::-;29974:74;;30057:93;30146:3;30057:93;:::i;:::-;30175:2;30170:3;30166:12;30159:19;;29818:366;;;:::o;30190:419::-;30356:4;30394:2;30383:9;30379:18;30371:26;;30443:9;30437:4;30433:20;30429:1;30418:9;30414:17;30407:47;30471:131;30597:4;30471:131;:::i;:::-;30463:139;;30190:419;;;:::o;30615:180::-;30755:32;30751:1;30743:6;30739:14;30732:56;30615:180;:::o;30801:366::-;30943:3;30964:67;31028:2;31023:3;30964:67;:::i;:::-;30957:74;;31040:93;31129:3;31040:93;:::i;:::-;31158:2;31153:3;31149:12;31142:19;;30801:366;;;:::o;31173:419::-;31339:4;31377:2;31366:9;31362:18;31354:26;;31426:9;31420:4;31416:20;31412:1;31401:9;31397:17;31390:47;31454:131;31580:4;31454:131;:::i;:::-;31446:139;;31173:419;;;:::o;31598:191::-;31638:3;31657:20;31675:1;31657:20;:::i;:::-;31652:25;;31691:20;31709:1;31691:20;:::i;:::-;31686:25;;31734:1;31731;31727:9;31720:16;;31755:3;31752:1;31749:10;31746:36;;;31762:18;;:::i;:::-;31746:36;31598:191;;;;:::o;31795:176::-;31935:28;31931:1;31923:6;31919:14;31912:52;31795:176;:::o;31977:366::-;32119:3;32140:67;32204:2;32199:3;32140:67;:::i;:::-;32133:74;;32216:93;32305:3;32216:93;:::i;:::-;32334:2;32329:3;32325:12;32318:19;;31977:366;;;:::o;32349:419::-;32515:4;32553:2;32542:9;32538:18;32530:26;;32602:9;32596:4;32592:20;32588:1;32577:9;32573:17;32566:47;32630:131;32756:4;32630:131;:::i;:::-;32622:139;;32349:419;;;:::o;32774:194::-;32814:4;32834:20;32852:1;32834:20;:::i;:::-;32829:25;;32868:20;32886:1;32868:20;:::i;:::-;32863:25;;32912:1;32909;32905:9;32897:17;;32936:1;32930:4;32927:11;32924:37;;;32941:18;;:::i;:::-;32924:37;32774:194;;;;:::o;32974:231::-;33114:34;33110:1;33102:6;33098:14;33091:58;33183:14;33178:2;33170:6;33166:15;33159:39;32974:231;:::o;33211:366::-;33353:3;33374:67;33438:2;33433:3;33374:67;:::i;:::-;33367:74;;33450:93;33539:3;33450:93;:::i;:::-;33568:2;33563:3;33559:12;33552:19;;33211:366;;;:::o;33583:419::-;33749:4;33787:2;33776:9;33772:18;33764:26;;33836:9;33830:4;33826:20;33822:1;33811:9;33807:17;33800:47;33864:131;33990:4;33864:131;:::i;:::-;33856:139;;33583:419;;;:::o;34008:147::-;34109:11;34146:3;34131:18;;34008:147;;;;:::o;34161:114::-;;:::o;34281:398::-;34440:3;34461:83;34542:1;34537:3;34461:83;:::i;:::-;34454:90;;34553:93;34642:3;34553:93;:::i;:::-;34671:1;34666:3;34662:11;34655:18;;34281:398;;;:::o;34685:379::-;34869:3;34891:147;35034:3;34891:147;:::i;:::-;34884:154;;35055:3;35048:10;;34685:379;;;:::o;35070:172::-;35210:24;35206:1;35198:6;35194:14;35187:48;35070:172;:::o;35248:366::-;35390:3;35411:67;35475:2;35470:3;35411:67;:::i;:::-;35404:74;;35487:93;35576:3;35487:93;:::i;:::-;35605:2;35600:3;35596:12;35589:19;;35248:366;;;:::o;35620:419::-;35786:4;35824:2;35813:9;35809:18;35801:26;;35873:9;35867:4;35863:20;35859:1;35848:9;35844:17;35837:47;35901:131;36027:4;35901:131;:::i;:::-;35893:139;;35620:419;;;:::o;36045:172::-;36185:24;36181:1;36173:6;36169:14;36162:48;36045:172;:::o;36223:366::-;36365:3;36386:67;36450:2;36445:3;36386:67;:::i;:::-;36379:74;;36462:93;36551:3;36462:93;:::i;:::-;36580:2;36575:3;36571:12;36564:19;;36223:366;;;:::o;36595:419::-;36761:4;36799:2;36788:9;36784:18;36776:26;;36848:9;36842:4;36838:20;36834:1;36823:9;36819:17;36812:47;36876:131;37002:4;36876:131;:::i;:::-;36868:139;;36595:419;;;:::o;37020:180::-;37068:77;37065:1;37058:88;37165:4;37162:1;37155:15;37189:4;37186:1;37179:15;37206:143;37263:5;37294:6;37288:13;37279:22;;37310:33;37337:5;37310:33;:::i;:::-;37206:143;;;;:::o;37355:351::-;37425:6;37474:2;37462:9;37453:7;37449:23;37445:32;37442:119;;;37480:79;;:::i;:::-;37442:119;37600:1;37625:64;37681:7;37672:6;37661:9;37657:22;37625:64;:::i;:::-;37615:74;;37571:128;37355:351;;;;:::o;37712:85::-;37757:7;37786:5;37775:16;;37712:85;;;:::o;37803:158::-;37861:9;37894:61;37912:42;37921:32;37947:5;37921:32;:::i;:::-;37912:42;:::i;:::-;37894:61;:::i;:::-;37881:74;;37803:158;;;:::o;37967:147::-;38062:45;38101:5;38062:45;:::i;:::-;38057:3;38050:58;37967:147;;:::o;38120:114::-;38187:6;38221:5;38215:12;38205:22;;38120:114;;;:::o;38240:184::-;38339:11;38373:6;38368:3;38361:19;38413:4;38408:3;38404:14;38389:29;;38240:184;;;;:::o;38430:132::-;38497:4;38520:3;38512:11;;38550:4;38545:3;38541:14;38533:22;;38430:132;;;:::o;38568:108::-;38645:24;38663:5;38645:24;:::i;:::-;38640:3;38633:37;38568:108;;:::o;38682:179::-;38751:10;38772:46;38814:3;38806:6;38772:46;:::i;:::-;38850:4;38845:3;38841:14;38827:28;;38682:179;;;;:::o;38867:113::-;38937:4;38969;38964:3;38960:14;38952:22;;38867:113;;;:::o;39016:732::-;39135:3;39164:54;39212:5;39164:54;:::i;:::-;39234:86;39313:6;39308:3;39234:86;:::i;:::-;39227:93;;39344:56;39394:5;39344:56;:::i;:::-;39423:7;39454:1;39439:284;39464:6;39461:1;39458:13;39439:284;;;39540:6;39534:13;39567:63;39626:3;39611:13;39567:63;:::i;:::-;39560:70;;39653:60;39706:6;39653:60;:::i;:::-;39643:70;;39499:224;39486:1;39483;39479:9;39474:14;;39439:284;;;39443:14;39739:3;39732:10;;39140:608;;;39016:732;;;;:::o;39754:831::-;40017:4;40055:3;40044:9;40040:19;40032:27;;40069:71;40137:1;40126:9;40122:17;40113:6;40069:71;:::i;:::-;40150:80;40226:2;40215:9;40211:18;40202:6;40150:80;:::i;:::-;40277:9;40271:4;40267:20;40262:2;40251:9;40247:18;40240:48;40305:108;40408:4;40399:6;40305:108;:::i;:::-;40297:116;;40423:72;40491:2;40480:9;40476:18;40467:6;40423:72;:::i;:::-;40505:73;40573:3;40562:9;40558:19;40549:6;40505:73;:::i;:::-;39754:831;;;;;;;;:::o;40591:180::-;40639:77;40636:1;40629:88;40736:4;40733:1;40726:15;40760:4;40757:1;40750:15;40777:185;40817:1;40834:20;40852:1;40834:20;:::i;:::-;40829:25;;40868:20;40886:1;40868:20;:::i;:::-;40863:25;;40907:1;40897:35;;40912:18;;:::i;:::-;40897:35;40954:1;40951;40947:9;40942:14;;40777:185;;;;:::o;40968:220::-;41108:34;41104:1;41096:6;41092:14;41085:58;41177:3;41172:2;41164:6;41160:15;41153:28;40968:220;:::o;41194:366::-;41336:3;41357:67;41421:2;41416:3;41357:67;:::i;:::-;41350:74;;41433:93;41522:3;41433:93;:::i;:::-;41551:2;41546:3;41542:12;41535:19;;41194:366;;;:::o;41566:419::-;41732:4;41770:2;41759:9;41755:18;41747:26;;41819:9;41813:4;41809:20;41805:1;41794:9;41790:17;41783:47;41847:131;41973:4;41847:131;:::i;:::-;41839:139;;41566:419;;;:::o;41991:177::-;42131:29;42127:1;42119:6;42115:14;42108:53;41991:177;:::o;42174:366::-;42316:3;42337:67;42401:2;42396:3;42337:67;:::i;:::-;42330:74;;42413:93;42502:3;42413:93;:::i;:::-;42531:2;42526:3;42522:12;42515:19;;42174:366;;;:::o;42546:419::-;42712:4;42750:2;42739:9;42735:18;42727:26;;42799:9;42793:4;42789:20;42785:1;42774:9;42770:17;42763:47;42827:131;42953:4;42827:131;:::i;:::-;42819:139;;42546:419;;;:::o
Swarm Source
ipfs://c0c83a019e386b6f89c0273e44460665e0adfc599ff7ac88df16d524fe8c4599
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.