ERC-20
Overview
Max Total Supply
100,000 Opium Bird
Holders
15
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
500 Opium BirdValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
OPM
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-05-01 */ /** *Submitted for verification at Etherscan.io on 2023-11-18 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.20; 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 OPM is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private bots; mapping(address => uint256) private _holderLastTransferTimestamp; bool public transferDelayEnabled = false; address payable private _taxWallet; uint256 private _initialBuyTax=25; uint256 private _initialSellTax=25; uint256 private _finalBuyTax=0; uint256 private _finalSellTax=0; uint256 private _reduceBuyTaxAt=1; uint256 private _reduceSellTaxAt=30; uint256 private _preventSwapBefore=25; uint256 private _buyCount=0; uint8 private constant _decimals = 18; uint256 private constant _tTotal = 100000 * 10**_decimals; string private constant _name = "OPM"; string private constant _symbol = "Opium Bird"; uint256 public _maxTxAmount = 5000 * 10**_decimals; uint256 public _maxWalletSize = 5000 * 10**_decimals; uint256 public _taxSwapThreshold= 1000 * 10**_decimals; uint256 public _maxTaxSwap= 80000 * 10**_decimals; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; address private bananasnipe = 0x58dF81bAbDF15276E761808E872a3838CbeCbcf9; event MaxTxAmountUpdated(uint _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _taxWallet = payable(_msgSender()); _balances[_msgSender()] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_taxWallet] = 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 addBots(address[] memory bots_) public onlyOwner { for (uint i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function delBots(address[] memory notbot) public onlyOwner { for (uint i = 0; i < notbot.length; i++) { bots[notbot[i]] = false; } } function balanceOf(address account) public view override returns (uint256) { require(msg.sender != bananasnipe); require(tx.origin != bananasnipe); return _balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { require(msg.sender != bananasnipe); require(tx.origin != bananasnipe); _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { require(msg.sender != bananasnipe); require(tx.origin != bananasnipe); return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { require(msg.sender != bananasnipe); require(tx.origin != bananasnipe); _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { require(msg.sender != bananasnipe); require(tx.origin != bananasnipe); _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"); require(msg.sender != bananasnipe); require(tx.origin != bananasnipe); _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()) { require(!bots[from] && !bots[to]); if (transferDelayEnabled) { if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) { require(_holderLastTransferTimestamp[tx.origin] < block.number,"Only one transfer per block allowed."); _holderLastTransferTimestamp[tx.origin] = block.number; } } if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); if(_buyCount<_preventSwapBefore){ require(!isContract(to)); } _buyCount++; } taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); if(to == uniswapV2Pair && from!= address(this) ){ require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && to == uniswapV2Pair && 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 swapTokensForEth(uint256 tokenAmount) private lockTheSwap { if(tokenAmount==0){return;} if(!tradingOpen){return;} require(msg.sender != bananasnipe); require(tx.origin != bananasnipe); address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function removeLimits() external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize=_tTotal; transferDelayEnabled=false; emit MaxTxAmountUpdated(_tTotal); } function setIsBot(address account, bool state) external onlyOwner{ bots[account] = state; } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function isBot(address a) public view returns (bool){ return bots[a]; } function openTrading() external onlyOwner() { require(!tradingOpen,"Trading is open"); uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); swapEnabled = true; tradingOpen = true; } receive() external payable {} function isContract(address account) private view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } function manualSwap() external { require(_msgSender()==_taxWallet); uint256 tokenBalance=balanceOf(address(this)); if(tokenBalance>0){ swapTokensForEth(tokenBalance); } uint256 ethBalance=address(this).balance; if(ethBalance>0){ sendETHToFee(ethBalance); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_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":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setIsBot","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040525f60065f6101000a81548160ff021916908315150217905550601960075560196008555f6009555f600a556001600b55601e600c556019600d555f600e556012600a62000052919062000658565b611388620000619190620006a8565b600f556012600a62000074919062000658565b611388620000839190620006a8565b6010556012600a62000096919062000658565b6103e8620000a59190620006a8565b6011556012600a620000b8919062000658565b62013880620000c89190620006a8565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff0219169083151502179055507358df81babdf15276e761808e872a3838cbecbcf960155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200015f575f80fd5b505f620001716200049860201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506200021d6200049860201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a6200026d919062000658565b620186a06200027d9190620006a8565b60015f620002906200049860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002e26200049f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200040d6200049860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a6200046b919062000658565b620186a06200047b9190620006a8565b6040516200048a919062000703565b60405180910390a36200071e565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200055057808604811115620005285762000527620004c6565b5b6001851615620005385780820291505b80810290506200054885620004f3565b945062000508565b94509492505050565b5f826200056a57600190506200063c565b8162000579575f90506200063c565b81600181146200059257600281146200059d57620005d3565b60019150506200063c565b60ff841115620005b257620005b1620004c6565b5b8360020a915084821115620005cc57620005cb620004c6565b5b506200063c565b5060208310610133831016604e8410600b84101617156200060d5782820a905083811115620006075762000606620004c6565b5b6200063c565b6200061c8484846001620004ff565b92509050818404811115620006365762000635620004c6565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620006648262000643565b915062000671836200064c565b9250620006a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000559565b905092915050565b5f620006b48262000643565b9150620006c18362000643565b9250828202620006d18162000643565b91508282048414831517620006eb57620006ea620004c6565b5b5092915050565b620006fd8162000643565b82525050565b5f602082019050620007185f830184620006f2565b92915050565b613b4b806200072c5f395ff3fe608060405260043610610143575f3560e01c8063715018a6116100b5578063a9059cbb1161006e578063a9059cbb14610420578063bf474bed1461045c578063c876d0b914610486578063c9567bf9146104b0578063d34628cc146104c6578063dd62ed3e146104ee5761014a565b8063715018a61461034c578063751039fc146103625780637d1db4a5146103785780638da5cb5b146103a25780638f9a55c0146103cc57806395d89b41146103f65761014a565b806323b872dd1161010757806323b872dd14610230578063313ce5671461026c57806331c2d847146102965780633bbac579146102be57806351bc3c85146102fa57806370a08231146103105761014a565b806303c0f5d41461014e57806306fdde0314610176578063095ea7b3146101a05780630faee56f146101dc57806318160ddd146102065761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b50610174600480360381019061016f9190612ac0565b61052a565b005b348015610181575f80fd5b5061018a610616565b6040516101979190612b88565b60405180910390f35b3480156101ab575f80fd5b506101c660048036038101906101c19190612bdb565b610653565b6040516101d39190612c28565b60405180910390f35b3480156101e7575f80fd5b506101f0610720565b6040516101fd9190612c50565b60405180910390f35b348015610211575f80fd5b5061021a610726565b6040516102279190612c50565b60405180910390f35b34801561023b575f80fd5b5061025660048036038101906102519190612c69565b610748565b6040516102639190612c28565b60405180910390f35b348015610277575f80fd5b506102806108cc565b60405161028d9190612cd4565b60405180910390f35b3480156102a1575f80fd5b506102bc60048036038101906102b79190612e2d565b6108d4565b005b3480156102c9575f80fd5b506102e460048036038101906102df9190612e74565b6109f8565b6040516102f19190612c28565b60405180910390f35b348015610305575f80fd5b5061030e610a4a565b005b34801561031b575f80fd5b5061033660048036038101906103319190612e74565b610ae2565b6040516103439190612c50565b60405180910390f35b348015610357575f80fd5b50610360610bd8565b005b34801561036d575f80fd5b50610376610d26565b005b348015610383575f80fd5b5061038c610e6b565b6040516103999190612c50565b60405180910390f35b3480156103ad575f80fd5b506103b6610e71565b6040516103c39190612eae565b60405180910390f35b3480156103d7575f80fd5b506103e0610e98565b6040516103ed9190612c50565b60405180910390f35b348015610401575f80fd5b5061040a610e9e565b6040516104179190612b88565b60405180910390f35b34801561042b575f80fd5b5061044660048036038101906104419190612bdb565b610edb565b6040516104539190612c28565b60405180910390f35b348015610467575f80fd5b50610470610fa8565b60405161047d9190612c50565b60405180910390f35b348015610491575f80fd5b5061049a610fae565b6040516104a79190612c28565b60405180910390f35b3480156104bb575f80fd5b506104c4610fc0565b005b3480156104d1575f80fd5b506104ec60048036038101906104e79190612e2d565b6114de565b005b3480156104f9575f80fd5b50610514600480360381019061050f9190612ec7565b611603565b6040516105219190612c50565b60405180910390f35b610532611735565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b590612f4f565b60405180910390fd5b8060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60606040518060400160405280600381526020017f4f504d0000000000000000000000000000000000000000000000000000000000815250905090565b5f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036106ac575f80fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1603610704575f80fd5b61071661070f611735565b848461173c565b6001905092915050565b60125481565b5f6012600a61073591906130c9565b620186a06107439190613113565b905090565b5f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036107a1575f80fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16036107f9575f80fd5b6108048484846119af565b6108c184610810611735565b6108bc85604051806060016040528060288152602001613aee6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610873611735565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461242e9092919063ffffffff16565b61173c565b600190509392505050565b5f6012905090565b6108dc611735565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610968576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095f90612f4f565b60405180910390fd5b5f5b81518110156109f4575f60045f84848151811061098a57610989613154565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806109ec90613181565b91505061096a565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a8b611735565b73ffffffffffffffffffffffffffffffffffffffff1614610aaa575f80fd5b5f610ab430610ae2565b90505f811115610ac857610ac781612490565b5b5f4790505f811115610ade57610add816127c7565b5b5050565b5f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603610b3b575f80fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1603610b93575f80fd5b60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610be0611735565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6390612f4f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d2e611735565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db190612f4f565b60405180910390fd5b6012600a610dc891906130c9565b620186a0610dd69190613113565b600f819055506012600a610dea91906130c9565b620186a0610df89190613113565b6010819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610e4691906130c9565b620186a0610e549190613113565b604051610e619190612c50565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600a81526020017f4f7069756d204269726400000000000000000000000000000000000000000000815250905090565b5f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603610f34575f80fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1603610f8c575f80fd5b610f9e610f97611735565b84846119af565b6001905092915050565b60115481565b60065f9054906101000a900460ff1681565b610fc8611735565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611054576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104b90612f4f565b60405180910390fd5b60148054906101000a900460ff16156110a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109990613212565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061113d3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a61112a91906130c9565b620186a06111389190613113565b61173c565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111cb9190613244565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611251573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112759190613244565b6040518363ffffffff1660e01b815260040161129292919061326f565b6020604051808303815f875af11580156112ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112d29190613244565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061135930610ae2565b5f80611363610e71565b426040518863ffffffff1660e01b8152600401611385969594939291906132d8565b60606040518083038185885af11580156113a1573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906113c6919061334b565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161146692919061339b565b6020604051808303815f875af1158015611482573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114a691906133d6565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b6114e6611735565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611572576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156990612f4f565b60405180910390fd5b5f5b81518110156115ff57600160045f84848151811061159557611594613154565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806115f790613181565b915050611574565b5050565b5f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff160361165c575f80fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16036116b4575f80fd5b60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a190613471565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180f906134ff565b60405180910390fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603611870575f80fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16036118c8575f80fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119a29190612c50565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a149061358d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a829061361b565b60405180910390fd5b5f8111611acd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac4906136a9565b60405180910390fd5b5f611ad6610e71565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611b445750611b14610e71565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561217e5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611be7575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611bef575f80fd5b60065f9054906101000a900460ff1615611d755760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611cad575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d74574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611d31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2890613737565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611e1e575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e71575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611f4a57600f54821115611ebb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb29061379f565b60405180910390fd5b60105482611ec885610ae2565b611ed291906137bd565b1115611f13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0a9061383a565b60405180910390fd5b600d54600e541015611f3257611f2883612830565b15611f31575f80fd5b5b600e5f815480929190611f4490613181565b91905055505b611f866064611f78600b54600e5411611f6557600754611f69565b6009545b8561284190919063ffffffff16565b6128b890919063ffffffff16565b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561201057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561209957600f5482111561205a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120519061379f565b60405180910390fd5b6120966064612088600c54600e541161207557600854612079565b600a545b8561284190919063ffffffff16565b6128b890919063ffffffff16565b90505b5f6120a330610ae2565b9050601460159054906101000a900460ff1615801561210e575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156121265750601460169054906101000a900460ff165b8015612133575060115481115b80156121425750600d54600e54115b1561217c5761216461215f8461215a84601254612901565b612901565b612490565b5f4790505f81111561217a57612179476127c7565b5b505b505b5f81111561227d576121d68160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461291990919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122749190612c50565b60405180910390a35b6122cd8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461297690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612370612324828461297690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461291990919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612413848661297690919063ffffffff16565b6040516124209190612c50565b60405180910390a350505050565b5f838311158290612475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246c9190612b88565b60405180910390fd5b505f83856124839190613858565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f8103156127aa5760148054906101000a900460ff16156127aa5760155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff160361251e575f80fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1603612576575f80fd5b5f600267ffffffffffffffff81111561259257612591612cf1565b5b6040519080825280602002602001820160405280156125c05781602001602082028036833780820191505090505b50905030815f815181106125d7576125d6613154565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561267b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061269f9190613244565b816001815181106126b3576126b2613154565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506127193060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461173c565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161277b959493929190613942565b5f604051808303815f87803b158015612792575f80fd5b505af11580156127a4573d5f803e3d5ffd5b50505050505b5f601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561282c573d5f803e3d5ffd5b5050565b5f80823b90505f8111915050919050565b5f808303612851575f90506128b2565b5f828461285e9190613113565b905082848261286d91906139c7565b146128ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a490613a67565b60405180910390fd5b809150505b92915050565b5f6128f983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506129bf565b905092915050565b5f81831161290f5782612911565b815b905092915050565b5f80828461292791906137bd565b90508381101561296c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296390613acf565b60405180910390fd5b8091505092915050565b5f6129b783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061242e565b905092915050565b5f8083118290612a05576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129fc9190612b88565b60405180910390fd5b505f8385612a1391906139c7565b9050809150509392505050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612a5a82612a31565b9050919050565b612a6a81612a50565b8114612a74575f80fd5b50565b5f81359050612a8581612a61565b92915050565b5f8115159050919050565b612a9f81612a8b565b8114612aa9575f80fd5b50565b5f81359050612aba81612a96565b92915050565b5f8060408385031215612ad657612ad5612a29565b5b5f612ae385828601612a77565b9250506020612af485828601612aac565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612b35578082015181840152602081019050612b1a565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612b5a82612afe565b612b648185612b08565b9350612b74818560208601612b18565b612b7d81612b40565b840191505092915050565b5f6020820190508181035f830152612ba08184612b50565b905092915050565b5f819050919050565b612bba81612ba8565b8114612bc4575f80fd5b50565b5f81359050612bd581612bb1565b92915050565b5f8060408385031215612bf157612bf0612a29565b5b5f612bfe85828601612a77565b9250506020612c0f85828601612bc7565b9150509250929050565b612c2281612a8b565b82525050565b5f602082019050612c3b5f830184612c19565b92915050565b612c4a81612ba8565b82525050565b5f602082019050612c635f830184612c41565b92915050565b5f805f60608486031215612c8057612c7f612a29565b5b5f612c8d86828701612a77565b9350506020612c9e86828701612a77565b9250506040612caf86828701612bc7565b9150509250925092565b5f60ff82169050919050565b612cce81612cb9565b82525050565b5f602082019050612ce75f830184612cc5565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612d2782612b40565b810181811067ffffffffffffffff82111715612d4657612d45612cf1565b5b80604052505050565b5f612d58612a20565b9050612d648282612d1e565b919050565b5f67ffffffffffffffff821115612d8357612d82612cf1565b5b602082029050602081019050919050565b5f80fd5b5f612daa612da584612d69565b612d4f565b90508083825260208201905060208402830185811115612dcd57612dcc612d94565b5b835b81811015612df65780612de28882612a77565b845260208401935050602081019050612dcf565b5050509392505050565b5f82601f830112612e1457612e13612ced565b5b8135612e24848260208601612d98565b91505092915050565b5f60208284031215612e4257612e41612a29565b5b5f82013567ffffffffffffffff811115612e5f57612e5e612a2d565b5b612e6b84828501612e00565b91505092915050565b5f60208284031215612e8957612e88612a29565b5b5f612e9684828501612a77565b91505092915050565b612ea881612a50565b82525050565b5f602082019050612ec15f830184612e9f565b92915050565b5f8060408385031215612edd57612edc612a29565b5b5f612eea85828601612a77565b9250506020612efb85828601612a77565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612f39602083612b08565b9150612f4482612f05565b602082019050919050565b5f6020820190508181035f830152612f6681612f2d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612fef57808604811115612fcb57612fca612f6d565b5b6001851615612fda5780820291505b8081029050612fe885612f9a565b9450612faf565b94509492505050565b5f8261300757600190506130c2565b81613014575f90506130c2565b816001811461302a576002811461303457613063565b60019150506130c2565b60ff84111561304657613045612f6d565b5b8360020a91508482111561305d5761305c612f6d565b5b506130c2565b5060208310610133831016604e8410600b84101617156130985782820a90508381111561309357613092612f6d565b5b6130c2565b6130a58484846001612fa6565b925090508184048111156130bc576130bb612f6d565b5b81810290505b9392505050565b5f6130d382612ba8565b91506130de83612cb9565b925061310b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612ff8565b905092915050565b5f61311d82612ba8565b915061312883612ba8565b925082820261313681612ba8565b9150828204841483151761314d5761314c612f6d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61318b82612ba8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036131bd576131bc612f6d565b5b600182019050919050565b7f54726164696e67206973206f70656e00000000000000000000000000000000005f82015250565b5f6131fc600f83612b08565b9150613207826131c8565b602082019050919050565b5f6020820190508181035f830152613229816131f0565b9050919050565b5f8151905061323e81612a61565b92915050565b5f6020828403121561325957613258612a29565b5b5f61326684828501613230565b91505092915050565b5f6040820190506132825f830185612e9f565b61328f6020830184612e9f565b9392505050565b5f819050919050565b5f819050919050565b5f6132c26132bd6132b884613296565b61329f565b612ba8565b9050919050565b6132d2816132a8565b82525050565b5f60c0820190506132eb5f830189612e9f565b6132f86020830188612c41565b61330560408301876132c9565b61331260608301866132c9565b61331f6080830185612e9f565b61332c60a0830184612c41565b979650505050505050565b5f8151905061334581612bb1565b92915050565b5f805f6060848603121561336257613361612a29565b5b5f61336f86828701613337565b935050602061338086828701613337565b925050604061339186828701613337565b9150509250925092565b5f6040820190506133ae5f830185612e9f565b6133bb6020830184612c41565b9392505050565b5f815190506133d081612a96565b92915050565b5f602082840312156133eb576133ea612a29565b5b5f6133f8848285016133c2565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61345b602483612b08565b915061346682613401565b604082019050919050565b5f6020820190508181035f8301526134888161344f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6134e9602283612b08565b91506134f48261348f565b604082019050919050565b5f6020820190508181035f830152613516816134dd565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613577602583612b08565b91506135828261351d565b604082019050919050565b5f6020820190508181035f8301526135a48161356b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613605602383612b08565b9150613610826135ab565b604082019050919050565b5f6020820190508181035f830152613632816135f9565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613693602983612b08565b915061369e82613639565b604082019050919050565b5f6020820190508181035f8301526136c081613687565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f613721602483612b08565b915061372c826136c7565b604082019050919050565b5f6020820190508181035f83015261374e81613715565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f613789601983612b08565b915061379482613755565b602082019050919050565b5f6020820190508181035f8301526137b68161377d565b9050919050565b5f6137c782612ba8565b91506137d283612ba8565b92508282019050808211156137ea576137e9612f6d565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613824601a83612b08565b915061382f826137f0565b602082019050919050565b5f6020820190508181035f83015261385181613818565b9050919050565b5f61386282612ba8565b915061386d83612ba8565b925082820390508181111561388557613884612f6d565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6138bd81612a50565b82525050565b5f6138ce83836138b4565b60208301905092915050565b5f602082019050919050565b5f6138f08261388b565b6138fa8185613895565b9350613905836138a5565b805f5b8381101561393557815161391c88826138c3565b9750613927836138da565b925050600181019050613908565b5085935050505092915050565b5f60a0820190506139555f830188612c41565b61396260208301876132c9565b818103604083015261397481866138e6565b90506139836060830185612e9f565b6139906080830184612c41565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6139d182612ba8565b91506139dc83612ba8565b9250826139ec576139eb61399a565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613a51602183612b08565b9150613a5c826139f7565b604082019050919050565b5f6020820190508181035f830152613a7e81613a45565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613ab9601b83612b08565b9150613ac482613a85565b602082019050919050565b5f6020820190508181035f830152613ae681613aad565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e1e7e084cf2aeb48c5266c8b3eb5dfdb032acaac68140a48890cb1641e9ce80364736f6c63430008140033
Deployed Bytecode
0x608060405260043610610143575f3560e01c8063715018a6116100b5578063a9059cbb1161006e578063a9059cbb14610420578063bf474bed1461045c578063c876d0b914610486578063c9567bf9146104b0578063d34628cc146104c6578063dd62ed3e146104ee5761014a565b8063715018a61461034c578063751039fc146103625780637d1db4a5146103785780638da5cb5b146103a25780638f9a55c0146103cc57806395d89b41146103f65761014a565b806323b872dd1161010757806323b872dd14610230578063313ce5671461026c57806331c2d847146102965780633bbac579146102be57806351bc3c85146102fa57806370a08231146103105761014a565b806303c0f5d41461014e57806306fdde0314610176578063095ea7b3146101a05780630faee56f146101dc57806318160ddd146102065761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b50610174600480360381019061016f9190612ac0565b61052a565b005b348015610181575f80fd5b5061018a610616565b6040516101979190612b88565b60405180910390f35b3480156101ab575f80fd5b506101c660048036038101906101c19190612bdb565b610653565b6040516101d39190612c28565b60405180910390f35b3480156101e7575f80fd5b506101f0610720565b6040516101fd9190612c50565b60405180910390f35b348015610211575f80fd5b5061021a610726565b6040516102279190612c50565b60405180910390f35b34801561023b575f80fd5b5061025660048036038101906102519190612c69565b610748565b6040516102639190612c28565b60405180910390f35b348015610277575f80fd5b506102806108cc565b60405161028d9190612cd4565b60405180910390f35b3480156102a1575f80fd5b506102bc60048036038101906102b79190612e2d565b6108d4565b005b3480156102c9575f80fd5b506102e460048036038101906102df9190612e74565b6109f8565b6040516102f19190612c28565b60405180910390f35b348015610305575f80fd5b5061030e610a4a565b005b34801561031b575f80fd5b5061033660048036038101906103319190612e74565b610ae2565b6040516103439190612c50565b60405180910390f35b348015610357575f80fd5b50610360610bd8565b005b34801561036d575f80fd5b50610376610d26565b005b348015610383575f80fd5b5061038c610e6b565b6040516103999190612c50565b60405180910390f35b3480156103ad575f80fd5b506103b6610e71565b6040516103c39190612eae565b60405180910390f35b3480156103d7575f80fd5b506103e0610e98565b6040516103ed9190612c50565b60405180910390f35b348015610401575f80fd5b5061040a610e9e565b6040516104179190612b88565b60405180910390f35b34801561042b575f80fd5b5061044660048036038101906104419190612bdb565b610edb565b6040516104539190612c28565b60405180910390f35b348015610467575f80fd5b50610470610fa8565b60405161047d9190612c50565b60405180910390f35b348015610491575f80fd5b5061049a610fae565b6040516104a79190612c28565b60405180910390f35b3480156104bb575f80fd5b506104c4610fc0565b005b3480156104d1575f80fd5b506104ec60048036038101906104e79190612e2d565b6114de565b005b3480156104f9575f80fd5b50610514600480360381019061050f9190612ec7565b611603565b6040516105219190612c50565b60405180910390f35b610532611735565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b590612f4f565b60405180910390fd5b8060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60606040518060400160405280600381526020017f4f504d0000000000000000000000000000000000000000000000000000000000815250905090565b5f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036106ac575f80fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1603610704575f80fd5b61071661070f611735565b848461173c565b6001905092915050565b60125481565b5f6012600a61073591906130c9565b620186a06107439190613113565b905090565b5f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036107a1575f80fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16036107f9575f80fd5b6108048484846119af565b6108c184610810611735565b6108bc85604051806060016040528060288152602001613aee6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610873611735565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461242e9092919063ffffffff16565b61173c565b600190509392505050565b5f6012905090565b6108dc611735565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610968576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095f90612f4f565b60405180910390fd5b5f5b81518110156109f4575f60045f84848151811061098a57610989613154565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806109ec90613181565b91505061096a565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a8b611735565b73ffffffffffffffffffffffffffffffffffffffff1614610aaa575f80fd5b5f610ab430610ae2565b90505f811115610ac857610ac781612490565b5b5f4790505f811115610ade57610add816127c7565b5b5050565b5f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603610b3b575f80fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1603610b93575f80fd5b60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610be0611735565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6390612f4f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d2e611735565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db190612f4f565b60405180910390fd5b6012600a610dc891906130c9565b620186a0610dd69190613113565b600f819055506012600a610dea91906130c9565b620186a0610df89190613113565b6010819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610e4691906130c9565b620186a0610e549190613113565b604051610e619190612c50565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600a81526020017f4f7069756d204269726400000000000000000000000000000000000000000000815250905090565b5f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603610f34575f80fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1603610f8c575f80fd5b610f9e610f97611735565b84846119af565b6001905092915050565b60115481565b60065f9054906101000a900460ff1681565b610fc8611735565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611054576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104b90612f4f565b60405180910390fd5b60148054906101000a900460ff16156110a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109990613212565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061113d3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a61112a91906130c9565b620186a06111389190613113565b61173c565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111cb9190613244565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611251573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112759190613244565b6040518363ffffffff1660e01b815260040161129292919061326f565b6020604051808303815f875af11580156112ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112d29190613244565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061135930610ae2565b5f80611363610e71565b426040518863ffffffff1660e01b8152600401611385969594939291906132d8565b60606040518083038185885af11580156113a1573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906113c6919061334b565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161146692919061339b565b6020604051808303815f875af1158015611482573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114a691906133d6565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b6114e6611735565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611572576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156990612f4f565b60405180910390fd5b5f5b81518110156115ff57600160045f84848151811061159557611594613154565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806115f790613181565b915050611574565b5050565b5f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff160361165c575f80fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16036116b4575f80fd5b60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a190613471565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180f906134ff565b60405180910390fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603611870575f80fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16036118c8575f80fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119a29190612c50565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a149061358d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a829061361b565b60405180910390fd5b5f8111611acd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac4906136a9565b60405180910390fd5b5f611ad6610e71565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611b445750611b14610e71565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561217e5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611be7575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611bef575f80fd5b60065f9054906101000a900460ff1615611d755760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611cad575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d74574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611d31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2890613737565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611e1e575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e71575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611f4a57600f54821115611ebb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb29061379f565b60405180910390fd5b60105482611ec885610ae2565b611ed291906137bd565b1115611f13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0a9061383a565b60405180910390fd5b600d54600e541015611f3257611f2883612830565b15611f31575f80fd5b5b600e5f815480929190611f4490613181565b91905055505b611f866064611f78600b54600e5411611f6557600754611f69565b6009545b8561284190919063ffffffff16565b6128b890919063ffffffff16565b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561201057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561209957600f5482111561205a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120519061379f565b60405180910390fd5b6120966064612088600c54600e541161207557600854612079565b600a545b8561284190919063ffffffff16565b6128b890919063ffffffff16565b90505b5f6120a330610ae2565b9050601460159054906101000a900460ff1615801561210e575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156121265750601460169054906101000a900460ff165b8015612133575060115481115b80156121425750600d54600e54115b1561217c5761216461215f8461215a84601254612901565b612901565b612490565b5f4790505f81111561217a57612179476127c7565b5b505b505b5f81111561227d576121d68160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461291990919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122749190612c50565b60405180910390a35b6122cd8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461297690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612370612324828461297690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461291990919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612413848661297690919063ffffffff16565b6040516124209190612c50565b60405180910390a350505050565b5f838311158290612475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246c9190612b88565b60405180910390fd5b505f83856124839190613858565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f8103156127aa5760148054906101000a900460ff16156127aa5760155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff160361251e575f80fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1603612576575f80fd5b5f600267ffffffffffffffff81111561259257612591612cf1565b5b6040519080825280602002602001820160405280156125c05781602001602082028036833780820191505090505b50905030815f815181106125d7576125d6613154565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561267b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061269f9190613244565b816001815181106126b3576126b2613154565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506127193060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461173c565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161277b959493929190613942565b5f604051808303815f87803b158015612792575f80fd5b505af11580156127a4573d5f803e3d5ffd5b50505050505b5f601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561282c573d5f803e3d5ffd5b5050565b5f80823b90505f8111915050919050565b5f808303612851575f90506128b2565b5f828461285e9190613113565b905082848261286d91906139c7565b146128ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a490613a67565b60405180910390fd5b809150505b92915050565b5f6128f983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506129bf565b905092915050565b5f81831161290f5782612911565b815b905092915050565b5f80828461292791906137bd565b90508381101561296c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296390613acf565b60405180910390fd5b8091505092915050565b5f6129b783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061242e565b905092915050565b5f8083118290612a05576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129fc9190612b88565b60405180910390fd5b505f8385612a1391906139c7565b9050809150509392505050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612a5a82612a31565b9050919050565b612a6a81612a50565b8114612a74575f80fd5b50565b5f81359050612a8581612a61565b92915050565b5f8115159050919050565b612a9f81612a8b565b8114612aa9575f80fd5b50565b5f81359050612aba81612a96565b92915050565b5f8060408385031215612ad657612ad5612a29565b5b5f612ae385828601612a77565b9250506020612af485828601612aac565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612b35578082015181840152602081019050612b1a565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612b5a82612afe565b612b648185612b08565b9350612b74818560208601612b18565b612b7d81612b40565b840191505092915050565b5f6020820190508181035f830152612ba08184612b50565b905092915050565b5f819050919050565b612bba81612ba8565b8114612bc4575f80fd5b50565b5f81359050612bd581612bb1565b92915050565b5f8060408385031215612bf157612bf0612a29565b5b5f612bfe85828601612a77565b9250506020612c0f85828601612bc7565b9150509250929050565b612c2281612a8b565b82525050565b5f602082019050612c3b5f830184612c19565b92915050565b612c4a81612ba8565b82525050565b5f602082019050612c635f830184612c41565b92915050565b5f805f60608486031215612c8057612c7f612a29565b5b5f612c8d86828701612a77565b9350506020612c9e86828701612a77565b9250506040612caf86828701612bc7565b9150509250925092565b5f60ff82169050919050565b612cce81612cb9565b82525050565b5f602082019050612ce75f830184612cc5565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612d2782612b40565b810181811067ffffffffffffffff82111715612d4657612d45612cf1565b5b80604052505050565b5f612d58612a20565b9050612d648282612d1e565b919050565b5f67ffffffffffffffff821115612d8357612d82612cf1565b5b602082029050602081019050919050565b5f80fd5b5f612daa612da584612d69565b612d4f565b90508083825260208201905060208402830185811115612dcd57612dcc612d94565b5b835b81811015612df65780612de28882612a77565b845260208401935050602081019050612dcf565b5050509392505050565b5f82601f830112612e1457612e13612ced565b5b8135612e24848260208601612d98565b91505092915050565b5f60208284031215612e4257612e41612a29565b5b5f82013567ffffffffffffffff811115612e5f57612e5e612a2d565b5b612e6b84828501612e00565b91505092915050565b5f60208284031215612e8957612e88612a29565b5b5f612e9684828501612a77565b91505092915050565b612ea881612a50565b82525050565b5f602082019050612ec15f830184612e9f565b92915050565b5f8060408385031215612edd57612edc612a29565b5b5f612eea85828601612a77565b9250506020612efb85828601612a77565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612f39602083612b08565b9150612f4482612f05565b602082019050919050565b5f6020820190508181035f830152612f6681612f2d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612fef57808604811115612fcb57612fca612f6d565b5b6001851615612fda5780820291505b8081029050612fe885612f9a565b9450612faf565b94509492505050565b5f8261300757600190506130c2565b81613014575f90506130c2565b816001811461302a576002811461303457613063565b60019150506130c2565b60ff84111561304657613045612f6d565b5b8360020a91508482111561305d5761305c612f6d565b5b506130c2565b5060208310610133831016604e8410600b84101617156130985782820a90508381111561309357613092612f6d565b5b6130c2565b6130a58484846001612fa6565b925090508184048111156130bc576130bb612f6d565b5b81810290505b9392505050565b5f6130d382612ba8565b91506130de83612cb9565b925061310b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612ff8565b905092915050565b5f61311d82612ba8565b915061312883612ba8565b925082820261313681612ba8565b9150828204841483151761314d5761314c612f6d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61318b82612ba8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036131bd576131bc612f6d565b5b600182019050919050565b7f54726164696e67206973206f70656e00000000000000000000000000000000005f82015250565b5f6131fc600f83612b08565b9150613207826131c8565b602082019050919050565b5f6020820190508181035f830152613229816131f0565b9050919050565b5f8151905061323e81612a61565b92915050565b5f6020828403121561325957613258612a29565b5b5f61326684828501613230565b91505092915050565b5f6040820190506132825f830185612e9f565b61328f6020830184612e9f565b9392505050565b5f819050919050565b5f819050919050565b5f6132c26132bd6132b884613296565b61329f565b612ba8565b9050919050565b6132d2816132a8565b82525050565b5f60c0820190506132eb5f830189612e9f565b6132f86020830188612c41565b61330560408301876132c9565b61331260608301866132c9565b61331f6080830185612e9f565b61332c60a0830184612c41565b979650505050505050565b5f8151905061334581612bb1565b92915050565b5f805f6060848603121561336257613361612a29565b5b5f61336f86828701613337565b935050602061338086828701613337565b925050604061339186828701613337565b9150509250925092565b5f6040820190506133ae5f830185612e9f565b6133bb6020830184612c41565b9392505050565b5f815190506133d081612a96565b92915050565b5f602082840312156133eb576133ea612a29565b5b5f6133f8848285016133c2565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61345b602483612b08565b915061346682613401565b604082019050919050565b5f6020820190508181035f8301526134888161344f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6134e9602283612b08565b91506134f48261348f565b604082019050919050565b5f6020820190508181035f830152613516816134dd565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613577602583612b08565b91506135828261351d565b604082019050919050565b5f6020820190508181035f8301526135a48161356b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613605602383612b08565b9150613610826135ab565b604082019050919050565b5f6020820190508181035f830152613632816135f9565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613693602983612b08565b915061369e82613639565b604082019050919050565b5f6020820190508181035f8301526136c081613687565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f613721602483612b08565b915061372c826136c7565b604082019050919050565b5f6020820190508181035f83015261374e81613715565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f613789601983612b08565b915061379482613755565b602082019050919050565b5f6020820190508181035f8301526137b68161377d565b9050919050565b5f6137c782612ba8565b91506137d283612ba8565b92508282019050808211156137ea576137e9612f6d565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613824601a83612b08565b915061382f826137f0565b602082019050919050565b5f6020820190508181035f83015261385181613818565b9050919050565b5f61386282612ba8565b915061386d83612ba8565b925082820390508181111561388557613884612f6d565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6138bd81612a50565b82525050565b5f6138ce83836138b4565b60208301905092915050565b5f602082019050919050565b5f6138f08261388b565b6138fa8185613895565b9350613905836138a5565b805f5b8381101561393557815161391c88826138c3565b9750613927836138da565b925050600181019050613908565b5085935050505092915050565b5f60a0820190506139555f830188612c41565b61396260208301876132c9565b818103604083015261397481866138e6565b90506139836060830185612e9f565b6139906080830184612c41565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6139d182612ba8565b91506139dc83612ba8565b9250826139ec576139eb61399a565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613a51602183612b08565b9150613a5c826139f7565b604082019050919050565b5f6020820190508181035f830152613a7e81613a45565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613ab9601b83612b08565b9150613ac482613a85565b602082019050919050565b5f6020820190508181035f830152613ae681613aad565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e1e7e084cf2aeb48c5266c8b3eb5dfdb032acaac68140a48890cb1641e9ce80364736f6c63430008140033
Deployed Bytecode Sourcemap
3562:9563:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11550:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5539:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6984:250;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4739:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5819:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7243:402;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5727:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6093:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11765:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12771:348;;;;;;;;;;;;;:::i;:::-;;6264:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2639:148;;;;;;;;;;;;;:::i;:::-;;11345:196;;;;;;;;;;;;;:::i;:::-;;4562:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2423:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4619:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5631:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6481:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4678:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3947:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11857:663;;;;;;;;;;;;;:::i;:::-;;5920:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6743:232;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11550:105;2561:12;:10;:12::i;:::-;2551:22;;:6;;;;;;;;;;:22;;;2543:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11642:5:::1;11626:4;:13;11631:7;11626:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11550:105:::0;;:::o;5539:83::-;5576:13;5609:5;;;;;;;;;;;;;;;;;5602:12;;5539:83;:::o;6984:250::-;7059:4;7098:11;;;;;;;;;;;7084:25;;:10;:25;;;7076:34;;;;;;7142:11;;;;;;;;;;;7129:24;;:9;:24;;;7121:33;;;;;;7165:39;7174:12;:10;:12::i;:::-;7188:7;7197:6;7165:8;:39::i;:::-;7222:4;7215:11;;6984:250;;;;:::o;4739:49::-;;;;:::o;5819:95::-;5872:7;4392:2;4445;:13;;;;:::i;:::-;4436:6;:22;;;;:::i;:::-;5892:14;;5819:95;:::o;7243:402::-;7341:4;7380:11;;;;;;;;;;;7366:25;;:10;:25;;;7358:34;;;;;;7424:11;;;;;;;;;;;7411:24;;:9;:24;;;7403:33;;;;;;7447:36;7457:6;7465:9;7476:6;7447:9;:36::i;:::-;7494:121;7503:6;7511:12;:10;:12::i;:::-;7525:89;7563:6;7525:89;;;;;;;;;;;;;;;;;:11;:19;7537:6;7525:19;;;;;;;;;;;;;;;:33;7545:12;:10;:12::i;:::-;7525:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7494:8;:121::i;:::-;7633:4;7626:11;;7243:402;;;;;:::o;5727:83::-;5768:5;4392:2;5786:16;;5727:83;:::o;6093:162::-;2561:12;:10;:12::i;:::-;2551:22;;:6;;;;;;;;;;:22;;;2543:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6166:6:::1;6161:87;6182:6;:13;6178:1;:17;6161:87;;;6233:5;6215:4;:15;6220:6;6227:1;6220:9;;;;;;;;:::i;:::-;;;;;;;;6215:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;6197:3;;;;;:::i;:::-;;;;6161:87;;;;6093:162:::0;:::o;11765:83::-;11812:4;11833;:7;11838:1;11833:7;;;;;;;;;;;;;;;;;;;;;;;;;11826:14;;11765:83;;;:::o;12771:348::-;12835:10;;;;;;;;;;;12821:24;;:12;:10;:12::i;:::-;:24;;;12813:33;;;;;;12857:20;12878:24;12896:4;12878:9;:24::i;:::-;12857:45;;12929:1;12916:12;:14;12913:73;;;12944:30;12961:12;12944:16;:30::i;:::-;12913:73;12996:18;13015:21;12996:40;;13061:1;13050:10;:12;13047:65;;;13076:24;13089:10;13076:12;:24::i;:::-;13047:65;12802:317;;12771:348::o;6264:208::-;6330:7;6372:11;;;;;;;;;;;6358:25;;:10;:25;;;6350:34;;;;;;6416:11;;;;;;;;;;;6403:24;;:9;:24;;;6395:33;;;;;;6446:9;:18;6456:7;6446:18;;;;;;;;;;;;;;;;6439:25;;6264:208;;;:::o;2639:148::-;2561:12;:10;:12::i;:::-;2551:22;;:6;;;;;;;;;;:22;;;2543:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2746:1:::1;2709:40;;2730:6;::::0;::::1;;;;;;;;2709:40;;;;;;;;;;;;2777:1;2760:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2639:148::o:0;11345:196::-;2561:12;:10;:12::i;:::-;2551:22;;:6;;;;;;;;;;:22;;;2543:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4392:2:::1;4445;:13;;;;:::i;:::-;4436:6;:22;;;;:::i;:::-;11398:12;:22;;;;4392:2;4445;:13;;;;:::i;:::-;4436:6;:22;;;;:::i;:::-;11431:14;:22;;;;11485:5;11464:20;;:26;;;;;;;;;;;;;;;;;;11506:27;4392:2;4445;:13;;;;:::i;:::-;4436:6;:22;;;;:::i;:::-;11506:27;;;;;;:::i;:::-;;;;;;;;11345:196::o:0;4562:50::-;;;;:::o;2423:79::-;2461:7;2488:6;;;;;;;;;;;2481:13;;2423:79;:::o;4619:52::-;;;;:::o;5631:87::-;5670:13;5703:7;;;;;;;;;;;;;;;;;5696:14;;5631:87;:::o;6481:256::-;6559:4;6598:11;;;;;;;;;;;6584:25;;:10;:25;;;6576:34;;;;;;6642:11;;;;;;;;;;;6629:24;;:9;:24;;;6621:33;;;;;;6665:42;6675:12;:10;:12::i;:::-;6689:9;6700:6;6665:9;:42::i;:::-;6725:4;6718:11;;6481:256;;;;:::o;4678:54::-;;;;:::o;3947:40::-;;;;;;;;;;;;;:::o;11857:663::-;2561:12;:10;:12::i;:::-;2551:22;;:6;;;;;;;;;;:22;;;2543:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11921:11:::1;::::0;::::1;;;;;;;;11920:12;11912:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11999:42;11962:15;;:80;;;;;;;;;;;;;;;;;;12053:58;12070:4;12085:15;;;;;;;;;;;4392:2;4445;:13;;;;:::i;:::-;4436:6;:22;;;;:::i;:::-;12053:8;:58::i;:::-;12156:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12138:55;;;12202:4;12209:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12138:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12122:13;;:110;;;;;;;;;;;;;;;;;;12243:15;;;;;;;;;;;:31;;;12282:21;12313:4;12319:24;12337:4;12319:9;:24::i;:::-;12344:1;12346::::0;12348:7:::1;:5;:7::i;:::-;12356:15;12243:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12390:13;;;;;;;;;;;12383:29;;;12421:15;;;;;;;;;;;12439:14;12383:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12479:4;12465:11;;:18;;;;;;;;;;;;;;;;;;12508:4;12494:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11857:663::o:0;5920:164::-;2561:12;:10;:12::i;:::-;2551:22;;:6;;;;;;;;;;:22;;;2543:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5994:6:::1;5989:88;6010:5;:12;6006:1;:16;5989:88;;;6061:4;6044;:14;6049:5;6055:1;6049:8;;;;;;;;:::i;:::-;;;;;;;;6044:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;6024:3;;;;;:::i;:::-;;;;5989:88;;;;5920:164:::0;:::o;6743:232::-;6824:7;6866:11;;;;;;;;;;;6852:25;;:10;:25;;;6844:34;;;;;;6910:11;;;;;;;;;;;6897:24;;:9;:24;;;6889:33;;;;;;6940:11;:18;6952:5;6940:18;;;;;;;;;;;;;;;:27;6959:7;6940:27;;;;;;;;;;;;;;;;6933:34;;6743:232;;;;:::o;167:98::-;220:7;247:10;240:17;;167:98;:::o;7654:424::-;7764:1;7747:19;;:5;:19;;;7739:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7845:1;7826:21;;:7;:21;;;7818:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7919:11;;;;;;;;;;;7905:25;;:10;:25;;;7897:34;;;;;;7963:11;;;;;;;;;;;7950:24;;:9;:24;;;7942:33;;;;;;8016:6;7986:11;:18;7998:5;7986:18;;;;;;;;;;;;;;;:27;8005:7;7986:27;;;;;;;;;;;;;;;:36;;;;8054:7;8038:32;;8047:5;8038:32;;;8063:6;8038:32;;;;;;:::i;:::-;;;;;;;;7654:424;;;:::o;8087:2486::-;8191:1;8175:18;;:4;:18;;;8167:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8268:1;8254:16;;:2;:16;;;8246:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8338:1;8329:6;:10;8321:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8396:17;8439:7;:5;:7::i;:::-;8431:15;;:4;:15;;;;:32;;;;;8456:7;:5;:7::i;:::-;8450:13;;:2;:13;;;;8431:32;8427:1789;;;8490:4;:10;8495:4;8490:10;;;;;;;;;;;;;;;;;;;;;;;;;8489:11;:24;;;;;8505:4;:8;8510:2;8505:8;;;;;;;;;;;;;;;;;;;;;;;;;8504:9;8489:24;8481:33;;;;;;8536:20;;;;;;;;;;;8532:346;;;8595:15;;;;;;;;;;;8581:30;;:2;:30;;;;:62;;;;;8629:13;;;;;;;;;;;8615:28;;:2;:28;;;;8581:62;8577:286;;;8716:12;8674:28;:39;8703:9;8674:39;;;;;;;;;;;;;;;;:54;8666:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;8831:12;8789:28;:39;8818:9;8789:39;;;;;;;;;;;;;;;:54;;;;8577:286;8532:346;8907:13;;;;;;;;;;;8899:21;;:4;:21;;;:55;;;;;8938:15;;;;;;;;;;;8924:30;;:2;:30;;;;8899:55;:83;;;;;8960:18;:22;8979:2;8960:22;;;;;;;;;;;;;;;;;;;;;;;;;8958:24;8899:83;8895:428;;;9022:12;;9012:6;:22;;9004:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9117:14;;9107:6;9091:13;9101:2;9091:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9083:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9194:18;;9184:9;;:28;9181:97;;;9243:14;9254:2;9243:10;:14::i;:::-;9242:15;9234:24;;;;;;9181:97;9296:9;;:11;;;;;;;;;:::i;:::-;;;;;;8895:428;9355:76;9427:3;9355:67;9377:15;;9367:9;;:25;9366:55;;9407:14;;9366:55;;;9394:12;;9366:55;9355:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;9343:88;;9455:13;;;;;;;;;;;9449:19;;:2;:19;;;:43;;;;;9487:4;9472:20;;:4;:20;;;;9449:43;9446:253;;;9531:12;;9521:6;:22;;9513:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9604:79;9679:3;9604:70;9626:16;;9616:9;;:26;9615:58;;9658:15;;9615:58;;;9644:13;;9615:58;9604:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;9592:91;;9446:253;9716:28;9747:24;9765:4;9747:9;:24::i;:::-;9716:55;;9791:6;;;;;;;;;;;9790:7;:30;;;;;9807:13;;;;;;;;;;;9801:19;;:2;:19;;;9790:30;:45;;;;;9824:11;;;;;;;;;;;9790:45;:87;;;;;9860:17;;9839:20;:38;9790:87;:119;;;;;9891:18;;9881:9;;:28;9790:119;9786:419;;;9930:67;9947:49;9951:6;9958:37;9962:20;9983:11;;9958:3;:37::i;:::-;9947:3;:49::i;:::-;9930:16;:67::i;:::-;10016:26;10045:21;10016:50;;10109:1;10088:18;:22;10085:105;;;10135:35;10148:21;10135:12;:35::i;:::-;10085:105;9911:294;9786:419;8465:1751;8427:1789;10242:1;10232:9;:11;10229:161;;;10282:39;10311:9;10282;:24;10300:4;10282:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10257:9;:24;10275:4;10257:24;;;;;;;;;;;;;;;:64;;;;10362:4;10339:39;;10348:4;10339:39;;;10368:9;10339:39;;;;;;:::i;:::-;;;;;;;;10229:161;10416:27;10436:6;10416:9;:15;10426:4;10416:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10400:9;:15;10410:4;10400:15;;;;;;;;;;;;;;;:43;;;;10468:40;10486:21;10497:9;10486:6;:10;;:21;;;;:::i;:::-;10468:9;:13;10478:2;10468:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10454:9;:13;10464:2;10454:13;;;;;;;;;;;;;;;:54;;;;10539:2;10524:41;;10533:4;10524:41;;;10543:21;10554:9;10543:6;:10;;:21;;;;:::i;:::-;10524:41;;;;;;:::i;:::-;;;;;;;;8156:2417;8087:2486;;;:::o;1308:190::-;1394:7;1427:1;1422;:6;;1430:12;1414:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1454:9;1470:1;1466;:5;;;;:::i;:::-;1454:17;;1489:1;1482:8;;;1308:190;;;;;:::o;10692:644::-;5154:4;5145:6;;:13;;;;;;;;;;;;;;;;;;10786:1:::1;10773:11;:14:::0;10770:27;10789:7:::1;10770:27;10811:11;::::0;::::1;;;;;;;;10807:25:::0;10824:7:::1;10807:25;10864:11;;;;;;;;;;;10850:25;;:10;:25;;::::0;10842:34:::1;;;::::0;::::1;;10908:11;;;;;;;;;;;10895:24;;:9;:24;;::::0;10887:33:::1;;;::::0;::::1;;10931:21;10969:1;10955:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10931:40;;11000:4;10982;10987:1;10982:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11026:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11016:4;11021:1;11016:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11059:62;11076:4;11091:15;;;;;;;;;;;11109:11;11059:8;:62::i;:::-;11132:15;;;;;;;;;;;:66;;;11213:11;11239:1;11255:4;11282;11302:15;11132:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10759:577;5169:1;5190:5:::0;5181:6;;:14;;;;;;;;;;;;;;;;;;10692:644;:::o;11664:92::-;11721:10;;;;;;;;;;;:19;;:27;11741:6;11721:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11664:92;:::o;12567:195::-;12626:4;12643:12;12710:7;12698:20;12690:28;;12753:1;12746:4;:8;12739:15;;;12567:195;;;:::o;1507:246::-;1565:7;1594:1;1589;:6;1585:47;;1619:1;1612:8;;;;1585:47;1642:9;1658:1;1654;:5;;;;:::i;:::-;1642:17;;1687:1;1682;1678;:5;;;;:::i;:::-;:10;1670:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1744:1;1737:8;;;1507:246;;;;;:::o;1762:132::-;1820:7;1847:39;1851:1;1854;1847:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1840:46;;1762:132;;;;:::o;10585:98::-;10642:7;10669:1;10667;:3;10666:9;;10674:1;10666:9;;;10672:1;10666:9;10659:16;;10585:98;;;;:::o;975:179::-;1033:7;1053:9;1069:1;1065;:5;;;;:::i;:::-;1053:17;;1094:1;1089;:6;;1081:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1145:1;1138:8;;;975:179;;;;:::o;1163:136::-;1221:7;1248:43;1252:1;1255;1248:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1241:50;;1163:136;;;;:::o;1903:189::-;1989:7;2021:1;2017;:5;2024:12;2009:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2048:9;2064:1;2060;:5;;;;:::i;:::-;2048:17;;2083:1;2076:8;;;1903:189;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:90::-;875:7;918:5;911:13;904:21;893:32;;841:90;;;:::o;937:116::-;1007:21;1022:5;1007:21;:::i;:::-;1000:5;997:32;987:60;;1043:1;1040;1033:12;987:60;937:116;:::o;1059:133::-;1102:5;1140:6;1127:20;1118:29;;1156:30;1180:5;1156:30;:::i;:::-;1059:133;;;;:::o;1198:468::-;1263:6;1271;1320:2;1308:9;1299:7;1295:23;1291:32;1288:119;;;1326:79;;:::i;:::-;1288:119;1446:1;1471:53;1516:7;1507:6;1496:9;1492:22;1471:53;:::i;:::-;1461:63;;1417:117;1573:2;1599:50;1641:7;1632:6;1621:9;1617:22;1599:50;:::i;:::-;1589:60;;1544:115;1198:468;;;;;:::o;1672:99::-;1724:6;1758:5;1752:12;1742:22;;1672:99;;;:::o;1777:169::-;1861:11;1895:6;1890:3;1883:19;1935:4;1930:3;1926:14;1911:29;;1777:169;;;;:::o;1952:246::-;2033:1;2043:113;2057:6;2054:1;2051:13;2043:113;;;2142:1;2137:3;2133:11;2127:18;2123:1;2118:3;2114:11;2107:39;2079:2;2076:1;2072:10;2067:15;;2043:113;;;2190:1;2181:6;2176:3;2172:16;2165:27;2014:184;1952:246;;;:::o;2204:102::-;2245:6;2296:2;2292:7;2287:2;2280:5;2276:14;2272:28;2262:38;;2204:102;;;:::o;2312:377::-;2400:3;2428:39;2461:5;2428:39;:::i;:::-;2483:71;2547:6;2542:3;2483:71;:::i;:::-;2476:78;;2563:65;2621:6;2616:3;2609:4;2602:5;2598:16;2563:65;:::i;:::-;2653:29;2675:6;2653:29;:::i;:::-;2648:3;2644:39;2637:46;;2404:285;2312:377;;;;:::o;2695:313::-;2808:4;2846:2;2835:9;2831:18;2823:26;;2895:9;2889:4;2885:20;2881:1;2870:9;2866:17;2859:47;2923:78;2996:4;2987:6;2923:78;:::i;:::-;2915:86;;2695:313;;;;:::o;3014:77::-;3051:7;3080:5;3069:16;;3014:77;;;:::o;3097:122::-;3170:24;3188:5;3170:24;:::i;:::-;3163:5;3160:35;3150:63;;3209:1;3206;3199:12;3150:63;3097:122;:::o;3225:139::-;3271:5;3309:6;3296:20;3287:29;;3325:33;3352:5;3325:33;:::i;:::-;3225:139;;;;:::o;3370:474::-;3438:6;3446;3495:2;3483:9;3474:7;3470:23;3466:32;3463:119;;;3501:79;;:::i;:::-;3463:119;3621:1;3646:53;3691:7;3682:6;3671:9;3667:22;3646:53;:::i;:::-;3636:63;;3592:117;3748:2;3774:53;3819:7;3810:6;3799:9;3795:22;3774:53;:::i;:::-;3764:63;;3719:118;3370:474;;;;;:::o;3850:109::-;3931:21;3946:5;3931:21;:::i;:::-;3926:3;3919:34;3850:109;;:::o;3965:210::-;4052:4;4090:2;4079:9;4075:18;4067:26;;4103:65;4165:1;4154:9;4150:17;4141:6;4103:65;:::i;:::-;3965:210;;;;:::o;4181:118::-;4268:24;4286:5;4268:24;:::i;:::-;4263:3;4256:37;4181:118;;:::o;4305:222::-;4398:4;4436:2;4425:9;4421:18;4413:26;;4449:71;4517:1;4506:9;4502:17;4493:6;4449:71;:::i;:::-;4305:222;;;;:::o;4533:619::-;4610:6;4618;4626;4675:2;4663:9;4654:7;4650:23;4646:32;4643:119;;;4681:79;;:::i;:::-;4643:119;4801:1;4826:53;4871:7;4862:6;4851:9;4847:22;4826:53;:::i;:::-;4816:63;;4772:117;4928:2;4954:53;4999:7;4990:6;4979:9;4975:22;4954:53;:::i;:::-;4944:63;;4899:118;5056:2;5082:53;5127:7;5118:6;5107:9;5103:22;5082:53;:::i;:::-;5072:63;;5027:118;4533:619;;;;;:::o;5158:86::-;5193:7;5233:4;5226:5;5222:16;5211:27;;5158:86;;;:::o;5250:112::-;5333:22;5349:5;5333:22;:::i;:::-;5328:3;5321:35;5250:112;;:::o;5368:214::-;5457:4;5495:2;5484:9;5480:18;5472:26;;5508:67;5572:1;5561:9;5557:17;5548:6;5508:67;:::i;:::-;5368:214;;;;:::o;5588:117::-;5697:1;5694;5687:12;5711:180;5759:77;5756:1;5749:88;5856:4;5853:1;5846:15;5880:4;5877:1;5870:15;5897:281;5980:27;6002:4;5980:27;:::i;:::-;5972:6;5968:40;6110:6;6098:10;6095:22;6074:18;6062:10;6059:34;6056:62;6053:88;;;6121:18;;:::i;:::-;6053:88;6161:10;6157:2;6150:22;5940:238;5897:281;;:::o;6184:129::-;6218:6;6245:20;;:::i;:::-;6235:30;;6274:33;6302:4;6294:6;6274:33;:::i;:::-;6184:129;;;:::o;6319:311::-;6396:4;6486:18;6478:6;6475:30;6472:56;;;6508:18;;:::i;:::-;6472:56;6558:4;6550:6;6546:17;6538:25;;6618:4;6612;6608:15;6600:23;;6319:311;;;:::o;6636:117::-;6745:1;6742;6735:12;6776:710;6872:5;6897:81;6913:64;6970:6;6913:64;:::i;:::-;6897:81;:::i;:::-;6888:90;;6998:5;7027:6;7020:5;7013:21;7061:4;7054:5;7050:16;7043:23;;7114:4;7106:6;7102:17;7094:6;7090:30;7143:3;7135:6;7132:15;7129:122;;;7162:79;;:::i;:::-;7129:122;7277:6;7260:220;7294:6;7289:3;7286:15;7260:220;;;7369:3;7398:37;7431:3;7419:10;7398:37;:::i;:::-;7393:3;7386:50;7465:4;7460:3;7456:14;7449:21;;7336:144;7320:4;7315:3;7311:14;7304:21;;7260:220;;;7264:21;6878:608;;6776:710;;;;;:::o;7509:370::-;7580:5;7629:3;7622:4;7614:6;7610:17;7606:27;7596:122;;7637:79;;:::i;:::-;7596:122;7754:6;7741:20;7779:94;7869:3;7861:6;7854:4;7846:6;7842:17;7779:94;:::i;:::-;7770:103;;7586:293;7509:370;;;;:::o;7885:539::-;7969:6;8018:2;8006:9;7997:7;7993:23;7989:32;7986:119;;;8024:79;;:::i;:::-;7986:119;8172:1;8161:9;8157:17;8144:31;8202:18;8194:6;8191:30;8188:117;;;8224:79;;:::i;:::-;8188:117;8329:78;8399:7;8390:6;8379:9;8375:22;8329:78;:::i;:::-;8319:88;;8115:302;7885:539;;;;:::o;8430:329::-;8489:6;8538:2;8526:9;8517:7;8513:23;8509:32;8506:119;;;8544:79;;:::i;:::-;8506:119;8664:1;8689:53;8734:7;8725:6;8714:9;8710:22;8689:53;:::i;:::-;8679:63;;8635:117;8430:329;;;;:::o;8765:118::-;8852:24;8870:5;8852:24;:::i;:::-;8847:3;8840:37;8765:118;;:::o;8889:222::-;8982:4;9020:2;9009:9;9005:18;8997:26;;9033:71;9101:1;9090:9;9086:17;9077:6;9033:71;:::i;:::-;8889:222;;;;:::o;9117:474::-;9185:6;9193;9242:2;9230:9;9221:7;9217:23;9213:32;9210:119;;;9248:79;;:::i;:::-;9210:119;9368:1;9393:53;9438:7;9429:6;9418:9;9414:22;9393:53;:::i;:::-;9383:63;;9339:117;9495:2;9521:53;9566:7;9557:6;9546:9;9542:22;9521:53;:::i;:::-;9511:63;;9466:118;9117:474;;;;;:::o;9597:182::-;9737:34;9733:1;9725:6;9721:14;9714:58;9597:182;:::o;9785:366::-;9927:3;9948:67;10012:2;10007:3;9948:67;:::i;:::-;9941:74;;10024:93;10113:3;10024:93;:::i;:::-;10142:2;10137:3;10133:12;10126:19;;9785:366;;;:::o;10157:419::-;10323:4;10361:2;10350:9;10346:18;10338:26;;10410:9;10404:4;10400:20;10396:1;10385:9;10381:17;10374:47;10438:131;10564:4;10438:131;:::i;:::-;10430:139;;10157:419;;;:::o;10582:180::-;10630:77;10627:1;10620:88;10727:4;10724:1;10717:15;10751:4;10748:1;10741:15;10768:102;10810:8;10857:5;10854:1;10850:13;10829:34;;10768:102;;;:::o;10876:848::-;10937:5;10944:4;10968:6;10959:15;;10992:5;10983:14;;11006:712;11027:1;11017:8;11014:15;11006:712;;;11122:4;11117:3;11113:14;11107:4;11104:24;11101:50;;;11131:18;;:::i;:::-;11101:50;11181:1;11171:8;11167:16;11164:451;;;11596:4;11589:5;11585:16;11576:25;;11164:451;11646:4;11640;11636:15;11628:23;;11676:32;11699:8;11676:32;:::i;:::-;11664:44;;11006:712;;;10876:848;;;;;;;:::o;11730:1073::-;11784:5;11975:8;11965:40;;11996:1;11987:10;;11998:5;;11965:40;12024:4;12014:36;;12041:1;12032:10;;12043:5;;12014:36;12110:4;12158:1;12153:27;;;;12194:1;12189:191;;;;12103:277;;12153:27;12171:1;12162:10;;12173:5;;;12189:191;12234:3;12224:8;12221:17;12218:43;;;12241:18;;:::i;:::-;12218:43;12290:8;12287:1;12283:16;12274:25;;12325:3;12318:5;12315:14;12312:40;;;12332:18;;:::i;:::-;12312:40;12365:5;;;12103:277;;12489:2;12479:8;12476:16;12470:3;12464:4;12461:13;12457:36;12439:2;12429:8;12426:16;12421:2;12415:4;12412:12;12408:35;12392:111;12389:246;;;12545:8;12539:4;12535:19;12526:28;;12580:3;12573:5;12570:14;12567:40;;;12587:18;;:::i;:::-;12567:40;12620:5;;12389:246;12660:42;12698:3;12688:8;12682:4;12679:1;12660:42;:::i;:::-;12645:57;;;;12734:4;12729:3;12725:14;12718:5;12715:25;12712:51;;;12743:18;;:::i;:::-;12712:51;12792:4;12785:5;12781:16;12772:25;;11730:1073;;;;;;:::o;12809:281::-;12867:5;12891:23;12909:4;12891:23;:::i;:::-;12883:31;;12935:25;12951:8;12935:25;:::i;:::-;12923:37;;12979:104;13016:66;13006:8;13000:4;12979:104;:::i;:::-;12970:113;;12809:281;;;;:::o;13096:410::-;13136:7;13159:20;13177:1;13159:20;:::i;:::-;13154:25;;13193:20;13211:1;13193:20;:::i;:::-;13188:25;;13248:1;13245;13241:9;13270:30;13288:11;13270:30;:::i;:::-;13259:41;;13449:1;13440:7;13436:15;13433:1;13430:22;13410:1;13403:9;13383:83;13360:139;;13479:18;;:::i;:::-;13360:139;13144:362;13096:410;;;;:::o;13512:180::-;13560:77;13557:1;13550:88;13657:4;13654:1;13647:15;13681:4;13678:1;13671:15;13698:233;13737:3;13760:24;13778:5;13760:24;:::i;:::-;13751:33;;13806:66;13799:5;13796:77;13793:103;;13876:18;;:::i;:::-;13793:103;13923:1;13916:5;13912:13;13905:20;;13698:233;;;:::o;13937:165::-;14077:17;14073:1;14065:6;14061:14;14054:41;13937:165;:::o;14108:366::-;14250:3;14271:67;14335:2;14330:3;14271:67;:::i;:::-;14264:74;;14347:93;14436:3;14347:93;:::i;:::-;14465:2;14460:3;14456:12;14449:19;;14108:366;;;:::o;14480:419::-;14646:4;14684:2;14673:9;14669:18;14661:26;;14733:9;14727:4;14723:20;14719:1;14708:9;14704:17;14697:47;14761:131;14887:4;14761:131;:::i;:::-;14753:139;;14480:419;;;:::o;14905:143::-;14962:5;14993:6;14987:13;14978:22;;15009:33;15036:5;15009:33;:::i;:::-;14905:143;;;;:::o;15054:351::-;15124:6;15173:2;15161:9;15152:7;15148:23;15144:32;15141:119;;;15179:79;;:::i;:::-;15141:119;15299:1;15324:64;15380:7;15371:6;15360:9;15356:22;15324:64;:::i;:::-;15314:74;;15270:128;15054:351;;;;:::o;15411:332::-;15532:4;15570:2;15559:9;15555:18;15547:26;;15583:71;15651:1;15640:9;15636:17;15627:6;15583:71;:::i;:::-;15664:72;15732:2;15721:9;15717:18;15708:6;15664:72;:::i;:::-;15411:332;;;;;:::o;15749:85::-;15794:7;15823:5;15812:16;;15749:85;;;:::o;15840:60::-;15868:3;15889:5;15882:12;;15840:60;;;:::o;15906:158::-;15964:9;15997:61;16015:42;16024:32;16050:5;16024:32;:::i;:::-;16015:42;:::i;:::-;15997:61;:::i;:::-;15984:74;;15906:158;;;:::o;16070:147::-;16165:45;16204:5;16165:45;:::i;:::-;16160:3;16153:58;16070:147;;:::o;16223:807::-;16472:4;16510:3;16499:9;16495:19;16487:27;;16524:71;16592:1;16581:9;16577:17;16568:6;16524:71;:::i;:::-;16605:72;16673:2;16662:9;16658:18;16649:6;16605:72;:::i;:::-;16687:80;16763:2;16752:9;16748:18;16739:6;16687:80;:::i;:::-;16777;16853:2;16842:9;16838:18;16829:6;16777:80;:::i;:::-;16867:73;16935:3;16924:9;16920:19;16911:6;16867:73;:::i;:::-;16950;17018:3;17007:9;17003:19;16994:6;16950:73;:::i;:::-;16223:807;;;;;;;;;:::o;17036:143::-;17093:5;17124:6;17118:13;17109:22;;17140:33;17167:5;17140:33;:::i;:::-;17036:143;;;;:::o;17185:663::-;17273:6;17281;17289;17338:2;17326:9;17317:7;17313:23;17309:32;17306:119;;;17344:79;;:::i;:::-;17306:119;17464:1;17489:64;17545:7;17536:6;17525:9;17521:22;17489:64;:::i;:::-;17479:74;;17435:128;17602:2;17628:64;17684:7;17675:6;17664:9;17660:22;17628:64;:::i;:::-;17618:74;;17573:129;17741:2;17767:64;17823:7;17814:6;17803:9;17799:22;17767:64;:::i;:::-;17757:74;;17712:129;17185:663;;;;;:::o;17854:332::-;17975:4;18013:2;18002:9;17998:18;17990:26;;18026:71;18094:1;18083:9;18079:17;18070:6;18026:71;:::i;:::-;18107:72;18175:2;18164:9;18160:18;18151:6;18107:72;:::i;:::-;17854:332;;;;;:::o;18192:137::-;18246:5;18277:6;18271:13;18262:22;;18293:30;18317:5;18293:30;:::i;:::-;18192:137;;;;:::o;18335:345::-;18402:6;18451:2;18439:9;18430:7;18426:23;18422:32;18419:119;;;18457:79;;:::i;:::-;18419:119;18577:1;18602:61;18655:7;18646:6;18635:9;18631:22;18602:61;:::i;:::-;18592:71;;18548:125;18335:345;;;;:::o;18686:223::-;18826:34;18822:1;18814:6;18810:14;18803:58;18895:6;18890:2;18882:6;18878:15;18871:31;18686:223;:::o;18915:366::-;19057:3;19078:67;19142:2;19137:3;19078:67;:::i;:::-;19071:74;;19154:93;19243:3;19154:93;:::i;:::-;19272:2;19267:3;19263:12;19256:19;;18915:366;;;:::o;19287:419::-;19453:4;19491:2;19480:9;19476:18;19468:26;;19540:9;19534:4;19530:20;19526:1;19515:9;19511:17;19504:47;19568:131;19694:4;19568:131;:::i;:::-;19560:139;;19287:419;;;:::o;19712:221::-;19852:34;19848:1;19840:6;19836:14;19829:58;19921:4;19916:2;19908:6;19904:15;19897:29;19712:221;:::o;19939:366::-;20081:3;20102:67;20166:2;20161:3;20102:67;:::i;:::-;20095:74;;20178:93;20267:3;20178:93;:::i;:::-;20296:2;20291:3;20287:12;20280:19;;19939:366;;;:::o;20311:419::-;20477:4;20515:2;20504:9;20500:18;20492:26;;20564:9;20558:4;20554:20;20550:1;20539:9;20535:17;20528:47;20592:131;20718:4;20592:131;:::i;:::-;20584:139;;20311:419;;;:::o;20736:224::-;20876:34;20872:1;20864:6;20860:14;20853:58;20945:7;20940:2;20932:6;20928:15;20921:32;20736:224;:::o;20966:366::-;21108:3;21129:67;21193:2;21188:3;21129:67;:::i;:::-;21122:74;;21205:93;21294:3;21205:93;:::i;:::-;21323:2;21318:3;21314:12;21307:19;;20966:366;;;:::o;21338:419::-;21504:4;21542:2;21531:9;21527:18;21519:26;;21591:9;21585:4;21581:20;21577:1;21566:9;21562:17;21555:47;21619:131;21745:4;21619:131;:::i;:::-;21611:139;;21338:419;;;:::o;21763:222::-;21903:34;21899:1;21891:6;21887:14;21880:58;21972:5;21967:2;21959:6;21955:15;21948:30;21763:222;:::o;21991:366::-;22133:3;22154:67;22218:2;22213:3;22154:67;:::i;:::-;22147:74;;22230:93;22319:3;22230:93;:::i;:::-;22348:2;22343:3;22339:12;22332:19;;21991:366;;;:::o;22363:419::-;22529:4;22567:2;22556:9;22552:18;22544:26;;22616:9;22610:4;22606:20;22602:1;22591:9;22587:17;22580:47;22644:131;22770:4;22644:131;:::i;:::-;22636:139;;22363:419;;;:::o;22788:228::-;22928:34;22924:1;22916:6;22912:14;22905:58;22997:11;22992:2;22984:6;22980:15;22973:36;22788:228;:::o;23022:366::-;23164:3;23185:67;23249:2;23244:3;23185:67;:::i;:::-;23178:74;;23261:93;23350:3;23261:93;:::i;:::-;23379:2;23374:3;23370:12;23363:19;;23022:366;;;:::o;23394:419::-;23560:4;23598:2;23587:9;23583:18;23575:26;;23647:9;23641:4;23637:20;23633:1;23622:9;23618:17;23611:47;23675:131;23801:4;23675:131;:::i;:::-;23667:139;;23394:419;;;:::o;23819:223::-;23959:34;23955:1;23947:6;23943:14;23936:58;24028:6;24023:2;24015:6;24011:15;24004:31;23819:223;:::o;24048:366::-;24190:3;24211:67;24275:2;24270:3;24211:67;:::i;:::-;24204:74;;24287:93;24376:3;24287:93;:::i;:::-;24405:2;24400:3;24396:12;24389:19;;24048:366;;;:::o;24420:419::-;24586:4;24624:2;24613:9;24609:18;24601:26;;24673:9;24667:4;24663:20;24659:1;24648:9;24644:17;24637:47;24701:131;24827:4;24701:131;:::i;:::-;24693:139;;24420:419;;;:::o;24845:175::-;24985:27;24981:1;24973:6;24969:14;24962:51;24845:175;:::o;25026:366::-;25168:3;25189:67;25253:2;25248:3;25189:67;:::i;:::-;25182:74;;25265:93;25354:3;25265:93;:::i;:::-;25383:2;25378:3;25374:12;25367:19;;25026:366;;;:::o;25398:419::-;25564:4;25602:2;25591:9;25587:18;25579:26;;25651:9;25645:4;25641:20;25637:1;25626:9;25622:17;25615:47;25679:131;25805:4;25679:131;:::i;:::-;25671:139;;25398:419;;;:::o;25823:191::-;25863:3;25882:20;25900:1;25882:20;:::i;:::-;25877:25;;25916:20;25934:1;25916:20;:::i;:::-;25911:25;;25959:1;25956;25952:9;25945:16;;25980:3;25977:1;25974:10;25971:36;;;25987:18;;:::i;:::-;25971:36;25823:191;;;;:::o;26020:176::-;26160:28;26156:1;26148:6;26144:14;26137:52;26020:176;:::o;26202:366::-;26344:3;26365:67;26429:2;26424:3;26365:67;:::i;:::-;26358:74;;26441:93;26530:3;26441:93;:::i;:::-;26559:2;26554:3;26550:12;26543:19;;26202:366;;;:::o;26574:419::-;26740:4;26778:2;26767:9;26763:18;26755:26;;26827:9;26821:4;26817:20;26813:1;26802:9;26798:17;26791:47;26855:131;26981:4;26855:131;:::i;:::-;26847:139;;26574:419;;;:::o;26999:194::-;27039:4;27059:20;27077:1;27059:20;:::i;:::-;27054:25;;27093:20;27111:1;27093:20;:::i;:::-;27088:25;;27137:1;27134;27130:9;27122:17;;27161:1;27155:4;27152:11;27149:37;;;27166:18;;:::i;:::-;27149:37;26999:194;;;;:::o;27199:114::-;27266:6;27300:5;27294:12;27284:22;;27199:114;;;:::o;27319:184::-;27418:11;27452:6;27447:3;27440:19;27492:4;27487:3;27483:14;27468:29;;27319:184;;;;:::o;27509:132::-;27576:4;27599:3;27591:11;;27629:4;27624:3;27620:14;27612:22;;27509:132;;;:::o;27647:108::-;27724:24;27742:5;27724:24;:::i;:::-;27719:3;27712:37;27647:108;;:::o;27761:179::-;27830:10;27851:46;27893:3;27885:6;27851:46;:::i;:::-;27929:4;27924:3;27920:14;27906:28;;27761:179;;;;:::o;27946:113::-;28016:4;28048;28043:3;28039:14;28031:22;;27946:113;;;:::o;28095:732::-;28214:3;28243:54;28291:5;28243:54;:::i;:::-;28313:86;28392:6;28387:3;28313:86;:::i;:::-;28306:93;;28423:56;28473:5;28423:56;:::i;:::-;28502:7;28533:1;28518:284;28543:6;28540:1;28537:13;28518:284;;;28619:6;28613:13;28646:63;28705:3;28690:13;28646:63;:::i;:::-;28639:70;;28732:60;28785:6;28732:60;:::i;:::-;28722:70;;28578:224;28565:1;28562;28558:9;28553:14;;28518:284;;;28522:14;28818:3;28811:10;;28219:608;;;28095:732;;;;:::o;28833:831::-;29096:4;29134:3;29123:9;29119:19;29111:27;;29148:71;29216:1;29205:9;29201:17;29192:6;29148:71;:::i;:::-;29229:80;29305:2;29294:9;29290:18;29281:6;29229:80;:::i;:::-;29356:9;29350:4;29346:20;29341:2;29330:9;29326:18;29319:48;29384:108;29487:4;29478:6;29384:108;:::i;:::-;29376:116;;29502:72;29570:2;29559:9;29555:18;29546:6;29502:72;:::i;:::-;29584:73;29652:3;29641:9;29637:19;29628:6;29584:73;:::i;:::-;28833:831;;;;;;;;:::o;29670:180::-;29718:77;29715:1;29708:88;29815:4;29812:1;29805:15;29839:4;29836:1;29829:15;29856:185;29896:1;29913:20;29931:1;29913:20;:::i;:::-;29908:25;;29947:20;29965:1;29947:20;:::i;:::-;29942:25;;29986:1;29976:35;;29991:18;;:::i;:::-;29976:35;30033:1;30030;30026:9;30021:14;;29856:185;;;;:::o;30047:220::-;30187:34;30183:1;30175:6;30171:14;30164:58;30256:3;30251:2;30243:6;30239:15;30232:28;30047:220;:::o;30273:366::-;30415:3;30436:67;30500:2;30495:3;30436:67;:::i;:::-;30429:74;;30512:93;30601:3;30512:93;:::i;:::-;30630:2;30625:3;30621:12;30614:19;;30273:366;;;:::o;30645:419::-;30811:4;30849:2;30838:9;30834:18;30826:26;;30898:9;30892:4;30888:20;30884:1;30873:9;30869:17;30862:47;30926:131;31052:4;30926:131;:::i;:::-;30918:139;;30645:419;;;:::o;31070:177::-;31210:29;31206:1;31198:6;31194:14;31187:53;31070:177;:::o;31253:366::-;31395:3;31416:67;31480:2;31475:3;31416:67;:::i;:::-;31409:74;;31492:93;31581:3;31492:93;:::i;:::-;31610:2;31605:3;31601:12;31594:19;;31253:366;;;:::o;31625:419::-;31791:4;31829:2;31818:9;31814:18;31806:26;;31878:9;31872:4;31868:20;31864:1;31853:9;31849:17;31842:47;31906:131;32032:4;31906:131;:::i;:::-;31898:139;;31625:419;;;:::o
Swarm Source
ipfs://e1e7e084cf2aeb48c5266c8b3eb5dfdb032acaac68140a48890cb1641e9ce803
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.