ERC-20
Overview
Max Total Supply
100,000,000 NODLIX
Holders
248
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
NodlixAI
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2025-01-11 */ /** Website: https://nodlix.org/ Telegram: https://t.me/nodlixAI Twitter: https://x.com/Nodlix_erc20 **/ //SPDX-License-Identifier: UNLICENSE pragma solidity 0.8.26; 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; 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 NodlixAI is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private isExile; mapping (address => bool) public marketPair; address payable private _taxWallet; uint256 firstBlock; uint256 private _firstBuyTax=25; uint256 private _firstSellTax=20; uint256 private _finalBuyTax=5; uint256 private _finalSellTax=5; uint256 private _reduceBuyTaxAt=20; uint256 private _reduceSellTaxAt=20; uint256 private _preventSwapBefore=2; uint256 private _buyCount= 0; uint256 private sellCount = 0; uint256 private lastSellBlock = 0; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 100000000 * 10**_decimals; string private constant _name = unicode"Nodlix AI"; string private constant _symbol = unicode"NODLIX"; uint256 public _maxTxAmount = 2000000 * 10**_decimals; uint256 public _maxWalletSize = 2000000 * 10**_decimals; uint256 public _taxSwapThreshold= 200000 * 10**_decimals; uint256 public _maxTaxSwap= 2000000 * 10**_decimals; IUniswapV2Router02 private uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; uint256 public caBlockLimit = 3; bool private inSwap = false; bool private swapEnabled = false; bool public caLimit = true; event MaxTxAmountUpdated(uint _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _taxWallet = payable(0xF635bAaB5159B3B30C92d0B7008F280Ef0f50f1c); _balances[_msgSender()] = _tTotal; isExile[owner()] = true; isExile[address(this)] = true; isExile[address(uniswapV2Pair)] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[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 _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"); uint256 taxAmount=0; if (from != owner() && to != owner()) { taxAmount = amount.mul((_buyCount> _reduceBuyTaxAt)? _finalBuyTax: _firstBuyTax).div(100); if (marketPair[from] && to != address(uniswapV2Router) && ! isExile[to] ) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); if (firstBlock + 1 > block.number) { require(!isContract(to)); } _buyCount++; } if (!marketPair[to] && ! isExile[to]) { require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); } if(marketPair[to] && from!= address(this) ){ taxAmount = amount.mul((_buyCount> _reduceSellTaxAt)? _finalSellTax: _firstSellTax).div(100); } if (!marketPair[from] && !marketPair[to] && from!= address(this) ) { taxAmount = 0; } uint256 contractTokenBalance = balanceOf(address(this)); if (caLimit && !inSwap && marketPair[to] && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) { if (block.number > lastSellBlock) { sellCount = 0; } require(sellCount < caBlockLimit, "CA balance sell"); swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } sellCount++; lastSellBlock = block.number; } else if(!inSwap && marketPair[to] && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) { swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } if(taxAmount>0){ _balances[address(this)]=_balances[address(this)].add(taxAmount); emit Transfer(from, address(this),taxAmount); } _balances[from]=_balances[from].sub(amount); _balances[to]=_balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); } function min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } function isContract(address account) private view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } 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 rescueStuckETH() external onlyOwner { payable(_taxWallet).transfer(address(this).balance); } function updateSwapSettings(uint256 newinitialBuyTax, uint256 newinitialSellTax, uint256 newReduBTax, uint256 newReduSTax, uint256 newPrevSwapBef) external onlyOwner { _firstBuyTax = newinitialBuyTax; _firstSellTax = newinitialSellTax; _reduceBuyTaxAt = newReduBTax; _reduceSellTaxAt = newReduSTax; _preventSwapBefore = newPrevSwapBef; } function rescueStuckERC20Tokens(address _tokenAddr, uint _amount) external onlyOwner { IERC20(_tokenAddr).transfer(_taxWallet, _amount); } function openMax() external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize=_tTotal; emit MaxTxAmountUpdated(_tTotal); } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function startTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); marketPair[address(uniswapV2Pair)] = true; isExile[address(uniswapV2Pair)] = true; uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); swapEnabled = true; tradingOpen = true; firstBlock = block.number; } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"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":"_maxTaxSwap","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":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"caBlockLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"caLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"marketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueStuckERC20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","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"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newinitialBuyTax","type":"uint256"},{"internalType":"uint256","name":"newinitialSellTax","type":"uint256"},{"internalType":"uint256","name":"newReduBTax","type":"uint256"},{"internalType":"uint256","name":"newReduSTax","type":"uint256"},{"internalType":"uint256","name":"newPrevSwapBef","type":"uint256"}],"name":"updateSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526019600755601460085560056009556005600a556014600b556014600c556002600d555f600e555f600f555f6010556009600a61004191906105d7565b621e848061004f9190610621565b6011556009600a61006091906105d7565b621e848061006e9190610621565b6012556009600a61007f91906105d7565b62030d4061008d9190610621565b6013556009600a61009e91906105d7565b621e84806100ac9190610621565b60145560036017555f60185f6101000a81548160ff0219169083151502179055505f601860016101000a81548160ff0219169083151502179055506001601860026101000a81548160ff02191690831515021790555034801561010d575f80fd5b505f61011d61043860201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073f635baab5159b3b30c92d0b7008f280ef0f50f1c60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a61021b91906105d7565b6305f5e10061022a9190610621565b60015f61023b61043860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61028b61043f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506103b361043860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a61040f91906105d7565b6305f5e10061041e9190610621565b60405161042b9190610671565b60405180910390a361068a565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156104e8578086048111156104c4576104c3610466565b5b60018516156104d35780820291505b80810290506104e185610493565b94506104a8565b94509492505050565b5f8261050057600190506105bb565b8161050d575f90506105bb565b8160018114610523576002811461052d5761055c565b60019150506105bb565b60ff84111561053f5761053e610466565b5b8360020a91508482111561055657610555610466565b5b506105bb565b5060208310610133831016604e8410600b84101617156105915782820a90508381111561058c5761058b610466565b5b6105bb565b61059e848484600161049f565b925090508184048111156105b5576105b4610466565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6105e1826105c2565b91506105ec836105cb565b92506106197fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846104f1565b905092915050565b5f61062b826105c2565b9150610636836105c2565b9250828202610644816105c2565b9150828204841483151761065b5761065a610466565b5b5092915050565b61066b816105c2565b82525050565b5f6020820190506106845f830184610662565b92915050565b613648806106975f395ff3fe60806040526004361061014e575f3560e01c8063715018a6116100b5578063a9059cbb1161006e578063a9059cbb14610443578063bf474bed1461047f578063c2773d4e146104a9578063cee3e84d146104bf578063dd62ed3e146104e9578063f5b3c3bf1461052557610155565b8063715018a61461035b5780637d1db4a51461037157806383aa62901461039b5780638da5cb5b146103c55780638f9a55c0146103ef57806395d89b411461041957610155565b8063293230b811610107578063293230b8146102655780632c65469e1461027b578063313ce567146102a3578063331221d5146102cd57806349bd5a5e146102f557806370a082311461031f57610155565b80630150fe4c1461015957806306fdde031461016f578063095ea7b3146101995780630faee56f146101d557806318160ddd146101ff57806323b872dd1461022957610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061016d610561565b005b34801561017a575f80fd5b5061018361065c565b6040516101909190612696565b60405180910390f35b3480156101a4575f80fd5b506101bf60048036038101906101ba9190612747565b610699565b6040516101cc919061279f565b60405180910390f35b3480156101e0575f80fd5b506101e96106b6565b6040516101f691906127c7565b60405180910390f35b34801561020a575f80fd5b506102136106bc565b60405161022091906127c7565b60405180910390f35b348015610234575f80fd5b5061024f600480360381019061024a91906127e0565b6106df565b60405161025c919061279f565b60405180910390f35b348015610270575f80fd5b506102796107b3565b005b348015610286575f80fd5b506102a1600480360381019061029c9190612747565b610dc8565b005b3480156102ae575f80fd5b506102b7610efd565b6040516102c4919061284b565b60405180910390f35b3480156102d8575f80fd5b506102f360048036038101906102ee9190612864565b610f05565b005b348015610300575f80fd5b50610309610fc3565b60405161031691906128ea565b60405180910390f35b34801561032a575f80fd5b5061034560048036038101906103409190612903565b610fe8565b60405161035291906127c7565b60405180910390f35b348015610366575f80fd5b5061036f61102e565b005b34801561037c575f80fd5b5061038561117c565b60405161039291906127c7565b60405180910390f35b3480156103a6575f80fd5b506103af611182565b6040516103bc91906127c7565b60405180910390f35b3480156103d0575f80fd5b506103d9611188565b6040516103e691906128ea565b60405180910390f35b3480156103fa575f80fd5b506104036111af565b60405161041091906127c7565b60405180910390f35b348015610424575f80fd5b5061042d6111b5565b60405161043a9190612696565b60405180910390f35b34801561044e575f80fd5b5061046960048036038101906104649190612747565b6111f2565b604051610476919061279f565b60405180910390f35b34801561048a575f80fd5b5061049361120f565b6040516104a091906127c7565b60405180910390f35b3480156104b4575f80fd5b506104bd611215565b005b3480156104ca575f80fd5b506104d3611344565b6040516104e0919061279f565b60405180910390f35b3480156104f4575f80fd5b5061050f600480360381019061050a919061292e565b611357565b60405161051c91906127c7565b60405180910390f35b348015610530575f80fd5b5061054b60048036038101906105469190612903565b6113d9565b604051610558919061279f565b60405180910390f35b6105696113f6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ec906129b6565b60405180910390fd5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610659573d5f803e3d5ffd5b50565b60606040518060400160405280600981526020017f4e6f646c69782041490000000000000000000000000000000000000000000000815250905090565b5f6106ac6106a56113f6565b84846113fd565b6001905092915050565b60145481565b5f6009600a6106cb9190612b30565b6305f5e1006106da9190612b7a565b905090565b5f6106eb8484846115c0565b6107a8846106f76113f6565b6107a3856040518060600160405280602881526020016135eb6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61075a6113f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121039092919063ffffffff16565b6113fd565b600190509392505050565b6107bb6113f6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610847576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083e906129b6565b60405180910390fd5b601660149054906101000a900460ff1615610897576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088e90612c05565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506109333060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a61091f9190612b30565b6305f5e10061092e9190612b7a565b6113fd565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561099d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c19190612c37565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a6b9190612c37565b6040518363ffffffff1660e01b8152600401610a88929190612c62565b6020604051808303815f875af1158015610aa4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ac89190612c37565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610c3b30610fe8565b5f80610c45611188565b426040518863ffffffff1660e01b8152600401610c6796959493929190612ccb565b60606040518083038185885af1158015610c83573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ca89190612d3e565b50505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610d48929190612d8e565b6020604051808303815f875af1158015610d64573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d889190612ddf565b506001601860016101000a81548160ff0219169083151502179055506001601660146101000a81548160ff02191690831515021790555043600681905550565b610dd06113f6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e53906129b6565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610eb8929190612e5c565b6020604051808303815f875af1158015610ed4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ef89190612ddf565b505050565b5f6009905090565b610f0d6113f6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f90906129b6565b60405180910390fd5b846007819055508360088190555082600b8190555081600c8190555080600d819055505050505050565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6110366113f6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b9906129b6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60115481565b60175481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600681526020017f4e4f444c49580000000000000000000000000000000000000000000000000000815250905090565b5f6112056111fe6113f6565b84846115c0565b6001905092915050565b60135481565b61121d6113f6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a0906129b6565b60405180910390fd5b6009600a6112b79190612b30565b6305f5e1006112c69190612b7a565b6011819055506009600a6112da9190612b30565b6305f5e1006112e99190612b7a565b6012819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61131e9190612b30565b6305f5e10061132d9190612b7a565b60405161133a91906127c7565b60405180910390a1565b601860029054906101000a900460ff1681565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6004602052805f5260405f205f915054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361146b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146290612ef3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d090612f81565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115b391906127c7565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361162e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116259061300f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361169c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116939061309d565b60405180910390fd5b5f81116116de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d59061312b565b60405180910390fd5b5f6116e7611188565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117555750611725611188565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e53576117966064611788600b54600e541161177557600754611779565b6009545b8561216590919063ffffffff16565b6121dc90919063ffffffff16565b905060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561183b575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561188e575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611971576011548211156118d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cf90613193565b60405180910390fd5b601254826118e585610fe8565b6118ef91906131b1565b1115611930576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119279061322e565b60405180910390fd5b43600160065461194091906131b1565b11156119595761194f83612225565b15611958575f80fd5b5b600e5f81548092919061196b9061324c565b91905055505b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611a0f575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a6d5760125482611a2185610fe8565b611a2b91906131b1565b1115611a6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a639061322e565b60405180910390fd5b5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611aef57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b3357611b306064611b22600c54600e5411611b0f57600854611b13565b600a545b8561216590919063ffffffff16565b6121dc90919063ffffffff16565b90505b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611bd1575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611c0957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611c12575f90505b5f611c1c30610fe8565b9050601860029054906101000a900460ff168015611c46575060185f9054906101000a900460ff16155b8015611c98575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015611cb05750601860019054906101000a900460ff165b8015611cbd575060135481115b8015611ccc5750600d54600e54115b15611d8057601054431115611ce3575f600f819055505b601754600f5410611d29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d20906132dd565b60405180910390fd5b611d46611d4184611d3c84601454612236565b612236565b61224e565b5f4790505f811115611d5c57611d5b476124b7565b5b600f5f815480929190611d6e9061324c565b91905055504360108190555050611e51565b60185f9054906101000a900460ff16158015611de2575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015611dfa5750601860019054906101000a900460ff165b8015611e07575060135481115b8015611e165750600d54600e54115b15611e5057611e38611e3384611e2e84601454612236565b612236565b61224e565b5f4790505f811115611e4e57611e4d476124b7565b5b505b5b505b5f811115611f5257611eab8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461251f90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f4991906127c7565b60405180910390a35b611fa28260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461257c90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612045611ff9828461257c90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461251f90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6120e8848661257c90919063ffffffff16565b6040516120f591906127c7565b60405180910390a350505050565b5f83831115829061214a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121419190612696565b60405180910390fd5b505f838561215891906132fb565b9050809150509392505050565b5f808303612175575f90506121d6565b5f82846121829190612b7a565b9050828482612191919061335b565b146121d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c8906133fb565b60405180910390fd5b809150505b92915050565b5f61221d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125c5565b905092915050565b5f80823b90505f8111915050919050565b5f8183116122445782612246565b815b905092915050565b600160185f6101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561228457612283613419565b5b6040519080825280602002602001820160405280156122b25781602001602082028036833780820191505090505b50905030815f815181106122c9576122c8613446565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561236d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123919190612c37565b816001815181106123a5576123a4613446565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061240b3060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113fd565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161246d95949392919061352a565b5f604051808303815f87803b158015612484575f80fd5b505af1158015612496573d5f803e3d5ffd5b50505050505f60185f6101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561251b573d5f803e3d5ffd5b5050565b5f80828461252d91906131b1565b905083811015612572576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612569906135cc565b60405180910390fd5b8091505092915050565b5f6125bd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612103565b905092915050565b5f808311829061260b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126029190612696565b60405180910390fd5b505f8385612619919061335b565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61266882612626565b6126728185612630565b9350612682818560208601612640565b61268b8161264e565b840191505092915050565b5f6020820190508181035f8301526126ae818461265e565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6126e3826126ba565b9050919050565b6126f3816126d9565b81146126fd575f80fd5b50565b5f8135905061270e816126ea565b92915050565b5f819050919050565b61272681612714565b8114612730575f80fd5b50565b5f813590506127418161271d565b92915050565b5f806040838503121561275d5761275c6126b6565b5b5f61276a85828601612700565b925050602061277b85828601612733565b9150509250929050565b5f8115159050919050565b61279981612785565b82525050565b5f6020820190506127b25f830184612790565b92915050565b6127c181612714565b82525050565b5f6020820190506127da5f8301846127b8565b92915050565b5f805f606084860312156127f7576127f66126b6565b5b5f61280486828701612700565b935050602061281586828701612700565b925050604061282686828701612733565b9150509250925092565b5f60ff82169050919050565b61284581612830565b82525050565b5f60208201905061285e5f83018461283c565b92915050565b5f805f805f60a0868803121561287d5761287c6126b6565b5b5f61288a88828901612733565b955050602061289b88828901612733565b94505060406128ac88828901612733565b93505060606128bd88828901612733565b92505060806128ce88828901612733565b9150509295509295909350565b6128e4816126d9565b82525050565b5f6020820190506128fd5f8301846128db565b92915050565b5f60208284031215612918576129176126b6565b5b5f61292584828501612700565b91505092915050565b5f8060408385031215612944576129436126b6565b5b5f61295185828601612700565b925050602061296285828601612700565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6129a0602083612630565b91506129ab8261296c565b602082019050919050565b5f6020820190508181035f8301526129cd81612994565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612a5657808604811115612a3257612a316129d4565b5b6001851615612a415780820291505b8081029050612a4f85612a01565b9450612a16565b94509492505050565b5f82612a6e5760019050612b29565b81612a7b575f9050612b29565b8160018114612a915760028114612a9b57612aca565b6001915050612b29565b60ff841115612aad57612aac6129d4565b5b8360020a915084821115612ac457612ac36129d4565b5b50612b29565b5060208310610133831016604e8410600b8410161715612aff5782820a905083811115612afa57612af96129d4565b5b612b29565b612b0c8484846001612a0d565b92509050818404811115612b2357612b226129d4565b5b81810290505b9392505050565b5f612b3a82612714565b9150612b4583612830565b9250612b727fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612a5f565b905092915050565b5f612b8482612714565b9150612b8f83612714565b9250828202612b9d81612714565b91508282048414831517612bb457612bb36129d4565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612bef601783612630565b9150612bfa82612bbb565b602082019050919050565b5f6020820190508181035f830152612c1c81612be3565b9050919050565b5f81519050612c31816126ea565b92915050565b5f60208284031215612c4c57612c4b6126b6565b5b5f612c5984828501612c23565b91505092915050565b5f604082019050612c755f8301856128db565b612c8260208301846128db565b9392505050565b5f819050919050565b5f819050919050565b5f612cb5612cb0612cab84612c89565b612c92565b612714565b9050919050565b612cc581612c9b565b82525050565b5f60c082019050612cde5f8301896128db565b612ceb60208301886127b8565b612cf86040830187612cbc565b612d056060830186612cbc565b612d1260808301856128db565b612d1f60a08301846127b8565b979650505050505050565b5f81519050612d388161271d565b92915050565b5f805f60608486031215612d5557612d546126b6565b5b5f612d6286828701612d2a565b9350506020612d7386828701612d2a565b9250506040612d8486828701612d2a565b9150509250925092565b5f604082019050612da15f8301856128db565b612dae60208301846127b8565b9392505050565b612dbe81612785565b8114612dc8575f80fd5b50565b5f81519050612dd981612db5565b92915050565b5f60208284031215612df457612df36126b6565b5b5f612e0184828501612dcb565b91505092915050565b5f612e24612e1f612e1a846126ba565b612c92565b6126ba565b9050919050565b5f612e3582612e0a565b9050919050565b5f612e4682612e2b565b9050919050565b612e5681612e3c565b82525050565b5f604082019050612e6f5f830185612e4d565b612e7c60208301846127b8565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612edd602483612630565b9150612ee882612e83565b604082019050919050565b5f6020820190508181035f830152612f0a81612ed1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f6b602283612630565b9150612f7682612f11565b604082019050919050565b5f6020820190508181035f830152612f9881612f5f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612ff9602583612630565b915061300482612f9f565b604082019050919050565b5f6020820190508181035f83015261302681612fed565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613087602383612630565b91506130928261302d565b604082019050919050565b5f6020820190508181035f8301526130b48161307b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613115602983612630565b9150613120826130bb565b604082019050919050565b5f6020820190508181035f83015261314281613109565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61317d601983612630565b915061318882613149565b602082019050919050565b5f6020820190508181035f8301526131aa81613171565b9050919050565b5f6131bb82612714565b91506131c683612714565b92508282019050808211156131de576131dd6129d4565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613218601a83612630565b9150613223826131e4565b602082019050919050565b5f6020820190508181035f8301526132458161320c565b9050919050565b5f61325682612714565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613288576132876129d4565b5b600182019050919050565b7f43412062616c616e63652073656c6c00000000000000000000000000000000005f82015250565b5f6132c7600f83612630565b91506132d282613293565b602082019050919050565b5f6020820190508181035f8301526132f4816132bb565b9050919050565b5f61330582612714565b915061331083612714565b9250828203905081811115613328576133276129d4565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61336582612714565b915061337083612714565b9250826133805761337f61332e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133e5602183612630565b91506133f08261338b565b604082019050919050565b5f6020820190508181035f830152613412816133d9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6134a5816126d9565b82525050565b5f6134b6838361349c565b60208301905092915050565b5f602082019050919050565b5f6134d882613473565b6134e2818561347d565b93506134ed8361348d565b805f5b8381101561351d57815161350488826134ab565b975061350f836134c2565b9250506001810190506134f0565b5085935050505092915050565b5f60a08201905061353d5f8301886127b8565b61354a6020830187612cbc565b818103604083015261355c81866134ce565b905061356b60608301856128db565b61357860808301846127b8565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6135b6601b83612630565b91506135c182613582565b602082019050919050565b5f6020820190508181035f8301526135e3816135aa565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220151ac8ee7dfee2f64a4d5675dc3d0891070fe79d7f2a42a0f2cf57382d70e35a64736f6c634300081a0033
Deployed Bytecode
0x60806040526004361061014e575f3560e01c8063715018a6116100b5578063a9059cbb1161006e578063a9059cbb14610443578063bf474bed1461047f578063c2773d4e146104a9578063cee3e84d146104bf578063dd62ed3e146104e9578063f5b3c3bf1461052557610155565b8063715018a61461035b5780637d1db4a51461037157806383aa62901461039b5780638da5cb5b146103c55780638f9a55c0146103ef57806395d89b411461041957610155565b8063293230b811610107578063293230b8146102655780632c65469e1461027b578063313ce567146102a3578063331221d5146102cd57806349bd5a5e146102f557806370a082311461031f57610155565b80630150fe4c1461015957806306fdde031461016f578063095ea7b3146101995780630faee56f146101d557806318160ddd146101ff57806323b872dd1461022957610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061016d610561565b005b34801561017a575f80fd5b5061018361065c565b6040516101909190612696565b60405180910390f35b3480156101a4575f80fd5b506101bf60048036038101906101ba9190612747565b610699565b6040516101cc919061279f565b60405180910390f35b3480156101e0575f80fd5b506101e96106b6565b6040516101f691906127c7565b60405180910390f35b34801561020a575f80fd5b506102136106bc565b60405161022091906127c7565b60405180910390f35b348015610234575f80fd5b5061024f600480360381019061024a91906127e0565b6106df565b60405161025c919061279f565b60405180910390f35b348015610270575f80fd5b506102796107b3565b005b348015610286575f80fd5b506102a1600480360381019061029c9190612747565b610dc8565b005b3480156102ae575f80fd5b506102b7610efd565b6040516102c4919061284b565b60405180910390f35b3480156102d8575f80fd5b506102f360048036038101906102ee9190612864565b610f05565b005b348015610300575f80fd5b50610309610fc3565b60405161031691906128ea565b60405180910390f35b34801561032a575f80fd5b5061034560048036038101906103409190612903565b610fe8565b60405161035291906127c7565b60405180910390f35b348015610366575f80fd5b5061036f61102e565b005b34801561037c575f80fd5b5061038561117c565b60405161039291906127c7565b60405180910390f35b3480156103a6575f80fd5b506103af611182565b6040516103bc91906127c7565b60405180910390f35b3480156103d0575f80fd5b506103d9611188565b6040516103e691906128ea565b60405180910390f35b3480156103fa575f80fd5b506104036111af565b60405161041091906127c7565b60405180910390f35b348015610424575f80fd5b5061042d6111b5565b60405161043a9190612696565b60405180910390f35b34801561044e575f80fd5b5061046960048036038101906104649190612747565b6111f2565b604051610476919061279f565b60405180910390f35b34801561048a575f80fd5b5061049361120f565b6040516104a091906127c7565b60405180910390f35b3480156104b4575f80fd5b506104bd611215565b005b3480156104ca575f80fd5b506104d3611344565b6040516104e0919061279f565b60405180910390f35b3480156104f4575f80fd5b5061050f600480360381019061050a919061292e565b611357565b60405161051c91906127c7565b60405180910390f35b348015610530575f80fd5b5061054b60048036038101906105469190612903565b6113d9565b604051610558919061279f565b60405180910390f35b6105696113f6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ec906129b6565b60405180910390fd5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610659573d5f803e3d5ffd5b50565b60606040518060400160405280600981526020017f4e6f646c69782041490000000000000000000000000000000000000000000000815250905090565b5f6106ac6106a56113f6565b84846113fd565b6001905092915050565b60145481565b5f6009600a6106cb9190612b30565b6305f5e1006106da9190612b7a565b905090565b5f6106eb8484846115c0565b6107a8846106f76113f6565b6107a3856040518060600160405280602881526020016135eb6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61075a6113f6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121039092919063ffffffff16565b6113fd565b600190509392505050565b6107bb6113f6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610847576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083e906129b6565b60405180910390fd5b601660149054906101000a900460ff1615610897576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088e90612c05565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506109333060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a61091f9190612b30565b6305f5e10061092e9190612b7a565b6113fd565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561099d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c19190612c37565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a6b9190612c37565b6040518363ffffffff1660e01b8152600401610a88929190612c62565b6020604051808303815f875af1158015610aa4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ac89190612c37565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610c3b30610fe8565b5f80610c45611188565b426040518863ffffffff1660e01b8152600401610c6796959493929190612ccb565b60606040518083038185885af1158015610c83573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ca89190612d3e565b50505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610d48929190612d8e565b6020604051808303815f875af1158015610d64573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d889190612ddf565b506001601860016101000a81548160ff0219169083151502179055506001601660146101000a81548160ff02191690831515021790555043600681905550565b610dd06113f6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e53906129b6565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610eb8929190612e5c565b6020604051808303815f875af1158015610ed4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ef89190612ddf565b505050565b5f6009905090565b610f0d6113f6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f90906129b6565b60405180910390fd5b846007819055508360088190555082600b8190555081600c8190555080600d819055505050505050565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6110366113f6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b9906129b6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60115481565b60175481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600681526020017f4e4f444c49580000000000000000000000000000000000000000000000000000815250905090565b5f6112056111fe6113f6565b84846115c0565b6001905092915050565b60135481565b61121d6113f6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a0906129b6565b60405180910390fd5b6009600a6112b79190612b30565b6305f5e1006112c69190612b7a565b6011819055506009600a6112da9190612b30565b6305f5e1006112e99190612b7a565b6012819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61131e9190612b30565b6305f5e10061132d9190612b7a565b60405161133a91906127c7565b60405180910390a1565b601860029054906101000a900460ff1681565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6004602052805f5260405f205f915054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361146b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146290612ef3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d090612f81565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115b391906127c7565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361162e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116259061300f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361169c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116939061309d565b60405180910390fd5b5f81116116de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d59061312b565b60405180910390fd5b5f6116e7611188565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117555750611725611188565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e53576117966064611788600b54600e541161177557600754611779565b6009545b8561216590919063ffffffff16565b6121dc90919063ffffffff16565b905060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561183b575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561188e575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611971576011548211156118d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cf90613193565b60405180910390fd5b601254826118e585610fe8565b6118ef91906131b1565b1115611930576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119279061322e565b60405180910390fd5b43600160065461194091906131b1565b11156119595761194f83612225565b15611958575f80fd5b5b600e5f81548092919061196b9061324c565b91905055505b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611a0f575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a6d5760125482611a2185610fe8565b611a2b91906131b1565b1115611a6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a639061322e565b60405180910390fd5b5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611aef57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b3357611b306064611b22600c54600e5411611b0f57600854611b13565b600a545b8561216590919063ffffffff16565b6121dc90919063ffffffff16565b90505b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611bd1575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611c0957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611c12575f90505b5f611c1c30610fe8565b9050601860029054906101000a900460ff168015611c46575060185f9054906101000a900460ff16155b8015611c98575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015611cb05750601860019054906101000a900460ff165b8015611cbd575060135481115b8015611ccc5750600d54600e54115b15611d8057601054431115611ce3575f600f819055505b601754600f5410611d29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d20906132dd565b60405180910390fd5b611d46611d4184611d3c84601454612236565b612236565b61224e565b5f4790505f811115611d5c57611d5b476124b7565b5b600f5f815480929190611d6e9061324c565b91905055504360108190555050611e51565b60185f9054906101000a900460ff16158015611de2575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015611dfa5750601860019054906101000a900460ff165b8015611e07575060135481115b8015611e165750600d54600e54115b15611e5057611e38611e3384611e2e84601454612236565b612236565b61224e565b5f4790505f811115611e4e57611e4d476124b7565b5b505b5b505b5f811115611f5257611eab8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461251f90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f4991906127c7565b60405180910390a35b611fa28260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461257c90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612045611ff9828461257c90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461251f90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6120e8848661257c90919063ffffffff16565b6040516120f591906127c7565b60405180910390a350505050565b5f83831115829061214a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121419190612696565b60405180910390fd5b505f838561215891906132fb565b9050809150509392505050565b5f808303612175575f90506121d6565b5f82846121829190612b7a565b9050828482612191919061335b565b146121d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c8906133fb565b60405180910390fd5b809150505b92915050565b5f61221d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125c5565b905092915050565b5f80823b90505f8111915050919050565b5f8183116122445782612246565b815b905092915050565b600160185f6101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561228457612283613419565b5b6040519080825280602002602001820160405280156122b25781602001602082028036833780820191505090505b50905030815f815181106122c9576122c8613446565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561236d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123919190612c37565b816001815181106123a5576123a4613446565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061240b3060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113fd565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161246d95949392919061352a565b5f604051808303815f87803b158015612484575f80fd5b505af1158015612496573d5f803e3d5ffd5b50505050505f60185f6101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561251b573d5f803e3d5ffd5b5050565b5f80828461252d91906131b1565b905083811015612572576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612569906135cc565b60405180910390fd5b8091505092915050565b5f6125bd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612103565b905092915050565b5f808311829061260b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126029190612696565b60405180910390fd5b505f8385612619919061335b565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61266882612626565b6126728185612630565b9350612682818560208601612640565b61268b8161264e565b840191505092915050565b5f6020820190508181035f8301526126ae818461265e565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6126e3826126ba565b9050919050565b6126f3816126d9565b81146126fd575f80fd5b50565b5f8135905061270e816126ea565b92915050565b5f819050919050565b61272681612714565b8114612730575f80fd5b50565b5f813590506127418161271d565b92915050565b5f806040838503121561275d5761275c6126b6565b5b5f61276a85828601612700565b925050602061277b85828601612733565b9150509250929050565b5f8115159050919050565b61279981612785565b82525050565b5f6020820190506127b25f830184612790565b92915050565b6127c181612714565b82525050565b5f6020820190506127da5f8301846127b8565b92915050565b5f805f606084860312156127f7576127f66126b6565b5b5f61280486828701612700565b935050602061281586828701612700565b925050604061282686828701612733565b9150509250925092565b5f60ff82169050919050565b61284581612830565b82525050565b5f60208201905061285e5f83018461283c565b92915050565b5f805f805f60a0868803121561287d5761287c6126b6565b5b5f61288a88828901612733565b955050602061289b88828901612733565b94505060406128ac88828901612733565b93505060606128bd88828901612733565b92505060806128ce88828901612733565b9150509295509295909350565b6128e4816126d9565b82525050565b5f6020820190506128fd5f8301846128db565b92915050565b5f60208284031215612918576129176126b6565b5b5f61292584828501612700565b91505092915050565b5f8060408385031215612944576129436126b6565b5b5f61295185828601612700565b925050602061296285828601612700565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6129a0602083612630565b91506129ab8261296c565b602082019050919050565b5f6020820190508181035f8301526129cd81612994565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612a5657808604811115612a3257612a316129d4565b5b6001851615612a415780820291505b8081029050612a4f85612a01565b9450612a16565b94509492505050565b5f82612a6e5760019050612b29565b81612a7b575f9050612b29565b8160018114612a915760028114612a9b57612aca565b6001915050612b29565b60ff841115612aad57612aac6129d4565b5b8360020a915084821115612ac457612ac36129d4565b5b50612b29565b5060208310610133831016604e8410600b8410161715612aff5782820a905083811115612afa57612af96129d4565b5b612b29565b612b0c8484846001612a0d565b92509050818404811115612b2357612b226129d4565b5b81810290505b9392505050565b5f612b3a82612714565b9150612b4583612830565b9250612b727fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612a5f565b905092915050565b5f612b8482612714565b9150612b8f83612714565b9250828202612b9d81612714565b91508282048414831517612bb457612bb36129d4565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612bef601783612630565b9150612bfa82612bbb565b602082019050919050565b5f6020820190508181035f830152612c1c81612be3565b9050919050565b5f81519050612c31816126ea565b92915050565b5f60208284031215612c4c57612c4b6126b6565b5b5f612c5984828501612c23565b91505092915050565b5f604082019050612c755f8301856128db565b612c8260208301846128db565b9392505050565b5f819050919050565b5f819050919050565b5f612cb5612cb0612cab84612c89565b612c92565b612714565b9050919050565b612cc581612c9b565b82525050565b5f60c082019050612cde5f8301896128db565b612ceb60208301886127b8565b612cf86040830187612cbc565b612d056060830186612cbc565b612d1260808301856128db565b612d1f60a08301846127b8565b979650505050505050565b5f81519050612d388161271d565b92915050565b5f805f60608486031215612d5557612d546126b6565b5b5f612d6286828701612d2a565b9350506020612d7386828701612d2a565b9250506040612d8486828701612d2a565b9150509250925092565b5f604082019050612da15f8301856128db565b612dae60208301846127b8565b9392505050565b612dbe81612785565b8114612dc8575f80fd5b50565b5f81519050612dd981612db5565b92915050565b5f60208284031215612df457612df36126b6565b5b5f612e0184828501612dcb565b91505092915050565b5f612e24612e1f612e1a846126ba565b612c92565b6126ba565b9050919050565b5f612e3582612e0a565b9050919050565b5f612e4682612e2b565b9050919050565b612e5681612e3c565b82525050565b5f604082019050612e6f5f830185612e4d565b612e7c60208301846127b8565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612edd602483612630565b9150612ee882612e83565b604082019050919050565b5f6020820190508181035f830152612f0a81612ed1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f6b602283612630565b9150612f7682612f11565b604082019050919050565b5f6020820190508181035f830152612f9881612f5f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612ff9602583612630565b915061300482612f9f565b604082019050919050565b5f6020820190508181035f83015261302681612fed565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613087602383612630565b91506130928261302d565b604082019050919050565b5f6020820190508181035f8301526130b48161307b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613115602983612630565b9150613120826130bb565b604082019050919050565b5f6020820190508181035f83015261314281613109565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61317d601983612630565b915061318882613149565b602082019050919050565b5f6020820190508181035f8301526131aa81613171565b9050919050565b5f6131bb82612714565b91506131c683612714565b92508282019050808211156131de576131dd6129d4565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613218601a83612630565b9150613223826131e4565b602082019050919050565b5f6020820190508181035f8301526132458161320c565b9050919050565b5f61325682612714565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613288576132876129d4565b5b600182019050919050565b7f43412062616c616e63652073656c6c00000000000000000000000000000000005f82015250565b5f6132c7600f83612630565b91506132d282613293565b602082019050919050565b5f6020820190508181035f8301526132f4816132bb565b9050919050565b5f61330582612714565b915061331083612714565b9250828203905081811115613328576133276129d4565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61336582612714565b915061337083612714565b9250826133805761337f61332e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133e5602183612630565b91506133f08261338b565b604082019050919050565b5f6020820190508181035f830152613412816133d9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6134a5816126d9565b82525050565b5f6134b6838361349c565b60208301905092915050565b5f602082019050919050565b5f6134d882613473565b6134e2818561347d565b93506134ed8361348d565b805f5b8381101561351d57815161350488826134ab565b975061350f836134c2565b9250506001810190506134f0565b5085935050505092915050565b5f60a08201905061353d5f8301886127b8565b61354a6020830187612cbc565b818103604083015261355c81866134ce565b905061356b60608301856128db565b61357860808301846127b8565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6135b6601b83612630565b91506135c182613582565b602082019050919050565b5f6020820190508181035f8301526135e3816135aa565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220151ac8ee7dfee2f64a4d5675dc3d0891070fe79d7f2a42a0f2cf57382d70e35a64736f6c634300081a0033
Deployed Bytecode Sourcemap
3587:9226:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11024:115;;;;;;;;;;;;;:::i;:::-;;5582:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6415:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4769:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5859:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6584:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11964:809;;;;;;;;;;;;;:::i;:::-;;11542:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5768:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11147:387;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4878:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5962:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2670:148;;;;;;;;;;;;;:::i;:::-;;4582:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4944:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2456:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4644:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5673:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6089:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4706:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11702:154;;;;;;;;;;;;;:::i;:::-;;5055:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6264:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3850:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11024:115;2593:12;:10;:12::i;:::-;2583:22;;:6;;;;;;;;;;:22;;;2575:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11088:10:::1;;;;;;;;;;;11080:28;;:51;11109:21;11080:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;11024:115::o:0;5582:83::-;5619:13;5652:5;;;;;;;;;;;;;;;;;5645:12;;5582:83;:::o;6415:161::-;6490:4;6507:39;6516:12;:10;:12::i;:::-;6530:7;6539:6;6507:8;:39::i;:::-;6564:4;6557:11;;6415:161;;;;:::o;4769:51::-;;;;:::o;5859:95::-;5912:7;4394:1;4449:2;:13;;;;:::i;:::-;4437:9;:25;;;;:::i;:::-;5932:14;;5859:95;:::o;6584:313::-;6682:4;6699:36;6709:6;6717:9;6728:6;6699:9;:36::i;:::-;6746:121;6755:6;6763:12;:10;:12::i;:::-;6777:89;6815:6;6777:89;;;;;;;;;;;;;;;;;:11;:19;6789:6;6777:19;;;;;;;;;;;;;;;:33;6797:12;:10;:12::i;:::-;6777:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6746:8;:121::i;:::-;6885:4;6878:11;;6584:313;;;;;:::o;11964:809::-;2593:12;:10;:12::i;:::-;2583:22;;:6;;;;;;;;;;:22;;;2575:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12029:11:::1;;;;;;;;;;;12028:12;12020:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;12115:42;12078:15;;:80;;;;;;;;;;;;;;;;;;12169:58;12186:4;12201:15;;;;;;;;;;;4394:1;4449:2;:13;;;;:::i;:::-;4437:9;:25;;;;:::i;:::-;12169:8;:58::i;:::-;12272:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12254:55;;;12318:4;12325:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12254:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12238:13;;:110;;;;;;;;;;;;;;;;;;12396:4;12359:10;:34;12378:13;;;;;;;;;;;12359:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;12445:4;12411:7;:31;12427:13;;;;;;;;;;;12411:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;12460:15;;;;;;;;;;;:31;;;12499:21;12530:4;12536:24;12554:4;12536:9;:24::i;:::-;12561:1;12563::::0;12565:7:::1;:5;:7::i;:::-;12573:15;12460:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12607:13;;;;;;;;;;;12600:29;;;12638:15;;;;;;;;;;;12656:14;12600:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12696:4;12682:11;;:18;;;;;;;;;;;;;;;;;;12725:4;12711:11;;:18;;;;;;;;;;;;;;;;;;12753:12;12740:10;:25;;;;11964:809::o:0;11542:152::-;2593:12;:10;:12::i;:::-;2583:22;;:6;;;;;;;;;;:22;;;2575:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11645:10:::1;11638:27;;;11666:10;;;;;;;;;;;11678:7;11638:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11542:152:::0;;:::o;5768:83::-;5809:5;4394:1;5827:16;;5768:83;:::o;11147:387::-;2593:12;:10;:12::i;:::-;2583:22;;:6;;;;;;;;;;:22;;;2575:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11339:16:::1;11324:12;:31;;;;11382:17;11366:13;:33;;;;11428:11;11410:15;:29;;;;11469:11;11450:16;:30;;;;11512:14;11491:18;:35;;;;11147:387:::0;;;;;:::o;4878:28::-;;;;;;;;;;;;;:::o;5962:119::-;6028:7;6055:9;:18;6065:7;6055:18;;;;;;;;;;;;;;;;6048:25;;5962:119;;;:::o;2670:148::-;2593:12;:10;:12::i;:::-;2583:22;;:6;;;;;;;;;;:22;;;2575:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2777:1:::1;2740:40;;2761:6;::::0;::::1;;;;;;;;2740:40;;;;;;;;;;;;2808:1;2791:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2670:148::o:0;4582:55::-;;;;:::o;4944:31::-;;;;:::o;2456:79::-;2494:7;2521:6;;;;;;;;;;;2514:13;;2456:79;:::o;4644:55::-;;;;:::o;5673:87::-;5712:13;5745:7;;;;;;;;;;;;;;;;;5738:14;;5673:87;:::o;6089:167::-;6167:4;6184:42;6194:12;:10;:12::i;:::-;6208:9;6219:6;6184:9;:42::i;:::-;6244:4;6237:11;;6089:167;;;;:::o;4706:56::-;;;;:::o;11702:154::-;2593:12;:10;:12::i;:::-;2583:22;;:6;;;;;;;;;;:22;;;2575:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4394:1:::1;4449:2;:13;;;;:::i;:::-;4437:9;:25;;;;:::i;:::-;11750:12;:22;;;;4394:1;4449:2;:13;;;;:::i;:::-;4437:9;:25;;;;:::i;:::-;11783:14;:22;;;;11821:27;4394:1;4449:2;:13;;;;:::i;:::-;4437:9;:25;;;;:::i;:::-;11821:27;;;;;;:::i;:::-;;;;;;;;11702:154::o:0;5055:26::-;;;;;;;;;;;;;:::o;6264:143::-;6345:7;6372:11;:18;6384:5;6372:18;;;;;;;;;;;;;;;:27;6391:7;6372:27;;;;;;;;;;;;;;;;6365:34;;6264:143;;;;:::o;3850:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;211:98::-;264:7;291:10;284:17;;211:98;:::o;6905:335::-;7015:1;6998:19;;:5;:19;;;6990:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7096:1;7077:21;;:7;:21;;;7069:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7178:6;7148:11;:18;7160:5;7148:18;;;;;;;;;;;;;;;:27;7167:7;7148:27;;;;;;;;;;;;;;;:36;;;;7216:7;7200:32;;7209:5;7200:32;;;7225:6;7200:32;;;;;;:::i;:::-;;;;;;;;6905:335;;;:::o;7248:2966::-;7352:1;7336:18;;:4;:18;;;7328:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7429:1;7415:16;;:2;:16;;;7407:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7499:1;7490:6;:10;7482:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7557:17;7601:7;:5;:7::i;:::-;7593:15;;:4;:15;;;;:32;;;;;7618:7;:5;:7::i;:::-;7612:13;;:2;:13;;;;7593:32;7589:2269;;;7654:77;7727:3;7654:68;7677:15;;7666:9;;:26;7665:56;;7709:12;;7665:56;;;7695:12;;7665:56;7654:6;:10;;:68;;;;:::i;:::-;:72;;:77;;;;:::i;:::-;7642:89;;7752:10;:16;7763:4;7752:16;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;7786:15;;;;;;;;;;;7772:30;;:2;:30;;;;7752:50;:67;;;;;7808:7;:11;7816:2;7808:11;;;;;;;;;;;;;;;;;;;;;;;;;7806:13;7752:67;7748:420;;;7859:12;;7849:6;:22;;7841:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7954:14;;7944:6;7928:13;7938:2;7928:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7920:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8042:12;8037:1;8024:10;;:14;;;;:::i;:::-;:30;8020:103;;;8088:14;8099:2;8088:10;:14::i;:::-;8087:15;8079:24;;;;;;8020:103;8141:9;;:11;;;;;;;;;:::i;:::-;;;;;;7748:420;8189:10;:14;8200:2;8189:14;;;;;;;;;;;;;;;;;;;;;;;;;8188:15;:32;;;;;8209:7;:11;8217:2;8209:11;;;;;;;;;;;;;;;;;;;;;;;;;8207:13;8188:32;8184:152;;;8275:14;;8265:6;8249:13;8259:2;8249:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8241:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8184:152;8355:10;:14;8366:2;8355:14;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;;;8388:4;8373:20;;:4;:20;;;;8355:38;8352:170;;;8426:80;8502:3;8426:71;8449:16;;8438:9;;:27;8437:59;;8483:13;;8437:59;;;8468:13;;8437:59;8426:6;:10;;:71;;;;:::i;:::-;:75;;:80;;;;:::i;:::-;8414:92;;8352:170;8536:10;:16;8547:4;8536:16;;;;;;;;;;;;;;;;;;;;;;;;;8535:17;:36;;;;;8557:10;:14;8568:2;8557:14;;;;;;;;;;;;;;;;;;;;;;;;;8556:15;8535:36;:60;;;;;8590:4;8575:20;;:4;:20;;;;8535:60;8531:115;;;8629:1;8617:13;;8531:115;8662:28;8693:24;8711:4;8693:9;:24::i;:::-;8662:55;;8736:7;;;;;;;;;;;:18;;;;;8748:6;;;;;;;;;;;8747:7;8736:18;:36;;;;;8758:10;:14;8769:2;8758:14;;;;;;;;;;;;;;;;;;;;;;;;;8736:36;:51;;;;;8776:11;;;;;;;;;;;8736:51;:93;;;;;8812:17;;8791:20;:38;8736:93;:125;;;;;8843:18;;8833:9;;:28;8736:125;8732:1115;;;8901:13;;8886:12;:28;8882:90;;;8951:1;8939:9;:13;;;;8882:90;9010:12;;8998:9;;:24;8990:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;9061:67;9078:49;9082:6;9089:37;9093:20;9114:11;;9089:3;:37::i;:::-;9078:3;:49::i;:::-;9061:16;:67::i;:::-;9147:26;9176:21;9147:50;;9240:1;9219:18;:22;9216:105;;;9266:35;9279:21;9266:12;:35::i;:::-;9216:105;9339:9;;:11;;;;;;;;;:::i;:::-;;;;;;9385:12;9369:13;:28;;;;8863:550;8732:1115;;;9438:6;;;;;;;;;;;9437:7;:25;;;;;9448:10;:14;9459:2;9448:14;;;;;;;;;;;;;;;;;;;;;;;;;9437:25;:40;;;;;9466:11;;;;;;;;;;;9437:40;:82;;;;;9502:17;;9481:20;:38;9437:82;:114;;;;;9533:18;;9523:9;;:28;9437:114;9434:413;;;9572:67;9589:49;9593:6;9600:37;9604:20;9625:11;;9600:3;:37::i;:::-;9589:3;:49::i;:::-;9572:16;:67::i;:::-;9658:26;9687:21;9658:50;;9751:1;9730:18;:22;9727:105;;;9777:35;9790:21;9777:12;:35::i;:::-;9727:105;9553:294;9434:413;8732:1115;7627:2231;7589:2269;9883:1;9873:9;:11;9870:161;;;9923:39;9952:9;9923;:24;9941:4;9923:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9898:9;:24;9916:4;9898:24;;;;;;;;;;;;;;;:64;;;;10003:4;9980:39;;9989:4;9980:39;;;10009:9;9980:39;;;;;;:::i;:::-;;;;;;;;9870:161;10057:27;10077:6;10057:9;:15;10067:4;10057:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10041:9;:15;10051:4;10041:15;;;;;;;;;;;;;;;:43;;;;10109:40;10127:21;10138:9;10127:6;:10;;:21;;;;:::i;:::-;10109:9;:13;10119:2;10109:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10095:9;:13;10105:2;10095:13;;;;;;;;;;;;;;;:54;;;;10180:2;10165:41;;10174:4;10165:41;;;10184:21;10195:9;10184:6;:10;;:21;;;;:::i;:::-;10165:41;;;;;;:::i;:::-;;;;;;;;7317:2897;7248:2966;;;:::o;1348:190::-;1434:7;1467:1;1462;:6;;1470:12;1454:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1494:9;1510:1;1506;:5;;;;:::i;:::-;1494:17;;1529:1;1522:8;;;1348:190;;;;;:::o;1546:246::-;1604:7;1633:1;1628;:6;1624:47;;1658:1;1651:8;;;;1624:47;1681:9;1697:1;1693;:5;;;;:::i;:::-;1681:17;;1726:1;1721;1717;:5;;;;:::i;:::-;:10;1709:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1783:1;1776:8;;;1546:246;;;;;:::o;1800:132::-;1858:7;1885:39;1889:1;1892;1885:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1878:46;;1800:132;;;;:::o;10330:195::-;10389:4;10406:12;10473:7;10461:20;10453:28;;10516:1;10509:4;:8;10502:15;;;10330:195;;;:::o;10224:98::-;10281:7;10308:1;10306;:3;10305:9;;10313:1;10305:9;;;10311:1;10305:9;10298:16;;10224:98;;;;:::o;10533:483::-;5181:4;5172:6;;:13;;;;;;;;;;;;;;;;;;10611:21:::1;10649:1;10635:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10611:40;;10680:4;10662;10667:1;10662:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10706:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10696:4;10701:1;10696:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10739:62;10756:4;10771:15;;;;;;;;;;;10789:11;10739:8;:62::i;:::-;10812:15;;;;;;;;;;;:66;;;10893:11;10919:1;10935:4;10962;10982:15;10812:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10600:416;5217:5:::0;5208:6;;:14;;;;;;;;;;;;;;;;;;10533:483;:::o;11864:92::-;11921:10;;;;;;;;;;;:19;;:27;11941:6;11921:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11864:92;:::o;1017:179::-;1075:7;1095:9;1111:1;1107;:5;;;;:::i;:::-;1095:17;;1136:1;1131;:6;;1123:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1187:1;1180:8;;;1017:179;;;;:::o;1204:136::-;1262:7;1289:43;1293:1;1296;1289:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1282:50;;1204:136;;;;:::o;1940:189::-;2026:7;2058:1;2054;:5;2061:12;2046:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2085:9;2101:1;2097;:5;;;;:::i;:::-;2085:17;;2120:1;2113:8;;;1940:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:911::-;4841:6;4849;4857;4865;4873;4922:3;4910:9;4901:7;4897:23;4893:33;4890:120;;;4929:79;;:::i;:::-;4890:120;5049:1;5074:53;5119:7;5110:6;5099:9;5095:22;5074:53;:::i;:::-;5064:63;;5020:117;5176:2;5202:53;5247:7;5238:6;5227:9;5223:22;5202:53;:::i;:::-;5192:63;;5147:118;5304:2;5330:53;5375:7;5366:6;5355:9;5351:22;5330:53;:::i;:::-;5320:63;;5275:118;5432:2;5458:53;5503:7;5494:6;5483:9;5479:22;5458:53;:::i;:::-;5448:63;;5403:118;5560:3;5587:53;5632:7;5623:6;5612:9;5608:22;5587:53;:::i;:::-;5577:63;;5531:119;4746:911;;;;;;;;:::o;5663:118::-;5750:24;5768:5;5750:24;:::i;:::-;5745:3;5738:37;5663:118;;:::o;5787:222::-;5880:4;5918:2;5907:9;5903:18;5895:26;;5931:71;5999:1;5988:9;5984:17;5975:6;5931:71;:::i;:::-;5787:222;;;;:::o;6015:329::-;6074:6;6123:2;6111:9;6102:7;6098:23;6094:32;6091:119;;;6129:79;;:::i;:::-;6091:119;6249:1;6274:53;6319:7;6310:6;6299:9;6295:22;6274:53;:::i;:::-;6264:63;;6220:117;6015:329;;;;:::o;6350:474::-;6418:6;6426;6475:2;6463:9;6454:7;6450:23;6446:32;6443:119;;;6481:79;;:::i;:::-;6443:119;6601:1;6626:53;6671:7;6662:6;6651:9;6647:22;6626:53;:::i;:::-;6616:63;;6572:117;6728:2;6754:53;6799:7;6790:6;6779:9;6775:22;6754:53;:::i;:::-;6744:63;;6699:118;6350:474;;;;;:::o;6830:182::-;6970:34;6966:1;6958:6;6954:14;6947:58;6830:182;:::o;7018:366::-;7160:3;7181:67;7245:2;7240:3;7181:67;:::i;:::-;7174:74;;7257:93;7346:3;7257:93;:::i;:::-;7375:2;7370:3;7366:12;7359:19;;7018:366;;;:::o;7390:419::-;7556:4;7594:2;7583:9;7579:18;7571:26;;7643:9;7637:4;7633:20;7629:1;7618:9;7614:17;7607:47;7671:131;7797:4;7671:131;:::i;:::-;7663:139;;7390:419;;;:::o;7815:180::-;7863:77;7860:1;7853:88;7960:4;7957:1;7950:15;7984:4;7981:1;7974:15;8001:102;8043:8;8090:5;8087:1;8083:13;8062:34;;8001:102;;;:::o;8109:848::-;8170:5;8177:4;8201:6;8192:15;;8225:5;8216:14;;8239:712;8260:1;8250:8;8247:15;8239:712;;;8355:4;8350:3;8346:14;8340:4;8337:24;8334:50;;;8364:18;;:::i;:::-;8334:50;8414:1;8404:8;8400:16;8397:451;;;8829:4;8822:5;8818:16;8809:25;;8397:451;8879:4;8873;8869:15;8861:23;;8909:32;8932:8;8909:32;:::i;:::-;8897:44;;8239:712;;;8109:848;;;;;;;:::o;8963:1073::-;9017:5;9208:8;9198:40;;9229:1;9220:10;;9231:5;;9198:40;9257:4;9247:36;;9274:1;9265:10;;9276:5;;9247:36;9343:4;9391:1;9386:27;;;;9427:1;9422:191;;;;9336:277;;9386:27;9404:1;9395:10;;9406:5;;;9422:191;9467:3;9457:8;9454:17;9451:43;;;9474:18;;:::i;:::-;9451:43;9523:8;9520:1;9516:16;9507:25;;9558:3;9551:5;9548:14;9545:40;;;9565:18;;:::i;:::-;9545:40;9598:5;;;9336:277;;9722:2;9712:8;9709:16;9703:3;9697:4;9694:13;9690:36;9672:2;9662:8;9659:16;9654:2;9648:4;9645:12;9641:35;9625:111;9622:246;;;9778:8;9772:4;9768:19;9759:28;;9813:3;9806:5;9803:14;9800:40;;;9820:18;;:::i;:::-;9800:40;9853:5;;9622:246;9893:42;9931:3;9921:8;9915:4;9912:1;9893:42;:::i;:::-;9878:57;;;;9967:4;9962:3;9958:14;9951:5;9948:25;9945:51;;;9976:18;;:::i;:::-;9945:51;10025:4;10018:5;10014:16;10005:25;;8963:1073;;;;;;:::o;10042:281::-;10100:5;10124:23;10142:4;10124:23;:::i;:::-;10116:31;;10168:25;10184:8;10168:25;:::i;:::-;10156:37;;10212:104;10249:66;10239:8;10233:4;10212:104;:::i;:::-;10203:113;;10042:281;;;;:::o;10329:410::-;10369:7;10392:20;10410:1;10392:20;:::i;:::-;10387:25;;10426:20;10444:1;10426:20;:::i;:::-;10421:25;;10481:1;10478;10474:9;10503:30;10521:11;10503:30;:::i;:::-;10492:41;;10682:1;10673:7;10669:15;10666:1;10663:22;10643:1;10636:9;10616:83;10593:139;;10712:18;;:::i;:::-;10593:139;10377:362;10329:410;;;;:::o;10745:173::-;10885:25;10881:1;10873:6;10869:14;10862:49;10745:173;:::o;10924:366::-;11066:3;11087:67;11151:2;11146:3;11087:67;:::i;:::-;11080:74;;11163:93;11252:3;11163:93;:::i;:::-;11281:2;11276:3;11272:12;11265:19;;10924:366;;;:::o;11296:419::-;11462:4;11500:2;11489:9;11485:18;11477:26;;11549:9;11543:4;11539:20;11535:1;11524:9;11520:17;11513:47;11577:131;11703:4;11577:131;:::i;:::-;11569:139;;11296:419;;;:::o;11721:143::-;11778:5;11809:6;11803:13;11794:22;;11825:33;11852:5;11825:33;:::i;:::-;11721:143;;;;:::o;11870:351::-;11940:6;11989:2;11977:9;11968:7;11964:23;11960:32;11957:119;;;11995:79;;:::i;:::-;11957:119;12115:1;12140:64;12196:7;12187:6;12176:9;12172:22;12140:64;:::i;:::-;12130:74;;12086:128;11870:351;;;;:::o;12227:332::-;12348:4;12386:2;12375:9;12371:18;12363:26;;12399:71;12467:1;12456:9;12452:17;12443:6;12399:71;:::i;:::-;12480:72;12548:2;12537:9;12533:18;12524:6;12480:72;:::i;:::-;12227:332;;;;;:::o;12565:85::-;12610:7;12639:5;12628:16;;12565:85;;;:::o;12656:60::-;12684:3;12705:5;12698:12;;12656:60;;;:::o;12722:158::-;12780:9;12813:61;12831:42;12840:32;12866:5;12840:32;:::i;:::-;12831:42;:::i;:::-;12813:61;:::i;:::-;12800:74;;12722:158;;;:::o;12886:147::-;12981:45;13020:5;12981:45;:::i;:::-;12976:3;12969:58;12886:147;;:::o;13039:807::-;13288:4;13326:3;13315:9;13311:19;13303:27;;13340:71;13408:1;13397:9;13393:17;13384:6;13340:71;:::i;:::-;13421:72;13489:2;13478:9;13474:18;13465:6;13421:72;:::i;:::-;13503:80;13579:2;13568:9;13564:18;13555:6;13503:80;:::i;:::-;13593;13669:2;13658:9;13654:18;13645:6;13593:80;:::i;:::-;13683:73;13751:3;13740:9;13736:19;13727:6;13683:73;:::i;:::-;13766;13834:3;13823:9;13819:19;13810:6;13766:73;:::i;:::-;13039:807;;;;;;;;;:::o;13852:143::-;13909:5;13940:6;13934:13;13925:22;;13956:33;13983:5;13956:33;:::i;:::-;13852:143;;;;:::o;14001:663::-;14089:6;14097;14105;14154:2;14142:9;14133:7;14129:23;14125:32;14122:119;;;14160:79;;:::i;:::-;14122:119;14280:1;14305:64;14361:7;14352:6;14341:9;14337:22;14305:64;:::i;:::-;14295:74;;14251:128;14418:2;14444:64;14500:7;14491:6;14480:9;14476:22;14444:64;:::i;:::-;14434:74;;14389:129;14557:2;14583:64;14639:7;14630:6;14619:9;14615:22;14583:64;:::i;:::-;14573:74;;14528:129;14001:663;;;;;:::o;14670:332::-;14791:4;14829:2;14818:9;14814:18;14806:26;;14842:71;14910:1;14899:9;14895:17;14886:6;14842:71;:::i;:::-;14923:72;14991:2;14980:9;14976:18;14967:6;14923:72;:::i;:::-;14670:332;;;;;:::o;15008:116::-;15078:21;15093:5;15078:21;:::i;:::-;15071:5;15068:32;15058:60;;15114:1;15111;15104:12;15058:60;15008:116;:::o;15130:137::-;15184:5;15215:6;15209:13;15200:22;;15231:30;15255:5;15231:30;:::i;:::-;15130:137;;;;:::o;15273:345::-;15340:6;15389:2;15377:9;15368:7;15364:23;15360:32;15357:119;;;15395:79;;:::i;:::-;15357:119;15515:1;15540:61;15593:7;15584:6;15573:9;15569:22;15540:61;:::i;:::-;15530:71;;15486:125;15273:345;;;;:::o;15624:142::-;15674:9;15707:53;15725:34;15734:24;15752:5;15734:24;:::i;:::-;15725:34;:::i;:::-;15707:53;:::i;:::-;15694:66;;15624:142;;;:::o;15772:126::-;15822:9;15855:37;15886:5;15855:37;:::i;:::-;15842:50;;15772:126;;;:::o;15904:134::-;15962:9;15995:37;16026:5;15995:37;:::i;:::-;15982:50;;15904:134;;;:::o;16044:147::-;16139:45;16178:5;16139:45;:::i;:::-;16134:3;16127:58;16044:147;;:::o;16197:348::-;16326:4;16364:2;16353:9;16349:18;16341:26;;16377:79;16453:1;16442:9;16438:17;16429:6;16377:79;:::i;:::-;16466:72;16534:2;16523:9;16519:18;16510:6;16466:72;:::i;:::-;16197:348;;;;;:::o;16551:223::-;16691:34;16687:1;16679:6;16675:14;16668:58;16760:6;16755:2;16747:6;16743:15;16736:31;16551:223;:::o;16780:366::-;16922:3;16943:67;17007:2;17002:3;16943:67;:::i;:::-;16936:74;;17019:93;17108:3;17019:93;:::i;:::-;17137:2;17132:3;17128:12;17121:19;;16780:366;;;:::o;17152:419::-;17318:4;17356:2;17345:9;17341:18;17333:26;;17405:9;17399:4;17395:20;17391:1;17380:9;17376:17;17369:47;17433:131;17559:4;17433:131;:::i;:::-;17425:139;;17152:419;;;:::o;17577:221::-;17717:34;17713:1;17705:6;17701:14;17694:58;17786:4;17781:2;17773:6;17769:15;17762:29;17577:221;:::o;17804:366::-;17946:3;17967:67;18031:2;18026:3;17967:67;:::i;:::-;17960:74;;18043:93;18132:3;18043:93;:::i;:::-;18161:2;18156:3;18152:12;18145:19;;17804:366;;;:::o;18176:419::-;18342:4;18380:2;18369:9;18365:18;18357:26;;18429:9;18423:4;18419:20;18415:1;18404:9;18400:17;18393:47;18457:131;18583:4;18457:131;:::i;:::-;18449:139;;18176:419;;;:::o;18601:224::-;18741:34;18737:1;18729:6;18725:14;18718:58;18810:7;18805:2;18797:6;18793:15;18786:32;18601:224;:::o;18831:366::-;18973:3;18994:67;19058:2;19053:3;18994:67;:::i;:::-;18987:74;;19070:93;19159:3;19070:93;:::i;:::-;19188:2;19183:3;19179:12;19172:19;;18831:366;;;:::o;19203:419::-;19369:4;19407:2;19396:9;19392:18;19384:26;;19456:9;19450:4;19446:20;19442:1;19431:9;19427:17;19420:47;19484:131;19610:4;19484:131;:::i;:::-;19476:139;;19203:419;;;:::o;19628:222::-;19768:34;19764:1;19756:6;19752:14;19745:58;19837:5;19832:2;19824:6;19820:15;19813:30;19628:222;:::o;19856:366::-;19998:3;20019:67;20083:2;20078:3;20019:67;:::i;:::-;20012:74;;20095:93;20184:3;20095:93;:::i;:::-;20213:2;20208:3;20204:12;20197:19;;19856:366;;;:::o;20228:419::-;20394:4;20432:2;20421:9;20417:18;20409:26;;20481:9;20475:4;20471:20;20467:1;20456:9;20452:17;20445:47;20509:131;20635:4;20509:131;:::i;:::-;20501:139;;20228:419;;;:::o;20653:228::-;20793:34;20789:1;20781:6;20777:14;20770:58;20862:11;20857:2;20849:6;20845:15;20838:36;20653:228;:::o;20887:366::-;21029:3;21050:67;21114:2;21109:3;21050:67;:::i;:::-;21043:74;;21126:93;21215:3;21126:93;:::i;:::-;21244:2;21239:3;21235:12;21228:19;;20887:366;;;:::o;21259:419::-;21425:4;21463:2;21452:9;21448:18;21440:26;;21512:9;21506:4;21502:20;21498:1;21487:9;21483:17;21476:47;21540:131;21666:4;21540:131;:::i;:::-;21532:139;;21259:419;;;:::o;21684:175::-;21824:27;21820:1;21812:6;21808:14;21801:51;21684:175;:::o;21865:366::-;22007:3;22028:67;22092:2;22087:3;22028:67;:::i;:::-;22021:74;;22104:93;22193:3;22104:93;:::i;:::-;22222:2;22217:3;22213:12;22206:19;;21865:366;;;:::o;22237:419::-;22403:4;22441:2;22430:9;22426:18;22418:26;;22490:9;22484:4;22480:20;22476:1;22465:9;22461:17;22454:47;22518:131;22644:4;22518:131;:::i;:::-;22510:139;;22237:419;;;:::o;22662:191::-;22702:3;22721:20;22739:1;22721:20;:::i;:::-;22716:25;;22755:20;22773:1;22755:20;:::i;:::-;22750:25;;22798:1;22795;22791:9;22784:16;;22819:3;22816:1;22813:10;22810:36;;;22826:18;;:::i;:::-;22810:36;22662:191;;;;:::o;22859:176::-;22999:28;22995:1;22987:6;22983:14;22976:52;22859:176;:::o;23041:366::-;23183:3;23204:67;23268:2;23263:3;23204:67;:::i;:::-;23197:74;;23280:93;23369:3;23280:93;:::i;:::-;23398:2;23393:3;23389:12;23382:19;;23041:366;;;:::o;23413:419::-;23579:4;23617:2;23606:9;23602:18;23594:26;;23666:9;23660:4;23656:20;23652:1;23641:9;23637:17;23630:47;23694:131;23820:4;23694:131;:::i;:::-;23686:139;;23413:419;;;:::o;23838:233::-;23877:3;23900:24;23918:5;23900:24;:::i;:::-;23891:33;;23946:66;23939:5;23936:77;23933:103;;24016:18;;:::i;:::-;23933:103;24063:1;24056:5;24052:13;24045:20;;23838:233;;;:::o;24077:165::-;24217:17;24213:1;24205:6;24201:14;24194:41;24077:165;:::o;24248:366::-;24390:3;24411:67;24475:2;24470:3;24411:67;:::i;:::-;24404:74;;24487:93;24576:3;24487:93;:::i;:::-;24605:2;24600:3;24596:12;24589:19;;24248:366;;;:::o;24620:419::-;24786:4;24824:2;24813:9;24809:18;24801:26;;24873:9;24867:4;24863:20;24859:1;24848:9;24844:17;24837:47;24901:131;25027:4;24901:131;:::i;:::-;24893:139;;24620:419;;;:::o;25045:194::-;25085:4;25105:20;25123:1;25105:20;:::i;:::-;25100:25;;25139:20;25157:1;25139:20;:::i;:::-;25134:25;;25183:1;25180;25176:9;25168:17;;25207:1;25201:4;25198:11;25195:37;;;25212:18;;:::i;:::-;25195:37;25045:194;;;;:::o;25245:180::-;25293:77;25290:1;25283:88;25390:4;25387:1;25380:15;25414:4;25411:1;25404:15;25431:185;25471:1;25488:20;25506:1;25488:20;:::i;:::-;25483:25;;25522:20;25540:1;25522:20;:::i;:::-;25517:25;;25561:1;25551:35;;25566:18;;:::i;:::-;25551:35;25608:1;25605;25601:9;25596:14;;25431:185;;;;:::o;25622:220::-;25762:34;25758:1;25750:6;25746:14;25739:58;25831:3;25826:2;25818:6;25814:15;25807:28;25622:220;:::o;25848:366::-;25990:3;26011:67;26075:2;26070:3;26011:67;:::i;:::-;26004:74;;26087:93;26176:3;26087:93;:::i;:::-;26205:2;26200:3;26196:12;26189:19;;25848:366;;;:::o;26220:419::-;26386:4;26424:2;26413:9;26409:18;26401:26;;26473:9;26467:4;26463:20;26459:1;26448:9;26444:17;26437:47;26501:131;26627:4;26501:131;:::i;:::-;26493:139;;26220:419;;;:::o;26645:180::-;26693:77;26690:1;26683:88;26790:4;26787:1;26780:15;26814:4;26811:1;26804:15;26831:180;26879:77;26876:1;26869:88;26976:4;26973:1;26966:15;27000:4;26997:1;26990:15;27017:114;27084:6;27118:5;27112:12;27102:22;;27017:114;;;:::o;27137:184::-;27236:11;27270:6;27265:3;27258:19;27310:4;27305:3;27301:14;27286:29;;27137:184;;;;:::o;27327:132::-;27394:4;27417:3;27409:11;;27447:4;27442:3;27438:14;27430:22;;27327:132;;;:::o;27465:108::-;27542:24;27560:5;27542:24;:::i;:::-;27537:3;27530:37;27465:108;;:::o;27579:179::-;27648:10;27669:46;27711:3;27703:6;27669:46;:::i;:::-;27747:4;27742:3;27738:14;27724:28;;27579:179;;;;:::o;27764:113::-;27834:4;27866;27861:3;27857:14;27849:22;;27764:113;;;:::o;27913:732::-;28032:3;28061:54;28109:5;28061:54;:::i;:::-;28131:86;28210:6;28205:3;28131:86;:::i;:::-;28124:93;;28241:56;28291:5;28241:56;:::i;:::-;28320:7;28351:1;28336:284;28361:6;28358:1;28355:13;28336:284;;;28437:6;28431:13;28464:63;28523:3;28508:13;28464:63;:::i;:::-;28457:70;;28550:60;28603:6;28550:60;:::i;:::-;28540:70;;28396:224;28383:1;28380;28376:9;28371:14;;28336:284;;;28340:14;28636:3;28629:10;;28037:608;;;27913:732;;;;:::o;28651:831::-;28914:4;28952:3;28941:9;28937:19;28929:27;;28966:71;29034:1;29023:9;29019:17;29010:6;28966:71;:::i;:::-;29047:80;29123:2;29112:9;29108:18;29099:6;29047:80;:::i;:::-;29174:9;29168:4;29164:20;29159:2;29148:9;29144:18;29137:48;29202:108;29305:4;29296:6;29202:108;:::i;:::-;29194:116;;29320:72;29388:2;29377:9;29373:18;29364:6;29320:72;:::i;:::-;29402:73;29470:3;29459:9;29455:19;29446:6;29402:73;:::i;:::-;28651:831;;;;;;;;:::o;29488:177::-;29628:29;29624:1;29616:6;29612:14;29605:53;29488:177;:::o;29671:366::-;29813:3;29834:67;29898:2;29893:3;29834:67;:::i;:::-;29827:74;;29910:93;29999:3;29910:93;:::i;:::-;30028:2;30023:3;30019:12;30012:19;;29671:366;;;:::o;30043:419::-;30209:4;30247:2;30236:9;30232:18;30224:26;;30296:9;30290:4;30286:20;30282:1;30271:9;30267:17;30260:47;30324:131;30450:4;30324:131;:::i;:::-;30316:139;;30043:419;;;:::o
Swarm Source
ipfs://151ac8ee7dfee2f64a4d5675dc3d0891070fe79d7f2a42a0f2cf57382d70e35a
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.