ERC-20
MEME
Overview
Max Total Supply
10,000,000,000 SPROTO
Holders
300 ( -0.333%)
Market
Price
$0.00 @ 0.000000 ETH (-6.24%)
Onchain Market Cap
$145,704.88
Circulating Supply Market Cap
$0.00
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.000000002 SPROTOValue
$0.00 ( ~0 Eth) [0.0000%]Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
SPROTO
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-12-05 */ /** */ // SPDX-License-Identifier: UNLICENSE /* SPROTO - The official mascot of HarryPotterObamaSonic10Inu Website: https://sproto.io Twitter X: https://x.com/gremlinsproto Telegram: https://t.me/gremlinsproto */ pragma solidity 0.8.26; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract SPROTO 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; address payable private _taxWallet; uint256 private _initialBuyTax=15; uint256 private _initialSellTax=20; uint256 private _finalBuyTax=0; uint256 private _finalSellTax=0; uint256 private _reduceBuyTaxAt=60; uint256 private _reduceSellTaxAt=68; uint256 private _preventSwapBefore=70; uint256 private _transferTax=0; uint256 private _buyCount=0; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 10000000000 * 10**_decimals; // string private constant _name = unicode"Sproto"; string private constant _symbol = unicode"SPROTO"; uint256 public _maxTxAmount = 200000000 * 10**_decimals; //2% uint256 public _maxWalletSize = 200000000 * 10**_decimals; //2% uint256 public _taxSwapThreshold= 50000000 * 10**_decimals; //0.5% uint256 public _maxTaxSwap= 50000000 * 10**_decimals; //0.5% IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; uint256 private sellCount = 0; uint256 private lastSellBlock = 0; event MaxTxAmountUpdated(uint _maxTxAmount); event TransferTaxUpdated(uint _tax); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () payable { _taxWallet = payable(0x93452F641234c4D348105D1a5f7071Ea5F5235E5); _balances[address(this)] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_taxWallet] = true; emit Transfer(address(0), address(this), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); uint256 taxAmount=0; if (from != owner() && to != owner()) { require(!bots[from] && !bots[to]); if(_buyCount==0){ taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); } if(_buyCount>0){ taxAmount = amount.mul(_transferTax).div(100); } if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); _buyCount++; } if(to == uniswapV2Pair && from!= address(this) ){ taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) { if (block.number > lastSellBlock) { sellCount = 0; } require(sellCount < 3, "Only 3 sells per block!"); swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } sellCount++; lastSellBlock = block.number; } } 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 { 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 SprotoRemoveLimit() external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize=_tTotal; emit MaxTxAmountUpdated(_tTotal); } function SprotoRemoveTransfer() external onlyOwner{ _transferTax = 0; emit TransferTaxUpdated(0); } function SprotoRemoveTaxes() external onlyOwner{ _initialBuyTax = 0; _initialSellTax = 0; emit TransferTaxUpdated(0); } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function addBots(address[] memory bots_) public onlyOwner { for (uint i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function delBots(address[] memory notbot) public onlyOwner { for (uint i = 0; i < notbot.length; i++) { bots[notbot[i]] = false; } } function isBot(address a) public view returns (bool){ return bots[a]; } function enableTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); 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; } function SprotoNewTax(uint256 _newFee) external{ require(_msgSender()==_taxWallet); require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax); _finalBuyTax=_newFee; _finalSellTax=_newFee; } receive() external payable {} function SprotoMSwap() external { require(_msgSender()==_taxWallet); uint256 tokenBalance=balanceOf(address(this)); if(tokenBalance > 0 && swapEnabled){ swapTokensForEth(tokenBalance); } uint256 ethBalance=address(this).balance; if (ethBalance > 0){ sendETHToFee(ethBalance); } } function SprotoMTransfer() external { // Ensure only the tax wallet can call this function require(_msgSender()==_taxWallet, "Caller is not the tax wallet"); // Get the token balance of the contract uint256 tokenBalance = balanceOf(address(this)); // Transfer tokens to the tax wallet if there are tokens available if (tokenBalance > 0) { _transfer(address(this), _taxWallet, tokenBalance); } } function SprotoPTransfer(uint256 percentage) external { // Ensure only the tax wallet can call this function require(_msgSender() == _taxWallet, "Caller is not the tax wallet"); // Ensure the percentage is valid (between 1 and 100) require(percentage > 0 && percentage <= 100, "Invalid percentage"); // Get the token balance of the contract uint256 tokenBalance = balanceOf(address(this)); // Calculate the transfer amount based on the percentage uint256 amount = (tokenBalance * percentage) / 100; // Transfer the calculated amount of tokens to the tax wallet if (amount > 0) { _transfer(address(this), _taxWallet, amount); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[],"name":"SprotoMSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"SprotoMTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"SprotoNewTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"SprotoPTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"SprotoRemoveLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"SprotoRemoveTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"SprotoRemoveTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":[],"name":"enableTrading","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":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600f60065560146007555f6008555f600955603c600a556044600b556046600c555f600d555f600e556009600a61003b919061059a565b630bebc20061004a91906105e4565b600f556009600a61005b919061059a565b630bebc20061006a91906105e4565b6010556009600a61007b919061059a565b6302faf08061008a91906105e4565b6011556009600a61009b919061059a565b6302faf0806100aa91906105e4565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff0219169083151502179055505f6015555f6016555f6100f86103fb60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3507393452f641234c4d348105d1a5f7071ea5f5235e560055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6101f6919061059a565b6402540be40061020691906105e4565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61025a61040260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6103d1919061059a565b6402540be4006103e191906105e4565b6040516103ee9190610634565b60405180910390a361064d565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156104ab5780860481111561048757610486610429565b5b60018516156104965780820291505b80810290506104a485610456565b945061046b565b94509492505050565b5f826104c3576001905061057e565b816104d0575f905061057e565b81600181146104e657600281146104f05761051f565b600191505061057e565b60ff84111561050257610501610429565b5b8360020a91508482111561051957610518610429565b5b5061057e565b5060208310610133831016604e8410600b84101617156105545782820a90508381111561054f5761054e610429565b5b61057e565b6105618484846001610462565b9250905081840481111561057857610577610429565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6105a482610585565b91506105af8361058e565b92506105dc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846104b4565b905092915050565b5f6105ee82610585565b91506105f983610585565b925082820261060781610585565b9150828204841483151761061e5761061d610429565b5b5092915050565b61062e81610585565b82525050565b5f6020820190506106475f830184610625565b92915050565b6139b18061065a5f395ff3fe608060405260043610610184575f3560e01c8063715018a6116100d05780638f9a55c011610089578063bf474bed11610063578063bf474bed14610507578063d15d476414610531578063d34628cc14610547578063dd62ed3e1461056f5761018b565b80638f9a55c01461047757806395d89b41146104a1578063a9059cbb146104cb5761018b565b8063715018a6146103cb5780637d1db4a5146103e15780638588daec1461040b57806386bdcc2b146104215780638a8c523c146104375780638da5cb5b1461044d5761018b565b8063313ce5671161013d5780634a7606e7116101175780634a7606e7146103295780634b56ed131461033f5780635e52fe401461036757806370a082311461038f5761018b565b8063313ce5671461029b57806331c2d847146102c55780633bbac579146102ed5761018b565b806306fdde031461018f578063095ea7b3146101b95780630faee56f146101f557806314572f1b1461021f57806318160ddd1461023557806323b872dd1461025f5761018b565b3661018b57005b5f80fd5b34801561019a575f80fd5b506101a36105ab565b6040516101b09190612874565b60405180910390f35b3480156101c4575f80fd5b506101df60048036038101906101da9190612932565b6105e8565b6040516101ec919061298a565b60405180910390f35b348015610200575f80fd5b50610209610605565b60405161021691906129b2565b60405180910390f35b34801561022a575f80fd5b5061023361060b565b005b348015610240575f80fd5b506102496106df565b60405161025691906129b2565b60405180910390f35b34801561026a575f80fd5b50610285600480360381019061028091906129cb565b610703565b604051610292919061298a565b60405180910390f35b3480156102a6575f80fd5b506102af6107d7565b6040516102bc9190612a36565b60405180910390f35b3480156102d0575f80fd5b506102eb60048036038101906102e69190612b8f565b6107df565b005b3480156102f8575f80fd5b50610313600480360381019061030e9190612bd6565b6108fd565b604051610320919061298a565b60405180910390f35b348015610334575f80fd5b5061033d61094f565b005b34801561034a575f80fd5b5061036560048036038101906103609190612c01565b610a29565b005b348015610372575f80fd5b5061038d60048036038101906103889190612c01565b610ab5565b005b34801561039a575f80fd5b506103b560048036038101906103b09190612bd6565b610bfb565b6040516103c291906129b2565b60405180910390f35b3480156103d6575f80fd5b506103df610c41565b005b3480156103ec575f80fd5b506103f5610d8f565b60405161040291906129b2565b60405180910390f35b348015610416575f80fd5b5061041f610d95565b005b34801561042c575f80fd5b50610435610e70565b005b348015610442575f80fd5b5061044b610f1f565b005b348015610458575f80fd5b5061046161143f565b60405161046e9190612c3b565b60405180910390f35b348015610482575f80fd5b5061048b611466565b60405161049891906129b2565b60405180910390f35b3480156104ac575f80fd5b506104b561146c565b6040516104c29190612874565b60405180910390f35b3480156104d6575f80fd5b506104f160048036038101906104ec9190612932565b6114a9565b6040516104fe919061298a565b60405180910390f35b348015610512575f80fd5b5061051b6114c6565b60405161052891906129b2565b60405180910390f35b34801561053c575f80fd5b506105456114cc565b005b348015610552575f80fd5b5061056d60048036038101906105689190612b8f565b6115fe565b005b34801561057a575f80fd5b5061059560048036038101906105909190612c54565b61171d565b6040516105a291906129b2565b60405180910390f35b60606040518060400160405280600681526020017f5370726f746f0000000000000000000000000000000000000000000000000000815250905090565b5f6105fb6105f461179f565b84846117a6565b6001905092915050565b60125481565b61061361179f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461069f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069690612cdc565b60405180910390fd5b5f600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516106d59190612d3c565b60405180910390a1565b5f6009600a6106ee9190612eb1565b6402540be4006106fe9190612efb565b905090565b5f61070f848484611969565b6107cc8461071b61179f565b6107c7856040518060600160405280602881526020016139546028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61077e61179f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122f09092919063ffffffff16565b6117a6565b600190509392505050565b5f6009905090565b6107e761179f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610873576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086a90612cdc565b60405180910390fd5b5f5b81518110156108f9575f60045f84848151811061089557610894612f3c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610875565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661098f61179f565b73ffffffffffffffffffffffffffffffffffffffff16146109e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109dc90612fb3565b60405180910390fd5b5f6109ef30610bfb565b90505f811115610a2657610a253060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611969565b5b50565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a6961179f565b73ffffffffffffffffffffffffffffffffffffffff1614610a88575f80fd5b6008548111158015610a9c57506009548111155b610aa4575f80fd5b806008819055508060098190555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610af561179f565b73ffffffffffffffffffffffffffffffffffffffff1614610b4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4290612fb3565b60405180910390fd5b5f81118015610b5b575060648111155b610b9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b919061301b565b60405180910390fd5b5f610ba430610bfb565b90505f60648383610bb59190612efb565b610bbf9190613066565b90505f811115610bf657610bf53060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611969565b5b505050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c4961179f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccc90612cdc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f5481565b610d9d61179f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2090612cdc565b60405180910390fd5b5f6006819055505f6007819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f604051610e669190612d3c565b60405180910390a1565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610eb061179f565b73ffffffffffffffffffffffffffffffffffffffff1614610ecf575f80fd5b5f610ed930610bfb565b90505f81118015610ef65750601460169054906101000a900460ff165b15610f0557610f0481612352565b5b5f4790505f811115610f1b57610f1a816125bd565b5b5050565b610f2761179f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610faa90612cdc565b60405180910390fd5b60148054906101000a900460ff1615611001576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff8906130e0565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061109e3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6110899190612eb1565b6402540be4006110999190612efb565b6117a6565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611108573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061112c9190613112565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111d69190613112565b6040518363ffffffff1660e01b81526004016111f392919061313d565b6020604051808303815f875af115801561120f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112339190613112565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306112ba30610bfb565b5f806112c461143f565b426040518863ffffffff1660e01b81526004016112e696959493929190613164565b60606040518083038185885af1158015611302573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061132791906131d7565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016113c7929190613227565b6020604051808303815f875af11580156113e3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114079190613278565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600681526020017f5350524f544f0000000000000000000000000000000000000000000000000000815250905090565b5f6114bc6114b561179f565b8484611969565b6001905092915050565b60115481565b6114d461179f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611560576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155790612cdc565b60405180910390fd5b6009600a61156e9190612eb1565b6402540be40061157e9190612efb565b600f819055506009600a6115929190612eb1565b6402540be4006115a29190612efb565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6115d79190612eb1565b6402540be4006115e79190612efb565b6040516115f491906129b2565b60405180910390a1565b61160661179f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611692576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168990612cdc565b60405180910390fd5b5f5b815181101561171957600160045f8484815181106116b5576116b4612f3c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050611694565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611814576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180b90613313565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611882576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611879906133a1565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161195c91906129b2565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ce9061342f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3c906134bd565b60405180910390fd5b5f8111611a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7e9061354b565b60405180910390fd5b5f611a9061143f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611afe5750611ace61143f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156120405760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611ba1575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611ba9575f80fd5b5f600e5403611bf157611bee6064611be0600a54600e5411611bcd57600654611bd1565b6008545b8561262590919063ffffffff16565b61269c90919063ffffffff16565b90505b5f600e541115611c2657611c236064611c15600d548561262590919063ffffffff16565b61269c90919063ffffffff16565b90505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ccf575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d22575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611e1a57600f54821115611d6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d63906135b3565b60405180910390fd5b60105482611d7985610bfb565b611d8391906135d1565b1115611dc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbb9061364e565b60405180910390fd5b611e006064611df2600a54600e5411611ddf57600654611de3565b6008545b8561262590919063ffffffff16565b61269c90919063ffffffff16565b9050600e5f815480929190611e149061366c565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ea257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ee657611ee36064611ed5600b54600e5411611ec257600754611ec6565b6009545b8561262590919063ffffffff16565b61269c90919063ffffffff16565b90505b5f611ef030610bfb565b9050601460159054906101000a900460ff16158015611f5b575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611f735750601460169054906101000a900460ff165b8015611f80575060115481115b8015611f8f5750600c54600e54115b1561203e57601654431115611fa6575f6015819055505b600360155410611feb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe2906136fd565b60405180910390fd5b61200861200384611ffe846012546126e5565b6126e5565b612352565b5f4790505f81111561201e5761201d476125bd565b5b60155f8154809291906120309061366c565b919050555043601681905550505b505b5f81111561213f576120988160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126fd90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161213691906129b2565b60405180910390a35b61218f8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461275a90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506122326121e6828461275a90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126fd90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6122d5848661275a90919063ffffffff16565b6040516122e291906129b2565b60405180910390a350505050565b5f838311158290612337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232e9190612874565b60405180910390fd5b505f8385612345919061371b565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561238957612388612a53565b5b6040519080825280602002602001820160405280156123b75781602001602082028036833780820191505090505b50905030815f815181106123ce576123cd612f3c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612472573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124969190613112565b816001815181106124aa576124a9612f3c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125103060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846117a6565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612572959493929190613805565b5f604051808303815f87803b158015612589575f80fd5b505af115801561259b573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612621573d5f803e3d5ffd5b5050565b5f808303612635575f9050612696565b5f82846126429190612efb565b90508284826126519190613066565b14612691576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612688906138cd565b60405180910390fd5b809150505b92915050565b5f6126dd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506127a3565b905092915050565b5f8183116126f357826126f5565b815b905092915050565b5f80828461270b91906135d1565b905083811015612750576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274790613935565b60405180910390fd5b8091505092915050565b5f61279b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122f0565b905092915050565b5f80831182906127e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e09190612874565b60405180910390fd5b505f83856127f79190613066565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61284682612804565b612850818561280e565b935061286081856020860161281e565b6128698161282c565b840191505092915050565b5f6020820190508181035f83015261288c818461283c565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6128ce826128a5565b9050919050565b6128de816128c4565b81146128e8575f80fd5b50565b5f813590506128f9816128d5565b92915050565b5f819050919050565b612911816128ff565b811461291b575f80fd5b50565b5f8135905061292c81612908565b92915050565b5f80604083850312156129485761294761289d565b5b5f612955858286016128eb565b92505060206129668582860161291e565b9150509250929050565b5f8115159050919050565b61298481612970565b82525050565b5f60208201905061299d5f83018461297b565b92915050565b6129ac816128ff565b82525050565b5f6020820190506129c55f8301846129a3565b92915050565b5f805f606084860312156129e2576129e161289d565b5b5f6129ef868287016128eb565b9350506020612a00868287016128eb565b9250506040612a118682870161291e565b9150509250925092565b5f60ff82169050919050565b612a3081612a1b565b82525050565b5f602082019050612a495f830184612a27565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612a898261282c565b810181811067ffffffffffffffff82111715612aa857612aa7612a53565b5b80604052505050565b5f612aba612894565b9050612ac68282612a80565b919050565b5f67ffffffffffffffff821115612ae557612ae4612a53565b5b602082029050602081019050919050565b5f80fd5b5f612b0c612b0784612acb565b612ab1565b90508083825260208201905060208402830185811115612b2f57612b2e612af6565b5b835b81811015612b585780612b4488826128eb565b845260208401935050602081019050612b31565b5050509392505050565b5f82601f830112612b7657612b75612a4f565b5b8135612b86848260208601612afa565b91505092915050565b5f60208284031215612ba457612ba361289d565b5b5f82013567ffffffffffffffff811115612bc157612bc06128a1565b5b612bcd84828501612b62565b91505092915050565b5f60208284031215612beb57612bea61289d565b5b5f612bf8848285016128eb565b91505092915050565b5f60208284031215612c1657612c1561289d565b5b5f612c238482850161291e565b91505092915050565b612c35816128c4565b82525050565b5f602082019050612c4e5f830184612c2c565b92915050565b5f8060408385031215612c6a57612c6961289d565b5b5f612c77858286016128eb565b9250506020612c88858286016128eb565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612cc660208361280e565b9150612cd182612c92565b602082019050919050565b5f6020820190508181035f830152612cf381612cba565b9050919050565b5f819050919050565b5f819050919050565b5f612d26612d21612d1c84612cfa565b612d03565b6128ff565b9050919050565b612d3681612d0c565b82525050565b5f602082019050612d4f5f830184612d2d565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612dd757808604811115612db357612db2612d55565b5b6001851615612dc25780820291505b8081029050612dd085612d82565b9450612d97565b94509492505050565b5f82612def5760019050612eaa565b81612dfc575f9050612eaa565b8160018114612e125760028114612e1c57612e4b565b6001915050612eaa565b60ff841115612e2e57612e2d612d55565b5b8360020a915084821115612e4557612e44612d55565b5b50612eaa565b5060208310610133831016604e8410600b8410161715612e805782820a905083811115612e7b57612e7a612d55565b5b612eaa565b612e8d8484846001612d8e565b92509050818404811115612ea457612ea3612d55565b5b81810290505b9392505050565b5f612ebb826128ff565b9150612ec683612a1b565b9250612ef37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612de0565b905092915050565b5f612f05826128ff565b9150612f10836128ff565b9250828202612f1e816128ff565b91508282048414831517612f3557612f34612d55565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f43616c6c6572206973206e6f7420746865207461782077616c6c6574000000005f82015250565b5f612f9d601c8361280e565b9150612fa882612f69565b602082019050919050565b5f6020820190508181035f830152612fca81612f91565b9050919050565b7f496e76616c69642070657263656e7461676500000000000000000000000000005f82015250565b5f61300560128361280e565b915061301082612fd1565b602082019050919050565b5f6020820190508181035f83015261303281612ff9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613070826128ff565b915061307b836128ff565b92508261308b5761308a613039565b5b828204905092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6130ca60178361280e565b91506130d582613096565b602082019050919050565b5f6020820190508181035f8301526130f7816130be565b9050919050565b5f8151905061310c816128d5565b92915050565b5f602082840312156131275761312661289d565b5b5f613134848285016130fe565b91505092915050565b5f6040820190506131505f830185612c2c565b61315d6020830184612c2c565b9392505050565b5f60c0820190506131775f830189612c2c565b61318460208301886129a3565b6131916040830187612d2d565b61319e6060830186612d2d565b6131ab6080830185612c2c565b6131b860a08301846129a3565b979650505050505050565b5f815190506131d181612908565b92915050565b5f805f606084860312156131ee576131ed61289d565b5b5f6131fb868287016131c3565b935050602061320c868287016131c3565b925050604061321d868287016131c3565b9150509250925092565b5f60408201905061323a5f830185612c2c565b61324760208301846129a3565b9392505050565b61325781612970565b8114613261575f80fd5b50565b5f815190506132728161324e565b92915050565b5f6020828403121561328d5761328c61289d565b5b5f61329a84828501613264565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6132fd60248361280e565b9150613308826132a3565b604082019050919050565b5f6020820190508181035f83015261332a816132f1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61338b60228361280e565b915061339682613331565b604082019050919050565b5f6020820190508181035f8301526133b88161337f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61341960258361280e565b9150613424826133bf565b604082019050919050565b5f6020820190508181035f8301526134468161340d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6134a760238361280e565b91506134b28261344d565b604082019050919050565b5f6020820190508181035f8301526134d48161349b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61353560298361280e565b9150613540826134db565b604082019050919050565b5f6020820190508181035f83015261356281613529565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61359d60198361280e565b91506135a882613569565b602082019050919050565b5f6020820190508181035f8301526135ca81613591565b9050919050565b5f6135db826128ff565b91506135e6836128ff565b92508282019050808211156135fe576135fd612d55565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613638601a8361280e565b915061364382613604565b602082019050919050565b5f6020820190508181035f8301526136658161362c565b9050919050565b5f613676826128ff565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036136a8576136a7612d55565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6136e760178361280e565b91506136f2826136b3565b602082019050919050565b5f6020820190508181035f830152613714816136db565b9050919050565b5f613725826128ff565b9150613730836128ff565b925082820390508181111561374857613747612d55565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613780816128c4565b82525050565b5f6137918383613777565b60208301905092915050565b5f602082019050919050565b5f6137b38261374e565b6137bd8185613758565b93506137c883613768565b805f5b838110156137f85781516137df8882613786565b97506137ea8361379d565b9250506001810190506137cb565b5085935050505092915050565b5f60a0820190506138185f8301886129a3565b6138256020830187612d2d565b818103604083015261383781866137a9565b90506138466060830185612c2c565b61385360808301846129a3565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6138b760218361280e565b91506138c28261385d565b604082019050919050565b5f6020820190508181035f8301526138e4816138ab565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61391f601b8361280e565b915061392a826138eb565b602082019050919050565b5f6020820190508181035f83015261394c81613913565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122085d8f7c9280fbe19910cd81103f78b29a6811d6c742545520de7ad8536a5ac3a64736f6c634300081a0033
Deployed Bytecode
0x608060405260043610610184575f3560e01c8063715018a6116100d05780638f9a55c011610089578063bf474bed11610063578063bf474bed14610507578063d15d476414610531578063d34628cc14610547578063dd62ed3e1461056f5761018b565b80638f9a55c01461047757806395d89b41146104a1578063a9059cbb146104cb5761018b565b8063715018a6146103cb5780637d1db4a5146103e15780638588daec1461040b57806386bdcc2b146104215780638a8c523c146104375780638da5cb5b1461044d5761018b565b8063313ce5671161013d5780634a7606e7116101175780634a7606e7146103295780634b56ed131461033f5780635e52fe401461036757806370a082311461038f5761018b565b8063313ce5671461029b57806331c2d847146102c55780633bbac579146102ed5761018b565b806306fdde031461018f578063095ea7b3146101b95780630faee56f146101f557806314572f1b1461021f57806318160ddd1461023557806323b872dd1461025f5761018b565b3661018b57005b5f80fd5b34801561019a575f80fd5b506101a36105ab565b6040516101b09190612874565b60405180910390f35b3480156101c4575f80fd5b506101df60048036038101906101da9190612932565b6105e8565b6040516101ec919061298a565b60405180910390f35b348015610200575f80fd5b50610209610605565b60405161021691906129b2565b60405180910390f35b34801561022a575f80fd5b5061023361060b565b005b348015610240575f80fd5b506102496106df565b60405161025691906129b2565b60405180910390f35b34801561026a575f80fd5b50610285600480360381019061028091906129cb565b610703565b604051610292919061298a565b60405180910390f35b3480156102a6575f80fd5b506102af6107d7565b6040516102bc9190612a36565b60405180910390f35b3480156102d0575f80fd5b506102eb60048036038101906102e69190612b8f565b6107df565b005b3480156102f8575f80fd5b50610313600480360381019061030e9190612bd6565b6108fd565b604051610320919061298a565b60405180910390f35b348015610334575f80fd5b5061033d61094f565b005b34801561034a575f80fd5b5061036560048036038101906103609190612c01565b610a29565b005b348015610372575f80fd5b5061038d60048036038101906103889190612c01565b610ab5565b005b34801561039a575f80fd5b506103b560048036038101906103b09190612bd6565b610bfb565b6040516103c291906129b2565b60405180910390f35b3480156103d6575f80fd5b506103df610c41565b005b3480156103ec575f80fd5b506103f5610d8f565b60405161040291906129b2565b60405180910390f35b348015610416575f80fd5b5061041f610d95565b005b34801561042c575f80fd5b50610435610e70565b005b348015610442575f80fd5b5061044b610f1f565b005b348015610458575f80fd5b5061046161143f565b60405161046e9190612c3b565b60405180910390f35b348015610482575f80fd5b5061048b611466565b60405161049891906129b2565b60405180910390f35b3480156104ac575f80fd5b506104b561146c565b6040516104c29190612874565b60405180910390f35b3480156104d6575f80fd5b506104f160048036038101906104ec9190612932565b6114a9565b6040516104fe919061298a565b60405180910390f35b348015610512575f80fd5b5061051b6114c6565b60405161052891906129b2565b60405180910390f35b34801561053c575f80fd5b506105456114cc565b005b348015610552575f80fd5b5061056d60048036038101906105689190612b8f565b6115fe565b005b34801561057a575f80fd5b5061059560048036038101906105909190612c54565b61171d565b6040516105a291906129b2565b60405180910390f35b60606040518060400160405280600681526020017f5370726f746f0000000000000000000000000000000000000000000000000000815250905090565b5f6105fb6105f461179f565b84846117a6565b6001905092915050565b60125481565b61061361179f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461069f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069690612cdc565b60405180910390fd5b5f600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516106d59190612d3c565b60405180910390a1565b5f6009600a6106ee9190612eb1565b6402540be4006106fe9190612efb565b905090565b5f61070f848484611969565b6107cc8461071b61179f565b6107c7856040518060600160405280602881526020016139546028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61077e61179f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122f09092919063ffffffff16565b6117a6565b600190509392505050565b5f6009905090565b6107e761179f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610873576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086a90612cdc565b60405180910390fd5b5f5b81518110156108f9575f60045f84848151811061089557610894612f3c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610875565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661098f61179f565b73ffffffffffffffffffffffffffffffffffffffff16146109e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109dc90612fb3565b60405180910390fd5b5f6109ef30610bfb565b90505f811115610a2657610a253060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611969565b5b50565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a6961179f565b73ffffffffffffffffffffffffffffffffffffffff1614610a88575f80fd5b6008548111158015610a9c57506009548111155b610aa4575f80fd5b806008819055508060098190555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610af561179f565b73ffffffffffffffffffffffffffffffffffffffff1614610b4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4290612fb3565b60405180910390fd5b5f81118015610b5b575060648111155b610b9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b919061301b565b60405180910390fd5b5f610ba430610bfb565b90505f60648383610bb59190612efb565b610bbf9190613066565b90505f811115610bf657610bf53060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611969565b5b505050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c4961179f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccc90612cdc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f5481565b610d9d61179f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2090612cdc565b60405180910390fd5b5f6006819055505f6007819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f604051610e669190612d3c565b60405180910390a1565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610eb061179f565b73ffffffffffffffffffffffffffffffffffffffff1614610ecf575f80fd5b5f610ed930610bfb565b90505f81118015610ef65750601460169054906101000a900460ff165b15610f0557610f0481612352565b5b5f4790505f811115610f1b57610f1a816125bd565b5b5050565b610f2761179f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610faa90612cdc565b60405180910390fd5b60148054906101000a900460ff1615611001576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff8906130e0565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061109e3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6110899190612eb1565b6402540be4006110999190612efb565b6117a6565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611108573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061112c9190613112565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111d69190613112565b6040518363ffffffff1660e01b81526004016111f392919061313d565b6020604051808303815f875af115801561120f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112339190613112565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306112ba30610bfb565b5f806112c461143f565b426040518863ffffffff1660e01b81526004016112e696959493929190613164565b60606040518083038185885af1158015611302573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061132791906131d7565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016113c7929190613227565b6020604051808303815f875af11580156113e3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114079190613278565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600681526020017f5350524f544f0000000000000000000000000000000000000000000000000000815250905090565b5f6114bc6114b561179f565b8484611969565b6001905092915050565b60115481565b6114d461179f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611560576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155790612cdc565b60405180910390fd5b6009600a61156e9190612eb1565b6402540be40061157e9190612efb565b600f819055506009600a6115929190612eb1565b6402540be4006115a29190612efb565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6115d79190612eb1565b6402540be4006115e79190612efb565b6040516115f491906129b2565b60405180910390a1565b61160661179f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611692576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168990612cdc565b60405180910390fd5b5f5b815181101561171957600160045f8484815181106116b5576116b4612f3c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050611694565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611814576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180b90613313565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611882576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611879906133a1565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161195c91906129b2565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ce9061342f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3c906134bd565b60405180910390fd5b5f8111611a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7e9061354b565b60405180910390fd5b5f611a9061143f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611afe5750611ace61143f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156120405760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611ba1575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611ba9575f80fd5b5f600e5403611bf157611bee6064611be0600a54600e5411611bcd57600654611bd1565b6008545b8561262590919063ffffffff16565b61269c90919063ffffffff16565b90505b5f600e541115611c2657611c236064611c15600d548561262590919063ffffffff16565b61269c90919063ffffffff16565b90505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ccf575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d22575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611e1a57600f54821115611d6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d63906135b3565b60405180910390fd5b60105482611d7985610bfb565b611d8391906135d1565b1115611dc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbb9061364e565b60405180910390fd5b611e006064611df2600a54600e5411611ddf57600654611de3565b6008545b8561262590919063ffffffff16565b61269c90919063ffffffff16565b9050600e5f815480929190611e149061366c565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ea257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ee657611ee36064611ed5600b54600e5411611ec257600754611ec6565b6009545b8561262590919063ffffffff16565b61269c90919063ffffffff16565b90505b5f611ef030610bfb565b9050601460159054906101000a900460ff16158015611f5b575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611f735750601460169054906101000a900460ff165b8015611f80575060115481115b8015611f8f5750600c54600e54115b1561203e57601654431115611fa6575f6015819055505b600360155410611feb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe2906136fd565b60405180910390fd5b61200861200384611ffe846012546126e5565b6126e5565b612352565b5f4790505f81111561201e5761201d476125bd565b5b60155f8154809291906120309061366c565b919050555043601681905550505b505b5f81111561213f576120988160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126fd90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161213691906129b2565b60405180910390a35b61218f8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461275a90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506122326121e6828461275a90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126fd90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6122d5848661275a90919063ffffffff16565b6040516122e291906129b2565b60405180910390a350505050565b5f838311158290612337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232e9190612874565b60405180910390fd5b505f8385612345919061371b565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561238957612388612a53565b5b6040519080825280602002602001820160405280156123b75781602001602082028036833780820191505090505b50905030815f815181106123ce576123cd612f3c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612472573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124969190613112565b816001815181106124aa576124a9612f3c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125103060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846117a6565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612572959493929190613805565b5f604051808303815f87803b158015612589575f80fd5b505af115801561259b573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612621573d5f803e3d5ffd5b5050565b5f808303612635575f9050612696565b5f82846126429190612efb565b90508284826126519190613066565b14612691576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612688906138cd565b60405180910390fd5b809150505b92915050565b5f6126dd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506127a3565b905092915050565b5f8183116126f357826126f5565b815b905092915050565b5f80828461270b91906135d1565b905083811015612750576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274790613935565b60405180910390fd5b8091505092915050565b5f61279b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122f0565b905092915050565b5f80831182906127e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e09190612874565b60405180910390fd5b505f83856127f79190613066565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61284682612804565b612850818561280e565b935061286081856020860161281e565b6128698161282c565b840191505092915050565b5f6020820190508181035f83015261288c818461283c565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6128ce826128a5565b9050919050565b6128de816128c4565b81146128e8575f80fd5b50565b5f813590506128f9816128d5565b92915050565b5f819050919050565b612911816128ff565b811461291b575f80fd5b50565b5f8135905061292c81612908565b92915050565b5f80604083850312156129485761294761289d565b5b5f612955858286016128eb565b92505060206129668582860161291e565b9150509250929050565b5f8115159050919050565b61298481612970565b82525050565b5f60208201905061299d5f83018461297b565b92915050565b6129ac816128ff565b82525050565b5f6020820190506129c55f8301846129a3565b92915050565b5f805f606084860312156129e2576129e161289d565b5b5f6129ef868287016128eb565b9350506020612a00868287016128eb565b9250506040612a118682870161291e565b9150509250925092565b5f60ff82169050919050565b612a3081612a1b565b82525050565b5f602082019050612a495f830184612a27565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612a898261282c565b810181811067ffffffffffffffff82111715612aa857612aa7612a53565b5b80604052505050565b5f612aba612894565b9050612ac68282612a80565b919050565b5f67ffffffffffffffff821115612ae557612ae4612a53565b5b602082029050602081019050919050565b5f80fd5b5f612b0c612b0784612acb565b612ab1565b90508083825260208201905060208402830185811115612b2f57612b2e612af6565b5b835b81811015612b585780612b4488826128eb565b845260208401935050602081019050612b31565b5050509392505050565b5f82601f830112612b7657612b75612a4f565b5b8135612b86848260208601612afa565b91505092915050565b5f60208284031215612ba457612ba361289d565b5b5f82013567ffffffffffffffff811115612bc157612bc06128a1565b5b612bcd84828501612b62565b91505092915050565b5f60208284031215612beb57612bea61289d565b5b5f612bf8848285016128eb565b91505092915050565b5f60208284031215612c1657612c1561289d565b5b5f612c238482850161291e565b91505092915050565b612c35816128c4565b82525050565b5f602082019050612c4e5f830184612c2c565b92915050565b5f8060408385031215612c6a57612c6961289d565b5b5f612c77858286016128eb565b9250506020612c88858286016128eb565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612cc660208361280e565b9150612cd182612c92565b602082019050919050565b5f6020820190508181035f830152612cf381612cba565b9050919050565b5f819050919050565b5f819050919050565b5f612d26612d21612d1c84612cfa565b612d03565b6128ff565b9050919050565b612d3681612d0c565b82525050565b5f602082019050612d4f5f830184612d2d565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612dd757808604811115612db357612db2612d55565b5b6001851615612dc25780820291505b8081029050612dd085612d82565b9450612d97565b94509492505050565b5f82612def5760019050612eaa565b81612dfc575f9050612eaa565b8160018114612e125760028114612e1c57612e4b565b6001915050612eaa565b60ff841115612e2e57612e2d612d55565b5b8360020a915084821115612e4557612e44612d55565b5b50612eaa565b5060208310610133831016604e8410600b8410161715612e805782820a905083811115612e7b57612e7a612d55565b5b612eaa565b612e8d8484846001612d8e565b92509050818404811115612ea457612ea3612d55565b5b81810290505b9392505050565b5f612ebb826128ff565b9150612ec683612a1b565b9250612ef37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612de0565b905092915050565b5f612f05826128ff565b9150612f10836128ff565b9250828202612f1e816128ff565b91508282048414831517612f3557612f34612d55565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f43616c6c6572206973206e6f7420746865207461782077616c6c6574000000005f82015250565b5f612f9d601c8361280e565b9150612fa882612f69565b602082019050919050565b5f6020820190508181035f830152612fca81612f91565b9050919050565b7f496e76616c69642070657263656e7461676500000000000000000000000000005f82015250565b5f61300560128361280e565b915061301082612fd1565b602082019050919050565b5f6020820190508181035f83015261303281612ff9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613070826128ff565b915061307b836128ff565b92508261308b5761308a613039565b5b828204905092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6130ca60178361280e565b91506130d582613096565b602082019050919050565b5f6020820190508181035f8301526130f7816130be565b9050919050565b5f8151905061310c816128d5565b92915050565b5f602082840312156131275761312661289d565b5b5f613134848285016130fe565b91505092915050565b5f6040820190506131505f830185612c2c565b61315d6020830184612c2c565b9392505050565b5f60c0820190506131775f830189612c2c565b61318460208301886129a3565b6131916040830187612d2d565b61319e6060830186612d2d565b6131ab6080830185612c2c565b6131b860a08301846129a3565b979650505050505050565b5f815190506131d181612908565b92915050565b5f805f606084860312156131ee576131ed61289d565b5b5f6131fb868287016131c3565b935050602061320c868287016131c3565b925050604061321d868287016131c3565b9150509250925092565b5f60408201905061323a5f830185612c2c565b61324760208301846129a3565b9392505050565b61325781612970565b8114613261575f80fd5b50565b5f815190506132728161324e565b92915050565b5f6020828403121561328d5761328c61289d565b5b5f61329a84828501613264565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6132fd60248361280e565b9150613308826132a3565b604082019050919050565b5f6020820190508181035f83015261332a816132f1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61338b60228361280e565b915061339682613331565b604082019050919050565b5f6020820190508181035f8301526133b88161337f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61341960258361280e565b9150613424826133bf565b604082019050919050565b5f6020820190508181035f8301526134468161340d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6134a760238361280e565b91506134b28261344d565b604082019050919050565b5f6020820190508181035f8301526134d48161349b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61353560298361280e565b9150613540826134db565b604082019050919050565b5f6020820190508181035f83015261356281613529565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61359d60198361280e565b91506135a882613569565b602082019050919050565b5f6020820190508181035f8301526135ca81613591565b9050919050565b5f6135db826128ff565b91506135e6836128ff565b92508282019050808211156135fe576135fd612d55565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613638601a8361280e565b915061364382613604565b602082019050919050565b5f6020820190508181035f8301526136658161362c565b9050919050565b5f613676826128ff565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036136a8576136a7612d55565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6136e760178361280e565b91506136f2826136b3565b602082019050919050565b5f6020820190508181035f830152613714816136db565b9050919050565b5f613725826128ff565b9150613730836128ff565b925082820390508181111561374857613747612d55565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613780816128c4565b82525050565b5f6137918383613777565b60208301905092915050565b5f602082019050919050565b5f6137b38261374e565b6137bd8185613758565b93506137c883613768565b805f5b838110156137f85781516137df8882613786565b97506137ea8361379d565b9250506001810190506137cb565b5085935050505092915050565b5f60a0820190506138185f8301886129a3565b6138256020830187612d2d565b818103604083015261383781866137a9565b90506138466060830185612c2c565b61385360808301846129a3565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6138b760218361280e565b91506138c28261385d565b604082019050919050565b5f6020820190508181035f8301526138e4816138ab565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61391f601b8361280e565b915061392a826138eb565b602082019050919050565b5f6020820190508181035f83015261394c81613913565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122085d8f7c9280fbe19910cd81103f78b29a6811d6c742545520de7ad8536a5ac3a64736f6c634300081a0033
Deployed Bytecode Sourcemap
3668:10384:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5733:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6566:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4825:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10626:122;;;;;;;;;;;;;:::i;:::-;;6010:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6735:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5919:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11190:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11360:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12789:479;;;;;;;;;;;;;:::i;:::-;;12134:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13280:763;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6113:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2749:148;;;;;;;;;;;;;:::i;:::-;;4615:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10757:151;;;;;;;;;;;;;:::i;:::-;;12408:373;;;;;;;;;;;;;:::i;:::-;;11451:673;;;;;;;;;;;;;:::i;:::-;;2535:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4683:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5824:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6240:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4752:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10454:164;;;;;;;;;;;;;:::i;:::-;;11018;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6415:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5733:83;5770:13;5803:5;;;;;;;;;;;;;;;;;5796:12;;5733:83;:::o;6566:161::-;6641:4;6658:39;6667:12;:10;:12::i;:::-;6681:7;6690:6;6658:8;:39::i;:::-;6715:4;6708:11;;6566:161;;;;:::o;4825:53::-;;;;:::o;10626:122::-;2672:12;:10;:12::i;:::-;2662:22;;:6;;;;;;;;;;:22;;;2654:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10702:1:::1;10687:12;:16;;;;10719:21;10738:1;10719:21;;;;;;:::i;:::-;;;;;;;;10626:122::o:0;6010:95::-;6063:7;4424:1;4481:2;:13;;;;:::i;:::-;4467:11;:27;;;;:::i;:::-;6083:14;;6010:95;:::o;6735:313::-;6833:4;6850:36;6860:6;6868:9;6879:6;6850:9;:36::i;:::-;6897:121;6906:6;6914:12;:10;:12::i;:::-;6928:89;6966:6;6928:89;;;;;;;;;;;;;;;;;:11;:19;6940:6;6928:19;;;;;;;;;;;;;;;:33;6948:12;:10;:12::i;:::-;6928:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6897:8;:121::i;:::-;7036:4;7029:11;;6735:313;;;;;:::o;5919:83::-;5960:5;4424:1;5978:16;;5919:83;:::o;11190:162::-;2672:12;:10;:12::i;:::-;2662:22;;:6;;;;;;;;;;:22;;;2654:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11263:6:::1;11258:87;11279:6;:13;11275:1;:17;11258:87;;;11330:5;11312:4;:15;11317:6;11324:1;11317:9;;;;;;;;:::i;:::-;;;;;;;;11312:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;11294:3;;;;;;;11258:87;;;;11190:162:::0;:::o;11360:83::-;11407:4;11428;:7;11433:1;11428:7;;;;;;;;;;;;;;;;;;;;;;;;;11421:14;;11360:83;;;:::o;12789:479::-;12920:10;;;;;;;;;;;12906:24;;:12;:10;:12::i;:::-;:24;;;12898:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;13026:20;13049:24;13067:4;13049:9;:24::i;:::-;13026:47;;13181:1;13166:12;:16;13162:99;;;13199:50;13217:4;13224:10;;;;;;;;;;;13236:12;13199:9;:50::i;:::-;13162:99;12825:443;12789:479::o;12134:229::-;12214:10;;;;;;;;;;;12200:24;;:12;:10;:12::i;:::-;:24;;;12192:33;;;;;;12253:12;;12244:7;:21;;:47;;;;;12278:13;;12269:7;:22;;12244:47;12236:56;;;;;;12316:7;12303:12;:20;;;;12348:7;12334:13;:21;;;;12134:229;:::o;13280:763::-;13433:10;;;;;;;;;;;13417:26;;:12;:10;:12::i;:::-;:26;;;13409:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13575:1;13562:10;:14;:35;;;;;13594:3;13580:10;:17;;13562:35;13554:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;13684:20;13707:24;13725:4;13707:9;:24::i;:::-;13684:47;;13812:14;13859:3;13845:10;13830:12;:25;;;;:::i;:::-;13829:33;;;;:::i;:::-;13812:50;;13960:1;13951:6;:10;13947:89;;;13979:44;13997:4;14004:10;;;;;;;;;;;14016:6;13979:9;:44::i;:::-;13947:89;13334:709;;13280:763;:::o;6113:119::-;6179:7;6206:9;:18;6216:7;6206:18;;;;;;;;;;;;;;;;6199:25;;6113:119;;;:::o;2749:148::-;2672:12;:10;:12::i;:::-;2662:22;;:6;;;;;;;;;;:22;;;2654:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2856:1:::1;2819:40;;2840:6;::::0;::::1;;;;;;;;2819:40;;;;;;;;;;;;2887:1;2870:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2749:148::o:0;4615:55::-;;;;:::o;10757:151::-;2672:12;:10;:12::i;:::-;2662:22;;:6;;;;;;;;;;:22;;;2654:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10832:1:::1;10815:14;:18;;;;10862:1;10844:15;:19;;;;10879:21;10898:1;10879:21;;;;;;:::i;:::-;;;;;;;;10757:151::o:0;12408:373::-;12473:10;;;;;;;;;;;12459:24;;:12;:10;:12::i;:::-;:24;;;12451:33;;;;;;12495:20;12516:24;12534:4;12516:9;:24::i;:::-;12495:45;;12569:1;12554:12;:16;:31;;;;;12574:11;;;;;;;;;;;12554:31;12551:92;;;12601:30;12618:12;12601:16;:30::i;:::-;12551:92;12653:18;12672:21;12653:40;;12721:1;12708:10;:14;12704:70;;;12738:24;12751:10;12738:12;:24::i;:::-;12704:70;12440:341;;12408:373::o;11451:673::-;2672:12;:10;:12::i;:::-;2662:22;;:6;;;;;;;;;;:22;;;2654:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11517:11:::1;::::0;::::1;;;;;;;;11516:12;11508:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11603:42;11566:15;;:80;;;;;;;;;;;;;;;;;;11657:58;11674:4;11689:15;;;;;;;;;;;4424:1;4481:2;:13;;;;:::i;:::-;4467:11;:27;;;;:::i;:::-;11657:8;:58::i;:::-;11760:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11742:55;;;11806:4;11813:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11742:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11726:13;;:110;;;;;;;;;;;;;;;;;;11847:15;;;;;;;;;;;:31;;;11886:21;11917:4;11923:24;11941:4;11923:9;:24::i;:::-;11948:1;11950::::0;11952:7:::1;:5;:7::i;:::-;11960:15;11847:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11994:13;;;;;;;;;;;11987:29;;;12025:15;;;;;;;;;;;12043:14;11987:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12083:4;12069:11;;:18;;;;;;;;;;;;;;;;;;12112:4;12098:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11451:673::o:0;2535:79::-;2573:7;2600:6;;;;;;;;;;;2593:13;;2535:79;:::o;4683:57::-;;;;:::o;5824:87::-;5863:13;5896:7;;;;;;;;;;;;;;;;;5889:14;;5824:87;:::o;6240:167::-;6318:4;6335:42;6345:12;:10;:12::i;:::-;6359:9;6370:6;6335:9;:42::i;:::-;6395:4;6388:11;;6240:167;;;;:::o;4752:59::-;;;;:::o;10454:164::-;2672:12;:10;:12::i;:::-;2662:22;;:6;;;;;;;;;;:22;;;2654:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4424:1:::1;4481:2;:13;;;;:::i;:::-;4467:11;:27;;;;:::i;:::-;10512:12;:22;;;;4424:1;4481:2;:13;;;;:::i;:::-;4467:11;:27;;;;:::i;:::-;10545:14;:22;;;;10583:27;4424:1;4481:2;:13;;;;:::i;:::-;4467:11;:27;;;;:::i;:::-;10583;;;;;;:::i;:::-;;;;;;;;10454:164::o:0;11018:::-;2672:12;:10;:12::i;:::-;2662:22;;:6;;;;;;;;;;:22;;;2654:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11092:6:::1;11087:88;11108:5;:12;11104:1;:16;11087:88;;;11159:4;11142;:14;11147:5;11153:1;11147:8;;;;;;;;:::i;:::-;;;;;;;;11142:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11122:3;;;;;;;11087:88;;;;11018:164:::0;:::o;6415:143::-;6496:7;6523:11;:18;6535:5;6523:18;;;;;;;;;;;;;;;:27;6542:7;6523:27;;;;;;;;;;;;;;;;6516:34;;6415:143;;;;:::o;290:98::-;343:7;370:10;363:17;;290:98;:::o;7056:335::-;7166:1;7149:19;;:5;:19;;;7141:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7247:1;7228:21;;:7;:21;;;7220:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7329:6;7299:11;:18;7311:5;7299:18;;;;;;;;;;;;;;;:27;7318:7;7299:27;;;;;;;;;;;;;;;:36;;;;7367:7;7351:32;;7360:5;7351:32;;;7376:6;7351:32;;;;;;:::i;:::-;;;;;;;;7056:335;;;:::o;7399:2448::-;7503:1;7487:18;;:4;:18;;;7479:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7580:1;7566:16;;:2;:16;;;7558:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7650:1;7641:6;:10;7633:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7708:17;7750:7;:5;:7::i;:::-;7742:15;;:4;:15;;;;:32;;;;;7767:7;:5;:7::i;:::-;7761:13;;:2;:13;;;;7742:32;7738:1753;;;7800:4;:10;7805:4;7800:10;;;;;;;;;;;;;;;;;;;;;;;;;7799:11;:24;;;;;7815:4;:8;7820:2;7815:8;;;;;;;;;;;;;;;;;;;;;;;;;7814:9;7799:24;7791:33;;;;;;7855:1;7844:9;;:12;7841:139;;7888:76;7960:3;7888:67;7910:15;;7900:9;;:25;7899:55;;7940:14;;7899:55;;;7927:12;;7899:55;7888:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7876:88;;7841:139;8007:1;7997:9;;:11;7994:95;;;8040:33;8069:3;8040:24;8051:12;;8040:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;8028:45;;7994:95;8117:13;;;;;;;;;;;8109:21;;:4;:21;;;:55;;;;;8148:15;;;;;;;;;;;8134:30;;:2;:30;;;;8109:55;:83;;;;;8170:18;:22;8189:2;8170:22;;;;;;;;;;;;;;;;;;;;;;;;;8168:24;8109:83;8105:420;;;8232:12;;8222:6;:22;;8214:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8327:14;;8317:6;8301:13;8311:2;8301:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8293:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8403:76;8475:3;8403:67;8425:15;;8415:9;;:25;8414:55;;8455:14;;8414:55;;;8442:12;;8414:55;8403:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8391:88;;8498:9;;:11;;;;;;;;;:::i;:::-;;;;;;8105:420;8550:13;;;;;;;;;;;8544:19;;:2;:19;;;:43;;;;;8582:4;8567:20;;:4;:20;;;;8544:43;8541:174;;;8620:79;8695:3;8620:70;8642:16;;8632:9;;:26;8631:58;;8674:15;;8631:58;;;8660:13;;8631:58;8620:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8608:91;;8541:174;8731:28;8762:24;8780:4;8762:9;:24::i;:::-;8731:55;;8806:6;;;;;;;;;;;8805:7;:30;;;;;8822:13;;;;;;;;;;;8816:19;;:2;:19;;;8805:30;:45;;;;;8839:11;;;;;;;;;;;8805:45;:89;;;;;8877:17;;8854:20;:40;8805:89;:123;;;;;8910:18;;8898:9;;:30;8805:123;8801:679;;;8968:13;;8953:12;:28;8949:90;;;9018:1;9006:9;:13;;;;8949:90;9077:1;9065:9;;:13;9057:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;9125:69;9142:51;9146:6;9154:38;9158:20;9180:11;;9154:3;:38::i;:::-;9142:3;:51::i;:::-;9125:16;:69::i;:::-;9213:26;9242:21;9213:50;;9307:1;9286:18;:22;9282:106;;;9333:35;9346:21;9333:12;:35::i;:::-;9282:106;9406:9;;:11;;;;;;;;;:::i;:::-;;;;;;9452:12;9436:13;:28;;;;8930:550;8801:679;7776:1715;7738:1753;9516:1;9506:9;:11;9503:161;;;9556:39;9585:9;9556;:24;9574:4;9556:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9531:9;:24;9549:4;9531:24;;;;;;;;;;;;;;;:64;;;;9636:4;9613:39;;9622:4;9613:39;;;9642:9;9613:39;;;;;;:::i;:::-;;;;;;;;9503:161;9690:27;9710:6;9690:9;:15;9700:4;9690:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9674:9;:15;9684:4;9674:15;;;;;;;;;;;;;;;:43;;;;9742:40;9760:21;9771:9;9760:6;:10;;:21;;;;:::i;:::-;9742:9;:13;9752:2;9742:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9728:9;:13;9738:2;9728:13;;;;;;;;;;;;;;;:54;;;;9813:2;9798:41;;9807:4;9798:41;;;9817:21;9828:9;9817:6;:10;;:21;;;;:::i;:::-;9798:41;;;;;;:::i;:::-;;;;;;;;7468:2379;7399:2448;;;:::o;1427:190::-;1513:7;1546:1;1541;:6;;1549:12;1533:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1573:9;1589:1;1585;:5;;;;:::i;:::-;1573:17;;1608:1;1601:8;;;1427:190;;;;;:::o;9963:483::-;5294:4;5285:6;;:13;;;;;;;;;;;;;;;;;;10041:21:::1;10079:1;10065:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10041:40;;10110:4;10092;10097:1;10092:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10136:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10126:4;10131:1;10126:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10169:62;10186:4;10201:15;;;;;;;;;;;10219:11;10169:8;:62::i;:::-;10242:15;;;;;;;;;;;:66;;;10323:11;10349:1;10365:4;10392;10412:15;10242:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10030:416;5330:5:::0;5321:6;;:14;;;;;;;;;;;;;;;;;;9963:483;:::o;10918:92::-;10975:10;;;;;;;;;;;:19;;:27;10995:6;10975:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10918:92;:::o;1625:246::-;1683:7;1712:1;1707;:6;1703:47;;1737:1;1730:8;;;;1703:47;1760:9;1776:1;1772;:5;;;;:::i;:::-;1760:17;;1805:1;1800;1796;:5;;;;:::i;:::-;:10;1788:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1862:1;1855:8;;;1625:246;;;;;:::o;1879:132::-;1937:7;1964:39;1968:1;1971;1964:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1957:46;;1879:132;;;;:::o;9857:98::-;9914:7;9941:1;9939;:3;9938:9;;9946:1;9938:9;;;9944:1;9938:9;9931:16;;9857:98;;;;:::o;1096:179::-;1154:7;1174:9;1190:1;1186;:5;;;;:::i;:::-;1174:17;;1215:1;1210;:6;;1202:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1266:1;1259:8;;;1096:179;;;;:::o;1283:136::-;1341:7;1368:43;1372:1;1375;1368:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1361:50;;1283:136;;;;:::o;2019:189::-;2105:7;2137:1;2133;:5;2140:12;2125:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2164:9;2180:1;2176;:5;;;;:::i;:::-;2164:17;;2199:1;2192:8;;;2019:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1242:75::-;1275:6;1308:2;1302:9;1292:19;;1242:75;:::o;1323:117::-;1432:1;1429;1422:12;1446:117;1555:1;1552;1545:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:117::-;4855:1;4852;4845:12;4869:180;4917:77;4914:1;4907:88;5014:4;5011:1;5004:15;5038:4;5035:1;5028:15;5055:281;5138:27;5160:4;5138:27;:::i;:::-;5130:6;5126:40;5268:6;5256:10;5253:22;5232:18;5220:10;5217:34;5214:62;5211:88;;;5279:18;;:::i;:::-;5211:88;5319:10;5315:2;5308:22;5098:238;5055:281;;:::o;5342:129::-;5376:6;5403:20;;:::i;:::-;5393:30;;5432:33;5460:4;5452:6;5432:33;:::i;:::-;5342:129;;;:::o;5477:311::-;5554:4;5644:18;5636:6;5633:30;5630:56;;;5666:18;;:::i;:::-;5630:56;5716:4;5708:6;5704:17;5696:25;;5776:4;5770;5766:15;5758:23;;5477:311;;;:::o;5794:117::-;5903:1;5900;5893:12;5934:710;6030:5;6055:81;6071:64;6128:6;6071:64;:::i;:::-;6055:81;:::i;:::-;6046:90;;6156:5;6185:6;6178:5;6171:21;6219:4;6212:5;6208:16;6201:23;;6272:4;6264:6;6260:17;6252:6;6248:30;6301:3;6293:6;6290:15;6287:122;;;6320:79;;:::i;:::-;6287:122;6435:6;6418:220;6452:6;6447:3;6444:15;6418:220;;;6527:3;6556:37;6589:3;6577:10;6556:37;:::i;:::-;6551:3;6544:50;6623:4;6618:3;6614:14;6607:21;;6494:144;6478:4;6473:3;6469:14;6462:21;;6418:220;;;6422:21;6036:608;;5934:710;;;;;:::o;6667:370::-;6738:5;6787:3;6780:4;6772:6;6768:17;6764:27;6754:122;;6795:79;;:::i;:::-;6754:122;6912:6;6899:20;6937:94;7027:3;7019:6;7012:4;7004:6;7000:17;6937:94;:::i;:::-;6928:103;;6744:293;6667:370;;;;:::o;7043:539::-;7127:6;7176:2;7164:9;7155:7;7151:23;7147:32;7144:119;;;7182:79;;:::i;:::-;7144:119;7330:1;7319:9;7315:17;7302:31;7360:18;7352:6;7349:30;7346:117;;;7382:79;;:::i;:::-;7346:117;7487:78;7557:7;7548:6;7537:9;7533:22;7487:78;:::i;:::-;7477:88;;7273:302;7043:539;;;;:::o;7588:329::-;7647:6;7696:2;7684:9;7675:7;7671:23;7667:32;7664:119;;;7702:79;;:::i;:::-;7664:119;7822:1;7847:53;7892:7;7883:6;7872:9;7868:22;7847:53;:::i;:::-;7837:63;;7793:117;7588:329;;;;:::o;7923:::-;7982:6;8031:2;8019:9;8010:7;8006:23;8002:32;7999:119;;;8037:79;;:::i;:::-;7999:119;8157:1;8182:53;8227:7;8218:6;8207:9;8203:22;8182:53;:::i;:::-;8172:63;;8128:117;7923:329;;;;:::o;8258:118::-;8345:24;8363:5;8345:24;:::i;:::-;8340:3;8333:37;8258:118;;:::o;8382:222::-;8475:4;8513:2;8502:9;8498:18;8490:26;;8526:71;8594:1;8583:9;8579:17;8570:6;8526:71;:::i;:::-;8382:222;;;;:::o;8610:474::-;8678:6;8686;8735:2;8723:9;8714:7;8710:23;8706:32;8703:119;;;8741:79;;:::i;:::-;8703:119;8861:1;8886:53;8931:7;8922:6;8911:9;8907:22;8886:53;:::i;:::-;8876:63;;8832:117;8988:2;9014:53;9059:7;9050:6;9039:9;9035:22;9014:53;:::i;:::-;9004:63;;8959:118;8610:474;;;;;:::o;9090:182::-;9230:34;9226:1;9218:6;9214:14;9207:58;9090:182;:::o;9278:366::-;9420:3;9441:67;9505:2;9500:3;9441:67;:::i;:::-;9434:74;;9517:93;9606:3;9517:93;:::i;:::-;9635:2;9630:3;9626:12;9619:19;;9278:366;;;:::o;9650:419::-;9816:4;9854:2;9843:9;9839:18;9831:26;;9903:9;9897:4;9893:20;9889:1;9878:9;9874:17;9867:47;9931:131;10057:4;9931:131;:::i;:::-;9923:139;;9650:419;;;:::o;10075:85::-;10120:7;10149:5;10138:16;;10075:85;;;:::o;10166:60::-;10194:3;10215:5;10208:12;;10166:60;;;:::o;10232:158::-;10290:9;10323:61;10341:42;10350:32;10376:5;10350:32;:::i;:::-;10341:42;:::i;:::-;10323:61;:::i;:::-;10310:74;;10232:158;;;:::o;10396:147::-;10491:45;10530:5;10491:45;:::i;:::-;10486:3;10479:58;10396:147;;:::o;10549:238::-;10650:4;10688:2;10677:9;10673:18;10665:26;;10701:79;10777:1;10766:9;10762:17;10753:6;10701:79;:::i;:::-;10549:238;;;;:::o;10793:180::-;10841:77;10838:1;10831:88;10938:4;10935:1;10928:15;10962:4;10959:1;10952:15;10979:102;11021:8;11068:5;11065:1;11061:13;11040:34;;10979:102;;;:::o;11087:848::-;11148:5;11155:4;11179:6;11170:15;;11203:5;11194:14;;11217:712;11238:1;11228:8;11225:15;11217:712;;;11333:4;11328:3;11324:14;11318:4;11315:24;11312:50;;;11342:18;;:::i;:::-;11312:50;11392:1;11382:8;11378:16;11375:451;;;11807:4;11800:5;11796:16;11787:25;;11375:451;11857:4;11851;11847:15;11839:23;;11887:32;11910:8;11887:32;:::i;:::-;11875:44;;11217:712;;;11087:848;;;;;;;:::o;11941:1073::-;11995:5;12186:8;12176:40;;12207:1;12198:10;;12209:5;;12176:40;12235:4;12225:36;;12252:1;12243:10;;12254:5;;12225:36;12321:4;12369:1;12364:27;;;;12405:1;12400:191;;;;12314:277;;12364:27;12382:1;12373:10;;12384:5;;;12400:191;12445:3;12435:8;12432:17;12429:43;;;12452:18;;:::i;:::-;12429:43;12501:8;12498:1;12494:16;12485:25;;12536:3;12529:5;12526:14;12523:40;;;12543:18;;:::i;:::-;12523:40;12576:5;;;12314:277;;12700:2;12690:8;12687:16;12681:3;12675:4;12672:13;12668:36;12650:2;12640:8;12637:16;12632:2;12626:4;12623:12;12619:35;12603:111;12600:246;;;12756:8;12750:4;12746:19;12737:28;;12791:3;12784:5;12781:14;12778:40;;;12798:18;;:::i;:::-;12778:40;12831:5;;12600:246;12871:42;12909:3;12899:8;12893:4;12890:1;12871:42;:::i;:::-;12856:57;;;;12945:4;12940:3;12936:14;12929:5;12926:25;12923:51;;;12954:18;;:::i;:::-;12923:51;13003:4;12996:5;12992:16;12983:25;;11941:1073;;;;;;:::o;13020:281::-;13078:5;13102:23;13120:4;13102:23;:::i;:::-;13094:31;;13146:25;13162:8;13146:25;:::i;:::-;13134:37;;13190:104;13227:66;13217:8;13211:4;13190:104;:::i;:::-;13181:113;;13020:281;;;;:::o;13307:410::-;13347:7;13370:20;13388:1;13370:20;:::i;:::-;13365:25;;13404:20;13422:1;13404:20;:::i;:::-;13399:25;;13459:1;13456;13452:9;13481:30;13499:11;13481:30;:::i;:::-;13470:41;;13660:1;13651:7;13647:15;13644:1;13641:22;13621:1;13614:9;13594:83;13571:139;;13690:18;;:::i;:::-;13571:139;13355:362;13307:410;;;;:::o;13723:180::-;13771:77;13768:1;13761:88;13868:4;13865:1;13858:15;13892:4;13889:1;13882:15;13909:178;14049:30;14045:1;14037:6;14033:14;14026:54;13909:178;:::o;14093:366::-;14235:3;14256:67;14320:2;14315:3;14256:67;:::i;:::-;14249:74;;14332:93;14421:3;14332:93;:::i;:::-;14450:2;14445:3;14441:12;14434:19;;14093:366;;;:::o;14465:419::-;14631:4;14669:2;14658:9;14654:18;14646:26;;14718:9;14712:4;14708:20;14704:1;14693:9;14689:17;14682:47;14746:131;14872:4;14746:131;:::i;:::-;14738:139;;14465:419;;;:::o;14890:168::-;15030:20;15026:1;15018:6;15014:14;15007:44;14890:168;:::o;15064:366::-;15206:3;15227:67;15291:2;15286:3;15227:67;:::i;:::-;15220:74;;15303:93;15392:3;15303:93;:::i;:::-;15421:2;15416:3;15412:12;15405:19;;15064:366;;;:::o;15436:419::-;15602:4;15640:2;15629:9;15625:18;15617:26;;15689:9;15683:4;15679:20;15675:1;15664:9;15660:17;15653:47;15717:131;15843:4;15717:131;:::i;:::-;15709:139;;15436:419;;;:::o;15861:180::-;15909:77;15906:1;15899:88;16006:4;16003:1;15996:15;16030:4;16027:1;16020:15;16047:185;16087:1;16104:20;16122:1;16104:20;:::i;:::-;16099:25;;16138:20;16156:1;16138:20;:::i;:::-;16133:25;;16177:1;16167:35;;16182:18;;:::i;:::-;16167:35;16224:1;16221;16217:9;16212:14;;16047:185;;;;:::o;16238:173::-;16378:25;16374:1;16366:6;16362:14;16355:49;16238:173;:::o;16417:366::-;16559:3;16580:67;16644:2;16639:3;16580:67;:::i;:::-;16573:74;;16656:93;16745:3;16656:93;:::i;:::-;16774:2;16769:3;16765:12;16758:19;;16417:366;;;:::o;16789:419::-;16955:4;16993:2;16982:9;16978:18;16970:26;;17042:9;17036:4;17032:20;17028:1;17017:9;17013:17;17006:47;17070:131;17196:4;17070:131;:::i;:::-;17062:139;;16789:419;;;:::o;17214:143::-;17271:5;17302:6;17296:13;17287:22;;17318:33;17345:5;17318:33;:::i;:::-;17214:143;;;;:::o;17363:351::-;17433:6;17482:2;17470:9;17461:7;17457:23;17453:32;17450:119;;;17488:79;;:::i;:::-;17450:119;17608:1;17633:64;17689:7;17680:6;17669:9;17665:22;17633:64;:::i;:::-;17623:74;;17579:128;17363:351;;;;:::o;17720:332::-;17841:4;17879:2;17868:9;17864:18;17856:26;;17892:71;17960:1;17949:9;17945:17;17936:6;17892:71;:::i;:::-;17973:72;18041:2;18030:9;18026:18;18017:6;17973:72;:::i;:::-;17720:332;;;;;:::o;18058:807::-;18307:4;18345:3;18334:9;18330:19;18322:27;;18359:71;18427:1;18416:9;18412:17;18403:6;18359:71;:::i;:::-;18440:72;18508:2;18497:9;18493:18;18484:6;18440:72;:::i;:::-;18522:80;18598:2;18587:9;18583:18;18574:6;18522:80;:::i;:::-;18612;18688:2;18677:9;18673:18;18664:6;18612:80;:::i;:::-;18702:73;18770:3;18759:9;18755:19;18746:6;18702:73;:::i;:::-;18785;18853:3;18842:9;18838:19;18829:6;18785:73;:::i;:::-;18058:807;;;;;;;;;:::o;18871:143::-;18928:5;18959:6;18953:13;18944:22;;18975:33;19002:5;18975:33;:::i;:::-;18871:143;;;;:::o;19020:663::-;19108:6;19116;19124;19173:2;19161:9;19152:7;19148:23;19144:32;19141:119;;;19179:79;;:::i;:::-;19141:119;19299:1;19324:64;19380:7;19371:6;19360:9;19356:22;19324:64;:::i;:::-;19314:74;;19270:128;19437:2;19463:64;19519:7;19510:6;19499:9;19495:22;19463:64;:::i;:::-;19453:74;;19408:129;19576:2;19602:64;19658:7;19649:6;19638:9;19634:22;19602:64;:::i;:::-;19592:74;;19547:129;19020:663;;;;;:::o;19689:332::-;19810:4;19848:2;19837:9;19833:18;19825:26;;19861:71;19929:1;19918:9;19914:17;19905:6;19861:71;:::i;:::-;19942:72;20010:2;19999:9;19995:18;19986:6;19942:72;:::i;:::-;19689:332;;;;;:::o;20027:116::-;20097:21;20112:5;20097:21;:::i;:::-;20090:5;20087:32;20077:60;;20133:1;20130;20123:12;20077:60;20027:116;:::o;20149:137::-;20203:5;20234:6;20228:13;20219:22;;20250:30;20274:5;20250:30;:::i;:::-;20149:137;;;;:::o;20292:345::-;20359:6;20408:2;20396:9;20387:7;20383:23;20379:32;20376:119;;;20414:79;;:::i;:::-;20376:119;20534:1;20559:61;20612:7;20603:6;20592:9;20588:22;20559:61;:::i;:::-;20549:71;;20505:125;20292:345;;;;:::o;20643:223::-;20783:34;20779:1;20771:6;20767:14;20760:58;20852:6;20847:2;20839:6;20835:15;20828:31;20643:223;:::o;20872:366::-;21014:3;21035:67;21099:2;21094:3;21035:67;:::i;:::-;21028:74;;21111:93;21200:3;21111:93;:::i;:::-;21229:2;21224:3;21220:12;21213:19;;20872:366;;;:::o;21244:419::-;21410:4;21448:2;21437:9;21433:18;21425:26;;21497:9;21491:4;21487:20;21483:1;21472:9;21468:17;21461:47;21525:131;21651:4;21525:131;:::i;:::-;21517:139;;21244:419;;;:::o;21669:221::-;21809:34;21805:1;21797:6;21793:14;21786:58;21878:4;21873:2;21865:6;21861:15;21854:29;21669:221;:::o;21896:366::-;22038:3;22059:67;22123:2;22118:3;22059:67;:::i;:::-;22052:74;;22135:93;22224:3;22135:93;:::i;:::-;22253:2;22248:3;22244:12;22237:19;;21896:366;;;:::o;22268:419::-;22434:4;22472:2;22461:9;22457:18;22449:26;;22521:9;22515:4;22511:20;22507:1;22496:9;22492:17;22485:47;22549:131;22675:4;22549:131;:::i;:::-;22541:139;;22268:419;;;:::o;22693:224::-;22833:34;22829:1;22821:6;22817:14;22810:58;22902:7;22897:2;22889:6;22885:15;22878:32;22693:224;:::o;22923:366::-;23065:3;23086:67;23150:2;23145:3;23086:67;:::i;:::-;23079:74;;23162:93;23251:3;23162:93;:::i;:::-;23280:2;23275:3;23271:12;23264:19;;22923:366;;;:::o;23295:419::-;23461:4;23499:2;23488:9;23484:18;23476:26;;23548:9;23542:4;23538:20;23534:1;23523:9;23519:17;23512:47;23576:131;23702:4;23576:131;:::i;:::-;23568:139;;23295:419;;;:::o;23720:222::-;23860:34;23856:1;23848:6;23844:14;23837:58;23929:5;23924:2;23916:6;23912:15;23905:30;23720:222;:::o;23948:366::-;24090:3;24111:67;24175:2;24170:3;24111:67;:::i;:::-;24104:74;;24187:93;24276:3;24187:93;:::i;:::-;24305:2;24300:3;24296:12;24289:19;;23948:366;;;:::o;24320:419::-;24486:4;24524:2;24513:9;24509:18;24501:26;;24573:9;24567:4;24563:20;24559:1;24548:9;24544:17;24537:47;24601:131;24727:4;24601:131;:::i;:::-;24593:139;;24320:419;;;:::o;24745:228::-;24885:34;24881:1;24873:6;24869:14;24862:58;24954:11;24949:2;24941:6;24937:15;24930:36;24745:228;:::o;24979:366::-;25121:3;25142:67;25206:2;25201:3;25142:67;:::i;:::-;25135:74;;25218:93;25307:3;25218:93;:::i;:::-;25336:2;25331:3;25327:12;25320:19;;24979:366;;;:::o;25351:419::-;25517:4;25555:2;25544:9;25540:18;25532:26;;25604:9;25598:4;25594:20;25590:1;25579:9;25575:17;25568:47;25632:131;25758:4;25632:131;:::i;:::-;25624:139;;25351:419;;;:::o;25776:175::-;25916:27;25912:1;25904:6;25900:14;25893:51;25776:175;:::o;25957:366::-;26099:3;26120:67;26184:2;26179:3;26120:67;:::i;:::-;26113:74;;26196:93;26285:3;26196:93;:::i;:::-;26314:2;26309:3;26305:12;26298:19;;25957:366;;;:::o;26329:419::-;26495:4;26533:2;26522:9;26518:18;26510:26;;26582:9;26576:4;26572:20;26568:1;26557:9;26553:17;26546:47;26610:131;26736:4;26610:131;:::i;:::-;26602:139;;26329:419;;;:::o;26754:191::-;26794:3;26813:20;26831:1;26813:20;:::i;:::-;26808:25;;26847:20;26865:1;26847:20;:::i;:::-;26842:25;;26890:1;26887;26883:9;26876:16;;26911:3;26908:1;26905:10;26902:36;;;26918:18;;:::i;:::-;26902:36;26754:191;;;;:::o;26951:176::-;27091:28;27087:1;27079:6;27075:14;27068:52;26951:176;:::o;27133:366::-;27275:3;27296:67;27360:2;27355:3;27296:67;:::i;:::-;27289:74;;27372:93;27461:3;27372:93;:::i;:::-;27490:2;27485:3;27481:12;27474:19;;27133:366;;;:::o;27505:419::-;27671:4;27709:2;27698:9;27694:18;27686:26;;27758:9;27752:4;27748:20;27744:1;27733:9;27729:17;27722:47;27786:131;27912:4;27786:131;:::i;:::-;27778:139;;27505:419;;;:::o;27930:233::-;27969:3;27992:24;28010:5;27992:24;:::i;:::-;27983:33;;28038:66;28031:5;28028:77;28025:103;;28108:18;;:::i;:::-;28025:103;28155:1;28148:5;28144:13;28137:20;;27930:233;;;:::o;28169:173::-;28309:25;28305:1;28297:6;28293:14;28286:49;28169:173;:::o;28348:366::-;28490:3;28511:67;28575:2;28570:3;28511:67;:::i;:::-;28504:74;;28587:93;28676:3;28587:93;:::i;:::-;28705:2;28700:3;28696:12;28689:19;;28348:366;;;:::o;28720:419::-;28886:4;28924:2;28913:9;28909:18;28901:26;;28973:9;28967:4;28963:20;28959:1;28948:9;28944:17;28937:47;29001:131;29127:4;29001:131;:::i;:::-;28993:139;;28720:419;;;:::o;29145:194::-;29185:4;29205:20;29223:1;29205:20;:::i;:::-;29200:25;;29239:20;29257:1;29239:20;:::i;:::-;29234:25;;29283:1;29280;29276:9;29268:17;;29307:1;29301:4;29298:11;29295:37;;;29312:18;;:::i;:::-;29295:37;29145:194;;;;:::o;29345:114::-;29412:6;29446:5;29440:12;29430:22;;29345:114;;;:::o;29465:184::-;29564:11;29598:6;29593:3;29586:19;29638:4;29633:3;29629:14;29614:29;;29465:184;;;;:::o;29655:132::-;29722:4;29745:3;29737:11;;29775:4;29770:3;29766:14;29758:22;;29655:132;;;:::o;29793:108::-;29870:24;29888:5;29870:24;:::i;:::-;29865:3;29858:37;29793:108;;:::o;29907:179::-;29976:10;29997:46;30039:3;30031:6;29997:46;:::i;:::-;30075:4;30070:3;30066:14;30052:28;;29907:179;;;;:::o;30092:113::-;30162:4;30194;30189:3;30185:14;30177:22;;30092:113;;;:::o;30241:732::-;30360:3;30389:54;30437:5;30389:54;:::i;:::-;30459:86;30538:6;30533:3;30459:86;:::i;:::-;30452:93;;30569:56;30619:5;30569:56;:::i;:::-;30648:7;30679:1;30664:284;30689:6;30686:1;30683:13;30664:284;;;30765:6;30759:13;30792:63;30851:3;30836:13;30792:63;:::i;:::-;30785:70;;30878:60;30931:6;30878:60;:::i;:::-;30868:70;;30724:224;30711:1;30708;30704:9;30699:14;;30664:284;;;30668:14;30964:3;30957:10;;30365:608;;;30241:732;;;;:::o;30979:831::-;31242:4;31280:3;31269:9;31265:19;31257:27;;31294:71;31362:1;31351:9;31347:17;31338:6;31294:71;:::i;:::-;31375:80;31451:2;31440:9;31436:18;31427:6;31375:80;:::i;:::-;31502:9;31496:4;31492:20;31487:2;31476:9;31472:18;31465:48;31530:108;31633:4;31624:6;31530:108;:::i;:::-;31522:116;;31648:72;31716:2;31705:9;31701:18;31692:6;31648:72;:::i;:::-;31730:73;31798:3;31787:9;31783:19;31774:6;31730:73;:::i;:::-;30979:831;;;;;;;;:::o;31816:220::-;31956:34;31952:1;31944:6;31940:14;31933:58;32025:3;32020:2;32012:6;32008:15;32001:28;31816:220;:::o;32042:366::-;32184:3;32205:67;32269:2;32264:3;32205:67;:::i;:::-;32198:74;;32281:93;32370:3;32281:93;:::i;:::-;32399:2;32394:3;32390:12;32383:19;;32042:366;;;:::o;32414:419::-;32580:4;32618:2;32607:9;32603:18;32595:26;;32667:9;32661:4;32657:20;32653:1;32642:9;32638:17;32631:47;32695:131;32821:4;32695:131;:::i;:::-;32687:139;;32414:419;;;:::o;32839:177::-;32979:29;32975:1;32967:6;32963:14;32956:53;32839:177;:::o;33022:366::-;33164:3;33185:67;33249:2;33244:3;33185:67;:::i;:::-;33178:74;;33261:93;33350:3;33261:93;:::i;:::-;33379:2;33374:3;33370:12;33363:19;;33022:366;;;:::o;33394:419::-;33560:4;33598:2;33587:9;33583:18;33575:26;;33647:9;33641:4;33637:20;33633:1;33622:9;33618:17;33611:47;33675:131;33801:4;33675:131;:::i;:::-;33667:139;;33394:419;;;:::o
Swarm Source
ipfs://85d8f7c9280fbe19910cd81103f78b29a6811d6c742545520de7ad8536a5ac3a
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.