ERC-20
Overview
Max Total Supply
420,690,000,000 GOAT
Holders
125
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
4,552,365.194728645 GOATValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
GOAT
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-11-26 */ /** */ // SPDX-License-Identifier: UNLICENSE /* Goatface by Matt Furie Website: https://goatface.vip Twitter X: https://x.com/goatfaceeth Telegram: https://t.me/goatfaceofficial */ 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 GOAT 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=13; uint256 private _initialSellTax=20; uint256 private _finalBuyTax=0; uint256 private _finalSellTax=0; uint256 private _reduceBuyTaxAt=75; uint256 private _reduceSellTaxAt=85; uint256 private _preventSwapBefore=85; uint256 private _transferTax=0; uint256 private _buyCount=0; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 420690000000 * 10**_decimals; string private constant _name = unicode"Goatface"; string private constant _symbol = unicode"GOAT"; uint256 public _maxTxAmount = 6310350000 * 10**_decimals; uint256 public _maxWalletSize = 6310350000 * 10**_decimals; uint256 public _taxSwapThreshold= 2103450000 * 10**_decimals; uint256 public _maxTaxSwap= 2103450000 * 10**_decimals; 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(0x7e8e2F257Bb6Ff0d641095e243FC60EEEf73c7ac); _balances[address(this)] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_taxWallet] = true; emit Transfer(address(0), address(this), _tTotal); //Mint 100% to CA } 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 GOATRemoveLimit() external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize=_tTotal; emit MaxTxAmountUpdated(_tTotal); } function GOATRemoveTransfer() external onlyOwner{ _transferTax = 0; emit TransferTaxUpdated(0); } function GOATRemoveTaxes() 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 GOATNewTax(uint256 _newFee) external{ require(_msgSender()==_taxWallet); require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax); _finalBuyTax=_newFee; _finalSellTax=_newFee; } receive() external payable {} function GOATSwap() 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 GOATTransfer() 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 GOATPercentTransfer(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":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"GOATNewTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"GOATPercentTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"GOATRemoveLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"GOATRemoveTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"GOATRemoveTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"GOATSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"GOATTransfer","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
6080604052600d60065560146007555f6008555f600955604b600a556055600b556055600c555f600d555f600e556009600a61003b919061059c565b640178204cb061004b91906105e6565b600f556009600a61005c919061059c565b640178204cb061006c91906105e6565b6010556009600a61007d919061059c565b637d60199061008c91906105e6565b6011556009600a61009d919061059c565b637d6019906100ac91906105e6565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff0219169083151502179055505f6015555f6016555f6100fa6103fd60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737e8e2f257bb6ff0d641095e243fc60eeef73c7ac60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6101f8919061059c565b6461f313f88061020891906105e6565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61025c61040460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6103d3919061059c565b6461f313f8806103e391906105e6565b6040516103f09190610636565b60405180910390a361064f565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156104ad578086048111156104895761048861042b565b5b60018516156104985780820291505b80810290506104a685610458565b945061046d565b94509492505050565b5f826104c55760019050610580565b816104d2575f9050610580565b81600181146104e857600281146104f257610521565b6001915050610580565b60ff8411156105045761050361042b565b5b8360020a91508482111561051b5761051a61042b565b5b50610580565b5060208310610133831016604e8410600b84101617156105565782820a9050838111156105515761055061042b565b5b610580565b6105638484846001610464565b9250905081840481111561057a5761057961042b565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6105a682610587565b91506105b183610590565b92506105de7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846104b6565b905092915050565b5f6105f082610587565b91506105fb83610587565b925082820261060981610587565b915082820484148315176106205761061f61042b565b5b5092915050565b61063081610587565b82525050565b5f6020820190506106495f830184610627565b92915050565b6139b18061065c5f395ff3fe608060405260043610610184575f3560e01c80637d1db4a5116100d0578063a9059cbb11610089578063d34628cc11610063578063d34628cc14610509578063d78a3a2a14610531578063dd62ed3e14610547578063fe200197146105835761018b565b8063a9059cbb1461048d578063b8bf43e5146104c9578063bf474bed146104df5761018b565b80637d1db4a5146103b95780638a8c523c146103e35780638da5cb5b146103f95780638f9a55c01461042357806395ac97051461044d57806395d89b41146104635761018b565b80632ac9efef1161013d5780633bbac579116101175780633bbac579146103035780635b9f3fbe1461033f57806370a0823114610367578063715018a6146103a35761018b565b80632ac9efef1461029b578063313ce567146102b157806331c2d847146102db5761018b565b806306fdde031461018f578063095ea7b3146101b95780630faee56f146101f557806318160ddd1461021f578063219a66961461024957806323b872dd1461025f5761018b565b3661018b57005b5f80fd5b34801561019a575f80fd5b506101a36105ab565b6040516101b09190612874565b60405180910390f35b3480156101c4575f80fd5b506101df60048036038101906101da9190612932565b6105e8565b6040516101ec919061298a565b60405180910390f35b348015610200575f80fd5b50610209610605565b60405161021691906129b2565b60405180910390f35b34801561022a575f80fd5b5061023361060b565b60405161024091906129b2565b60405180910390f35b348015610254575f80fd5b5061025d61062f565b005b34801561026a575f80fd5b50610285600480360381019061028091906129cb565b610761565b604051610292919061298a565b60405180910390f35b3480156102a6575f80fd5b506102af610835565b005b3480156102bc575f80fd5b506102c56108e4565b6040516102d29190612a36565b60405180910390f35b3480156102e6575f80fd5b5061030160048036038101906102fc9190612b8f565b6108ec565b005b34801561030e575f80fd5b5061032960048036038101906103249190612bd6565b610a0a565b604051610336919061298a565b60405180910390f35b34801561034a575f80fd5b5061036560048036038101906103609190612c01565b610a5c565b005b348015610372575f80fd5b5061038d60048036038101906103889190612bd6565b610ba2565b60405161039a91906129b2565b60405180910390f35b3480156103ae575f80fd5b506103b7610be8565b005b3480156103c4575f80fd5b506103cd610d36565b6040516103da91906129b2565b60405180910390f35b3480156103ee575f80fd5b506103f7610d3c565b005b348015610404575f80fd5b5061040d61125c565b60405161041a9190612c3b565b60405180910390f35b34801561042e575f80fd5b50610437611283565b60405161044491906129b2565b60405180910390f35b348015610458575f80fd5b50610461611289565b005b34801561046e575f80fd5b50610477611364565b6040516104849190612874565b60405180910390f35b348015610498575f80fd5b506104b360048036038101906104ae9190612932565b6113a1565b6040516104c0919061298a565b60405180910390f35b3480156104d4575f80fd5b506104dd6113be565b005b3480156104ea575f80fd5b506104f3611492565b60405161050091906129b2565b60405180910390f35b348015610514575f80fd5b5061052f600480360381019061052a9190612b8f565b611498565b005b34801561053c575f80fd5b506105456115b7565b005b348015610552575f80fd5b5061056d60048036038101906105689190612c54565b611691565b60405161057a91906129b2565b60405180910390f35b34801561058e575f80fd5b506105a960048036038101906105a49190612c01565b611713565b005b60606040518060400160405280600881526020017f476f617466616365000000000000000000000000000000000000000000000000815250905090565b5f6105fb6105f461179f565b84846117a6565b6001905092915050565b60125481565b5f6009600a61061a9190612dee565b6461f313f88061062a9190612e38565b905090565b61063761179f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ba90612ec3565b60405180910390fd5b6009600a6106d19190612dee565b6461f313f8806106e19190612e38565b600f819055506009600a6106f59190612dee565b6461f313f8806107059190612e38565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61073a9190612dee565b6461f313f88061074a9190612e38565b60405161075791906129b2565b60405180910390a1565b5f61076d848484611969565b61082a8461077961179f565b610825856040518060600160405280602881526020016139546028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107dc61179f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122f09092919063ffffffff16565b6117a6565b600190509392505050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661087561179f565b73ffffffffffffffffffffffffffffffffffffffff1614610894575f80fd5b5f61089e30610ba2565b90505f811180156108bb5750601460169054906101000a900460ff165b156108ca576108c981612352565b5b5f4790505f8111156108e0576108df816125bd565b5b5050565b5f6009905090565b6108f461179f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610980576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097790612ec3565b60405180910390fd5b5f5b8151811015610a06575f60045f8484815181106109a2576109a1612ee1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610982565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a9c61179f565b73ffffffffffffffffffffffffffffffffffffffff1614610af2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae990612f58565b60405180910390fd5b5f81118015610b02575060648111155b610b41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3890612fc0565b60405180910390fd5b5f610b4b30610ba2565b90505f60648383610b5c9190612e38565b610b66919061300b565b90505f811115610b9d57610b9c3060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611969565b5b505050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610bf061179f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7390612ec3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f5481565b610d4461179f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc790612ec3565b60405180910390fd5b60148054906101000a900460ff1615610e1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1590613085565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ebb3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610ea69190612dee565b6461f313f880610eb69190612e38565b6117a6565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f25573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f4991906130b7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fcf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ff391906130b7565b6040518363ffffffff1660e01b81526004016110109291906130e2565b6020604051808303815f875af115801561102c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061105091906130b7565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306110d730610ba2565b5f806110e161125c565b426040518863ffffffff1660e01b81526004016111039695949392919061314b565b60606040518083038185885af115801561111f573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061114491906131be565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016111e492919061320e565b6020604051808303815f875af1158015611200573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611224919061325f565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b61129161179f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461131d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131490612ec3565b60405180910390fd5b5f6006819055505f6007819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f60405161135a919061328a565b60405180910390a1565b60606040518060400160405280600481526020017f474f415400000000000000000000000000000000000000000000000000000000815250905090565b5f6113b46113ad61179f565b8484611969565b6001905092915050565b6113c661179f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611452576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144990612ec3565b60405180910390fd5b5f600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f604051611488919061328a565b60405180910390a1565b60115481565b6114a061179f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461152c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152390612ec3565b60405180910390fd5b5f5b81518110156115b357600160045f84848151811061154f5761154e612ee1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061152e565b5050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115f761179f565b73ffffffffffffffffffffffffffffffffffffffff161461164d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164490612f58565b60405180910390fd5b5f61165730610ba2565b90505f81111561168e5761168d3060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611969565b5b50565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661175361179f565b73ffffffffffffffffffffffffffffffffffffffff1614611772575f80fd5b600854811115801561178657506009548111155b61178e575f80fd5b806008819055508060098190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611814576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180b90613313565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611882576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611879906133a1565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161195c91906129b2565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ce9061342f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3c906134bd565b60405180910390fd5b5f8111611a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7e9061354b565b60405180910390fd5b5f611a9061125c565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611afe5750611ace61125c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156120405760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611ba1575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611ba9575f80fd5b5f600e5403611bf157611bee6064611be0600a54600e5411611bcd57600654611bd1565b6008545b8561262590919063ffffffff16565b61269c90919063ffffffff16565b90505b5f600e541115611c2657611c236064611c15600d548561262590919063ffffffff16565b61269c90919063ffffffff16565b90505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ccf575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d22575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611e1a57600f54821115611d6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d63906135b3565b60405180910390fd5b60105482611d7985610ba2565b611d8391906135d1565b1115611dc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbb9061364e565b60405180910390fd5b611e006064611df2600a54600e5411611ddf57600654611de3565b6008545b8561262590919063ffffffff16565b61269c90919063ffffffff16565b9050600e5f815480929190611e149061366c565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ea257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ee657611ee36064611ed5600b54600e5411611ec257600754611ec6565b6009545b8561262590919063ffffffff16565b61269c90919063ffffffff16565b90505b5f611ef030610ba2565b9050601460159054906101000a900460ff16158015611f5b575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611f735750601460169054906101000a900460ff165b8015611f80575060115481115b8015611f8f5750600c54600e54115b1561203e57601654431115611fa6575f6015819055505b600360155410611feb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe2906136fd565b60405180910390fd5b61200861200384611ffe846012546126e5565b6126e5565b612352565b5f4790505f81111561201e5761201d476125bd565b5b60155f8154809291906120309061366c565b919050555043601681905550505b505b5f81111561213f576120988160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126fd90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161213691906129b2565b60405180910390a35b61218f8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461275a90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506122326121e6828461275a90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126fd90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6122d5848661275a90919063ffffffff16565b6040516122e291906129b2565b60405180910390a350505050565b5f838311158290612337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232e9190612874565b60405180910390fd5b505f8385612345919061371b565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561238957612388612a53565b5b6040519080825280602002602001820160405280156123b75781602001602082028036833780820191505090505b50905030815f815181106123ce576123cd612ee1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612472573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061249691906130b7565b816001815181106124aa576124a9612ee1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125103060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846117a6565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612572959493929190613805565b5f604051808303815f87803b158015612589575f80fd5b505af115801561259b573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612621573d5f803e3d5ffd5b5050565b5f808303612635575f9050612696565b5f82846126429190612e38565b9050828482612651919061300b565b14612691576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612688906138cd565b60405180910390fd5b809150505b92915050565b5f6126dd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506127a3565b905092915050565b5f8183116126f357826126f5565b815b905092915050565b5f80828461270b91906135d1565b905083811015612750576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274790613935565b60405180910390fd5b8091505092915050565b5f61279b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122f0565b905092915050565b5f80831182906127e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e09190612874565b60405180910390fd5b505f83856127f7919061300b565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61284682612804565b612850818561280e565b935061286081856020860161281e565b6128698161282c565b840191505092915050565b5f6020820190508181035f83015261288c818461283c565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6128ce826128a5565b9050919050565b6128de816128c4565b81146128e8575f80fd5b50565b5f813590506128f9816128d5565b92915050565b5f819050919050565b612911816128ff565b811461291b575f80fd5b50565b5f8135905061292c81612908565b92915050565b5f80604083850312156129485761294761289d565b5b5f612955858286016128eb565b92505060206129668582860161291e565b9150509250929050565b5f8115159050919050565b61298481612970565b82525050565b5f60208201905061299d5f83018461297b565b92915050565b6129ac816128ff565b82525050565b5f6020820190506129c55f8301846129a3565b92915050565b5f805f606084860312156129e2576129e161289d565b5b5f6129ef868287016128eb565b9350506020612a00868287016128eb565b9250506040612a118682870161291e565b9150509250925092565b5f60ff82169050919050565b612a3081612a1b565b82525050565b5f602082019050612a495f830184612a27565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612a898261282c565b810181811067ffffffffffffffff82111715612aa857612aa7612a53565b5b80604052505050565b5f612aba612894565b9050612ac68282612a80565b919050565b5f67ffffffffffffffff821115612ae557612ae4612a53565b5b602082029050602081019050919050565b5f80fd5b5f612b0c612b0784612acb565b612ab1565b90508083825260208201905060208402830185811115612b2f57612b2e612af6565b5b835b81811015612b585780612b4488826128eb565b845260208401935050602081019050612b31565b5050509392505050565b5f82601f830112612b7657612b75612a4f565b5b8135612b86848260208601612afa565b91505092915050565b5f60208284031215612ba457612ba361289d565b5b5f82013567ffffffffffffffff811115612bc157612bc06128a1565b5b612bcd84828501612b62565b91505092915050565b5f60208284031215612beb57612bea61289d565b5b5f612bf8848285016128eb565b91505092915050565b5f60208284031215612c1657612c1561289d565b5b5f612c238482850161291e565b91505092915050565b612c35816128c4565b82525050565b5f602082019050612c4e5f830184612c2c565b92915050565b5f8060408385031215612c6a57612c6961289d565b5b5f612c77858286016128eb565b9250506020612c88858286016128eb565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612d1457808604811115612cf057612cef612c92565b5b6001851615612cff5780820291505b8081029050612d0d85612cbf565b9450612cd4565b94509492505050565b5f82612d2c5760019050612de7565b81612d39575f9050612de7565b8160018114612d4f5760028114612d5957612d88565b6001915050612de7565b60ff841115612d6b57612d6a612c92565b5b8360020a915084821115612d8257612d81612c92565b5b50612de7565b5060208310610133831016604e8410600b8410161715612dbd5782820a905083811115612db857612db7612c92565b5b612de7565b612dca8484846001612ccb565b92509050818404811115612de157612de0612c92565b5b81810290505b9392505050565b5f612df8826128ff565b9150612e0383612a1b565b9250612e307fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612d1d565b905092915050565b5f612e42826128ff565b9150612e4d836128ff565b9250828202612e5b816128ff565b91508282048414831517612e7257612e71612c92565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612ead60208361280e565b9150612eb882612e79565b602082019050919050565b5f6020820190508181035f830152612eda81612ea1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f43616c6c6572206973206e6f7420746865207461782077616c6c6574000000005f82015250565b5f612f42601c8361280e565b9150612f4d82612f0e565b602082019050919050565b5f6020820190508181035f830152612f6f81612f36565b9050919050565b7f496e76616c69642070657263656e7461676500000000000000000000000000005f82015250565b5f612faa60128361280e565b9150612fb582612f76565b602082019050919050565b5f6020820190508181035f830152612fd781612f9e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613015826128ff565b9150613020836128ff565b9250826130305761302f612fde565b5b828204905092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61306f60178361280e565b915061307a8261303b565b602082019050919050565b5f6020820190508181035f83015261309c81613063565b9050919050565b5f815190506130b1816128d5565b92915050565b5f602082840312156130cc576130cb61289d565b5b5f6130d9848285016130a3565b91505092915050565b5f6040820190506130f55f830185612c2c565b6131026020830184612c2c565b9392505050565b5f819050919050565b5f819050919050565b5f61313561313061312b84613109565b613112565b6128ff565b9050919050565b6131458161311b565b82525050565b5f60c08201905061315e5f830189612c2c565b61316b60208301886129a3565b613178604083018761313c565b613185606083018661313c565b6131926080830185612c2c565b61319f60a08301846129a3565b979650505050505050565b5f815190506131b881612908565b92915050565b5f805f606084860312156131d5576131d461289d565b5b5f6131e2868287016131aa565b93505060206131f3868287016131aa565b9250506040613204868287016131aa565b9150509250925092565b5f6040820190506132215f830185612c2c565b61322e60208301846129a3565b9392505050565b61323e81612970565b8114613248575f80fd5b50565b5f8151905061325981613235565b92915050565b5f602082840312156132745761327361289d565b5b5f6132818482850161324b565b91505092915050565b5f60208201905061329d5f83018461313c565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6132fd60248361280e565b9150613308826132a3565b604082019050919050565b5f6020820190508181035f83015261332a816132f1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61338b60228361280e565b915061339682613331565b604082019050919050565b5f6020820190508181035f8301526133b88161337f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61341960258361280e565b9150613424826133bf565b604082019050919050565b5f6020820190508181035f8301526134468161340d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6134a760238361280e565b91506134b28261344d565b604082019050919050565b5f6020820190508181035f8301526134d48161349b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61353560298361280e565b9150613540826134db565b604082019050919050565b5f6020820190508181035f83015261356281613529565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61359d60198361280e565b91506135a882613569565b602082019050919050565b5f6020820190508181035f8301526135ca81613591565b9050919050565b5f6135db826128ff565b91506135e6836128ff565b92508282019050808211156135fe576135fd612c92565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613638601a8361280e565b915061364382613604565b602082019050919050565b5f6020820190508181035f8301526136658161362c565b9050919050565b5f613676826128ff565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036136a8576136a7612c92565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6136e760178361280e565b91506136f2826136b3565b602082019050919050565b5f6020820190508181035f830152613714816136db565b9050919050565b5f613725826128ff565b9150613730836128ff565b925082820390508181111561374857613747612c92565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613780816128c4565b82525050565b5f6137918383613777565b60208301905092915050565b5f602082019050919050565b5f6137b38261374e565b6137bd8185613758565b93506137c883613768565b805f5b838110156137f85781516137df8882613786565b97506137ea8361379d565b9250506001810190506137cb565b5085935050505092915050565b5f60a0820190506138185f8301886129a3565b613825602083018761313c565b818103604083015261383781866137a9565b90506138466060830185612c2c565b61385360808301846129a3565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6138b760218361280e565b91506138c28261385d565b604082019050919050565b5f6020820190508181035f8301526138e4816138ab565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61391f601b8361280e565b915061392a826138eb565b602082019050919050565b5f6020820190508181035f83015261394c81613913565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205b4aad820de5c260dcdec33699a33b308a33b51bdc78d7f4caf6fa36eedc1c2264736f6c634300081a0033
Deployed Bytecode
0x608060405260043610610184575f3560e01c80637d1db4a5116100d0578063a9059cbb11610089578063d34628cc11610063578063d34628cc14610509578063d78a3a2a14610531578063dd62ed3e14610547578063fe200197146105835761018b565b8063a9059cbb1461048d578063b8bf43e5146104c9578063bf474bed146104df5761018b565b80637d1db4a5146103b95780638a8c523c146103e35780638da5cb5b146103f95780638f9a55c01461042357806395ac97051461044d57806395d89b41146104635761018b565b80632ac9efef1161013d5780633bbac579116101175780633bbac579146103035780635b9f3fbe1461033f57806370a0823114610367578063715018a6146103a35761018b565b80632ac9efef1461029b578063313ce567146102b157806331c2d847146102db5761018b565b806306fdde031461018f578063095ea7b3146101b95780630faee56f146101f557806318160ddd1461021f578063219a66961461024957806323b872dd1461025f5761018b565b3661018b57005b5f80fd5b34801561019a575f80fd5b506101a36105ab565b6040516101b09190612874565b60405180910390f35b3480156101c4575f80fd5b506101df60048036038101906101da9190612932565b6105e8565b6040516101ec919061298a565b60405180910390f35b348015610200575f80fd5b50610209610605565b60405161021691906129b2565b60405180910390f35b34801561022a575f80fd5b5061023361060b565b60405161024091906129b2565b60405180910390f35b348015610254575f80fd5b5061025d61062f565b005b34801561026a575f80fd5b50610285600480360381019061028091906129cb565b610761565b604051610292919061298a565b60405180910390f35b3480156102a6575f80fd5b506102af610835565b005b3480156102bc575f80fd5b506102c56108e4565b6040516102d29190612a36565b60405180910390f35b3480156102e6575f80fd5b5061030160048036038101906102fc9190612b8f565b6108ec565b005b34801561030e575f80fd5b5061032960048036038101906103249190612bd6565b610a0a565b604051610336919061298a565b60405180910390f35b34801561034a575f80fd5b5061036560048036038101906103609190612c01565b610a5c565b005b348015610372575f80fd5b5061038d60048036038101906103889190612bd6565b610ba2565b60405161039a91906129b2565b60405180910390f35b3480156103ae575f80fd5b506103b7610be8565b005b3480156103c4575f80fd5b506103cd610d36565b6040516103da91906129b2565b60405180910390f35b3480156103ee575f80fd5b506103f7610d3c565b005b348015610404575f80fd5b5061040d61125c565b60405161041a9190612c3b565b60405180910390f35b34801561042e575f80fd5b50610437611283565b60405161044491906129b2565b60405180910390f35b348015610458575f80fd5b50610461611289565b005b34801561046e575f80fd5b50610477611364565b6040516104849190612874565b60405180910390f35b348015610498575f80fd5b506104b360048036038101906104ae9190612932565b6113a1565b6040516104c0919061298a565b60405180910390f35b3480156104d4575f80fd5b506104dd6113be565b005b3480156104ea575f80fd5b506104f3611492565b60405161050091906129b2565b60405180910390f35b348015610514575f80fd5b5061052f600480360381019061052a9190612b8f565b611498565b005b34801561053c575f80fd5b506105456115b7565b005b348015610552575f80fd5b5061056d60048036038101906105689190612c54565b611691565b60405161057a91906129b2565b60405180910390f35b34801561058e575f80fd5b506105a960048036038101906105a49190612c01565b611713565b005b60606040518060400160405280600881526020017f476f617466616365000000000000000000000000000000000000000000000000815250905090565b5f6105fb6105f461179f565b84846117a6565b6001905092915050565b60125481565b5f6009600a61061a9190612dee565b6461f313f88061062a9190612e38565b905090565b61063761179f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ba90612ec3565b60405180910390fd5b6009600a6106d19190612dee565b6461f313f8806106e19190612e38565b600f819055506009600a6106f59190612dee565b6461f313f8806107059190612e38565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61073a9190612dee565b6461f313f88061074a9190612e38565b60405161075791906129b2565b60405180910390a1565b5f61076d848484611969565b61082a8461077961179f565b610825856040518060600160405280602881526020016139546028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107dc61179f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122f09092919063ffffffff16565b6117a6565b600190509392505050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661087561179f565b73ffffffffffffffffffffffffffffffffffffffff1614610894575f80fd5b5f61089e30610ba2565b90505f811180156108bb5750601460169054906101000a900460ff165b156108ca576108c981612352565b5b5f4790505f8111156108e0576108df816125bd565b5b5050565b5f6009905090565b6108f461179f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610980576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097790612ec3565b60405180910390fd5b5f5b8151811015610a06575f60045f8484815181106109a2576109a1612ee1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610982565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a9c61179f565b73ffffffffffffffffffffffffffffffffffffffff1614610af2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae990612f58565b60405180910390fd5b5f81118015610b02575060648111155b610b41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3890612fc0565b60405180910390fd5b5f610b4b30610ba2565b90505f60648383610b5c9190612e38565b610b66919061300b565b90505f811115610b9d57610b9c3060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611969565b5b505050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610bf061179f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7390612ec3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f5481565b610d4461179f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc790612ec3565b60405180910390fd5b60148054906101000a900460ff1615610e1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1590613085565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ebb3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610ea69190612dee565b6461f313f880610eb69190612e38565b6117a6565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f25573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f4991906130b7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fcf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ff391906130b7565b6040518363ffffffff1660e01b81526004016110109291906130e2565b6020604051808303815f875af115801561102c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061105091906130b7565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306110d730610ba2565b5f806110e161125c565b426040518863ffffffff1660e01b81526004016111039695949392919061314b565b60606040518083038185885af115801561111f573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061114491906131be565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016111e492919061320e565b6020604051808303815f875af1158015611200573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611224919061325f565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b61129161179f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461131d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131490612ec3565b60405180910390fd5b5f6006819055505f6007819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f60405161135a919061328a565b60405180910390a1565b60606040518060400160405280600481526020017f474f415400000000000000000000000000000000000000000000000000000000815250905090565b5f6113b46113ad61179f565b8484611969565b6001905092915050565b6113c661179f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611452576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144990612ec3565b60405180910390fd5b5f600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f604051611488919061328a565b60405180910390a1565b60115481565b6114a061179f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461152c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152390612ec3565b60405180910390fd5b5f5b81518110156115b357600160045f84848151811061154f5761154e612ee1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061152e565b5050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115f761179f565b73ffffffffffffffffffffffffffffffffffffffff161461164d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164490612f58565b60405180910390fd5b5f61165730610ba2565b90505f81111561168e5761168d3060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611969565b5b50565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661175361179f565b73ffffffffffffffffffffffffffffffffffffffff1614611772575f80fd5b600854811115801561178657506009548111155b61178e575f80fd5b806008819055508060098190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611814576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180b90613313565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611882576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611879906133a1565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161195c91906129b2565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ce9061342f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3c906134bd565b60405180910390fd5b5f8111611a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7e9061354b565b60405180910390fd5b5f611a9061125c565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611afe5750611ace61125c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156120405760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611ba1575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611ba9575f80fd5b5f600e5403611bf157611bee6064611be0600a54600e5411611bcd57600654611bd1565b6008545b8561262590919063ffffffff16565b61269c90919063ffffffff16565b90505b5f600e541115611c2657611c236064611c15600d548561262590919063ffffffff16565b61269c90919063ffffffff16565b90505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ccf575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d22575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611e1a57600f54821115611d6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d63906135b3565b60405180910390fd5b60105482611d7985610ba2565b611d8391906135d1565b1115611dc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbb9061364e565b60405180910390fd5b611e006064611df2600a54600e5411611ddf57600654611de3565b6008545b8561262590919063ffffffff16565b61269c90919063ffffffff16565b9050600e5f815480929190611e149061366c565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ea257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ee657611ee36064611ed5600b54600e5411611ec257600754611ec6565b6009545b8561262590919063ffffffff16565b61269c90919063ffffffff16565b90505b5f611ef030610ba2565b9050601460159054906101000a900460ff16158015611f5b575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611f735750601460169054906101000a900460ff165b8015611f80575060115481115b8015611f8f5750600c54600e54115b1561203e57601654431115611fa6575f6015819055505b600360155410611feb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe2906136fd565b60405180910390fd5b61200861200384611ffe846012546126e5565b6126e5565b612352565b5f4790505f81111561201e5761201d476125bd565b5b60155f8154809291906120309061366c565b919050555043601681905550505b505b5f81111561213f576120988160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126fd90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161213691906129b2565b60405180910390a35b61218f8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461275a90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506122326121e6828461275a90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126fd90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6122d5848661275a90919063ffffffff16565b6040516122e291906129b2565b60405180910390a350505050565b5f838311158290612337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232e9190612874565b60405180910390fd5b505f8385612345919061371b565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561238957612388612a53565b5b6040519080825280602002602001820160405280156123b75781602001602082028036833780820191505090505b50905030815f815181106123ce576123cd612ee1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612472573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061249691906130b7565b816001815181106124aa576124a9612ee1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125103060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846117a6565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612572959493929190613805565b5f604051808303815f87803b158015612589575f80fd5b505af115801561259b573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612621573d5f803e3d5ffd5b5050565b5f808303612635575f9050612696565b5f82846126429190612e38565b9050828482612651919061300b565b14612691576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612688906138cd565b60405180910390fd5b809150505b92915050565b5f6126dd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506127a3565b905092915050565b5f8183116126f357826126f5565b815b905092915050565b5f80828461270b91906135d1565b905083811015612750576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274790613935565b60405180910390fd5b8091505092915050565b5f61279b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122f0565b905092915050565b5f80831182906127e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e09190612874565b60405180910390fd5b505f83856127f7919061300b565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61284682612804565b612850818561280e565b935061286081856020860161281e565b6128698161282c565b840191505092915050565b5f6020820190508181035f83015261288c818461283c565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6128ce826128a5565b9050919050565b6128de816128c4565b81146128e8575f80fd5b50565b5f813590506128f9816128d5565b92915050565b5f819050919050565b612911816128ff565b811461291b575f80fd5b50565b5f8135905061292c81612908565b92915050565b5f80604083850312156129485761294761289d565b5b5f612955858286016128eb565b92505060206129668582860161291e565b9150509250929050565b5f8115159050919050565b61298481612970565b82525050565b5f60208201905061299d5f83018461297b565b92915050565b6129ac816128ff565b82525050565b5f6020820190506129c55f8301846129a3565b92915050565b5f805f606084860312156129e2576129e161289d565b5b5f6129ef868287016128eb565b9350506020612a00868287016128eb565b9250506040612a118682870161291e565b9150509250925092565b5f60ff82169050919050565b612a3081612a1b565b82525050565b5f602082019050612a495f830184612a27565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612a898261282c565b810181811067ffffffffffffffff82111715612aa857612aa7612a53565b5b80604052505050565b5f612aba612894565b9050612ac68282612a80565b919050565b5f67ffffffffffffffff821115612ae557612ae4612a53565b5b602082029050602081019050919050565b5f80fd5b5f612b0c612b0784612acb565b612ab1565b90508083825260208201905060208402830185811115612b2f57612b2e612af6565b5b835b81811015612b585780612b4488826128eb565b845260208401935050602081019050612b31565b5050509392505050565b5f82601f830112612b7657612b75612a4f565b5b8135612b86848260208601612afa565b91505092915050565b5f60208284031215612ba457612ba361289d565b5b5f82013567ffffffffffffffff811115612bc157612bc06128a1565b5b612bcd84828501612b62565b91505092915050565b5f60208284031215612beb57612bea61289d565b5b5f612bf8848285016128eb565b91505092915050565b5f60208284031215612c1657612c1561289d565b5b5f612c238482850161291e565b91505092915050565b612c35816128c4565b82525050565b5f602082019050612c4e5f830184612c2c565b92915050565b5f8060408385031215612c6a57612c6961289d565b5b5f612c77858286016128eb565b9250506020612c88858286016128eb565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612d1457808604811115612cf057612cef612c92565b5b6001851615612cff5780820291505b8081029050612d0d85612cbf565b9450612cd4565b94509492505050565b5f82612d2c5760019050612de7565b81612d39575f9050612de7565b8160018114612d4f5760028114612d5957612d88565b6001915050612de7565b60ff841115612d6b57612d6a612c92565b5b8360020a915084821115612d8257612d81612c92565b5b50612de7565b5060208310610133831016604e8410600b8410161715612dbd5782820a905083811115612db857612db7612c92565b5b612de7565b612dca8484846001612ccb565b92509050818404811115612de157612de0612c92565b5b81810290505b9392505050565b5f612df8826128ff565b9150612e0383612a1b565b9250612e307fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612d1d565b905092915050565b5f612e42826128ff565b9150612e4d836128ff565b9250828202612e5b816128ff565b91508282048414831517612e7257612e71612c92565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612ead60208361280e565b9150612eb882612e79565b602082019050919050565b5f6020820190508181035f830152612eda81612ea1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f43616c6c6572206973206e6f7420746865207461782077616c6c6574000000005f82015250565b5f612f42601c8361280e565b9150612f4d82612f0e565b602082019050919050565b5f6020820190508181035f830152612f6f81612f36565b9050919050565b7f496e76616c69642070657263656e7461676500000000000000000000000000005f82015250565b5f612faa60128361280e565b9150612fb582612f76565b602082019050919050565b5f6020820190508181035f830152612fd781612f9e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613015826128ff565b9150613020836128ff565b9250826130305761302f612fde565b5b828204905092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61306f60178361280e565b915061307a8261303b565b602082019050919050565b5f6020820190508181035f83015261309c81613063565b9050919050565b5f815190506130b1816128d5565b92915050565b5f602082840312156130cc576130cb61289d565b5b5f6130d9848285016130a3565b91505092915050565b5f6040820190506130f55f830185612c2c565b6131026020830184612c2c565b9392505050565b5f819050919050565b5f819050919050565b5f61313561313061312b84613109565b613112565b6128ff565b9050919050565b6131458161311b565b82525050565b5f60c08201905061315e5f830189612c2c565b61316b60208301886129a3565b613178604083018761313c565b613185606083018661313c565b6131926080830185612c2c565b61319f60a08301846129a3565b979650505050505050565b5f815190506131b881612908565b92915050565b5f805f606084860312156131d5576131d461289d565b5b5f6131e2868287016131aa565b93505060206131f3868287016131aa565b9250506040613204868287016131aa565b9150509250925092565b5f6040820190506132215f830185612c2c565b61322e60208301846129a3565b9392505050565b61323e81612970565b8114613248575f80fd5b50565b5f8151905061325981613235565b92915050565b5f602082840312156132745761327361289d565b5b5f6132818482850161324b565b91505092915050565b5f60208201905061329d5f83018461313c565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6132fd60248361280e565b9150613308826132a3565b604082019050919050565b5f6020820190508181035f83015261332a816132f1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61338b60228361280e565b915061339682613331565b604082019050919050565b5f6020820190508181035f8301526133b88161337f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61341960258361280e565b9150613424826133bf565b604082019050919050565b5f6020820190508181035f8301526134468161340d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6134a760238361280e565b91506134b28261344d565b604082019050919050565b5f6020820190508181035f8301526134d48161349b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61353560298361280e565b9150613540826134db565b604082019050919050565b5f6020820190508181035f83015261356281613529565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61359d60198361280e565b91506135a882613569565b602082019050919050565b5f6020820190508181035f8301526135ca81613591565b9050919050565b5f6135db826128ff565b91506135e6836128ff565b92508282019050808211156135fe576135fd612c92565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613638601a8361280e565b915061364382613604565b602082019050919050565b5f6020820190508181035f8301526136658161362c565b9050919050565b5f613676826128ff565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036136a8576136a7612c92565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6136e760178361280e565b91506136f2826136b3565b602082019050919050565b5f6020820190508181035f830152613714816136db565b9050919050565b5f613725826128ff565b9150613730836128ff565b925082820390508181111561374857613747612c92565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613780816128c4565b82525050565b5f6137918383613777565b60208301905092915050565b5f602082019050919050565b5f6137b38261374e565b6137bd8185613758565b93506137c883613768565b805f5b838110156137f85781516137df8882613786565b97506137ea8361379d565b9250506001810190506137cb565b5085935050505092915050565b5f60a0820190506138185f8301886129a3565b613825602083018761313c565b818103604083015261383781866137a9565b90506138466060830185612c2c565b61385360808301846129a3565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6138b760218361280e565b91506138c28261385d565b604082019050919050565b5f6020820190508181035f8301526138e4816138ab565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61391f601b8361280e565b915061392a826138eb565b602082019050919050565b5f6020820190508181035f83015261394c81613913565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205b4aad820de5c260dcdec33699a33b308a33b51bdc78d7f4caf6fa36eedc1c2264736f6c634300081a0033
Deployed Bytecode Sourcemap
3636:10373:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5700:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6533:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4779:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5977:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10421:162;;;;;;;;;;;;;:::i;:::-;;6702:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12367:370;;;;;;;;;;;;;:::i;:::-;;5886:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11151:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11321:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13233:767;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6080:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2717:148;;;;;;;;;;;;;:::i;:::-;;4580:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11412:673;;;;;;;;;;;;;:::i;:::-;;2503:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4645:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10720:149;;;;;;;;;;;;;:::i;:::-;;5791:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6207:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10591:120;;;;;;;;;;;;;:::i;:::-;;4711:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10979:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12745:476;;;;;;;;;;;;;:::i;:::-;;6382:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12095:227;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5700:83;5737:13;5770:5;;;;;;;;;;;;;;;;;5763:12;;5700:83;:::o;6533:161::-;6608:4;6625:39;6634:12;:10;:12::i;:::-;6648:7;6657:6;6625:8;:39::i;:::-;6682:4;6675:11;;6533:161;;;;:::o;4779:55::-;;;;:::o;5977:95::-;6030:7;4390:1;4448:2;:13;;;;:::i;:::-;4433:12;:28;;;;:::i;:::-;6050:14;;5977:95;:::o;10421:162::-;2640:12;:10;:12::i;:::-;2630:22;;:6;;;;;;;;;;:22;;;2622:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4390:1:::1;4448:2;:13;;;;:::i;:::-;4433:12;:28;;;;:::i;:::-;10477:12;:22;;;;4390:1;4448:2;:13;;;;:::i;:::-;4433:12;:28;;;;:::i;:::-;10510:14;:22;;;;10548:27;4390:1;4448:2;:13;;;;:::i;:::-;4433:12;:28;;;;:::i;:::-;10548:27;;;;;;:::i;:::-;;;;;;;;10421:162::o:0;6702:313::-;6800:4;6817:36;6827:6;6835:9;6846:6;6817:9;:36::i;:::-;6864:121;6873:6;6881:12;:10;:12::i;:::-;6895:89;6933:6;6895:89;;;;;;;;;;;;;;;;;:11;:19;6907:6;6895:19;;;;;;;;;;;;;;;:33;6915:12;:10;:12::i;:::-;6895:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6864:8;:121::i;:::-;7003:4;6996:11;;6702:313;;;;;:::o;12367:370::-;12429:10;;;;;;;;;;;12415:24;;:12;:10;:12::i;:::-;:24;;;12407:33;;;;;;12451:20;12472:24;12490:4;12472:9;:24::i;:::-;12451:45;;12525:1;12510:12;:16;:31;;;;;12530:11;;;;;;;;;;;12510:31;12507:92;;;12557:30;12574:12;12557:16;:30::i;:::-;12507:92;12609:18;12628:21;12609:40;;12677:1;12664:10;:14;12660:70;;;12694:24;12707:10;12694:12;:24::i;:::-;12660:70;12396:341;;12367:370::o;5886:83::-;5927:5;4390:1;5945:16;;5886:83;:::o;11151:162::-;2640:12;:10;:12::i;:::-;2630:22;;:6;;;;;;;;;;:22;;;2622:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11224:6:::1;11219:87;11240:6;:13;11236:1;:17;11219:87;;;11291:5;11273:4;:15;11278:6;11285:1;11278:9;;;;;;;;:::i;:::-;;;;;;;;11273:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;11255:3;;;;;;;11219:87;;;;11151:162:::0;:::o;11321:83::-;11368:4;11389;:7;11394:1;11389:7;;;;;;;;;;;;;;;;;;;;;;;;;11382:14;;11321:83;;;:::o;13233:767::-;13390:10;;;;;;;;;;;13374:26;;:12;:10;:12::i;:::-;:26;;;13366:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13532:1;13519:10;:14;:35;;;;;13551:3;13537:10;:17;;13519:35;13511:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;13641:20;13664:24;13682:4;13664:9;:24::i;:::-;13641:47;;13769:14;13816:3;13802:10;13787:12;:25;;;;:::i;:::-;13786:33;;;;:::i;:::-;13769:50;;13917:1;13908:6;:10;13904:89;;;13936:44;13954:4;13961:10;;;;;;;;;;;13973:6;13936:9;:44::i;:::-;13904:89;13291:709;;13233:767;:::o;6080:119::-;6146:7;6173:9;:18;6183:7;6173:18;;;;;;;;;;;;;;;;6166:25;;6080:119;;;:::o;2717:148::-;2640:12;:10;:12::i;:::-;2630:22;;:6;;;;;;;;;;:22;;;2622:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2824:1:::1;2787:40;;2808:6;::::0;::::1;;;;;;;;2787:40;;;;;;;;;;;;2855:1;2838:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2717:148::o:0;4580:56::-;;;;:::o;11412:673::-;2640:12;:10;:12::i;:::-;2630:22;;:6;;;;;;;;;;:22;;;2622:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11478:11:::1;::::0;::::1;;;;;;;;11477:12;11469:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11564:42;11527:15;;:80;;;;;;;;;;;;;;;;;;11618:58;11635:4;11650:15;;;;;;;;;;;4390:1;4448:2;:13;;;;:::i;:::-;4433:12;:28;;;;:::i;:::-;11618:8;:58::i;:::-;11721:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11703:55;;;11767:4;11774:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11703:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11687:13;;:110;;;;;;;;;;;;;;;;;;11808:15;;;;;;;;;;;:31;;;11847:21;11878:4;11884:24;11902:4;11884:9;:24::i;:::-;11909:1;11911::::0;11913:7:::1;:5;:7::i;:::-;11921:15;11808:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11955:13;;;;;;;;;;;11948:29;;;11986:15;;;;;;;;;;;12004:14;11948:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12044:4;12030:11;;:18;;;;;;;;;;;;;;;;;;12073:4;12059:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11412:673::o:0;2503:79::-;2541:7;2568:6;;;;;;;;;;;2561:13;;2503:79;:::o;4645:58::-;;;;:::o;10720:149::-;2640:12;:10;:12::i;:::-;2630:22;;:6;;;;;;;;;;:22;;;2622:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10793:1:::1;10776:14;:18;;;;10823:1;10805:15;:19;;;;10840:21;10859:1;10840:21;;;;;;:::i;:::-;;;;;;;;10720:149::o:0;5791:87::-;5830:13;5863:7;;;;;;;;;;;;;;;;;5856:14;;5791:87;:::o;6207:167::-;6285:4;6302:42;6312:12;:10;:12::i;:::-;6326:9;6337:6;6302:9;:42::i;:::-;6362:4;6355:11;;6207:167;;;;:::o;10591:120::-;2640:12;:10;:12::i;:::-;2630:22;;:6;;;;;;;;;;:22;;;2622:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10665:1:::1;10650:12;:16;;;;10682:21;10701:1;10682:21;;;;;;:::i;:::-;;;;;;;;10591:120::o:0;4711:61::-;;;;:::o;10979:164::-;2640:12;:10;:12::i;:::-;2630:22;;:6;;;;;;;;;;:22;;;2622:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11053:6:::1;11048:88;11069:5;:12;11065:1;:16;11048:88;;;11120:4;11103;:14;11108:5;11114:1;11108:8;;;;;;;;:::i;:::-;;;;;;;;11103:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11083:3;;;;;;;11048:88;;;;10979:164:::0;:::o;12745:476::-;12873:10;;;;;;;;;;;12859:24;;:12;:10;:12::i;:::-;:24;;;12851:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;12979:20;13002:24;13020:4;13002:9;:24::i;:::-;12979:47;;13134:1;13119:12;:16;13115:99;;;13152:50;13170:4;13177:10;;;;;;;;;;;13189:12;13152:9;:50::i;:::-;13115:99;12778:443;12745:476::o;6382:143::-;6463:7;6490:11;:18;6502:5;6490:18;;;;;;;;;;;;;;;:27;6509:7;6490:27;;;;;;;;;;;;;;;;6483:34;;6382:143;;;;:::o;12095:227::-;12173:10;;;;;;;;;;;12159:24;;:12;:10;:12::i;:::-;:24;;;12151:33;;;;;;12212:12;;12203:7;:21;;:47;;;;;12237:13;;12228:7;:22;;12203:47;12195:56;;;;;;12275:7;12262:12;:20;;;;12307:7;12293:13;:21;;;;12095:227;:::o;258:98::-;311:7;338:10;331:17;;258:98;:::o;7023:335::-;7133:1;7116:19;;:5;:19;;;7108:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7214:1;7195:21;;:7;:21;;;7187:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7296:6;7266:11;:18;7278:5;7266:18;;;;;;;;;;;;;;;:27;7285:7;7266:27;;;;;;;;;;;;;;;:36;;;;7334:7;7318:32;;7327:5;7318:32;;;7343:6;7318:32;;;;;;:::i;:::-;;;;;;;;7023:335;;;:::o;7366:2448::-;7470:1;7454:18;;:4;:18;;;7446:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7547:1;7533:16;;:2;:16;;;7525:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7617:1;7608:6;:10;7600:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7675:17;7717:7;:5;:7::i;:::-;7709:15;;:4;:15;;;;:32;;;;;7734:7;:5;:7::i;:::-;7728:13;;:2;:13;;;;7709:32;7705:1753;;;7767:4;:10;7772:4;7767:10;;;;;;;;;;;;;;;;;;;;;;;;;7766:11;:24;;;;;7782:4;:8;7787:2;7782:8;;;;;;;;;;;;;;;;;;;;;;;;;7781:9;7766:24;7758:33;;;;;;7822:1;7811:9;;:12;7808:139;;7855:76;7927:3;7855:67;7877:15;;7867:9;;:25;7866:55;;7907:14;;7866:55;;;7894:12;;7866:55;7855:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7843:88;;7808:139;7974:1;7964:9;;:11;7961:95;;;8007:33;8036:3;8007:24;8018:12;;8007:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;7995:45;;7961:95;8084:13;;;;;;;;;;;8076:21;;:4;:21;;;:55;;;;;8115:15;;;;;;;;;;;8101:30;;:2;:30;;;;8076:55;:83;;;;;8137:18;:22;8156:2;8137:22;;;;;;;;;;;;;;;;;;;;;;;;;8135:24;8076:83;8072:420;;;8199:12;;8189:6;:22;;8181:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8294:14;;8284:6;8268:13;8278:2;8268:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8260:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8370:76;8442:3;8370:67;8392:15;;8382:9;;:25;8381:55;;8422:14;;8381:55;;;8409:12;;8381:55;8370:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8358:88;;8465:9;;:11;;;;;;;;;:::i;:::-;;;;;;8072:420;8517:13;;;;;;;;;;;8511:19;;:2;:19;;;:43;;;;;8549:4;8534:20;;:4;:20;;;;8511:43;8508:174;;;8587:79;8662:3;8587:70;8609:16;;8599:9;;:26;8598:58;;8641:15;;8598:58;;;8627:13;;8598:58;8587:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8575:91;;8508:174;8698:28;8729:24;8747:4;8729:9;:24::i;:::-;8698:55;;8773:6;;;;;;;;;;;8772:7;:30;;;;;8789:13;;;;;;;;;;;8783:19;;:2;:19;;;8772:30;:45;;;;;8806:11;;;;;;;;;;;8772:45;:89;;;;;8844:17;;8821:20;:40;8772:89;:123;;;;;8877:18;;8865:9;;:30;8772:123;8768:679;;;8935:13;;8920:12;:28;8916:90;;;8985:1;8973:9;:13;;;;8916:90;9044:1;9032:9;;:13;9024:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;9092:69;9109:51;9113:6;9121:38;9125:20;9147:11;;9121:3;:38::i;:::-;9109:3;:51::i;:::-;9092:16;:69::i;:::-;9180:26;9209:21;9180:50;;9274:1;9253:18;:22;9249:106;;;9300:35;9313:21;9300:12;:35::i;:::-;9249:106;9373:9;;:11;;;;;;;;;:::i;:::-;;;;;;9419:12;9403:13;:28;;;;8897:550;8768:679;7743:1715;7705:1753;9483:1;9473:9;:11;9470:161;;;9523:39;9552:9;9523;:24;9541:4;9523:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9498:9;:24;9516:4;9498:24;;;;;;;;;;;;;;;:64;;;;9603:4;9580:39;;9589:4;9580:39;;;9609:9;9580:39;;;;;;:::i;:::-;;;;;;;;9470:161;9657:27;9677:6;9657:9;:15;9667:4;9657:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9641:9;:15;9651:4;9641:15;;;;;;;;;;;;;;;:43;;;;9709:40;9727:21;9738:9;9727:6;:10;;:21;;;;:::i;:::-;9709:9;:13;9719:2;9709:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9695:9;:13;9705:2;9695:13;;;;;;;;;;;;;;;:54;;;;9780:2;9765:41;;9774:4;9765:41;;;9784:21;9795:9;9784:6;:10;;:21;;;;:::i;:::-;9765:41;;;;;;:::i;:::-;;;;;;;;7435:2379;7366:2448;;;:::o;1395:190::-;1481:7;1514:1;1509;:6;;1517:12;1501:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1541:9;1557:1;1553;:5;;;;:::i;:::-;1541:17;;1576:1;1569:8;;;1395:190;;;;;:::o;9930:483::-;5244:4;5235:6;;:13;;;;;;;;;;;;;;;;;;10008:21:::1;10046:1;10032:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10008:40;;10077:4;10059;10064:1;10059:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10103:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10093:4;10098:1;10093:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10136:62;10153:4;10168:15;;;;;;;;;;;10186:11;10136:8;:62::i;:::-;10209:15;;;;;;;;;;;:66;;;10290:11;10316:1;10332:4;10359;10379:15;10209:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9997:416;5280:5:::0;5271:6;;:14;;;;;;;;;;;;;;;;;;9930:483;:::o;10879:92::-;10936:10;;;;;;;;;;;:19;;:27;10956:6;10936:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10879:92;:::o;1593:246::-;1651:7;1680:1;1675;:6;1671:47;;1705:1;1698:8;;;;1671:47;1728:9;1744:1;1740;:5;;;;:::i;:::-;1728:17;;1773:1;1768;1764;:5;;;;:::i;:::-;:10;1756:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1830:1;1823:8;;;1593:246;;;;;:::o;1847:132::-;1905:7;1932:39;1936:1;1939;1932:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1925:46;;1847:132;;;;:::o;9824:98::-;9881:7;9908:1;9906;:3;9905:9;;9913:1;9905:9;;;9911:1;9905:9;9898:16;;9824:98;;;;:::o;1064:179::-;1122:7;1142:9;1158:1;1154;:5;;;;:::i;:::-;1142:17;;1183:1;1178;:6;;1170:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1234:1;1227:8;;;1064:179;;;;:::o;1251:136::-;1309:7;1336:43;1340:1;1343;1336:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1329:50;;1251:136;;;;:::o;1987:189::-;2073:7;2105:1;2101;:5;2108:12;2093:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2132:9;2148:1;2144;:5;;;;:::i;:::-;2132:17;;2167:1;2160:8;;;1987: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:180::-;9138:77;9135:1;9128:88;9235:4;9232:1;9225:15;9259:4;9256:1;9249:15;9276:102;9318:8;9365:5;9362:1;9358:13;9337:34;;9276:102;;;:::o;9384:848::-;9445:5;9452:4;9476:6;9467:15;;9500:5;9491:14;;9514:712;9535:1;9525:8;9522:15;9514:712;;;9630:4;9625:3;9621:14;9615:4;9612:24;9609:50;;;9639:18;;:::i;:::-;9609:50;9689:1;9679:8;9675:16;9672:451;;;10104:4;10097:5;10093:16;10084:25;;9672:451;10154:4;10148;10144:15;10136:23;;10184:32;10207:8;10184:32;:::i;:::-;10172:44;;9514:712;;;9384:848;;;;;;;:::o;10238:1073::-;10292:5;10483:8;10473:40;;10504:1;10495:10;;10506:5;;10473:40;10532:4;10522:36;;10549:1;10540:10;;10551:5;;10522:36;10618:4;10666:1;10661:27;;;;10702:1;10697:191;;;;10611:277;;10661:27;10679:1;10670:10;;10681:5;;;10697:191;10742:3;10732:8;10729:17;10726:43;;;10749:18;;:::i;:::-;10726:43;10798:8;10795:1;10791:16;10782:25;;10833:3;10826:5;10823:14;10820:40;;;10840:18;;:::i;:::-;10820:40;10873:5;;;10611:277;;10997:2;10987:8;10984:16;10978:3;10972:4;10969:13;10965:36;10947:2;10937:8;10934:16;10929:2;10923:4;10920:12;10916:35;10900:111;10897:246;;;11053:8;11047:4;11043:19;11034:28;;11088:3;11081:5;11078:14;11075:40;;;11095:18;;:::i;:::-;11075:40;11128:5;;10897:246;11168:42;11206:3;11196:8;11190:4;11187:1;11168:42;:::i;:::-;11153:57;;;;11242:4;11237:3;11233:14;11226:5;11223:25;11220:51;;;11251:18;;:::i;:::-;11220:51;11300:4;11293:5;11289:16;11280:25;;10238:1073;;;;;;:::o;11317:281::-;11375:5;11399:23;11417:4;11399:23;:::i;:::-;11391:31;;11443:25;11459:8;11443:25;:::i;:::-;11431:37;;11487:104;11524:66;11514:8;11508:4;11487:104;:::i;:::-;11478:113;;11317:281;;;;:::o;11604:410::-;11644:7;11667:20;11685:1;11667:20;:::i;:::-;11662:25;;11701:20;11719:1;11701:20;:::i;:::-;11696:25;;11756:1;11753;11749:9;11778:30;11796:11;11778:30;:::i;:::-;11767:41;;11957:1;11948:7;11944:15;11941:1;11938:22;11918:1;11911:9;11891:83;11868:139;;11987:18;;:::i;:::-;11868:139;11652:362;11604:410;;;;:::o;12020:182::-;12160:34;12156:1;12148:6;12144:14;12137:58;12020:182;:::o;12208:366::-;12350:3;12371:67;12435:2;12430:3;12371:67;:::i;:::-;12364:74;;12447:93;12536:3;12447:93;:::i;:::-;12565:2;12560:3;12556:12;12549:19;;12208:366;;;:::o;12580:419::-;12746:4;12784:2;12773:9;12769:18;12761:26;;12833:9;12827:4;12823:20;12819:1;12808:9;12804:17;12797:47;12861:131;12987:4;12861:131;:::i;:::-;12853:139;;12580:419;;;:::o;13005:180::-;13053:77;13050:1;13043:88;13150:4;13147:1;13140:15;13174:4;13171:1;13164:15;13191:178;13331:30;13327:1;13319:6;13315:14;13308:54;13191:178;:::o;13375:366::-;13517:3;13538:67;13602:2;13597:3;13538:67;:::i;:::-;13531:74;;13614:93;13703:3;13614:93;:::i;:::-;13732:2;13727:3;13723:12;13716:19;;13375:366;;;:::o;13747:419::-;13913:4;13951:2;13940:9;13936:18;13928:26;;14000:9;13994:4;13990:20;13986:1;13975:9;13971:17;13964:47;14028:131;14154:4;14028:131;:::i;:::-;14020:139;;13747:419;;;:::o;14172:168::-;14312:20;14308:1;14300:6;14296:14;14289:44;14172:168;:::o;14346:366::-;14488:3;14509:67;14573:2;14568:3;14509:67;:::i;:::-;14502:74;;14585:93;14674:3;14585:93;:::i;:::-;14703:2;14698:3;14694:12;14687:19;;14346:366;;;:::o;14718:419::-;14884:4;14922:2;14911:9;14907:18;14899:26;;14971:9;14965:4;14961:20;14957:1;14946:9;14942:17;14935:47;14999:131;15125:4;14999:131;:::i;:::-;14991:139;;14718:419;;;:::o;15143:180::-;15191:77;15188:1;15181:88;15288:4;15285:1;15278:15;15312:4;15309:1;15302:15;15329:185;15369:1;15386:20;15404:1;15386:20;:::i;:::-;15381:25;;15420:20;15438:1;15420:20;:::i;:::-;15415:25;;15459:1;15449:35;;15464:18;;:::i;:::-;15449:35;15506:1;15503;15499:9;15494:14;;15329:185;;;;:::o;15520:173::-;15660:25;15656:1;15648:6;15644:14;15637:49;15520:173;:::o;15699:366::-;15841:3;15862:67;15926:2;15921:3;15862:67;:::i;:::-;15855:74;;15938:93;16027:3;15938:93;:::i;:::-;16056:2;16051:3;16047:12;16040:19;;15699:366;;;:::o;16071:419::-;16237:4;16275:2;16264:9;16260:18;16252:26;;16324:9;16318:4;16314:20;16310:1;16299:9;16295:17;16288:47;16352:131;16478:4;16352:131;:::i;:::-;16344:139;;16071:419;;;:::o;16496:143::-;16553:5;16584:6;16578:13;16569:22;;16600:33;16627:5;16600:33;:::i;:::-;16496:143;;;;:::o;16645:351::-;16715:6;16764:2;16752:9;16743:7;16739:23;16735:32;16732:119;;;16770:79;;:::i;:::-;16732:119;16890:1;16915:64;16971:7;16962:6;16951:9;16947:22;16915:64;:::i;:::-;16905:74;;16861:128;16645:351;;;;:::o;17002:332::-;17123:4;17161:2;17150:9;17146:18;17138:26;;17174:71;17242:1;17231:9;17227:17;17218:6;17174:71;:::i;:::-;17255:72;17323:2;17312:9;17308:18;17299:6;17255:72;:::i;:::-;17002:332;;;;;:::o;17340:85::-;17385:7;17414:5;17403:16;;17340:85;;;:::o;17431:60::-;17459:3;17480:5;17473:12;;17431:60;;;:::o;17497:158::-;17555:9;17588:61;17606:42;17615:32;17641:5;17615:32;:::i;:::-;17606:42;:::i;:::-;17588:61;:::i;:::-;17575:74;;17497:158;;;:::o;17661:147::-;17756:45;17795:5;17756:45;:::i;:::-;17751:3;17744:58;17661:147;;:::o;17814:807::-;18063:4;18101:3;18090:9;18086:19;18078:27;;18115:71;18183:1;18172:9;18168:17;18159:6;18115:71;:::i;:::-;18196:72;18264:2;18253:9;18249:18;18240:6;18196:72;:::i;:::-;18278:80;18354:2;18343:9;18339:18;18330:6;18278:80;:::i;:::-;18368;18444:2;18433:9;18429:18;18420:6;18368:80;:::i;:::-;18458:73;18526:3;18515:9;18511:19;18502:6;18458:73;:::i;:::-;18541;18609:3;18598:9;18594:19;18585:6;18541:73;:::i;:::-;17814:807;;;;;;;;;:::o;18627:143::-;18684:5;18715:6;18709:13;18700:22;;18731:33;18758:5;18731:33;:::i;:::-;18627:143;;;;:::o;18776:663::-;18864:6;18872;18880;18929:2;18917:9;18908:7;18904:23;18900:32;18897:119;;;18935:79;;:::i;:::-;18897:119;19055:1;19080:64;19136:7;19127:6;19116:9;19112:22;19080:64;:::i;:::-;19070:74;;19026:128;19193:2;19219:64;19275:7;19266:6;19255:9;19251:22;19219:64;:::i;:::-;19209:74;;19164:129;19332:2;19358:64;19414:7;19405:6;19394:9;19390:22;19358:64;:::i;:::-;19348:74;;19303:129;18776:663;;;;;:::o;19445:332::-;19566:4;19604:2;19593:9;19589:18;19581:26;;19617:71;19685:1;19674:9;19670:17;19661:6;19617:71;:::i;:::-;19698:72;19766:2;19755:9;19751:18;19742:6;19698:72;:::i;:::-;19445:332;;;;;:::o;19783:116::-;19853:21;19868:5;19853:21;:::i;:::-;19846:5;19843:32;19833:60;;19889:1;19886;19879:12;19833:60;19783:116;:::o;19905:137::-;19959:5;19990:6;19984:13;19975:22;;20006:30;20030:5;20006:30;:::i;:::-;19905:137;;;;:::o;20048:345::-;20115:6;20164:2;20152:9;20143:7;20139:23;20135:32;20132:119;;;20170:79;;:::i;:::-;20132:119;20290:1;20315:61;20368:7;20359:6;20348:9;20344:22;20315:61;:::i;:::-;20305:71;;20261:125;20048:345;;;;:::o;20399:238::-;20500:4;20538:2;20527:9;20523:18;20515:26;;20551:79;20627:1;20616:9;20612:17;20603:6;20551:79;:::i;:::-;20399:238;;;;:::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://5b4aad820de5c260dcdec33699a33b308a33b51bdc78d7f4caf6fa36eedc1c22
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.