Polygon Sponsored slots available. Book your slot here!
My Name Tag:
Not Available, login to update
[ Download CSV Export ]
Contract Name:
GFarmTradingVaultV5
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at polygonscan.com on 2021-10-12 */ // File: contracts\interfaces\UniswapRouterInterfaceV5.sol // SPDX-License-Identifier: MIT pragma solidity 0.8.7; interface UniswapRouterInterfaceV5{ function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); } // File: contracts\interfaces\AggregatorInterfaceV5.sol pragma solidity 0.8.7; interface AggregatorInterfaceV5{ enum OrderType { MARKET_OPEN, MARKET_CLOSE, LIMIT_OPEN, LIMIT_CLOSE } function getPrice(uint,OrderType,uint) external returns(uint); function tokenPriceDai() external view returns(uint); function pairMinOpenLimitSlippageP(uint) external view returns(uint); function closeFeeP(uint) external view returns(uint); function linkFee(uint,uint) external view returns(uint); function openFeeP(uint) external view returns(uint); function pairMinLeverage(uint) external view returns(uint); function pairMaxLeverage(uint) external view returns(uint); function pairsCount() external view returns(uint); function tokenDaiReservesLp() external view returns(uint, uint); function referralP(uint) external view returns(uint); function nftLimitOrderFeeP(uint) external view returns(uint); } // File: contracts\interfaces\TokenInterfaceV5.sol pragma solidity 0.8.7; interface TokenInterfaceV5{ function burn(address, uint256) external; function mint(address, uint256) external; function transfer(address, uint256) external returns (bool); function transferFrom(address, address, uint256) external returns(bool); function balanceOf(address) external view returns(uint256); function hasRole(bytes32, address) external view returns (bool); function approve(address, uint256) external returns (bool); function allowance(address, address) external view returns (uint256); } // File: contracts\interfaces\NftInterfaceV5.sol pragma solidity 0.8.7; interface NftInterfaceV5{ function balanceOf(address) external view returns (uint); function ownerOf(uint) external view returns (address); function transferFrom(address, address, uint) external; function tokenOfOwnerByIndex(address, uint) external view returns(uint); } // File: contracts\interfaces\VaultInterfaceV5.sol pragma solidity 0.8.7; interface VaultInterfaceV5{ function sendDaiToTrader(address, uint) external; } // File: contracts\interfaces\StorageInterfaceV5.sol pragma solidity 0.8.7; interface StorageInterfaceV5{ enum LimitOrder { TP, SL, LIQ, OPEN } struct Trader{ uint leverageUnlocked; address referral; uint referralRewardsTotal; // 1e18 } struct Trade{ address trader; uint pairIndex; uint index; uint initialPosToken; // 1e18 uint positionSizeDai; // 1e18 uint openPrice; // PRECISION bool buy; uint leverage; uint tp; // PRECISION uint sl; // PRECISION } struct TradeInfo{ uint tokenId; uint tokenPriceDai; // PRECISION uint openInterestDai; // 1e18 uint tpLastUpdated; uint slLastUpdated; bool beingMarketClosed; } struct OpenLimitOrder{ address trader; uint pairIndex; uint index; uint positionSize; // 1e18 (DAI or GFARM2) uint spreadReductionP; bool buy; uint leverage; uint tp; // PRECISION (%) uint sl; // PRECISION (%) uint minPrice; // PRECISION uint maxPrice; // PRECISION uint block; uint tokenId; // index in supportedTokens } struct PendingMarketOrder{ Trade trade; uint block; uint wantedPrice; // PRECISION uint slippageP; // PRECISION (%) uint spreadReductionP; uint tokenId; // index in supportedTokens } struct PendingNftOrder{ address nftHolder; uint nftId; address trader; uint pairIndex; uint index; LimitOrder orderType; } function PRECISION() external pure returns(uint); function gov() external view returns(address); function dev() external view returns(address); function dai() external view returns(TokenInterfaceV5); function token() external view returns(TokenInterfaceV5); function linkErc677() external view returns(TokenInterfaceV5); function tokenDaiRouter() external view returns(UniswapRouterInterfaceV5); function priceAggregator() external view returns(AggregatorInterfaceV5); function vault() external view returns(VaultInterfaceV5); function trading() external view returns(address); function callbacks() external view returns(address); function handleTokens(address,uint,bool) external; function transferDai(address, address, uint) external; function transferLinkToAggregator(address, uint, uint) external; function unregisterTrade(address, uint, uint) external; function unregisterPendingMarketOrder(uint, bool) external; function unregisterOpenLimitOrder(address, uint, uint) external; function hasOpenLimitOrder(address, uint, uint) external view returns(bool); function storePendingMarketOrder(PendingMarketOrder memory, uint, bool) external; function storeReferral(address, address) external; function openTrades(address, uint, uint) external view returns(Trade memory); function openTradesInfo(address, uint, uint) external view returns(TradeInfo memory); function updateSl(address, uint, uint, uint) external; function updateTp(address, uint, uint, uint) external; function getOpenLimitOrder(address, uint, uint) external view returns(OpenLimitOrder memory); function spreadReductionsP(uint) external view returns(uint); function positionSizeTokenDynamic(uint,uint) external view returns(uint); function maxSlP() external view returns(uint); function storeOpenLimitOrder(OpenLimitOrder memory) external; function reqID_pendingMarketOrder(uint) external view returns(PendingMarketOrder memory); function storePendingNftOrder(PendingNftOrder memory, uint) external; function updateOpenLimitOrder(OpenLimitOrder calldata) external; function firstEmptyTradeIndex(address, uint) external view returns(uint); function firstEmptyOpenLimitIndex(address, uint) external view returns(uint); function increaseNftRewards(uint, uint) external; function nftSuccessTimelock() external view returns(uint); function currentPercentProfit(uint,uint,bool,uint) external view returns(int); function reqID_pendingNftOrder(uint) external view returns(PendingNftOrder memory); function setNftLastSuccess(uint) external; function updateTrade(Trade memory) external; function nftLastSuccess(uint) external view returns(uint); function unregisterPendingNftOrder(uint) external; function handleDevGovFees(uint, uint, bool, bool) external returns(uint); function distributeLpRewards(uint) external; function getReferral(address) external view returns(address); function increaseReferralRewards(address, uint) external; function storeTrade(Trade memory, TradeInfo memory) external; function setLeverageUnlocked(address, uint) external; function getLeverageUnlocked(address) external view returns(uint); function openLimitOrdersCount(address, uint) external view returns(uint); function maxOpenLimitOrdersPerPair() external view returns(uint); function openTradesCount(address, uint) external view returns(uint); function pendingMarketOpenCount(address, uint) external view returns(uint); function pendingMarketCloseCount(address, uint) external view returns(uint); function maxTradesPerPair() external view returns(uint); function maxTradesPerBlock() external view returns(uint); function tradesPerBlock(uint) external view returns(uint); function pendingOrderIdsCount(address) external view returns(uint); function maxPendingMarketOrders() external view returns(uint); function maxGainP() external view returns(uint); function defaultLeverageUnlocked() external view returns(uint); function openInterestDai(uint, uint) external view returns(uint); function getPendingOrderIds(address) external view returns(uint[] memory); function traders(address) external view returns(Trader memory); function nfts(uint) external view returns(NftInterfaceV5); } // File: contracts\GFarmTradingVaultV5.sol pragma solidity 0.8.7; contract GFarmTradingVaultV5{ // Useful constant uint public constant PRECISION = 1e5; // Contracts & Addresses StorageInterfaceV5 public storageT; // Variables uint public maxBalanceDai; // 1e18 uint public currentBalanceDai; // block uint public waitBlocksBase; // block uint public refillLiqP; // PRECISION (%) uint public power; // no decimal uint public lastRefill; // block uint public swapFeeP; // PRECISION (%) // Mappings mapping(address => uint) public daiToClaim; // Events event DaiDeposited(address caller, uint amount, uint newCurrentBalanceDai, uint newMaxBalanceDai); event DaiWithdrawn(address caller, uint amount, uint newCurrentBalanceDai, uint newMaxBalanceDai); event DaiSent(address caller, address trader, uint amount,uint newCurrentBalanceDai, uint maxBalanceDai); event DaiToClaim(address caller, address trader, uint amount,uint currentBalanceDai, uint maxBalanceDai); event DaiClaimed(address trader, uint amount, uint newCurrentBalanceDai, uint maxBalanceDai); event DaiRefilled(address caller, uint daiAmount, uint newCurrentBalanceDai, uint maxBalanceDai, uint tokensMinted); event AddressUpdated(string name, address a); event NumberUpdated(string name, uint value); constructor( StorageInterfaceV5 _storageT, uint _waitBlocksBase, uint _refillLiqP, uint _power, uint _swapFeeP ){ require(address(_storageT) != address(0), "ADDRESS_0"); storageT = _storageT; waitBlocksBase = _waitBlocksBase; refillLiqP = _refillLiqP; power = _power; swapFeeP = _swapFeeP; } // Modifiers modifier onlyGov(){ require(msg.sender == storageT.gov(), "GOV_ONLY"); _; } modifier onlyCallbacks(){ require(msg.sender == storageT.callbacks(), "CALLBACKS_ONLY"); _; } // CAREFUL: IF ADDRESS WRONG, CONTRACT CAN BE STUCK function setStorageT(StorageInterfaceV5 _storageT) external onlyGov{ require(_storageT.gov() == storageT.gov(), "WRONG_CONTRACT"); storageT = _storageT; emit AddressUpdated("storageT", address(_storageT)); } // Manage state function setWaitBlocksBase(uint _waitBlocksBase) external onlyGov{ require(_waitBlocksBase >= 100, "BELOW_100"); waitBlocksBase = _waitBlocksBase; emit NumberUpdated("waitBlocksBase", _waitBlocksBase); } function setRefillLiqP(uint _refillLiqP) external onlyGov{ require(_refillLiqP > 0, "VALUE_0"); require(_refillLiqP <= 3*PRECISION/10, "ABOVE_0_POINT_3"); refillLiqP = _refillLiqP; emit NumberUpdated("refillLiqP", _refillLiqP); } function setPower(uint _power) external onlyGov{ require(_power >= 2, "BELOW_2"); require(_power <= 10, "ABOVE_10"); power = _power; emit NumberUpdated("power", _power); } function setSwapFeeP(uint _swapFeeP) external onlyGov{ require(_swapFeeP <= PRECISION, "ABOVE_1"); swapFeeP = _swapFeeP; emit NumberUpdated("swapFeeP", _swapFeeP); } // External functions (interaction) function depositDai(uint _amount) external onlyGov{ require(_amount > 0, "AMOUNT_0"); storageT.dai().transferFrom(msg.sender, address(this), _amount); currentBalanceDai += _amount; maxBalanceDai += _amount; emit DaiDeposited(msg.sender, _amount, currentBalanceDai, maxBalanceDai); } function withdrawDai(uint _amount) external onlyGov{ require(_amount > 0, "AMOUNT_0"); require(_amount <= currentBalanceDai, "BALANCE_TOO_LOW"); storageT.dai().transfer(msg.sender, _amount); currentBalanceDai -= _amount; maxBalanceDai -= _amount; emit DaiWithdrawn(msg.sender, _amount, currentBalanceDai, maxBalanceDai); } function sendDaiToTrader(address _trader, uint _amount) external onlyCallbacks{ _amount -= swapFeeP * _amount / 100 / PRECISION; _amount = _amount * slippageAmm(_amount) / PRECISION; if(_amount <= currentBalanceDai){ currentBalanceDai -= _amount; storageT.dai().transfer(_trader, _amount); emit DaiSent(msg.sender, _trader, _amount, currentBalanceDai, maxBalanceDai); }else{ daiToClaim[_trader] += _amount; emit DaiToClaim(msg.sender, _trader, _amount, currentBalanceDai, maxBalanceDai); } } function claimDai() external{ uint amount = daiToClaim[msg.sender]; require(amount > 0, "NOTHING_TO_CLAIM"); require(currentBalanceDai > amount, "BALANCE_TOO_LOW"); currentBalanceDai -= amount; storageT.dai().transfer(msg.sender, amount); daiToClaim[msg.sender] = 0; emit DaiClaimed(msg.sender, amount, currentBalanceDai, maxBalanceDai); } function refill() external{ require(currentBalanceDai < maxBalanceDai, "ALREADY_FULL"); require(canRefill(), "TOO_EARLY"); (uint tokenReserve, ) = storageT.priceAggregator().tokenDaiReservesLp(); uint tokensToMint = tokenReserve*refillLiqP/100/PRECISION; storageT.handleTokens(address(this), tokensToMint, true); storageT.token().approve(address(storageT.tokenDaiRouter()), tokensToMint); uint[] memory amounts = storageT.tokenDaiRouter().swapExactTokensForTokens( tokensToMint, 0, tokenToDaiPath(), address(this), block.timestamp + 300 ); currentBalanceDai += amounts[1]; lastRefill = block.number; emit DaiRefilled(msg.sender, amounts[1], currentBalanceDai, maxBalanceDai, tokensToMint); } // View functions function canRefill() public view returns(bool){ return block.number >= lastRefill + blocksToWait(currentBalanceDai, maxBalanceDai); } function blocksToWait(uint _currentBalanceDai, uint _maxBalanceDai) public view returns(uint){ uint blocks = (_currentBalanceDai*PRECISION/_maxBalanceDai)**power*waitBlocksBase/(PRECISION**power); return blocks >= 1 ? blocks : 1; } function slippageAmm(uint _amount) private view returns(uint){ (, uint daiReserve) = storageT.priceAggregator().tokenDaiReservesLp(); return PRECISION**2/(PRECISION+_amount*PRECISION/daiReserve); } function tokenToDaiPath() private view returns(address[] memory){ address[] memory path = new address[](2); path[0] = address(storageT.token()); path[1] = address(storageT.dai()); return path; } // Useful backend function function backend(address _trader) external view returns(uint,uint,uint,StorageInterfaceV5.Trader memory,uint[] memory, StorageInterfaceV5.PendingMarketOrder[] memory, uint[][5] memory){ uint[] memory pendingIds = storageT.getPendingOrderIds(_trader); StorageInterfaceV5.PendingMarketOrder[] memory pendingMarket = new StorageInterfaceV5.PendingMarketOrder[](pendingIds.length); for(uint i = 0; i < pendingIds.length; i++){ pendingMarket[i] = storageT.reqID_pendingMarketOrder(pendingIds[i]); } uint[][5] memory nftIds; for(uint j = 0; j < 5; j++){ uint nftsCount = storageT.nfts(j).balanceOf(_trader); nftIds[j] = new uint[](nftsCount); for(uint i = 0; i < nftsCount; i++){ nftIds[j][i] = storageT.nfts(j).tokenOfOwnerByIndex(_trader, i); } } return ( storageT.dai().allowance(_trader, address(storageT)), storageT.dai().balanceOf(_trader), storageT.linkErc677().allowance(_trader, address(storageT)), storageT.traders(_trader), pendingIds, pendingMarket, nftIds ); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"contract StorageInterfaceV5","name":"_storageT","type":"address"},{"internalType":"uint256","name":"_waitBlocksBase","type":"uint256"},{"internalType":"uint256","name":"_refillLiqP","type":"uint256"},{"internalType":"uint256","name":"_power","type":"uint256"},{"internalType":"uint256","name":"_swapFeeP","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"name","type":"string"},{"indexed":false,"internalType":"address","name":"a","type":"address"}],"name":"AddressUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"trader","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newCurrentBalanceDai","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxBalanceDai","type":"uint256"}],"name":"DaiClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newCurrentBalanceDai","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxBalanceDai","type":"uint256"}],"name":"DaiDeposited","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"uint256","name":"daiAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newCurrentBalanceDai","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxBalanceDai","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensMinted","type":"uint256"}],"name":"DaiRefilled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"address","name":"trader","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newCurrentBalanceDai","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxBalanceDai","type":"uint256"}],"name":"DaiSent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"address","name":"trader","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"currentBalanceDai","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxBalanceDai","type":"uint256"}],"name":"DaiToClaim","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newCurrentBalanceDai","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxBalanceDai","type":"uint256"}],"name":"DaiWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"name","type":"string"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"NumberUpdated","type":"event"},{"inputs":[],"name":"PRECISION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_trader","type":"address"}],"name":"backend","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"components":[{"internalType":"uint256","name":"leverageUnlocked","type":"uint256"},{"internalType":"address","name":"referral","type":"address"},{"internalType":"uint256","name":"referralRewardsTotal","type":"uint256"}],"internalType":"struct StorageInterfaceV5.Trader","name":"","type":"tuple"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"components":[{"components":[{"internalType":"address","name":"trader","type":"address"},{"internalType":"uint256","name":"pairIndex","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"initialPosToken","type":"uint256"},{"internalType":"uint256","name":"positionSizeDai","type":"uint256"},{"internalType":"uint256","name":"openPrice","type":"uint256"},{"internalType":"bool","name":"buy","type":"bool"},{"internalType":"uint256","name":"leverage","type":"uint256"},{"internalType":"uint256","name":"tp","type":"uint256"},{"internalType":"uint256","name":"sl","type":"uint256"}],"internalType":"struct StorageInterfaceV5.Trade","name":"trade","type":"tuple"},{"internalType":"uint256","name":"block","type":"uint256"},{"internalType":"uint256","name":"wantedPrice","type":"uint256"},{"internalType":"uint256","name":"slippageP","type":"uint256"},{"internalType":"uint256","name":"spreadReductionP","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"internalType":"struct StorageInterfaceV5.PendingMarketOrder[]","name":"","type":"tuple[]"},{"internalType":"uint256[][5]","name":"","type":"uint256[][5]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_currentBalanceDai","type":"uint256"},{"internalType":"uint256","name":"_maxBalanceDai","type":"uint256"}],"name":"blocksToWait","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"canRefill","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimDai","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentBalanceDai","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"daiToClaim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"depositDai","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastRefill","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBalanceDai","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"power","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"refill","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"refillLiqP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_trader","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"sendDaiToTrader","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_power","type":"uint256"}],"name":"setPower","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_refillLiqP","type":"uint256"}],"name":"setRefillLiqP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract StorageInterfaceV5","name":"_storageT","type":"address"}],"name":"setStorageT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapFeeP","type":"uint256"}],"name":"setSwapFeeP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_waitBlocksBase","type":"uint256"}],"name":"setWaitBlocksBase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"storageT","outputs":[{"internalType":"contract StorageInterfaceV5","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapFeeP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"waitBlocksBase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawDai","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b50604051620033b2380380620033b28339810160408190526200003491620000b1565b6001600160a01b0385166200007b5760405162461bcd60e51b81526020600482015260096024820152680414444524553535f360bc1b604482015260640160405180910390fd5b600080546001600160a01b0319166001600160a01b03969096169590951790945560039290925560045560055560075562000108565b600080600080600060a08688031215620000ca57600080fd5b85516001600160a01b0381168114620000e257600080fd5b602087015160408801516060890151608090990151929a91995097965090945092505050565b61329a80620001186000396000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c8063500dcbe4116100e357806393a991af1161008c578063d4b46e0411610066578063d4b46e04146102e3578063dad5baf914610309578063eeb4fe271461031c57600080fd5b806393a991af146102b3578063a1d0b34a146102c6578063aaf5eb68146102d957600080fd5b806367dfd814116100bd57806367dfd8141461028e57806379fc31261461029757806392818d66146102a057600080fd5b8063500dcbe41461025d578063538e075914610266578063620ed4fe1461026e57600080fd5b8063214a9a33116101455780633ceaed961161011f5780633ceaed9614610242578063423de6391461024b5780634a4d59fa1461025457600080fd5b8063214a9a331461020957806329f79a741461021c57806335842f741461022f57600080fd5b80630851a202116101765780630851a202146101c257806316fff074146101cb5780631a92d20c146101f657600080fd5b806305caf1d014610192578063064cc89a146101b8575b600080fd5b6101a56101a0366004612d8a565b610334565b6040519081526020015b60405180910390f35b6101c06103a2565b005b6101a560025481565b6000546101de906001600160a01b031681565b6040516001600160a01b0390911681526020016101af565b6101c0610204366004612d58565b6105d0565b6101c0610217366004612b1f565b6107c4565b6101c061022a366004612d58565b610b07565b6101c061023d366004612d58565b610c95565b6101a560015481565b6101a560075481565b6101a560055481565b6101a560065481565b6101c0610f3f565b6101a561027c366004612ae5565b60086020526000908152604090205481565b6101a560035481565b6101a560045481565b6101c06102ae366004612ae5565b61151a565b6101c06102c1366004612d58565b6117db565b6101c06102d4366004612d58565b611ab8565b6101a5620186a081565b6102f66102f1366004612ae5565b611c93565b6040516101af9796959493929190612ec1565b6101c0610317366004612d58565b61257b565b610324612707565b60405190151581526020016101af565b600080600554620186a06103489190613101565b6003546005548561035c620186a0896131b9565b610366919061309c565b6103709190613101565b61037a91906131b9565b610384919061309c565b90506001811015610396576001610398565b805b9150505b92915050565b33600090815260086020526040902054806104045760405162461bcd60e51b815260206004820152601060248201527f4e4f5448494e475f544f5f434c41494d0000000000000000000000000000000060448201526064015b60405180910390fd5b80600254116104555760405162461bcd60e51b815260206004820152600f60248201527f42414c414e43455f544f4f5f4c4f57000000000000000000000000000000000060448201526064016103fb565b806002600082825461046791906131d8565b90915550506000546040805163f4b9fa7560e01b815290516001600160a01b039092169163f4b9fa7591600480820192602092909190829003018186803b1580156104b157600080fd5b505afa1580156104c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e99190612b02565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b03919091169063a9059cbb90604401602060405180830381600087803b15801561053357600080fd5b505af1158015610547573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061056b9190612bf8565b503360008181526008602090815260408083209290925560025460015483519485529184018590529183019190915260608201527f0d98d6a086287050015b49e20ebf75cab73f0d199df60a2be532cff208cbb501906080015b60405180910390a150565b60008054906101000a90046001600160a01b03166001600160a01b03166312d43a516040518163ffffffff1660e01b815260040160206040518083038186803b15801561061c57600080fd5b505afa158015610630573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106549190612b02565b6001600160a01b0316336001600160a01b03161461069f5760405162461bcd60e51b8152602060048201526008602482015267474f565f4f4e4c5960c01b60448201526064016103fb565b600081116106ef5760405162461bcd60e51b815260206004820152600760248201527f56414c55455f300000000000000000000000000000000000000000000000000060448201526064016103fb565b600a6106ff620186a060036131b9565b610709919061309c565b8111156107585760405162461bcd60e51b815260206004820152600f60248201527f41424f56455f305f504f494e545f33000000000000000000000000000000000060448201526064016103fb565b600481905560408051818152600a918101919091527f726566696c6c4c697150000000000000000000000000000000000000000000006060820152602081018290527f8cf3e35f6221b16e1670a3413180c9484bf5aa71787905909fa82a6a2662e9ab906080016105c5565b60008054906101000a90046001600160a01b03166001600160a01b031662b127836040518163ffffffff1660e01b815260040160206040518083038186803b15801561080f57600080fd5b505afa158015610823573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108479190612b02565b6001600160a01b0316336001600160a01b0316146108a75760405162461bcd60e51b815260206004820152600e60248201527f43414c4c4241434b535f4f4e4c5900000000000000000000000000000000000060448201526064016103fb565b620186a06064826007546108bb91906131b9565b6108c5919061309c565b6108cf919061309c565b6108d990826131d8565b9050620186a06108e88261272c565b6108f290836131b9565b6108fc919061309c565b90506002548111610a8157806002600082825461091991906131d8565b90915550506000546040805163f4b9fa7560e01b815290516001600160a01b039092169163f4b9fa7591600480820192602092909190829003018186803b15801561096357600080fd5b505afa158015610977573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099b9190612b02565b60405163a9059cbb60e01b81526001600160a01b03848116600483015260248201849052919091169063a9059cbb90604401602060405180830381600087803b1580156109e757600080fd5b505af11580156109fb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1f9190612bf8565b50600254600154604080513381526001600160a01b0386166020820152908101849052606081019290925260808201527fe3a8ac5b925ed889cf369735f3f18d90350f77f6165d216fa3638f406833b37a9060a0015b60405180910390a15050565b6001600160a01b03821660009081526008602052604081208054839290610aa9908490613084565b9091555050600254600154604080513381526001600160a01b0386166020820152908101849052606081019290925260808201527f4cf5a0000f2c98450556f77aef5e040599b31bcf6c2f157211c9957685dd84669060a001610a75565b60008054906101000a90046001600160a01b03166001600160a01b03166312d43a516040518163ffffffff1660e01b815260040160206040518083038186803b158015610b5357600080fd5b505afa158015610b67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8b9190612b02565b6001600160a01b0316336001600160a01b031614610bd65760405162461bcd60e51b8152602060048201526008602482015267474f565f4f4e4c5960c01b60448201526064016103fb565b620186a0811115610c295760405162461bcd60e51b815260206004820152600760248201527f41424f56455f310000000000000000000000000000000000000000000000000060448201526064016103fb565b6007819055604080518181526008918101919091527f73776170466565500000000000000000000000000000000000000000000000006060820152602081018290527f8cf3e35f6221b16e1670a3413180c9484bf5aa71787905909fa82a6a2662e9ab906080016105c5565b60008054906101000a90046001600160a01b03166001600160a01b03166312d43a516040518163ffffffff1660e01b815260040160206040518083038186803b158015610ce157600080fd5b505afa158015610cf5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d199190612b02565b6001600160a01b0316336001600160a01b031614610d645760405162461bcd60e51b8152602060048201526008602482015267474f565f4f4e4c5960c01b60448201526064016103fb565b60008111610d9f5760405162461bcd60e51b81526020600482015260086024820152670414d4f554e545f360c41b60448201526064016103fb565b60008054906101000a90046001600160a01b03166001600160a01b031663f4b9fa756040518163ffffffff1660e01b815260040160206040518083038186803b158015610deb57600080fd5b505afa158015610dff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e239190612b02565b6040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018390526001600160a01b0391909116906323b872dd90606401602060405180830381600087803b158015610e8c57600080fd5b505af1158015610ea0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec49190612bf8565b508060026000828254610ed79190613084565b925050819055508060016000828254610ef09190613084565b909155505060025460015460408051338152602081018590529081019290925260608201527fc946fd90f4dfeff042a05c64922e7d212d4af8bbcee5a200afb815c833bdbcf6906080016105c5565b60015460025410610f925760405162461bcd60e51b815260206004820152600c60248201527f414c52454144595f46554c4c000000000000000000000000000000000000000060448201526064016103fb565b610f9a612707565b610fe65760405162461bcd60e51b815260206004820152600960248201527f544f4f5f4541524c59000000000000000000000000000000000000000000000060448201526064016103fb565b60008060009054906101000a90046001600160a01b03166001600160a01b0316633078fff56040518163ffffffff1660e01b815260040160206040518083038186803b15801561103557600080fd5b505afa158015611049573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106d9190612b02565b6001600160a01b0316633a2fbfab6040518163ffffffff1660e01b8152600401604080518083038186803b1580156110a457600080fd5b505afa1580156110b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110dc9190612dac565b5090506000620186a06064600454846110f591906131b9565b6110ff919061309c565b611109919061309c565b6000546040517f5378143e00000000000000000000000000000000000000000000000000000000815230600482015260248101839052600160448201529192506001600160a01b031690635378143e90606401600060405180830381600087803b15801561117657600080fd5b505af115801561118a573d6000803e3d6000fd5b5050505060008054906101000a90046001600160a01b03166001600160a01b031663fc0c546a6040518163ffffffff1660e01b815260040160206040518083038186803b1580156111da57600080fd5b505afa1580156111ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112129190612b02565b6001600160a01b031663095ea7b360008054906101000a90046001600160a01b03166001600160a01b031663f2c13bdf6040518163ffffffff1660e01b815260040160206040518083038186803b15801561126c57600080fd5b505afa158015611280573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a49190612b02565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b03909116600482015260248101849052604401602060405180830381600087803b15801561130457600080fd5b505af1158015611318573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133c9190612bf8565b5060008060009054906101000a90046001600160a01b03166001600160a01b031663f2c13bdf6040518163ffffffff1660e01b815260040160206040518083038186803b15801561138c57600080fd5b505afa1580156113a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c49190612b02565b6001600160a01b03166338ed17398360006113dd612879565b306113ea4261012c613084565b6040518663ffffffff1660e01b815260040161140a959493929190612e50565b600060405180830381600087803b15801561142457600080fd5b505af1158015611438573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114609190810190612b4b565b90508060018151811061147557611475613220565b60200260200101516002600082825461148e9190613084565b90915550504360065580517f2f27d174b3223dcd8f94421046d8794ee490188a974fa8ea4dab2648e1c895c2903390839060019081106114d0576114d0613220565b602090810291909101810151600254600154604080516001600160a01b039690961686529385019290925283830152606083015260808201859052519081900360a00190a1505050565b60008054906101000a90046001600160a01b03166001600160a01b03166312d43a516040518163ffffffff1660e01b815260040160206040518083038186803b15801561156657600080fd5b505afa15801561157a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061159e9190612b02565b6001600160a01b0316336001600160a01b0316146115e95760405162461bcd60e51b8152602060048201526008602482015267474f565f4f4e4c5960c01b60448201526064016103fb565b60008054906101000a90046001600160a01b03166001600160a01b03166312d43a516040518163ffffffff1660e01b815260040160206040518083038186803b15801561163557600080fd5b505afa158015611649573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166d9190612b02565b6001600160a01b0316816001600160a01b03166312d43a516040518163ffffffff1660e01b815260040160206040518083038186803b1580156116af57600080fd5b505afa1580156116c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e79190612b02565b6001600160a01b03161461173d5760405162461bcd60e51b815260206004820152600e60248201527f57524f4e475f434f4e545241435400000000000000000000000000000000000060448201526064016103fb565b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038316908117909155604080518181526008918101919091527f73746f7261676554000000000000000000000000000000000000000000000000606082015260208101919091527f943e9d45a11aaae5d87503e3bc248665d9807856e5cf2bdb4a988bee44422781906080016105c5565b60008054906101000a90046001600160a01b03166001600160a01b03166312d43a516040518163ffffffff1660e01b815260040160206040518083038186803b15801561182757600080fd5b505afa15801561183b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185f9190612b02565b6001600160a01b0316336001600160a01b0316146118aa5760405162461bcd60e51b8152602060048201526008602482015267474f565f4f4e4c5960c01b60448201526064016103fb565b600081116118e55760405162461bcd60e51b81526020600482015260086024820152670414d4f554e545f360c41b60448201526064016103fb565b6002548111156119375760405162461bcd60e51b815260206004820152600f60248201527f42414c414e43455f544f4f5f4c4f57000000000000000000000000000000000060448201526064016103fb565b60008054906101000a90046001600160a01b03166001600160a01b031663f4b9fa756040518163ffffffff1660e01b815260040160206040518083038186803b15801561198357600080fd5b505afa158015611997573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119bb9190612b02565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b03919091169063a9059cbb90604401602060405180830381600087803b158015611a0557600080fd5b505af1158015611a19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3d9190612bf8565b508060026000828254611a5091906131d8565b925050819055508060016000828254611a6991906131d8565b909155505060025460015460408051338152602081018590529081019290925260608201527ff66a18425ccfa05fd0a860e5653ad3553bce3bacb9dec1c7ef1bfa53e6047584906080016105c5565b60008054906101000a90046001600160a01b03166001600160a01b03166312d43a516040518163ffffffff1660e01b815260040160206040518083038186803b158015611b0457600080fd5b505afa158015611b18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3c9190612b02565b6001600160a01b0316336001600160a01b031614611b875760405162461bcd60e51b8152602060048201526008602482015267474f565f4f4e4c5960c01b60448201526064016103fb565b6002811015611bd85760405162461bcd60e51b815260206004820152600760248201527f42454c4f575f320000000000000000000000000000000000000000000000000060448201526064016103fb565b600a811115611c295760405162461bcd60e51b815260206004820152600860248201527f41424f56455f313000000000000000000000000000000000000000000000000060448201526064016103fb565b600581815560408051818152908101919091527f706f7765720000000000000000000000000000000000000000000000000000006060820152602081018290527f8cf3e35f6221b16e1670a3413180c9484bf5aa71787905909fa82a6a2662e9ab906080016105c5565b6000806000611cc560405180606001604052806000815260200160006001600160a01b03168152602001600081525090565b606080611cd0612a09565b600080546040517f5c76ac9e0000000000000000000000000000000000000000000000000000000081526001600160a01b038b8116600483015290911690635c76ac9e9060240160006040518083038186803b158015611d2f57600080fd5b505afa158015611d43573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611d6b9190810190612b4b565b90506000815167ffffffffffffffff811115611d8957611d89613236565b604051908082528060200260200182016040528015611dc257816020015b611daf612a30565b815260200190600190039081611da75790505b50905060005b8251811015611ea15760005483516001600160a01b039091169063b66e6b0590859084908110611dfa57611dfa613220565b60200260200101516040518263ffffffff1660e01b8152600401611e2091815260200190565b6101e06040518083038186803b158015611e3957600080fd5b505afa158015611e4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e719190612c13565b828281518110611e8357611e83613220565b60200260200101819052508080611e99906131ef565b915050611dc8565b50611eaa612a09565b60005b600581101561217c576000805460405163265aa62160e01b8152600481018490526001600160a01b039091169063265aa6219060240160206040518083038186803b158015611efb57600080fd5b505afa158015611f0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f339190612b02565b6040516370a0823160e01b81526001600160a01b038f8116600483015291909116906370a082319060240160206040518083038186803b158015611f7657600080fd5b505afa158015611f8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fae9190612d71565b90508067ffffffffffffffff811115611fc957611fc9613236565b604051908082528060200260200182016040528015611ff2578160200160208202803683370190505b5083836005811061200557612005613220565b602002015260005b818110156121675760005460405163265aa62160e01b8152600481018590526001600160a01b039091169063265aa6219060240160206040518083038186803b15801561205957600080fd5b505afa15801561206d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120919190612b02565b6001600160a01b0316632f745c598f836040518363ffffffff1660e01b81526004016120d29291906001600160a01b03929092168252602082015260400190565b60206040518083038186803b1580156120ea57600080fd5b505afa1580156120fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121229190612d71565b84846005811061213457612134613220565b6020020151828151811061214a5761214a613220565b60209081029190910101528061215f816131ef565b91505061200d565b50508080612174906131ef565b915050611ead565b5060008054906101000a90046001600160a01b03166001600160a01b031663f4b9fa756040518163ffffffff1660e01b815260040160206040518083038186803b1580156121c957600080fd5b505afa1580156121dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122019190612b02565b6000546040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081526001600160a01b038e81166004830152918216602482015291169063dd62ed3e9060440160206040518083038186803b15801561226657600080fd5b505afa15801561227a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061229e9190612d71565b60008054906101000a90046001600160a01b03166001600160a01b031663f4b9fa756040518163ffffffff1660e01b815260040160206040518083038186803b1580156122ea57600080fd5b505afa1580156122fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123229190612b02565b6040516370a0823160e01b81526001600160a01b038e8116600483015291909116906370a082319060240160206040518083038186803b15801561236557600080fd5b505afa158015612379573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061239d9190612d71565b60008054906101000a90046001600160a01b03166001600160a01b031663fece4eac6040518163ffffffff1660e01b815260040160206040518083038186803b1580156123e957600080fd5b505afa1580156123fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124219190612b02565b6001600160a01b031663dd62ed3e8e60008054906101000a90046001600160a01b03166040518363ffffffff1660e01b81526004016124769291906001600160a01b0392831681529116602082015260400190565b60206040518083038186803b15801561248e57600080fd5b505afa1580156124a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124c69190612d71565b60008054906101000a90046001600160a01b03166001600160a01b03166392a88fa28f6040518263ffffffff1660e01b815260040161251491906001600160a01b0391909116815260200190565b60606040518083038186803b15801561252c57600080fd5b505afa158015612540573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125649190612cf6565b929e919d509b509099509297509095509350915050565b60008054906101000a90046001600160a01b03166001600160a01b03166312d43a516040518163ffffffff1660e01b815260040160206040518083038186803b1580156125c757600080fd5b505afa1580156125db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ff9190612b02565b6001600160a01b0316336001600160a01b03161461264a5760405162461bcd60e51b8152602060048201526008602482015267474f565f4f4e4c5960c01b60448201526064016103fb565b606481101561269b5760405162461bcd60e51b815260206004820152600960248201527f42454c4f575f313030000000000000000000000000000000000000000000000060448201526064016103fb565b600381905560408051818152600e918101919091527f77616974426c6f636b73426173650000000000000000000000000000000000006060820152602081018290527f8cf3e35f6221b16e1670a3413180c9484bf5aa71787905909fa82a6a2662e9ab906080016105c5565b6000612717600254600154610334565b6006546127249190613084565b431015905090565b60008054604080517f3078fff5000000000000000000000000000000000000000000000000000000008152905183926001600160a01b031691633078fff5916004808301926020929190829003018186803b15801561278a57600080fd5b505afa15801561279e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127c29190612b02565b6001600160a01b0316633a2fbfab6040518163ffffffff1660e01b8152600401604080518083038186803b1580156127f957600080fd5b505afa15801561280d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128319190612dac565b9150819050612843620186a0856131b9565b61284d919061309c565b61285a90620186a0613084565b6128686002620186a061310d565b612872919061309c565b9392505050565b6040805160028082526060808301845292600092919060208301908036833701905050905060008054906101000a90046001600160a01b03166001600160a01b031663fc0c546a6040518163ffffffff1660e01b815260040160206040518083038186803b1580156128ea57600080fd5b505afa1580156128fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129229190612b02565b8160008151811061293557612935613220565b60200260200101906001600160a01b031690816001600160a01b03168152505060008054906101000a90046001600160a01b03166001600160a01b031663f4b9fa756040518163ffffffff1660e01b815260040160206040518083038186803b1580156129a157600080fd5b505afa1580156129b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129d99190612b02565b816001815181106129ec576129ec613220565b6001600160a01b0390921660209283029190910190910152919050565b6040518060a001604052806005905b6060815260200190600190039081612a185790505090565b6040518060c00160405280612a9c60405180610140016040528060006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581526020016000815260200160008152602001600081525090565b815260200160008152602001600081526020016000815260200160008152602001600081525090565b8051612ad08161324c565b919050565b80518015158114612ad057600080fd5b600060208284031215612af757600080fd5b81356103968161324c565b600060208284031215612b1457600080fd5b81516103968161324c565b60008060408385031215612b3257600080fd5b8235612b3d8161324c565b946020939093013593505050565b60006020808385031215612b5e57600080fd5b825167ffffffffffffffff80821115612b7657600080fd5b818501915085601f830112612b8a57600080fd5b815181811115612b9c57612b9c613236565b8060051b9150612bad848301613053565b8181528481019084860184860187018a1015612bc857600080fd5b600095505b83861015612beb578051835260019590950194918601918601612bcd565b5098975050505050505050565b600060208284031215612c0a57600080fd5b61287282612ad5565b60008183036101e0811215612c2757600080fd5b612c2f613006565b61014080831215612c3f57600080fd5b612c4761302f565b9250612c5285612ac5565b83526020850151602084015260408501516040840152606085015160608401526080850151608084015260a085015160a0840152612c9260c08601612ad5565b60c084015260e0858101519084015261010080860151908401526101208086015190840152918152908301516020820152610160830151604082015261018083015160608201526101a083015160808201526101c09092015160a083015250919050565b600060608284031215612d0857600080fd5b6040516060810181811067ffffffffffffffff82111715612d2b57612d2b613236565b604052825181526020830151612d408161324c565b60208201526040928301519281019290925250919050565b600060208284031215612d6a57600080fd5b5035919050565b600060208284031215612d8357600080fd5b5051919050565b60008060408385031215612d9d57600080fd5b50508035926020909101359150565b60008060408385031215612dbf57600080fd5b505080516020909101519092909150565b60008260a081018360005b6005811015612e0a578383038752612df4838351612e15565b6020978801979093509190910190600101612ddb565b509095945050505050565b600081518084526020808501945080840160005b83811015612e4557815187529582019590820190600101612e29565b509495945050505050565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612ea05784516001600160a01b031683529383019391830191600101612e7b565b50506001600160a01b03969096166060850152505050608001529392505050565b600061012089835260208981850152604089818601526060895181870152828a015160806001600160a01b03821681890152838c0151915060a082818a015260c0925086838a0152612f15878a018d612e15565b89810360e08b8101919091528c51808352888e019289019060005b81811015612fd9578451805180516001600160a01b031685528c8101518d8601528b8101518c8601528a8101518b860152888101518986015287810151888601528981015115158a860152858101518686015261010080820151908601528d01518d8501528b8101516101408501528a81015161016085015289810151610180850152878101516101a08501528601516101c0840152938a01936101e090920191600101612f30565b50508b81036101008d0152612fee818e612dd0565b9a505050505050505050505098975050505050505050565b60405160c0810167ffffffffffffffff8111828210171561302957613029613236565b60405290565b604051610140810167ffffffffffffffff8111828210171561302957613029613236565b604051601f8201601f1916810167ffffffffffffffff8111828210171561307c5761307c613236565b604052919050565b600082198211156130975761309761320a565b500190565b6000826130b957634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156130f95781600019048211156130df576130df61320a565b808516156130ec57918102915b93841c93908002906130c3565b509250929050565b60006128728383613118565b600061287260ff8416835b6000826131275750600161039c565b816131345750600061039c565b816001811461314a576002811461315457613170565b600191505061039c565b60ff8411156131655761316561320a565b50506001821b61039c565b5060208310610133831016604e8410600b8410161715613193575081810a61039c565b61319d83836130be565b80600019048211156131b1576131b161320a565b029392505050565b60008160001904831182151516156131d3576131d361320a565b500290565b6000828210156131ea576131ea61320a565b500390565b60006000198214156132035761320361320a565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461326157600080fd5b5056fea264697066735822122018171afbf131f672438cc2c095c590737612c1aac93b85bd2e28ea1be3b8d58464736f6c63430008070033000000000000000000000000aee4d11a16b2bc65edd6416fb626eb404a6d65bd00000000000000000000000000000000000000000000000000000000000003e8000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000007530
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000aee4d11a16b2bc65edd6416fb626eb404a6d65bd00000000000000000000000000000000000000000000000000000000000003e8000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000007530
-----Decoded View---------------
Arg [0] : _storageT (address): 0xaee4d11a16b2bc65edd6416fb626eb404a6d65bd
Arg [1] : _waitBlocksBase (uint256): 1000
Arg [2] : _refillLiqP (uint256): 10000
Arg [3] : _power (uint256): 5
Arg [4] : _swapFeeP (uint256): 30000
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 000000000000000000000000aee4d11a16b2bc65edd6416fb626eb404a6d65bd
Arg [1] : 00000000000000000000000000000000000000000000000000000000000003e8
Arg [2] : 0000000000000000000000000000000000000000000000000000000000002710
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [4] : 0000000000000000000000000000000000000000000000000000000000007530
Deployed ByteCode Sourcemap
9102:8072:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15174:254;;;;;;:::i;:::-;;:::i;:::-;;;18404:25:1;;;18392:2;18377:18;15174:254:0;;;;;;;;13721:411;;;:::i;:::-;;9329:29;;;;;;9226:34;;;;;-1:-1:-1;;;;;9226:34:0;;;;;;-1:-1:-1;;;;;7960:55:1;;;7942:74;;7930:2;7915:18;9226:34:0;7796:226:1;11643:267:0;;;;;;:::i;:::-;;:::i;13107:608::-;;;;;;:::i;:::-;;:::i;12128:197::-;;;;;;:::i;:::-;;:::i;12374:336::-;;;;;;:::i;:::-;;:::i;9284:25::-;;;;;;9572:20;;;;;;9475:17;;;;;;9526:22;;;;;;14138:852;;;:::i;9645:42::-;;;;;;:::i;:::-;;;;;;;;;;;;;;9375:26;;;;;;9421:22;;;;;;11137:239;;;;;;:::i;:::-;;:::i;12716:385::-;;;;;;:::i;:::-;;:::i;11913:209::-;;;;;;:::i;:::-;;:::i;9157:36::-;;9190:3;9157:36;;15935:1236;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;:::i;11405:232::-;;;;;;:::i;:::-;;:::i;15021:147::-;;;:::i;:::-;;;11121:14:1;;11114:22;11096:41;;11084:2;11069:18;15021:147:0;10956:187:1;15174:254:0;15262:4;15278:11;15372:5;;9190:3;15361:16;;;;:::i;:::-;15345:14;;15339:5;;15322:14;15293:28;9190:3;15293:18;:28;:::i;:::-;:43;;;;:::i;:::-;15292:52;;;;:::i;:::-;:67;;;;:::i;:::-;:86;;;;:::i;:::-;15278:100;;15406:1;15396:6;:11;;:24;;15419:1;15396:24;;;15410:6;15396:24;15389:31;;;15174:254;;;;;:::o;13721:411::-;13785:10;13760:11;13774:22;;;:10;:22;;;;;;13815:10;13807:39;;;;-1:-1:-1;;;13807:39:0;;13795:2:1;13807:39:0;;;13777:21:1;13834:2;13814:18;;;13807:30;13873:18;13853;;;13846:46;13909:18;;13807:39:0;;;;;;;;;13885:6;13865:17;;:26;13857:54;;;;-1:-1:-1;;;13857:54:0;;13451:2:1;13857:54:0;;;13433:21:1;13490:2;13470:18;;;13463:30;13529:17;13509:18;;;13502:45;13564:18;;13857:54:0;13249:339:1;13857:54:0;13945:6;13924:17;;:27;;;;;;;:::i;:::-;;;;-1:-1:-1;;13962:8:0;;:14;;;-1:-1:-1;;;13962:14:0;;;;-1:-1:-1;;;;;13962:8:0;;;;:12;;:14;;;;;;;;;;;;;;;:8;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:43;;-1:-1:-1;;;13962:43:0;;13986:10;13962:43;;;9483:74:1;9573:18;;;9566:34;;;-1:-1:-1;;;;;13962:23:0;;;;;;;9456:18:1;;13962:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;14027:10:0;14041:1;14016:22;;;:10;:22;;;;;;;;:26;;;;14091:17;;14110:13;;14060:64;;10225:74:1;;;10315:18;;;10308:34;;;10358:18;;;10351:34;;;;10416:2;10401:18;;10394:34;14060:64:0;;10212:3:1;10197:19;14060:64:0;;;;;;;;13749:383;13721:411::o;11643:267::-;10940:8;;;;;;;;-1:-1:-1;;;;;10940:8:0;-1:-1:-1;;;;;10940:12:0;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10926:28:0;:10;-1:-1:-1;;;;;10926:28:0;;10918:49;;;;-1:-1:-1;;;10918:49:0;;17110:2:1;10918:49:0;;;17092:21:1;17149:1;17129:18;;;17122:29;-1:-1:-1;;;17167:18:1;;;17160:38;17215:18;;10918:49:0;16908:331:1;10918:49:0;11733:1:::1;11719:11;:15;11711:35;;;::::0;-1:-1:-1;;;11711:35:0;;17782:2:1;11711:35:0::1;::::0;::::1;17764:21:1::0;17821:1;17801:18;;;17794:29;17859:9;17839:18;;;17832:37;17886:18;;11711:35:0::1;17580:330:1::0;11711:35:0::1;11792:2;11780:11;9190:3;11780:1;:11;:::i;:::-;:14;;;;:::i;:::-;11765:11;:29;;11757:57;;;::::0;-1:-1:-1;;;11757:57:0;;12363:2:1;11757:57:0::1;::::0;::::1;12345:21:1::0;12402:2;12382:18;;;12375:30;12441:17;12421:18;;;12414:45;12476:18;;11757:57:0::1;12161:339:1::0;11757:57:0::1;11822:10;:24:::0;;;11862:40:::1;::::0;;11617:21:1;;;11674:2;11654:18;;;11647:30;;;;11713:12;11708:2;11693:18;;11686:40;11793:4;11778:20;;11771:36;;;11862:40:0::1;::::0;11758:3:1;11743:19;11862:40:0::1;11405:408:1::0;13107:608:0;11027:8;;;;;;;;-1:-1:-1;;;;;11027:8:0;-1:-1:-1;;;;;11027:18:0;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11013:34:0;:10;-1:-1:-1;;;;;11013:34:0;;11005:61;;;;-1:-1:-1;;;11005:61:0;;12020:2:1;11005:61:0;;;12002:21:1;12059:2;12039:18;;;12032:30;12098:16;12078:18;;;12071:44;12132:18;;11005:61:0;11818:338:1;11005:61:0;9190:3:::1;13228;13218:7;13207:8;;:18;;;;:::i;:::-;:24;;;;:::i;:::-;:36;;;;:::i;:::-;13196:47;::::0;;::::1;:::i;:::-;;;9190:3;13274:20;13286:7;13274:11;:20::i;:::-;13264:30;::::0;:7;:30:::1;:::i;:::-;:42;;;;:::i;:::-;13254:52;;13333:17;;13322:7;:28;13319:389;;13387:7;13366:17;;:28;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;13409:8:0::1;::::0;:14:::1;::::0;;-1:-1:-1;;;13409:14:0;;;;-1:-1:-1;;;;;13409:8:0;;::::1;::::0;:12:::1;::::0;:14:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;:8;:14;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:41;::::0;-1:-1:-1;;;13409:41:0;;-1:-1:-1;;;;;9501:55:1;;;13409:41:0::1;::::0;::::1;9483:74:1::0;9573:18;;;9566:34;;;13409:23:0;;;::::1;::::0;::::1;::::0;9456:18:1;;13409:41:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13508:17:0::1;::::0;13527:13:::1;::::0;13470:71:::1;::::0;;13478:10:::1;9082:34:1::0;;-1:-1:-1;;;;;9152:15:1;;9147:2;9132:18;;9125:43;9184:18;;;9177:34;;;9242:2;9227:18;;9220:34;;;;9285:3;9270:19;;9263:35;13470:71:0::1;::::0;9008:3:1;8993:19;13470:71:0::1;;;;;;;;13107:608:::0;;:::o;13319:389::-:1;-1:-1:-1::0;;;;;13572:19:0;::::1;;::::0;;;:10:::1;:19;::::0;;;;:30;;13595:7;;13572:19;:30:::1;::::0;13595:7;;13572:30:::1;:::i;:::-;::::0;;;-1:-1:-1;;13663:17:0::1;::::0;13682:13:::1;::::0;13622:74:::1;::::0;;13633:10:::1;9082:34:1::0;;-1:-1:-1;;;;;9152:15:1;;9147:2;9132:18;;9125:43;9184:18;;;9177:34;;;9242:2;9227:18;;9220:34;;;;9285:3;9270:19;;9263:35;13622:74:0::1;::::0;9008:3:1;8993:19;13622:74:0::1;8762:542:1::0;12128:197:0;10940:8;;;;;;;;-1:-1:-1;;;;;10940:8:0;-1:-1:-1;;;;;10940:12:0;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10926:28:0;:10;-1:-1:-1;;;;;10926:28:0;;10918:49;;;;-1:-1:-1;;;10918:49:0;;17110:2:1;10918:49:0;;;17092:21:1;17149:1;17129:18;;;17122:29;-1:-1:-1;;;17167:18:1;;;17160:38;17215:18;;10918:49:0;16908:331:1;10918:49:0;9190:3:::1;12200:9;:22;;12192:42;;;::::0;-1:-1:-1;;;12192:42:0;;14140:2:1;12192:42:0::1;::::0;::::1;14122:21:1::0;14179:1;14159:18;;;14152:29;14217:9;14197:18;;;14190:37;14244:18;;12192:42:0::1;13938:330:1::0;12192:42:0::1;12245:8;:20:::0;;;12281:36:::1;::::0;;14826:21:1;;;14883:1;14863:18;;;14856:29;;;;14921:10;14916:2;14901:18;;14894:38;14999:4;14984:20;;14977:36;;;12281::0::1;::::0;14964:3:1;14949:19;12281:36:0::1;14614:405:1::0;12374:336:0;10940:8;;;;;;;;-1:-1:-1;;;;;10940:8:0;-1:-1:-1;;;;;10940:12:0;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10926:28:0;:10;-1:-1:-1;;;;;10926:28:0;;10918:49;;;;-1:-1:-1;;;10918:49:0;;17110:2:1;10918:49:0;;;17092:21:1;17149:1;17129:18;;;17122:29;-1:-1:-1;;;17167:18:1;;;17160:38;17215:18;;10918:49:0;16908:331:1;10918:49:0;12453:1:::1;12443:7;:11;12435:32;;;::::0;-1:-1:-1;;;12435:32:0;;16357:2:1;12435:32:0::1;::::0;::::1;16339:21:1::0;16396:1;16376:18;;;16369:29;-1:-1:-1;;;16414:18:1;;;16407:38;16462:18;;12435:32:0::1;16155:331:1::0;12435:32:0::1;12478:8;::::0;::::1;;;;;;-1:-1:-1::0;;;;;12478:8:0::1;-1:-1:-1::0;;;;;12478:12:0::1;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:63;::::0;;;;12506:10:::1;12478:63;::::0;::::1;8622:34:1::0;12526:4:0::1;8672:18:1::0;;;8665:43;8724:18;;;8717:34;;;-1:-1:-1;;;;;12478:27:0;;;::::1;::::0;::::1;::::0;8534:18:1;;12478:63:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12575:7;12554:17;;:28;;;;;;;:::i;:::-;;;;;;;;12610:7;12593:13;;:24;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;12669:17:0::1;::::0;12688:13:::1;::::0;12635:67:::1;::::0;;12648:10:::1;10225:74:1::0;;10330:2;10315:18;;10308:34;;;10358:18;;;10351:34;;;;10416:2;10401:18;;10394:34;12635:67:0::1;::::0;10212:3:1;10197:19;12635:67:0::1;9994:440:1::0;14138:852:0;14200:13;;14180:17;;:33;14172:58;;;;-1:-1:-1;;;14172:58:0;;14475:2:1;14172:58:0;;;14457:21:1;14514:2;14494:18;;;14487:30;14553:14;14533:18;;;14526:42;14585:18;;14172:58:0;14273:336:1;14172:58:0;14246:11;:9;:11::i;:::-;14238:33;;;;-1:-1:-1;;;14238:33:0;;13114:2:1;14238:33:0;;;13096:21:1;13153:1;13133:18;;;13126:29;13191:11;13171:18;;;13164:39;13220:18;;14238:33:0;12912:332:1;14238:33:0;14282:17;14305:8;;;;;;;;;-1:-1:-1;;;;;14305:8:0;-1:-1:-1;;;;;14305:24:0;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14305:45:0;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14281:71;;;14360:17;9190:3;14404;14393:10;;14380:12;:23;;;;:::i;:::-;:27;;;;:::i;:::-;:37;;;;:::i;:::-;14427:8;;:56;;;;;14457:4;14427:56;;;9807:74:1;9897:18;;;9890:34;;;14427:8:0;9940:18:1;;;9933:50;14360:57:0;;-1:-1:-1;;;;;;14427:8:0;;:21;;9780:18:1;;14427:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14496:8;;;;;;;;-1:-1:-1;;;;;14496:8:0;-1:-1:-1;;;;;14496:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14496:24:0;;14529:8;;;;;;;;-1:-1:-1;;;;;14529:8:0;-1:-1:-1;;;;;14529:23:0;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14496:74;;;;;;;;;;-1:-1:-1;;;;;9501:55:1;;;14496:74:0;;;9483::1;9573:18;;;9566:34;;;9456:18;;14496:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14578:21;14602:8;;;;;;;;;-1:-1:-1;;;;;14602:8:0;-1:-1:-1;;;;;14602:23:0;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14602:50:0;;14667:12;14694:1;14710:16;:14;:16::i;:::-;14749:4;14769:21;:15;14787:3;14769:21;:::i;:::-;14602:199;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14602:199:0;;;;;;;;;;;;:::i;:::-;14578:223;;14835:7;14843:1;14835:10;;;;;;;;:::i;:::-;;;;;;;14814:17;;:31;;;;;;;:::i;:::-;;;;-1:-1:-1;;14869:12:0;14856:10;:25;14923:10;;14899:83;;14911:10;;14923:7;;14931:1;;14923:10;;;;;;:::i;:::-;;;;;;;;;;;;14935:17;;14954:13;;14899:83;;;-1:-1:-1;;;;;10716:55:1;;;;10698:74;;10788:18;;;10781:34;;;;10831:18;;;10824:34;10889:2;10874:18;;10867:34;10932:3;10917:19;;10910:35;;;14899:83:0;;;;;10685:3:1;14899:83:0;;;14164:826;;;14138:852::o;11137:239::-;10940:8;;;;;;;;-1:-1:-1;;;;;10940:8:0;-1:-1:-1;;;;;10940:12:0;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10926:28:0;:10;-1:-1:-1;;;;;10926:28:0;;10918:49;;;;-1:-1:-1;;;10918:49:0;;17110:2:1;10918:49:0;;;17092:21:1;17149:1;17129:18;;;17122:29;-1:-1:-1;;;17167:18:1;;;17160:38;17215:18;;10918:49:0;16908:331:1;10918:49:0;11242:8:::1;::::0;::::1;;;;;;-1:-1:-1::0;;;;;11242:8:0::1;-1:-1:-1::0;;;;;11242:12:0::1;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11223:33:0::1;:9;-1:-1:-1::0;;;;;11223:13:0::1;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11223:33:0::1;;11215:60;;;::::0;-1:-1:-1;;;11215:60:0;;18117:2:1;11215:60:0::1;::::0;::::1;18099:21:1::0;18156:2;18136:18;;;18129:30;18195:16;18175:18;;;18168:44;18229:18;;11215:60:0::1;17915:338:1::0;11215:60:0::1;11286:8;:20:::0;;;::::1;-1:-1:-1::0;;;;;11286:20:0;::::1;::::0;;::::1;::::0;;;11322:46:::1;::::0;;15236:21:1;;;15293:1;15273:18;;;15266:29;;;;15331:10;15326:2;15311:18;;15304:38;15409:4;15394:20;;15387:85;;;;11322:46:0::1;::::0;15374:3:1;15359:19;11322:46:0::1;15024:454:1::0;12716:385:0;10940:8;;;;;;;;-1:-1:-1;;;;;10940:8:0;-1:-1:-1;;;;;10940:12:0;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10926:28:0;:10;-1:-1:-1;;;;;10926:28:0;;10918:49;;;;-1:-1:-1;;;10918:49:0;;17110:2:1;10918:49:0;;;17092:21:1;17149:1;17129:18;;;17122:29;-1:-1:-1;;;17167:18:1;;;17160:38;17215:18;;10918:49:0;16908:331:1;10918:49:0;12796:1:::1;12786:7;:11;12778:32;;;::::0;-1:-1:-1;;;12778:32:0;;16357:2:1;12778:32:0::1;::::0;::::1;16339:21:1::0;16396:1;16376:18;;;16369:29;-1:-1:-1;;;16414:18:1;;;16407:38;16462:18;;12778:32:0::1;16155:331:1::0;12778:32:0::1;12840:17;;12829:7;:28;;12821:56;;;::::0;-1:-1:-1;;;12821:56:0;;13451:2:1;12821:56:0::1;::::0;::::1;13433:21:1::0;13490:2;13470:18;;;13463:30;13529:17;13509:18;;;13502:45;13564:18;;12821:56:0::1;13249:339:1::0;12821:56:0::1;12888:8;::::0;::::1;;;;;;-1:-1:-1::0;;;;;12888:8:0::1;-1:-1:-1::0;;;;;12888:12:0::1;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:44;::::0;-1:-1:-1;;;12888:44:0;;12912:10:::1;12888:44;::::0;::::1;9483:74:1::0;9573:18;;;9566:34;;;-1:-1:-1;;;;;12888:23:0;;;::::1;::::0;::::1;::::0;9456:18:1;;12888:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12966:7;12945:17;;:28;;;;;;;:::i;:::-;;;;;;;;13001:7;12984:13;;:24;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;13060:17:0::1;::::0;13079:13:::1;::::0;13026:67:::1;::::0;;13039:10:::1;10225:74:1::0;;10330:2;10315:18;;10308:34;;;10358:18;;;10351:34;;;;10416:2;10401:18;;10394:34;13026:67:0::1;::::0;10212:3:1;10197:19;13026:67:0::1;9994:440:1::0;11913:209:0;10940:8;;;;;;;;-1:-1:-1;;;;;10940:8:0;-1:-1:-1;;;;;10940:12:0;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10926:28:0;:10;-1:-1:-1;;;;;10926:28:0;;10918:49;;;;-1:-1:-1;;;10918:49:0;;17110:2:1;10918:49:0;;;17092:21:1;17149:1;17129:18;;;17122:29;-1:-1:-1;;;17167:18:1;;;17160:38;17215:18;;10918:49:0;16908:331:1;10918:49:0;11989:1:::1;11979:6;:11;;11971:31;;;::::0;-1:-1:-1;;;11971:31:0;;16022:2:1;11971:31:0::1;::::0;::::1;16004:21:1::0;16061:1;16041:18;;;16034:29;16099:9;16079:18;;;16072:37;16126:18;;11971:31:0::1;15820:330:1::0;11971:31:0::1;12031:2;12021:6;:12;;12013:33;;;::::0;-1:-1:-1;;;12013:33:0;;17446:2:1;12013:33:0::1;::::0;::::1;17428:21:1::0;17485:1;17465:18;;;17458:29;17523:10;17503:18;;;17496:38;17551:18;;12013:33:0::1;17244:331:1::0;12013:33:0::1;12054:5;:14:::0;;;12084:30:::1;::::0;;12717:21:1;;;12754:18;;;12747:29;;;;12812:7;12807:2;12792:18;;12785:35;12887:4;12872:20;;12865:36;;;12084:30:0::1;::::0;12852:3:1;12837:19;12084:30:0::1;12505:402:1::0;15935:1236:0;15991:4;15996;16001;16006:32;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16006:32:0;16039:13;16054:46;16102:16;;:::i;:::-;16130:24;16157:8;;:36;;;;;-1:-1:-1;;;;;7960:55:1;;;16157:36:0;;;7942:74:1;16157:8:0;;;;:27;;7915:18:1;;16157:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16157:36:0;;;;;;;;;;;;:::i;:::-;16130:63;;16206:60;16313:10;:17;16269:62;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;16206:125;;16346:6;16342:137;16362:10;:17;16358:1;:21;16342:137;;;16419:8;;16453:13;;-1:-1:-1;;;;;16419:8:0;;;;:33;;16453:10;;16464:1;;16453:13;;;;;;:::i;:::-;;;;;;;16419:48;;;;;;;;;;;;;18404:25:1;;18392:2;18377:18;;18258:177;16419:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16400:13;16414:1;16400:16;;;;;;;;:::i;:::-;;;;;;:67;;;;16381:3;;;;;:::i;:::-;;;;16342:137;;;;16491:23;;:::i;:::-;16529:6;16525:303;16545:1;16541;:5;16525:303;;;16567:14;16584:8;;:16;;-1:-1:-1;;;16584:16:0;;;;;18404:25:1;;;-1:-1:-1;;;;;16584:8:0;;;;:13;;18377:18:1;;16584:16:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:35;;-1:-1:-1;;;16584:35:0;;-1:-1:-1;;;;;7960:55:1;;;16584:35:0;;;7942:74:1;16584:26:0;;;;;;;7915:18:1;;16584:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16567:52;;16657:9;16646:21;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16646:21:0;;16634:6;16641:1;16634:9;;;;;;;:::i;:::-;;;;:33;16686:6;16682:135;16702:9;16698:1;:13;16682:135;;;16752:8;;:16;;-1:-1:-1;;;16752:16:0;;;;;18404:25:1;;;-1:-1:-1;;;;;16752:8:0;;;;:13;;18377:18:1;;16752:16:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16752:36:0;;16789:7;16798:1;16752:48;;;;;;;;;;;;;;;-1:-1:-1;;;;;9501:55:1;;;;9483:74;;9588:2;9573:18;;9566:34;9471:2;9456:18;;9309:297;16752:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16737:6;16744:1;16737:9;;;;;;;:::i;:::-;;;;;16747:1;16737:12;;;;;;;;:::i;:::-;;;;;;;;;;:63;16713:3;;;;:::i;:::-;;;;16682:135;;;;16552:276;16548:3;;;;;:::i;:::-;;;;16525:303;;;;16862:8;;;;;;;;-1:-1:-1;;;;;16862:8:0;-1:-1:-1;;;;;16862:12:0;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16904:8;;16862:52;;;;;-1:-1:-1;;;;;8280:15:1;;;16862:52:0;;;8262:34:1;16904:8:0;;;8312:18:1;;;8305:43;16862:24:0;;;;;8174:18:1;;16862:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16929:8;;;;;;;;-1:-1:-1;;;;;16929:8:0;-1:-1:-1;;;;;16929:12:0;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:33;;-1:-1:-1;;;16929:33:0;;-1:-1:-1;;;;;7960:55:1;;;16929:33:0;;;7942:74:1;16929:24:0;;;;;;;7915:18:1;;16929:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16977:8;;;;;;;;-1:-1:-1;;;;;16977:8:0;-1:-1:-1;;;;;16977:19:0;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16977:31:0;;17009:7;17026:8;;;;;;;;-1:-1:-1;;;;;17026:8:0;16977:59;;;;;;;;;;;;;;;-1:-1:-1;;;;;8280:15:1;;;8262:34;;8332:15;;8327:2;8312:18;;8305:43;8189:2;8174:18;;8027:327;16977:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17051:8;;;;;;;;-1:-1:-1;;;;;17051:8:0;-1:-1:-1;;;;;17051:16:0;;17068:7;17051:25;;;;;;;;;;;;;;-1:-1:-1;;;;;7960:55:1;;;;7942:74;;7930:2;7915:18;;7796:226;17051:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16840:323;;;;-1:-1:-1;16840:323:0;-1:-1:-1;16840:323:0;;-1:-1:-1;17091:10:0;;-1:-1:-1;17117:13:0;;-1:-1:-1;17091:10:0;-1:-1:-1;15935:1236:0;-1:-1:-1;;15935:1236:0:o;11405:232::-;10940:8;;;;;;;;-1:-1:-1;;;;;10940:8:0;-1:-1:-1;;;;;10940:12:0;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10926:28:0;:10;-1:-1:-1;;;;;10926:28:0;;10918:49;;;;-1:-1:-1;;;10918:49:0;;17110:2:1;10918:49:0;;;17092:21:1;17149:1;17129:18;;;17122:29;-1:-1:-1;;;17167:18:1;;;17160:38;17215:18;;10918:49:0;16908:331:1;10918:49:0;11508:3:::1;11489:15;:22;;11481:44;;;::::0;-1:-1:-1;;;11481:44:0;;15685:2:1;11481:44:0::1;::::0;::::1;15667:21:1::0;15724:1;15704:18;;;15697:29;15762:11;15742:18;;;15735:39;15791:18;;11481:44:0::1;15483:332:1::0;11481:44:0::1;11533:14;:32:::0;;;11581:48:::1;::::0;;16703:21:1;;;16760:2;16740:18;;;16733:30;;;;16799:16;16794:2;16779:18;;16772:44;16883:4;16868:20;;16861:36;;;11581:48:0::1;::::0;16848:3:1;16833:19;11581:48:0::1;16491:412:1::0;15021:147:0;15062:4;15114:46;15127:17;;15146:13;;15114:12;:46::i;:::-;15101:10;;:59;;;;:::i;:::-;15085:12;:75;;15078:82;;15021:147;:::o;15434:220::-;15490:4;15528:8;;:26;;;;;;;;15490:4;;-1:-1:-1;;;;;15528:8:0;;:24;;:26;;;;;;;;;;;;;;:8;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15528:45:0;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15506:69;-1:-1:-1;15506:69:0;;-1:-1:-1;15617:17:0;9190:3;15617:7;:17;:::i;:::-;:28;;;;:::i;:::-;15607:38;;9190:3;15607:38;:::i;:::-;15593:12;15604:1;9190:3;15593:12;:::i;:::-;:53;;;;:::i;:::-;15586:60;15434:220;-1:-1:-1;;;15434:220:0:o;15660:235::-;15759:16;;;15773:1;15759:16;;;15707;15759;;;;;15707;15735:21;;15759:16;15773:1;15759:16;;;;;;;;;;-1:-1:-1;15759:16:0;15735:40;;15804:8;;;;;;;;-1:-1:-1;;;;;15804:8:0;-1:-1:-1;;;;;15804:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15786:4;15791:1;15786:7;;;;;;;;:::i;:::-;;;;;;:35;-1:-1:-1;;;;;15786:35:0;;;-1:-1:-1;;;;;15786:35:0;;;;;15850:8;;;;;;;;-1:-1:-1;;;;;15850:8:0;-1:-1:-1;;;;;15850:12:0;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15832:4;15837:1;15832:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15832:33:0;;;:7;;;;;;;;;;;:33;15883:4;15660:235;-1:-1:-1;15660:235:0:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:138:1:-;93:13;;115:31;93:13;115:31;:::i;:::-;14:138;;;:::o;157:164::-;233:13;;282;;275:21;265:32;;255:60;;311:1;308;301:12;326:247;385:6;438:2;426:9;417:7;413:23;409:32;406:52;;;454:1;451;444:12;406:52;493:9;480:23;512:31;537:5;512:31;:::i;578:251::-;648:6;701:2;689:9;680:7;676:23;672:32;669:52;;;717:1;714;707:12;669:52;749:9;743:16;768:31;793:5;768:31;:::i;834:315::-;902:6;910;963:2;951:9;942:7;938:23;934:32;931:52;;;979:1;976;969:12;931:52;1018:9;1005:23;1037:31;1062:5;1037:31;:::i;:::-;1087:5;1139:2;1124:18;;;;1111:32;;-1:-1:-1;;;834:315:1:o;1154:947::-;1249:6;1280:2;1323;1311:9;1302:7;1298:23;1294:32;1291:52;;;1339:1;1336;1329:12;1291:52;1372:9;1366:16;1401:18;1442:2;1434:6;1431:14;1428:34;;;1458:1;1455;1448:12;1428:34;1496:6;1485:9;1481:22;1471:32;;1541:7;1534:4;1530:2;1526:13;1522:27;1512:55;;1563:1;1560;1553:12;1512:55;1592:2;1586:9;1614:2;1610;1607:10;1604:36;;;1620:18;;:::i;:::-;1666:2;1663:1;1659:10;1649:20;;1689:28;1713:2;1709;1705:11;1689:28;:::i;:::-;1751:15;;;1782:12;;;;1814:11;;;1844;;;1840:20;;1837:33;-1:-1:-1;1834:53:1;;;1883:1;1880;1873:12;1834:53;1905:1;1896:10;;1915:156;1929:2;1926:1;1923:9;1915:156;;;1986:10;;1974:23;;1947:1;1940:9;;;;;2017:12;;;;2049;;1915:156;;;-1:-1:-1;2090:5:1;1154:947;-1:-1:-1;;;;;;;;1154:947:1:o;2106:202::-;2173:6;2226:2;2214:9;2205:7;2201:23;2197:32;2194:52;;;2242:1;2239;2232:12;2194:52;2265:37;2292:9;2265:37;:::i;3721:1393::-;3826:6;3870:9;3861:7;3857:23;3900:3;3896:2;3892:12;3889:32;;;3917:1;3914;3907:12;3889:32;3943:22;;:::i;:::-;3984:6;4010:2;4006;4002:11;3999:31;;;4026:1;4023;4016:12;3999:31;4054:22;;:::i;:::-;4039:37;;4101:40;4131:9;4101:40;:::i;:::-;4092:7;4085:57;4197:2;4186:9;4182:18;4176:25;4171:2;4162:7;4158:16;4151:51;4257:2;4246:9;4242:18;4236:25;4231:2;4222:7;4218:16;4211:51;4317:2;4306:9;4302:18;4296:25;4291:2;4282:7;4278:16;4271:51;4378:3;4367:9;4363:19;4357:26;4351:3;4342:7;4338:17;4331:53;4440:3;4429:9;4425:19;4419:26;4413:3;4404:7;4400:17;4393:53;4482:48;4524:4;4513:9;4509:20;4482:48;:::i;:::-;4475:4;4462:18;;4455:76;4587:3;4572:19;;;4566:26;4547:17;;;4540:53;4612:3;4655:18;;;4649:25;4631:16;;;4624:51;4694:3;4737:18;;;4731:25;4713:16;;;4706:51;4766:22;;;4826:18;;;4820:25;4815:2;4804:14;;4797:49;4899:3;4884:19;;4878:26;4873:2;4862:14;;4855:50;4958:3;4943:19;;4937:26;4932:2;4921:14;;4914:50;5018:3;5003:19;;4997:26;4991:3;4980:15;;4973:51;5078:3;5063:19;;;5057:26;5051:3;5040:15;;5033:51;-1:-1:-1;4773:5:1;3721:1393;-1:-1:-1;3721:1393:1:o;5119:625::-;5212:6;5265:2;5253:9;5244:7;5240:23;5236:32;5233:52;;;5281:1;5278;5271:12;5233:52;5314:2;5308:9;5356:2;5348:6;5344:15;5425:6;5413:10;5410:22;5389:18;5377:10;5374:34;5371:62;5368:88;;;5436:18;;:::i;:::-;5472:2;5465:22;5511:16;;5496:32;;5571:2;5556:18;;5550:25;5584:31;5550:25;5584:31;:::i;:::-;5643:2;5631:15;;5624:30;5708:2;5693:18;;;5687:25;5670:15;;;5663:50;;;;-1:-1:-1;5635:6:1;5119:625;-1:-1:-1;5119:625:1:o;5749:180::-;5808:6;5861:2;5849:9;5840:7;5836:23;5832:32;5829:52;;;5877:1;5874;5867:12;5829:52;-1:-1:-1;5900:23:1;;5749:180;-1:-1:-1;5749:180:1:o;5934:184::-;6004:6;6057:2;6045:9;6036:7;6032:23;6028:32;6025:52;;;6073:1;6070;6063:12;6025:52;-1:-1:-1;6096:16:1;;5934:184;-1:-1:-1;5934:184:1:o;6123:248::-;6191:6;6199;6252:2;6240:9;6231:7;6227:23;6223:32;6220:52;;;6268:1;6265;6258:12;6220:52;-1:-1:-1;;6291:23:1;;;6361:2;6346:18;;;6333:32;;-1:-1:-1;6123:248:1:o;6376:245::-;6455:6;6463;6516:2;6504:9;6495:7;6491:23;6487:32;6484:52;;;6532:1;6529;6522:12;6484:52;-1:-1:-1;;6555:16:1;;6611:2;6596:18;;;6590:25;6555:16;;6590:25;;-1:-1:-1;6376:245:1:o;6758:497::-;6817:3;6848;6902;6895:5;6891:15;6929:5;6952:1;6962:267;6976:4;6973:1;6970:11;6962:267;;;7045:5;7039:4;7035:16;7030:3;7023:29;7073:49;7117:4;7108:6;7102:13;7073:49;:::i;:::-;7145:4;7207:12;;;;7065:57;;-1:-1:-1;7172:15:1;;;;;6996:1;6989:9;6962:267;;;-1:-1:-1;7245:4:1;;6758:497;-1:-1:-1;;;;;6758:497:1:o;7260:435::-;7313:3;7351:5;7345:12;7378:6;7373:3;7366:19;7404:4;7433:2;7428:3;7424:12;7417:19;;7470:2;7463:5;7459:14;7491:1;7501:169;7515:6;7512:1;7509:13;7501:169;;;7576:13;;7564:26;;7610:12;;;;7645:15;;;;7537:1;7530:9;7501:169;;;-1:-1:-1;7686:3:1;;7260:435;-1:-1:-1;;;;;7260:435:1:o;18440:1026::-;18702:4;18750:3;18739:9;18735:19;18781:6;18770:9;18763:25;18807:2;18845:6;18840:2;18829:9;18825:18;18818:34;18888:3;18883:2;18872:9;18868:18;18861:31;18912:6;18947;18941:13;18978:6;18970;18963:22;19016:3;19005:9;19001:19;18994:26;;19055:2;19047:6;19043:15;19029:29;;19076:1;19086:218;19100:6;19097:1;19094:13;19086:218;;;19165:13;;-1:-1:-1;;;;;19161:62:1;19149:75;;19279:15;;;;19244:12;;;;19122:1;19115:9;19086:218;;;-1:-1:-1;;;;;;;19360:55:1;;;;19355:2;19340:18;;19333:83;-1:-1:-1;;;19447:3:1;19432:19;19425:35;19321:3;18440:1026;-1:-1:-1;;;18440:1026:1:o;19471:2770::-;20043:4;20072:3;20102:6;20091:9;20084:25;20128:2;20166:6;20161:2;20150:9;20146:18;20139:34;20192:2;20230:6;20225:2;20214:9;20210:18;20203:34;20256:2;20300:6;20294:13;20289:2;20278:9;20274:18;20267:41;20355:2;20347:6;20343:15;20337:22;20378:3;-1:-1:-1;;;;;20421:12:1;20417:61;20412:2;20401:9;20397:18;20390:89;20516:2;20508:6;20504:15;20498:22;20488:32;;20539:3;20578:2;20573;20562:9;20558:18;20551:30;20600:3;20590:13;;20639:2;20634;20623:9;20619:18;20612:30;20665:56;20717:2;20706:9;20702:18;20694:6;20665:56;:::i;:::-;20779:22;;;20740:3;20759:18;;;20752:50;;;;20851:13;;20873:22;;;20949:15;;;;20911;;;20982:1;20992:1119;21006:6;21003:1;21000:13;20992:1119;;;21066:13;;21103:10;;21145;;-1:-1:-1;;;;;6692:54:1;6680:67;;21201:12;;;21195:19;21181:12;;;21174:41;21255:12;;;21249:19;21235:12;;;21228:41;21309:12;;;21303:19;21289:12;;;21282:41;21363:12;;;21357:19;21343:12;;;21336:41;21417:12;;;21411:19;21397:12;;;21390:41;21472:12;;;21466:19;7770:13;7763:21;21530:12;;;7751:34;21583:12;;;21577:19;21563:12;;;21556:41;21621:6;21668:13;;;21662:20;21647:13;;;21640:43;21723:12;;21717:19;21703:12;;;21696:41;21781:12;;;21775:19;21766:6;21757:16;;21750:45;21839:12;;;21833:19;21824:6;21815:16;;21808:45;21897:12;;;21891:19;21882:6;21873:16;;21866:45;21955:12;;;21949:19;21940:6;21931:16;;21924:45;22013:12;;22007:19;21998:6;21989:16;;21982:45;22086:15;;;;22056:6;22047:16;;;;21028:1;21021:9;20992:1119;;;20996:3;;22160:9;22155:3;22151:19;22142:6;22131:9;22127:22;22120:51;22188:47;22231:3;22223:6;22188:47;:::i;:::-;22180:55;;;;;;;;;;;;19471:2770;;;;;;;;;;:::o;22246:253::-;22318:2;22312:9;22360:4;22348:17;;22395:18;22380:34;;22416:22;;;22377:62;22374:88;;;22442:18;;:::i;:::-;22478:2;22471:22;22246:253;:::o;22504:255::-;22576:2;22570:9;22618:6;22606:19;;22655:18;22640:34;;22676:22;;;22637:62;22634:88;;;22702:18;;:::i;22764:275::-;22835:2;22829:9;22900:2;22881:13;;-1:-1:-1;;22877:27:1;22865:40;;22935:18;22920:34;;22956:22;;;22917:62;22914:88;;;22982:18;;:::i;:::-;23018:2;23011:22;22764:275;;-1:-1:-1;22764:275:1:o;23044:128::-;23084:3;23115:1;23111:6;23108:1;23105:13;23102:39;;;23121:18;;:::i;:::-;-1:-1:-1;23157:9:1;;23044:128::o;23177:274::-;23217:1;23243;23233:189;;-1:-1:-1;;;23275:1:1;23268:88;23379:4;23376:1;23369:15;23407:4;23404:1;23397:15;23233:189;-1:-1:-1;23436:9:1;;23177:274::o;23456:422::-;23545:1;23588:5;23545:1;23602:270;23623:7;23613:8;23610:21;23602:270;;;23682:4;23678:1;23674:6;23670:17;23664:4;23661:27;23658:53;;;23691:18;;:::i;:::-;23741:7;23731:8;23727:22;23724:55;;;23761:16;;;;23724:55;23840:22;;;;23800:15;;;;23602:270;;;23606:3;23456:422;;;;;:::o;23883:131::-;23943:5;23972:36;23999:8;23993:4;23972:36;:::i;24019:140::-;24077:5;24106:47;24147:4;24137:8;24133:19;24127:4;24164:806;24213:5;24243:8;24233:80;;-1:-1:-1;24284:1:1;24298:5;;24233:80;24332:4;24322:76;;-1:-1:-1;24369:1:1;24383:5;;24322:76;24414:4;24432:1;24427:59;;;;24500:1;24495:130;;;;24407:218;;24427:59;24457:1;24448:10;;24471:5;;;24495:130;24532:3;24522:8;24519:17;24516:43;;;24539:18;;:::i;:::-;-1:-1:-1;;24595:1:1;24581:16;;24610:5;;24407:218;;24709:2;24699:8;24696:16;24690:3;24684:4;24681:13;24677:36;24671:2;24661:8;24658:16;24653:2;24647:4;24644:12;24640:35;24637:77;24634:159;;;-1:-1:-1;24746:19:1;;;24778:5;;24634:159;24825:34;24850:8;24844:4;24825:34;:::i;:::-;24895:6;24891:1;24887:6;24883:19;24874:7;24871:32;24868:58;;;24906:18;;:::i;:::-;24944:20;;24164:806;-1:-1:-1;;;24164:806:1:o;24975:168::-;25015:7;25081:1;25077;25073:6;25069:14;25066:1;25063:21;25058:1;25051:9;25044:17;25040:45;25037:71;;;25088:18;;:::i;:::-;-1:-1:-1;25128:9:1;;24975:168::o;25148:125::-;25188:4;25216:1;25213;25210:8;25207:34;;;25221:18;;:::i;:::-;-1:-1:-1;25258:9:1;;25148:125::o;25278:135::-;25317:3;-1:-1:-1;;25338:17:1;;25335:43;;;25358:18;;:::i;:::-;-1:-1:-1;25405:1:1;25394:13;;25278:135::o;25418:184::-;-1:-1:-1;;;25467:1:1;25460:88;25567:4;25564:1;25557:15;25591:4;25588:1;25581:15;25607:184;-1:-1:-1;;;25656:1:1;25649:88;25756:4;25753:1;25746:15;25780:4;25777:1;25770:15;25796:184;-1:-1:-1;;;25845:1:1;25838:88;25945:4;25942:1;25935:15;25969:4;25966:1;25959:15;25985:154;-1:-1:-1;;;;;26064:5:1;26060:54;26053:5;26050:65;26040:93;;26129:1;26126;26119:12;26040:93;25985:154;:::o
Swarm Source
ipfs://18171afbf131f672438cc2c095c590737612c1aac93b85bd2e28ea1be3b8d584
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.