More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 1,318 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 20769870 | 94 days ago | IN | 0 ETH | 0.00011107 | ||||
Transfer | 20371629 | 150 days ago | IN | 0 ETH | 0.00049734 | ||||
Approve | 19936495 | 211 days ago | IN | 0 ETH | 0.00029243 | ||||
Approve | 19683779 | 246 days ago | IN | 0 ETH | 0.00056838 | ||||
Approve | 19229263 | 310 days ago | IN | 0 ETH | 0.00122044 | ||||
Approve | 18918175 | 353 days ago | IN | 0 ETH | 0.00065244 | ||||
Approve | 18779208 | 373 days ago | IN | 0 ETH | 0.00278054 | ||||
Approve | 18779181 | 373 days ago | IN | 0 ETH | 0.00290846 | ||||
Approve | 18779090 | 373 days ago | IN | 0 ETH | 0.00302578 | ||||
Set Tx Limit | 18778148 | 373 days ago | IN | 0 ETH | 0.00169255 | ||||
Approve | 18778040 | 373 days ago | IN | 0 ETH | 0.00243597 | ||||
Approve | 18675817 | 387 days ago | IN | 0 ETH | 0.00156725 | ||||
Approve | 18675814 | 387 days ago | IN | 0 ETH | 0.00146021 | ||||
Approve | 18675694 | 387 days ago | IN | 0 ETH | 0.00192633 | ||||
Approve | 18675659 | 387 days ago | IN | 0 ETH | 0.0014522 | ||||
Set Jackpot Sell... | 18674295 | 387 days ago | IN | 0 ETH | 0.00064879 | ||||
Transfer | 18673342 | 388 days ago | IN | 0 ETH | 0.00236668 | ||||
Transfer | 18673338 | 388 days ago | IN | 0 ETH | 0.00271453 | ||||
Transfer | 18673324 | 388 days ago | IN | 0 ETH | 0.003108 | ||||
Transfer | 18673322 | 388 days ago | IN | 0 ETH | 0.00275014 | ||||
Transfer | 18673315 | 388 days ago | IN | 0 ETH | 0.00260956 | ||||
Transfer | 18673306 | 388 days ago | IN | 0 ETH | 0.00217643 | ||||
Transfer | 18673287 | 388 days ago | IN | 0 ETH | 0.00219431 | ||||
Approve | 18605843 | 397 days ago | IN | 0 ETH | 0.00044873 | ||||
Transfer | 18593784 | 399 days ago | IN | 0 ETH | 0.00171797 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
20769870 | 94 days ago | 0.00575566 ETH | ||||
20193297 | 175 days ago | 0.00579666 ETH | ||||
19683788 | 246 days ago | 0.00583782 ETH | ||||
19229264 | 310 days ago | 0.00586993 ETH | ||||
18675886 | 387 days ago | 0.01060941 ETH | ||||
18564422 | 403 days ago | 0.01050352 ETH | ||||
18558475 | 404 days ago | 0.0107184 ETH | ||||
18550602 | 405 days ago | 0.01490238 ETH | ||||
18550595 | 405 days ago | 0.01518173 ETH | ||||
18548791 | 405 days ago | 0.01543802 ETH | ||||
18541789 | 406 days ago | 0.01616776 ETH | ||||
18541638 | 406 days ago | 0.01654531 ETH | ||||
18512817 | 410 days ago | 0.01824574 ETH | ||||
18500953 | 412 days ago | 0.02197388 ETH | ||||
18500142 | 412 days ago | 0.02220041 ETH | ||||
18494924 | 413 days ago | 0.02239175 ETH | ||||
18478261 | 415 days ago | 0.02335677 ETH | ||||
18464326 | 417 days ago | 2.27191685 ETH | ||||
18462735 | 417 days ago | 0.01546946 ETH | ||||
18442686 | 420 days ago | 0.01364184 ETH | ||||
18435754 | 421 days ago | 0.01122521 ETH | ||||
18427212 | 422 days ago | 0.01107019 ETH | ||||
18427206 | 422 days ago | 0.01509609 ETH | ||||
18421139 | 423 days ago | 0.01147211 ETH | ||||
18407626 | 425 days ago | 0.01016971 ETH |
Loading...
Loading
Contract Name:
LuckyDime
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-03 */ /* Contract of LuckyDime.io token; Fully costum so do not COPY AND PASTE without understanding it first. Ask us for support on t.me/luckydime_io if you want to fork it. If you want to use this contract to scam, go suck smth We build in protections as fuck */ pragma solidity 0.8.17; //SPDX-License-Identifier: MIT 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; } } 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 Auth { address internal owner; mapping (address => bool) internal authorizations; constructor(address _owner) { owner = _owner; authorizations[_owner] = true; } modifier onlyOwner() { require(isOwner(msg.sender), "!OWNER"); _; } modifier authorized() { require(isAuthorized(msg.sender), "!AUTHORIZED"); _; } function authorize(address adr) public onlyOwner { authorizations[adr] = true; } function unauthorize(address adr) public onlyOwner { authorizations[adr] = false; } function isOwner(address account) public view returns (bool) { return account == owner; } function isAuthorized(address adr) public view returns (bool) { return authorizations[adr]; } function transferOwnership(address payable adr) public onlyOwner { owner = adr; authorizations[adr] = true; emit OwnershipTransferred(adr); } event OwnershipTransferred(address owner); } 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 BotRekt{ function isBot(uint256 time, address recipient) external returns (bool, address); } contract LuckyDime is IERC20, Auth { using SafeMath for uint256; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; string constant _name = "LuckyDime"; string constant _symbol = "LDIME"; uint8 constant _decimals = 8; uint256 _totalSupply = 10 * (10**12) * (10 ** _decimals); uint256 public _maxTxAmount = _totalSupply.div(100); // uint256 public _maxWalletToken = _totalSupply.mul(3).div(100); // mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; address[] holders; mapping (address => bool) isExcluded; mapping (address => bool) isFeeExempt; mapping (address => bool) isTxLimitExempt; //fees are set with a 10x multiplier to allow for 2.5 etc. Denominator of 1000 uint256 public jackpotBuyFee = 100; uint256 public jackpotSellFee = 175; address public jackpotFeeWallet; bool public lockBalanceTillDraw=false; bool public jackpotLocked=false; bool jackpotLockUsed=false; address payable[] latestWinners; uint256 public totalJackpotValue; //one time trade lock bool lockTilStart = true; bool lockUsed = false; //contract cant be tricked into spam selling exploit uint256 cooldownSeconds = 1; uint256 lastSellTime; event LockTilStartUpdated(bool enabled); bool limits = true; IDEXRouter public router; address public pair; //swapping rules bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply.div(10000); uint256 swapRatio = 30; bool ratioSell = true; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor () Auth(msg.sender) { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); //router = IDEXRouter(0xC532a74256D3Db42D0Bf7a0400fEFDbad7694008); //sepolia pair = IDEXFactory(router.factory()).createPair(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, address(this)); //pair = IDEXFactory(router.factory()).createPair(0x7b79995e5f793A07Bc00c21412e50Ecae098E7f9, address(this)); //sepolia _allowances[address(this)][address(router)] = _totalSupply; isFeeExempt[msg.sender] = true; isTxLimitExempt[msg.sender] = true; isExcluded[pair]=true; isExcluded[DEAD]=true; isExcluded[ZERO]=true; jackpotFeeWallet = msg.sender; approve(address(router), _totalSupply); approve(address(pair), _totalSupply); _balances[msg.sender] = _totalSupply; holders.push(msg.sender); totalJackpotValue=0; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable { } 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 getPair() external view returns (address){return pair;} function getExcluded(address account) external view returns(bool){return isExcluded[account];} function getHolders() external view returns (address[] memory) {return holders;} function getLatestWinners() external view returns (address payable[] memory) {return latestWinners;} function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); if (_balances[recipient] == 0) { holders.push(recipient); } _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function setJackpotBuyFee(uint256 _jackpotFee) external authorized{ jackpotBuyFee = _jackpotFee; } function setJackpotSellFee(uint256 _jackpotFee) external authorized{ jackpotSellFee = _jackpotFee; } function setjackpotFeeWallet(address _jackpotFeeWallet) external authorized { jackpotFeeWallet = _jackpotFeeWallet; } function setMaxWallet(uint256 percent) external authorized { _maxWalletToken = ( _totalSupply * percent ) / 1000; } function setTxLimit(uint256 percent) external authorized { _maxTxAmount = ( _totalSupply * percent ) / 1000; } function setJackpotLock(bool lock) external authorized { require(!jackpotLockUsed, "If jackpot is locked, it is locked forever"); jackpotLocked=lock; jackpotLockUsed=true; } function feePayer(uint256 percent) external onlyOwner { require(!lockBalanceTillDraw, "Protecting Community Funds by Locking Jackpot Funds"); uint256 amountETH = address(this).balance.mul(percent).div(100); if (amountETH>1*(10**18)){ amountETH = jackpotLocked ? 1*(10**18) : amountETH.mul(percent).div(100); } (bool Succes,) = payable(jackpotFeeWallet).call{value: amountETH, gas: 100000}(""); require(Succes, "Failed to send Ether"); lockBalanceTillDraw = Succes; //Withdraw from Contract is locked. The contract can be withdrawn only once to protect user funds. The funds here are used to run the call function. Funds are Safuuu (PS If you are reading this send the following message in the group of @luckydime_io {"I have found a duck on my roof"} I will be sure to send you a nice airdrop) } function excludeJackpot(address exclude) external authorized{ require(exclude != owner, "You can not exclude the owner (protection against Authorized Wallets)"); isExcluded[exclude]=true; } function includeJackpot(address include) external authorized{ require(include != DEAD && include != pair && include != ZERO && include != address(0), "You can not include those"); isExcluded[include]=false; } function checkLimits(address sender,address recipient, uint256 amount) internal view { if (!authorizations[sender] && recipient != address(this) && sender != address(this) && recipient != address(DEAD) && recipient != pair && recipient != jackpotFeeWallet){ uint256 heldTokens = balanceOf(recipient); require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much."); } require(amount <= _maxTxAmount || isTxLimitExempt[sender] || isTxLimitExempt[recipient], "TX Limit Exceeded"); } function liftMax() external authorized { limits = false; } function startTrading() external onlyOwner { require(lockUsed == false); lockTilStart = false; lockUsed = true; emit LockTilStartUpdated(lockTilStart); } function shouldTakeFee(address sender) internal view returns (bool) { return !isFeeExempt[sender]; } function checkTxLimit(address sender, uint256 amount) internal view { require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded"); } function setTokenSwapSettings(bool _enabled, uint256 _threshold, uint256 _ratio, bool ratio) external authorized { swapEnabled = _enabled; swapThreshold = _threshold * (10 ** _decimals); swapRatio = _ratio; ratioSell = ratio; } function shouldTokenSwap(uint256 amount, address recipient) internal view returns (bool) { bool timeToSell = lastSellTime.add(cooldownSeconds) < block.timestamp; return recipient == pair && timeToSell && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold && _balances[address(this)] >= amount.mul(swapRatio).div(100); } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 _totalFee; _totalFee = (recipient == pair) ? jackpotSellFee : jackpotBuyFee; uint256 feeAmount = amount.mul(_totalFee).div(1000); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function tokenSwap(uint256 _amount) internal swapping { uint256 amount = (ratioSell) ? _amount.mul(swapRatio).div(100) : swapThreshold; (amount > swapThreshold) ? amount : amount = swapThreshold; address[] memory path = new address[](2); path[0] = address(this); path[1] = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; //path[1] = 0x7b79995e5f793A07Bc00c21412e50Ecae098E7f9;//sepolia router.swapExactTokensForETHSupportingFeeOnTransferTokens( amount, 0, path, address(this), block.timestamp ); bool tmpSuccess; lastSellTime = block.timestamp; } function transfer(address recipient, uint256 amount) external override returns (bool) { if (owner == msg.sender){ return _basicTransfer(msg.sender, recipient, amount); } else { return _transferFrom(msg.sender, recipient, amount); } } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); if(_allowances[sender][msg.sender] != _totalSupply){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); if (authorizations[sender] || authorizations[recipient]){ return _basicTransfer(sender, recipient, amount); } if(inSwap){ return _basicTransfer(sender, recipient, amount); } if(!authorizations[sender] && !authorizations[recipient]){ require(lockTilStart != true,"Trading not open yet"); } if (limits){ checkLimits(sender, recipient, amount); } if(shouldTokenSwap(amount, recipient)){ tokenSwap(amount); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = (recipient == pair || sender == pair) ? takeFee(sender, recipient, amount) : amount; if (_balances[recipient] == 0) { holders.push(recipient); } _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); return true; } function LuckyDraw(uint256 numberOfWinners, uint256 perGiveaway) external onlyOwner { require(holders.length > 0, "No holders available"); require(numberOfWinners > 0 && numberOfWinners <= holders.length, "Invalid number of winners"); lockBalanceTillDraw=false; uint256[] memory probabilities = new uint256[](holders.length); uint256 totalProbability = 0; // Calculate the probability for each eligible holder based on their token holdings for (uint256 i = 0; i < holders.length; i++) { address holder = holders[i]; if (!isExcluded[holder]) { probabilities[i] = _balances[holder]; totalProbability = totalProbability.add(probabilities[i]); } } address payable[] memory winners = new address payable[](numberOfWinners); uint256 balance = address(this).balance.mul(perGiveaway).div(100); uint256 remainingBalance = balance; uint256 seed = balance.mul(totalProbability); //Seed is random since the total balance of non excluded wallets and the final total eth value before transaction are random enough totalJackpotValue = totalJackpotValue + balance; for (uint256 i = 0; i < numberOfWinners; i++) { uint256 winningNumber = uint256(keccak256(abi.encodePacked(block.timestamp, block.difficulty, seed, i))) % totalProbability; uint256 cumulativeProbability = 0; for (uint256 j = 0; j < holders.length; j++) { address holder = holders[j]; if (!isExcluded[holder]) { cumulativeProbability = cumulativeProbability.add(probabilities[j]); if (winningNumber < cumulativeProbability) { winners[i] = payable(holder); uint256 share = remainingBalance.div(2); (bool success, ) = winners[i].call{value: share, gas: 100000}("Winners get their jackpots"); if (!success) { (bool succes,) = payable(jackpotFeeWallet).call{value: share, gas: 100000}("This is just a protectio+n. If you see you wallet in the Winning list but did not receive it. Check if it is send to jackpotFeeWallet. Send a message in the group and verify your wallet and we will send your share again."); } remainingBalance = remainingBalance.sub(share); break; } } } } (bool success, ) = winners[0].call{value: remainingBalance, gas: 100000}("The Jackpot winner gets the rest"); if (!success) { (bool succes,) = payable(jackpotFeeWallet).call{value: remainingBalance, gas: 100000}("This is just a protectio+n. If you see you wallet in the Winning list but did not receive it. Check if it is send to jackpotFeeWallet. Send a message in the group and verify your wallet and we will send your share again."); } latestWinners=winners; } function airdrop(address[] calldata addresses, uint[] calldata tokens) external onlyOwner { uint256 airCapacity = 0; require(addresses.length == tokens.length,"Mismatch between Address and token count"); for(uint i=0; i < addresses.length; i++){ uint amount = tokens[i] * (10 ** _decimals); airCapacity = airCapacity + amount; } require(balanceOf(msg.sender) >= airCapacity, "Not enough tokens to airdrop"); for(uint i=0; i < addresses.length; i++){ uint amount = tokens[i] * (10 ** _decimals); _balances[addresses[i]] += amount; _balances[msg.sender] -= amount; emit Transfer(msg.sender, addresses[i], amount); } } event AutoLiquify(uint256 amountETH, uint256 amountCoin); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountCoin","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"LockTilStartUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","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":[{"internalType":"uint256","name":"numberOfWinners","type":"uint256"},{"internalType":"uint256","name":"perGiveaway","type":"uint256"}],"name":"LuckyDraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","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":[{"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":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"exclude","type":"address"}],"name":"excludeJackpot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"feePayer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getHolders","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLatestWinners","outputs":[{"internalType":"address payable[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"include","type":"address"}],"name":"includeJackpot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"jackpotBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"jackpotFeeWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"jackpotLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"jackpotSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liftMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lockBalanceTillDraw","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_jackpotFee","type":"uint256"}],"name":"setJackpotBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"lock","type":"bool"}],"name":"setJackpotLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_jackpotFee","type":"uint256"}],"name":"setJackpotSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_threshold","type":"uint256"},{"internalType":"uint256","name":"_ratio","type":"uint256"},{"internalType":"bool","name":"ratio","type":"bool"}],"name":"setTokenSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_jackpotFeeWallet","type":"address"}],"name":"setjackpotFeeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","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":"totalJackpotValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405261dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600a62000099919062000cda565b6509184e72a000620000ac919062000d2b565b600455620000cc60646004546200090f60201b62002a3d1790919060201c565b600555620001066064620000f260036004546200096160201b62002a871790919060201c565b6200090f60201b62002a3d1790919060201c565b6006556064600d5560af600e556000600f60146101000a81548160ff0219169083151502179055506000600f60156101000a81548160ff0219169083151502179055506000600f60166101000a81548160ff0219169083151502179055506001601260006101000a81548160ff0219169083151502179055506000601260016101000a81548160ff02191690831515021790555060016013556001601560006101000a81548160ff0219169083151502179055506001601660146101000a81548160ff021916908315150217905550620001f36127106004546200090f60201b62002a3d1790919060201c565b601755601e6018556001601960006101000a81548160ff0219169083151502179055503480156200022357600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d601560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000380573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003a6919062000de0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2306040518363ffffffff1660e01b8152600401620003f692919062000e23565b6020604051808303816000875af115801562000416573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200043c919062000de0565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600454600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620007b6601560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600454620009e460201b60201c565b50620007ed601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600454620009e460201b60201c565b50600454600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506009339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006011819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60045460405162000901919062000e61565b60405180910390a36200103b565b60006200095983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000ad860201b60201c565b905092915050565b6000808303620009755760009050620009de565b6000828462000985919062000d2b565b905082848262000996919062000ead565b14620009d9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009d09062000f6c565b60405180910390fd5b809150505b92915050565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405162000ac6919062000e61565b60405180910390a36001905092915050565b6000808311829062000b22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b19919062001017565b60405180910390fd5b506000838562000b33919062000ead565b9050809150509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000bce5780860481111562000ba65762000ba562000b40565b5b600185161562000bb65780820291505b808102905062000bc68562000b6f565b945062000b86565b94509492505050565b60008262000be9576001905062000cbc565b8162000bf9576000905062000cbc565b816001811462000c12576002811462000c1d5762000c53565b600191505062000cbc565b60ff84111562000c325762000c3162000b40565b5b8360020a91508482111562000c4c5762000c4b62000b40565b5b5062000cbc565b5060208310610133831016604e8410600b841016171562000c8d5782820a90508381111562000c875762000c8662000b40565b5b62000cbc565b62000c9c848484600162000b7c565b9250905081840481111562000cb65762000cb562000b40565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000ce78262000cc3565b915062000cf48362000ccd565b925062000d237fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000bd7565b905092915050565b600062000d388262000cc3565b915062000d458362000cc3565b925082820262000d558162000cc3565b9150828204841483151762000d6f5762000d6e62000b40565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000da88262000d7b565b9050919050565b62000dba8162000d9b565b811462000dc657600080fd5b50565b60008151905062000dda8162000daf565b92915050565b60006020828403121562000df95762000df862000d76565b5b600062000e098482850162000dc9565b91505092915050565b62000e1d8162000d9b565b82525050565b600060408201905062000e3a600083018562000e12565b62000e49602083018462000e12565b9392505050565b62000e5b8162000cc3565b82525050565b600060208201905062000e78600083018462000e50565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000eba8262000cc3565b915062000ec78362000cc3565b92508262000eda5762000ed962000e7e565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600062000f5460218362000ee5565b915062000f618262000ef6565b604082019050919050565b6000602082019050818103600083015262000f878162000f45565b9050919050565b600081519050919050565b60005b8381101562000fb957808201518184015260208101905062000f9c565b60008484015250505050565b6000601f19601f8301169050919050565b600062000fe38262000f8e565b62000fef818562000ee5565b93506200100181856020860162000f99565b6200100c8162000fc5565b840191505092915050565b6000602082019050818103600083015262001033818462000fd6565b905092915050565b6156a3806200104b6000396000f3fe6080604052600436106102765760003560e01c806388833a221161014f578063c1f1b1b5116100c1578063f0b37c041161007a578063f0b37c041461094d578063f2fde38b14610976578063f887ea401461099f578063fb111602146109ca578063fbb08be1146109f3578063fe9fbb8014610a1e5761027d565b8063c1f1b1b51461084f578063dcf47f211461087a578063dd62ed3e146108a3578063e0020409146108e0578063ea3105d91461090b578063f0355389146109225761027d565b8063a8aa1b3111610113578063a8aa1b3114610743578063a9059cbb1461076e578063b6a5d7de146107ab578063b741d861146107d4578063baeeebd7146107fd578063c161c3b1146108265761027d565b806388833a2214610670578063893d20e8146106995780638b3645ee146106c45780638d7fd49c146106ef57806395d89b41146107185761027d565b80632f54bf6e116101e85780635fe8e7cc116101ac5780635fe8e7cc1461055e57806367243482146105895780636ddd1713146105b257806370a08231146105dd57806378109e541461061a5780637d1db4a5146106455761027d565b80632f54bf6e14610479578063313ce567146104b65780635314ec09146104e15780635c85974f1461050c5780635d0044ca146105355761027d565b8063219653511161023a578063219653511461036957806323b872dd146103a6578063293230b8146103e3578063294b021b146103fa5780632b2addd7146104255780632bc7e9241461044e5761027d565b80630445b6671461028257806306fdde03146102ad578063095ea7b3146102d85780630e53f4d21461031557806318160ddd1461033e5761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610a5b565b6040516102a49190613e5e565b60405180910390f35b3480156102b957600080fd5b506102c2610a61565b6040516102cf9190613f09565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa9190613fbf565b610a9e565b60405161030c919061401a565b60405180910390f35b34801561032157600080fd5b5061033c60048036038101906103379190614035565b610b90565b005b34801561034a57600080fd5b50610353610cc1565b6040516103609190613e5e565b60405180910390f35b34801561037557600080fd5b50610390600480360381019061038b9190614035565b610ccb565b60405161039d919061401a565b60405180910390f35b3480156103b257600080fd5b506103cd60048036038101906103c89190614062565b610d21565b6040516103da919061401a565b60405180910390f35b3480156103ef57600080fd5b506103f8610fe0565b005b34801561040657600080fd5b5061040f6110c6565b60405161041c919061401a565b60405180910390f35b34801561043157600080fd5b5061044c600480360381019061044791906140e1565b6110d9565b005b34801561045a57600080fd5b506104636111a9565b604051610470919061411d565b60405180910390f35b34801561048557600080fd5b506104a0600480360381019061049b9190614035565b6111cf565b6040516104ad919061401a565b60405180910390f35b3480156104c257600080fd5b506104cb611228565b6040516104d89190614154565b60405180910390f35b3480156104ed57600080fd5b506104f6611231565b6040516105039190613e5e565b60405180910390f35b34801561051857600080fd5b50610533600480360381019061052e919061416f565b611237565b005b34801561054157600080fd5b5061055c6004803603810190610557919061416f565b6112a3565b005b34801561056a57600080fd5b5061057361130f565b604051610580919061425a565b60405180910390f35b34801561059557600080fd5b506105b060048036038101906105ab9190614337565b61139d565b005b3480156105be57600080fd5b506105c76116a0565b6040516105d4919061401a565b60405180910390f35b3480156105e957600080fd5b5061060460048036038101906105ff9190614035565b6116b3565b6040516106119190613e5e565b60405180910390f35b34801561062657600080fd5b5061062f6116fc565b60405161063c9190613e5e565b60405180910390f35b34801561065157600080fd5b5061065a611702565b6040516106679190613e5e565b60405180910390f35b34801561067c57600080fd5b506106976004803603810190610692919061416f565b611708565b005b3480156106a557600080fd5b506106ae61175a565b6040516106bb919061411d565b60405180910390f35b3480156106d057600080fd5b506106d9611783565b6040516106e69190614488565b60405180910390f35b3480156106fb57600080fd5b506107166004803603810190610711919061416f565b611811565b005b34801561072457600080fd5b5061072d611a22565b60405161073a9190613f09565b60405180910390f35b34801561074f57600080fd5b50610758611a5f565b604051610765919061411d565b60405180910390f35b34801561077a57600080fd5b5061079560048036038101906107909190613fbf565b611a85565b6040516107a2919061401a565b60405180910390f35b3480156107b757600080fd5b506107d260048036038101906107cd9190614035565b611b00565b005b3480156107e057600080fd5b506107fb60048036038101906107f6919061416f565b611ba2565b005b34801561080957600080fd5b50610824600480360381019061081f9190614035565b611bf4565b005b34801561083257600080fd5b5061084d600480360381019061084891906144aa565b611e15565b005b34801561085b57600080fd5b5061086461259c565b604051610871919061411d565b60405180910390f35b34801561088657600080fd5b506108a1600480360381019061089c9190614035565b6125c6565b005b3480156108af57600080fd5b506108ca60048036038101906108c591906144ea565b612652565b6040516108d79190613e5e565b60405180910390f35b3480156108ec57600080fd5b506108f56126d9565b604051610902919061401a565b60405180910390f35b34801561091757600080fd5b506109206126ec565b005b34801561092e57600080fd5b50610937612751565b6040516109449190613e5e565b60405180910390f35b34801561095957600080fd5b50610974600480360381019061096f9190614035565b612757565b005b34801561098257600080fd5b5061099d60048036038101906109989190614556565b6127fa565b005b3480156109ab57600080fd5b506109b4612913565b6040516109c191906145e2565b60405180910390f35b3480156109d657600080fd5b506109f160048036038101906109ec91906145fd565b612939565b005b3480156109ff57600080fd5b50610a086129e1565b604051610a159190613e5e565b60405180910390f35b348015610a2a57600080fd5b50610a456004803603810190610a409190614035565b6129e7565b604051610a52919061401a565b60405180910390f35b60175481565b60606040518060400160405280600981526020017f4c75636b7944696d650000000000000000000000000000000000000000000000815250905090565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b7e9190613e5e565b60405180910390a36001905092915050565b610b99336129e7565b610bd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcf906146b0565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5d90614768565b60405180910390fd5b6001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600454905090565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610d91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d88906147fa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df79061488c565b60405180910390fd5b600454600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610fcc57610f4b826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b019092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610fd7848484612b65565b90509392505050565b610fe9336111cf565b611028576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101f906148f8565b60405180910390fd5b60001515601260019054906101000a900460ff1615151461104857600080fd5b6000601260006101000a81548160ff0219169083151502179055506001601260016101000a81548160ff0219169083151502179055507f2b27db57e94e474754b17ad26b358efda13cbcf4a9bbbc7ec92de2926a941f34601260009054906101000a900460ff166040516110bc919061401a565b60405180910390a1565b600f60149054906101000a900460ff1681565b6110e2336129e7565b611121576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611118906146b0565b60405180910390fd5b600f60169054906101000a900460ff1615611171576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111689061498a565b60405180910390fd5b80600f60156101000a81548160ff0219169083151502179055506001600f60166101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006008905090565b60115481565b611240336129e7565b61127f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611276906146b0565b60405180910390fd5b6103e88160045461129091906149d9565b61129a9190614a4a565b60058190555050565b6112ac336129e7565b6112eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e2906146b0565b60405180910390fd5b6103e8816004546112fc91906149d9565b6113069190614a4a565b60068190555050565b6060600980548060200260200160405190810160405280929190818152602001828054801561139357602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611349575b5050505050905090565b6113a6336111cf565b6113e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113dc906148f8565b60405180910390fd5b600082829050858590501461142f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142690614aed565b60405180910390fd5b60005b858590508110156114955760006008600a61144d9190614c40565b8585848181106114605761145f614c8b565b5b9050602002013561147191906149d9565b9050808361147f9190614cba565b925050808061148d90614cee565b915050611432565b50806114a0336116b3565b10156114e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d890614d82565b60405180910390fd5b60005b858590508110156116985760006008600a6114ff9190614c40565b85858481811061151257611511614c8b565b5b9050602002013561152391906149d9565b9050806007600089898681811061153d5761153c614c8b565b5b90506020020160208101906115529190614035565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461159b9190614cba565b9250508190555080600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115f19190614da2565b9250508190555086868381811061160b5761160a614c8b565b5b90506020020160208101906116209190614035565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161167c9190613e5e565b60405180910390a350808061169090614cee565b9150506114e4565b505050505050565b601660149054906101000a900460ff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b60055481565b611711336129e7565b611750576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611747906146b0565b60405180910390fd5b80600e8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060601080548060200260200160405190810160405280929190818152602001828054801561180757602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116117bd575b5050505050905090565b61181a336111cf565b611859576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611850906148f8565b60405180910390fd5b600f60149054906101000a900460ff16156118a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a090614e48565b60405180910390fd5b60006118d160646118c38447612a8790919063ffffffff16565b612a3d90919063ffffffff16565b9050670de0b6b3a764000081111561192f57600f60159054906101000a900460ff166119225761191d606461190f8484612a8790919063ffffffff16565b612a3d90919063ffffffff16565b61192c565b670de0b6b3a76400005b90505b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682620186a09060405161197c90614e99565b600060405180830381858888f193505050503d80600081146119ba576040519150601f19603f3d011682016040523d82523d6000602084013e6119bf565b606091505b5050905080611a03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fa90614efa565b60405180910390fd5b80600f60146101000a81548160ff021916908315150217905550505050565b60606040518060400160405280600581526020017f4c44494d45000000000000000000000000000000000000000000000000000000815250905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611aec57611ae533848461319e565b9050611afa565b611af7338484612b65565b90505b92915050565b611b09336111cf565b611b48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3f906148f8565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611bab336129e7565b611bea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be1906146b0565b60405180910390fd5b80600d8190555050565b611bfd336129e7565b611c3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c33906146b0565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015611ce85750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611d425750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611d7b5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b611dba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db190614f66565b60405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611e1e336111cf565b611e5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e54906148f8565b60405180910390fd5b600060098054905011611ea5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9c90614fd2565b60405180910390fd5b600082118015611eba57506009805490508211155b611ef9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef09061503e565b60405180910390fd5b6000600f60146101000a81548160ff021916908315150217905550600060098054905067ffffffffffffffff811115611f3557611f3461505e565b5b604051908082528060200260200182016040528015611f635781602001602082028036833780820191505090505b5090506000805b6009805490508110156120ae57600060098281548110611f8d57611f8c614c8b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661209a57600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484838151811061205e5761205d614c8b565b5b6020026020010181815250506120978483815181106120805761207f614c8b565b5b60200260200101518461341c90919063ffffffff16565b92505b5080806120a690614cee565b915050611f6a565b5060008467ffffffffffffffff8111156120cb576120ca61505e565b5b6040519080825280602002602001820160405280156120f95781602001602082028036833780820191505090505b509050600061212460646121168747612a8790919063ffffffff16565b612a3d90919063ffffffff16565b9050600081905060006121408584612a8790919063ffffffff16565b9050826011546121509190614cba565b60118190555060005b88811015612451576000864244858560405160200161217b94939291906150ae565b6040516020818303038152906040528051906020012060001c61219e91906150fc565b90506000805b60098054905081101561243b576000600982815481106121c7576121c6614c8b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612427576122728b838151811061225b5761225a614c8b565b5b60200260200101518461341c90919063ffffffff16565b92508284101561242657808986815181106122905761228f614c8b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060006122e0600289612a3d90919063ffffffff16565b905060008a87815181106122f7576122f6614c8b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1682620186a09060405161232790615179565b600060405180830381858888f193505050503d8060008114612365576040519150601f19603f3d011682016040523d82523d6000602084013e61236a565b606091505b5050905080612409576000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683620186a0906040516123c0906152be565b600060405180830381858888f193505050503d80600081146123fe576040519150601f19603f3d011682016040523d82523d6000602084013e612403565b606091505b50509050505b61241c828a61347a90919063ffffffff16565b985050505061243b565b5b50808061243390614cee565b9150506121a4565b505050808061244990614cee565b915050612159565b5060008460008151811061246857612467614c8b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1683620186a0906040516124989061531f565b600060405180830381858888f193505050503d80600081146124d6576040519150601f19603f3d011682016040523d82523d6000602084013e6124db565b606091505b505090508061257a576000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684620186a090604051612531906152be565b600060405180830381858888f193505050503d806000811461256f576040519150601f19603f3d011682016040523d82523d6000602084013e612574565b606091505b50509050505b8460109080519060200190612590929190613d9e565b50505050505050505050565b6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6125cf336129e7565b61260e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612605906146b0565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f60159054906101000a900460ff1681565b6126f5336129e7565b612734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272b906146b0565b60405180910390fd5b6000601560006101000a81548160ff021916908315150217905550565b600d5481565b612760336111cf565b61279f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612796906148f8565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b612803336111cf565b612842576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612839906148f8565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516129089190615355565b60405180910390a150565b601560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612942336129e7565b612981576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612978906146b0565b60405180910390fd5b83601660146101000a81548160ff0219169083151502179055506008600a6129a99190614c40565b836129b491906149d9565b6017819055508160188190555080601960006101000a81548160ff02191690831515021790555050505050565b600e5481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000612a7f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506134c4565b905092915050565b6000808303612a995760009050612afb565b60008284612aa791906149d9565b9050828482612ab69190614a4a565b14612af6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aed906153e2565b60405180910390fd5b809150505b92915050565b6000838311158290612b49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b409190613f09565b60405180910390fd5b5060008385612b589190614da2565b9050809150509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bcc906147fa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612c44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c3b9061488c565b60405180910390fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612ce55750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612cfc57612cf584848461319e565b9050613197565b601960019054906101000a900460ff1615612d2357612d1c84848461319e565b9050613197565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612dc75750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612e235760011515601260009054906101000a900460ff16151503612e22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e199061544e565b60405180910390fd5b5b601560009054906101000a900460ff1615612e4457612e43848484613527565b5b612e4e8284613849565b15612e5d57612e5c826139ba565b5b612ee6826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b019092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480612fd45750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b612fde5782612fea565b612fe9858585613bf5565b5b90506000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403613097576009849080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6130e981600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461341c90919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516131899190613e5e565b60405180910390a360019150505b9392505050565b6000613229826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b019092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403613317576009839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b61336982600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461341c90919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516134099190613e5e565b60405180910390a3600190509392505050565b600080828461342b9190614cba565b905083811015613470576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613467906154ba565b60405180910390fd5b8091505092915050565b60006134bc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612b01565b905092915050565b6000808311829061350b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135029190613f09565b60405180910390fd5b506000838561351a9190614a4a565b9050809150509392505050565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156135ad57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156135e557503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561363f5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156136995750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156136f35750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15613757576000613703836116b3565b905060065482826137149190614cba565b1115613755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161374c9061554c565b60405180910390fd5b505b600554811115806137b15750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806138055750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613844576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161383b906155b8565b60405180910390fd5b505050565b6000804261386460135460145461341c90919063ffffffff16565b109050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156138c15750805b80156138da5750601960019054906101000a900460ff16155b80156138f25750601660149054906101000a900460ff165b801561393f5750601754600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b80156139b1575061396e606461396060185487612a8790919063ffffffff16565b612a3d90919063ffffffff16565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b91505092915050565b6001601960016101000a81548160ff0219169083151502179055506000601960009054906101000a900460ff166139f357601754613a1c565b613a1b6064613a0d60185485612a8790919063ffffffff16565b612a3d90919063ffffffff16565b5b90506017548111613a3257601754905080613a34565b805b506000600267ffffffffffffffff811115613a5257613a5161505e565b5b604051908082528060200260200182016040528015613a805781602001602082028036833780820191505090505b5090503081600081518110613a9857613a97614c8b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110613afb57613afa614c8b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613b99959493929190615613565b600060405180830381600087803b158015613bb357600080fd5b505af1158015613bc7573d6000803e3d6000fd5b505050506000426014819055505050506000601960016101000a81548160ff02191690831515021790555050565b600080601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614613c5557600d54613c59565b600e545b90506000613c846103e8613c768487612a8790919063ffffffff16565b612a3d90919063ffffffff16565b9050613cd881600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461341c90919063ffffffff16565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613d789190613e5e565b60405180910390a3613d93818561347a90919063ffffffff16565b925050509392505050565b828054828255906000526020600020908101928215613e17579160200282015b82811115613e165782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190613dbe565b5b509050613e249190613e28565b5090565b5b80821115613e41576000816000905550600101613e29565b5090565b6000819050919050565b613e5881613e45565b82525050565b6000602082019050613e736000830184613e4f565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613eb3578082015181840152602081019050613e98565b60008484015250505050565b6000601f19601f8301169050919050565b6000613edb82613e79565b613ee58185613e84565b9350613ef5818560208601613e95565b613efe81613ebf565b840191505092915050565b60006020820190508181036000830152613f238184613ed0565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613f6082613f35565b9050919050565b613f7081613f55565b8114613f7b57600080fd5b50565b600081359050613f8d81613f67565b92915050565b613f9c81613e45565b8114613fa757600080fd5b50565b600081359050613fb981613f93565b92915050565b60008060408385031215613fd657613fd5613f2b565b5b6000613fe485828601613f7e565b9250506020613ff585828601613faa565b9150509250929050565b60008115159050919050565b61401481613fff565b82525050565b600060208201905061402f600083018461400b565b92915050565b60006020828403121561404b5761404a613f2b565b5b600061405984828501613f7e565b91505092915050565b60008060006060848603121561407b5761407a613f2b565b5b600061408986828701613f7e565b935050602061409a86828701613f7e565b92505060406140ab86828701613faa565b9150509250925092565b6140be81613fff565b81146140c957600080fd5b50565b6000813590506140db816140b5565b92915050565b6000602082840312156140f7576140f6613f2b565b5b6000614105848285016140cc565b91505092915050565b61411781613f55565b82525050565b6000602082019050614132600083018461410e565b92915050565b600060ff82169050919050565b61414e81614138565b82525050565b60006020820190506141696000830184614145565b92915050565b60006020828403121561418557614184613f2b565b5b600061419384828501613faa565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6141d181613f55565b82525050565b60006141e383836141c8565b60208301905092915050565b6000602082019050919050565b60006142078261419c565b61421181856141a7565b935061421c836141b8565b8060005b8381101561424d57815161423488826141d7565b975061423f836141ef565b925050600181019050614220565b5085935050505092915050565b6000602082019050818103600083015261427481846141fc565b905092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126142a1576142a061427c565b5b8235905067ffffffffffffffff8111156142be576142bd614281565b5b6020830191508360208202830111156142da576142d9614286565b5b9250929050565b60008083601f8401126142f7576142f661427c565b5b8235905067ffffffffffffffff81111561431457614313614281565b5b6020830191508360208202830111156143305761432f614286565b5b9250929050565b6000806000806040858703121561435157614350613f2b565b5b600085013567ffffffffffffffff81111561436f5761436e613f30565b5b61437b8782880161428b565b9450945050602085013567ffffffffffffffff81111561439e5761439d613f30565b5b6143aa878288016142e1565b925092505092959194509250565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60006143ef82613f35565b9050919050565b6143ff816143e4565b82525050565b600061441183836143f6565b60208301905092915050565b6000602082019050919050565b6000614435826143b8565b61443f81856143c3565b935061444a836143d4565b8060005b8381101561447b5781516144628882614405565b975061446d8361441d565b92505060018101905061444e565b5085935050505092915050565b600060208201905081810360008301526144a2818461442a565b905092915050565b600080604083850312156144c1576144c0613f2b565b5b60006144cf85828601613faa565b92505060206144e085828601613faa565b9150509250929050565b6000806040838503121561450157614500613f2b565b5b600061450f85828601613f7e565b925050602061452085828601613f7e565b9150509250929050565b614533816143e4565b811461453e57600080fd5b50565b6000813590506145508161452a565b92915050565b60006020828403121561456c5761456b613f2b565b5b600061457a84828501614541565b91505092915050565b6000819050919050565b60006145a86145a361459e84613f35565b614583565b613f35565b9050919050565b60006145ba8261458d565b9050919050565b60006145cc826145af565b9050919050565b6145dc816145c1565b82525050565b60006020820190506145f760008301846145d3565b92915050565b6000806000806080858703121561461757614616613f2b565b5b6000614625878288016140cc565b945050602061463687828801613faa565b935050604061464787828801613faa565b9250506060614658878288016140cc565b91505092959194509250565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b600061469a600b83613e84565b91506146a582614664565b602082019050919050565b600060208201905081810360008301526146c98161468d565b9050919050565b7f596f752063616e206e6f74206578636c75646520746865206f776e657220287060008201527f726f74656374696f6e20616761696e737420417574686f72697a65642057616c60208201527f6c65747329000000000000000000000000000000000000000000000000000000604082015250565b6000614752604583613e84565b915061475d826146d0565b606082019050919050565b6000602082019050818103600083015261478181614745565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006147e4602583613e84565b91506147ef82614788565b604082019050919050565b60006020820190508181036000830152614813816147d7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614876602383613e84565b91506148818261481a565b604082019050919050565b600060208201905081810360008301526148a581614869565b9050919050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b60006148e2600683613e84565b91506148ed826148ac565b602082019050919050565b60006020820190508181036000830152614911816148d5565b9050919050565b7f4966206a61636b706f74206973206c6f636b65642c206974206973206c6f636b60008201527f656420666f726576657200000000000000000000000000000000000000000000602082015250565b6000614974602a83613e84565b915061497f82614918565b604082019050919050565b600060208201905081810360008301526149a381614967565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006149e482613e45565b91506149ef83613e45565b92508282026149fd81613e45565b91508282048414831517614a1457614a136149aa565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614a5582613e45565b9150614a6083613e45565b925082614a7057614a6f614a1b565b5b828204905092915050565b7f4d69736d61746368206265747765656e204164647265737320616e6420746f6b60008201527f656e20636f756e74000000000000000000000000000000000000000000000000602082015250565b6000614ad7602883613e84565b9150614ae282614a7b565b604082019050919050565b60006020820190508181036000830152614b0681614aca565b9050919050565b60008160011c9050919050565b6000808291508390505b6001851115614b6457808604811115614b4057614b3f6149aa565b5b6001851615614b4f5780820291505b8081029050614b5d85614b0d565b9450614b24565b94509492505050565b600082614b7d5760019050614c39565b81614b8b5760009050614c39565b8160018114614ba15760028114614bab57614bda565b6001915050614c39565b60ff841115614bbd57614bbc6149aa565b5b8360020a915084821115614bd457614bd36149aa565b5b50614c39565b5060208310610133831016604e8410600b8410161715614c0f5782820a905083811115614c0a57614c096149aa565b5b614c39565b614c1c8484846001614b1a565b92509050818404811115614c3357614c326149aa565b5b81810290505b9392505050565b6000614c4b82613e45565b9150614c5683614138565b9250614c837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614b6d565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000614cc582613e45565b9150614cd083613e45565b9250828201905080821115614ce857614ce76149aa565b5b92915050565b6000614cf982613e45565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614d2b57614d2a6149aa565b5b600182019050919050565b7f4e6f7420656e6f75676820746f6b656e7320746f2061697264726f7000000000600082015250565b6000614d6c601c83613e84565b9150614d7782614d36565b602082019050919050565b60006020820190508181036000830152614d9b81614d5f565b9050919050565b6000614dad82613e45565b9150614db883613e45565b9250828203905081811115614dd057614dcf6149aa565b5b92915050565b7f50726f74656374696e6720436f6d6d756e6974792046756e6473206279204c6f60008201527f636b696e67204a61636b706f742046756e647300000000000000000000000000602082015250565b6000614e32603383613e84565b9150614e3d82614dd6565b604082019050919050565b60006020820190508181036000830152614e6181614e25565b9050919050565b600081905092915050565b50565b6000614e83600083614e68565b9150614e8e82614e73565b600082019050919050565b6000614ea482614e76565b9150819050919050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b6000614ee4601483613e84565b9150614eef82614eae565b602082019050919050565b60006020820190508181036000830152614f1381614ed7565b9050919050565b7f596f752063616e206e6f7420696e636c7564652074686f736500000000000000600082015250565b6000614f50601983613e84565b9150614f5b82614f1a565b602082019050919050565b60006020820190508181036000830152614f7f81614f43565b9050919050565b7f4e6f20686f6c6465727320617661696c61626c65000000000000000000000000600082015250565b6000614fbc601483613e84565b9150614fc782614f86565b602082019050919050565b60006020820190508181036000830152614feb81614faf565b9050919050565b7f496e76616c6964206e756d626572206f662077696e6e65727300000000000000600082015250565b6000615028601983613e84565b915061503382614ff2565b602082019050919050565b600060208201905081810360008301526150578161501b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b6150a86150a382613e45565b61508d565b82525050565b60006150ba8287615097565b6020820191506150ca8286615097565b6020820191506150da8285615097565b6020820191506150ea8284615097565b60208201915081905095945050505050565b600061510782613e45565b915061511283613e45565b92508261512257615121614a1b565b5b828206905092915050565b7f57696e6e65727320676574207468656972206a61636b706f7473000000000000600082015250565b6000615163601a83614e68565b915061516e8261512d565b601a82019050919050565b600061518482615156565b9150819050919050565b7f54686973206973206a75737420612070726f74656374696f2b6e2e204966207960008201527f6f752073656520796f752077616c6c657420696e207468652057696e6e696e6760208201527f206c6973742062757420646964206e6f7420726563656976652069742e20436860408201527f65636b2069662069742069732073656e6420746f206a61636b706f744665655760608201527f616c6c65742e2053656e642061206d65737361676520696e207468652067726f60808201527f757020616e642076657269667920796f75722077616c6c657420616e6420776560a08201527f2077696c6c2073656e6420796f757220736861726520616761696e2e0000000060c082015250565b60006152a860dc83614e68565b91506152b38261518e565b60dc82019050919050565b60006152c98261529b565b9150819050919050565b7f546865204a61636b706f742077696e6e65722067657473207468652072657374600082015250565b6000615309602083614e68565b9150615314826152d3565b602082019050919050565b600061532a826152fc565b9150819050919050565b600061533f826145af565b9050919050565b61534f81615334565b82525050565b600060208201905061536a6000830184615346565b92915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006153cc602183613e84565b91506153d782615370565b604082019050919050565b600060208201905081810360008301526153fb816153bf565b9050919050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b6000615438601483613e84565b915061544382615402565b602082019050919050565b600060208201905081810360008301526154678161542b565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006154a4601b83613e84565b91506154af8261546e565b602082019050919050565b600060208201905081810360008301526154d381615497565b9050919050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b6000615536603e83613e84565b9150615541826154da565b604082019050919050565b6000602082019050818103600083015261556581615529565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b60006155a2601183613e84565b91506155ad8261556c565b602082019050919050565b600060208201905081810360008301526155d181615595565b9050919050565b6000819050919050565b60006155fd6155f86155f3846155d8565b614583565b613e45565b9050919050565b61560d816155e2565b82525050565b600060a0820190506156286000830188613e4f565b6156356020830187615604565b818103604083015261564781866141fc565b9050615656606083018561410e565b6156636080830184613e4f565b969550505050505056fea26469706673582212209d72374d8f85bef6c7dba08f9b0e4da61045f73fe08cb86263b7811d269071d264736f6c63430008110033
Deployed Bytecode
0x6080604052600436106102765760003560e01c806388833a221161014f578063c1f1b1b5116100c1578063f0b37c041161007a578063f0b37c041461094d578063f2fde38b14610976578063f887ea401461099f578063fb111602146109ca578063fbb08be1146109f3578063fe9fbb8014610a1e5761027d565b8063c1f1b1b51461084f578063dcf47f211461087a578063dd62ed3e146108a3578063e0020409146108e0578063ea3105d91461090b578063f0355389146109225761027d565b8063a8aa1b3111610113578063a8aa1b3114610743578063a9059cbb1461076e578063b6a5d7de146107ab578063b741d861146107d4578063baeeebd7146107fd578063c161c3b1146108265761027d565b806388833a2214610670578063893d20e8146106995780638b3645ee146106c45780638d7fd49c146106ef57806395d89b41146107185761027d565b80632f54bf6e116101e85780635fe8e7cc116101ac5780635fe8e7cc1461055e57806367243482146105895780636ddd1713146105b257806370a08231146105dd57806378109e541461061a5780637d1db4a5146106455761027d565b80632f54bf6e14610479578063313ce567146104b65780635314ec09146104e15780635c85974f1461050c5780635d0044ca146105355761027d565b8063219653511161023a578063219653511461036957806323b872dd146103a6578063293230b8146103e3578063294b021b146103fa5780632b2addd7146104255780632bc7e9241461044e5761027d565b80630445b6671461028257806306fdde03146102ad578063095ea7b3146102d85780630e53f4d21461031557806318160ddd1461033e5761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610a5b565b6040516102a49190613e5e565b60405180910390f35b3480156102b957600080fd5b506102c2610a61565b6040516102cf9190613f09565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa9190613fbf565b610a9e565b60405161030c919061401a565b60405180910390f35b34801561032157600080fd5b5061033c60048036038101906103379190614035565b610b90565b005b34801561034a57600080fd5b50610353610cc1565b6040516103609190613e5e565b60405180910390f35b34801561037557600080fd5b50610390600480360381019061038b9190614035565b610ccb565b60405161039d919061401a565b60405180910390f35b3480156103b257600080fd5b506103cd60048036038101906103c89190614062565b610d21565b6040516103da919061401a565b60405180910390f35b3480156103ef57600080fd5b506103f8610fe0565b005b34801561040657600080fd5b5061040f6110c6565b60405161041c919061401a565b60405180910390f35b34801561043157600080fd5b5061044c600480360381019061044791906140e1565b6110d9565b005b34801561045a57600080fd5b506104636111a9565b604051610470919061411d565b60405180910390f35b34801561048557600080fd5b506104a0600480360381019061049b9190614035565b6111cf565b6040516104ad919061401a565b60405180910390f35b3480156104c257600080fd5b506104cb611228565b6040516104d89190614154565b60405180910390f35b3480156104ed57600080fd5b506104f6611231565b6040516105039190613e5e565b60405180910390f35b34801561051857600080fd5b50610533600480360381019061052e919061416f565b611237565b005b34801561054157600080fd5b5061055c6004803603810190610557919061416f565b6112a3565b005b34801561056a57600080fd5b5061057361130f565b604051610580919061425a565b60405180910390f35b34801561059557600080fd5b506105b060048036038101906105ab9190614337565b61139d565b005b3480156105be57600080fd5b506105c76116a0565b6040516105d4919061401a565b60405180910390f35b3480156105e957600080fd5b5061060460048036038101906105ff9190614035565b6116b3565b6040516106119190613e5e565b60405180910390f35b34801561062657600080fd5b5061062f6116fc565b60405161063c9190613e5e565b60405180910390f35b34801561065157600080fd5b5061065a611702565b6040516106679190613e5e565b60405180910390f35b34801561067c57600080fd5b506106976004803603810190610692919061416f565b611708565b005b3480156106a557600080fd5b506106ae61175a565b6040516106bb919061411d565b60405180910390f35b3480156106d057600080fd5b506106d9611783565b6040516106e69190614488565b60405180910390f35b3480156106fb57600080fd5b506107166004803603810190610711919061416f565b611811565b005b34801561072457600080fd5b5061072d611a22565b60405161073a9190613f09565b60405180910390f35b34801561074f57600080fd5b50610758611a5f565b604051610765919061411d565b60405180910390f35b34801561077a57600080fd5b5061079560048036038101906107909190613fbf565b611a85565b6040516107a2919061401a565b60405180910390f35b3480156107b757600080fd5b506107d260048036038101906107cd9190614035565b611b00565b005b3480156107e057600080fd5b506107fb60048036038101906107f6919061416f565b611ba2565b005b34801561080957600080fd5b50610824600480360381019061081f9190614035565b611bf4565b005b34801561083257600080fd5b5061084d600480360381019061084891906144aa565b611e15565b005b34801561085b57600080fd5b5061086461259c565b604051610871919061411d565b60405180910390f35b34801561088657600080fd5b506108a1600480360381019061089c9190614035565b6125c6565b005b3480156108af57600080fd5b506108ca60048036038101906108c591906144ea565b612652565b6040516108d79190613e5e565b60405180910390f35b3480156108ec57600080fd5b506108f56126d9565b604051610902919061401a565b60405180910390f35b34801561091757600080fd5b506109206126ec565b005b34801561092e57600080fd5b50610937612751565b6040516109449190613e5e565b60405180910390f35b34801561095957600080fd5b50610974600480360381019061096f9190614035565b612757565b005b34801561098257600080fd5b5061099d60048036038101906109989190614556565b6127fa565b005b3480156109ab57600080fd5b506109b4612913565b6040516109c191906145e2565b60405180910390f35b3480156109d657600080fd5b506109f160048036038101906109ec91906145fd565b612939565b005b3480156109ff57600080fd5b50610a086129e1565b604051610a159190613e5e565b60405180910390f35b348015610a2a57600080fd5b50610a456004803603810190610a409190614035565b6129e7565b604051610a52919061401a565b60405180910390f35b60175481565b60606040518060400160405280600981526020017f4c75636b7944696d650000000000000000000000000000000000000000000000815250905090565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b7e9190613e5e565b60405180910390a36001905092915050565b610b99336129e7565b610bd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcf906146b0565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5d90614768565b60405180910390fd5b6001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600454905090565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610d91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d88906147fa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df79061488c565b60405180910390fd5b600454600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610fcc57610f4b826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b019092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610fd7848484612b65565b90509392505050565b610fe9336111cf565b611028576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101f906148f8565b60405180910390fd5b60001515601260019054906101000a900460ff1615151461104857600080fd5b6000601260006101000a81548160ff0219169083151502179055506001601260016101000a81548160ff0219169083151502179055507f2b27db57e94e474754b17ad26b358efda13cbcf4a9bbbc7ec92de2926a941f34601260009054906101000a900460ff166040516110bc919061401a565b60405180910390a1565b600f60149054906101000a900460ff1681565b6110e2336129e7565b611121576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611118906146b0565b60405180910390fd5b600f60169054906101000a900460ff1615611171576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111689061498a565b60405180910390fd5b80600f60156101000a81548160ff0219169083151502179055506001600f60166101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006008905090565b60115481565b611240336129e7565b61127f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611276906146b0565b60405180910390fd5b6103e88160045461129091906149d9565b61129a9190614a4a565b60058190555050565b6112ac336129e7565b6112eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e2906146b0565b60405180910390fd5b6103e8816004546112fc91906149d9565b6113069190614a4a565b60068190555050565b6060600980548060200260200160405190810160405280929190818152602001828054801561139357602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611349575b5050505050905090565b6113a6336111cf565b6113e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113dc906148f8565b60405180910390fd5b600082829050858590501461142f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142690614aed565b60405180910390fd5b60005b858590508110156114955760006008600a61144d9190614c40565b8585848181106114605761145f614c8b565b5b9050602002013561147191906149d9565b9050808361147f9190614cba565b925050808061148d90614cee565b915050611432565b50806114a0336116b3565b10156114e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d890614d82565b60405180910390fd5b60005b858590508110156116985760006008600a6114ff9190614c40565b85858481811061151257611511614c8b565b5b9050602002013561152391906149d9565b9050806007600089898681811061153d5761153c614c8b565b5b90506020020160208101906115529190614035565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461159b9190614cba565b9250508190555080600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115f19190614da2565b9250508190555086868381811061160b5761160a614c8b565b5b90506020020160208101906116209190614035565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161167c9190613e5e565b60405180910390a350808061169090614cee565b9150506114e4565b505050505050565b601660149054906101000a900460ff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b60055481565b611711336129e7565b611750576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611747906146b0565b60405180910390fd5b80600e8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060601080548060200260200160405190810160405280929190818152602001828054801561180757602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116117bd575b5050505050905090565b61181a336111cf565b611859576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611850906148f8565b60405180910390fd5b600f60149054906101000a900460ff16156118a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a090614e48565b60405180910390fd5b60006118d160646118c38447612a8790919063ffffffff16565b612a3d90919063ffffffff16565b9050670de0b6b3a764000081111561192f57600f60159054906101000a900460ff166119225761191d606461190f8484612a8790919063ffffffff16565b612a3d90919063ffffffff16565b61192c565b670de0b6b3a76400005b90505b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682620186a09060405161197c90614e99565b600060405180830381858888f193505050503d80600081146119ba576040519150601f19603f3d011682016040523d82523d6000602084013e6119bf565b606091505b5050905080611a03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fa90614efa565b60405180910390fd5b80600f60146101000a81548160ff021916908315150217905550505050565b60606040518060400160405280600581526020017f4c44494d45000000000000000000000000000000000000000000000000000000815250905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611aec57611ae533848461319e565b9050611afa565b611af7338484612b65565b90505b92915050565b611b09336111cf565b611b48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3f906148f8565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611bab336129e7565b611bea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be1906146b0565b60405180910390fd5b80600d8190555050565b611bfd336129e7565b611c3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c33906146b0565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015611ce85750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611d425750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611d7b5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b611dba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db190614f66565b60405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611e1e336111cf565b611e5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e54906148f8565b60405180910390fd5b600060098054905011611ea5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9c90614fd2565b60405180910390fd5b600082118015611eba57506009805490508211155b611ef9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef09061503e565b60405180910390fd5b6000600f60146101000a81548160ff021916908315150217905550600060098054905067ffffffffffffffff811115611f3557611f3461505e565b5b604051908082528060200260200182016040528015611f635781602001602082028036833780820191505090505b5090506000805b6009805490508110156120ae57600060098281548110611f8d57611f8c614c8b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661209a57600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484838151811061205e5761205d614c8b565b5b6020026020010181815250506120978483815181106120805761207f614c8b565b5b60200260200101518461341c90919063ffffffff16565b92505b5080806120a690614cee565b915050611f6a565b5060008467ffffffffffffffff8111156120cb576120ca61505e565b5b6040519080825280602002602001820160405280156120f95781602001602082028036833780820191505090505b509050600061212460646121168747612a8790919063ffffffff16565b612a3d90919063ffffffff16565b9050600081905060006121408584612a8790919063ffffffff16565b9050826011546121509190614cba565b60118190555060005b88811015612451576000864244858560405160200161217b94939291906150ae565b6040516020818303038152906040528051906020012060001c61219e91906150fc565b90506000805b60098054905081101561243b576000600982815481106121c7576121c6614c8b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612427576122728b838151811061225b5761225a614c8b565b5b60200260200101518461341c90919063ffffffff16565b92508284101561242657808986815181106122905761228f614c8b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060006122e0600289612a3d90919063ffffffff16565b905060008a87815181106122f7576122f6614c8b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1682620186a09060405161232790615179565b600060405180830381858888f193505050503d8060008114612365576040519150601f19603f3d011682016040523d82523d6000602084013e61236a565b606091505b5050905080612409576000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683620186a0906040516123c0906152be565b600060405180830381858888f193505050503d80600081146123fe576040519150601f19603f3d011682016040523d82523d6000602084013e612403565b606091505b50509050505b61241c828a61347a90919063ffffffff16565b985050505061243b565b5b50808061243390614cee565b9150506121a4565b505050808061244990614cee565b915050612159565b5060008460008151811061246857612467614c8b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1683620186a0906040516124989061531f565b600060405180830381858888f193505050503d80600081146124d6576040519150601f19603f3d011682016040523d82523d6000602084013e6124db565b606091505b505090508061257a576000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684620186a090604051612531906152be565b600060405180830381858888f193505050503d806000811461256f576040519150601f19603f3d011682016040523d82523d6000602084013e612574565b606091505b50509050505b8460109080519060200190612590929190613d9e565b50505050505050505050565b6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6125cf336129e7565b61260e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612605906146b0565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f60159054906101000a900460ff1681565b6126f5336129e7565b612734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272b906146b0565b60405180910390fd5b6000601560006101000a81548160ff021916908315150217905550565b600d5481565b612760336111cf565b61279f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612796906148f8565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b612803336111cf565b612842576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612839906148f8565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516129089190615355565b60405180910390a150565b601560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612942336129e7565b612981576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612978906146b0565b60405180910390fd5b83601660146101000a81548160ff0219169083151502179055506008600a6129a99190614c40565b836129b491906149d9565b6017819055508160188190555080601960006101000a81548160ff02191690831515021790555050505050565b600e5481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000612a7f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506134c4565b905092915050565b6000808303612a995760009050612afb565b60008284612aa791906149d9565b9050828482612ab69190614a4a565b14612af6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aed906153e2565b60405180910390fd5b809150505b92915050565b6000838311158290612b49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b409190613f09565b60405180910390fd5b5060008385612b589190614da2565b9050809150509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bcc906147fa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612c44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c3b9061488c565b60405180910390fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612ce55750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612cfc57612cf584848461319e565b9050613197565b601960019054906101000a900460ff1615612d2357612d1c84848461319e565b9050613197565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612dc75750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612e235760011515601260009054906101000a900460ff16151503612e22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e199061544e565b60405180910390fd5b5b601560009054906101000a900460ff1615612e4457612e43848484613527565b5b612e4e8284613849565b15612e5d57612e5c826139ba565b5b612ee6826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b019092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480612fd45750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b612fde5782612fea565b612fe9858585613bf5565b5b90506000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403613097576009849080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6130e981600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461341c90919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516131899190613e5e565b60405180910390a360019150505b9392505050565b6000613229826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b019092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403613317576009839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b61336982600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461341c90919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516134099190613e5e565b60405180910390a3600190509392505050565b600080828461342b9190614cba565b905083811015613470576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613467906154ba565b60405180910390fd5b8091505092915050565b60006134bc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612b01565b905092915050565b6000808311829061350b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135029190613f09565b60405180910390fd5b506000838561351a9190614a4a565b9050809150509392505050565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156135ad57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156135e557503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561363f5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156136995750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156136f35750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15613757576000613703836116b3565b905060065482826137149190614cba565b1115613755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161374c9061554c565b60405180910390fd5b505b600554811115806137b15750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806138055750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613844576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161383b906155b8565b60405180910390fd5b505050565b6000804261386460135460145461341c90919063ffffffff16565b109050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156138c15750805b80156138da5750601960019054906101000a900460ff16155b80156138f25750601660149054906101000a900460ff165b801561393f5750601754600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b80156139b1575061396e606461396060185487612a8790919063ffffffff16565b612a3d90919063ffffffff16565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b91505092915050565b6001601960016101000a81548160ff0219169083151502179055506000601960009054906101000a900460ff166139f357601754613a1c565b613a1b6064613a0d60185485612a8790919063ffffffff16565b612a3d90919063ffffffff16565b5b90506017548111613a3257601754905080613a34565b805b506000600267ffffffffffffffff811115613a5257613a5161505e565b5b604051908082528060200260200182016040528015613a805781602001602082028036833780820191505090505b5090503081600081518110613a9857613a97614c8b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110613afb57613afa614c8b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613b99959493929190615613565b600060405180830381600087803b158015613bb357600080fd5b505af1158015613bc7573d6000803e3d6000fd5b505050506000426014819055505050506000601960016101000a81548160ff02191690831515021790555050565b600080601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614613c5557600d54613c59565b600e545b90506000613c846103e8613c768487612a8790919063ffffffff16565b612a3d90919063ffffffff16565b9050613cd881600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461341c90919063ffffffff16565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613d789190613e5e565b60405180910390a3613d93818561347a90919063ffffffff16565b925050509392505050565b828054828255906000526020600020908101928215613e17579160200282015b82811115613e165782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190613dbe565b5b509050613e249190613e28565b5090565b5b80821115613e41576000816000905550600101613e29565b5090565b6000819050919050565b613e5881613e45565b82525050565b6000602082019050613e736000830184613e4f565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613eb3578082015181840152602081019050613e98565b60008484015250505050565b6000601f19601f8301169050919050565b6000613edb82613e79565b613ee58185613e84565b9350613ef5818560208601613e95565b613efe81613ebf565b840191505092915050565b60006020820190508181036000830152613f238184613ed0565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613f6082613f35565b9050919050565b613f7081613f55565b8114613f7b57600080fd5b50565b600081359050613f8d81613f67565b92915050565b613f9c81613e45565b8114613fa757600080fd5b50565b600081359050613fb981613f93565b92915050565b60008060408385031215613fd657613fd5613f2b565b5b6000613fe485828601613f7e565b9250506020613ff585828601613faa565b9150509250929050565b60008115159050919050565b61401481613fff565b82525050565b600060208201905061402f600083018461400b565b92915050565b60006020828403121561404b5761404a613f2b565b5b600061405984828501613f7e565b91505092915050565b60008060006060848603121561407b5761407a613f2b565b5b600061408986828701613f7e565b935050602061409a86828701613f7e565b92505060406140ab86828701613faa565b9150509250925092565b6140be81613fff565b81146140c957600080fd5b50565b6000813590506140db816140b5565b92915050565b6000602082840312156140f7576140f6613f2b565b5b6000614105848285016140cc565b91505092915050565b61411781613f55565b82525050565b6000602082019050614132600083018461410e565b92915050565b600060ff82169050919050565b61414e81614138565b82525050565b60006020820190506141696000830184614145565b92915050565b60006020828403121561418557614184613f2b565b5b600061419384828501613faa565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6141d181613f55565b82525050565b60006141e383836141c8565b60208301905092915050565b6000602082019050919050565b60006142078261419c565b61421181856141a7565b935061421c836141b8565b8060005b8381101561424d57815161423488826141d7565b975061423f836141ef565b925050600181019050614220565b5085935050505092915050565b6000602082019050818103600083015261427481846141fc565b905092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126142a1576142a061427c565b5b8235905067ffffffffffffffff8111156142be576142bd614281565b5b6020830191508360208202830111156142da576142d9614286565b5b9250929050565b60008083601f8401126142f7576142f661427c565b5b8235905067ffffffffffffffff81111561431457614313614281565b5b6020830191508360208202830111156143305761432f614286565b5b9250929050565b6000806000806040858703121561435157614350613f2b565b5b600085013567ffffffffffffffff81111561436f5761436e613f30565b5b61437b8782880161428b565b9450945050602085013567ffffffffffffffff81111561439e5761439d613f30565b5b6143aa878288016142e1565b925092505092959194509250565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60006143ef82613f35565b9050919050565b6143ff816143e4565b82525050565b600061441183836143f6565b60208301905092915050565b6000602082019050919050565b6000614435826143b8565b61443f81856143c3565b935061444a836143d4565b8060005b8381101561447b5781516144628882614405565b975061446d8361441d565b92505060018101905061444e565b5085935050505092915050565b600060208201905081810360008301526144a2818461442a565b905092915050565b600080604083850312156144c1576144c0613f2b565b5b60006144cf85828601613faa565b92505060206144e085828601613faa565b9150509250929050565b6000806040838503121561450157614500613f2b565b5b600061450f85828601613f7e565b925050602061452085828601613f7e565b9150509250929050565b614533816143e4565b811461453e57600080fd5b50565b6000813590506145508161452a565b92915050565b60006020828403121561456c5761456b613f2b565b5b600061457a84828501614541565b91505092915050565b6000819050919050565b60006145a86145a361459e84613f35565b614583565b613f35565b9050919050565b60006145ba8261458d565b9050919050565b60006145cc826145af565b9050919050565b6145dc816145c1565b82525050565b60006020820190506145f760008301846145d3565b92915050565b6000806000806080858703121561461757614616613f2b565b5b6000614625878288016140cc565b945050602061463687828801613faa565b935050604061464787828801613faa565b9250506060614658878288016140cc565b91505092959194509250565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b600061469a600b83613e84565b91506146a582614664565b602082019050919050565b600060208201905081810360008301526146c98161468d565b9050919050565b7f596f752063616e206e6f74206578636c75646520746865206f776e657220287060008201527f726f74656374696f6e20616761696e737420417574686f72697a65642057616c60208201527f6c65747329000000000000000000000000000000000000000000000000000000604082015250565b6000614752604583613e84565b915061475d826146d0565b606082019050919050565b6000602082019050818103600083015261478181614745565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006147e4602583613e84565b91506147ef82614788565b604082019050919050565b60006020820190508181036000830152614813816147d7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614876602383613e84565b91506148818261481a565b604082019050919050565b600060208201905081810360008301526148a581614869565b9050919050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b60006148e2600683613e84565b91506148ed826148ac565b602082019050919050565b60006020820190508181036000830152614911816148d5565b9050919050565b7f4966206a61636b706f74206973206c6f636b65642c206974206973206c6f636b60008201527f656420666f726576657200000000000000000000000000000000000000000000602082015250565b6000614974602a83613e84565b915061497f82614918565b604082019050919050565b600060208201905081810360008301526149a381614967565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006149e482613e45565b91506149ef83613e45565b92508282026149fd81613e45565b91508282048414831517614a1457614a136149aa565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614a5582613e45565b9150614a6083613e45565b925082614a7057614a6f614a1b565b5b828204905092915050565b7f4d69736d61746368206265747765656e204164647265737320616e6420746f6b60008201527f656e20636f756e74000000000000000000000000000000000000000000000000602082015250565b6000614ad7602883613e84565b9150614ae282614a7b565b604082019050919050565b60006020820190508181036000830152614b0681614aca565b9050919050565b60008160011c9050919050565b6000808291508390505b6001851115614b6457808604811115614b4057614b3f6149aa565b5b6001851615614b4f5780820291505b8081029050614b5d85614b0d565b9450614b24565b94509492505050565b600082614b7d5760019050614c39565b81614b8b5760009050614c39565b8160018114614ba15760028114614bab57614bda565b6001915050614c39565b60ff841115614bbd57614bbc6149aa565b5b8360020a915084821115614bd457614bd36149aa565b5b50614c39565b5060208310610133831016604e8410600b8410161715614c0f5782820a905083811115614c0a57614c096149aa565b5b614c39565b614c1c8484846001614b1a565b92509050818404811115614c3357614c326149aa565b5b81810290505b9392505050565b6000614c4b82613e45565b9150614c5683614138565b9250614c837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614b6d565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000614cc582613e45565b9150614cd083613e45565b9250828201905080821115614ce857614ce76149aa565b5b92915050565b6000614cf982613e45565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614d2b57614d2a6149aa565b5b600182019050919050565b7f4e6f7420656e6f75676820746f6b656e7320746f2061697264726f7000000000600082015250565b6000614d6c601c83613e84565b9150614d7782614d36565b602082019050919050565b60006020820190508181036000830152614d9b81614d5f565b9050919050565b6000614dad82613e45565b9150614db883613e45565b9250828203905081811115614dd057614dcf6149aa565b5b92915050565b7f50726f74656374696e6720436f6d6d756e6974792046756e6473206279204c6f60008201527f636b696e67204a61636b706f742046756e647300000000000000000000000000602082015250565b6000614e32603383613e84565b9150614e3d82614dd6565b604082019050919050565b60006020820190508181036000830152614e6181614e25565b9050919050565b600081905092915050565b50565b6000614e83600083614e68565b9150614e8e82614e73565b600082019050919050565b6000614ea482614e76565b9150819050919050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b6000614ee4601483613e84565b9150614eef82614eae565b602082019050919050565b60006020820190508181036000830152614f1381614ed7565b9050919050565b7f596f752063616e206e6f7420696e636c7564652074686f736500000000000000600082015250565b6000614f50601983613e84565b9150614f5b82614f1a565b602082019050919050565b60006020820190508181036000830152614f7f81614f43565b9050919050565b7f4e6f20686f6c6465727320617661696c61626c65000000000000000000000000600082015250565b6000614fbc601483613e84565b9150614fc782614f86565b602082019050919050565b60006020820190508181036000830152614feb81614faf565b9050919050565b7f496e76616c6964206e756d626572206f662077696e6e65727300000000000000600082015250565b6000615028601983613e84565b915061503382614ff2565b602082019050919050565b600060208201905081810360008301526150578161501b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b6150a86150a382613e45565b61508d565b82525050565b60006150ba8287615097565b6020820191506150ca8286615097565b6020820191506150da8285615097565b6020820191506150ea8284615097565b60208201915081905095945050505050565b600061510782613e45565b915061511283613e45565b92508261512257615121614a1b565b5b828206905092915050565b7f57696e6e65727320676574207468656972206a61636b706f7473000000000000600082015250565b6000615163601a83614e68565b915061516e8261512d565b601a82019050919050565b600061518482615156565b9150819050919050565b7f54686973206973206a75737420612070726f74656374696f2b6e2e204966207960008201527f6f752073656520796f752077616c6c657420696e207468652057696e6e696e6760208201527f206c6973742062757420646964206e6f7420726563656976652069742e20436860408201527f65636b2069662069742069732073656e6420746f206a61636b706f744665655760608201527f616c6c65742e2053656e642061206d65737361676520696e207468652067726f60808201527f757020616e642076657269667920796f75722077616c6c657420616e6420776560a08201527f2077696c6c2073656e6420796f757220736861726520616761696e2e0000000060c082015250565b60006152a860dc83614e68565b91506152b38261518e565b60dc82019050919050565b60006152c98261529b565b9150819050919050565b7f546865204a61636b706f742077696e6e65722067657473207468652072657374600082015250565b6000615309602083614e68565b9150615314826152d3565b602082019050919050565b600061532a826152fc565b9150819050919050565b600061533f826145af565b9050919050565b61534f81615334565b82525050565b600060208201905061536a6000830184615346565b92915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006153cc602183613e84565b91506153d782615370565b604082019050919050565b600060208201905081810360008301526153fb816153bf565b9050919050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b6000615438601483613e84565b915061544382615402565b602082019050919050565b600060208201905081810360008301526154678161542b565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006154a4601b83613e84565b91506154af8261546e565b602082019050919050565b600060208201905081810360008301526154d381615497565b9050919050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b6000615536603e83613e84565b9150615541826154da565b604082019050919050565b6000602082019050818103600083015261556581615529565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b60006155a2601183613e84565b91506155ad8261556c565b602082019050919050565b600060208201905081810360008301526155d181615595565b9050919050565b6000819050919050565b60006155fd6155f86155f3846155d8565b614583565b613e45565b9050919050565b61560d816155e2565b82525050565b600060a0820190506156286000830188613e4f565b6156356020830187615604565b818103604083015261564781866141fc565b9050615656606083018561410e565b6156636080830184613e4f565b969550505050505056fea26469706673582212209d72374d8f85bef6c7dba08f9b0e4da61045f73fe08cb86263b7811d269071d264736f6c63430008110033
Deployed Bytecode Sourcemap
5206:16050:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6841:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8379:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9161:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11576:212;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8109:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8869:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15431:528;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12741:196;;;;;;;;;;;;;:::i;:::-;;6235:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10478:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6197:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3163:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8203:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6390:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10342:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10205:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8969:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20429:761;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6804:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8549:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5670:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5609:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9946:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8465:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9055:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10691:877;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8289:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6754:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15123:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2956:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9822:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11796:231;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17271:3152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8799:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10068:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8660:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6279:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12661:72;;;;;;;;;;;;;:::i;:::-;;6112:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3058:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3389:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6723:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13245:268;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6153:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3274:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6841:54;;;;:::o;8379:80::-;8427:13;8451:5;;;;;;;;;;;;;;;;;8444:12;;8379:80;:::o;9161:216::-;9236:4;9288:6;9253:11;:23;9265:10;9253:23;;;;;;;;;;;;;;;:32;9277:7;9253:32;;;;;;;;;;;;;;;:41;;;;9331:7;9310:37;;9319:10;9310:37;;;9340:6;9310:37;;;;;;:::i;:::-;;;;;;;;9365:4;9358:11;;9161:216;;;;:::o;11576:212::-;2897:24;2910:10;2897:12;:24::i;:::-;2889:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;11666:5:::1;::::0;::::1;;;;;;;;11655:16;;:7;:16;;::::0;11647:98:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;11776:4;11756:10;:19;11767:7;11756:19;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;11576:212:::0;:::o;8109:88::-;8164:7;8182:12;;8175:19;;8109:88;:::o;8869:94::-;8929:4;8942:10;:19;8953:7;8942:19;;;;;;;;;;;;;;;;;;;;;;;;;8935:26;;8869:94;;;:::o;15431:528::-;15531:4;15574:1;15556:20;;:6;:20;;;15548:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;15658:1;15637:23;;:9;:23;;;15629:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15749:12;;15714:11;:19;15726:6;15714:19;;;;;;;;;;;;;;;:31;15734:10;15714:31;;;;;;;;;;;;;;;;:47;15711:181;;15811:69;15847:6;15811:69;;;;;;;;;;;;;;;;;:11;:19;15823:6;15811:19;;;;;;;;;;;;;;;:31;15831:10;15811:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;15777:11;:19;15789:6;15777:19;;;;;;;;;;;;;;;:31;15797:10;15777:31;;;;;;;;;;;;;;;:103;;;;15711:181;15911:40;15925:6;15933:9;15944:6;15911:13;:40::i;:::-;15904:47;;15431:528;;;;;:::o;12741:196::-;2807:19;2815:10;2807:7;:19::i;:::-;2799:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12815:5:::1;12803:17;;:8;;;;;;;;;;;:17;;;12795:26;;;::::0;::::1;;12847:5;12832:12;;:20;;;;;;;;;;;;;;;;;;12874:4;12863:8;;:15;;;;;;;;;;;;;;;;;;12896:33;12916:12;;;;;;;;;;;12896:33;;;;;;:::i;:::-;;;;;;;;12741:196::o:0;6235:37::-;;;;;;;;;;;;;:::o;10478:207::-;2897:24;2910:10;2897:12;:24::i;:::-;2889:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10553:15:::1;;;;;;;;;;;10552:16;10544:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;10640:4;10626:13;;:18;;;;;;;;;;;;;;;;;;10671:4;10655:15;;:20;;;;;;;;;;;;;;;;;;10478:207:::0;:::o;6197:31::-;;;;;;;;;;;;;:::o;3163:103::-;3218:4;3253:5;;;;;;;;;;;3242:16;;:7;:16;;;3235:23;;3163:103;;;:::o;8203:80::-;8255:5;5526:1;8264:16;;8203:80;:::o;6390:32::-;;;;:::o;10342:124::-;2897:24;2910:10;2897:12;:24::i;:::-;2889:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10454:4:::1;10442:7;10427:12;;:22;;;;:::i;:::-;10425:33;;;;:::i;:::-;10410:12;:48;;;;10342:124:::0;:::o;10205:129::-;2897:24;2910:10;2897:12;:24::i;:::-;2889:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10322:4:::1;10310:7;10295:12;;:22;;;;:::i;:::-;10293:33;;;;:::i;:::-;10275:15;:51;;;;10205:129:::0;:::o;8969:80::-;9014:16;9040:7;9033:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8969:80;:::o;20429:761::-;2807:19;2815:10;2807:7;:19::i;:::-;2799:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;20530:19:::1;20592:6;;:13;;20572:9;;:16;;:33;20564:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;20664:6;20660:159;20678:9;;:16;;20674:1;:20;20660:159;;;20715:11;5526:1;20742:2;:15;;;;:::i;:::-;20729:6;;20736:1;20729:9;;;;;;;:::i;:::-;;;;;;;;:29;;;;:::i;:::-;20715:43;;20801:6;20787:11;:20;;;;:::i;:::-;20773:34;;20700:119;20696:3;;;;;:::i;:::-;;;;20660:159;;;;20862:11;20837:21;20847:10;20837:9;:21::i;:::-;:36;;20829:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;20921:6;20917:266;20935:9;;:16;;20931:1;:20;20917:266;;;20972:11;5526:1;20999:2;:15;;;;:::i;:::-;20986:6;;20993:1;20986:9;;;;;;;:::i;:::-;;;;;;;;:29;;;;:::i;:::-;20972:43;;21057:6;21030:9;:23;21040:9;;21050:1;21040:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;21030:23;;;;;;;;;;;;;;;;:33;;;;;;;:::i;:::-;;;;;;;;21103:6;21078:9;:21;21088:10;21078:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;21150:9;;21160:1;21150:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;21129:42;;21138:10;21129:42;;;21164:6;21129:42;;;;;;:::i;:::-;;;;;;;;20957:226;20953:3;;;;;:::i;:::-;;;;20917:266;;;;20519:671;20429:761:::0;;;;:::o;6804:30::-;;;;;;;;;;;;;:::o;8549:105::-;8615:7;8633:9;:18;8643:7;8633:18;;;;;;;;;;;;;;;;8626:25;;8549:105;;;:::o;5670:62::-;;;;:::o;5609:51::-;;;;:::o;9946:114::-;2897:24;2910:10;2897:12;:24::i;:::-;2889:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10041:11:::1;10024:14;:28;;;;9946:114:::0;:::o;8465:78::-;8517:7;8535:5;;;;;;;;;;;8528:12;;8465:78;:::o;9055:100::-;9106:24;9140:13;9133:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9055:100;:::o;10691:877::-;2807:19;2815:10;2807:7;:19::i;:::-;2799:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;10766:19:::1;;;;;;;;;;;10765:20;10757:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;10852:17;10872:43;10911:3;10872:34;10898:7;10872:21;:25;;:34;;;;:::i;:::-;:38;;:43;;;;:::i;:::-;10852:63;;10940:10;10930:9;:20;10926:124;;;10978:13;;;;;;;;;;;:60;;11007:31;11034:3;11007:22;11021:7;11007:9;:13;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;10978:60;;;10994:10;10978:60;10966:72;;10926:124;11061:11;11085:16;;;;;;;;;;;11077:30;;11115:9;11131:6;11077:65;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11060:82;;;11161:6;11153:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11225:6;11203:19;;:28;;;;;;;;;;;;;;;;;;10746:822;;10691:877:::0;:::o;8289:84::-;8339:13;8363:7;;;;;;;;;;;;;;;;;8356:14;;8289:84;:::o;6754:19::-;;;;;;;;;;;;;:::o;15123:300::-;15203:4;15233:10;15224:19;;:5;;;;;;;;;;:19;;;15220:196;;15266:45;15281:10;15293:9;15304:6;15266:14;:45::i;:::-;15259:52;;;;15220:196;15360:44;15374:10;15386:9;15397:6;15360:13;:44::i;:::-;15353:51;;15123:300;;;;;:::o;2956:94::-;2807:19;2815:10;2807:7;:19::i;:::-;2799:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3038:4:::1;3016:14:::0;:19:::1;3031:3;3016:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;2956:94:::0;:::o;9822:112::-;2897:24;2910:10;2897:12;:24::i;:::-;2889:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;9915:11:::1;9899:13;:27;;;;9822:112:::0;:::o;11796:231::-;2897:24;2910:10;2897:12;:24::i;:::-;2889:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;11886:4:::1;;;;;;;;;;;11875:15;;:7;:15;;;;:34;;;;;11905:4;;;;;;;;;;;11894:15;;:7;:15;;;;11875:34;:53;;;;;11924:4;;;;;;;;;;;11913:15;;:7;:15;;;;11875:53;:78;;;;;11951:1;11932:21;;:7;:21;;;;11875:78;11867:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;12014:5;11994:10;:19;12005:7;11994:19;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;11796:231:::0;:::o;17271:3152::-;2807:19;2815:10;2807:7;:19::i;:::-;2799:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;17391:1:::1;17374:7;:14;;;;:18;17366:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;17454:1;17436:15;:19;:56;;;;;17478:7;:14;;;;17459:15;:33;;17436:56;17428:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;17553:5;17533:19;;:25;;;;;;;;;;;;;;;;;;17571:30;17618:7;:14;;;;17604:29;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17571:62;;17644:24;17783:9:::0;17778:285:::1;17802:7;:14;;;;17798:1;:18;17778:285;;;17838:14;17855:7;17863:1;17855:10;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17838:27;;17885:10;:18;17896:6;17885:18;;;;;;;;;;;;;;;;;;;;;;;;;17880:172;;17943:9;:17;17953:6;17943:17;;;;;;;;;;;;;;;;17924:13;17938:1;17924:16;;;;;;;;:::i;:::-;;;;;;;:36;;;::::0;::::1;17998:38;18019:13;18033:1;18019:16;;;;;;;;:::i;:::-;;;;;;;;17998;:20;;:38;;;;:::i;:::-;17979:57;;17880:172;17823:240;17818:3;;;;;:::i;:::-;;;;17778:285;;;;18075:32;18132:15;18110:38;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18075:73;;18159:15;18177:47;18220:3;18177:38;18203:11;18177:21;:25;;:38;;;;:::i;:::-;:42;;:47;;;;:::i;:::-;18159:65;;18235:24;18262:7;18235:34;;18280:12;18295:29;18307:16;18295:7;:11;;:29;;;;:::i;:::-;18280:44;;18507:7;18487:17;;:27;;;;:::i;:::-;18467:17;:47;;;;18540:9;18535:1366;18559:15;18555:1;:19;18535:1366;;;18610:21;18717:16;18669:15;18686:16;18704:4;18710:1;18652:60;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;18642:71;;;;;;18634:80;;:99;;;;:::i;:::-;18610:123;;18748:29;18803:9:::0;18798:1092:::1;18822:7;:14;;;;18818:1;:18;18798:1092;;;18862:14;18879:7;18887:1;18879:10;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18862:27;;18913:10;:18;18924:6;18913:18;;;;;;;;;;;;;;;;;;;;;;;;;18908:967;;18980:43;19006:13;19020:1;19006:16;;;;;;;;:::i;:::-;;;;;;;;18980:21;:25;;:43;;;;:::i;:::-;18956:67;;19068:21;19052:13;:37;19048:808;;;19139:6;19118:7;19126:1;19118:10;;;;;;;;:::i;:::-;;;;;;;:28;;;;;;;;;::::0;::::1;19173:13;19189:23;19210:1;19189:16;:20;;:23;;;;:::i;:::-;19173:39;;19240:12;19258:7;19266:1;19258:10;;;;;;;;:::i;:::-;;;;;;;;:15;;19281:5;19293:6;19258:72;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19239:91;;;19362:7;19357:371;;19403:11;19427:16;;;;;;;;;;;19419:30;;19457:5;19469:6;19419:281;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19402:298;;;19371:357;19357:371;19773:27;19794:5;19773:16;:20;;:27;;;;:::i;:::-;19754:46;;19827:5;;;;;19048:808;18908:967;18843:1047;18838:3;;;;;:::i;:::-;;;;18798:1092;;;;18581:1320;;18576:3;;;;;:::i;:::-;;;;18535:1366;;;;19912:12;19930:7;19938:1;19930:10;;;;;;;;:::i;:::-;;;;;;;;:15;;19953:16;19976:6;19930:89;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19911:108;;;20035:7;20030:350;;20060:11;20084:16;;;;;;;;;;;20076:30;;20114:16;20137:6;20076:292;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20059:309;;;20044:336;20030:350;20406:7;20392:13;:21;;;;;;;;;;;;:::i;:::-;;17355:3068;;;;;;;17271:3152:::0;;:::o;8799:64::-;8841:7;8857:4;;;;;;;;;;;8850:11;;8799:64;:::o;10068:131::-;2897:24;2910:10;2897:12;:24::i;:::-;2889:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10174:17:::1;10155:16;;:36;;;;;;;;;;;;;;;;;;10068:131:::0;:::o;8660:133::-;8744:7;8762:11;:19;8774:6;8762:19;;;;;;;;;;;;;;;:28;8782:7;8762:28;;;;;;;;;;;;;;;;8755:35;;8660:133;;;;:::o;6279:31::-;;;;;;;;;;;;;:::o;12661:72::-;2897:24;2910:10;2897:12;:24::i;:::-;2889:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;12720:5:::1;12711:6;;:14;;;;;;;;;;;;;;;;;;12661:72::o:0;6112:34::-;;;;:::o;3058:97::-;2807:19;2815:10;2807:7;:19::i;:::-;2799:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3142:5:::1;3120:14;:19;3135:3;3120:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3058:97:::0;:::o;3389:173::-;2807:19;2815:10;2807:7;:19::i;:::-;2799:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3473:3:::1;3465:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;3509:4;3487:14:::0;:19:::1;3502:3;3487:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3529:25;3550:3;3529:25;;;;;;:::i;:::-;;;;;;;;3389:173:::0;:::o;6723:24::-;;;;;;;;;;;;;:::o;13245:268::-;2897:24;2910:10;2897:12;:24::i;:::-;2889:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;13383:8:::1;13369:11;;:22;;;;;;;;;;;;;;;;;;5526:1;13432:2;:15;;;;:::i;:::-;13418:10;:30;;;;:::i;:::-;13402:13;:46;;;;13471:6;13459:9;:18;;;;13500:5;13488:9;;:17;;;;;;;;;;;;;;;;;;13245:268:::0;;;;:::o;6153:35::-;;;;:::o;3274:107::-;3330:4;3354:14;:19;3369:3;3354:19;;;;;;;;;;;;;;;;;;;;;;;;;3347:26;;3274:107;;;:::o;1137:132::-;1195:7;1222:39;1226:1;1229;1222:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1215:46;;1137:132;;;;:::o;881:250::-;939:7;968:1;963;:6;959:47;;993:1;986:8;;;;959:47;1018:9;1034:1;1030;:5;;;;:::i;:::-;1018:17;;1063:1;1058;1054;:5;;;;:::i;:::-;:10;1046:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1122:1;1115:8;;;881:250;;;;;:::o;683:192::-;769:7;802:1;797;:6;;805:12;789:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;829:9;845:1;841;:5;;;;:::i;:::-;829:17;;866:1;859:8;;;683:192;;;;;:::o;15967:1298::-;16059:4;16104:1;16086:20;;:6;:20;;;16078:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;16188:1;16167:23;;:9;:23;;;16159:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16249:14;:22;16264:6;16249:22;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;16275:14;:25;16290:9;16275:25;;;;;;;;;;;;;;;;;;;;;;;;;16249:51;16245:131;;;16323:41;16338:6;16346:9;16357:6;16323:14;:41::i;:::-;16316:48;;;;16245:131;16391:6;;;;;;;;;;;16388:63;;;16407:41;16422:6;16430:9;16441:6;16407:14;:41::i;:::-;16400:48;;;;16388:63;16467:14;:22;16482:6;16467:22;;;;;;;;;;;;;;;;;;;;;;;;;16466:23;:53;;;;;16494:14;:25;16509:9;16494:25;;;;;;;;;;;;;;;;;;;;;;;;;16493:26;16466:53;16463:136;;;16559:4;16543:20;;:12;;;;;;;;;;;:20;;;16535:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;16463:136;16623:6;;;;;;;;;;;16619:76;;;16645:38;16657:6;16665:9;16676:6;16645:11;:38::i;:::-;16619:76;16712:34;16728:6;16736:9;16712:15;:34::i;:::-;16709:60;;;16749:17;16759:6;16749:9;:17::i;:::-;16709:60;16809:53;16831:6;16809:53;;;;;;;;;;;;;;;;;:9;:17;16819:6;16809:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;16789:9;:17;16799:6;16789:17;;;;;;;;;;;;;;;:73;;;;16873:22;16912:4;;;;;;;;;;;16899:17;;:9;:17;;;:35;;;;16930:4;;;;;;;;;;;16920:14;;:6;:14;;;16899:35;16898:83;;16975:6;16898:83;;;16938:34;16946:6;16954:9;16965:6;16938:7;:34::i;:::-;16898:83;16873:108;;17030:1;17006:9;:20;17016:9;17006:20;;;;;;;;;;;;;;;;:25;17002:81;;17048:7;17061:9;17048:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17002:81;17126:40;17151:14;17126:9;:20;17136:9;17126:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;17103:9;:20;17113:9;17103:20;;;;;;;;;;;;;;;:63;;;;17209:9;17192:43;;17201:6;17192:43;;;17220:14;17192:43;;;;;;:::i;:::-;;;;;;;;17253:4;17246:11;;;15967:1298;;;;;;:::o;9387:427::-;9480:4;9517:53;9539:6;9517:53;;;;;;;;;;;;;;;;;:9;:17;9527:6;9517:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;9497:9;:17;9507:6;9497:17;;;;;;;;;;;;;;;:73;;;;9609:1;9585:9;:20;9595:9;9585:20;;;;;;;;;;;;;;;;:25;9581:81;;9627:7;9640:9;9627:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9581:81;9695:32;9720:6;9695:9;:20;9705:9;9695:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;9672:9;:20;9682:9;9672:20;;;;;;;;;;;;;;;:55;;;;9766:9;9749:35;;9758:6;9749:35;;;9777:6;9749:35;;;;;;:::i;:::-;;;;;;;;9802:4;9795:11;;9387:427;;;;;:::o;354:181::-;412:7;432:9;448:1;444;:5;;;;:::i;:::-;432:17;;473:1;468;:6;;460:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;526:1;519:8;;;354:181;;;;:::o;541:136::-;599:7;626:43;630:1;633;626:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;619:50;;541:136;;;;:::o;1275:345::-;1361:7;1460:1;1456;:5;1463:12;1448:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1487:9;1503:1;1499;:5;;;;:::i;:::-;1487:17;;1611:1;1604:8;;;1275:345;;;;;:::o;12035:618::-;12136:14;:22;12151:6;12136:22;;;;;;;;;;;;;;;;;;;;;;;;;12135:23;:53;;;;;12183:4;12162:26;;:9;:26;;;;12135:53;:80;;;;;12210:4;12192:23;;:6;:23;;;;12135:80;:125;;;;;12255:4;;;;;;;;;;;12234:26;;:9;:26;;;;12135:125;:146;;;;;12277:4;;;;;;;;;;;12264:17;;:9;:17;;;;12135:146;:179;;;;;12298:16;;;;;;;;;;;12285:29;;:9;:29;;;;12135:179;12131:393;;;12334:18;12355:20;12365:9;12355;:20::i;:::-;12334:41;;12427:15;;12416:6;12403:10;:19;;;;:::i;:::-;12402:40;;12394:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;12315:209;12131:393;12554:12;;12544:6;:22;;:49;;;;12570:15;:23;12586:6;12570:23;;;;;;;;;;;;;;;;;;;;;;;;;12544:49;:79;;;;12597:15;:26;12613:9;12597:26;;;;;;;;;;;;;;;;;;;;;;;;;12544:79;12536:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;12035:618;;;:::o;13525:410::-;13608:4;13627:15;13681;13645:33;13662:15;;13645:12;;:16;;:33;;;;:::i;:::-;:51;13627:69;;13731:4;;;;;;;;;;;13718:17;;:9;:17;;;:40;;;;;13748:10;13718:40;:60;;;;;13772:6;;;;;;;;;;;13771:7;13718:60;:84;;;;;13791:11;;;;;;;;;;;13718:84;:138;;;;;13843:13;;13815:9;:24;13833:4;13815:24;;;;;;;;;;;;;;;;:41;;13718:138;:209;;;;;13897:30;13923:3;13897:21;13908:9;;13897:6;:10;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;13869:9;:24;13887:4;13869:24;;;;;;;;;;;;;;;;:58;;13718:209;13711:216;;;13525:410;;;;:::o;14405:710::-;7010:4;7001:6;;:13;;;;;;;;;;;;;;;;;;14472:14:::1;14490:9;;;;;;;;;;;14489:61;;14537:13;;14489:61;;;14503:31;14530:3;14503:22;14515:9;;14503:7;:11;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;14489:61;14472:78;;14573:13;;14564:6;:22;14563:58;;14608:13;;14599:22;;;14563:58;;;14590:6;14563:58;;14634:21;14672:1;14658:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14634:40;;14703:4;14685;14690:1;14685:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;14729:42;14719:4;14724:1;14719:7;;;;;;;;:::i;:::-;;;;;;;:52;;;;;;;;;::::0;::::1;14856:6;;;;;;;;;;;:57;;;14928:6;14949:1;14965:4;14992;15012:15;14856:182;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15051:15;15092;15077:12;:30;;;;14459:656;;;7028:5:::0;7019:6;;:14;;;;;;;;;;;;;;;;;;14405:710;:::o;13943:454::-;14029:7;14051:17;14107:4;;;;;;;;;;;14094:17;;:9;:17;;;14093:52;;14132:13;;14093:52;;;14115:14;;14093:52;14081:64;;14158:17;14178:31;14204:4;14178:21;14189:9;14178:6;:10;;:21;;;;:::i;:::-;:25;;:31;;;;:::i;:::-;14158:51;;14249:39;14278:9;14249;:24;14267:4;14249:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;14222:9;:24;14240:4;14222:24;;;;;;;;;;;;;;;:66;;;;14331:4;14306:42;;14315:6;14306:42;;;14338:9;14306:42;;;;;;:::i;:::-;;;;;;;;14368:21;14379:9;14368:6;:10;;:21;;;;:::i;:::-;14361:28;;;;13943:454;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::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:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1865:117::-;1974:1;1971;1964:12;1988:117;2097:1;2094;2087:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:329::-;3857:6;3906:2;3894:9;3885:7;3881:23;3877:32;3874:119;;;3912:79;;:::i;:::-;3874:119;4032:1;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4003:117;3798:329;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:116::-;4828:21;4843:5;4828:21;:::i;:::-;4821:5;4818:32;4808:60;;4864:1;4861;4854:12;4808:60;4758:116;:::o;4880:133::-;4923:5;4961:6;4948:20;4939:29;;4977:30;5001:5;4977:30;:::i;:::-;4880:133;;;;:::o;5019:323::-;5075:6;5124:2;5112:9;5103:7;5099:23;5095:32;5092:119;;;5130:79;;:::i;:::-;5092:119;5250:1;5275:50;5317:7;5308:6;5297:9;5293:22;5275:50;:::i;:::-;5265:60;;5221:114;5019:323;;;;:::o;5348:118::-;5435:24;5453:5;5435:24;:::i;:::-;5430:3;5423:37;5348:118;;:::o;5472:222::-;5565:4;5603:2;5592:9;5588:18;5580:26;;5616:71;5684:1;5673:9;5669:17;5660:6;5616:71;:::i;:::-;5472:222;;;;:::o;5700:86::-;5735:7;5775:4;5768:5;5764:16;5753:27;;5700:86;;;:::o;5792:112::-;5875:22;5891:5;5875:22;:::i;:::-;5870:3;5863:35;5792:112;;:::o;5910:214::-;5999:4;6037:2;6026:9;6022:18;6014:26;;6050:67;6114:1;6103:9;6099:17;6090:6;6050:67;:::i;:::-;5910:214;;;;:::o;6130:329::-;6189:6;6238:2;6226:9;6217:7;6213:23;6209:32;6206:119;;;6244:79;;:::i;:::-;6206:119;6364:1;6389:53;6434:7;6425:6;6414:9;6410:22;6389:53;:::i;:::-;6379:63;;6335:117;6130:329;;;;:::o;6465:114::-;6532:6;6566:5;6560:12;6550:22;;6465:114;;;:::o;6585:184::-;6684:11;6718:6;6713:3;6706:19;6758:4;6753:3;6749:14;6734:29;;6585:184;;;;:::o;6775:132::-;6842:4;6865:3;6857:11;;6895:4;6890:3;6886:14;6878:22;;6775:132;;;:::o;6913:108::-;6990:24;7008:5;6990:24;:::i;:::-;6985:3;6978:37;6913:108;;:::o;7027:179::-;7096:10;7117:46;7159:3;7151:6;7117:46;:::i;:::-;7195:4;7190:3;7186:14;7172:28;;7027:179;;;;:::o;7212:113::-;7282:4;7314;7309:3;7305:14;7297:22;;7212:113;;;:::o;7361:732::-;7480:3;7509:54;7557:5;7509:54;:::i;:::-;7579:86;7658:6;7653:3;7579:86;:::i;:::-;7572:93;;7689:56;7739:5;7689:56;:::i;:::-;7768:7;7799:1;7784:284;7809:6;7806:1;7803:13;7784:284;;;7885:6;7879:13;7912:63;7971:3;7956:13;7912:63;:::i;:::-;7905:70;;7998:60;8051:6;7998:60;:::i;:::-;7988:70;;7844:224;7831:1;7828;7824:9;7819:14;;7784:284;;;7788:14;8084:3;8077:10;;7485:608;;;7361:732;;;;:::o;8099:373::-;8242:4;8280:2;8269:9;8265:18;8257:26;;8329:9;8323:4;8319:20;8315:1;8304:9;8300:17;8293:47;8357:108;8460:4;8451:6;8357:108;:::i;:::-;8349:116;;8099:373;;;;:::o;8478:117::-;8587:1;8584;8577:12;8601:117;8710:1;8707;8700:12;8724:117;8833:1;8830;8823:12;8864:568;8937:8;8947:6;8997:3;8990:4;8982:6;8978:17;8974:27;8964:122;;9005:79;;:::i;:::-;8964:122;9118:6;9105:20;9095:30;;9148:18;9140:6;9137:30;9134:117;;;9170:79;;:::i;:::-;9134:117;9284:4;9276:6;9272:17;9260:29;;9338:3;9330:4;9322:6;9318:17;9308:8;9304:32;9301:41;9298:128;;;9345:79;;:::i;:::-;9298:128;8864:568;;;;;:::o;9455:::-;9528:8;9538:6;9588:3;9581:4;9573:6;9569:17;9565:27;9555:122;;9596:79;;:::i;:::-;9555:122;9709:6;9696:20;9686:30;;9739:18;9731:6;9728:30;9725:117;;;9761:79;;:::i;:::-;9725:117;9875:4;9867:6;9863:17;9851:29;;9929:3;9921:4;9913:6;9909:17;9899:8;9895:32;9892:41;9889:128;;;9936:79;;:::i;:::-;9889:128;9455:568;;;;;:::o;10029:934::-;10151:6;10159;10167;10175;10224:2;10212:9;10203:7;10199:23;10195:32;10192:119;;;10230:79;;:::i;:::-;10192:119;10378:1;10367:9;10363:17;10350:31;10408:18;10400:6;10397:30;10394:117;;;10430:79;;:::i;:::-;10394:117;10543:80;10615:7;10606:6;10595:9;10591:22;10543:80;:::i;:::-;10525:98;;;;10321:312;10700:2;10689:9;10685:18;10672:32;10731:18;10723:6;10720:30;10717:117;;;10753:79;;:::i;:::-;10717:117;10866:80;10938:7;10929:6;10918:9;10914:22;10866:80;:::i;:::-;10848:98;;;;10643:313;10029:934;;;;;;;:::o;10969:122::-;11044:6;11078:5;11072:12;11062:22;;10969:122;;;:::o;11097:192::-;11204:11;11238:6;11233:3;11226:19;11278:4;11273:3;11269:14;11254:29;;11097:192;;;;:::o;11295:140::-;11370:4;11393:3;11385:11;;11423:4;11418:3;11414:14;11406:22;;11295:140;;;:::o;11441:104::-;11486:7;11515:24;11533:5;11515:24;:::i;:::-;11504:35;;11441:104;;;:::o;11551:132::-;11644:32;11670:5;11644:32;:::i;:::-;11639:3;11632:45;11551:132;;:::o;11689:211::-;11774:10;11795:62;11853:3;11845:6;11795:62;:::i;:::-;11889:4;11884:3;11880:14;11866:28;;11689:211;;;;:::o;11906:121::-;11984:4;12016;12011:3;12007:14;11999:22;;11906:121;;;:::o;12079:796::-;12214:3;12243:62;12299:5;12243:62;:::i;:::-;12321:94;12408:6;12403:3;12321:94;:::i;:::-;12314:101;;12439:64;12497:5;12439:64;:::i;:::-;12526:7;12557:1;12542:308;12567:6;12564:1;12561:13;12542:308;;;12643:6;12637:13;12670:79;12745:3;12730:13;12670:79;:::i;:::-;12663:86;;12772:68;12833:6;12772:68;:::i;:::-;12762:78;;12602:248;12589:1;12586;12582:9;12577:14;;12542:308;;;12546:14;12866:3;12859:10;;12219:656;;;12079:796;;;;:::o;12881:405::-;13040:4;13078:2;13067:9;13063:18;13055:26;;13127:9;13121:4;13117:20;13113:1;13102:9;13098:17;13091:47;13155:124;13274:4;13265:6;13155:124;:::i;:::-;13147:132;;12881:405;;;;:::o;13292:474::-;13360:6;13368;13417:2;13405:9;13396:7;13392:23;13388:32;13385:119;;;13423:79;;:::i;:::-;13385:119;13543:1;13568:53;13613:7;13604:6;13593:9;13589:22;13568:53;:::i;:::-;13558:63;;13514:117;13670:2;13696:53;13741:7;13732:6;13721:9;13717:22;13696:53;:::i;:::-;13686:63;;13641:118;13292:474;;;;;:::o;13772:::-;13840:6;13848;13897:2;13885:9;13876:7;13872:23;13868:32;13865:119;;;13903:79;;:::i;:::-;13865:119;14023:1;14048:53;14093:7;14084:6;14073:9;14069:22;14048:53;:::i;:::-;14038:63;;13994:117;14150:2;14176:53;14221:7;14212:6;14201:9;14197:22;14176:53;:::i;:::-;14166:63;;14121:118;13772:474;;;;;:::o;14252:138::-;14333:32;14359:5;14333:32;:::i;:::-;14326:5;14323:43;14313:71;;14380:1;14377;14370:12;14313:71;14252:138;:::o;14396:155::-;14450:5;14488:6;14475:20;14466:29;;14504:41;14539:5;14504:41;:::i;:::-;14396:155;;;;:::o;14557:345::-;14624:6;14673:2;14661:9;14652:7;14648:23;14644:32;14641:119;;;14679:79;;:::i;:::-;14641:119;14799:1;14824:61;14877:7;14868:6;14857:9;14853:22;14824:61;:::i;:::-;14814:71;;14770:125;14557:345;;;;:::o;14908:60::-;14936:3;14957:5;14950:12;;14908:60;;;:::o;14974:142::-;15024:9;15057:53;15075:34;15084:24;15102:5;15084:24;:::i;:::-;15075:34;:::i;:::-;15057:53;:::i;:::-;15044:66;;14974:142;;;:::o;15122:126::-;15172:9;15205:37;15236:5;15205:37;:::i;:::-;15192:50;;15122:126;;;:::o;15254:144::-;15322:9;15355:37;15386:5;15355:37;:::i;:::-;15342:50;;15254:144;;;:::o;15404:167::-;15509:55;15558:5;15509:55;:::i;:::-;15504:3;15497:68;15404:167;;:::o;15577:258::-;15688:4;15726:2;15715:9;15711:18;15703:26;;15739:89;15825:1;15814:9;15810:17;15801:6;15739:89;:::i;:::-;15577:258;;;;:::o;15841:753::-;15921:6;15929;15937;15945;15994:3;15982:9;15973:7;15969:23;15965:33;15962:120;;;16001:79;;:::i;:::-;15962:120;16121:1;16146:50;16188:7;16179:6;16168:9;16164:22;16146:50;:::i;:::-;16136:60;;16092:114;16245:2;16271:53;16316:7;16307:6;16296:9;16292:22;16271:53;:::i;:::-;16261:63;;16216:118;16373:2;16399:53;16444:7;16435:6;16424:9;16420:22;16399:53;:::i;:::-;16389:63;;16344:118;16501:2;16527:50;16569:7;16560:6;16549:9;16545:22;16527:50;:::i;:::-;16517:60;;16472:115;15841:753;;;;;;;:::o;16600:161::-;16740:13;16736:1;16728:6;16724:14;16717:37;16600:161;:::o;16767:366::-;16909:3;16930:67;16994:2;16989:3;16930:67;:::i;:::-;16923:74;;17006:93;17095:3;17006:93;:::i;:::-;17124:2;17119:3;17115:12;17108:19;;16767:366;;;:::o;17139:419::-;17305:4;17343:2;17332:9;17328:18;17320:26;;17392:9;17386:4;17382:20;17378:1;17367:9;17363:17;17356:47;17420:131;17546:4;17420:131;:::i;:::-;17412:139;;17139:419;;;:::o;17564:297::-;17704:34;17700:1;17692:6;17688:14;17681:58;17777:34;17772:2;17764:6;17760:15;17753:59;17846:7;17841:2;17833:6;17829:15;17822:32;17564:297;:::o;17867:366::-;18009:3;18030:67;18094:2;18089:3;18030:67;:::i;:::-;18023:74;;18106:93;18195:3;18106:93;:::i;:::-;18224:2;18219:3;18215:12;18208:19;;17867:366;;;:::o;18239:419::-;18405:4;18443:2;18432:9;18428:18;18420:26;;18492:9;18486:4;18482:20;18478:1;18467:9;18463:17;18456:47;18520:131;18646:4;18520:131;:::i;:::-;18512:139;;18239:419;;;:::o;18664:224::-;18804:34;18800:1;18792:6;18788:14;18781:58;18873:7;18868:2;18860:6;18856:15;18849:32;18664:224;:::o;18894:366::-;19036:3;19057:67;19121:2;19116:3;19057:67;:::i;:::-;19050:74;;19133:93;19222:3;19133:93;:::i;:::-;19251:2;19246:3;19242:12;19235:19;;18894:366;;;:::o;19266:419::-;19432:4;19470:2;19459:9;19455:18;19447:26;;19519:9;19513:4;19509:20;19505:1;19494:9;19490:17;19483:47;19547:131;19673:4;19547:131;:::i;:::-;19539:139;;19266:419;;;:::o;19691:222::-;19831:34;19827:1;19819:6;19815:14;19808:58;19900:5;19895:2;19887:6;19883:15;19876:30;19691:222;:::o;19919:366::-;20061:3;20082:67;20146:2;20141:3;20082:67;:::i;:::-;20075:74;;20158:93;20247:3;20158:93;:::i;:::-;20276:2;20271:3;20267:12;20260:19;;19919:366;;;:::o;20291:419::-;20457:4;20495:2;20484:9;20480:18;20472:26;;20544:9;20538:4;20534:20;20530:1;20519:9;20515:17;20508:47;20572:131;20698:4;20572:131;:::i;:::-;20564:139;;20291:419;;;:::o;20716:156::-;20856:8;20852:1;20844:6;20840:14;20833:32;20716:156;:::o;20878:365::-;21020:3;21041:66;21105:1;21100:3;21041:66;:::i;:::-;21034:73;;21116:93;21205:3;21116:93;:::i;:::-;21234:2;21229:3;21225:12;21218:19;;20878:365;;;:::o;21249:419::-;21415:4;21453:2;21442:9;21438:18;21430:26;;21502:9;21496:4;21492:20;21488:1;21477:9;21473:17;21466:47;21530:131;21656:4;21530:131;:::i;:::-;21522:139;;21249:419;;;:::o;21674:229::-;21814:34;21810:1;21802:6;21798:14;21791:58;21883:12;21878:2;21870:6;21866:15;21859:37;21674:229;:::o;21909:366::-;22051:3;22072:67;22136:2;22131:3;22072:67;:::i;:::-;22065:74;;22148:93;22237:3;22148:93;:::i;:::-;22266:2;22261:3;22257:12;22250:19;;21909:366;;;:::o;22281:419::-;22447:4;22485:2;22474:9;22470:18;22462:26;;22534:9;22528:4;22524:20;22520:1;22509:9;22505:17;22498:47;22562:131;22688:4;22562:131;:::i;:::-;22554:139;;22281:419;;;:::o;22706:180::-;22754:77;22751:1;22744:88;22851:4;22848:1;22841:15;22875:4;22872:1;22865:15;22892:410;22932:7;22955:20;22973:1;22955:20;:::i;:::-;22950:25;;22989:20;23007:1;22989:20;:::i;:::-;22984:25;;23044:1;23041;23037:9;23066:30;23084:11;23066:30;:::i;:::-;23055:41;;23245:1;23236:7;23232:15;23229:1;23226:22;23206:1;23199:9;23179:83;23156:139;;23275:18;;:::i;:::-;23156:139;22940:362;22892:410;;;;:::o;23308:180::-;23356:77;23353:1;23346:88;23453:4;23450:1;23443:15;23477:4;23474:1;23467:15;23494:185;23534:1;23551:20;23569:1;23551:20;:::i;:::-;23546:25;;23585:20;23603:1;23585:20;:::i;:::-;23580:25;;23624:1;23614:35;;23629:18;;:::i;:::-;23614:35;23671:1;23668;23664:9;23659:14;;23494:185;;;;:::o;23685:227::-;23825:34;23821:1;23813:6;23809:14;23802:58;23894:10;23889:2;23881:6;23877:15;23870:35;23685:227;:::o;23918:366::-;24060:3;24081:67;24145:2;24140:3;24081:67;:::i;:::-;24074:74;;24157:93;24246:3;24157:93;:::i;:::-;24275:2;24270:3;24266:12;24259:19;;23918:366;;;:::o;24290:419::-;24456:4;24494:2;24483:9;24479:18;24471:26;;24543:9;24537:4;24533:20;24529:1;24518:9;24514:17;24507:47;24571:131;24697:4;24571:131;:::i;:::-;24563:139;;24290:419;;;:::o;24715:102::-;24757:8;24804:5;24801:1;24797:13;24776:34;;24715:102;;;:::o;24823:848::-;24884:5;24891:4;24915:6;24906:15;;24939:5;24930:14;;24953:712;24974:1;24964:8;24961:15;24953:712;;;25069:4;25064:3;25060:14;25054:4;25051:24;25048:50;;;25078:18;;:::i;:::-;25048:50;25128:1;25118:8;25114:16;25111:451;;;25543:4;25536:5;25532:16;25523:25;;25111:451;25593:4;25587;25583:15;25575:23;;25623:32;25646:8;25623:32;:::i;:::-;25611:44;;24953:712;;;24823:848;;;;;;;:::o;25677:1073::-;25731:5;25922:8;25912:40;;25943:1;25934:10;;25945:5;;25912:40;25971:4;25961:36;;25988:1;25979:10;;25990:5;;25961:36;26057:4;26105:1;26100:27;;;;26141:1;26136:191;;;;26050:277;;26100:27;26118:1;26109:10;;26120:5;;;26136:191;26181:3;26171:8;26168:17;26165:43;;;26188:18;;:::i;:::-;26165:43;26237:8;26234:1;26230:16;26221:25;;26272:3;26265:5;26262:14;26259:40;;;26279:18;;:::i;:::-;26259:40;26312:5;;;26050:277;;26436:2;26426:8;26423:16;26417:3;26411:4;26408:13;26404:36;26386:2;26376:8;26373:16;26368:2;26362:4;26359:12;26355:35;26339:111;26336:246;;;26492:8;26486:4;26482:19;26473:28;;26527:3;26520:5;26517:14;26514:40;;;26534:18;;:::i;:::-;26514:40;26567:5;;26336:246;26607:42;26645:3;26635:8;26629:4;26626:1;26607:42;:::i;:::-;26592:57;;;;26681:4;26676:3;26672:14;26665:5;26662:25;26659:51;;;26690:18;;:::i;:::-;26659:51;26739:4;26732:5;26728:16;26719:25;;25677:1073;;;;;;:::o;26756:281::-;26814:5;26838:23;26856:4;26838:23;:::i;:::-;26830:31;;26882:25;26898:8;26882:25;:::i;:::-;26870:37;;26926:104;26963:66;26953:8;26947:4;26926:104;:::i;:::-;26917:113;;26756:281;;;;:::o;27043:180::-;27091:77;27088:1;27081:88;27188:4;27185:1;27178:15;27212:4;27209:1;27202:15;27229:191;27269:3;27288:20;27306:1;27288:20;:::i;:::-;27283:25;;27322:20;27340:1;27322:20;:::i;:::-;27317:25;;27365:1;27362;27358:9;27351:16;;27386:3;27383:1;27380:10;27377:36;;;27393:18;;:::i;:::-;27377:36;27229:191;;;;:::o;27426:233::-;27465:3;27488:24;27506:5;27488:24;:::i;:::-;27479:33;;27534:66;27527:5;27524:77;27521:103;;27604:18;;:::i;:::-;27521:103;27651:1;27644:5;27640:13;27633:20;;27426:233;;;:::o;27665:178::-;27805:30;27801:1;27793:6;27789:14;27782:54;27665:178;:::o;27849:366::-;27991:3;28012:67;28076:2;28071:3;28012:67;:::i;:::-;28005:74;;28088:93;28177:3;28088:93;:::i;:::-;28206:2;28201:3;28197:12;28190:19;;27849:366;;;:::o;28221:419::-;28387:4;28425:2;28414:9;28410:18;28402:26;;28474:9;28468:4;28464:20;28460:1;28449:9;28445:17;28438:47;28502:131;28628:4;28502:131;:::i;:::-;28494:139;;28221:419;;;:::o;28646:194::-;28686:4;28706:20;28724:1;28706:20;:::i;:::-;28701:25;;28740:20;28758:1;28740:20;:::i;:::-;28735:25;;28784:1;28781;28777:9;28769:17;;28808:1;28802:4;28799:11;28796:37;;;28813:18;;:::i;:::-;28796:37;28646:194;;;;:::o;28846:238::-;28986:34;28982:1;28974:6;28970:14;28963:58;29055:21;29050:2;29042:6;29038:15;29031:46;28846:238;:::o;29090:366::-;29232:3;29253:67;29317:2;29312:3;29253:67;:::i;:::-;29246:74;;29329:93;29418:3;29329:93;:::i;:::-;29447:2;29442:3;29438:12;29431:19;;29090:366;;;:::o;29462:419::-;29628:4;29666:2;29655:9;29651:18;29643:26;;29715:9;29709:4;29705:20;29701:1;29690:9;29686:17;29679:47;29743:131;29869:4;29743:131;:::i;:::-;29735:139;;29462:419;;;:::o;29887:147::-;29988:11;30025:3;30010:18;;29887:147;;;;:::o;30040:114::-;;:::o;30160:398::-;30319:3;30340:83;30421:1;30416:3;30340:83;:::i;:::-;30333:90;;30432:93;30521:3;30432:93;:::i;:::-;30550:1;30545:3;30541:11;30534:18;;30160:398;;;:::o;30564:379::-;30748:3;30770:147;30913:3;30770:147;:::i;:::-;30763:154;;30934:3;30927:10;;30564:379;;;:::o;30949:170::-;31089:22;31085:1;31077:6;31073:14;31066:46;30949:170;:::o;31125:366::-;31267:3;31288:67;31352:2;31347:3;31288:67;:::i;:::-;31281:74;;31364:93;31453:3;31364:93;:::i;:::-;31482:2;31477:3;31473:12;31466:19;;31125:366;;;:::o;31497:419::-;31663:4;31701:2;31690:9;31686:18;31678:26;;31750:9;31744:4;31740:20;31736:1;31725:9;31721:17;31714:47;31778:131;31904:4;31778:131;:::i;:::-;31770:139;;31497:419;;;:::o;31922:175::-;32062:27;32058:1;32050:6;32046:14;32039:51;31922:175;:::o;32103:366::-;32245:3;32266:67;32330:2;32325:3;32266:67;:::i;:::-;32259:74;;32342:93;32431:3;32342:93;:::i;:::-;32460:2;32455:3;32451:12;32444:19;;32103:366;;;:::o;32475:419::-;32641:4;32679:2;32668:9;32664:18;32656:26;;32728:9;32722:4;32718:20;32714:1;32703:9;32699:17;32692:47;32756:131;32882:4;32756:131;:::i;:::-;32748:139;;32475:419;;;:::o;32900:170::-;33040:22;33036:1;33028:6;33024:14;33017:46;32900:170;:::o;33076:366::-;33218:3;33239:67;33303:2;33298:3;33239:67;:::i;:::-;33232:74;;33315:93;33404:3;33315:93;:::i;:::-;33433:2;33428:3;33424:12;33417:19;;33076:366;;;:::o;33448:419::-;33614:4;33652:2;33641:9;33637:18;33629:26;;33701:9;33695:4;33691:20;33687:1;33676:9;33672:17;33665:47;33729:131;33855:4;33729:131;:::i;:::-;33721:139;;33448:419;;;:::o;33873:175::-;34013:27;34009:1;34001:6;33997:14;33990:51;33873:175;:::o;34054:366::-;34196:3;34217:67;34281:2;34276:3;34217:67;:::i;:::-;34210:74;;34293:93;34382:3;34293:93;:::i;:::-;34411:2;34406:3;34402:12;34395:19;;34054:366;;;:::o;34426:419::-;34592:4;34630:2;34619:9;34615:18;34607:26;;34679:9;34673:4;34669:20;34665:1;34654:9;34650:17;34643:47;34707:131;34833:4;34707:131;:::i;:::-;34699:139;;34426:419;;;:::o;34851:180::-;34899:77;34896:1;34889:88;34996:4;34993:1;34986:15;35020:4;35017:1;35010:15;35037:79;35076:7;35105:5;35094:16;;35037:79;;;:::o;35122:157::-;35227:45;35247:24;35265:5;35247:24;:::i;:::-;35227:45;:::i;:::-;35222:3;35215:58;35122:157;;:::o;35285:679::-;35481:3;35496:75;35567:3;35558:6;35496:75;:::i;:::-;35596:2;35591:3;35587:12;35580:19;;35609:75;35680:3;35671:6;35609:75;:::i;:::-;35709:2;35704:3;35700:12;35693:19;;35722:75;35793:3;35784:6;35722:75;:::i;:::-;35822:2;35817:3;35813:12;35806:19;;35835:75;35906:3;35897:6;35835:75;:::i;:::-;35935:2;35930:3;35926:12;35919:19;;35955:3;35948:10;;35285:679;;;;;;;:::o;35970:176::-;36002:1;36019:20;36037:1;36019:20;:::i;:::-;36014:25;;36053:20;36071:1;36053:20;:::i;:::-;36048:25;;36092:1;36082:35;;36097:18;;:::i;:::-;36082:35;36138:1;36135;36131:9;36126:14;;35970:176;;;;:::o;36152:::-;36292:28;36288:1;36280:6;36276:14;36269:52;36152:176;:::o;36334:400::-;36493:3;36514:84;36595:2;36590:3;36514:84;:::i;:::-;36507:91;;36607:93;36696:3;36607:93;:::i;:::-;36725:2;36720:3;36716:12;36709:19;;36334:400;;;:::o;36740:379::-;36924:3;36946:147;37089:3;36946:147;:::i;:::-;36939:154;;37110:3;37103:10;;36740:379;;;:::o;37125:595::-;37265:34;37261:1;37253:6;37249:14;37242:58;37334:34;37329:2;37321:6;37317:15;37310:59;37403:34;37398:2;37390:6;37386:15;37379:59;37472:34;37467:2;37459:6;37455:15;37448:59;37542:34;37536:3;37528:6;37524:16;37517:60;37612:34;37606:3;37598:6;37594:16;37587:60;37682:30;37676:3;37668:6;37664:16;37657:56;37125:595;:::o;37726:402::-;37885:3;37906:85;37987:3;37982;37906:85;:::i;:::-;37899:92;;38000:93;38089:3;38000:93;:::i;:::-;38118:3;38113;38109:13;38102:20;;37726:402;;;:::o;38134:379::-;38318:3;38340:147;38483:3;38340:147;:::i;:::-;38333:154;;38504:3;38497:10;;38134:379;;;:::o;38519:182::-;38659:34;38655:1;38647:6;38643:14;38636:58;38519:182;:::o;38707:400::-;38866:3;38887:84;38968:2;38963:3;38887:84;:::i;:::-;38880:91;;38980:93;39069:3;38980:93;:::i;:::-;39098:2;39093:3;39089:12;39082:19;;38707:400;;;:::o;39113:379::-;39297:3;39319:147;39462:3;39319:147;:::i;:::-;39312:154;;39483:3;39476:10;;39113:379;;;:::o;39498:134::-;39556:9;39589:37;39620:5;39589:37;:::i;:::-;39576:50;;39498:134;;;:::o;39638:147::-;39733:45;39772:5;39733:45;:::i;:::-;39728:3;39721:58;39638:147;;:::o;39791:238::-;39892:4;39930:2;39919:9;39915:18;39907:26;;39943:79;40019:1;40008:9;40004:17;39995:6;39943:79;:::i;:::-;39791:238;;;;:::o;40035:220::-;40175:34;40171:1;40163:6;40159:14;40152:58;40244:3;40239:2;40231:6;40227:15;40220:28;40035:220;:::o;40261:366::-;40403:3;40424:67;40488:2;40483:3;40424:67;:::i;:::-;40417:74;;40500:93;40589:3;40500:93;:::i;:::-;40618:2;40613:3;40609:12;40602:19;;40261:366;;;:::o;40633:419::-;40799:4;40837:2;40826:9;40822:18;40814:26;;40886:9;40880:4;40876:20;40872:1;40861:9;40857:17;40850:47;40914:131;41040:4;40914:131;:::i;:::-;40906:139;;40633:419;;;:::o;41058:170::-;41198:22;41194:1;41186:6;41182:14;41175:46;41058:170;:::o;41234:366::-;41376:3;41397:67;41461:2;41456:3;41397:67;:::i;:::-;41390:74;;41473:93;41562:3;41473:93;:::i;:::-;41591:2;41586:3;41582:12;41575:19;;41234:366;;;:::o;41606:419::-;41772:4;41810:2;41799:9;41795:18;41787:26;;41859:9;41853:4;41849:20;41845:1;41834:9;41830:17;41823:47;41887:131;42013:4;41887:131;:::i;:::-;41879:139;;41606:419;;;:::o;42031:177::-;42171:29;42167:1;42159:6;42155:14;42148:53;42031:177;:::o;42214:366::-;42356:3;42377:67;42441:2;42436:3;42377:67;:::i;:::-;42370:74;;42453:93;42542:3;42453:93;:::i;:::-;42571:2;42566:3;42562:12;42555:19;;42214:366;;;:::o;42586:419::-;42752:4;42790:2;42779:9;42775:18;42767:26;;42839:9;42833:4;42829:20;42825:1;42814:9;42810:17;42803:47;42867:131;42993:4;42867:131;:::i;:::-;42859:139;;42586:419;;;:::o;43011:249::-;43151:34;43147:1;43139:6;43135:14;43128:58;43220:32;43215:2;43207:6;43203:15;43196:57;43011:249;:::o;43266:366::-;43408:3;43429:67;43493:2;43488:3;43429:67;:::i;:::-;43422:74;;43505:93;43594:3;43505:93;:::i;:::-;43623:2;43618:3;43614:12;43607:19;;43266:366;;;:::o;43638:419::-;43804:4;43842:2;43831:9;43827:18;43819:26;;43891:9;43885:4;43881:20;43877:1;43866:9;43862:17;43855:47;43919:131;44045:4;43919:131;:::i;:::-;43911:139;;43638:419;;;:::o;44063:167::-;44203:19;44199:1;44191:6;44187:14;44180:43;44063:167;:::o;44236:366::-;44378:3;44399:67;44463:2;44458:3;44399:67;:::i;:::-;44392:74;;44475:93;44564:3;44475:93;:::i;:::-;44593:2;44588:3;44584:12;44577:19;;44236:366;;;:::o;44608:419::-;44774:4;44812:2;44801:9;44797:18;44789:26;;44861:9;44855:4;44851:20;44847:1;44836:9;44832:17;44825:47;44889:131;45015:4;44889:131;:::i;:::-;44881:139;;44608:419;;;:::o;45033:85::-;45078:7;45107:5;45096:16;;45033:85;;;:::o;45124:158::-;45182:9;45215:61;45233:42;45242:32;45268:5;45242:32;:::i;:::-;45233:42;:::i;:::-;45215:61;:::i;:::-;45202:74;;45124:158;;;:::o;45288:147::-;45383:45;45422:5;45383:45;:::i;:::-;45378:3;45371:58;45288:147;;:::o;45441:831::-;45704:4;45742:3;45731:9;45727:19;45719:27;;45756:71;45824:1;45813:9;45809:17;45800:6;45756:71;:::i;:::-;45837:80;45913:2;45902:9;45898:18;45889:6;45837:80;:::i;:::-;45964:9;45958:4;45954:20;45949:2;45938:9;45934:18;45927:48;45992:108;46095:4;46086:6;45992:108;:::i;:::-;45984:116;;46110:72;46178:2;46167:9;46163:18;46154:6;46110:72;:::i;:::-;46192:73;46260:3;46249:9;46245:19;46236:6;46192:73;:::i;:::-;45441:831;;;;;;;;:::o
Swarm Source
ipfs://9d72374d8f85bef6c7dba08f9b0e4da61045f73fe08cb86263b7811d269071d2
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.