Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 HUSKY
Holders
23
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 8 Decimals)
Balance
25,236,459.3229306 HUSKYValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
HUSKY
Compiler Version
v0.8.16+commit.07a7930e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-11-28 */ /* https://www.huskytoken.com/ 4/4 TAX */ // SPDX-License-Identifier: MIT pragma solidity 0.8.16; 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); } 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; } } 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); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract HUSKY is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _rOwned; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private bots; mapping (address => uint) private cooldown; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1000000000 * 10**8; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 public _feeAddr1; uint256 public _feeAddr2; uint256 public _initialTax; uint256 public _finalTax; uint256 public _reduceTaxTarget; uint256 public _reduceTaxCountdown; address payable public _feeAddrWallet; string private constant _name = "THE HUSKY TOKEN"; string private constant _symbol = "HUSKY"; uint8 private constant _decimals = 8; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; bool private cooldownEnabled = false; uint256 public _maxTxAmount = _tTotal.mul(20).div(1000); uint256 public _maxWalletSize = _tTotal.mul(20).div(1000); event MaxTxAmountUpdated(uint _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _feeAddrWallet = payable(_msgSender()); _rOwned[_msgSender()] = _rTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_feeAddrWallet] = true; _initialTax=4; _finalTax=4; _reduceTaxCountdown=30; _reduceTaxTarget = _reduceTaxCountdown.div(2); 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 setCooldownEnabled(bool onoff) external onlyOwner() { cooldownEnabled = onoff; } function tokenFromReflection(uint256 rAmount) private view returns(uint256) { require(rAmount <= _rTotal, "Amount must be less than total reflections"); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && to != owner()) { require(!bots[from] && !bots[to]); _feeAddr1 = 0; _feeAddr2 = (_reduceTaxCountdown==0)?_finalTax:_initialTax; if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) { // Cooldown require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); if(_reduceTaxCountdown>0){_reduceTaxCountdown--;} } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>0 && _reduceTaxCountdown<_reduceTaxTarget) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } }else{ _feeAddr1 = 0; _feeAddr2 = 0; } if (to == uniswapV2Pair){require(_reduceTaxCountdown>0);} _tokenTransfer(from,to,amount); } 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 removeLimits() external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize = _tTotal; } function sendETHToFee(uint256 amount) private { _feeAddrWallet.transfer(amount); } function addBots(address[] memory bots_) public onlyOwner { for (uint i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function delBots(address[] memory notbot) public onlyOwner { for (uint i = 0; i < notbot.length; i++) { bots[notbot[i]] = false; } } function openTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); swapEnabled = true; cooldownEnabled = true; tradingOpen = true; IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); } function _tokenTransfer(address sender, address recipient, uint256 amount) private { _transferStandard(sender, recipient, amount); } function _transferStandard(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function manualswap() external { require(_msgSender() == _feeAddrWallet); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _feeAddrWallet); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2); 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 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) { uint256 tFee = tAmount.mul(taxFee).div(100); uint256 tTeam = tAmount.mul(TeamFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns(uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns(uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } }
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":"_feeAddr1","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_feeAddr2","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_feeAddrWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_finalTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_initialTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_reduceTaxCountdown","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_reduceTaxTarget","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","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":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405267016345785d8a00006000196200001c919062000604565b6000196200002b91906200066b565b6008556000601260156101000a81548160ff0219169083151502179055506000601260166101000a81548160ff0219169083151502179055506000601260176101000a81548160ff021916908315150217905550620000bd6103e8620000a9601467016345785d8a00006200045d60201b6200141f1790919060201c565b620004e060201b620014991790919060201c565b601355620000fe6103e8620000ea601467016345785d8a00006200045d60201b6200141f1790919060201c565b620004e060201b620014991790919060201c565b6014553480156200010e57600080fd5b506000620001216200053260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001cf6200053260201b60201c565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060085460026000620002266200053260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600560006200027a6200053a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506004600c819055506004600d81905550601e600f81905550620003d26002600f54620004e060201b620014991790919060201c565b600e81905550620003e86200053260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a00006040516200044f9190620006b7565b60405180910390a3620008c3565b6000808303620004715760009050620004da565b60008284620004819190620006d4565b905082848262000492919062000735565b14620004d5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004cc90620007f4565b60405180910390fd5b809150505b92915050565b60006200052a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200056360201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008083118290620005ad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005a491906200089f565b60405180910390fd5b5060008385620005be919062000735565b9050809150509392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200061182620005cb565b91506200061e83620005cb565b925082620006315762000630620005d5565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200067882620005cb565b91506200068583620005cb565b9250828203905081811115620006a0576200069f6200063c565b5b92915050565b620006b181620005cb565b82525050565b6000602082019050620006ce6000830184620006a6565b92915050565b6000620006e182620005cb565b9150620006ee83620005cb565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200072a57620007296200063c565b5b828202905092915050565b60006200074282620005cb565b91506200074f83620005cb565b925082620007625762000761620005d5565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000620007dc6021836200076d565b9150620007e9826200077e565b604082019050919050565b600060208201905081810360008301526200080f81620007cd565b9050919050565b600081519050919050565b60005b838110156200084157808201518184015260208101905062000824565b60008484015250505050565b6000601f19601f8301169050919050565b60006200086b8262000816565b6200087781856200076d565b93506200088981856020860162000821565b62000894816200084d565b840191505092915050565b60006020820190508181036000830152620008bb81846200085e565b905092915050565b6136ab80620008d36000396000f3fe6080604052600436106101a05760003560e01c8063751039fc116100ec578063a9059cbb1161008a578063c3c8cd8011610064578063c3c8cd8014610591578063c9567bf9146105a8578063d34628cc146105bf578063dd62ed3e146105e8576101a7565b8063a9059cbb146104fe578063b7987f811461053b578063c274ebee14610566576101a7565b80638f9a55c0116100c65780638f9a55c01461045257806394dbb8321461047d57806395d89b41146104a8578063a4199e1d146104d3576101a7565b8063751039fc146103e55780637d1db4a5146103fc5780638da5cb5b14610427576101a7565b8063313ce567116101595780635932ead1116101335780635932ead1146103515780636fc3eaec1461037a57806370a0823114610391578063715018a6146103ce576101a7565b8063313ce567146102d257806331c2d847146102fd57806341e978fa14610326576101a7565b806306fdde03146101ac578063095ea7b3146101d757806314cab4fb1461021457806318160ddd1461023f57806323b872dd1461026a5780632ff151f7146102a7576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610625565b6040516101ce9190612695565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f9919061275f565b610662565b60405161020b91906127ba565b60405180910390f35b34801561022057600080fd5b50610229610680565b60405161023691906127e4565b60405180910390f35b34801561024b57600080fd5b50610254610686565b60405161026191906127e4565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c91906127ff565b610696565b60405161029e91906127ba565b60405180910390f35b3480156102b357600080fd5b506102bc61076f565b6040516102c991906127e4565b60405180910390f35b3480156102de57600080fd5b506102e7610775565b6040516102f4919061286e565b60405180910390f35b34801561030957600080fd5b50610324600480360381019061031f91906129d1565b61077e565b005b34801561033257600080fd5b5061033b6108a8565b6040516103489190612a3b565b60405180910390f35b34801561035d57600080fd5b5061037860048036038101906103739190612a82565b6108ce565b005b34801561038657600080fd5b5061038f610980565b005b34801561039d57600080fd5b506103b860048036038101906103b39190612aaf565b6109f2565b6040516103c591906127e4565b60405180910390f35b3480156103da57600080fd5b506103e3610a43565b005b3480156103f157600080fd5b506103fa610b96565b005b34801561040857600080fd5b50610411610c4b565b60405161041e91906127e4565b60405180910390f35b34801561043357600080fd5b5061043c610c51565b6040516104499190612aeb565b60405180910390f35b34801561045e57600080fd5b50610467610c7a565b60405161047491906127e4565b60405180910390f35b34801561048957600080fd5b50610492610c80565b60405161049f91906127e4565b60405180910390f35b3480156104b457600080fd5b506104bd610c86565b6040516104ca9190612695565b60405180910390f35b3480156104df57600080fd5b506104e8610cc3565b6040516104f591906127e4565b60405180910390f35b34801561050a57600080fd5b506105256004803603810190610520919061275f565b610cc9565b60405161053291906127ba565b60405180910390f35b34801561054757600080fd5b50610550610ce7565b60405161055d91906127e4565b60405180910390f35b34801561057257600080fd5b5061057b610ced565b60405161058891906127e4565b60405180910390f35b34801561059d57600080fd5b506105a6610cf3565b005b3480156105b457600080fd5b506105bd610d6d565b005b3480156105cb57600080fd5b506105e660048036038101906105e191906129d1565b61126e565b005b3480156105f457600080fd5b5061060f600480360381019061060a9190612b06565b611398565b60405161061c91906127e4565b60405180910390f35b60606040518060400160405280600f81526020017f544845204855534b5920544f4b454e0000000000000000000000000000000000815250905090565b600061067661066f6114e3565b84846114eb565b6001905092915050565b600c5481565b600067016345785d8a0000905090565b60006106a38484846116b4565b610764846106af6114e3565b61075f8560405180606001604052806028815260200161364e60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107156114e3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c609092919063ffffffff16565b6114eb565b600190509392505050565b600e5481565b60006008905090565b6107866114e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610813576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080a90612b92565b60405180910390fd5b60005b81518110156108a45760006006600084848151811061083857610837612bb2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061089c90612c10565b915050610816565b5050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108d66114e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610963576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095a90612b92565b60405180910390fd5b80601260176101000a81548160ff02191690831515021790555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109c16114e3565b73ffffffffffffffffffffffffffffffffffffffff16146109e157600080fd5b60004790506109ef81611cc4565b50565b6000610a3c600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d30565b9050919050565b610a4b6114e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acf90612b92565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b9e6114e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2290612b92565b60405180910390fd5b67016345785d8a000060138190555067016345785d8a0000601481905550565b60135481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60145481565b600d5481565b60606040518060400160405280600581526020017f4855534b59000000000000000000000000000000000000000000000000000000815250905090565b600a5481565b6000610cdd610cd66114e3565b84846116b4565b6001905092915050565b600f5481565b600b5481565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d346114e3565b73ffffffffffffffffffffffffffffffffffffffff1614610d5457600080fd5b6000610d5f306109f2565b9050610d6a81611d9e565b50565b610d756114e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df990612b92565b60405180910390fd5b601260149054906101000a900460ff1615610e52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4990612ca4565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ee130601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1667016345785d8a00006114eb565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f509190612cd9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fb7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fdb9190612cd9565b6040518363ffffffff1660e01b8152600401610ff8929190612d06565b6020604051808303816000875af1158015611017573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103b9190612cd9565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306110c4306109f2565b6000806110cf610c51565b426040518863ffffffff1660e01b81526004016110f196959493929190612d74565b60606040518083038185885af115801561110f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111349190612dea565b5050506001601260166101000a81548160ff0219169083151502179055506001601260176101000a81548160ff0219169083151502179055506001601260146101000a81548160ff021916908315150217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611227929190612e3d565b6020604051808303816000875af1158015611246573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126a9190612e7b565b5050565b6112766114e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611303576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fa90612b92565b60405180910390fd5b60005b81518110156113945760016006600084848151811061132857611327612bb2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061138c90612c10565b915050611306565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008083036114315760009050611493565b6000828461143f9190612ea8565b905082848261144e9190612f31565b1461148e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148590612fd4565b60405180910390fd5b809150505b92915050565b60006114db83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612017565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361155a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155190613066565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c0906130f8565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116a791906127e4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171a9061318a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611792576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117899061321c565b60405180910390fd5b600081116117d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cc906132ae565b60405180910390fd5b6117dd610c51565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561184b575061181b610c51565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611bda57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118f45750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6118fd57600080fd5b6000600a819055506000600f541461191757600c5461191b565b600d545b600b81905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119cc5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611a225750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a3a5750601260179054906101000a900460ff165b15611b0157601354811115611a84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7b9061331a565b60405180910390fd5b60145481611a91846109f2565b611a9b919061333a565b1115611adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad3906133ba565b60405180910390fd5b6000600f541115611b0057600f6000815480929190611afa906133da565b91905055505b5b6000611b0c306109f2565b9050601260159054906101000a900460ff16158015611b795750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611b915750601260169054906101000a900460ff165b8015611b9d5750600081115b8015611bac5750600e54600f54105b15611bd457611bba81611d9e565b60004790506000811115611bd257611bd147611cc4565b5b505b50611beb565b6000600a819055506000600b819055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c50576000600f5411611c4f57600080fd5b5b611c5b83838361207a565b505050565b6000838311158290611ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9f9190612695565b60405180910390fd5b5060008385611cb79190613403565b9050809150509392505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d2c573d6000803e3d6000fd5b5050565b6000600854821115611d77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6e906134a9565b60405180910390fd5b6000611d8161208a565b9050611d96818461149990919063ffffffff16565b915050919050565b6001601260156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611dd657611dd561288e565b5b604051908082528060200260200182016040528015611e045781602001602082028036833780820191505090505b5090503081600081518110611e1c57611e1b612bb2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ec3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ee79190612cd9565b81600181518110611efb57611efa612bb2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f6230601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114eb565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611fc6959493929190613587565b600060405180830381600087803b158015611fe057600080fd5b505af1158015611ff4573d6000803e3d6000fd5b50505050506000601260156101000a81548160ff02191690831515021790555050565b6000808311829061205e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120559190612695565b60405180910390fd5b506000838561206d9190612f31565b9050809150509392505050565b6120858383836120b5565b505050565b6000806000612097612280565b915091506120ae818361149990919063ffffffff16565b9250505090565b6000806000806000806120c7876122df565b95509550955095509550955061212586600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461234790919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121ba85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461239190919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612206816123ef565b61221084836124ac565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161226d91906127e4565b60405180910390a3505050505050505050565b60008060006008549050600067016345785d8a000090506122b467016345785d8a000060085461149990919063ffffffff16565b8210156122d25760085467016345785d8a00009350935050506122db565b81819350935050505b9091565b60008060008060008060008060006122fc8a600a54600b546124e6565b925092509250600061230c61208a565b9050600080600061231f8e87878761257c565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061238983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c60565b905092915050565b60008082846123a0919061333a565b9050838110156123e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123dc9061362d565b60405180910390fd5b8091505092915050565b60006123f961208a565b90506000612410828461141f90919063ffffffff16565b905061246481600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461239190919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6124c18260085461234790919063ffffffff16565b6008819055506124dc8160095461239190919063ffffffff16565b6009819055505050565b6000806000806125126064612504888a61141f90919063ffffffff16565b61149990919063ffffffff16565b9050600061253c606461252e888b61141f90919063ffffffff16565b61149990919063ffffffff16565b9050600061256582612557858c61234790919063ffffffff16565b61234790919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612595858961141f90919063ffffffff16565b905060006125ac868961141f90919063ffffffff16565b905060006125c3878961141f90919063ffffffff16565b905060006125ec826125de858761234790919063ffffffff16565b61234790919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561263f578082015181840152602081019050612624565b60008484015250505050565b6000601f19601f8301169050919050565b600061266782612605565b6126718185612610565b9350612681818560208601612621565b61268a8161264b565b840191505092915050565b600060208201905081810360008301526126af818461265c565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126f6826126cb565b9050919050565b612706816126eb565b811461271157600080fd5b50565b600081359050612723816126fd565b92915050565b6000819050919050565b61273c81612729565b811461274757600080fd5b50565b60008135905061275981612733565b92915050565b60008060408385031215612776576127756126c1565b5b600061278485828601612714565b92505060206127958582860161274a565b9150509250929050565b60008115159050919050565b6127b48161279f565b82525050565b60006020820190506127cf60008301846127ab565b92915050565b6127de81612729565b82525050565b60006020820190506127f960008301846127d5565b92915050565b600080600060608486031215612818576128176126c1565b5b600061282686828701612714565b935050602061283786828701612714565b92505060406128488682870161274a565b9150509250925092565b600060ff82169050919050565b61286881612852565b82525050565b6000602082019050612883600083018461285f565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6128c68261264b565b810181811067ffffffffffffffff821117156128e5576128e461288e565b5b80604052505050565b60006128f86126b7565b905061290482826128bd565b919050565b600067ffffffffffffffff8211156129245761292361288e565b5b602082029050602081019050919050565b600080fd5b600061294d61294884612909565b6128ee565b905080838252602082019050602084028301858111156129705761296f612935565b5b835b8181101561299957806129858882612714565b845260208401935050602081019050612972565b5050509392505050565b600082601f8301126129b8576129b7612889565b5b81356129c884826020860161293a565b91505092915050565b6000602082840312156129e7576129e66126c1565b5b600082013567ffffffffffffffff811115612a0557612a046126c6565b5b612a11848285016129a3565b91505092915050565b6000612a25826126cb565b9050919050565b612a3581612a1a565b82525050565b6000602082019050612a506000830184612a2c565b92915050565b612a5f8161279f565b8114612a6a57600080fd5b50565b600081359050612a7c81612a56565b92915050565b600060208284031215612a9857612a976126c1565b5b6000612aa684828501612a6d565b91505092915050565b600060208284031215612ac557612ac46126c1565b5b6000612ad384828501612714565b91505092915050565b612ae5816126eb565b82525050565b6000602082019050612b006000830184612adc565b92915050565b60008060408385031215612b1d57612b1c6126c1565b5b6000612b2b85828601612714565b9250506020612b3c85828601612714565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b7c602083612610565b9150612b8782612b46565b602082019050919050565b60006020820190508181036000830152612bab81612b6f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612c1b82612729565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c4d57612c4c612be1565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612c8e601783612610565b9150612c9982612c58565b602082019050919050565b60006020820190508181036000830152612cbd81612c81565b9050919050565b600081519050612cd3816126fd565b92915050565b600060208284031215612cef57612cee6126c1565b5b6000612cfd84828501612cc4565b91505092915050565b6000604082019050612d1b6000830185612adc565b612d286020830184612adc565b9392505050565b6000819050919050565b6000819050919050565b6000612d5e612d59612d5484612d2f565b612d39565b612729565b9050919050565b612d6e81612d43565b82525050565b600060c082019050612d896000830189612adc565b612d9660208301886127d5565b612da36040830187612d65565b612db06060830186612d65565b612dbd6080830185612adc565b612dca60a08301846127d5565b979650505050505050565b600081519050612de481612733565b92915050565b600080600060608486031215612e0357612e026126c1565b5b6000612e1186828701612dd5565b9350506020612e2286828701612dd5565b9250506040612e3386828701612dd5565b9150509250925092565b6000604082019050612e526000830185612adc565b612e5f60208301846127d5565b9392505050565b600081519050612e7581612a56565b92915050565b600060208284031215612e9157612e906126c1565b5b6000612e9f84828501612e66565b91505092915050565b6000612eb382612729565b9150612ebe83612729565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612ef757612ef6612be1565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612f3c82612729565b9150612f4783612729565b925082612f5757612f56612f02565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612fbe602183612610565b9150612fc982612f62565b604082019050919050565b60006020820190508181036000830152612fed81612fb1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613050602483612610565b915061305b82612ff4565b604082019050919050565b6000602082019050818103600083015261307f81613043565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006130e2602283612610565b91506130ed82613086565b604082019050919050565b60006020820190508181036000830152613111816130d5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613174602583612610565b915061317f82613118565b604082019050919050565b600060208201905081810360008301526131a381613167565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613206602383612610565b9150613211826131aa565b604082019050919050565b60006020820190508181036000830152613235816131f9565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613298602983612610565b91506132a38261323c565b604082019050919050565b600060208201905081810360008301526132c78161328b565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000613304601983612610565b915061330f826132ce565b602082019050919050565b60006020820190508181036000830152613333816132f7565b9050919050565b600061334582612729565b915061335083612729565b925082820190508082111561336857613367612be1565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006133a4601a83612610565b91506133af8261336e565b602082019050919050565b600060208201905081810360008301526133d381613397565b9050919050565b60006133e582612729565b9150600082036133f8576133f7612be1565b5b600182039050919050565b600061340e82612729565b915061341983612729565b925082820390508181111561343157613430612be1565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613493602a83612610565b915061349e82613437565b604082019050919050565b600060208201905081810360008301526134c281613486565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6134fe816126eb565b82525050565b600061351083836134f5565b60208301905092915050565b6000602082019050919050565b6000613534826134c9565b61353e81856134d4565b9350613549836134e5565b8060005b8381101561357a5781516135618882613504565b975061356c8361351c565b92505060018101905061354d565b5085935050505092915050565b600060a08201905061359c60008301886127d5565b6135a96020830187612d65565b81810360408301526135bb8186613529565b90506135ca6060830185612adc565b6135d760808301846127d5565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613617601b83612610565b9150613622826135e1565b602082019050919050565b600060208201905081810360008301526136468161360a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201e0003280c3a178fd138da594f9d03acf048b6c15a3840777b145c65ff70ba2764736f6c63430008100033
Deployed Bytecode
0x6080604052600436106101a05760003560e01c8063751039fc116100ec578063a9059cbb1161008a578063c3c8cd8011610064578063c3c8cd8014610591578063c9567bf9146105a8578063d34628cc146105bf578063dd62ed3e146105e8576101a7565b8063a9059cbb146104fe578063b7987f811461053b578063c274ebee14610566576101a7565b80638f9a55c0116100c65780638f9a55c01461045257806394dbb8321461047d57806395d89b41146104a8578063a4199e1d146104d3576101a7565b8063751039fc146103e55780637d1db4a5146103fc5780638da5cb5b14610427576101a7565b8063313ce567116101595780635932ead1116101335780635932ead1146103515780636fc3eaec1461037a57806370a0823114610391578063715018a6146103ce576101a7565b8063313ce567146102d257806331c2d847146102fd57806341e978fa14610326576101a7565b806306fdde03146101ac578063095ea7b3146101d757806314cab4fb1461021457806318160ddd1461023f57806323b872dd1461026a5780632ff151f7146102a7576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610625565b6040516101ce9190612695565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f9919061275f565b610662565b60405161020b91906127ba565b60405180910390f35b34801561022057600080fd5b50610229610680565b60405161023691906127e4565b60405180910390f35b34801561024b57600080fd5b50610254610686565b60405161026191906127e4565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c91906127ff565b610696565b60405161029e91906127ba565b60405180910390f35b3480156102b357600080fd5b506102bc61076f565b6040516102c991906127e4565b60405180910390f35b3480156102de57600080fd5b506102e7610775565b6040516102f4919061286e565b60405180910390f35b34801561030957600080fd5b50610324600480360381019061031f91906129d1565b61077e565b005b34801561033257600080fd5b5061033b6108a8565b6040516103489190612a3b565b60405180910390f35b34801561035d57600080fd5b5061037860048036038101906103739190612a82565b6108ce565b005b34801561038657600080fd5b5061038f610980565b005b34801561039d57600080fd5b506103b860048036038101906103b39190612aaf565b6109f2565b6040516103c591906127e4565b60405180910390f35b3480156103da57600080fd5b506103e3610a43565b005b3480156103f157600080fd5b506103fa610b96565b005b34801561040857600080fd5b50610411610c4b565b60405161041e91906127e4565b60405180910390f35b34801561043357600080fd5b5061043c610c51565b6040516104499190612aeb565b60405180910390f35b34801561045e57600080fd5b50610467610c7a565b60405161047491906127e4565b60405180910390f35b34801561048957600080fd5b50610492610c80565b60405161049f91906127e4565b60405180910390f35b3480156104b457600080fd5b506104bd610c86565b6040516104ca9190612695565b60405180910390f35b3480156104df57600080fd5b506104e8610cc3565b6040516104f591906127e4565b60405180910390f35b34801561050a57600080fd5b506105256004803603810190610520919061275f565b610cc9565b60405161053291906127ba565b60405180910390f35b34801561054757600080fd5b50610550610ce7565b60405161055d91906127e4565b60405180910390f35b34801561057257600080fd5b5061057b610ced565b60405161058891906127e4565b60405180910390f35b34801561059d57600080fd5b506105a6610cf3565b005b3480156105b457600080fd5b506105bd610d6d565b005b3480156105cb57600080fd5b506105e660048036038101906105e191906129d1565b61126e565b005b3480156105f457600080fd5b5061060f600480360381019061060a9190612b06565b611398565b60405161061c91906127e4565b60405180910390f35b60606040518060400160405280600f81526020017f544845204855534b5920544f4b454e0000000000000000000000000000000000815250905090565b600061067661066f6114e3565b84846114eb565b6001905092915050565b600c5481565b600067016345785d8a0000905090565b60006106a38484846116b4565b610764846106af6114e3565b61075f8560405180606001604052806028815260200161364e60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107156114e3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c609092919063ffffffff16565b6114eb565b600190509392505050565b600e5481565b60006008905090565b6107866114e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610813576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080a90612b92565b60405180910390fd5b60005b81518110156108a45760006006600084848151811061083857610837612bb2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061089c90612c10565b915050610816565b5050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108d66114e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610963576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095a90612b92565b60405180910390fd5b80601260176101000a81548160ff02191690831515021790555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109c16114e3565b73ffffffffffffffffffffffffffffffffffffffff16146109e157600080fd5b60004790506109ef81611cc4565b50565b6000610a3c600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d30565b9050919050565b610a4b6114e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acf90612b92565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b9e6114e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2290612b92565b60405180910390fd5b67016345785d8a000060138190555067016345785d8a0000601481905550565b60135481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60145481565b600d5481565b60606040518060400160405280600581526020017f4855534b59000000000000000000000000000000000000000000000000000000815250905090565b600a5481565b6000610cdd610cd66114e3565b84846116b4565b6001905092915050565b600f5481565b600b5481565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d346114e3565b73ffffffffffffffffffffffffffffffffffffffff1614610d5457600080fd5b6000610d5f306109f2565b9050610d6a81611d9e565b50565b610d756114e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df990612b92565b60405180910390fd5b601260149054906101000a900460ff1615610e52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4990612ca4565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ee130601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1667016345785d8a00006114eb565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f509190612cd9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fb7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fdb9190612cd9565b6040518363ffffffff1660e01b8152600401610ff8929190612d06565b6020604051808303816000875af1158015611017573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103b9190612cd9565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306110c4306109f2565b6000806110cf610c51565b426040518863ffffffff1660e01b81526004016110f196959493929190612d74565b60606040518083038185885af115801561110f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111349190612dea565b5050506001601260166101000a81548160ff0219169083151502179055506001601260176101000a81548160ff0219169083151502179055506001601260146101000a81548160ff021916908315150217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611227929190612e3d565b6020604051808303816000875af1158015611246573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126a9190612e7b565b5050565b6112766114e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611303576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fa90612b92565b60405180910390fd5b60005b81518110156113945760016006600084848151811061132857611327612bb2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061138c90612c10565b915050611306565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008083036114315760009050611493565b6000828461143f9190612ea8565b905082848261144e9190612f31565b1461148e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148590612fd4565b60405180910390fd5b809150505b92915050565b60006114db83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612017565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361155a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155190613066565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c0906130f8565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116a791906127e4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171a9061318a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611792576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117899061321c565b60405180910390fd5b600081116117d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cc906132ae565b60405180910390fd5b6117dd610c51565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561184b575061181b610c51565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611bda57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118f45750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6118fd57600080fd5b6000600a819055506000600f541461191757600c5461191b565b600d545b600b81905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119cc5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611a225750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a3a5750601260179054906101000a900460ff165b15611b0157601354811115611a84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7b9061331a565b60405180910390fd5b60145481611a91846109f2565b611a9b919061333a565b1115611adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad3906133ba565b60405180910390fd5b6000600f541115611b0057600f6000815480929190611afa906133da565b91905055505b5b6000611b0c306109f2565b9050601260159054906101000a900460ff16158015611b795750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611b915750601260169054906101000a900460ff165b8015611b9d5750600081115b8015611bac5750600e54600f54105b15611bd457611bba81611d9e565b60004790506000811115611bd257611bd147611cc4565b5b505b50611beb565b6000600a819055506000600b819055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c50576000600f5411611c4f57600080fd5b5b611c5b83838361207a565b505050565b6000838311158290611ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9f9190612695565b60405180910390fd5b5060008385611cb79190613403565b9050809150509392505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d2c573d6000803e3d6000fd5b5050565b6000600854821115611d77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6e906134a9565b60405180910390fd5b6000611d8161208a565b9050611d96818461149990919063ffffffff16565b915050919050565b6001601260156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611dd657611dd561288e565b5b604051908082528060200260200182016040528015611e045781602001602082028036833780820191505090505b5090503081600081518110611e1c57611e1b612bb2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ec3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ee79190612cd9565b81600181518110611efb57611efa612bb2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f6230601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114eb565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611fc6959493929190613587565b600060405180830381600087803b158015611fe057600080fd5b505af1158015611ff4573d6000803e3d6000fd5b50505050506000601260156101000a81548160ff02191690831515021790555050565b6000808311829061205e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120559190612695565b60405180910390fd5b506000838561206d9190612f31565b9050809150509392505050565b6120858383836120b5565b505050565b6000806000612097612280565b915091506120ae818361149990919063ffffffff16565b9250505090565b6000806000806000806120c7876122df565b95509550955095509550955061212586600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461234790919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121ba85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461239190919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612206816123ef565b61221084836124ac565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161226d91906127e4565b60405180910390a3505050505050505050565b60008060006008549050600067016345785d8a000090506122b467016345785d8a000060085461149990919063ffffffff16565b8210156122d25760085467016345785d8a00009350935050506122db565b81819350935050505b9091565b60008060008060008060008060006122fc8a600a54600b546124e6565b925092509250600061230c61208a565b9050600080600061231f8e87878761257c565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061238983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c60565b905092915050565b60008082846123a0919061333a565b9050838110156123e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123dc9061362d565b60405180910390fd5b8091505092915050565b60006123f961208a565b90506000612410828461141f90919063ffffffff16565b905061246481600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461239190919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6124c18260085461234790919063ffffffff16565b6008819055506124dc8160095461239190919063ffffffff16565b6009819055505050565b6000806000806125126064612504888a61141f90919063ffffffff16565b61149990919063ffffffff16565b9050600061253c606461252e888b61141f90919063ffffffff16565b61149990919063ffffffff16565b9050600061256582612557858c61234790919063ffffffff16565b61234790919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612595858961141f90919063ffffffff16565b905060006125ac868961141f90919063ffffffff16565b905060006125c3878961141f90919063ffffffff16565b905060006125ec826125de858761234790919063ffffffff16565b61234790919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561263f578082015181840152602081019050612624565b60008484015250505050565b6000601f19601f8301169050919050565b600061266782612605565b6126718185612610565b9350612681818560208601612621565b61268a8161264b565b840191505092915050565b600060208201905081810360008301526126af818461265c565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126f6826126cb565b9050919050565b612706816126eb565b811461271157600080fd5b50565b600081359050612723816126fd565b92915050565b6000819050919050565b61273c81612729565b811461274757600080fd5b50565b60008135905061275981612733565b92915050565b60008060408385031215612776576127756126c1565b5b600061278485828601612714565b92505060206127958582860161274a565b9150509250929050565b60008115159050919050565b6127b48161279f565b82525050565b60006020820190506127cf60008301846127ab565b92915050565b6127de81612729565b82525050565b60006020820190506127f960008301846127d5565b92915050565b600080600060608486031215612818576128176126c1565b5b600061282686828701612714565b935050602061283786828701612714565b92505060406128488682870161274a565b9150509250925092565b600060ff82169050919050565b61286881612852565b82525050565b6000602082019050612883600083018461285f565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6128c68261264b565b810181811067ffffffffffffffff821117156128e5576128e461288e565b5b80604052505050565b60006128f86126b7565b905061290482826128bd565b919050565b600067ffffffffffffffff8211156129245761292361288e565b5b602082029050602081019050919050565b600080fd5b600061294d61294884612909565b6128ee565b905080838252602082019050602084028301858111156129705761296f612935565b5b835b8181101561299957806129858882612714565b845260208401935050602081019050612972565b5050509392505050565b600082601f8301126129b8576129b7612889565b5b81356129c884826020860161293a565b91505092915050565b6000602082840312156129e7576129e66126c1565b5b600082013567ffffffffffffffff811115612a0557612a046126c6565b5b612a11848285016129a3565b91505092915050565b6000612a25826126cb565b9050919050565b612a3581612a1a565b82525050565b6000602082019050612a506000830184612a2c565b92915050565b612a5f8161279f565b8114612a6a57600080fd5b50565b600081359050612a7c81612a56565b92915050565b600060208284031215612a9857612a976126c1565b5b6000612aa684828501612a6d565b91505092915050565b600060208284031215612ac557612ac46126c1565b5b6000612ad384828501612714565b91505092915050565b612ae5816126eb565b82525050565b6000602082019050612b006000830184612adc565b92915050565b60008060408385031215612b1d57612b1c6126c1565b5b6000612b2b85828601612714565b9250506020612b3c85828601612714565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b7c602083612610565b9150612b8782612b46565b602082019050919050565b60006020820190508181036000830152612bab81612b6f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612c1b82612729565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c4d57612c4c612be1565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612c8e601783612610565b9150612c9982612c58565b602082019050919050565b60006020820190508181036000830152612cbd81612c81565b9050919050565b600081519050612cd3816126fd565b92915050565b600060208284031215612cef57612cee6126c1565b5b6000612cfd84828501612cc4565b91505092915050565b6000604082019050612d1b6000830185612adc565b612d286020830184612adc565b9392505050565b6000819050919050565b6000819050919050565b6000612d5e612d59612d5484612d2f565b612d39565b612729565b9050919050565b612d6e81612d43565b82525050565b600060c082019050612d896000830189612adc565b612d9660208301886127d5565b612da36040830187612d65565b612db06060830186612d65565b612dbd6080830185612adc565b612dca60a08301846127d5565b979650505050505050565b600081519050612de481612733565b92915050565b600080600060608486031215612e0357612e026126c1565b5b6000612e1186828701612dd5565b9350506020612e2286828701612dd5565b9250506040612e3386828701612dd5565b9150509250925092565b6000604082019050612e526000830185612adc565b612e5f60208301846127d5565b9392505050565b600081519050612e7581612a56565b92915050565b600060208284031215612e9157612e906126c1565b5b6000612e9f84828501612e66565b91505092915050565b6000612eb382612729565b9150612ebe83612729565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612ef757612ef6612be1565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612f3c82612729565b9150612f4783612729565b925082612f5757612f56612f02565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612fbe602183612610565b9150612fc982612f62565b604082019050919050565b60006020820190508181036000830152612fed81612fb1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613050602483612610565b915061305b82612ff4565b604082019050919050565b6000602082019050818103600083015261307f81613043565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006130e2602283612610565b91506130ed82613086565b604082019050919050565b60006020820190508181036000830152613111816130d5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613174602583612610565b915061317f82613118565b604082019050919050565b600060208201905081810360008301526131a381613167565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613206602383612610565b9150613211826131aa565b604082019050919050565b60006020820190508181036000830152613235816131f9565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613298602983612610565b91506132a38261323c565b604082019050919050565b600060208201905081810360008301526132c78161328b565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000613304601983612610565b915061330f826132ce565b602082019050919050565b60006020820190508181036000830152613333816132f7565b9050919050565b600061334582612729565b915061335083612729565b925082820190508082111561336857613367612be1565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006133a4601a83612610565b91506133af8261336e565b602082019050919050565b600060208201905081810360008301526133d381613397565b9050919050565b60006133e582612729565b9150600082036133f8576133f7612be1565b5b600182039050919050565b600061340e82612729565b915061341983612729565b925082820390508181111561343157613430612be1565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613493602a83612610565b915061349e82613437565b604082019050919050565b600060208201905081810360008301526134c281613486565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6134fe816126eb565b82525050565b600061351083836134f5565b60208301905092915050565b6000602082019050919050565b6000613534826134c9565b61353e81856134d4565b9350613549836134e5565b8060005b8381101561357a5781516135618882613504565b975061356c8361351c565b92505060018101905061354d565b5085935050505092915050565b600060a08201905061359c60008301886127d5565b6135a96020830187612d65565b81810360408301526135bb8186613529565b90506135ca6060830185612adc565b6135d760808301846127d5565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613617601b83612610565b9150613622826135e1565b602082019050919050565b600060208201905081810360008301526136468161360a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201e0003280c3a178fd138da594f9d03acf048b6c15a3840777b145c65ff70ba2764736f6c63430008100033
Deployed Bytecode Sourcemap
3566:10627:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5552:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6404:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4243:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5829:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6573:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4307:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5738:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10092:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4386:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6894:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12308:193;;;;;;;;;;;;;:::i;:::-;;5932:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2647:148;;;;;;;;;;;;;:::i;:::-;;9690:118;;;;;;;;;;;;;:::i;:::-;;4813:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2433:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4876:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4276:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5643:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4181:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6078:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4345:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4212:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12106:194;;;;;;;;;;;;;:::i;:::-;;10264:773;;;;;;;;;;;;;:::i;:::-;;9920:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6253:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5552:83;5589:13;5622:5;;;;;;;;;;;;;;;;;5615:12;;5552:83;:::o;6404:161::-;6479:4;6496:39;6505:12;:10;:12::i;:::-;6519:7;6528:6;6496:8;:39::i;:::-;6553:4;6546:11;;6404:161;;;;:::o;4243:26::-;;;;:::o;5829:95::-;5882:7;4065:18;5902:14;;5829:95;:::o;6573:313::-;6671:4;6688:36;6698:6;6706:9;6717:6;6688:9;:36::i;:::-;6735:121;6744:6;6752:12;:10;:12::i;:::-;6766:89;6804:6;6766:89;;;;;;;;;;;;;;;;;:11;:19;6778:6;6766:19;;;;;;;;;;;;;;;:33;6786:12;:10;:12::i;:::-;6766:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6735:8;:121::i;:::-;6874:4;6867:11;;6573:313;;;;;:::o;4307:31::-;;;;:::o;5738:83::-;5779:5;4571:1;5797:16;;5738:83;:::o;10092:164::-;2570:12;:10;:12::i;:::-;2560:22;;:6;;;;;;;;;;:22;;;2552:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10165:6:::1;10160:87;10181:6;:13;10177:1;:17;10160:87;;;10232:5;10214:4;:15;10219:6;10226:1;10219:9;;;;;;;;:::i;:::-;;;;;;;;10214:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10196:3;;;;;:::i;:::-;;;;10160:87;;;;10092:164:::0;:::o;4386:37::-;;;;;;;;;;;;;:::o;6894:103::-;2570:12;:10;:12::i;:::-;2560:22;;:6;;;;;;;;;;:22;;;2552:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6984:5:::1;6966:15;;:23;;;;;;;;;;;;;;;;;;6894:103:::0;:::o;12308:193::-;12374:14;;;;;;;;;;;12358:30;;:12;:10;:12::i;:::-;:30;;;12350:39;;;;;;12400:26;12429:21;12400:50;;12461:32;12474:18;12461:12;:32::i;:::-;12339:162;12308:193::o;5932:138::-;5998:7;6025:37;6045:7;:16;6053:7;6045:16;;;;;;;;;;;;;;;;6025:19;:37::i;:::-;6018:44;;5932:138;;;:::o;2647:148::-;2570:12;:10;:12::i;:::-;2560:22;;:6;;;;;;;;;;:22;;;2552:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2754:1:::1;2717:40;;2738:6;::::0;::::1;;;;;;;;2717:40;;;;;;;;;;;;2785:1;2768:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2647:148::o:0;9690:118::-;2570:12;:10;:12::i;:::-;2560:22;;:6;;;;;;;;;;:22;;;2552:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4065:18:::1;9743:12;:22;;;;4065:18;9776:14;:24;;;;9690:118::o:0;4813:55::-;;;;:::o;2433:79::-;2471:7;2498:6;;;;;;;;;;;2491:13;;2433:79;:::o;4876:57::-;;;;:::o;4276:24::-;;;;:::o;5643:87::-;5682:13;5715:7;;;;;;;;;;;;;;;;;5708:14;;5643:87;:::o;4181:24::-;;;;:::o;6078:167::-;6156:4;6173:42;6183:12;:10;:12::i;:::-;6197:9;6208:6;6173:9;:42::i;:::-;6233:4;6226:11;;6078:167;;;;:::o;4345:34::-;;;;:::o;4212:24::-;;;;:::o;12106:194::-;12172:14;;;;;;;;;;;12156:30;;:12;:10;:12::i;:::-;:30;;;12148:39;;;;;;12198:23;12224:24;12242:4;12224:9;:24::i;:::-;12198:50;;12259:33;12276:15;12259:16;:33::i;:::-;12137:163;12106:194::o;10264:773::-;2570:12;:10;:12::i;:::-;2560:22;;:6;;;;;;;;;;:22;;;2552:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10328:11:::1;;;;;;;;;;;10327:12;10319:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10377:35;10434:42;10377:100;;10506:16;10488:15;;:34;;;;;;;;;;;;;;;;;;10533:58;10550:4;10565:15;;;;;;;;;;;4065:18;10533:8;:58::i;:::-;10636:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10618:56;;;10683:4;10690:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10618:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10602:13;;:112;;;;;;;;;;;;;;;;;;10725:15;;;;;;;;;;;:31;;;10764:21;10795:4;10801:24;10819:4;10801:9;:24::i;:::-;10826:1;10828::::0;10830:7:::1;:5;:7::i;:::-;10838:15;10725:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10879:4;10865:11;;:18;;;;;;;;;;;;;;;;;;10912:4;10894:15;;:22;;;;;;;;;;;;;;;;;;10943:4;10929:11;;:18;;;;;;;;;;;;;;;;;;10965:13;;;;;;;;;;;10958:29;;;10996:15;;;;;;;;;;;11014:14;10958:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10308:729;10264:773::o:0;9920:164::-;2570:12;:10;:12::i;:::-;2560:22;;:6;;;;;;;;;;:22;;;2552:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9994:6:::1;9989:88;10010:5;:12;10006:1;:16;9989:88;;;10061:4;10044;:14;10049:5;10055:1;10049:8;;;;;;;;:::i;:::-;;;;;;;;10044:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10024:3;;;;;:::i;:::-;;;;9989:88;;;;9920:164:::0;:::o;6253:143::-;6334:7;6361:11;:18;6373:5;6361:18;;;;;;;;;;;;;;;:27;6380:7;6361:27;;;;;;;;;;;;;;;;6354:34;;6253:143;;;;:::o;1486:246::-;1544:7;1573:1;1568;:6;1564:47;;1598:1;1591:8;;;;1564:47;1621:9;1637:1;1633;:5;;;;:::i;:::-;1621:17;;1666:1;1661;1657;:5;;;;:::i;:::-;:10;1649:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1723:1;1716:8;;;1486:246;;;;;:::o;1740:132::-;1798:7;1825:39;1829:1;1832;1825:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1818:46;;1740:132;;;;:::o;151:98::-;204:7;231:10;224:17;;151:98;:::o;7267:335::-;7377:1;7360:19;;:5;:19;;;7352:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7458:1;7439:21;;:7;:21;;;7431:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7540:6;7510:11;:18;7522:5;7510:18;;;;;;;;;;;;;;;:27;7529:7;7510:27;;;;;;;;;;;;;;;:36;;;;7578:7;7562:32;;7571:5;7562:32;;;7587:6;7562:32;;;;;;:::i;:::-;;;;;;;;7267:335;;;:::o;7610:1579::-;7714:1;7698:18;;:4;:18;;;7690:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7791:1;7777:16;;:2;:16;;;7769:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7861:1;7852:6;:10;7844:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7935:7;:5;:7::i;:::-;7927:15;;:4;:15;;;;:32;;;;;7952:7;:5;:7::i;:::-;7946:13;;:2;:13;;;;7927:32;7923:1150;;;7985:4;:10;7990:4;7985:10;;;;;;;;;;;;;;;;;;;;;;;;;7984:11;:24;;;;;8000:4;:8;8005:2;8000:8;;;;;;;;;;;;;;;;;;;;;;;;;7999:9;7984:24;7976:33;;;;;;8036:1;8024:9;:13;;;;8086:1;8065:19;;:22;8064:46;;8099:11;;8064:46;;;8089:9;;8064:46;8052:9;:58;;;;8137:13;;;;;;;;;;;8129:21;;:4;:21;;;:55;;;;;8168:15;;;;;;;;;;;8154:30;;:2;:30;;;;8129:55;:83;;;;;8190:18;:22;8209:2;8190:22;;;;;;;;;;;;;;;;;;;;;;;;;8188:24;8129:83;:102;;;;;8216:15;;;;;;;;;;;8129:102;8125:397;;;8299:12;;8289:6;:22;;8281:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8394:14;;8384:6;8368:13;8378:2;8368:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8360:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8481:1;8461:19;;:21;8458:49;;;8484:19;;:21;;;;;;;;;:::i;:::-;;;;;;8458:49;8125:397;8540:28;8571:24;8589:4;8571:9;:24::i;:::-;8540:55;;8615:6;;;;;;;;;;;8614:7;:32;;;;;8633:13;;;;;;;;;;;8625:21;;:4;:21;;;;8614:32;:47;;;;;8650:11;;;;;;;;;;;8614:47;:73;;;;;8686:1;8665:20;:22;8614:73;:113;;;;;8711:16;;8691:19;;:36;8614:113;8610:384;;;8748:38;8765:20;8748:16;:38::i;:::-;8805:26;8834:21;8805:50;;8898:1;8877:18;:22;8874:105;;;8924:35;8937:21;8924:12;:35::i;:::-;8874:105;8729:265;8610:384;7961:1044;7923:1150;;;9034:1;9022:9;:13;;;;9060:1;9048:9;:13;;;;7923:1150;9094:13;;;;;;;;;;;9088:19;;:2;:19;;;9084:57;;9137:1;9117:19;;:21;9109:30;;;;;;9084:57;9151:30;9166:4;9171:2;9174:6;9151:14;:30::i;:::-;7610:1579;;;:::o;1288:190::-;1374:7;1407:1;1402;:6;;1410:12;1394:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1434:9;1450:1;1446;:5;;;;:::i;:::-;1434:17;;1469:1;1462:8;;;1288:190;;;;;:::o;9816:96::-;9873:14;;;;;;;;;;;:23;;:31;9897:6;9873:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9816:96;:::o;7005:254::-;7072:7;7111;;7100;:18;;7092:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7176:19;7199:10;:8;:10::i;:::-;7176:33;;7227:24;7239:11;7227:7;:11;;:24;;;;:::i;:::-;7220:31;;;7005:254;;;:::o;9197:483::-;5031:4;5022:6;;:13;;;;;;;;;;;;;;;;;;9275:21:::1;9313:1;9299:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9275:40;;9344:4;9326;9331:1;9326:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9370:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9360:4;9365:1;9360:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9403:62;9420:4;9435:15;;;;;;;;;;;9453:11;9403:8;:62::i;:::-;9476:15;;;;;;;;;;;:66;;;9557:11;9583:1;9599:4;9626;9646:15;9476:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9264:416;5067:5:::0;5058:6;;:14;;;;;;;;;;;;;;;;;;9197:483;:::o;1880:189::-;1966:7;1998:1;1994;:5;2001:12;1986:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2025:9;2041:1;2037;:5;;;;:::i;:::-;2025:17;;2060:1;2053:8;;;1880:189;;;;;:::o;11045:146::-;11139:44;11157:6;11165:9;11176:6;11139:17;:44::i;:::-;11045:146;;;:::o;13763:163::-;13804:7;13825:15;13842;13861:19;:17;:19::i;:::-;13824:56;;;;13898:20;13910:7;13898;:11;;:20;;;;:::i;:::-;13891:27;;;;13763:163;:::o;11199:487::-;11298:15;11315:23;11340:12;11354:23;11379:12;11393:13;11410:19;11421:7;11410:10;:19::i;:::-;11297:132;;;;;;;;;;;;11458:28;11478:7;11458;:15;11466:6;11458:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11440:7;:15;11448:6;11440:15;;;;;;;;;;;;;;;:46;;;;11518:39;11541:15;11518:7;:18;11526:9;11518:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11497:7;:18;11505:9;11497:18;;;;;;;;;;;;;;;:60;;;;11568:16;11578:5;11568:9;:16::i;:::-;11595:23;11607:4;11613;11595:11;:23::i;:::-;11651:9;11634:44;;11643:6;11634:44;;;11662:15;11634:44;;;;;;:::i;:::-;;;;;;;;11286:400;;;;;;11199:487;;;:::o;13934:256::-;13984:7;13993;14013:15;14031:7;;14013:25;;14049:15;4065:18;14049:25;;14099:20;4065:18;14099:7;;:11;;:20;;;;:::i;:::-;14089:7;:30;14085:61;;;14129:7;;4065:18;14121:25;;;;;;;;14085:61;14165:7;14174;14157:25;;;;;;13934:256;;;:::o;12511:471::-;12570:7;12579;12588;12597;12606;12615;12636:23;12661:12;12675:13;12692:42;12704:7;12713:9;;12724;;12692:11;:42::i;:::-;12635:99;;;;;;12745:19;12768:10;:8;:10::i;:::-;12745:33;;12790:15;12807:23;12832:12;12848:46;12860:7;12869:4;12875:5;12882:11;12848;:46::i;:::-;12789:105;;;;;;12913:7;12922:15;12939:4;12945:15;12962:4;12968:5;12905:69;;;;;;;;;;;;;;;;;;;12511:471;;;;;;;:::o;1144:136::-;1202:7;1229:43;1233:1;1236;1229:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1222:50;;1144:136;;;;:::o;957:179::-;1015:7;1035:9;1051:1;1047;:5;;;;:::i;:::-;1035:17;;1076:1;1071;:6;;1063:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1127:1;1120:8;;;957:179;;;;:::o;11694:212::-;11747:19;11770:10;:8;:10::i;:::-;11747:33;;11791:13;11807:22;11817:11;11807:5;:9;;:22;;;;:::i;:::-;11791:38;;11865:33;11892:5;11865:7;:22;11881:4;11865:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11840:7;:22;11856:4;11840:22;;;;;;;;;;;;;;;:58;;;;11736:170;;11694:212;:::o;11914:147::-;11992:17;12004:4;11992:7;;:11;;:17;;;;:::i;:::-;11982:7;:27;;;;12033:20;12048:4;12033:10;;:14;;:20;;;;:::i;:::-;12020:10;:33;;;;11914:147;;:::o;12990:351::-;13083:7;13092;13101;13121:12;13136:28;13160:3;13136:19;13148:6;13136:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;13121:43;;13175:13;13191:29;13216:3;13191:20;13203:7;13191;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;13175:45;;13231:23;13257:28;13279:5;13257:17;13269:4;13257:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13231:54;;13304:15;13321:4;13327:5;13296:37;;;;;;;;;12990:351;;;;;;;:::o;13349:409::-;13459:7;13468;13477;13497:15;13515:24;13527:11;13515:7;:11;;:24;;;;:::i;:::-;13497:42;;13550:12;13565:21;13574:11;13565:4;:8;;:21;;;;:::i;:::-;13550:36;;13597:13;13613:22;13623:11;13613:5;:9;;:22;;;;:::i;:::-;13597:38;;13646:23;13672:28;13694:5;13672:17;13684:4;13672:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13646:54;;13719:7;13728:15;13745:4;13711:39;;;;;;;;;;13349:409;;;;;;;;:::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;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652: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:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:117::-;4962:1;4959;4952:12;4976:180;5024:77;5021:1;5014:88;5121:4;5118:1;5111:15;5145:4;5142:1;5135:15;5162:281;5245:27;5267:4;5245:27;:::i;:::-;5237:6;5233:40;5375:6;5363:10;5360:22;5339:18;5327:10;5324:34;5321:62;5318:88;;;5386:18;;:::i;:::-;5318:88;5426:10;5422:2;5415:22;5205:238;5162:281;;:::o;5449:129::-;5483:6;5510:20;;:::i;:::-;5500:30;;5539:33;5567:4;5559:6;5539:33;:::i;:::-;5449:129;;;:::o;5584:311::-;5661:4;5751:18;5743:6;5740:30;5737:56;;;5773:18;;:::i;:::-;5737:56;5823:4;5815:6;5811:17;5803:25;;5883:4;5877;5873:15;5865:23;;5584:311;;;:::o;5901:117::-;6010:1;6007;6000:12;6041:710;6137:5;6162:81;6178:64;6235:6;6178:64;:::i;:::-;6162:81;:::i;:::-;6153:90;;6263:5;6292:6;6285:5;6278:21;6326:4;6319:5;6315:16;6308:23;;6379:4;6371:6;6367:17;6359:6;6355:30;6408:3;6400:6;6397:15;6394:122;;;6427:79;;:::i;:::-;6394:122;6542:6;6525:220;6559:6;6554:3;6551:15;6525:220;;;6634:3;6663:37;6696:3;6684:10;6663:37;:::i;:::-;6658:3;6651:50;6730:4;6725:3;6721:14;6714:21;;6601:144;6585:4;6580:3;6576:14;6569:21;;6525:220;;;6529:21;6143:608;;6041:710;;;;;:::o;6774:370::-;6845:5;6894:3;6887:4;6879:6;6875:17;6871:27;6861:122;;6902:79;;:::i;:::-;6861:122;7019:6;7006:20;7044:94;7134:3;7126:6;7119:4;7111:6;7107:17;7044:94;:::i;:::-;7035:103;;6851:293;6774:370;;;;:::o;7150:539::-;7234:6;7283:2;7271:9;7262:7;7258:23;7254:32;7251:119;;;7289:79;;:::i;:::-;7251:119;7437:1;7426:9;7422:17;7409:31;7467:18;7459:6;7456:30;7453:117;;;7489:79;;:::i;:::-;7453:117;7594:78;7664:7;7655:6;7644:9;7640:22;7594:78;:::i;:::-;7584:88;;7380:302;7150:539;;;;:::o;7695:104::-;7740:7;7769:24;7787:5;7769:24;:::i;:::-;7758:35;;7695:104;;;:::o;7805:142::-;7908:32;7934:5;7908:32;:::i;:::-;7903:3;7896:45;7805:142;;:::o;7953:254::-;8062:4;8100:2;8089:9;8085:18;8077:26;;8113:87;8197:1;8186:9;8182:17;8173:6;8113:87;:::i;:::-;7953:254;;;;:::o;8213:116::-;8283:21;8298:5;8283:21;:::i;:::-;8276:5;8273:32;8263:60;;8319:1;8316;8309:12;8263:60;8213:116;:::o;8335:133::-;8378:5;8416:6;8403:20;8394:29;;8432:30;8456:5;8432:30;:::i;:::-;8335:133;;;;:::o;8474:323::-;8530:6;8579:2;8567:9;8558:7;8554:23;8550:32;8547:119;;;8585:79;;:::i;:::-;8547:119;8705:1;8730:50;8772:7;8763:6;8752:9;8748:22;8730:50;:::i;:::-;8720:60;;8676:114;8474:323;;;;:::o;8803:329::-;8862:6;8911:2;8899:9;8890:7;8886:23;8882:32;8879:119;;;8917:79;;:::i;:::-;8879:119;9037:1;9062:53;9107:7;9098:6;9087:9;9083:22;9062:53;:::i;:::-;9052:63;;9008:117;8803:329;;;;:::o;9138:118::-;9225:24;9243:5;9225:24;:::i;:::-;9220:3;9213:37;9138:118;;:::o;9262:222::-;9355:4;9393:2;9382:9;9378:18;9370:26;;9406:71;9474:1;9463:9;9459:17;9450:6;9406:71;:::i;:::-;9262:222;;;;:::o;9490:474::-;9558:6;9566;9615:2;9603:9;9594:7;9590:23;9586:32;9583:119;;;9621:79;;:::i;:::-;9583:119;9741:1;9766:53;9811:7;9802:6;9791:9;9787:22;9766:53;:::i;:::-;9756:63;;9712:117;9868:2;9894:53;9939:7;9930:6;9919:9;9915:22;9894:53;:::i;:::-;9884:63;;9839:118;9490:474;;;;;:::o;9970:182::-;10110:34;10106:1;10098:6;10094:14;10087:58;9970:182;:::o;10158:366::-;10300:3;10321:67;10385:2;10380:3;10321:67;:::i;:::-;10314:74;;10397:93;10486:3;10397:93;:::i;:::-;10515:2;10510:3;10506:12;10499:19;;10158:366;;;:::o;10530:419::-;10696:4;10734:2;10723:9;10719:18;10711:26;;10783:9;10777:4;10773:20;10769:1;10758:9;10754:17;10747:47;10811:131;10937:4;10811:131;:::i;:::-;10803:139;;10530:419;;;:::o;10955:180::-;11003:77;11000:1;10993:88;11100:4;11097:1;11090:15;11124:4;11121:1;11114:15;11141:180;11189:77;11186:1;11179:88;11286:4;11283:1;11276:15;11310:4;11307:1;11300:15;11327:233;11366:3;11389:24;11407:5;11389:24;:::i;:::-;11380:33;;11435:66;11428:5;11425:77;11422:103;;11505:18;;:::i;:::-;11422:103;11552:1;11545:5;11541:13;11534:20;;11327:233;;;:::o;11566:173::-;11706:25;11702:1;11694:6;11690:14;11683:49;11566:173;:::o;11745:366::-;11887:3;11908:67;11972:2;11967:3;11908:67;:::i;:::-;11901:74;;11984:93;12073:3;11984:93;:::i;:::-;12102:2;12097:3;12093:12;12086:19;;11745:366;;;:::o;12117:419::-;12283:4;12321:2;12310:9;12306:18;12298:26;;12370:9;12364:4;12360:20;12356:1;12345:9;12341:17;12334:47;12398:131;12524:4;12398:131;:::i;:::-;12390:139;;12117:419;;;:::o;12542:143::-;12599:5;12630:6;12624:13;12615:22;;12646:33;12673:5;12646:33;:::i;:::-;12542:143;;;;:::o;12691:351::-;12761:6;12810:2;12798:9;12789:7;12785:23;12781:32;12778:119;;;12816:79;;:::i;:::-;12778:119;12936:1;12961:64;13017:7;13008:6;12997:9;12993:22;12961:64;:::i;:::-;12951:74;;12907:128;12691:351;;;;:::o;13048:332::-;13169:4;13207:2;13196:9;13192:18;13184:26;;13220:71;13288:1;13277:9;13273:17;13264:6;13220:71;:::i;:::-;13301:72;13369:2;13358:9;13354:18;13345:6;13301:72;:::i;:::-;13048:332;;;;;:::o;13386:85::-;13431:7;13460:5;13449:16;;13386:85;;;:::o;13477:60::-;13505:3;13526:5;13519:12;;13477:60;;;:::o;13543:158::-;13601:9;13634:61;13652:42;13661:32;13687:5;13661:32;:::i;:::-;13652:42;:::i;:::-;13634:61;:::i;:::-;13621:74;;13543:158;;;:::o;13707:147::-;13802:45;13841:5;13802:45;:::i;:::-;13797:3;13790:58;13707:147;;:::o;13860:807::-;14109:4;14147:3;14136:9;14132:19;14124:27;;14161:71;14229:1;14218:9;14214:17;14205:6;14161:71;:::i;:::-;14242:72;14310:2;14299:9;14295:18;14286:6;14242:72;:::i;:::-;14324:80;14400:2;14389:9;14385:18;14376:6;14324:80;:::i;:::-;14414;14490:2;14479:9;14475:18;14466:6;14414:80;:::i;:::-;14504:73;14572:3;14561:9;14557:19;14548:6;14504:73;:::i;:::-;14587;14655:3;14644:9;14640:19;14631:6;14587:73;:::i;:::-;13860:807;;;;;;;;;:::o;14673:143::-;14730:5;14761:6;14755:13;14746:22;;14777:33;14804:5;14777:33;:::i;:::-;14673:143;;;;:::o;14822:663::-;14910:6;14918;14926;14975:2;14963:9;14954:7;14950:23;14946:32;14943:119;;;14981:79;;:::i;:::-;14943:119;15101:1;15126:64;15182:7;15173:6;15162:9;15158:22;15126:64;:::i;:::-;15116:74;;15072:128;15239:2;15265:64;15321:7;15312:6;15301:9;15297:22;15265:64;:::i;:::-;15255:74;;15210:129;15378:2;15404:64;15460:7;15451:6;15440:9;15436:22;15404:64;:::i;:::-;15394:74;;15349:129;14822:663;;;;;:::o;15491:332::-;15612:4;15650:2;15639:9;15635:18;15627:26;;15663:71;15731:1;15720:9;15716:17;15707:6;15663:71;:::i;:::-;15744:72;15812:2;15801:9;15797:18;15788:6;15744:72;:::i;:::-;15491:332;;;;;:::o;15829:137::-;15883:5;15914:6;15908:13;15899:22;;15930:30;15954:5;15930:30;:::i;:::-;15829:137;;;;:::o;15972:345::-;16039:6;16088:2;16076:9;16067:7;16063:23;16059:32;16056:119;;;16094:79;;:::i;:::-;16056:119;16214:1;16239:61;16292:7;16283:6;16272:9;16268:22;16239:61;:::i;:::-;16229:71;;16185:125;15972:345;;;;:::o;16323:348::-;16363:7;16386:20;16404:1;16386:20;:::i;:::-;16381:25;;16420:20;16438:1;16420:20;:::i;:::-;16415:25;;16608:1;16540:66;16536:74;16533:1;16530:81;16525:1;16518:9;16511:17;16507:105;16504:131;;;16615:18;;:::i;:::-;16504:131;16663:1;16660;16656:9;16645:20;;16323:348;;;;:::o;16677:180::-;16725:77;16722:1;16715:88;16822:4;16819:1;16812:15;16846:4;16843:1;16836:15;16863:185;16903:1;16920:20;16938:1;16920:20;:::i;:::-;16915:25;;16954:20;16972:1;16954:20;:::i;:::-;16949:25;;16993:1;16983:35;;16998:18;;:::i;:::-;16983:35;17040:1;17037;17033:9;17028:14;;16863:185;;;;:::o;17054:220::-;17194:34;17190:1;17182:6;17178:14;17171:58;17263:3;17258:2;17250:6;17246:15;17239:28;17054:220;:::o;17280:366::-;17422:3;17443:67;17507:2;17502:3;17443:67;:::i;:::-;17436:74;;17519:93;17608:3;17519:93;:::i;:::-;17637:2;17632:3;17628:12;17621:19;;17280:366;;;:::o;17652:419::-;17818:4;17856:2;17845:9;17841:18;17833:26;;17905:9;17899:4;17895:20;17891:1;17880:9;17876:17;17869:47;17933:131;18059:4;17933:131;:::i;:::-;17925:139;;17652:419;;;:::o;18077:223::-;18217:34;18213:1;18205:6;18201:14;18194:58;18286:6;18281:2;18273:6;18269:15;18262:31;18077:223;:::o;18306:366::-;18448:3;18469:67;18533:2;18528:3;18469:67;:::i;:::-;18462:74;;18545:93;18634:3;18545:93;:::i;:::-;18663:2;18658:3;18654:12;18647:19;;18306:366;;;:::o;18678:419::-;18844:4;18882:2;18871:9;18867:18;18859:26;;18931:9;18925:4;18921:20;18917:1;18906:9;18902:17;18895:47;18959:131;19085:4;18959:131;:::i;:::-;18951:139;;18678:419;;;:::o;19103:221::-;19243:34;19239:1;19231:6;19227:14;19220:58;19312:4;19307:2;19299:6;19295:15;19288:29;19103:221;:::o;19330:366::-;19472:3;19493:67;19557:2;19552:3;19493:67;:::i;:::-;19486:74;;19569:93;19658:3;19569:93;:::i;:::-;19687:2;19682:3;19678:12;19671:19;;19330:366;;;:::o;19702:419::-;19868:4;19906:2;19895:9;19891:18;19883:26;;19955:9;19949:4;19945:20;19941:1;19930:9;19926:17;19919:47;19983:131;20109:4;19983:131;:::i;:::-;19975:139;;19702:419;;;:::o;20127:224::-;20267:34;20263:1;20255:6;20251:14;20244:58;20336:7;20331:2;20323:6;20319:15;20312:32;20127:224;:::o;20357:366::-;20499:3;20520:67;20584:2;20579:3;20520:67;:::i;:::-;20513:74;;20596:93;20685:3;20596:93;:::i;:::-;20714:2;20709:3;20705:12;20698:19;;20357:366;;;:::o;20729:419::-;20895:4;20933:2;20922:9;20918:18;20910:26;;20982:9;20976:4;20972:20;20968:1;20957:9;20953:17;20946:47;21010:131;21136:4;21010:131;:::i;:::-;21002:139;;20729:419;;;:::o;21154:222::-;21294:34;21290:1;21282:6;21278:14;21271:58;21363:5;21358:2;21350:6;21346:15;21339:30;21154:222;:::o;21382:366::-;21524:3;21545:67;21609:2;21604:3;21545:67;:::i;:::-;21538:74;;21621:93;21710:3;21621:93;:::i;:::-;21739:2;21734:3;21730:12;21723:19;;21382:366;;;:::o;21754:419::-;21920:4;21958:2;21947:9;21943:18;21935:26;;22007:9;22001:4;21997:20;21993:1;21982:9;21978:17;21971:47;22035:131;22161:4;22035:131;:::i;:::-;22027:139;;21754:419;;;:::o;22179:228::-;22319:34;22315:1;22307:6;22303:14;22296:58;22388:11;22383:2;22375:6;22371:15;22364:36;22179:228;:::o;22413:366::-;22555:3;22576:67;22640:2;22635:3;22576:67;:::i;:::-;22569:74;;22652:93;22741:3;22652:93;:::i;:::-;22770:2;22765:3;22761:12;22754:19;;22413:366;;;:::o;22785:419::-;22951:4;22989:2;22978:9;22974:18;22966:26;;23038:9;23032:4;23028:20;23024:1;23013:9;23009:17;23002:47;23066:131;23192:4;23066:131;:::i;:::-;23058:139;;22785:419;;;:::o;23210:175::-;23350:27;23346:1;23338:6;23334:14;23327:51;23210:175;:::o;23391:366::-;23533:3;23554:67;23618:2;23613:3;23554:67;:::i;:::-;23547:74;;23630:93;23719:3;23630:93;:::i;:::-;23748:2;23743:3;23739:12;23732:19;;23391:366;;;:::o;23763:419::-;23929:4;23967:2;23956:9;23952:18;23944:26;;24016:9;24010:4;24006:20;24002:1;23991:9;23987:17;23980:47;24044:131;24170:4;24044:131;:::i;:::-;24036:139;;23763:419;;;:::o;24188:191::-;24228:3;24247:20;24265:1;24247:20;:::i;:::-;24242:25;;24281:20;24299:1;24281:20;:::i;:::-;24276:25;;24324:1;24321;24317:9;24310:16;;24345:3;24342:1;24339:10;24336:36;;;24352:18;;:::i;:::-;24336:36;24188:191;;;;:::o;24385:176::-;24525:28;24521:1;24513:6;24509:14;24502:52;24385:176;:::o;24567:366::-;24709:3;24730:67;24794:2;24789:3;24730:67;:::i;:::-;24723:74;;24806:93;24895:3;24806:93;:::i;:::-;24924:2;24919:3;24915:12;24908:19;;24567:366;;;:::o;24939:419::-;25105:4;25143:2;25132:9;25128:18;25120:26;;25192:9;25186:4;25182:20;25178:1;25167:9;25163:17;25156:47;25220:131;25346:4;25220:131;:::i;:::-;25212:139;;24939:419;;;:::o;25364:171::-;25403:3;25426:24;25444:5;25426:24;:::i;:::-;25417:33;;25472:4;25465:5;25462:15;25459:41;;25480:18;;:::i;:::-;25459:41;25527:1;25520:5;25516:13;25509:20;;25364:171;;;:::o;25541:194::-;25581:4;25601:20;25619:1;25601:20;:::i;:::-;25596:25;;25635:20;25653:1;25635:20;:::i;:::-;25630:25;;25679:1;25676;25672:9;25664:17;;25703:1;25697:4;25694:11;25691:37;;;25708:18;;:::i;:::-;25691:37;25541:194;;;;:::o;25741:229::-;25881:34;25877:1;25869:6;25865:14;25858:58;25950:12;25945:2;25937:6;25933:15;25926:37;25741:229;:::o;25976:366::-;26118:3;26139:67;26203:2;26198:3;26139:67;:::i;:::-;26132:74;;26215:93;26304:3;26215:93;:::i;:::-;26333:2;26328:3;26324:12;26317:19;;25976:366;;;:::o;26348:419::-;26514:4;26552:2;26541:9;26537:18;26529:26;;26601:9;26595:4;26591:20;26587:1;26576:9;26572:17;26565:47;26629:131;26755:4;26629:131;:::i;:::-;26621:139;;26348:419;;;:::o;26773:114::-;26840:6;26874:5;26868:12;26858:22;;26773:114;;;:::o;26893:184::-;26992:11;27026:6;27021:3;27014:19;27066:4;27061:3;27057:14;27042:29;;26893:184;;;;:::o;27083:132::-;27150:4;27173:3;27165:11;;27203:4;27198:3;27194:14;27186:22;;27083:132;;;:::o;27221:108::-;27298:24;27316:5;27298:24;:::i;:::-;27293:3;27286:37;27221:108;;:::o;27335:179::-;27404:10;27425:46;27467:3;27459:6;27425:46;:::i;:::-;27503:4;27498:3;27494:14;27480:28;;27335:179;;;;:::o;27520:113::-;27590:4;27622;27617:3;27613:14;27605:22;;27520:113;;;:::o;27669:732::-;27788:3;27817:54;27865:5;27817:54;:::i;:::-;27887:86;27966:6;27961:3;27887:86;:::i;:::-;27880:93;;27997:56;28047:5;27997:56;:::i;:::-;28076:7;28107:1;28092:284;28117:6;28114:1;28111:13;28092:284;;;28193:6;28187:13;28220:63;28279:3;28264:13;28220:63;:::i;:::-;28213:70;;28306:60;28359:6;28306:60;:::i;:::-;28296:70;;28152:224;28139:1;28136;28132:9;28127:14;;28092:284;;;28096:14;28392:3;28385:10;;27793:608;;;27669:732;;;;:::o;28407:831::-;28670:4;28708:3;28697:9;28693:19;28685:27;;28722:71;28790:1;28779:9;28775:17;28766:6;28722:71;:::i;:::-;28803:80;28879:2;28868:9;28864:18;28855:6;28803:80;:::i;:::-;28930:9;28924:4;28920:20;28915:2;28904:9;28900:18;28893:48;28958:108;29061:4;29052:6;28958:108;:::i;:::-;28950:116;;29076:72;29144:2;29133:9;29129:18;29120:6;29076:72;:::i;:::-;29158:73;29226:3;29215:9;29211:19;29202:6;29158:73;:::i;:::-;28407:831;;;;;;;;:::o;29244:177::-;29384:29;29380:1;29372:6;29368:14;29361:53;29244:177;:::o;29427:366::-;29569:3;29590:67;29654:2;29649:3;29590:67;:::i;:::-;29583:74;;29666:93;29755:3;29666:93;:::i;:::-;29784:2;29779:3;29775:12;29768:19;;29427:366;;;:::o;29799:419::-;29965:4;30003:2;29992:9;29988:18;29980:26;;30052:9;30046:4;30042:20;30038:1;30027:9;30023:17;30016:47;30080:131;30206:4;30080:131;:::i;:::-;30072:139;;29799:419;;;:::o
Swarm Source
ipfs://1e0003280c3a178fd138da594f9d03acf048b6c15a3840777b145c65ff70ba27
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.