ERC-20
Overview
Max Total Supply
1,000,000,000 HAYR
Holders
12
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
7,100,000 HAYRValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
hayr
Compiler Version
v0.8.13+commit.abaa5c0e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-10-20 */ /* Relaunch due to limit issues in original 3% HAY reflections 1% Marketing Socials coming soon t.me/hayisreflecting */ // SPDX-License-Identifier: Unlicensed pragma solidity 0.8.13; /** * Standard SafeMath, stripped down to just add/sub/mul/div */ 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) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } } /** * ERC20 standard interface. */ interface IERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); 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); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } 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); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface IHayReflections { function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external; function setShare(address shareholder, uint256 amount) external; function deposit() external payable; function process(uint256 gas) external; function gibTokens(address shareholder) external; } contract HayReflections is IHayReflections { using SafeMath for uint256; address _token; address public HAY; IDEXRouter router; struct Share { uint256 amount; uint256 totalExcluded; uint256 totalRealised; } address[] shareholders; mapping (address => uint256) shareholderIndexes; mapping (address => uint256) shareholderClaims; mapping (address => Share) public shares; uint256 public totalShares; uint256 public totalDividends; uint256 public totalDistributed; uint256 public dividendsPerShare; uint256 public dividendsPerShareAccuracyFactor = 10 ** 36; uint256 public minPeriod = 30 minutes; uint256 public minDistribution = 0 * (10 ** 9); uint256 public currentIndex; bool initialized; modifier initialization() { require(!initialized); _; initialized = true; } modifier onlyToken() { require(msg.sender == _token); _; } constructor () { _token = msg.sender; router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); HAY = 0xfA3E941D1F6B7b10eD84A0C211bfA8aeE907965e; } receive() external payable { deposit(); } function setDistributionCriteria(uint256 newMinPeriod, uint256 newMinDistribution) external override onlyToken { minPeriod = newMinPeriod; minDistribution = newMinDistribution; } function setShare(address shareholder, uint256 amount) external override onlyToken { if(shares[shareholder].amount > 0){ distributeDividend(shareholder); } if(amount > 0 && shares[shareholder].amount == 0){ addShareholder(shareholder); }else if(amount == 0 && shares[shareholder].amount > 0){ removeShareholder(shareholder); } totalShares = totalShares.sub(shares[shareholder].amount).add(amount); shares[shareholder].amount = amount; shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); } function deposit() public payable override { uint256 balanceBefore = IERC20(HAY).balanceOf(address(this)); address[] memory path = new address[](2); path[0] = router.WETH(); path[1] = address(HAY); router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}( 0, path, address(this), block.timestamp ); uint256 amount = IERC20(HAY).balanceOf(address(this)).sub(balanceBefore); totalDividends = totalDividends.add(amount); dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares)); } function process(uint256 gas) external override { uint256 shareholderCount = shareholders.length; if(shareholderCount == 0) { return; } uint256 iterations = 0; uint256 gasUsed = 0; uint256 gasLeft = gasleft(); while(gasUsed < gas && iterations < shareholderCount) { if(currentIndex >= shareholderCount){ currentIndex = 0; } if(shouldDistribute(shareholders[currentIndex])){ distributeDividend(shareholders[currentIndex]); } gasUsed = gasUsed.add(gasLeft.sub(gasleft())); gasLeft = gasleft(); currentIndex++; iterations++; } } function shouldDistribute(address shareholder) public view returns (bool) { return shareholderClaims[shareholder] + minPeriod < block.timestamp && getUnpaidEarnings(shareholder) > minDistribution; } function distributeDividend(address shareholder) internal { if(shares[shareholder].amount == 0){ return; } uint256 amount = getUnpaidEarnings(shareholder); if(amount > 0){ totalDistributed = totalDistributed.add(amount); IERC20(HAY).transfer(shareholder, amount); shareholderClaims[shareholder] = block.timestamp; shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount); shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); } } function gibTokens(address shareholder) external override onlyToken { distributeDividend(shareholder); } function getUnpaidEarnings(address shareholder) public view returns (uint256) { if(shares[shareholder].amount == 0){ return 0; } uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount); uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded; if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; } return shareholderTotalDividends.sub(shareholderTotalExcluded); } function getCumulativeDividends(uint256 share) internal view returns (uint256) { return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor); } function addShareholder(address shareholder) internal { shareholderIndexes[shareholder] = shareholders.length; shareholders.push(shareholder); } function removeShareholder(address shareholder) internal { shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1]; shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder]; shareholders.pop(); } } contract hayr is Context, IERC20, Ownable { using SafeMath for uint256; address public HAY = 0xfA3E941D1F6B7b10eD84A0C211bfA8aeE907965e; //HAY CA string private constant _name = "Hay Reflections"; string private constant _symbol = "HAYR"; uint8 private constant _decimals = 18; uint256 private _totalSupply = 1000000000 * (10 ** _decimals); mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping (address => uint256) private cooldown; address private WETH; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; bool public antiBot = true; mapping (address => bool) private bots; mapping (address => bool) public isFeeExempt; mapping (address => bool) public isTxLimitExempt; mapping (address => bool) public isDividendExempt; uint256 public launchedAt; address public lpWallet = DEAD; uint256 public buyFee = 29; uint256 public sellFee = 29; uint256 public toReflections = 75; uint256 public toLiquidity = 0; uint256 public toMarketing = 25; uint256 public allocationSum = 100; IDEXRouter public router; address public pair; address public factory; address private tokenOwner; address public devWallet = payable(0x7eF183C172c4eEfD3E77b2BC39Fe77a751cca069); bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public tradingOpen = false; HayReflections public hayReflections; uint256 public hayReflectionsGas = 0; modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } uint256 public maxTx = _totalSupply.div(100); uint256 public maxWallet = _totalSupply.div(50); uint256 public swapThreshold = _totalSupply.div(400); constructor () { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); WETH = router.WETH(); pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); _allowances[address(this)][address(router)] = type(uint256).max; hayReflections = new HayReflections(); isFeeExempt[owner()] = true; isFeeExempt[devWallet] = true; isDividendExempt[pair] = true; isDividendExempt[address(this)] = true; isDividendExempt[DEAD] = true; isTxLimitExempt[owner()] = true; isTxLimitExempt[pair] = true; isTxLimitExempt[DEAD] = true; isTxLimitExempt[devWallet] = true; _balances[owner()] = _totalSupply; emit Transfer(address(0), owner(), _totalSupply); } receive() external payable { } function setBots(address[] memory bots_) external onlyOwner { for (uint i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } //once enabled, cannot be reversed function openTrading() external onlyOwner { launchedAt = block.number; tradingOpen = true; } function changeTotalFees(uint256 newBuyFee, uint256 newSellFee) external onlyOwner { buyFee = newBuyFee; sellFee = newSellFee; } function changeFeeAllocation(uint256 newRewardFee, uint256 newLpFee, uint256 newMarketingFee) external onlyOwner { toReflections = newRewardFee; toLiquidity = newLpFee; toMarketing = newMarketingFee; } function changeTxLimit(uint256 newLimit) external onlyOwner { maxTx = newLimit; } function changeWalletLimit(uint256 newLimit) external onlyOwner { maxWallet = newLimit; } function changeIsFeeExempt(address holder, bool exempt) external onlyOwner { isFeeExempt[holder] = exempt; } function changeIsTxLimitExempt(address holder, bool exempt) external onlyOwner { isTxLimitExempt[holder] = exempt; } function setDevWallet(address payable newDevWallet) external onlyOwner { devWallet = payable(newDevWallet); } function setOwnerWallet(address payable newOwnerWallet) external onlyOwner { tokenOwner = newOwnerWallet; } function changeSwapBackSettings(bool enableSwapBack, uint256 newSwapBackLimit) external onlyOwner { swapAndLiquifyEnabled = enableSwapBack; swapThreshold = newSwapBackLimit; } function setDistributionCriteria(uint256 newMinPeriod, uint256 newMinDistribution) external onlyOwner { hayReflections.setDistributionCriteria(newMinPeriod, newMinDistribution); } function delBot(address notbot) external onlyOwner { bots[notbot] = false; } function _setIsDividendExempt(address holder, bool exempt) internal { require(holder != address(this) && holder != pair); isDividendExempt[holder] = exempt; if(exempt){ hayReflections.setShare(holder, 0); }else{ hayReflections.setShare(holder, _balances[holder]); } } function setIsDividendExempt(address holder, bool exempt) external onlyOwner { _setIsDividendExempt(holder, exempt); } function changeHayReflectionsGas(uint256 newGas) external onlyOwner { hayReflectionsGas = newGas; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) { return owner(); } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transfer(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transfer(sender, recipient, amount); } function _transfer(address sender, address recipient, uint256 amount) internal returns (bool) { if (sender!= owner() && recipient!= owner()) require(tradingOpen, "hold ur horses big guy."); //transfers disabled before tradingActive require(!bots[sender] && !bots[recipient]); if(inSwapAndLiquify){ return _basicTransfer(sender, recipient, amount); } require(amount <= maxTx || isTxLimitExempt[sender], "tx"); if(!isTxLimitExempt[recipient] && antiBot) { require(_balances[recipient].add(amount) <= maxWallet, "wallet"); } if(msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold){ swapBack(); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? takeFee(sender, recipient, amount) : amount; _balances[recipient] = _balances[recipient].add(finalAmount); // Dividend tracker if(!isDividendExempt[sender]) { try hayReflections.setShare(sender, _balances[sender]) {} catch {} } if(!isDividendExempt[recipient]) { try hayReflections.setShare(recipient, _balances[recipient]) {} catch {} } emit Transfer(sender, recipient, finalAmount); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 feeApplicable = pair == recipient ? sellFee : buyFee; uint256 feeAmount = amount.mul(feeApplicable).div(100); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); approve(address(this), tokenAmount); router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, 0, lpWallet, block.timestamp ); } function swapBack() internal lockTheSwap { uint256 tokenBalance = _balances[address(this)]; uint256 tokensForLiquidity = tokenBalance.mul(toLiquidity).div(100).div(2); uint256 amountToSwap = tokenBalance.sub(tokensForLiquidity); swapTokensForEth(amountToSwap); uint256 totalEthBalance = address(this).balance; uint256 ethForHAY = totalEthBalance.mul(toReflections).div(100); uint256 ethForDev = totalEthBalance.mul(toMarketing).div(100); uint256 ethForLiquidity = totalEthBalance.mul(toLiquidity).div(100).div(2); if (totalEthBalance > 0){ payable(devWallet).transfer(ethForDev); } try hayReflections.deposit{value: ethForHAY}() {} catch {} if (tokensForLiquidity > 0){ addLiquidity(tokensForLiquidity, ethForLiquidity); } } function manualSwapBack() external onlyOwner { swapBack(); } function clearStuckEth() external onlyOwner { uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0){ payable(devWallet).transfer(contractETHBalance); } } function manualProcessGas(uint256 manualGas) external onlyOwner { hayReflections.process(manualGas); } function checkPendingReflections(address shareholder) external view returns (uint256) { return hayReflections.getUnpaidEarnings(shareholder); } function getHAY() external { hayReflections.gibTokens(msg.sender); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"HAY","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"allocationSum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antiBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"spender","type":"address"}],"name":"approveMax","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":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newRewardFee","type":"uint256"},{"internalType":"uint256","name":"newLpFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"}],"name":"changeFeeAllocation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newGas","type":"uint256"}],"name":"changeHayReflectionsGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapBack","type":"bool"},{"internalType":"uint256","name":"newSwapBackLimit","type":"uint256"}],"name":"changeSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"changeTotalFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"checkPendingReflections","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getHAY","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hayReflections","outputs":[{"internalType":"contract HayReflections","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hayReflectionsGas","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isDividendExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"manualGas","type":"uint256"}],"name":"manualProcessGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newDevWallet","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMinPeriod","type":"uint256"},{"internalType":"uint256","name":"newMinDistribution","type":"uint256"}],"name":"setDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newOwnerWallet","type":"address"}],"name":"setOwnerWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"toLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toReflections","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405273fa3e941d1f6b7b10ed84a0c211bfa8aee907965e600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a62000069919062000e86565b633b9aca006200007a919062000ed7565b60025561dead600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860146101000a81548160ff021916908315150217905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601d600f55601d601055604b601155600060125560196013556064601455737ef183c172c4eefd3e77b2bc39fe77a751cca069601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601960156101000a81548160ff0219169083151502179055506000601960166101000a81548160ff0219169083151502179055506000601b556200024b606460025462000bf360201b620028241790919060201c565b601c556200026b603260025462000bf360201b620028241790919060201c565b601d556200028c61019060025462000bf360201b620028241790919060201c565b601e553480156200029c57600080fd5b506000620002af62000c4560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000410573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000436919062000fa2565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200050a919062000fa2565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200056892919062000fe5565b6020604051808303816000875af115801562000588573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005ae919062000fa2565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550604051620006bf9062000cde565b604051809103906000f080158015620006dc573d6000803e3d6000fd5b50601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a60006200073362000c4d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60006200096062000c4d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506002546003600062000b3662000c4d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000b8462000c4d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60025460405162000be5919062001023565b60405180910390a36200116f565b600062000c3d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000c7660201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000cc0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000cb79190620010e4565b60405180910390fd5b506000838562000cd1919062001137565b9050809150509392505050565b61204c8062005fc083390190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000d7a5780860481111562000d525762000d5162000cec565b5b600185161562000d625780820291505b808102905062000d728562000d1b565b945062000d32565b94509492505050565b60008262000d95576001905062000e68565b8162000da5576000905062000e68565b816001811462000dbe576002811462000dc95762000dff565b600191505062000e68565b60ff84111562000dde5762000ddd62000cec565b5b8360020a91508482111562000df85762000df762000cec565b5b5062000e68565b5060208310610133831016604e8410600b841016171562000e395782820a90508381111562000e335762000e3262000cec565b5b62000e68565b62000e48848484600162000d28565b9250905081840481111562000e625762000e6162000cec565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000e938262000e6f565b915062000ea08362000e79565b925062000ecf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000d83565b905092915050565b600062000ee48262000e6f565b915062000ef18362000e6f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000f2d5762000f2c62000cec565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000f6a8262000f3d565b9050919050565b62000f7c8162000f5d565b811462000f8857600080fd5b50565b60008151905062000f9c8162000f71565b92915050565b60006020828403121562000fbb5762000fba62000f38565b5b600062000fcb8482850162000f8b565b91505092915050565b62000fdf8162000f5d565b82525050565b600060408201905062000ffc600083018562000fd4565b6200100b602083018462000fd4565b9392505050565b6200101d8162000e6f565b82525050565b60006020820190506200103a600083018462001012565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156200107c5780820151818401526020810190506200105f565b838111156200108c576000848401525b50505050565b6000601f19601f8301169050919050565b6000620010b08262001040565b620010bc81856200104b565b9350620010ce8185602086016200105c565b620010d98162001092565b840191505092915050565b60006020820190508181036000830152620011008184620010a3565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620011448262000e6f565b9150620011518362000e6f565b92508262001164576200116362001108565b5b828204905092915050565b614e41806200117f6000396000f3fe6080604052600436106103905760003560e01c80637dfcbe34116101dc578063c45a015511610102578063f2fde38b116100a0578063f8ebf19b1161006f578063f8ebf19b14610d0b578063fabe628314610d36578063ff23c9c614610d5f578063ffb54a9914610d8a57610397565b8063f2fde38b14610c63578063f708a64f14610c8c578063f887ea4014610cb5578063f8b45b0514610ce057610397565b8063caa5581b116100dc578063caa5581b14610ba9578063ce847a6d14610bd4578063d920334e14610bfd578063dd62ed3e14610c2657610397565b8063c45a015514610b3c578063c8d1293d14610b67578063c9567bf914610b9257610397565b806395d89b411161017a578063ae8c890b11610149578063ae8c890b14610a94578063b515566a14610abf578063bb542ef014610ae8578063bf56b37114610b1157610397565b806395d89b41146109d8578063a3a2e89e14610a03578063a8aa1b3114610a2c578063a9059cbb14610a5757610397565b8063893d20e8116101b6578063893d20e81461091a5780638b42507f146109455780638da5cb5b146109825780638ea5220f146109ad57610397565b80637dfcbe34146108af57806381934031146108da57806389291a8f1461090357610397565b80633dab5269116102c15780636303516c1161025f5780637437681e1161022e5780637437681e146107f357806375df13051461081e57806377359aa7146108495780637db1342c1461088657610397565b80636303516c1461075d57806366eb37851461078857806370a082311461079f578063715018a6146107dc57610397565b8063454343771161029b578063454343771461069f57806347062402146106ca5780634a74bb02146106f5578063571ac8b01461072057610397565b80633dab5269146105fc5780633f4218e0146106255780634355855a1461066257610397565b8063273123b71161032e5780632d48e896116103085780632d48e896146105565780632dbea2e11461057f57806330ca34ee146105a8578063313ce567146105d157610397565b8063273123b7146104d75780632b112e49146105005780632b14ca561461052b57610397565b8063095ea7b31161036a578063095ea7b31461040957806318160ddd146104465780631f53ac021461047157806323b872dd1461049a57610397565b80630445b6671461039c57806305be0d30146103c757806306fdde03146103de57610397565b3661039757005b600080fd5b3480156103a857600080fd5b506103b1610db5565b6040516103be9190613ea0565b60405180910390f35b3480156103d357600080fd5b506103dc610dbb565b005b3480156103ea57600080fd5b506103f3610e4a565b6040516104009190613f54565b60405180910390f35b34801561041557600080fd5b50610430600480360381019061042b9190614014565b610e87565b60405161043d919061406f565b60405180910390f35b34801561045257600080fd5b5061045b610f79565b6040516104689190613ea0565b60405180910390f35b34801561047d57600080fd5b50610498600480360381019061049391906140c8565b610f83565b005b3480156104a657600080fd5b506104c160048036038101906104bc91906140f5565b61105c565b6040516104ce919061406f565b60405180910390f35b3480156104e357600080fd5b506104fe60048036038101906104f99190614148565b61125c565b005b34801561050c57600080fd5b5061051561134c565b6040516105229190613ea0565b60405180910390f35b34801561053757600080fd5b506105406113ce565b60405161054d9190613ea0565b60405180910390f35b34801561056257600080fd5b5061057d60048036038101906105789190614175565b6113d4565b005b34801561058b57600080fd5b506105a660048036038101906105a191906141b5565b6114fc565b005b3480156105b457600080fd5b506105cf60048036038101906105ca9190614175565b6115ab565b005b3480156105dd57600080fd5b506105e6611652565b6040516105f39190614224565b60405180910390f35b34801561060857600080fd5b50610623600480360381019061061e919061426b565b61165b565b005b34801561063157600080fd5b5061064c60048036038101906106479190614148565b611715565b604051610659919061406f565b60405180910390f35b34801561066e57600080fd5b5061068960048036038101906106849190614148565b611735565b604051610696919061406f565b60405180910390f35b3480156106ab57600080fd5b506106b4611755565b6040516106c19190613ea0565b60405180910390f35b3480156106d657600080fd5b506106df61175b565b6040516106ec9190613ea0565b60405180910390f35b34801561070157600080fd5b5061070a611761565b604051610717919061406f565b60405180910390f35b34801561072c57600080fd5b5061074760048036038101906107429190614148565b611774565b604051610754919061406f565b60405180910390f35b34801561076957600080fd5b506107726117a7565b60405161077f91906142ba565b60405180910390f35b34801561079457600080fd5b5061079d6117cd565b005b3480156107ab57600080fd5b506107c660048036038101906107c19190614148565b61186c565b6040516107d39190613ea0565b60405180910390f35b3480156107e857600080fd5b506107f16118b5565b005b3480156107ff57600080fd5b50610808611a08565b6040516108159190613ea0565b60405180910390f35b34801561082a57600080fd5b50610833611a0e565b6040516108409190613ea0565b60405180910390f35b34801561085557600080fd5b50610870600480360381019061086b9190614148565b611a14565b60405161087d9190613ea0565b60405180910390f35b34801561089257600080fd5b506108ad60048036038101906108a891906142d5565b611ab9565b005b3480156108bb57600080fd5b506108c4611b58565b6040516108d1919061406f565b60405180910390f35b3480156108e657600080fd5b5061090160048036038101906108fc91906142d5565b611b6b565b005b34801561090f57600080fd5b50610918611c90565b005b34801561092657600080fd5b5061092f611da0565b60405161093c91906142ba565b60405180910390f35b34801561095157600080fd5b5061096c60048036038101906109679190614148565b611daf565b604051610979919061406f565b60405180910390f35b34801561098e57600080fd5b50610997611dcf565b6040516109a491906142ba565b60405180910390f35b3480156109b957600080fd5b506109c2611df8565b6040516109cf91906142ba565b60405180910390f35b3480156109e457600080fd5b506109ed611e1e565b6040516109fa9190613f54565b60405180910390f35b348015610a0f57600080fd5b50610a2a6004803603810190610a259190614302565b611e5b565b005b348015610a3857600080fd5b50610a41611f4b565b604051610a4e91906142ba565b60405180910390f35b348015610a6357600080fd5b50610a7e6004803603810190610a799190614014565b611f71565b604051610a8b919061406f565b60405180910390f35b348015610aa057600080fd5b50610aa9611f86565b604051610ab691906143a1565b60405180910390f35b348015610acb57600080fd5b50610ae66004803603810190610ae19190614504565b611fac565b005b348015610af457600080fd5b50610b0f6004803603810190610b0a91906140c8565b6120d6565b005b348015610b1d57600080fd5b50610b266121af565b604051610b339190613ea0565b60405180910390f35b348015610b4857600080fd5b50610b516121b5565b604051610b5e91906142ba565b60405180910390f35b348015610b7357600080fd5b50610b7c6121db565b604051610b899190613ea0565b60405180910390f35b348015610b9e57600080fd5b50610ba76121e1565b005b348015610bb557600080fd5b50610bbe61229a565b604051610bcb9190613ea0565b60405180910390f35b348015610be057600080fd5b50610bfb6004803603810190610bf691906142d5565b6122a0565b005b348015610c0957600080fd5b50610c246004803603810190610c1f91906142d5565b61233f565b005b348015610c3257600080fd5b50610c4d6004803603810190610c48919061454d565b6123de565b604051610c5a9190613ea0565b60405180910390f35b348015610c6f57600080fd5b50610c8a6004803603810190610c859190614148565b612465565b005b348015610c9857600080fd5b50610cb36004803603810190610cae9190614302565b612626565b005b348015610cc157600080fd5b50610cca6126c9565b604051610cd791906145c0565b60405180910390f35b348015610cec57600080fd5b50610cf56126ef565b604051610d029190613ea0565b60405180910390f35b348015610d1757600080fd5b50610d206126f5565b604051610d2d9190613ea0565b60405180910390f35b348015610d4257600080fd5b50610d5d6004803603810190610d589190614302565b6126fb565b005b348015610d6b57600080fd5b50610d746127eb565b604051610d8191906142ba565b60405180910390f35b348015610d9657600080fd5b50610d9f612811565b604051610dac919061406f565b60405180910390f35b601e5481565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd14ae27336040518263ffffffff1660e01b8152600401610e1691906142ba565b600060405180830381600087803b158015610e3057600080fd5b505af1158015610e44573d6000803e3d6000fd5b50505050565b60606040518060400160405280600f81526020017f486179205265666c656374696f6e730000000000000000000000000000000000815250905090565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610f679190613ea0565b60405180910390a36001905092915050565b6000600254905090565b610f8b61286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611018576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100f90614627565b60405180910390fd5b80601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611248576111c7826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128769092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6112538484846128da565b90509392505050565b61126461286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e890614627565b60405180910390fd5b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006113c961137c600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661186c565b6113bb6113aa600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661186c565b6002546131b990919063ffffffff16565b6131b990919063ffffffff16565b905090565b60105481565b6113dc61286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611469576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146090614627565b60405180910390fd5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b81526004016114c6929190614647565b600060405180830381600087803b1580156114e057600080fd5b505af11580156114f4573d6000803e3d6000fd5b505050505050565b61150461286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611591576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158890614627565b60405180910390fd5b826011819055508160128190555080601381905550505050565b6115b361286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611640576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163790614627565b60405180910390fd5b81600f81905550806010819055505050565b60006012905090565b61166361286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e790614627565b60405180910390fd5b81601960156101000a81548160ff02191690831515021790555080601e819055505050565b600a6020528060005260406000206000915054906101000a900460ff1681565b600c6020528060005260406000206000915054906101000a900460ff1681565b60145481565b600f5481565b601960159054906101000a900460ff1681565b60006117a0827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610e87565b9050919050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117d561286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611862576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185990614627565b60405180910390fd5b61186a613203565b565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6118bd61286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461194a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194190614627565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601c5481565b60135481565b6000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166328fd3198836040518263ffffffff1660e01b8152600401611a7191906142ba565b602060405180830381865afa158015611a8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab29190614685565b9050919050565b611ac161286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4590614627565b60405180910390fd5b80601d8190555050565b600860149054906101000a900460ff1681565b611b7361286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf790614627565b60405180910390fd5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c479826040518263ffffffff1660e01b8152600401611c5b9190613ea0565b600060405180830381600087803b158015611c7557600080fd5b505af1158015611c89573d6000803e3d6000fd5b5050505050565b611c9861286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1c90614627565b60405180910390fd5b60004790506000811115611d9d57601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d9b573d6000803e3d6000fd5b505b50565b6000611daa611dcf565b905090565b600b6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600481526020017f4841595200000000000000000000000000000000000000000000000000000000815250905090565b611e6361286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ef0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee790614627565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611f7e3384846128da565b905092915050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611fb461286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612041576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203890614627565b60405180910390fd5b60005b81518110156120d257600160096000848481518110612066576120656146b2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806120ca90614710565b915050612044565b5050565b6120de61286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461216b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216290614627565b60405180910390fd5b80601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d5481565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60125481565b6121e961286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612276576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226d90614627565b60405180910390fd5b43600d819055506001601960166101000a81548160ff021916908315150217905550565b60115481565b6122a861286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232c90614627565b60405180910390fd5b80601b8190555050565b61234761286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123cb90614627565b60405180910390fd5b80601c8190555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61246d61286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f190614627565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612569576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612560906147ca565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61262e61286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b290614627565b60405180910390fd5b6126c58282613485565b5050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d5481565b601b5481565b61270361286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612790576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278790614627565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601960169054906101000a900460ff1681565b600061286683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506136dd565b905092915050565b600033905090565b60008383111582906128be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b59190613f54565b60405180910390fd5b50600083856128cd91906147ea565b9050809150509392505050565b60006128e4611dcf565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156129525750612922611dcf565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156129a757601960169054906101000a900460ff166129a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299d9061486a565b60405180910390fd5b5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612a4b5750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612a5457600080fd5b601960149054906101000a900460ff1615612a7b57612a74848484613740565b90506131b2565b601c5482111580612ad55750600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612b14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0b906148d6565b60405180910390fd5b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612b7a5750600860149054906101000a900460ff165b15612c1657601d54612bd483600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461391390919063ffffffff16565b1115612c15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c0c90614942565b60405180910390fd5b5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015612c815750601960149054906101000a900460ff16155b8015612c995750601960159054906101000a900460ff165b8015612ce65750601e54600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15612cf457612cf3613203565b5b612d7d826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128769092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612e665750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612e705782612e7c565b612e7b858585613971565b5b9050612ed081600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461391390919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661302d57601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401613000929190614962565b600060405180830381600087803b15801561301a57600080fd5b505af192505050801561302b575060015b505b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661314757601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b815260040161311a929190614962565b600060405180830381600087803b15801561313457600080fd5b505af1925050508015613145575060015b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516131a49190613ea0565b60405180910390a360019150505b9392505050565b60006131fb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612876565b905092915050565b6001601960146101000a81548160ff0219169083151502179055506000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600061329f6002613291606461328360125487613b1990919063ffffffff16565b61282490919063ffffffff16565b61282490919063ffffffff16565b905060006132b682846131b990919063ffffffff16565b90506132c181613b93565b600047905060006132f060646132e260115485613b1990919063ffffffff16565b61282490919063ffffffff16565b9050600061331c606461330e60135486613b1990919063ffffffff16565b61282490919063ffffffff16565b9050600061335b600261334d606461333f60125489613b1990919063ffffffff16565b61282490919063ffffffff16565b61282490919063ffffffff16565b905060008411156133d057601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156133ce573d6000803e3d6000fd5b505b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b15801561343a57600080fd5b505af19350505050801561344c575060015b506000861115613461576134608682613db4565b5b505050505050506000601960146101000a81548160ff021916908315150217905550565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561350f5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61351857600080fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561360a57601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b81526004016135d39291906149c6565b600060405180830381600087803b1580156135ed57600080fd5b505af1158015613601573d6000803e3d6000fd5b505050506136d9565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016136a6929190614962565b600060405180830381600087803b1580156136c057600080fd5b505af11580156136d4573d6000803e3d6000fd5b505050505b5050565b60008083118290613724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161371b9190613f54565b60405180910390fd5b50600083856137339190614a1e565b9050809150509392505050565b60006137cb826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128769092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061386082600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461391390919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516139009190613ea0565b60405180910390a3600190509392505050565b60008082846139229190614a4f565b905083811015613967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161395e90614af1565b60405180910390fd5b8091505092915050565b6000808373ffffffffffffffffffffffffffffffffffffffff16601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146139d157600f546139d5565b6010545b905060006139ff60646139f18487613b1990919063ffffffff16565b61282490919063ffffffff16565b9050613a5381600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461391390919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613af39190613ea0565b60405180910390a3613b0e81856131b990919063ffffffff16565b925050509392505050565b6000808303613b2b5760009050613b8d565b60008284613b399190614b11565b9050828482613b489190614a1e565b14613b88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b7f90614bdd565b60405180910390fd5b809150505b92915050565b6000600267ffffffffffffffff811115613bb057613baf6143c1565b5b604051908082528060200260200182016040528015613bde5781602001602082028036833780820191505090505b5090503081600081518110613bf657613bf56146b2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613c9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cc19190614c12565b81600181518110613cd557613cd46146b2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613d193083610e87565b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613d7e959493929190614cfd565b600060405180830381600087803b158015613d9857600080fd5b505af1158015613dac573d6000803e3d6000fd5b505050505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401613e3d96959493929190614d57565b60606040518083038185885af1158015613e5b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613e809190614db8565b5050505050565b6000819050919050565b613e9a81613e87565b82525050565b6000602082019050613eb56000830184613e91565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613ef5578082015181840152602081019050613eda565b83811115613f04576000848401525b50505050565b6000601f19601f8301169050919050565b6000613f2682613ebb565b613f308185613ec6565b9350613f40818560208601613ed7565b613f4981613f0a565b840191505092915050565b60006020820190508181036000830152613f6e8184613f1b565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613fb582613f8a565b9050919050565b613fc581613faa565b8114613fd057600080fd5b50565b600081359050613fe281613fbc565b92915050565b613ff181613e87565b8114613ffc57600080fd5b50565b60008135905061400e81613fe8565b92915050565b6000806040838503121561402b5761402a613f80565b5b600061403985828601613fd3565b925050602061404a85828601613fff565b9150509250929050565b60008115159050919050565b61406981614054565b82525050565b60006020820190506140846000830184614060565b92915050565b600061409582613f8a565b9050919050565b6140a58161408a565b81146140b057600080fd5b50565b6000813590506140c28161409c565b92915050565b6000602082840312156140de576140dd613f80565b5b60006140ec848285016140b3565b91505092915050565b60008060006060848603121561410e5761410d613f80565b5b600061411c86828701613fd3565b935050602061412d86828701613fd3565b925050604061413e86828701613fff565b9150509250925092565b60006020828403121561415e5761415d613f80565b5b600061416c84828501613fd3565b91505092915050565b6000806040838503121561418c5761418b613f80565b5b600061419a85828601613fff565b92505060206141ab85828601613fff565b9150509250929050565b6000806000606084860312156141ce576141cd613f80565b5b60006141dc86828701613fff565b93505060206141ed86828701613fff565b92505060406141fe86828701613fff565b9150509250925092565b600060ff82169050919050565b61421e81614208565b82525050565b60006020820190506142396000830184614215565b92915050565b61424881614054565b811461425357600080fd5b50565b6000813590506142658161423f565b92915050565b6000806040838503121561428257614281613f80565b5b600061429085828601614256565b92505060206142a185828601613fff565b9150509250929050565b6142b481613faa565b82525050565b60006020820190506142cf60008301846142ab565b92915050565b6000602082840312156142eb576142ea613f80565b5b60006142f984828501613fff565b91505092915050565b6000806040838503121561431957614318613f80565b5b600061432785828601613fd3565b925050602061433885828601614256565b9150509250929050565b6000819050919050565b600061436761436261435d84613f8a565b614342565b613f8a565b9050919050565b60006143798261434c565b9050919050565b600061438b8261436e565b9050919050565b61439b81614380565b82525050565b60006020820190506143b66000830184614392565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6143f982613f0a565b810181811067ffffffffffffffff82111715614418576144176143c1565b5b80604052505050565b600061442b613f76565b905061443782826143f0565b919050565b600067ffffffffffffffff821115614457576144566143c1565b5b602082029050602081019050919050565b600080fd5b600061448061447b8461443c565b614421565b905080838252602082019050602084028301858111156144a3576144a2614468565b5b835b818110156144cc57806144b88882613fd3565b8452602084019350506020810190506144a5565b5050509392505050565b600082601f8301126144eb576144ea6143bc565b5b81356144fb84826020860161446d565b91505092915050565b60006020828403121561451a57614519613f80565b5b600082013567ffffffffffffffff81111561453857614537613f85565b5b614544848285016144d6565b91505092915050565b6000806040838503121561456457614563613f80565b5b600061457285828601613fd3565b925050602061458385828601613fd3565b9150509250929050565b60006145988261434c565b9050919050565b60006145aa8261458d565b9050919050565b6145ba8161459f565b82525050565b60006020820190506145d560008301846145b1565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614611602083613ec6565b915061461c826145db565b602082019050919050565b6000602082019050818103600083015261464081614604565b9050919050565b600060408201905061465c6000830185613e91565b6146696020830184613e91565b9392505050565b60008151905061467f81613fe8565b92915050565b60006020828403121561469b5761469a613f80565b5b60006146a984828501614670565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061471b82613e87565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361474d5761474c6146e1565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006147b4602683613ec6565b91506147bf82614758565b604082019050919050565b600060208201905081810360008301526147e3816147a7565b9050919050565b60006147f582613e87565b915061480083613e87565b925082821015614813576148126146e1565b5b828203905092915050565b7f686f6c6420757220686f7273657320626967206775792e000000000000000000600082015250565b6000614854601783613ec6565b915061485f8261481e565b602082019050919050565b6000602082019050818103600083015261488381614847565b9050919050565b7f7478000000000000000000000000000000000000000000000000000000000000600082015250565b60006148c0600283613ec6565b91506148cb8261488a565b602082019050919050565b600060208201905081810360008301526148ef816148b3565b9050919050565b7f77616c6c65740000000000000000000000000000000000000000000000000000600082015250565b600061492c600683613ec6565b9150614937826148f6565b602082019050919050565b6000602082019050818103600083015261495b8161491f565b9050919050565b600060408201905061497760008301856142ab565b6149846020830184613e91565b9392505050565b6000819050919050565b60006149b06149ab6149a68461498b565b614342565b613e87565b9050919050565b6149c081614995565b82525050565b60006040820190506149db60008301856142ab565b6149e860208301846149b7565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614a2982613e87565b9150614a3483613e87565b925082614a4457614a436149ef565b5b828204905092915050565b6000614a5a82613e87565b9150614a6583613e87565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614a9a57614a996146e1565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614adb601b83613ec6565b9150614ae682614aa5565b602082019050919050565b60006020820190508181036000830152614b0a81614ace565b9050919050565b6000614b1c82613e87565b9150614b2783613e87565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614b6057614b5f6146e1565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614bc7602183613ec6565b9150614bd282614b6b565b604082019050919050565b60006020820190508181036000830152614bf681614bba565b9050919050565b600081519050614c0c81613fbc565b92915050565b600060208284031215614c2857614c27613f80565b5b6000614c3684828501614bfd565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614c7481613faa565b82525050565b6000614c868383614c6b565b60208301905092915050565b6000602082019050919050565b6000614caa82614c3f565b614cb48185614c4a565b9350614cbf83614c5b565b8060005b83811015614cf0578151614cd78882614c7a565b9750614ce283614c92565b925050600181019050614cc3565b5085935050505092915050565b600060a082019050614d126000830188613e91565b614d1f60208301876149b7565b8181036040830152614d318186614c9f565b9050614d4060608301856142ab565b614d4d6080830184613e91565b9695505050505050565b600060c082019050614d6c60008301896142ab565b614d796020830188613e91565b614d8660408301876149b7565b614d9360608301866149b7565b614da060808301856142ab565b614dad60a0830184613e91565b979650505050505050565b600080600060608486031215614dd157614dd0613f80565b5b6000614ddf86828701614670565b9350506020614df086828701614670565b9250506040614e0186828701614670565b915050925092509256fea264697066735822122001f9ef78b3f9105fd11a92a37562212d9dfbcb766bb2f3b8c30f8be3e9d3851964736f6c634300080d003360806040526ec097ce7bc90715b34b9f1000000000600b55610708600c556000600d5534801561002e57600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073fa3e941d1f6b7b10ed84a0c211bfa8aee907965e600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611f24806101286000396000f3fe6080604052600436106101025760003560e01c8063997664d711610095578063e2d2e21911610064578063e2d2e2191461032b578063efca2eed14610356578063ff23c9c614610381578063ffb2c479146103ac578063ffd49c84146103d557610111565b8063997664d71461028e578063bd14ae27146102b9578063ce7c2ac2146102e2578063d0e30db01461032157610111565b80632d48e896116100d15780632d48e896146101d25780633a98ef39146101fb5780634fab0ae8146102265780638c21cd521461025157610111565b806311ce023d1461011657806314b6ca961461014157806326987b601461016a57806328fd31981461019557610111565b366101115761010f610400565b005b600080fd5b34801561012257600080fd5b5061012b6107e8565b604051610138919061167d565b60405180910390f35b34801561014d57600080fd5b5061016860048036038101906101639190611727565b6107ee565b005b34801561017657600080fd5b5061017f610aad565b60405161018c919061167d565b60405180910390f35b3480156101a157600080fd5b506101bc60048036038101906101b79190611767565b610ab3565b6040516101c9919061167d565b60405180910390f35b3480156101de57600080fd5b506101f960048036038101906101f49190611794565b610bcc565b005b34801561020757600080fd5b50610210610c36565b60405161021d919061167d565b60405180910390f35b34801561023257600080fd5b5061023b610c3c565b604051610248919061167d565b60405180910390f35b34801561025d57600080fd5b5061027860048036038101906102739190611767565b610c42565b60405161028591906117ef565b60405180910390f35b34801561029a57600080fd5b506102a3610caf565b6040516102b0919061167d565b60405180910390f35b3480156102c557600080fd5b506102e060048036038101906102db9190611767565b610cb5565b005b3480156102ee57600080fd5b5061030960048036038101906103049190611767565b610d19565b6040516103189392919061180a565b60405180910390f35b610329610400565b005b34801561033757600080fd5b50610340610d43565b60405161034d919061167d565b60405180910390f35b34801561036257600080fd5b5061036b610d49565b604051610378919061167d565b60405180910390f35b34801561038d57600080fd5b50610396610d4f565b6040516103a39190611850565b60405180910390f35b3480156103b857600080fd5b506103d360048036038101906103ce919061186b565b610d75565b005b3480156103e157600080fd5b506103ea610eb0565b6040516103f7919061167d565b60405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161045d9190611850565b602060405180830381865afa15801561047a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049e91906118ad565b90506000600267ffffffffffffffff8111156104bd576104bc6118da565b5b6040519080825280602002602001820160405280156104eb5781602001602082028036833780820191505090505b509050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561055b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057f919061191e565b816000815181106105935761059261194b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106106045761060361194b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de953460008430426040518663ffffffff1660e01b81526004016106a19493929190611a7d565b6000604051808303818588803b1580156106ba57600080fd5b505af11580156106ce573d6000803e3d6000fd5b5050505050600061078383600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107349190611850565b602060405180830381865afa158015610751573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077591906118ad565b610eb690919063ffffffff16565b905061079a81600854610f0090919063ffffffff16565b6008819055506107dd6107cc6007546107be84600b54610f5e90919063ffffffff16565b610fd890919063ffffffff16565b600a54610f0090919063ffffffff16565b600a81905550505050565b600b5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461084657600080fd5b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154111561089b5761089a82611022565b5b6000811180156108ed57506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b15610900576108fb826112b5565b610962565b60008114801561095257506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b156109615761096082611364565b5b5b6109cb816109bd600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600754610eb690919063ffffffff16565b610f0090919063ffffffff16565b60078190555080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550610a63600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461156b565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b600e5481565b600080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015403610b075760009050610bc7565b6000610b54600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461156b565b90506000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050808211610baf57600092505050610bc7565b610bc28183610eb690919063ffffffff16565b925050505b919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c2457600080fd5b81600c8190555080600d819055505050565b60075481565b600d5481565b600042600c54600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c929190611af8565b108015610ca85750600d54610ca683610ab3565b115b9050919050565b60085481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d0d57600080fd5b610d1681611022565b50565b60066020528060005260406000206000915090508060000154908060010154908060020154905083565b600a5481565b60095481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600380549050905060008103610d8d5750610ead565b60008060005a90505b8482108015610da457508383105b15610ea85783600e5410610dbb576000600e819055505b610e046003600e5481548110610dd457610dd361194b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610c42565b15610e5357610e526003600e5481548110610e2257610e2161194b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611022565b5b610e78610e695a83610eb690919063ffffffff16565b83610f0090919063ffffffff16565b91505a9050600e6000815480929190610e9090611b4e565b91905055508280610ea090611b4e565b935050610d96565b505050505b50565b600c5481565b6000610ef883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061159d565b905092915050565b6000808284610f0f9190611af8565b905083811015610f54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4b90611bf3565b60405180910390fd5b8091505092915050565b6000808303610f705760009050610fd2565b60008284610f7e9190611c13565b9050828482610f8d9190611c9c565b14610fcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc490611d3f565b60405180910390fd5b809150505b92915050565b600061101a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611601565b905092915050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015403156112b257600061107882610ab3565b905060008111156112b05761109881600954610f0090919063ffffffff16565b600981905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b81526004016110fb929190611d5f565b6020604051808303816000875af115801561111a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113e9190611db4565b5042600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111d881600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154610f0090919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550611269600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461156b565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b505b50565b600380549050600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506003819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600360016003805490506113789190611de1565b815481106113895761138861194b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166003600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815481106114075761140661194b565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460046000600360016003805490506114a79190611de1565b815481106114b8576114b761194b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600380548061153357611532611e15565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b6000611596600b54611588600a5485610f5e90919063ffffffff16565b610fd890919063ffffffff16565b9050919050565b60008383111582906115e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dc9190611ecc565b60405180910390fd5b50600083856115f49190611de1565b9050809150509392505050565b60008083118290611648576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163f9190611ecc565b60405180910390fd5b50600083856116579190611c9c565b9050809150509392505050565b6000819050919050565b61167781611664565b82525050565b6000602082019050611692600083018461166e565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006116c88261169d565b9050919050565b6116d8816116bd565b81146116e357600080fd5b50565b6000813590506116f5816116cf565b92915050565b61170481611664565b811461170f57600080fd5b50565b600081359050611721816116fb565b92915050565b6000806040838503121561173e5761173d611698565b5b600061174c858286016116e6565b925050602061175d85828601611712565b9150509250929050565b60006020828403121561177d5761177c611698565b5b600061178b848285016116e6565b91505092915050565b600080604083850312156117ab576117aa611698565b5b60006117b985828601611712565b92505060206117ca85828601611712565b9150509250929050565b60008115159050919050565b6117e9816117d4565b82525050565b600060208201905061180460008301846117e0565b92915050565b600060608201905061181f600083018661166e565b61182c602083018561166e565b611839604083018461166e565b949350505050565b61184a816116bd565b82525050565b60006020820190506118656000830184611841565b92915050565b60006020828403121561188157611880611698565b5b600061188f84828501611712565b91505092915050565b6000815190506118a7816116fb565b92915050565b6000602082840312156118c3576118c2611698565b5b60006118d184828501611898565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050611918816116cf565b92915050565b60006020828403121561193457611933611698565b5b600061194284828501611909565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000819050919050565b60006119a96119a461199f8461197a565b611984565b611664565b9050919050565b6119b98161198e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6119f4816116bd565b82525050565b6000611a0683836119eb565b60208301905092915050565b6000602082019050919050565b6000611a2a826119bf565b611a3481856119ca565b9350611a3f836119db565b8060005b83811015611a70578151611a5788826119fa565b9750611a6283611a12565b925050600181019050611a43565b5085935050505092915050565b6000608082019050611a9260008301876119b0565b8181036020830152611aa48186611a1f565b9050611ab36040830185611841565b611ac0606083018461166e565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611b0382611664565b9150611b0e83611664565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611b4357611b42611ac9565b5b828201905092915050565b6000611b5982611664565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611b8b57611b8a611ac9565b5b600182019050919050565b600082825260208201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000611bdd601b83611b96565b9150611be882611ba7565b602082019050919050565b60006020820190508181036000830152611c0c81611bd0565b9050919050565b6000611c1e82611664565b9150611c2983611664565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611c6257611c61611ac9565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ca782611664565b9150611cb283611664565b925082611cc257611cc1611c6d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000611d29602183611b96565b9150611d3482611ccd565b604082019050919050565b60006020820190508181036000830152611d5881611d1c565b9050919050565b6000604082019050611d746000830185611841565b611d81602083018461166e565b9392505050565b611d91816117d4565b8114611d9c57600080fd5b50565b600081519050611dae81611d88565b92915050565b600060208284031215611dca57611dc9611698565b5b6000611dd884828501611d9f565b91505092915050565b6000611dec82611664565b9150611df783611664565b925082821015611e0a57611e09611ac9565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600081519050919050565b60005b83811015611e6d578082015181840152602081019050611e52565b83811115611e7c576000848401525b50505050565b6000601f19601f8301169050919050565b6000611e9e82611e44565b611ea88185611b96565b9350611eb8818560208601611e4f565b611ec181611e82565b840191505092915050565b60006020820190508181036000830152611ee68184611e93565b90509291505056fea2646970667358221220fb7fb2807dcbea236260c716d2928a5839f2cdca707221234c061d3ca815a99b64736f6c634300080d0033
Deployed Bytecode
0x6080604052600436106103905760003560e01c80637dfcbe34116101dc578063c45a015511610102578063f2fde38b116100a0578063f8ebf19b1161006f578063f8ebf19b14610d0b578063fabe628314610d36578063ff23c9c614610d5f578063ffb54a9914610d8a57610397565b8063f2fde38b14610c63578063f708a64f14610c8c578063f887ea4014610cb5578063f8b45b0514610ce057610397565b8063caa5581b116100dc578063caa5581b14610ba9578063ce847a6d14610bd4578063d920334e14610bfd578063dd62ed3e14610c2657610397565b8063c45a015514610b3c578063c8d1293d14610b67578063c9567bf914610b9257610397565b806395d89b411161017a578063ae8c890b11610149578063ae8c890b14610a94578063b515566a14610abf578063bb542ef014610ae8578063bf56b37114610b1157610397565b806395d89b41146109d8578063a3a2e89e14610a03578063a8aa1b3114610a2c578063a9059cbb14610a5757610397565b8063893d20e8116101b6578063893d20e81461091a5780638b42507f146109455780638da5cb5b146109825780638ea5220f146109ad57610397565b80637dfcbe34146108af57806381934031146108da57806389291a8f1461090357610397565b80633dab5269116102c15780636303516c1161025f5780637437681e1161022e5780637437681e146107f357806375df13051461081e57806377359aa7146108495780637db1342c1461088657610397565b80636303516c1461075d57806366eb37851461078857806370a082311461079f578063715018a6146107dc57610397565b8063454343771161029b578063454343771461069f57806347062402146106ca5780634a74bb02146106f5578063571ac8b01461072057610397565b80633dab5269146105fc5780633f4218e0146106255780634355855a1461066257610397565b8063273123b71161032e5780632d48e896116103085780632d48e896146105565780632dbea2e11461057f57806330ca34ee146105a8578063313ce567146105d157610397565b8063273123b7146104d75780632b112e49146105005780632b14ca561461052b57610397565b8063095ea7b31161036a578063095ea7b31461040957806318160ddd146104465780631f53ac021461047157806323b872dd1461049a57610397565b80630445b6671461039c57806305be0d30146103c757806306fdde03146103de57610397565b3661039757005b600080fd5b3480156103a857600080fd5b506103b1610db5565b6040516103be9190613ea0565b60405180910390f35b3480156103d357600080fd5b506103dc610dbb565b005b3480156103ea57600080fd5b506103f3610e4a565b6040516104009190613f54565b60405180910390f35b34801561041557600080fd5b50610430600480360381019061042b9190614014565b610e87565b60405161043d919061406f565b60405180910390f35b34801561045257600080fd5b5061045b610f79565b6040516104689190613ea0565b60405180910390f35b34801561047d57600080fd5b50610498600480360381019061049391906140c8565b610f83565b005b3480156104a657600080fd5b506104c160048036038101906104bc91906140f5565b61105c565b6040516104ce919061406f565b60405180910390f35b3480156104e357600080fd5b506104fe60048036038101906104f99190614148565b61125c565b005b34801561050c57600080fd5b5061051561134c565b6040516105229190613ea0565b60405180910390f35b34801561053757600080fd5b506105406113ce565b60405161054d9190613ea0565b60405180910390f35b34801561056257600080fd5b5061057d60048036038101906105789190614175565b6113d4565b005b34801561058b57600080fd5b506105a660048036038101906105a191906141b5565b6114fc565b005b3480156105b457600080fd5b506105cf60048036038101906105ca9190614175565b6115ab565b005b3480156105dd57600080fd5b506105e6611652565b6040516105f39190614224565b60405180910390f35b34801561060857600080fd5b50610623600480360381019061061e919061426b565b61165b565b005b34801561063157600080fd5b5061064c60048036038101906106479190614148565b611715565b604051610659919061406f565b60405180910390f35b34801561066e57600080fd5b5061068960048036038101906106849190614148565b611735565b604051610696919061406f565b60405180910390f35b3480156106ab57600080fd5b506106b4611755565b6040516106c19190613ea0565b60405180910390f35b3480156106d657600080fd5b506106df61175b565b6040516106ec9190613ea0565b60405180910390f35b34801561070157600080fd5b5061070a611761565b604051610717919061406f565b60405180910390f35b34801561072c57600080fd5b5061074760048036038101906107429190614148565b611774565b604051610754919061406f565b60405180910390f35b34801561076957600080fd5b506107726117a7565b60405161077f91906142ba565b60405180910390f35b34801561079457600080fd5b5061079d6117cd565b005b3480156107ab57600080fd5b506107c660048036038101906107c19190614148565b61186c565b6040516107d39190613ea0565b60405180910390f35b3480156107e857600080fd5b506107f16118b5565b005b3480156107ff57600080fd5b50610808611a08565b6040516108159190613ea0565b60405180910390f35b34801561082a57600080fd5b50610833611a0e565b6040516108409190613ea0565b60405180910390f35b34801561085557600080fd5b50610870600480360381019061086b9190614148565b611a14565b60405161087d9190613ea0565b60405180910390f35b34801561089257600080fd5b506108ad60048036038101906108a891906142d5565b611ab9565b005b3480156108bb57600080fd5b506108c4611b58565b6040516108d1919061406f565b60405180910390f35b3480156108e657600080fd5b5061090160048036038101906108fc91906142d5565b611b6b565b005b34801561090f57600080fd5b50610918611c90565b005b34801561092657600080fd5b5061092f611da0565b60405161093c91906142ba565b60405180910390f35b34801561095157600080fd5b5061096c60048036038101906109679190614148565b611daf565b604051610979919061406f565b60405180910390f35b34801561098e57600080fd5b50610997611dcf565b6040516109a491906142ba565b60405180910390f35b3480156109b957600080fd5b506109c2611df8565b6040516109cf91906142ba565b60405180910390f35b3480156109e457600080fd5b506109ed611e1e565b6040516109fa9190613f54565b60405180910390f35b348015610a0f57600080fd5b50610a2a6004803603810190610a259190614302565b611e5b565b005b348015610a3857600080fd5b50610a41611f4b565b604051610a4e91906142ba565b60405180910390f35b348015610a6357600080fd5b50610a7e6004803603810190610a799190614014565b611f71565b604051610a8b919061406f565b60405180910390f35b348015610aa057600080fd5b50610aa9611f86565b604051610ab691906143a1565b60405180910390f35b348015610acb57600080fd5b50610ae66004803603810190610ae19190614504565b611fac565b005b348015610af457600080fd5b50610b0f6004803603810190610b0a91906140c8565b6120d6565b005b348015610b1d57600080fd5b50610b266121af565b604051610b339190613ea0565b60405180910390f35b348015610b4857600080fd5b50610b516121b5565b604051610b5e91906142ba565b60405180910390f35b348015610b7357600080fd5b50610b7c6121db565b604051610b899190613ea0565b60405180910390f35b348015610b9e57600080fd5b50610ba76121e1565b005b348015610bb557600080fd5b50610bbe61229a565b604051610bcb9190613ea0565b60405180910390f35b348015610be057600080fd5b50610bfb6004803603810190610bf691906142d5565b6122a0565b005b348015610c0957600080fd5b50610c246004803603810190610c1f91906142d5565b61233f565b005b348015610c3257600080fd5b50610c4d6004803603810190610c48919061454d565b6123de565b604051610c5a9190613ea0565b60405180910390f35b348015610c6f57600080fd5b50610c8a6004803603810190610c859190614148565b612465565b005b348015610c9857600080fd5b50610cb36004803603810190610cae9190614302565b612626565b005b348015610cc157600080fd5b50610cca6126c9565b604051610cd791906145c0565b60405180910390f35b348015610cec57600080fd5b50610cf56126ef565b604051610d029190613ea0565b60405180910390f35b348015610d1757600080fd5b50610d206126f5565b604051610d2d9190613ea0565b60405180910390f35b348015610d4257600080fd5b50610d5d6004803603810190610d589190614302565b6126fb565b005b348015610d6b57600080fd5b50610d746127eb565b604051610d8191906142ba565b60405180910390f35b348015610d9657600080fd5b50610d9f612811565b604051610dac919061406f565b60405180910390f35b601e5481565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd14ae27336040518263ffffffff1660e01b8152600401610e1691906142ba565b600060405180830381600087803b158015610e3057600080fd5b505af1158015610e44573d6000803e3d6000fd5b50505050565b60606040518060400160405280600f81526020017f486179205265666c656374696f6e730000000000000000000000000000000000815250905090565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610f679190613ea0565b60405180910390a36001905092915050565b6000600254905090565b610f8b61286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611018576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100f90614627565b60405180910390fd5b80601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611248576111c7826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128769092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6112538484846128da565b90509392505050565b61126461286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e890614627565b60405180910390fd5b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006113c961137c600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661186c565b6113bb6113aa600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661186c565b6002546131b990919063ffffffff16565b6131b990919063ffffffff16565b905090565b60105481565b6113dc61286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611469576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146090614627565b60405180910390fd5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b81526004016114c6929190614647565b600060405180830381600087803b1580156114e057600080fd5b505af11580156114f4573d6000803e3d6000fd5b505050505050565b61150461286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611591576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158890614627565b60405180910390fd5b826011819055508160128190555080601381905550505050565b6115b361286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611640576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163790614627565b60405180910390fd5b81600f81905550806010819055505050565b60006012905090565b61166361286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e790614627565b60405180910390fd5b81601960156101000a81548160ff02191690831515021790555080601e819055505050565b600a6020528060005260406000206000915054906101000a900460ff1681565b600c6020528060005260406000206000915054906101000a900460ff1681565b60145481565b600f5481565b601960159054906101000a900460ff1681565b60006117a0827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610e87565b9050919050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117d561286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611862576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185990614627565b60405180910390fd5b61186a613203565b565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6118bd61286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461194a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194190614627565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601c5481565b60135481565b6000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166328fd3198836040518263ffffffff1660e01b8152600401611a7191906142ba565b602060405180830381865afa158015611a8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab29190614685565b9050919050565b611ac161286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4590614627565b60405180910390fd5b80601d8190555050565b600860149054906101000a900460ff1681565b611b7361286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf790614627565b60405180910390fd5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c479826040518263ffffffff1660e01b8152600401611c5b9190613ea0565b600060405180830381600087803b158015611c7557600080fd5b505af1158015611c89573d6000803e3d6000fd5b5050505050565b611c9861286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1c90614627565b60405180910390fd5b60004790506000811115611d9d57601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d9b573d6000803e3d6000fd5b505b50565b6000611daa611dcf565b905090565b600b6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600481526020017f4841595200000000000000000000000000000000000000000000000000000000815250905090565b611e6361286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ef0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee790614627565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611f7e3384846128da565b905092915050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611fb461286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612041576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203890614627565b60405180910390fd5b60005b81518110156120d257600160096000848481518110612066576120656146b2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806120ca90614710565b915050612044565b5050565b6120de61286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461216b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216290614627565b60405180910390fd5b80601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d5481565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60125481565b6121e961286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612276576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226d90614627565b60405180910390fd5b43600d819055506001601960166101000a81548160ff021916908315150217905550565b60115481565b6122a861286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232c90614627565b60405180910390fd5b80601b8190555050565b61234761286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123cb90614627565b60405180910390fd5b80601c8190555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61246d61286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f190614627565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612569576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612560906147ca565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61262e61286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b290614627565b60405180910390fd5b6126c58282613485565b5050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d5481565b601b5481565b61270361286e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612790576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278790614627565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601960169054906101000a900460ff1681565b600061286683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506136dd565b905092915050565b600033905090565b60008383111582906128be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b59190613f54565b60405180910390fd5b50600083856128cd91906147ea565b9050809150509392505050565b60006128e4611dcf565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156129525750612922611dcf565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156129a757601960169054906101000a900460ff166129a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299d9061486a565b60405180910390fd5b5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612a4b5750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612a5457600080fd5b601960149054906101000a900460ff1615612a7b57612a74848484613740565b90506131b2565b601c5482111580612ad55750600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612b14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0b906148d6565b60405180910390fd5b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612b7a5750600860149054906101000a900460ff165b15612c1657601d54612bd483600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461391390919063ffffffff16565b1115612c15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c0c90614942565b60405180910390fd5b5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015612c815750601960149054906101000a900460ff16155b8015612c995750601960159054906101000a900460ff165b8015612ce65750601e54600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15612cf457612cf3613203565b5b612d7d826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128769092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612e665750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612e705782612e7c565b612e7b858585613971565b5b9050612ed081600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461391390919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661302d57601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401613000929190614962565b600060405180830381600087803b15801561301a57600080fd5b505af192505050801561302b575060015b505b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661314757601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b815260040161311a929190614962565b600060405180830381600087803b15801561313457600080fd5b505af1925050508015613145575060015b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516131a49190613ea0565b60405180910390a360019150505b9392505050565b60006131fb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612876565b905092915050565b6001601960146101000a81548160ff0219169083151502179055506000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600061329f6002613291606461328360125487613b1990919063ffffffff16565b61282490919063ffffffff16565b61282490919063ffffffff16565b905060006132b682846131b990919063ffffffff16565b90506132c181613b93565b600047905060006132f060646132e260115485613b1990919063ffffffff16565b61282490919063ffffffff16565b9050600061331c606461330e60135486613b1990919063ffffffff16565b61282490919063ffffffff16565b9050600061335b600261334d606461333f60125489613b1990919063ffffffff16565b61282490919063ffffffff16565b61282490919063ffffffff16565b905060008411156133d057601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156133ce573d6000803e3d6000fd5b505b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b15801561343a57600080fd5b505af19350505050801561344c575060015b506000861115613461576134608682613db4565b5b505050505050506000601960146101000a81548160ff021916908315150217905550565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561350f5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61351857600080fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561360a57601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b81526004016135d39291906149c6565b600060405180830381600087803b1580156135ed57600080fd5b505af1158015613601573d6000803e3d6000fd5b505050506136d9565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016136a6929190614962565b600060405180830381600087803b1580156136c057600080fd5b505af11580156136d4573d6000803e3d6000fd5b505050505b5050565b60008083118290613724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161371b9190613f54565b60405180910390fd5b50600083856137339190614a1e565b9050809150509392505050565b60006137cb826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128769092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061386082600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461391390919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516139009190613ea0565b60405180910390a3600190509392505050565b60008082846139229190614a4f565b905083811015613967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161395e90614af1565b60405180910390fd5b8091505092915050565b6000808373ffffffffffffffffffffffffffffffffffffffff16601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146139d157600f546139d5565b6010545b905060006139ff60646139f18487613b1990919063ffffffff16565b61282490919063ffffffff16565b9050613a5381600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461391390919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613af39190613ea0565b60405180910390a3613b0e81856131b990919063ffffffff16565b925050509392505050565b6000808303613b2b5760009050613b8d565b60008284613b399190614b11565b9050828482613b489190614a1e565b14613b88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b7f90614bdd565b60405180910390fd5b809150505b92915050565b6000600267ffffffffffffffff811115613bb057613baf6143c1565b5b604051908082528060200260200182016040528015613bde5781602001602082028036833780820191505090505b5090503081600081518110613bf657613bf56146b2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613c9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cc19190614c12565b81600181518110613cd557613cd46146b2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613d193083610e87565b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613d7e959493929190614cfd565b600060405180830381600087803b158015613d9857600080fd5b505af1158015613dac573d6000803e3d6000fd5b505050505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401613e3d96959493929190614d57565b60606040518083038185885af1158015613e5b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613e809190614db8565b5050505050565b6000819050919050565b613e9a81613e87565b82525050565b6000602082019050613eb56000830184613e91565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613ef5578082015181840152602081019050613eda565b83811115613f04576000848401525b50505050565b6000601f19601f8301169050919050565b6000613f2682613ebb565b613f308185613ec6565b9350613f40818560208601613ed7565b613f4981613f0a565b840191505092915050565b60006020820190508181036000830152613f6e8184613f1b565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613fb582613f8a565b9050919050565b613fc581613faa565b8114613fd057600080fd5b50565b600081359050613fe281613fbc565b92915050565b613ff181613e87565b8114613ffc57600080fd5b50565b60008135905061400e81613fe8565b92915050565b6000806040838503121561402b5761402a613f80565b5b600061403985828601613fd3565b925050602061404a85828601613fff565b9150509250929050565b60008115159050919050565b61406981614054565b82525050565b60006020820190506140846000830184614060565b92915050565b600061409582613f8a565b9050919050565b6140a58161408a565b81146140b057600080fd5b50565b6000813590506140c28161409c565b92915050565b6000602082840312156140de576140dd613f80565b5b60006140ec848285016140b3565b91505092915050565b60008060006060848603121561410e5761410d613f80565b5b600061411c86828701613fd3565b935050602061412d86828701613fd3565b925050604061413e86828701613fff565b9150509250925092565b60006020828403121561415e5761415d613f80565b5b600061416c84828501613fd3565b91505092915050565b6000806040838503121561418c5761418b613f80565b5b600061419a85828601613fff565b92505060206141ab85828601613fff565b9150509250929050565b6000806000606084860312156141ce576141cd613f80565b5b60006141dc86828701613fff565b93505060206141ed86828701613fff565b92505060406141fe86828701613fff565b9150509250925092565b600060ff82169050919050565b61421e81614208565b82525050565b60006020820190506142396000830184614215565b92915050565b61424881614054565b811461425357600080fd5b50565b6000813590506142658161423f565b92915050565b6000806040838503121561428257614281613f80565b5b600061429085828601614256565b92505060206142a185828601613fff565b9150509250929050565b6142b481613faa565b82525050565b60006020820190506142cf60008301846142ab565b92915050565b6000602082840312156142eb576142ea613f80565b5b60006142f984828501613fff565b91505092915050565b6000806040838503121561431957614318613f80565b5b600061432785828601613fd3565b925050602061433885828601614256565b9150509250929050565b6000819050919050565b600061436761436261435d84613f8a565b614342565b613f8a565b9050919050565b60006143798261434c565b9050919050565b600061438b8261436e565b9050919050565b61439b81614380565b82525050565b60006020820190506143b66000830184614392565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6143f982613f0a565b810181811067ffffffffffffffff82111715614418576144176143c1565b5b80604052505050565b600061442b613f76565b905061443782826143f0565b919050565b600067ffffffffffffffff821115614457576144566143c1565b5b602082029050602081019050919050565b600080fd5b600061448061447b8461443c565b614421565b905080838252602082019050602084028301858111156144a3576144a2614468565b5b835b818110156144cc57806144b88882613fd3565b8452602084019350506020810190506144a5565b5050509392505050565b600082601f8301126144eb576144ea6143bc565b5b81356144fb84826020860161446d565b91505092915050565b60006020828403121561451a57614519613f80565b5b600082013567ffffffffffffffff81111561453857614537613f85565b5b614544848285016144d6565b91505092915050565b6000806040838503121561456457614563613f80565b5b600061457285828601613fd3565b925050602061458385828601613fd3565b9150509250929050565b60006145988261434c565b9050919050565b60006145aa8261458d565b9050919050565b6145ba8161459f565b82525050565b60006020820190506145d560008301846145b1565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614611602083613ec6565b915061461c826145db565b602082019050919050565b6000602082019050818103600083015261464081614604565b9050919050565b600060408201905061465c6000830185613e91565b6146696020830184613e91565b9392505050565b60008151905061467f81613fe8565b92915050565b60006020828403121561469b5761469a613f80565b5b60006146a984828501614670565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061471b82613e87565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361474d5761474c6146e1565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006147b4602683613ec6565b91506147bf82614758565b604082019050919050565b600060208201905081810360008301526147e3816147a7565b9050919050565b60006147f582613e87565b915061480083613e87565b925082821015614813576148126146e1565b5b828203905092915050565b7f686f6c6420757220686f7273657320626967206775792e000000000000000000600082015250565b6000614854601783613ec6565b915061485f8261481e565b602082019050919050565b6000602082019050818103600083015261488381614847565b9050919050565b7f7478000000000000000000000000000000000000000000000000000000000000600082015250565b60006148c0600283613ec6565b91506148cb8261488a565b602082019050919050565b600060208201905081810360008301526148ef816148b3565b9050919050565b7f77616c6c65740000000000000000000000000000000000000000000000000000600082015250565b600061492c600683613ec6565b9150614937826148f6565b602082019050919050565b6000602082019050818103600083015261495b8161491f565b9050919050565b600060408201905061497760008301856142ab565b6149846020830184613e91565b9392505050565b6000819050919050565b60006149b06149ab6149a68461498b565b614342565b613e87565b9050919050565b6149c081614995565b82525050565b60006040820190506149db60008301856142ab565b6149e860208301846149b7565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614a2982613e87565b9150614a3483613e87565b925082614a4457614a436149ef565b5b828204905092915050565b6000614a5a82613e87565b9150614a6583613e87565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614a9a57614a996146e1565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614adb601b83613ec6565b9150614ae682614aa5565b602082019050919050565b60006020820190508181036000830152614b0a81614ace565b9050919050565b6000614b1c82613e87565b9150614b2783613e87565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614b6057614b5f6146e1565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614bc7602183613ec6565b9150614bd282614b6b565b604082019050919050565b60006020820190508181036000830152614bf681614bba565b9050919050565b600081519050614c0c81613fbc565b92915050565b600060208284031215614c2857614c27613f80565b5b6000614c3684828501614bfd565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614c7481613faa565b82525050565b6000614c868383614c6b565b60208301905092915050565b6000602082019050919050565b6000614caa82614c3f565b614cb48185614c4a565b9350614cbf83614c5b565b8060005b83811015614cf0578151614cd78882614c7a565b9750614ce283614c92565b925050600181019050614cc3565b5085935050505092915050565b600060a082019050614d126000830188613e91565b614d1f60208301876149b7565b8181036040830152614d318186614c9f565b9050614d4060608301856142ab565b614d4d6080830184613e91565b9695505050505050565b600060c082019050614d6c60008301896142ab565b614d796020830188613e91565b614d8660408301876149b7565b614d9360608301866149b7565b614da060808301856142ab565b614dad60a0830184613e91565b979650505050505050565b600080600060608486031215614dd157614dd0613f80565b5b6000614ddf86828701614670565b9350506020614df086828701614670565b9250506040614e0186828701614670565b915050925092509256fea264697066735822122001f9ef78b3f9105fd11a92a37562212d9dfbcb766bb2f3b8c30f8be3e9d3851964736f6c634300080d0033
Deployed Bytecode Sourcemap
11227:11882:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13133:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23024:82;;;;;;;;;;;;;:::i;:::-;;17192:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17620:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16922:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15370:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18134:366;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16051:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16772:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12301:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15842:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14636:233;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14470:153;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17016:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15635:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12033:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12139:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12454:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12268:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12731:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17844:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12229:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22412:74;;;;;;;;;;;;;:::i;:::-;;17364:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3316:148;;;;;;;;;;;;;:::i;:::-;;13028:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12414:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22859:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14980:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11952:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22735:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22494:233;;;;;;;;;;;;;:::i;:::-;;17278:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12084:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3102:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12616:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17102:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15096:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12528:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17974:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12822:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14123:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15501:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12197:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12554:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12377:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14341:115;;;;;;;;;;;;;:::i;:::-;;12337:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16640:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14877:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17475:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3472:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16500:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12497:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13079:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12865:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15226:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11311:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12778:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13133:52;;;;:::o;23024:82::-;23062:14;;;;;;;;;;;:24;;;23087:10;23062:36;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23024:82::o;17192:80::-;17240:13;17264:5;;;;;;;;;;;;;;;;;17257:12;;17192:80;:::o;17620:216::-;17695:4;17747:6;17712:11;:23;17724:10;17712:23;;;;;;;;;;;;;;;:32;17736:7;17712:32;;;;;;;;;;;;;;;:41;;;;17790:7;17769:37;;17778:10;17769:37;;;17799:6;17769:37;;;;;;:::i;:::-;;;;;;;;17824:4;17817:11;;17620:216;;;;:::o;16922:88::-;16977:7;16995:12;;16988:19;;16922:88;:::o;15370:123::-;3239:12;:10;:12::i;:::-;3229:22;;:6;;;;;;;;;;:22;;;3221:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15472:12:::1;15452:9;;:33;;;;;;;;;;;;;;;;;;15370:123:::0;:::o;18134:366::-;18234:4;18289:17;18254:11;:19;18266:6;18254:19;;;;;;;;;;;;;;;:31;18274:10;18254:31;;;;;;;;;;;;;;;;:52;18251:186;;18356:69;18392:6;18356:69;;;;;;;;;;;;;;;;;:11;:19;18368:6;18356:19;;;;;;;;;;;;;;;:31;18376:10;18356:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;18322:11;:19;18334:6;18322:19;;;;;;;;;;;;;;;:31;18342:10;18322:31;;;;;;;;;;;;;;;:103;;;;18251:186;18456:36;18466:6;18474:9;18485:6;18456:9;:36::i;:::-;18449:43;;18134:366;;;;;:::o;16051:90::-;3239:12;:10;:12::i;:::-;3229:22;;:6;;;;;;;;;;:22;;;3221:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16128:5:::1;16113:4;:12;16118:6;16113:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;16051:90:::0;:::o;16772:142::-;16825:7;16852:54;16890:15;16900:4;;;;;;;;;;;16890:9;:15::i;:::-;16852:33;16869:15;16879:4;;;;;;;;;;;16869:9;:15::i;:::-;16852:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;16845:61;;16772:142;:::o;12301:27::-;;;;:::o;15842:201::-;3239:12;:10;:12::i;:::-;3229:22;;:6;;;;;;;;;;:22;;;3221:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15955:14:::1;;;;;;;;;;;:38;;;15994:12;16008:18;15955:72;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15842:201:::0;;:::o;14636:233::-;3239:12;:10;:12::i;:::-;3229:22;;:6;;;;;;;;;;:22;;;3221:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14776:12:::1;14760:13;:28;;;;14813:8;14799:11;:22;;;;14846:15;14832:11;:29;;;;14636:233:::0;;;:::o;14470:153::-;3239:12;:10;:12::i;:::-;3229:22;;:6;;;;;;;;;;:22;;;3221:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14575:9:::1;14566:6;:18;;;;14605:10;14595:7;:20;;;;14470:153:::0;;:::o;17016:80::-;17068:5;11530:2;17077:16;;17016:80;:::o;15635:199::-;3239:12;:10;:12::i;:::-;3229:22;;:6;;;;;;;;;;:22;;;3221:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15769:14:::1;15744:21;;:39;;;;;;;;;;;;;;;;;;15810:16;15794:13;:32;;;;15635:199:::0;;:::o;12033:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;12139:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;12454:34::-;;;;:::o;12268:26::-;;;;:::o;12731:40::-;;;;;;;;;;;;;:::o;17844:122::-;17899:4;17923:35;17931:7;17940:17;17923:7;:35::i;:::-;17916:42;;17844:122;;;:::o;12229:30::-;;;;;;;;;;;;;:::o;22412:74::-;3239:12;:10;:12::i;:::-;3229:22;;:6;;;;;;;;;;:22;;;3221:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22468:10:::1;:8;:10::i;:::-;22412:74::o:0;17364:105::-;17430:7;17448:9;:18;17458:7;17448:18;;;;;;;;;;;;;;;;17441:25;;17364:105;;;:::o;3316:148::-;3239:12;:10;:12::i;:::-;3229:22;;:6;;;;;;;;;;:22;;;3221:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3423:1:::1;3386:40;;3407:6;::::0;::::1;;;;;;;;3386:40;;;;;;;;;;;;3454:1;3437:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3316:148::o:0;13028:44::-;;;;:::o;12414:31::-;;;;:::o;22859:157::-;22936:7;22963:14;;;;;;;;;;;:32;;;22996:11;22963:45;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22956:52;;22859:157;;;:::o;14980:104::-;3239:12;:10;:12::i;:::-;3229:22;;:6;;;;;;;;;;:22;;;3221:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15068:8:::1;15055:9;:21;;;;14980:104:::0;:::o;11952:26::-;;;;;;;;;;;;;:::o;22735:116::-;3239:12;:10;:12::i;:::-;3229:22;;:6;;;;;;;;;;:22;;;3221:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22810:14:::1;;;;;;;;;;;:22;;;22833:9;22810:33;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;22735:116:::0;:::o;22494:233::-;3239:12;:10;:12::i;:::-;3229:22;;:6;;;;;;;;;;:22;;;3221:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22549:26:::1;22578:21;22549:50;;22634:1;22613:18;:22;22610:110;;;22669:9;;;;;;;;;;;22661:27;;:47;22689:18;22661:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;22610:110;22538:189;22494:233::o:0;17278:80::-;17330:7;17348;:5;:7::i;:::-;17341:14;;17278:80;:::o;12084:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;3102:79::-;3140:7;3167:6;;;;;;;;;;;3160:13;;3102:79;:::o;12616:78::-;;;;;;;;;;;;;:::o;17102:84::-;17152:13;17176:7;;;;;;;;;;;;;;;;;17169:14;;17102:84;:::o;15096:122::-;3239:12;:10;:12::i;:::-;3229:22;;:6;;;;;;;;;;:22;;;3221:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15204:6:::1;15182:11;:19;15194:6;15182:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;15096:122:::0;;:::o;12528:19::-;;;;;;;;;;;;;:::o;17974:152::-;18054:4;18078:40;18088:10;18100:9;18111:6;18078:9;:40::i;:::-;18071:47;;17974:152;;;;:::o;12822:36::-;;;;;;;;;;;;;:::o;14123:166::-;3239:12;:10;:12::i;:::-;3229:22;;:6;;;;;;;;;;:22;;;3221:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14199:6:::1;14194:88;14215:5;:12;14211:1;:16;14194:88;;;14266:4;14249;:14;14254:5;14260:1;14254:8;;;;;;;;:::i;:::-;;;;;;;;14249:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14229:3;;;;;:::i;:::-;;;;14194:88;;;;14123:166:::0;:::o;15501:121::-;3239:12;:10;:12::i;:::-;3229:22;;:6;;;;;;;;;;:22;;;3221:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15600:14:::1;15587:10;;:27;;;;;;;;;;;;;;;;;;15501:121:::0;:::o;12197:25::-;;;;:::o;12554:22::-;;;;;;;;;;;;;:::o;12377:30::-;;;;:::o;14341:115::-;3239:12;:10;:12::i;:::-;3229:22;;:6;;;;;;;;;;:22;;;3221:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14407:12:::1;14394:10;:25;;;;14444:4;14430:11;;:18;;;;;;;;;;;;;;;;;;14341:115::o:0;12337:33::-;;;;:::o;16640:113::-;3239:12;:10;:12::i;:::-;3229:22;;:6;;;;;;;;;;:22;;;3221:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16739:6:::1;16719:17;:26;;;;16640:113:::0;:::o;14877:95::-;3239:12;:10;:12::i;:::-;3229:22;;:6;;;;;;;;;;:22;;;3221:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14956:8:::1;14948:5;:16;;;;14877:95:::0;:::o;17475:133::-;17559:7;17577:11;:19;17589:6;17577:19;;;;;;;;;;;;;;;:28;17597:7;17577:28;;;;;;;;;;;;;;;;17570:35;;17475:133;;;;:::o;3472:244::-;3239:12;:10;:12::i;:::-;3229:22;;:6;;;;;;;;;;:22;;;3221:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3581:1:::1;3561:22;;:8;:22;;::::0;3553:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3671:8;3642:38;;3663:6;::::0;::::1;;;;;;;;3642:38;;;;;;;;;;;;3700:8;3691:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3472:244:::0;:::o;16500:132::-;3239:12;:10;:12::i;:::-;3229:22;;:6;;;;;;;;;;:22;;;3221:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16588:36:::1;16609:6;16617;16588:20;:36::i;:::-;16500:132:::0;;:::o;12497:24::-;;;;;;;;;;;;;:::o;13079:47::-;;;;:::o;12865:36::-;;;;:::o;15226:136::-;3239:12;:10;:12::i;:::-;3229:22;;:6;;;;;;;;;;:22;;;3221:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15348:6:::1;15322:15;:23;15338:6;15322:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;15226:136:::0;;:::o;11311:63::-;;;;;;;;;;;;;:::o;12778:31::-;;;;;;;;;;;;;:::o;1086:132::-;1144:7;1171:39;1175:1;1178;1171:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1164:46;;1086:132;;;;:::o;2566:98::-;2619:7;2646:10;2639:17;;2566:98;:::o;632:192::-;718:7;751:1;746;:6;;754:12;738:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;778:9;794:1;790;:5;;;;:::i;:::-;778:17;;815:1;808:8;;;632:192;;;;;:::o;18508:1430::-;18596:4;18626:7;:5;:7::i;:::-;18617:16;;:6;:16;;;;:39;;;;;18649:7;:5;:7::i;:::-;18637:19;;:9;:19;;;;18617:39;18613:92;;;18666:11;;;;;;;;;;;18658:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;18613:92;18767:4;:12;18772:6;18767:12;;;;;;;;;;;;;;;;;;;;;;;;;18766:13;:33;;;;;18784:4;:15;18789:9;18784:15;;;;;;;;;;;;;;;;;;;;;;;;;18783:16;18766:33;18758:42;;;;;;18816:16;;;;;;;;;;;18813:73;;;18842:41;18857:6;18865:9;18876:6;18842:14;:41::i;:::-;18835:48;;;;18813:73;18916:5;;18906:6;:15;;:42;;;;18925:15;:23;18941:6;18925:23;;;;;;;;;;;;;;;;;;;;;;;;;18906:42;18898:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;18972:15;:26;18988:9;18972:26;;;;;;;;;;;;;;;;;;;;;;;;;18971:27;:38;;;;;19002:7;;;;;;;;;;;18971:38;18968:143;;;19079:9;;19043:32;19068:6;19043:9;:20;19053:9;19043:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;:45;;19035:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;18968:143;19140:4;;;;;;;;;;;19126:18;;:10;:18;;;;:39;;;;;19149:16;;;;;;;;;;;19148:17;19126:39;:64;;;;;19169:21;;;;;;;;;;;19126:64;:109;;;;;19222:13;;19194:9;:24;19212:4;19194:24;;;;;;;;;;;;;;;;:41;;19126:109;19123:128;;;19238:10;:8;:10::i;:::-;19123:128;19283:53;19305:6;19283:53;;;;;;;;;;;;;;;;;:9;:17;19293:6;19283:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;19263:9;:17;19273:6;19263:17;;;;;;;;;;;;;;;:73;;;;19357:19;19380:11;:19;19392:6;19380:19;;;;;;;;;;;;;;;;;;;;;;;;;19379:20;:47;;;;;19404:11;:22;19416:9;19404:22;;;;;;;;;;;;;;;;;;;;;;;;;19403:23;19379:47;:93;;19466:6;19379:93;;;19429:34;19437:6;19445:9;19456:6;19429:7;:34::i;:::-;19379:93;19357:115;;19506:37;19531:11;19506:9;:20;19516:9;19506:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;19483:9;:20;19493:9;19483:20;;;;;;;;;;;;;;;:60;;;;19589:16;:24;19606:6;19589:24;;;;;;;;;;;;;;;;;;;;;;;;;19585:122;;19634:14;;;;;;;;;;;:23;;;19658:6;19666:9;:17;19676:6;19666:17;;;;;;;;;;;;;;;;19634:50;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19630:66;19585:122;19723:16;:27;19740:9;19723:27;;;;;;;;;;;;;;;;;;;;;;;;;19719:132;;19771:14;;;;;;;;;;;:23;;;19795:9;19806;:20;19816:9;19806:20;;;;;;;;;;;;;;;;19771:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19767:72;19719:132;19885:9;19868:40;;19877:6;19868:40;;;19896:11;19868:40;;;;;;:::i;:::-;;;;;;;;19926:4;19919:11;;;18508:1430;;;;;;:::o;490:136::-;548:7;575:43;579:1;582;575:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;568:50;;490:136;;;;:::o;21488:916::-;12961:4;12942:16;;:23;;;;;;;;;;;;;;;;;;21546:20:::1;21569:9;:24;21587:4;21569:24;;;;;;;;;;;;;;;;21546:47;;21605:26;21634:45;21677:1;21634:38;21668:3;21634:29;21651:11;;21634:12;:16;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;:42;;:45;;;;:::i;:::-;21605:74;;21695:20;21718:36;21735:18;21718:12;:16;;:36;;;;:::i;:::-;21695:59;;21767:30;21784:12;21767:16;:30::i;:::-;21810:23;21836:21;21810:47;;21868:17;21888:43;21927:3;21888:34;21908:13;;21888:15;:19;;:34;;;;:::i;:::-;:38;;:43;;;;:::i;:::-;21868:63;;21942:17;21962:41;21999:3;21962:32;21982:11;;21962:15;:19;;:32;;;;:::i;:::-;:36;;:41;;;;:::i;:::-;21942:61;;22014:23;22040:48;22086:1;22040:41;22077:3;22040:32;22060:11;;22040:15;:19;;:32;;;;:::i;:::-;:36;;:41;;;;:::i;:::-;:45;;:48;;;;:::i;:::-;22014:74;;22129:1;22111:15;:19;22107:89;;;22154:9;;;;;;;;;;;22146:27;;:38;22174:9;22146:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;22107:89;22220:14;;;;;;;;;;;:22;;;22250:9;22220:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;22216:58:::0;22319:1:::1;22298:18;:22;22294:103;;;22336:49;22349:18;22369:15;22336:12;:49::i;:::-;22294:103;21529:875;;;;;;;13007:5:::0;12988:16;;:24;;;;;;;;;;;;;;;;;;21488:916::o;16149:343::-;16254:4;16236:23;;:6;:23;;;;:41;;;;;16273:4;;;;;;;;;;;16263:14;;:6;:14;;;;16236:41;16228:50;;;;;;16316:6;16289:16;:24;16306:6;16289:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;16336:6;16333:152;;;16358:14;;;;;;;;;;;:23;;;16382:6;16390:1;16358:34;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16333:152;;;16423:14;;;;;;;;;;;:23;;;16447:6;16455:9;:17;16465:6;16455:17;;;;;;;;;;;;;;;;16423:50;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16333:152;16149:343;;:::o;1224:345::-;1310:7;1409:1;1405;:5;1412:12;1397:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1436:9;1452:1;1448;:5;;;;:::i;:::-;1436:17;;1560:1;1553:8;;;1224:345;;;;;:::o;19950:330::-;20043:4;20080:53;20102:6;20080:53;;;;;;;;;;;;;;;;;:9;:17;20090:6;20080:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;20060:9;:17;20070:6;20060:17;;;;;;;;;;;;;;;:73;;;;20167:32;20192:6;20167:9;:20;20177:9;20167:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;20144:9;:20;20154:9;20144:20;;;;;;;;;;;;;;;:55;;;;20232:9;20215:35;;20224:6;20215:35;;;20243:6;20215:35;;;;;;:::i;:::-;;;;;;;;20268:4;20261:11;;19950:330;;;;;:::o;303:181::-;361:7;381:9;397:1;393;:5;;;;:::i;:::-;381:17;;422:1;417;:6;;409:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;475:1;468:8;;;303:181;;;;:::o;20294:427::-;20380:7;20410:21;20442:9;20434:17;;:4;;;;;;;;;;;:17;;;:36;;20464:6;;20434:36;;;20454:7;;20434:36;20410:60;;20481:17;20501:34;20531:3;20501:25;20512:13;20501:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;20481:54;;20575:39;20604:9;20575;:24;20593:4;20575:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;20548:9;:24;20566:4;20548:24;;;;;;;;;;;;;;;:66;;;;20655:4;20630:42;;20639:6;20630:42;;;20662:9;20630:42;;;;;;:::i;:::-;;;;;;;;20692:21;20703:9;20692:6;:10;;:21;;;;:::i;:::-;20685:28;;;;20294:427;;;;;:::o;830:250::-;888:7;917:1;912;:6;908:47;;942:1;935:8;;;;908:47;967:9;983:1;979;:5;;;;:::i;:::-;967:17;;1012:1;1007;1003;:5;;;;:::i;:::-;:10;995:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1071:1;1064:8;;;830:250;;;;;:::o;20733:460::-;20801:21;20839:1;20825:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20801:40;;20870:4;20852;20857:1;20852:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;20896:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20886:4;20891:1;20886:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;20922:35;20938:4;20945:11;20922:7;:35::i;:::-;;20970:6;;;;;;;;;;;:57;;;21042:11;21068:1;21112:4;21139;21159:15;20970:215;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20788:405;20733:460;:::o;21201:279::-;21282:6;;;;;;;;;;;:22;;;21312:9;21345:4;21365:11;21391:1;21407;21423:8;;;;;;;;;;;21446:15;21282:190;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;21201:279;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1832:75::-;1865:6;1898:2;1892:9;1882:19;;1832:75;:::o;1913:117::-;2022:1;2019;2012:12;2036:117;2145:1;2142;2135:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:104::-;3891:7;3920:24;3938:5;3920:24;:::i;:::-;3909:35;;3846:104;;;:::o;3956:138::-;4037:32;4063:5;4037:32;:::i;:::-;4030:5;4027:43;4017:71;;4084:1;4081;4074:12;4017:71;3956:138;:::o;4100:155::-;4154:5;4192:6;4179:20;4170:29;;4208:41;4243:5;4208:41;:::i;:::-;4100:155;;;;:::o;4261:345::-;4328:6;4377:2;4365:9;4356:7;4352:23;4348:32;4345:119;;;4383:79;;:::i;:::-;4345:119;4503:1;4528:61;4581:7;4572:6;4561:9;4557:22;4528:61;:::i;:::-;4518:71;;4474:125;4261:345;;;;:::o;4612:619::-;4689:6;4697;4705;4754:2;4742:9;4733:7;4729:23;4725:32;4722:119;;;4760:79;;:::i;:::-;4722:119;4880:1;4905:53;4950:7;4941:6;4930:9;4926:22;4905:53;:::i;:::-;4895:63;;4851:117;5007:2;5033:53;5078:7;5069:6;5058:9;5054:22;5033:53;:::i;:::-;5023:63;;4978:118;5135:2;5161:53;5206:7;5197:6;5186:9;5182:22;5161:53;:::i;:::-;5151:63;;5106:118;4612:619;;;;;:::o;5237:329::-;5296:6;5345:2;5333:9;5324:7;5320:23;5316:32;5313:119;;;5351:79;;:::i;:::-;5313:119;5471:1;5496:53;5541:7;5532:6;5521:9;5517:22;5496:53;:::i;:::-;5486:63;;5442:117;5237:329;;;;:::o;5572:474::-;5640:6;5648;5697:2;5685:9;5676:7;5672:23;5668:32;5665:119;;;5703:79;;:::i;:::-;5665:119;5823:1;5848:53;5893:7;5884:6;5873:9;5869:22;5848:53;:::i;:::-;5838:63;;5794:117;5950:2;5976:53;6021:7;6012:6;6001:9;5997:22;5976:53;:::i;:::-;5966:63;;5921:118;5572:474;;;;;:::o;6052:619::-;6129:6;6137;6145;6194:2;6182:9;6173:7;6169:23;6165:32;6162:119;;;6200:79;;:::i;:::-;6162:119;6320:1;6345:53;6390:7;6381:6;6370:9;6366:22;6345:53;:::i;:::-;6335:63;;6291:117;6447:2;6473:53;6518:7;6509:6;6498:9;6494:22;6473:53;:::i;:::-;6463:63;;6418:118;6575:2;6601:53;6646:7;6637:6;6626:9;6622:22;6601:53;:::i;:::-;6591:63;;6546:118;6052:619;;;;;:::o;6677:86::-;6712:7;6752:4;6745:5;6741:16;6730:27;;6677:86;;;:::o;6769:112::-;6852:22;6868:5;6852:22;:::i;:::-;6847:3;6840:35;6769:112;;:::o;6887:214::-;6976:4;7014:2;7003:9;6999:18;6991:26;;7027:67;7091:1;7080:9;7076:17;7067:6;7027:67;:::i;:::-;6887:214;;;;:::o;7107:116::-;7177:21;7192:5;7177:21;:::i;:::-;7170:5;7167:32;7157:60;;7213:1;7210;7203:12;7157:60;7107:116;:::o;7229:133::-;7272:5;7310:6;7297:20;7288:29;;7326:30;7350:5;7326:30;:::i;:::-;7229:133;;;;:::o;7368:468::-;7433:6;7441;7490:2;7478:9;7469:7;7465:23;7461:32;7458:119;;;7496:79;;:::i;:::-;7458:119;7616:1;7641:50;7683:7;7674:6;7663:9;7659:22;7641:50;:::i;:::-;7631:60;;7587:114;7740:2;7766:53;7811:7;7802:6;7791:9;7787:22;7766:53;:::i;:::-;7756:63;;7711:118;7368:468;;;;;:::o;7842:118::-;7929:24;7947:5;7929:24;:::i;:::-;7924:3;7917:37;7842:118;;:::o;7966:222::-;8059:4;8097:2;8086:9;8082:18;8074:26;;8110:71;8178:1;8167:9;8163:17;8154:6;8110:71;:::i;:::-;7966:222;;;;:::o;8194:329::-;8253:6;8302:2;8290:9;8281:7;8277:23;8273:32;8270:119;;;8308:79;;:::i;:::-;8270:119;8428:1;8453:53;8498:7;8489:6;8478:9;8474:22;8453:53;:::i;:::-;8443:63;;8399:117;8194:329;;;;:::o;8529:468::-;8594:6;8602;8651:2;8639:9;8630:7;8626:23;8622:32;8619:119;;;8657:79;;:::i;:::-;8619:119;8777:1;8802:53;8847:7;8838:6;8827:9;8823:22;8802:53;:::i;:::-;8792:63;;8748:117;8904:2;8930:50;8972:7;8963:6;8952:9;8948:22;8930:50;:::i;:::-;8920:60;;8875:115;8529:468;;;;;:::o;9003:60::-;9031:3;9052:5;9045:12;;9003:60;;;:::o;9069:142::-;9119:9;9152:53;9170:34;9179:24;9197:5;9179:24;:::i;:::-;9170:34;:::i;:::-;9152:53;:::i;:::-;9139:66;;9069:142;;;:::o;9217:134::-;9275:9;9308:37;9339:5;9308:37;:::i;:::-;9295:50;;9217:134;;;:::o;9357:165::-;9438:9;9471:45;9510:5;9471:45;:::i;:::-;9458:58;;9357:165;;;:::o;9528:193::-;9646:68;9708:5;9646:68;:::i;:::-;9641:3;9634:81;9528:193;;:::o;9727:284::-;9851:4;9889:2;9878:9;9874:18;9866:26;;9902:102;10001:1;9990:9;9986:17;9977:6;9902:102;:::i;:::-;9727:284;;;;:::o;10017:117::-;10126:1;10123;10116:12;10140:180;10188:77;10185:1;10178:88;10285:4;10282:1;10275:15;10309:4;10306:1;10299:15;10326:281;10409:27;10431:4;10409:27;:::i;:::-;10401:6;10397:40;10539:6;10527:10;10524:22;10503:18;10491:10;10488:34;10485:62;10482:88;;;10550:18;;:::i;:::-;10482:88;10590:10;10586:2;10579:22;10369:238;10326:281;;:::o;10613:129::-;10647:6;10674:20;;:::i;:::-;10664:30;;10703:33;10731:4;10723:6;10703:33;:::i;:::-;10613:129;;;:::o;10748:311::-;10825:4;10915:18;10907:6;10904:30;10901:56;;;10937:18;;:::i;:::-;10901:56;10987:4;10979:6;10975:17;10967:25;;11047:4;11041;11037:15;11029:23;;10748:311;;;:::o;11065:117::-;11174:1;11171;11164:12;11205:710;11301:5;11326:81;11342:64;11399:6;11342:64;:::i;:::-;11326:81;:::i;:::-;11317:90;;11427:5;11456:6;11449:5;11442:21;11490:4;11483:5;11479:16;11472:23;;11543:4;11535:6;11531:17;11523:6;11519:30;11572:3;11564:6;11561:15;11558:122;;;11591:79;;:::i;:::-;11558:122;11706:6;11689:220;11723:6;11718:3;11715:15;11689:220;;;11798:3;11827:37;11860:3;11848:10;11827:37;:::i;:::-;11822:3;11815:50;11894:4;11889:3;11885:14;11878:21;;11765:144;11749:4;11744:3;11740:14;11733:21;;11689:220;;;11693:21;11307:608;;11205:710;;;;;:::o;11938:370::-;12009:5;12058:3;12051:4;12043:6;12039:17;12035:27;12025:122;;12066:79;;:::i;:::-;12025:122;12183:6;12170:20;12208:94;12298:3;12290:6;12283:4;12275:6;12271:17;12208:94;:::i;:::-;12199:103;;12015:293;11938:370;;;;:::o;12314:539::-;12398:6;12447:2;12435:9;12426:7;12422:23;12418:32;12415:119;;;12453:79;;:::i;:::-;12415:119;12601:1;12590:9;12586:17;12573:31;12631:18;12623:6;12620:30;12617:117;;;12653:79;;:::i;:::-;12617:117;12758:78;12828:7;12819:6;12808:9;12804:22;12758:78;:::i;:::-;12748:88;;12544:302;12314:539;;;;:::o;12859:474::-;12927:6;12935;12984:2;12972:9;12963:7;12959:23;12955:32;12952:119;;;12990:79;;:::i;:::-;12952:119;13110:1;13135:53;13180:7;13171:6;13160:9;13156:22;13135:53;:::i;:::-;13125:63;;13081:117;13237:2;13263:53;13308:7;13299:6;13288:9;13284:22;13263:53;:::i;:::-;13253:63;;13208:118;12859:474;;;;;:::o;13339:126::-;13389:9;13422:37;13453:5;13422:37;:::i;:::-;13409:50;;13339:126;;;:::o;13471:144::-;13539:9;13572:37;13603:5;13572:37;:::i;:::-;13559:50;;13471:144;;;:::o;13621:167::-;13726:55;13775:5;13726:55;:::i;:::-;13721:3;13714:68;13621:167;;:::o;13794:258::-;13905:4;13943:2;13932:9;13928:18;13920:26;;13956:89;14042:1;14031:9;14027:17;14018:6;13956:89;:::i;:::-;13794:258;;;;:::o;14058:182::-;14198:34;14194:1;14186:6;14182:14;14175:58;14058:182;:::o;14246:366::-;14388:3;14409:67;14473:2;14468:3;14409:67;:::i;:::-;14402:74;;14485:93;14574:3;14485:93;:::i;:::-;14603:2;14598:3;14594:12;14587:19;;14246:366;;;:::o;14618:419::-;14784:4;14822:2;14811:9;14807:18;14799:26;;14871:9;14865:4;14861:20;14857:1;14846:9;14842:17;14835:47;14899:131;15025:4;14899:131;:::i;:::-;14891:139;;14618:419;;;:::o;15043:332::-;15164:4;15202:2;15191:9;15187:18;15179:26;;15215:71;15283:1;15272:9;15268:17;15259:6;15215:71;:::i;:::-;15296:72;15364:2;15353:9;15349:18;15340:6;15296:72;:::i;:::-;15043:332;;;;;:::o;15381:143::-;15438:5;15469:6;15463:13;15454:22;;15485:33;15512:5;15485:33;:::i;:::-;15381:143;;;;:::o;15530:351::-;15600:6;15649:2;15637:9;15628:7;15624:23;15620:32;15617:119;;;15655:79;;:::i;:::-;15617:119;15775:1;15800:64;15856:7;15847:6;15836:9;15832:22;15800:64;:::i;:::-;15790:74;;15746:128;15530:351;;;;:::o;15887:180::-;15935:77;15932:1;15925:88;16032:4;16029:1;16022:15;16056:4;16053:1;16046:15;16073:180;16121:77;16118:1;16111:88;16218:4;16215:1;16208:15;16242:4;16239:1;16232:15;16259:233;16298:3;16321:24;16339:5;16321:24;:::i;:::-;16312:33;;16367:66;16360:5;16357:77;16354:103;;16437:18;;:::i;:::-;16354:103;16484:1;16477:5;16473:13;16466:20;;16259:233;;;:::o;16498:225::-;16638:34;16634:1;16626:6;16622:14;16615:58;16707:8;16702:2;16694:6;16690:15;16683:33;16498:225;:::o;16729:366::-;16871:3;16892:67;16956:2;16951:3;16892:67;:::i;:::-;16885:74;;16968:93;17057:3;16968:93;:::i;:::-;17086:2;17081:3;17077:12;17070:19;;16729:366;;;:::o;17101:419::-;17267:4;17305:2;17294:9;17290:18;17282:26;;17354:9;17348:4;17344:20;17340:1;17329:9;17325:17;17318:47;17382:131;17508:4;17382:131;:::i;:::-;17374:139;;17101:419;;;:::o;17526:191::-;17566:4;17586:20;17604:1;17586:20;:::i;:::-;17581:25;;17620:20;17638:1;17620:20;:::i;:::-;17615:25;;17659:1;17656;17653:8;17650:34;;;17664:18;;:::i;:::-;17650:34;17709:1;17706;17702:9;17694:17;;17526:191;;;;:::o;17723:173::-;17863:25;17859:1;17851:6;17847:14;17840:49;17723:173;:::o;17902:366::-;18044:3;18065:67;18129:2;18124:3;18065:67;:::i;:::-;18058:74;;18141:93;18230:3;18141:93;:::i;:::-;18259:2;18254:3;18250:12;18243:19;;17902:366;;;:::o;18274:419::-;18440:4;18478:2;18467:9;18463:18;18455:26;;18527:9;18521:4;18517:20;18513:1;18502:9;18498:17;18491:47;18555:131;18681:4;18555:131;:::i;:::-;18547:139;;18274:419;;;:::o;18699:152::-;18839:4;18835:1;18827:6;18823:14;18816:28;18699:152;:::o;18857:365::-;18999:3;19020:66;19084:1;19079:3;19020:66;:::i;:::-;19013:73;;19095:93;19184:3;19095:93;:::i;:::-;19213:2;19208:3;19204:12;19197:19;;18857:365;;;:::o;19228:419::-;19394:4;19432:2;19421:9;19417:18;19409:26;;19481:9;19475:4;19471:20;19467:1;19456:9;19452:17;19445:47;19509:131;19635:4;19509:131;:::i;:::-;19501:139;;19228:419;;;:::o;19653:156::-;19793:8;19789:1;19781:6;19777:14;19770:32;19653:156;:::o;19815:365::-;19957:3;19978:66;20042:1;20037:3;19978:66;:::i;:::-;19971:73;;20053:93;20142:3;20053:93;:::i;:::-;20171:2;20166:3;20162:12;20155:19;;19815:365;;;:::o;20186:419::-;20352:4;20390:2;20379:9;20375:18;20367:26;;20439:9;20433:4;20429:20;20425:1;20414:9;20410:17;20403:47;20467:131;20593:4;20467:131;:::i;:::-;20459:139;;20186:419;;;:::o;20611:332::-;20732:4;20770:2;20759:9;20755:18;20747:26;;20783:71;20851:1;20840:9;20836:17;20827:6;20783:71;:::i;:::-;20864:72;20932:2;20921:9;20917:18;20908:6;20864:72;:::i;:::-;20611:332;;;;;:::o;20949:85::-;20994:7;21023:5;21012:16;;20949:85;;;:::o;21040:158::-;21098:9;21131:61;21149:42;21158:32;21184:5;21158:32;:::i;:::-;21149:42;:::i;:::-;21131:61;:::i;:::-;21118:74;;21040:158;;;:::o;21204:147::-;21299:45;21338:5;21299:45;:::i;:::-;21294:3;21287:58;21204:147;;:::o;21357:348::-;21486:4;21524:2;21513:9;21509:18;21501:26;;21537:71;21605:1;21594:9;21590:17;21581:6;21537:71;:::i;:::-;21618:80;21694:2;21683:9;21679:18;21670:6;21618:80;:::i;:::-;21357:348;;;;;:::o;21711:180::-;21759:77;21756:1;21749:88;21856:4;21853:1;21846:15;21880:4;21877:1;21870:15;21897:185;21937:1;21954:20;21972:1;21954:20;:::i;:::-;21949:25;;21988:20;22006:1;21988:20;:::i;:::-;21983:25;;22027:1;22017:35;;22032:18;;:::i;:::-;22017:35;22074:1;22071;22067:9;22062:14;;21897:185;;;;:::o;22088:305::-;22128:3;22147:20;22165:1;22147:20;:::i;:::-;22142:25;;22181:20;22199:1;22181:20;:::i;:::-;22176:25;;22335:1;22267:66;22263:74;22260:1;22257:81;22254:107;;;22341:18;;:::i;:::-;22254:107;22385:1;22382;22378:9;22371:16;;22088:305;;;;:::o;22399:177::-;22539:29;22535:1;22527:6;22523:14;22516:53;22399:177;:::o;22582:366::-;22724:3;22745:67;22809:2;22804:3;22745:67;:::i;:::-;22738:74;;22821:93;22910:3;22821:93;:::i;:::-;22939:2;22934:3;22930:12;22923:19;;22582:366;;;:::o;22954:419::-;23120:4;23158:2;23147:9;23143:18;23135:26;;23207:9;23201:4;23197:20;23193:1;23182:9;23178:17;23171:47;23235:131;23361:4;23235:131;:::i;:::-;23227:139;;22954:419;;;:::o;23379:348::-;23419:7;23442:20;23460:1;23442:20;:::i;:::-;23437:25;;23476:20;23494:1;23476:20;:::i;:::-;23471:25;;23664:1;23596:66;23592:74;23589:1;23586:81;23581:1;23574:9;23567:17;23563:105;23560:131;;;23671:18;;:::i;:::-;23560:131;23719:1;23716;23712:9;23701:20;;23379:348;;;;:::o;23733:220::-;23873:34;23869:1;23861:6;23857:14;23850:58;23942:3;23937:2;23929:6;23925:15;23918:28;23733:220;:::o;23959:366::-;24101:3;24122:67;24186:2;24181:3;24122:67;:::i;:::-;24115:74;;24198:93;24287:3;24198:93;:::i;:::-;24316:2;24311:3;24307:12;24300:19;;23959:366;;;:::o;24331:419::-;24497:4;24535:2;24524:9;24520:18;24512:26;;24584:9;24578:4;24574:20;24570:1;24559:9;24555:17;24548:47;24612:131;24738:4;24612:131;:::i;:::-;24604:139;;24331:419;;;:::o;24756:143::-;24813:5;24844:6;24838:13;24829:22;;24860:33;24887:5;24860:33;:::i;:::-;24756:143;;;;:::o;24905:351::-;24975:6;25024:2;25012:9;25003:7;24999:23;24995:32;24992:119;;;25030:79;;:::i;:::-;24992:119;25150:1;25175:64;25231:7;25222:6;25211:9;25207:22;25175:64;:::i;:::-;25165:74;;25121:128;24905:351;;;;:::o;25262:114::-;25329:6;25363:5;25357:12;25347:22;;25262:114;;;:::o;25382:184::-;25481:11;25515:6;25510:3;25503:19;25555:4;25550:3;25546:14;25531:29;;25382:184;;;;:::o;25572:132::-;25639:4;25662:3;25654:11;;25692:4;25687:3;25683:14;25675:22;;25572:132;;;:::o;25710:108::-;25787:24;25805:5;25787:24;:::i;:::-;25782:3;25775:37;25710:108;;:::o;25824:179::-;25893:10;25914:46;25956:3;25948:6;25914:46;:::i;:::-;25992:4;25987:3;25983:14;25969:28;;25824:179;;;;:::o;26009:113::-;26079:4;26111;26106:3;26102:14;26094:22;;26009:113;;;:::o;26158:732::-;26277:3;26306:54;26354:5;26306:54;:::i;:::-;26376:86;26455:6;26450:3;26376:86;:::i;:::-;26369:93;;26486:56;26536:5;26486:56;:::i;:::-;26565:7;26596:1;26581:284;26606:6;26603:1;26600:13;26581:284;;;26682:6;26676:13;26709:63;26768:3;26753:13;26709:63;:::i;:::-;26702:70;;26795:60;26848:6;26795:60;:::i;:::-;26785:70;;26641:224;26628:1;26625;26621:9;26616:14;;26581:284;;;26585:14;26881:3;26874:10;;26282:608;;;26158:732;;;;:::o;26896:831::-;27159:4;27197:3;27186:9;27182:19;27174:27;;27211:71;27279:1;27268:9;27264:17;27255:6;27211:71;:::i;:::-;27292:80;27368:2;27357:9;27353:18;27344:6;27292:80;:::i;:::-;27419:9;27413:4;27409:20;27404:2;27393:9;27389:18;27382:48;27447:108;27550:4;27541:6;27447:108;:::i;:::-;27439:116;;27565:72;27633:2;27622:9;27618:18;27609:6;27565:72;:::i;:::-;27647:73;27715:3;27704:9;27700:19;27691:6;27647:73;:::i;:::-;26896:831;;;;;;;;:::o;27733:807::-;27982:4;28020:3;28009:9;28005:19;27997:27;;28034:71;28102:1;28091:9;28087:17;28078:6;28034:71;:::i;:::-;28115:72;28183:2;28172:9;28168:18;28159:6;28115:72;:::i;:::-;28197:80;28273:2;28262:9;28258:18;28249:6;28197:80;:::i;:::-;28287;28363:2;28352:9;28348:18;28339:6;28287:80;:::i;:::-;28377:73;28445:3;28434:9;28430:19;28421:6;28377:73;:::i;:::-;28460;28528:3;28517:9;28513:19;28504:6;28460:73;:::i;:::-;27733:807;;;;;;;;;:::o;28546:663::-;28634:6;28642;28650;28699:2;28687:9;28678:7;28674:23;28670:32;28667:119;;;28705:79;;:::i;:::-;28667:119;28825:1;28850:64;28906:7;28897:6;28886:9;28882:22;28850:64;:::i;:::-;28840:74;;28796:128;28963:2;28989:64;29045:7;29036:6;29025:9;29021:22;28989:64;:::i;:::-;28979:74;;28934:129;29102:2;29128:64;29184:7;29175:6;29164:9;29160:22;29128:64;:::i;:::-;29118:74;;29073:129;28546:663;;;;;:::o
Swarm Source
ipfs://fb7fb2807dcbea236260c716d2928a5839f2cdca707221234c061d3ca815a99b
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.