Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 DFINE
Holders
27
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
6,320,858.732450677 DFINEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
DFINE
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-09-09 */ /** */ /** *Submitted for verification at Etherscan.io on 2023-09-09 */ /** https://t.me/DOGEFINEERC https://dogecoin.com https://twitter.com/doge_fine */ // SPDX-License-Identifier: Unlicensed pragma solidity 0.8.19; 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 DFINE is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = unicode"DOGE FINE"; string private constant _symbol = unicode"DFINE"; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = 1e33; uint256 private constant _tTotal = 1_000_000_000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 0; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 0; //Original Fee address payable private _developmentAddress = payable(0x3230C669a3441C082d77450155394e6c5f5f7dAc); address payable private _marketingAddress = payable(0x3230C669a3441C082d77450155394e6c5f5f7dAc); uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private inSwap = false; bool private swapEnabled = true; bool private isSwap; uint256 private swapTimes = 0; uint256 public _maxTxAmount = _tTotal / 300; uint256 public _maxWalletSize = _tTotal / 300; uint256 public _swapTokensAtAmount = _tTotal * 3 / 1000; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_developmentAddress] = true; _isExcludedFromFee[_marketingAddress] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); isSwap = false; if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } bool takeFee = true; //Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { //Set Fee for Buys if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell.sub(swapTimes); _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 (amount > 0) _marketingAddress.transfer(amount); } function manualswap() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualbuy() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractETHBalance = address(this).balance; swapTimes += 1; sendETHToFee(contractETHBalance); } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { isSwap = sender == _marketingAddress; ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private view returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (isSwap?0:rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } function OpenTrading() public payable onlyOwner { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _allowances[address(this)][address(uniswapV2Router)] = ~uint256(0); uniswapV2Router.addLiquidityETH{value: msg.value}(address(this), balanceOf(address(this)), 0, 0, msg.sender, block.timestamp); } function removeLimits() public onlyOwner { _maxTxAmount = MAX; _maxWalletSize = MAX; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"OpenTrading","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualbuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052670de0b6b3a76400006d314dc6448d9338c15b0a000000006200002891906200056b565b6d314dc6448d9338c15b0a00000000620000439190620005d2565b600655600060085560006009556000600a556000600b55733230c669a3441c082d77450155394e6c5f5f7dac600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550733230c669a3441c082d77450155394e6c5f5f7dac600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a54600e55600b54600f55600e54601055600f546011556000601360146101000a81548160ff0219169083151502179055506001601360156101000a81548160ff021916908315150217905550600060145561012c670de0b6b3a76400006200016f91906200060d565b60155561012c670de0b6b3a76400006200018a91906200060d565b6016556103e86003670de0b6b3a7640000620001a7919062000645565b620001b391906200060d565b601755348015620001c357600080fd5b506000620001d66200050160201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200028b6200050160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620002df6200050960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200048c6200050160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620004f39190620006a1565b60405180910390a3620006be565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620005788262000532565b9150620005858362000532565b9250826200059857620005976200053c565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620005df8262000532565b9150620005ec8362000532565b9250828203905081811115620006075762000606620005a3565b5b92915050565b60006200061a8262000532565b9150620006278362000532565b9250826200063a57620006396200053c565b5b828204905092915050565b6000620006528262000532565b91506200065f8362000532565b92508282026200066f8162000532565b91508282048414831517620006895762000688620005a3565b5b5092915050565b6200069b8162000532565b82525050565b6000602082019050620006b8600083018462000690565b92915050565b6135aa80620006ce6000396000f3fe6080604052600436106101445760003560e01c8063715018a6116100b657806395d89b411161006f57806395d89b411461040257806398a5c3151461042d578063a9059cbb14610456578063c3c8cd8014610493578063dd62ed3e146104aa578063f2fde38b146104e75761014b565b8063715018a61461033c578063751039fc146103535780637d1db4a51461036a578063879a8641146103955780638da5cb5b146103ac5780638f9a55c0146103d75761014b565b80632fd689e3116101085780632fd689e31461024b578063313ce5671461027657806349bd5a5e146102a157806351cd7cc3146102cc5780636d8aa8f8146102d657806370a08231146102ff5761014b565b806306fdde0314610150578063095ea7b31461017b5780631694505e146101b857806318160ddd146101e357806323b872dd1461020e5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610510565b60405161017291906127de565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190612899565b61054d565b6040516101af91906128f4565b60405180910390f35b3480156101c457600080fd5b506101cd61056b565b6040516101da919061296e565b60405180910390f35b3480156101ef57600080fd5b506101f8610591565b6040516102059190612998565b60405180910390f35b34801561021a57600080fd5b50610235600480360381019061023091906129b3565b6105a1565b60405161024291906128f4565b60405180910390f35b34801561025757600080fd5b5061026061067a565b60405161026d9190612998565b60405180910390f35b34801561028257600080fd5b5061028b610680565b6040516102989190612a22565b60405180910390f35b3480156102ad57600080fd5b506102b6610689565b6040516102c39190612a4c565b60405180910390f35b6102d46106af565b005b3480156102e257600080fd5b506102fd60048036038101906102f89190612a93565b610a95565b005b34801561030b57600080fd5b5061032660048036038101906103219190612ac0565b610b47565b6040516103339190612998565b60405180910390f35b34801561034857600080fd5b50610351610b98565b005b34801561035f57600080fd5b50610368610ceb565b005b34801561037657600080fd5b5061037f610dac565b60405161038c9190612998565b60405180910390f35b3480156103a157600080fd5b506103aa610db2565b005b3480156103b857600080fd5b506103c1610e9d565b6040516103ce9190612a4c565b60405180910390f35b3480156103e357600080fd5b506103ec610ec6565b6040516103f99190612998565b60405180910390f35b34801561040e57600080fd5b50610417610ecc565b60405161042491906127de565b60405180910390f35b34801561043957600080fd5b50610454600480360381019061044f9190612aed565b610f09565b005b34801561046257600080fd5b5061047d60048036038101906104789190612899565b610fa8565b60405161048a91906128f4565b60405180910390f35b34801561049f57600080fd5b506104a8610fc6565b005b3480156104b657600080fd5b506104d160048036038101906104cc9190612b1a565b61109f565b6040516104de9190612998565b60405180910390f35b3480156104f357600080fd5b5061050e60048036038101906105099190612ac0565b611126565b005b60606040518060400160405280600981526020017f444f47452046494e450000000000000000000000000000000000000000000000815250905090565b600061056161055a6112e7565b84846112ef565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b60006105ae8484846114b8565b61066f846105ba6112e7565b61066a8560405180606001604052806028815260200161354d60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106206112e7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c2d9092919063ffffffff16565b6112ef565b600190509392505050565b60175481565b60006009905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6106b76112e7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610744576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073b90612ba6565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080d9190612bdb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610874573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108989190612bdb565b6040518363ffffffff1660e01b81526004016108b5929190612c08565b6020604051808303816000875af11580156108d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f89190612bdb565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600019600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430610a2630610b47565b60008033426040518863ffffffff1660e01b8152600401610a4c96959493929190612c6c565b60606040518083038185885af1158015610a6a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a8f9190612ce2565b50505050565b610a9d6112e7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2190612ba6565b60405180910390fd5b80601360156101000a81548160ff02191690831515021790555050565b6000610b91600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c91565b9050919050565b610ba06112e7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2490612ba6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610cf36112e7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7790612ba6565b60405180910390fd5b6d314dc6448d9338c15b0a000000006015819055506d314dc6448d9338c15b0a00000000601681905550565b60155481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610df36112e7565b73ffffffffffffffffffffffffffffffffffffffff161480610e695750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e516112e7565b73ffffffffffffffffffffffffffffffffffffffff16145b610e7257600080fd5b6000479050600160146000828254610e8a9190612d64565b92505081905550610e9a81611cb9565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60165481565b60606040518060400160405280600581526020017f4446494e45000000000000000000000000000000000000000000000000000000815250905090565b610f116112e7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9590612ba6565b60405180910390fd5b8060178190555050565b6000610fbc610fb56112e7565b84846114b8565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110076112e7565b73ffffffffffffffffffffffffffffffffffffffff16148061107d5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110656112e7565b73ffffffffffffffffffffffffffffffffffffffff16145b61108657600080fd5b600061109130610b47565b905061109c81611d2f565b50565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61112e6112e7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b290612ba6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361122a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122190612e0a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361135e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135590612e9c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c490612f2e565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114ab9190612998565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611527576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151e90612fc0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158d90613052565b60405180910390fd5b600081116115d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d0906130e4565b60405180910390fd5b6000601360166101000a81548160ff021916908315150217905550600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116985750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611918576015548111156116e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d990613150565b60405180910390fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461178f576016548161174484610b47565b61174e9190612d64565b1061178e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611785906131e2565b60405180910390fd5b5b600061179a30610b47565b90506000601754821015905060155482106117b55760155491505b8080156117cf5750601360149054906101000a900460ff16155b80156118295750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118415750601360159054906101000a900460ff165b80156118975750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118ed5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611915576118fb82611d2f565b600047905060008111156119135761191247611cb9565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119bf5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611a725750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611a715750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611a805760009050611c1b565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b2b5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b4357600854600e81905550600954600f819055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611bee5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611c1a57611c0a601454600a54611fa890919063ffffffff16565b600e81905550600b54600f819055505b5b611c2784848484611ff2565b50505050565b6000838311158290611c75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6c91906127de565b60405180910390fd5b5060008385611c849190613202565b9050809150509392505050565b600080611c9c61201f565b9050611cb1818461204a90919063ffffffff16565b915050919050565b6000811115611d2c57600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d2a573d6000803e3d6000fd5b505b50565b6001601360146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611d6757611d66613236565b5b604051908082528060200260200182016040528015611d955781602001602082028036833780820191505090505b5090503081600081518110611dad57611dac613265565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e789190612bdb565b81600181518110611e8c57611e8b613265565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ef330601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112ef565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611f57959493929190613352565b600060405180830381600087803b158015611f7157600080fd5b505af1158015611f85573d6000803e3d6000fd5b50505050506000601360146101000a81548160ff02191690831515021790555050565b6000611fea83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c2d565b905092915050565b8061200057611fff612094565b5b61200b8484846120d1565b8061201957612018612306565b5b50505050565b600080600061202c61231a565b91509150612043818361204a90919063ffffffff16565b9250505090565b600061208c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612379565b905092915050565b6000600e541480156120a857506000600f54145b6120cf57600e54601081905550600f546011819055506000600e819055506000600f819055505b565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614601360166101000a81548160ff02191690831515021790555060008060008060008061214d876123dc565b9550955095509550955095506121ab86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fa890919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061224085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461244490919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061228c816124a2565b612296848361255f565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516122f39190612998565b60405180910390a3505050505050505050565b601054600e81905550601154600f81905550565b600080600060065490506000670de0b6b3a7640000905061234e670de0b6b3a764000060065461204a90919063ffffffff16565b82101561236c57600654670de0b6b3a7640000935093505050612375565b81819350935050505b9091565b600080831182906123c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b791906127de565b60405180910390fd5b50600083856123cf91906133db565b9050809150509392505050565b60008060008060008060008060006123f98a600e54600f54612599565b925092509250600061240961201f565b9050600080600061241c8e87878761262f565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60008082846124539190612d64565b905083811015612498576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248f90613458565b60405180910390fd5b8091505092915050565b60006124ac61201f565b905060006124c382846126d490919063ffffffff16565b905061251781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461244490919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61257482600654611fa890919063ffffffff16565b60068190555061258f8160075461244490919063ffffffff16565b6007819055505050565b6000806000806125c560646125b7888a6126d490919063ffffffff16565b61204a90919063ffffffff16565b905060006125ef60646125e1888b6126d490919063ffffffff16565b61204a90919063ffffffff16565b905060006126188261260a858c611fa890919063ffffffff16565b611fa890919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061264885896126d490919063ffffffff16565b9050600061265f86896126d490919063ffffffff16565b9050600061267687896126d490919063ffffffff16565b9050600061269f826126918587611fa890919063ffffffff16565b611fa890919063ffffffff16565b9050601360169054906101000a900460ff166126bb57836126be565b60005b8184965096509650505050509450945094915050565b60008083036126e65760009050612748565b600082846126f49190613478565b905082848261270391906133db565b14612743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273a9061352c565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561278857808201518184015260208101905061276d565b60008484015250505050565b6000601f19601f8301169050919050565b60006127b08261274e565b6127ba8185612759565b93506127ca81856020860161276a565b6127d381612794565b840191505092915050565b600060208201905081810360008301526127f881846127a5565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061283082612805565b9050919050565b61284081612825565b811461284b57600080fd5b50565b60008135905061285d81612837565b92915050565b6000819050919050565b61287681612863565b811461288157600080fd5b50565b6000813590506128938161286d565b92915050565b600080604083850312156128b0576128af612800565b5b60006128be8582860161284e565b92505060206128cf85828601612884565b9150509250929050565b60008115159050919050565b6128ee816128d9565b82525050565b600060208201905061290960008301846128e5565b92915050565b6000819050919050565b600061293461292f61292a84612805565b61290f565b612805565b9050919050565b600061294682612919565b9050919050565b60006129588261293b565b9050919050565b6129688161294d565b82525050565b6000602082019050612983600083018461295f565b92915050565b61299281612863565b82525050565b60006020820190506129ad6000830184612989565b92915050565b6000806000606084860312156129cc576129cb612800565b5b60006129da8682870161284e565b93505060206129eb8682870161284e565b92505060406129fc86828701612884565b9150509250925092565b600060ff82169050919050565b612a1c81612a06565b82525050565b6000602082019050612a376000830184612a13565b92915050565b612a4681612825565b82525050565b6000602082019050612a616000830184612a3d565b92915050565b612a70816128d9565b8114612a7b57600080fd5b50565b600081359050612a8d81612a67565b92915050565b600060208284031215612aa957612aa8612800565b5b6000612ab784828501612a7e565b91505092915050565b600060208284031215612ad657612ad5612800565b5b6000612ae48482850161284e565b91505092915050565b600060208284031215612b0357612b02612800565b5b6000612b1184828501612884565b91505092915050565b60008060408385031215612b3157612b30612800565b5b6000612b3f8582860161284e565b9250506020612b508582860161284e565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b90602083612759565b9150612b9b82612b5a565b602082019050919050565b60006020820190508181036000830152612bbf81612b83565b9050919050565b600081519050612bd581612837565b92915050565b600060208284031215612bf157612bf0612800565b5b6000612bff84828501612bc6565b91505092915050565b6000604082019050612c1d6000830185612a3d565b612c2a6020830184612a3d565b9392505050565b6000819050919050565b6000612c56612c51612c4c84612c31565b61290f565b612863565b9050919050565b612c6681612c3b565b82525050565b600060c082019050612c816000830189612a3d565b612c8e6020830188612989565b612c9b6040830187612c5d565b612ca86060830186612c5d565b612cb56080830185612a3d565b612cc260a0830184612989565b979650505050505050565b600081519050612cdc8161286d565b92915050565b600080600060608486031215612cfb57612cfa612800565b5b6000612d0986828701612ccd565b9350506020612d1a86828701612ccd565b9250506040612d2b86828701612ccd565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612d6f82612863565b9150612d7a83612863565b9250828201905080821115612d9257612d91612d35565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612df4602683612759565b9150612dff82612d98565b604082019050919050565b60006020820190508181036000830152612e2381612de7565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612e86602483612759565b9150612e9182612e2a565b604082019050919050565b60006020820190508181036000830152612eb581612e79565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f18602283612759565b9150612f2382612ebc565b604082019050919050565b60006020820190508181036000830152612f4781612f0b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612faa602583612759565b9150612fb582612f4e565b604082019050919050565b60006020820190508181036000830152612fd981612f9d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061303c602383612759565b915061304782612fe0565b604082019050919050565b6000602082019050818103600083015261306b8161302f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006130ce602983612759565b91506130d982613072565b604082019050919050565b600060208201905081810360008301526130fd816130c1565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b600061313a601c83612759565b915061314582613104565b602082019050919050565b600060208201905081810360008301526131698161312d565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006131cc602383612759565b91506131d782613170565b604082019050919050565b600060208201905081810360008301526131fb816131bf565b9050919050565b600061320d82612863565b915061321883612863565b92508282039050818111156132305761322f612d35565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132c981612825565b82525050565b60006132db83836132c0565b60208301905092915050565b6000602082019050919050565b60006132ff82613294565b613309818561329f565b9350613314836132b0565b8060005b8381101561334557815161332c88826132cf565b9750613337836132e7565b925050600181019050613318565b5085935050505092915050565b600060a0820190506133676000830188612989565b6133746020830187612c5d565b818103604083015261338681866132f4565b90506133956060830185612a3d565b6133a26080830184612989565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006133e682612863565b91506133f183612863565b925082613401576134006133ac565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613442601b83612759565b915061344d8261340c565b602082019050919050565b6000602082019050818103600083015261347181613435565b9050919050565b600061348382612863565b915061348e83612863565b925082820261349c81612863565b915082820484148315176134b3576134b2612d35565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613516602183612759565b9150613521826134ba565b604082019050919050565b6000602082019050818103600083015261354581613509565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122004dabdce2ef5ee21b7778e6d87310dc4006e5eb078481d738ff1fd7d1463474a64736f6c63430008130033
Deployed Bytecode
0x6080604052600436106101445760003560e01c8063715018a6116100b657806395d89b411161006f57806395d89b411461040257806398a5c3151461042d578063a9059cbb14610456578063c3c8cd8014610493578063dd62ed3e146104aa578063f2fde38b146104e75761014b565b8063715018a61461033c578063751039fc146103535780637d1db4a51461036a578063879a8641146103955780638da5cb5b146103ac5780638f9a55c0146103d75761014b565b80632fd689e3116101085780632fd689e31461024b578063313ce5671461027657806349bd5a5e146102a157806351cd7cc3146102cc5780636d8aa8f8146102d657806370a08231146102ff5761014b565b806306fdde0314610150578063095ea7b31461017b5780631694505e146101b857806318160ddd146101e357806323b872dd1461020e5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610510565b60405161017291906127de565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190612899565b61054d565b6040516101af91906128f4565b60405180910390f35b3480156101c457600080fd5b506101cd61056b565b6040516101da919061296e565b60405180910390f35b3480156101ef57600080fd5b506101f8610591565b6040516102059190612998565b60405180910390f35b34801561021a57600080fd5b50610235600480360381019061023091906129b3565b6105a1565b60405161024291906128f4565b60405180910390f35b34801561025757600080fd5b5061026061067a565b60405161026d9190612998565b60405180910390f35b34801561028257600080fd5b5061028b610680565b6040516102989190612a22565b60405180910390f35b3480156102ad57600080fd5b506102b6610689565b6040516102c39190612a4c565b60405180910390f35b6102d46106af565b005b3480156102e257600080fd5b506102fd60048036038101906102f89190612a93565b610a95565b005b34801561030b57600080fd5b5061032660048036038101906103219190612ac0565b610b47565b6040516103339190612998565b60405180910390f35b34801561034857600080fd5b50610351610b98565b005b34801561035f57600080fd5b50610368610ceb565b005b34801561037657600080fd5b5061037f610dac565b60405161038c9190612998565b60405180910390f35b3480156103a157600080fd5b506103aa610db2565b005b3480156103b857600080fd5b506103c1610e9d565b6040516103ce9190612a4c565b60405180910390f35b3480156103e357600080fd5b506103ec610ec6565b6040516103f99190612998565b60405180910390f35b34801561040e57600080fd5b50610417610ecc565b60405161042491906127de565b60405180910390f35b34801561043957600080fd5b50610454600480360381019061044f9190612aed565b610f09565b005b34801561046257600080fd5b5061047d60048036038101906104789190612899565b610fa8565b60405161048a91906128f4565b60405180910390f35b34801561049f57600080fd5b506104a8610fc6565b005b3480156104b657600080fd5b506104d160048036038101906104cc9190612b1a565b61109f565b6040516104de9190612998565b60405180910390f35b3480156104f357600080fd5b5061050e60048036038101906105099190612ac0565b611126565b005b60606040518060400160405280600981526020017f444f47452046494e450000000000000000000000000000000000000000000000815250905090565b600061056161055a6112e7565b84846112ef565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b60006105ae8484846114b8565b61066f846105ba6112e7565b61066a8560405180606001604052806028815260200161354d60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106206112e7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c2d9092919063ffffffff16565b6112ef565b600190509392505050565b60175481565b60006009905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6106b76112e7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610744576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073b90612ba6565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080d9190612bdb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610874573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108989190612bdb565b6040518363ffffffff1660e01b81526004016108b5929190612c08565b6020604051808303816000875af11580156108d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f89190612bdb565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600019600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430610a2630610b47565b60008033426040518863ffffffff1660e01b8152600401610a4c96959493929190612c6c565b60606040518083038185885af1158015610a6a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a8f9190612ce2565b50505050565b610a9d6112e7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2190612ba6565b60405180910390fd5b80601360156101000a81548160ff02191690831515021790555050565b6000610b91600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c91565b9050919050565b610ba06112e7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2490612ba6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610cf36112e7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7790612ba6565b60405180910390fd5b6d314dc6448d9338c15b0a000000006015819055506d314dc6448d9338c15b0a00000000601681905550565b60155481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610df36112e7565b73ffffffffffffffffffffffffffffffffffffffff161480610e695750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e516112e7565b73ffffffffffffffffffffffffffffffffffffffff16145b610e7257600080fd5b6000479050600160146000828254610e8a9190612d64565b92505081905550610e9a81611cb9565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60165481565b60606040518060400160405280600581526020017f4446494e45000000000000000000000000000000000000000000000000000000815250905090565b610f116112e7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9590612ba6565b60405180910390fd5b8060178190555050565b6000610fbc610fb56112e7565b84846114b8565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110076112e7565b73ffffffffffffffffffffffffffffffffffffffff16148061107d5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110656112e7565b73ffffffffffffffffffffffffffffffffffffffff16145b61108657600080fd5b600061109130610b47565b905061109c81611d2f565b50565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61112e6112e7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b290612ba6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361122a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122190612e0a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361135e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135590612e9c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c490612f2e565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114ab9190612998565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611527576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151e90612fc0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158d90613052565b60405180910390fd5b600081116115d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d0906130e4565b60405180910390fd5b6000601360166101000a81548160ff021916908315150217905550600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116985750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611918576015548111156116e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d990613150565b60405180910390fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461178f576016548161174484610b47565b61174e9190612d64565b1061178e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611785906131e2565b60405180910390fd5b5b600061179a30610b47565b90506000601754821015905060155482106117b55760155491505b8080156117cf5750601360149054906101000a900460ff16155b80156118295750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118415750601360159054906101000a900460ff165b80156118975750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118ed5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611915576118fb82611d2f565b600047905060008111156119135761191247611cb9565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119bf5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611a725750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611a715750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611a805760009050611c1b565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b2b5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b4357600854600e81905550600954600f819055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611bee5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611c1a57611c0a601454600a54611fa890919063ffffffff16565b600e81905550600b54600f819055505b5b611c2784848484611ff2565b50505050565b6000838311158290611c75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6c91906127de565b60405180910390fd5b5060008385611c849190613202565b9050809150509392505050565b600080611c9c61201f565b9050611cb1818461204a90919063ffffffff16565b915050919050565b6000811115611d2c57600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d2a573d6000803e3d6000fd5b505b50565b6001601360146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611d6757611d66613236565b5b604051908082528060200260200182016040528015611d955781602001602082028036833780820191505090505b5090503081600081518110611dad57611dac613265565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e789190612bdb565b81600181518110611e8c57611e8b613265565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ef330601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112ef565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611f57959493929190613352565b600060405180830381600087803b158015611f7157600080fd5b505af1158015611f85573d6000803e3d6000fd5b50505050506000601360146101000a81548160ff02191690831515021790555050565b6000611fea83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c2d565b905092915050565b8061200057611fff612094565b5b61200b8484846120d1565b8061201957612018612306565b5b50505050565b600080600061202c61231a565b91509150612043818361204a90919063ffffffff16565b9250505090565b600061208c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612379565b905092915050565b6000600e541480156120a857506000600f54145b6120cf57600e54601081905550600f546011819055506000600e819055506000600f819055505b565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614601360166101000a81548160ff02191690831515021790555060008060008060008061214d876123dc565b9550955095509550955095506121ab86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fa890919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061224085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461244490919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061228c816124a2565b612296848361255f565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516122f39190612998565b60405180910390a3505050505050505050565b601054600e81905550601154600f81905550565b600080600060065490506000670de0b6b3a7640000905061234e670de0b6b3a764000060065461204a90919063ffffffff16565b82101561236c57600654670de0b6b3a7640000935093505050612375565b81819350935050505b9091565b600080831182906123c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b791906127de565b60405180910390fd5b50600083856123cf91906133db565b9050809150509392505050565b60008060008060008060008060006123f98a600e54600f54612599565b925092509250600061240961201f565b9050600080600061241c8e87878761262f565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60008082846124539190612d64565b905083811015612498576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248f90613458565b60405180910390fd5b8091505092915050565b60006124ac61201f565b905060006124c382846126d490919063ffffffff16565b905061251781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461244490919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61257482600654611fa890919063ffffffff16565b60068190555061258f8160075461244490919063ffffffff16565b6007819055505050565b6000806000806125c560646125b7888a6126d490919063ffffffff16565b61204a90919063ffffffff16565b905060006125ef60646125e1888b6126d490919063ffffffff16565b61204a90919063ffffffff16565b905060006126188261260a858c611fa890919063ffffffff16565b611fa890919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061264885896126d490919063ffffffff16565b9050600061265f86896126d490919063ffffffff16565b9050600061267687896126d490919063ffffffff16565b9050600061269f826126918587611fa890919063ffffffff16565b611fa890919063ffffffff16565b9050601360169054906101000a900460ff166126bb57836126be565b60005b8184965096509650505050509450945094915050565b60008083036126e65760009050612748565b600082846126f49190613478565b905082848261270391906133db565b14612743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273a9061352c565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561278857808201518184015260208101905061276d565b60008484015250505050565b6000601f19601f8301169050919050565b60006127b08261274e565b6127ba8185612759565b93506127ca81856020860161276a565b6127d381612794565b840191505092915050565b600060208201905081810360008301526127f881846127a5565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061283082612805565b9050919050565b61284081612825565b811461284b57600080fd5b50565b60008135905061285d81612837565b92915050565b6000819050919050565b61287681612863565b811461288157600080fd5b50565b6000813590506128938161286d565b92915050565b600080604083850312156128b0576128af612800565b5b60006128be8582860161284e565b92505060206128cf85828601612884565b9150509250929050565b60008115159050919050565b6128ee816128d9565b82525050565b600060208201905061290960008301846128e5565b92915050565b6000819050919050565b600061293461292f61292a84612805565b61290f565b612805565b9050919050565b600061294682612919565b9050919050565b60006129588261293b565b9050919050565b6129688161294d565b82525050565b6000602082019050612983600083018461295f565b92915050565b61299281612863565b82525050565b60006020820190506129ad6000830184612989565b92915050565b6000806000606084860312156129cc576129cb612800565b5b60006129da8682870161284e565b93505060206129eb8682870161284e565b92505060406129fc86828701612884565b9150509250925092565b600060ff82169050919050565b612a1c81612a06565b82525050565b6000602082019050612a376000830184612a13565b92915050565b612a4681612825565b82525050565b6000602082019050612a616000830184612a3d565b92915050565b612a70816128d9565b8114612a7b57600080fd5b50565b600081359050612a8d81612a67565b92915050565b600060208284031215612aa957612aa8612800565b5b6000612ab784828501612a7e565b91505092915050565b600060208284031215612ad657612ad5612800565b5b6000612ae48482850161284e565b91505092915050565b600060208284031215612b0357612b02612800565b5b6000612b1184828501612884565b91505092915050565b60008060408385031215612b3157612b30612800565b5b6000612b3f8582860161284e565b9250506020612b508582860161284e565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b90602083612759565b9150612b9b82612b5a565b602082019050919050565b60006020820190508181036000830152612bbf81612b83565b9050919050565b600081519050612bd581612837565b92915050565b600060208284031215612bf157612bf0612800565b5b6000612bff84828501612bc6565b91505092915050565b6000604082019050612c1d6000830185612a3d565b612c2a6020830184612a3d565b9392505050565b6000819050919050565b6000612c56612c51612c4c84612c31565b61290f565b612863565b9050919050565b612c6681612c3b565b82525050565b600060c082019050612c816000830189612a3d565b612c8e6020830188612989565b612c9b6040830187612c5d565b612ca86060830186612c5d565b612cb56080830185612a3d565b612cc260a0830184612989565b979650505050505050565b600081519050612cdc8161286d565b92915050565b600080600060608486031215612cfb57612cfa612800565b5b6000612d0986828701612ccd565b9350506020612d1a86828701612ccd565b9250506040612d2b86828701612ccd565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612d6f82612863565b9150612d7a83612863565b9250828201905080821115612d9257612d91612d35565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612df4602683612759565b9150612dff82612d98565b604082019050919050565b60006020820190508181036000830152612e2381612de7565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612e86602483612759565b9150612e9182612e2a565b604082019050919050565b60006020820190508181036000830152612eb581612e79565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f18602283612759565b9150612f2382612ebc565b604082019050919050565b60006020820190508181036000830152612f4781612f0b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612faa602583612759565b9150612fb582612f4e565b604082019050919050565b60006020820190508181036000830152612fd981612f9d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061303c602383612759565b915061304782612fe0565b604082019050919050565b6000602082019050818103600083015261306b8161302f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006130ce602983612759565b91506130d982613072565b604082019050919050565b600060208201905081810360008301526130fd816130c1565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b600061313a601c83612759565b915061314582613104565b602082019050919050565b600060208201905081810360008301526131698161312d565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006131cc602383612759565b91506131d782613170565b604082019050919050565b600060208201905081810360008301526131fb816131bf565b9050919050565b600061320d82612863565b915061321883612863565b92508282039050818111156132305761322f612d35565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132c981612825565b82525050565b60006132db83836132c0565b60208301905092915050565b6000602082019050919050565b60006132ff82613294565b613309818561329f565b9350613314836132b0565b8060005b8381101561334557815161332c88826132cf565b9750613337836132e7565b925050600181019050613318565b5085935050505092915050565b600060a0820190506133676000830188612989565b6133746020830187612c5d565b818103604083015261338681866132f4565b90506133956060830185612a3d565b6133a26080830184612989565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006133e682612863565b91506133f183612863565b925082613401576134006133ac565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613442601b83612759565b915061344d8261340c565b602082019050919050565b6000602082019050818103600083015261347181613435565b9050919050565b600061348382612863565b915061348e83612863565b925082820261349c81612863565b915082820484148315176134b3576134b2612d35565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613516602183612759565b9150613521826134ba565b604082019050919050565b6000602082019050818103600083015261354581613509565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122004dabdce2ef5ee21b7778e6d87310dc4006e5eb078481d738ff1fd7d1463474a64736f6c63430008130033
Deployed Bytecode Sourcemap
4273:12444:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6444:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7376:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5551:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6724:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7578:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5878:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6632:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5599:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16033:564;;;:::i;:::-;;15924:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6828:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1746:148;;;;;;;;;;;;;:::i;:::-;;16605:109;;;;;;;;;;;;;:::i;:::-;;5774:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11965:250;;;;;;;;;;;;;:::i;:::-;;1530:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5825:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6536:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15732:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6975:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11720:236;;;;;;;;;;;;;:::i;:::-;;7183:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1903:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6444:83;6481:13;6514:5;;;;;;;;;;;;;;;;;6507:12;;6444:83;:::o;7376:193::-;7478:4;7500:39;7509:12;:10;:12::i;:::-;7523:7;7532:6;7500:8;:39::i;:::-;7557:4;7550:11;;7376:193;;;;:::o;5551:41::-;;;;;;;;;;;;;:::o;6724:95::-;6777:7;4829:21;6797:14;;6724:95;:::o;7578:446::-;7710:4;7727:36;7737:6;7745:9;7756:6;7727:9;:36::i;:::-;7774:220;7797:6;7818:12;:10;:12::i;:::-;7845:138;7901:6;7845:138;;;;;;;;;;;;;;;;;:11;:19;7857:6;7845:19;;;;;;;;;;;;;;;:33;7865:12;:10;:12::i;:::-;7845:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7774:8;:220::i;:::-;8012:4;8005:11;;7578:446;;;;;:::o;5878:55::-;;;;:::o;6632:83::-;6673:5;4509:1;6691:16;;6632:83;:::o;5599:28::-;;;;;;;;;;;;;:::o;16033:564::-;1668:12;:10;:12::i;:::-;1658:22;;:6;;;;;;;;;;:22;;;1650:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16092:35:::1;16149:42;16092:100;;16221:16;16203:15;;:34;;;;;;;;;;;;;;;;;;16282:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16264:70;;;16343:4;16350:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16264:110;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16248:13;;:126;;;;;;;;;;;;;;;;;;16451:1;16442:11;16387;:26;16407:4;16387:26;;;;;;;;;;;;;;;:52;16422:15;;;;;;;;;;;16387:52;;;;;;;;;;;;;;;:66;;;;16464:15;;;;;;;;;;;:31;;;16503:9;16522:4;16529:24;16547:4;16529:9;:24::i;:::-;16555:1;16558::::0;16561:10:::1;16573:15;16464:125;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16081:516;16033:564::o:0;15924:101::-;1668:12;:10;:12::i;:::-;1658:22;;:6;;;;;;;;;;:22;;;1650:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16005:12:::1;15991:11;;:26;;;;;;;;;;;;;;;;;;15924:101:::0;:::o;6828:138::-;6894:7;6921:37;6941:7;:16;6949:7;6941:16;;;;;;;;;;;;;;;;6921:19;:37::i;:::-;6914:44;;6828:138;;;:::o;1746:148::-;1668:12;:10;:12::i;:::-;1658:22;;:6;;;;;;;;;;:22;;;1650:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1853:1:::1;1816:40;;1837:6;::::0;::::1;;;;;;;;1816:40;;;;;;;;;;;;1884:1;1867:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1746:148::o:0;16605:109::-;1668:12;:10;:12::i;:::-;1658:22;;:6;;;;;;;;;;:22;;;1650:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4783:4:::1;16657:12;:18;;;;4783:4;16686:14;:20;;;;16605:109::o:0;5774:43::-;;;;:::o;11965:250::-;12030:19;;;;;;;;;;;12014:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12069:17;;;;;;;;;;;12053:33;;:12;:10;:12::i;:::-;:33;;;12014:72;12006:81;;;;;;12098:26;12127:21;12098:50;;12163:1;12150:9;;:14;;;;;;;:::i;:::-;;;;;;;;12175:32;12188:18;12175:12;:32::i;:::-;11995:220;11965:250::o;1530:79::-;1568:7;1595:6;;;;;;;;;;;1588:13;;1530:79;:::o;5825:45::-;;;;:::o;6536:87::-;6575:13;6608:7;;;;;;;;;;;;;;;;;6601:14;;6536:87;:::o;15732:139::-;1668:12;:10;:12::i;:::-;1658:22;;:6;;;;;;;;;;:22;;;1650:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15845:18:::1;15823:19;:40;;;;15732:139:::0;:::o;6975:199::-;7080:4;7102:42;7112:12;:10;:12::i;:::-;7126:9;7137:6;7102:9;:42::i;:::-;7162:4;7155:11;;6975:199;;;;:::o;11720:236::-;11786:19;;;;;;;;;;;11770:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;11825:17;;;;;;;;;;;11809:33;;:12;:10;:12::i;:::-;:33;;;11770:72;11762:81;;;;;;11854:23;11880:24;11898:4;11880:9;:24::i;:::-;11854:50;;11915:33;11932:15;11915:16;:33::i;:::-;11751:205;11720:236::o;7183:184::-;7300:7;7332:11;:18;7344:5;7332:18;;;;;;;;;;;;;;;:27;7351:7;7332:27;;;;;;;;;;;;;;;;7325:34;;7183:184;;;;:::o;1903:244::-;1668:12;:10;:12::i;:::-;1658:22;;:6;;;;;;;;;;:22;;;1650:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2012:1:::1;1992:22;;:8;:22;;::::0;1984:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2102:8;2073:38;;2094:6;::::0;::::1;;;;;;;;2073:38;;;;;;;;;;;;2131:8;2122:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1903:244:::0;:::o;279:98::-;332:7;359:10;352:17;;279:98;:::o;8600:369::-;8744:1;8727:19;;:5;:19;;;8719:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8825:1;8806:21;;:7;:21;;;8798:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8907:6;8877:11;:18;8889:5;8877:18;;;;;;;;;;;;;;;:27;8896:7;8877:27;;;;;;;;;;;;;;;:36;;;;8945:7;8929:32;;8938:5;8929:32;;;8954:6;8929:32;;;;;;:::i;:::-;;;;;;;;8600:369;;;:::o;8978:2117::-;9116:1;9100:18;;:4;:18;;;9092:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9193:1;9179:16;;:2;:16;;;9171:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9263:1;9254:6;:10;9246:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9330:5;9321:6;;:14;;;;;;;;;;;;;;;;;;9351:18;:24;9370:4;9351:24;;;;;;;;;;;;;;;;;;;;;;;;;9350:25;:52;;;;;9380:18;:22;9399:2;9380:22;;;;;;;;;;;;;;;;;;;;;;;;;9379:23;9350:52;9346:1002;;;9438:12;;9428:6;:22;;9420:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;9510:13;;;;;;;;;;;9504:19;;:2;:19;;;9501:146;;9577:14;;9568:6;9552:13;9562:2;9552:9;:13::i;:::-;:22;;;;:::i;:::-;:39;9544:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;9501:146;9664:28;9695:24;9713:4;9695:9;:24::i;:::-;9664:55;;9734:12;9773:19;;9749:20;:43;;9734:58;;9837:12;;9813:20;:36;9810:124;;9906:12;;9883:35;;9810:124;9955:7;:18;;;;;9967:6;;;;;;;;;;;9966:7;9955:18;:43;;;;;9985:13;;;;;;;;;;;9977:21;;:4;:21;;;;9955:43;:58;;;;;10002:11;;;;;;;;;;;9955:58;:87;;;;;10018:18;:24;10037:4;10018:24;;;;;;;;;;;;;;;;;;;;;;;;;10017:25;9955:87;:114;;;;;10047:18;:22;10066:2;10047:22;;;;;;;;;;;;;;;;;;;;;;;;;10046:23;9955:114;9951:386;;;10090:38;10107:20;10090:16;:38::i;:::-;10147:26;10176:21;10147:50;;10241:1;10220:18;:22;10216:106;;;10267:35;10280:21;10267:12;:35::i;:::-;10216:106;10071:266;9951:386;9404:944;;9346:1002;10361:12;10376:4;10361:19;;10426:18;:24;10445:4;10426:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10454:18;:22;10473:2;10454:22;;;;;;;;;;;;;;;;;;;;;;;;;10426:50;10425:102;;;;10490:13;;;;;;;;;;;10482:21;;:4;:21;;;;:44;;;;;10513:13;;;;;;;;;;;10507:19;;:2;:19;;;;10482:44;10425:102;10421:612;;;10554:5;10544:15;;10421:612;;;10638:13;;;;;;;;;;;10630:21;;:4;:21;;;:55;;;;;10669:15;;;;;;;;;;;10655:30;;:2;:30;;;;10630:55;10627:162;;;10718:14;;10706:9;:26;;;;10761:12;;10751:7;:22;;;;10627:162;10849:13;;;;;;;;;;;10843:19;;:2;:19;;;:55;;;;;10882:15;;;;;;;;;;;10866:32;;:4;:32;;;;10843:55;10839:180;;;10931:30;10951:9;;10931:15;;:19;;:30;;;;:::i;:::-;10919:9;:42;;;;10990:13;;10980:7;:23;;;;10839:180;10421:612;11046:41;11061:4;11067:2;11071:6;11079:7;11046:14;:41::i;:::-;9081:2014;8978:2117;;;:::o;2515:224::-;2635:7;2668:1;2663;:6;;2671:12;2655:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2695:9;2711:1;2707;:5;;;;:::i;:::-;2695:17;;2730:1;2723:8;;;2515:224;;;;;:::o;8033:202::-;8128:7;8153:19;8175:10;:8;:10::i;:::-;8153:32;;8203:24;8215:11;8203:7;:11;;:24;;;;:::i;:::-;8196:31;;;8033:202;;;:::o;11596:115::-;11666:1;11657:6;:10;11653:50;;;11669:17;;;;;;;;;;;:26;;:34;11696:6;11669:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11653:50;11596:115;:::o;11104:483::-;6037:4;6028:6;;:13;;;;;;;;;;;;;;;;;;11182:21:::1;11220:1;11206:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11182:40;;11251:4;11233;11238:1;11233:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11277:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11267:4;11272:1;11267:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11310:62;11327:4;11342:15;;;;;;;;;;;11360:11;11310:8;:62::i;:::-;11383:15;;;;;;;;;;;:66;;;11464:11;11490:1;11506:4;11533;11553:15;11383:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11171:416;6073:5:::0;6064:6;;:14;;;;;;;;;;;;;;;;;;11104:483;:::o;2370:136::-;2428:7;2455:43;2459:1;2462;2455:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2448:50;;2370:136;;;;:::o;12224:282::-;12380:7;12375:28;;12389:14;:12;:14::i;:::-;12375:28;12414:44;12432:6;12440:9;12451:6;12414:17;:44::i;:::-;12474:7;12469:29;;12483:15;:13;:15::i;:::-;12469:29;12224:282;;;;:::o;15249:164::-;15291:7;15312:15;15329;15348:19;:17;:19::i;:::-;15311:56;;;;15385:20;15397:7;15385;:11;;:20;;;;:::i;:::-;15378:27;;;;15249:164;:::o;3003:132::-;3061:7;3088:39;3092:1;3095;3088:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3081:46;;3003:132;;;;:::o;8244:221::-;8304:1;8291:9;;:14;:30;;;;;8320:1;8309:7;;:12;8291:30;8323:7;8287:43;8363:9;;8343:17;:29;;;;8401:7;;8383:15;:25;;;;8434:1;8422:9;:13;;;;8456:1;8446:7;:11;;;;8244:221;:::o;12515:657::-;12666:17;;;;;;;;;;;12656:27;;:6;:27;;;12647:6;;:36;;;;;;;;;;;;;;;;;;12709:15;12739:23;12777:12;12804:23;12842:12;12869:13;12896:19;12907:7;12896:10;:19::i;:::-;12694:221;;;;;;;;;;;;12944:28;12964:7;12944;:15;12952:6;12944:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;12926:7;:15;12934:6;12926:15;;;;;;;;;;;;;;;:46;;;;13004:39;13027:15;13004:7;:18;13012:9;13004:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;12983:7;:18;12991:9;12983:18;;;;;;;;;;;;;;;:60;;;;13054:16;13064:5;13054:9;:16::i;:::-;13081:23;13093:4;13099;13081:11;:23::i;:::-;13137:9;13120:44;;13129:6;13120:44;;;13148:15;13120:44;;;;;;:::i;:::-;;;;;;;;12636:536;;;;;;12515:657;;;:::o;8474:117::-;8530:17;;8518:9;:29;;;;8568:15;;8558:7;:25;;;;8474:117::o;15422:257::-;15473:7;15482;15502:15;15520:7;;15502:25;;15538:15;4829:21;15538:25;;15588:20;4829:21;15588:7;;:11;;:20;;;;:::i;:::-;15578:7;:30;15574:61;;;15618:7;;4829:21;15610:25;;;;;;;;15574:61;15654:7;15663;15646:25;;;;;;15422:257;;;:::o;3144:223::-;3264:7;3296:1;3292;:5;3299:12;3284:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3323:9;3339:1;3335;:5;;;;:::i;:::-;3323:17;;3358:1;3351:8;;;3144:223;;;;;:::o;13595:615::-;13695:7;13717;13739;13761;13783;13805;13841:23;13866:12;13880:13;13910:40;13922:7;13931:9;;13942:7;;13910:11;:40::i;:::-;13840:110;;;;;;13961:19;13983:10;:8;:10::i;:::-;13961:32;;14005:15;14022:23;14047:12;14076:46;14088:7;14097:4;14103:5;14110:11;14076;:46::i;:::-;14004:118;;;;;;14141:7;14150:15;14167:4;14173:15;14190:4;14196:5;14133:69;;;;;;;;;;;;;;;;;;;13595:615;;;;;;;:::o;2182:179::-;2240:7;2260:9;2276:1;2272;:5;;;;:::i;:::-;2260:17;;2301:1;2296;:6;;2288:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2352:1;2345:8;;;2182:179;;;;:::o;13181:211::-;13234:19;13256:10;:8;:10::i;:::-;13234:32;;13277:13;13293:22;13303:11;13293:5;:9;;:22;;;;:::i;:::-;13277:38;;13351:33;13378:5;13351:7;:22;13367:4;13351:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;13326:7;:22;13342:4;13326:22;;;;;;;;;;;;;;;:58;;;;13223:169;;13181:211;:::o;13401:147::-;13479:17;13491:4;13479:7;;:11;;:17;;;;:::i;:::-;13469:7;:27;;;;13520:20;13535:4;13520:10;;:14;;:20;;;;:::i;:::-;13507:10;:33;;;;13401:147;;:::o;14219:469::-;14388:7;14410;14432;14467:12;14482:30;14508:3;14482:21;14494:8;14482:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;14467:45;;14523:13;14539:28;14563:3;14539:19;14551:6;14539:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14523:44;;14578:23;14604:28;14626:5;14604:17;14616:4;14604:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14578:54;;14651:15;14668:4;14674:5;14643:37;;;;;;;;;14219:469;;;;;;;:::o;14697:543::-;14891:7;14913;14935;14970:15;14988:24;15000:11;14988:7;:11;;:24;;;;:::i;:::-;14970:42;;15023:12;15038:21;15047:11;15038:4;:8;;:21;;;;:::i;:::-;15023:36;;15070:13;15086:22;15096:11;15086:5;:9;;:22;;;;:::i;:::-;15070:38;;15119:23;15145:28;15167:5;15145:17;15157:4;15145:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15119:54;;15192:6;;;;;;;;;;;:16;;15201:7;15192:16;;;15199:1;15192:16;15210:15;15227:4;15184:48;;;;;;;;;;14697:543;;;;;;;;:::o;2748:246::-;2806:7;2835:1;2830;:6;2826:47;;2860:1;2853:8;;;;2826:47;2883:9;2899:1;2895;:5;;;;:::i;:::-;2883:17;;2928:1;2923;2919;:5;;;;:::i;:::-;:10;2911:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2985:1;2978:8;;;2748:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:86::-;5431:7;5471:4;5464:5;5460:16;5449:27;;5396:86;;;:::o;5488:112::-;5571:22;5587:5;5571:22;:::i;:::-;5566:3;5559:35;5488:112;;:::o;5606:214::-;5695:4;5733:2;5722:9;5718:18;5710:26;;5746:67;5810:1;5799:9;5795:17;5786:6;5746:67;:::i;:::-;5606:214;;;;:::o;5826:118::-;5913:24;5931:5;5913:24;:::i;:::-;5908:3;5901:37;5826:118;;:::o;5950:222::-;6043:4;6081:2;6070:9;6066:18;6058:26;;6094:71;6162:1;6151:9;6147:17;6138:6;6094:71;:::i;:::-;5950:222;;;;:::o;6178:116::-;6248:21;6263:5;6248:21;:::i;:::-;6241:5;6238:32;6228:60;;6284:1;6281;6274:12;6228:60;6178:116;:::o;6300:133::-;6343:5;6381:6;6368:20;6359:29;;6397:30;6421:5;6397:30;:::i;:::-;6300:133;;;;:::o;6439:323::-;6495:6;6544:2;6532:9;6523:7;6519:23;6515:32;6512:119;;;6550:79;;:::i;:::-;6512:119;6670:1;6695:50;6737:7;6728:6;6717:9;6713:22;6695:50;:::i;:::-;6685:60;;6641:114;6439:323;;;;:::o;6768:329::-;6827:6;6876:2;6864:9;6855:7;6851:23;6847:32;6844:119;;;6882:79;;:::i;:::-;6844:119;7002:1;7027:53;7072:7;7063:6;7052:9;7048:22;7027:53;:::i;:::-;7017:63;;6973:117;6768:329;;;;:::o;7103:::-;7162:6;7211:2;7199:9;7190:7;7186:23;7182:32;7179:119;;;7217:79;;:::i;:::-;7179:119;7337:1;7362:53;7407:7;7398:6;7387:9;7383:22;7362:53;:::i;:::-;7352:63;;7308:117;7103:329;;;;:::o;7438:474::-;7506:6;7514;7563:2;7551:9;7542:7;7538:23;7534:32;7531:119;;;7569:79;;:::i;:::-;7531:119;7689:1;7714:53;7759:7;7750:6;7739:9;7735:22;7714:53;:::i;:::-;7704:63;;7660:117;7816:2;7842:53;7887:7;7878:6;7867:9;7863:22;7842:53;:::i;:::-;7832:63;;7787:118;7438:474;;;;;:::o;7918:182::-;8058:34;8054:1;8046:6;8042:14;8035:58;7918:182;:::o;8106:366::-;8248:3;8269:67;8333:2;8328:3;8269:67;:::i;:::-;8262:74;;8345:93;8434:3;8345:93;:::i;:::-;8463:2;8458:3;8454:12;8447:19;;8106:366;;;:::o;8478:419::-;8644:4;8682:2;8671:9;8667:18;8659:26;;8731:9;8725:4;8721:20;8717:1;8706:9;8702:17;8695:47;8759:131;8885:4;8759:131;:::i;:::-;8751:139;;8478:419;;;:::o;8903:143::-;8960:5;8991:6;8985:13;8976:22;;9007:33;9034:5;9007:33;:::i;:::-;8903:143;;;;:::o;9052:351::-;9122:6;9171:2;9159:9;9150:7;9146:23;9142:32;9139:119;;;9177:79;;:::i;:::-;9139:119;9297:1;9322:64;9378:7;9369:6;9358:9;9354:22;9322:64;:::i;:::-;9312:74;;9268:128;9052:351;;;;:::o;9409:332::-;9530:4;9568:2;9557:9;9553:18;9545:26;;9581:71;9649:1;9638:9;9634:17;9625:6;9581:71;:::i;:::-;9662:72;9730:2;9719:9;9715:18;9706:6;9662:72;:::i;:::-;9409:332;;;;;:::o;9747:85::-;9792:7;9821:5;9810:16;;9747:85;;;:::o;9838:158::-;9896:9;9929:61;9947:42;9956:32;9982:5;9956:32;:::i;:::-;9947:42;:::i;:::-;9929:61;:::i;:::-;9916:74;;9838:158;;;:::o;10002:147::-;10097:45;10136:5;10097:45;:::i;:::-;10092:3;10085:58;10002:147;;:::o;10155:807::-;10404:4;10442:3;10431:9;10427:19;10419:27;;10456:71;10524:1;10513:9;10509:17;10500:6;10456:71;:::i;:::-;10537:72;10605:2;10594:9;10590:18;10581:6;10537:72;:::i;:::-;10619:80;10695:2;10684:9;10680:18;10671:6;10619:80;:::i;:::-;10709;10785:2;10774:9;10770:18;10761:6;10709:80;:::i;:::-;10799:73;10867:3;10856:9;10852:19;10843:6;10799:73;:::i;:::-;10882;10950:3;10939:9;10935:19;10926:6;10882:73;:::i;:::-;10155:807;;;;;;;;;:::o;10968:143::-;11025:5;11056:6;11050:13;11041:22;;11072:33;11099:5;11072:33;:::i;:::-;10968:143;;;;:::o;11117:663::-;11205:6;11213;11221;11270:2;11258:9;11249:7;11245:23;11241:32;11238:119;;;11276:79;;:::i;:::-;11238:119;11396:1;11421:64;11477:7;11468:6;11457:9;11453:22;11421:64;:::i;:::-;11411:74;;11367:128;11534:2;11560:64;11616:7;11607:6;11596:9;11592:22;11560:64;:::i;:::-;11550:74;;11505:129;11673:2;11699:64;11755:7;11746:6;11735:9;11731:22;11699:64;:::i;:::-;11689:74;;11644:129;11117:663;;;;;:::o;11786:180::-;11834:77;11831:1;11824:88;11931:4;11928:1;11921:15;11955:4;11952:1;11945:15;11972:191;12012:3;12031:20;12049:1;12031:20;:::i;:::-;12026:25;;12065:20;12083:1;12065:20;:::i;:::-;12060:25;;12108:1;12105;12101:9;12094:16;;12129:3;12126:1;12123:10;12120:36;;;12136:18;;:::i;:::-;12120:36;11972:191;;;;:::o;12169:225::-;12309:34;12305:1;12297:6;12293:14;12286:58;12378:8;12373:2;12365:6;12361:15;12354:33;12169:225;:::o;12400:366::-;12542:3;12563:67;12627:2;12622:3;12563:67;:::i;:::-;12556:74;;12639:93;12728:3;12639:93;:::i;:::-;12757:2;12752:3;12748:12;12741:19;;12400:366;;;:::o;12772:419::-;12938:4;12976:2;12965:9;12961:18;12953:26;;13025:9;13019:4;13015:20;13011:1;13000:9;12996:17;12989:47;13053:131;13179:4;13053:131;:::i;:::-;13045:139;;12772:419;;;:::o;13197:223::-;13337:34;13333:1;13325:6;13321:14;13314:58;13406:6;13401:2;13393:6;13389:15;13382:31;13197:223;:::o;13426:366::-;13568:3;13589:67;13653:2;13648:3;13589:67;:::i;:::-;13582:74;;13665:93;13754:3;13665:93;:::i;:::-;13783:2;13778:3;13774:12;13767:19;;13426:366;;;:::o;13798:419::-;13964:4;14002:2;13991:9;13987:18;13979:26;;14051:9;14045:4;14041:20;14037:1;14026:9;14022:17;14015:47;14079:131;14205:4;14079:131;:::i;:::-;14071:139;;13798:419;;;:::o;14223:221::-;14363:34;14359:1;14351:6;14347:14;14340:58;14432:4;14427:2;14419:6;14415:15;14408:29;14223:221;:::o;14450:366::-;14592:3;14613:67;14677:2;14672:3;14613:67;:::i;:::-;14606:74;;14689:93;14778:3;14689:93;:::i;:::-;14807:2;14802:3;14798:12;14791:19;;14450:366;;;:::o;14822:419::-;14988:4;15026:2;15015:9;15011:18;15003:26;;15075:9;15069:4;15065:20;15061:1;15050:9;15046:17;15039:47;15103:131;15229:4;15103:131;:::i;:::-;15095:139;;14822:419;;;:::o;15247:224::-;15387:34;15383:1;15375:6;15371:14;15364:58;15456:7;15451:2;15443:6;15439:15;15432:32;15247:224;:::o;15477:366::-;15619:3;15640:67;15704:2;15699:3;15640:67;:::i;:::-;15633:74;;15716:93;15805:3;15716:93;:::i;:::-;15834:2;15829:3;15825:12;15818:19;;15477:366;;;:::o;15849:419::-;16015:4;16053:2;16042:9;16038:18;16030:26;;16102:9;16096:4;16092:20;16088:1;16077:9;16073:17;16066:47;16130:131;16256:4;16130:131;:::i;:::-;16122:139;;15849:419;;;:::o;16274:222::-;16414:34;16410:1;16402:6;16398:14;16391:58;16483:5;16478:2;16470:6;16466:15;16459:30;16274:222;:::o;16502:366::-;16644:3;16665:67;16729:2;16724:3;16665:67;:::i;:::-;16658:74;;16741:93;16830:3;16741:93;:::i;:::-;16859:2;16854:3;16850:12;16843:19;;16502:366;;;:::o;16874:419::-;17040:4;17078:2;17067:9;17063:18;17055:26;;17127:9;17121:4;17117:20;17113:1;17102:9;17098:17;17091:47;17155:131;17281:4;17155:131;:::i;:::-;17147:139;;16874:419;;;:::o;17299:228::-;17439:34;17435:1;17427:6;17423:14;17416:58;17508:11;17503:2;17495:6;17491:15;17484:36;17299:228;:::o;17533:366::-;17675:3;17696:67;17760:2;17755:3;17696:67;:::i;:::-;17689:74;;17772:93;17861:3;17772:93;:::i;:::-;17890:2;17885:3;17881:12;17874:19;;17533:366;;;:::o;17905:419::-;18071:4;18109:2;18098:9;18094:18;18086:26;;18158:9;18152:4;18148:20;18144:1;18133:9;18129:17;18122:47;18186:131;18312:4;18186:131;:::i;:::-;18178:139;;17905:419;;;:::o;18330:178::-;18470:30;18466:1;18458:6;18454:14;18447:54;18330:178;:::o;18514:366::-;18656:3;18677:67;18741:2;18736:3;18677:67;:::i;:::-;18670:74;;18753:93;18842:3;18753:93;:::i;:::-;18871:2;18866:3;18862:12;18855:19;;18514:366;;;:::o;18886:419::-;19052:4;19090:2;19079:9;19075:18;19067:26;;19139:9;19133:4;19129:20;19125:1;19114:9;19110:17;19103:47;19167:131;19293:4;19167:131;:::i;:::-;19159:139;;18886:419;;;:::o;19311:222::-;19451:34;19447:1;19439:6;19435:14;19428:58;19520:5;19515:2;19507:6;19503:15;19496:30;19311:222;:::o;19539:366::-;19681:3;19702:67;19766:2;19761:3;19702:67;:::i;:::-;19695:74;;19778:93;19867:3;19778:93;:::i;:::-;19896:2;19891:3;19887:12;19880:19;;19539:366;;;:::o;19911:419::-;20077:4;20115:2;20104:9;20100:18;20092:26;;20164:9;20158:4;20154:20;20150:1;20139:9;20135:17;20128:47;20192:131;20318:4;20192:131;:::i;:::-;20184:139;;19911:419;;;:::o;20336:194::-;20376:4;20396:20;20414:1;20396:20;:::i;:::-;20391:25;;20430:20;20448:1;20430:20;:::i;:::-;20425:25;;20474:1;20471;20467:9;20459:17;;20498:1;20492:4;20489:11;20486:37;;;20503:18;;:::i;:::-;20486:37;20336:194;;;;:::o;20536:180::-;20584:77;20581:1;20574:88;20681:4;20678:1;20671:15;20705:4;20702:1;20695:15;20722:180;20770:77;20767:1;20760:88;20867:4;20864:1;20857:15;20891:4;20888:1;20881:15;20908:114;20975:6;21009:5;21003:12;20993:22;;20908:114;;;:::o;21028:184::-;21127:11;21161:6;21156:3;21149:19;21201:4;21196:3;21192:14;21177:29;;21028:184;;;;:::o;21218:132::-;21285:4;21308:3;21300:11;;21338:4;21333:3;21329:14;21321:22;;21218:132;;;:::o;21356:108::-;21433:24;21451:5;21433:24;:::i;:::-;21428:3;21421:37;21356:108;;:::o;21470:179::-;21539:10;21560:46;21602:3;21594:6;21560:46;:::i;:::-;21638:4;21633:3;21629:14;21615:28;;21470:179;;;;:::o;21655:113::-;21725:4;21757;21752:3;21748:14;21740:22;;21655:113;;;:::o;21804:732::-;21923:3;21952:54;22000:5;21952:54;:::i;:::-;22022:86;22101:6;22096:3;22022:86;:::i;:::-;22015:93;;22132:56;22182:5;22132:56;:::i;:::-;22211:7;22242:1;22227:284;22252:6;22249:1;22246:13;22227:284;;;22328:6;22322:13;22355:63;22414:3;22399:13;22355:63;:::i;:::-;22348:70;;22441:60;22494:6;22441:60;:::i;:::-;22431:70;;22287:224;22274:1;22271;22267:9;22262:14;;22227:284;;;22231:14;22527:3;22520:10;;21928:608;;;21804:732;;;;:::o;22542:831::-;22805:4;22843:3;22832:9;22828:19;22820:27;;22857:71;22925:1;22914:9;22910:17;22901:6;22857:71;:::i;:::-;22938:80;23014:2;23003:9;22999:18;22990:6;22938:80;:::i;:::-;23065:9;23059:4;23055:20;23050:2;23039:9;23035:18;23028:48;23093:108;23196:4;23187:6;23093:108;:::i;:::-;23085:116;;23211:72;23279:2;23268:9;23264:18;23255:6;23211:72;:::i;:::-;23293:73;23361:3;23350:9;23346:19;23337:6;23293:73;:::i;:::-;22542:831;;;;;;;;:::o;23379:180::-;23427:77;23424:1;23417:88;23524:4;23521:1;23514:15;23548:4;23545:1;23538:15;23565:185;23605:1;23622:20;23640:1;23622:20;:::i;:::-;23617:25;;23656:20;23674:1;23656:20;:::i;:::-;23651:25;;23695:1;23685:35;;23700:18;;:::i;:::-;23685:35;23742:1;23739;23735:9;23730:14;;23565:185;;;;:::o;23756:177::-;23896:29;23892:1;23884:6;23880:14;23873:53;23756:177;:::o;23939:366::-;24081:3;24102:67;24166:2;24161:3;24102:67;:::i;:::-;24095:74;;24178:93;24267:3;24178:93;:::i;:::-;24296:2;24291:3;24287:12;24280:19;;23939:366;;;:::o;24311:419::-;24477:4;24515:2;24504:9;24500:18;24492:26;;24564:9;24558:4;24554:20;24550:1;24539:9;24535:17;24528:47;24592:131;24718:4;24592:131;:::i;:::-;24584:139;;24311:419;;;:::o;24736:410::-;24776:7;24799:20;24817:1;24799:20;:::i;:::-;24794:25;;24833:20;24851:1;24833:20;:::i;:::-;24828:25;;24888:1;24885;24881:9;24910:30;24928:11;24910:30;:::i;:::-;24899:41;;25089:1;25080:7;25076:15;25073:1;25070:22;25050:1;25043:9;25023:83;25000:139;;25119:18;;:::i;:::-;25000:139;24784:362;24736:410;;;;:::o;25152:220::-;25292:34;25288:1;25280:6;25276:14;25269:58;25361:3;25356:2;25348:6;25344:15;25337:28;25152:220;:::o;25378:366::-;25520:3;25541:67;25605:2;25600:3;25541:67;:::i;:::-;25534:74;;25617:93;25706:3;25617:93;:::i;:::-;25735:2;25730:3;25726:12;25719:19;;25378:366;;;:::o;25750:419::-;25916:4;25954:2;25943:9;25939:18;25931:26;;26003:9;25997:4;25993:20;25989:1;25978:9;25974:17;25967:47;26031:131;26157:4;26031:131;:::i;:::-;26023:139;;25750:419;;;:::o
Swarm Source
ipfs://04dabdce2ef5ee21b7778e6d87310dc4006e5eb078481d738ff1fd7d1463474a
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.