Source Code
Overview
ETH Balance
0 ETH
ETH Value
$0.00
Cross-Chain Transactions
Loading...
Loading
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"buyer","type":"address"},{"indexed":false,"internalType":"address","name":"market","type":"address"},{"indexed":false,"internalType":"enum IThalesAMM.Position","name":"position","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sUSDPaid","type":"uint256"},{"indexed":false,"internalType":"address","name":"susd","type":"address"},{"indexed":false,"internalType":"address","name":"asset","type":"address"}],"name":"BoughtFromAmm","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"buyer","type":"address"},{"indexed":false,"internalType":"uint256","name":"sUSDPaid","type":"uint256"},{"indexed":false,"internalType":"bool","name":"inTheMoney","type":"bool"}],"name":"BoughtOptionType","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"buyer","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sUSDPaid","type":"uint256"}],"name":"BoughtWithDiscount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerNominated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"isPaused","type":"bool"}],"name":"PauseChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"refferer","type":"address"},{"indexed":false,"internalType":"address","name":"trader","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"volume","type":"uint256"}],"name":"ReferrerPaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"asset","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"_cap","type":"uint256"}],"name":"SetCapPerAsset","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"asset","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"_impliedVolatility","type":"uint256"}],"name":"SetImpliedVolatilityPerAsset","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_spread","type":"uint256"}],"name":"SetMaxSpread","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"minPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"capPerMarket","type":"uint256"}],"name":"SetMinMaxSupportedPriceCapPerMarket","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_spread","type":"uint256"}],"name":"SetMinSpread","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_minimalTimeLeftToMaturity","type":"uint256"}],"name":"SetMinimalTimeLeftToMaturity","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_manager","type":"address"}],"name":"SetPositionalMarketManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_priceFeed","type":"address"}],"name":"SetPriceFeed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sUSD","type":"address"}],"name":"SetSUSD","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_safeBox","type":"address"}],"name":"SetSafeBox","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_safeBoxImpact","type":"uint256"}],"name":"SetSafeBoxImpact","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"seller","type":"address"},{"indexed":false,"internalType":"address","name":"market","type":"address"},{"indexed":false,"internalType":"enum IThalesAMM.Position","name":"position","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sUSDPaid","type":"uint256"},{"indexed":false,"internalType":"address","name":"susd","type":"address"},{"indexed":false,"internalType":"address","name":"asset","type":"address"}],"name":"SoldToAMM","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"market","type":"address"},{"internalType":"enum IThalesAMM.Position","name":"position","type":"uint8"}],"name":"availableToBuyFromAMM","outputs":[{"internalType":"uint256","name":"_available","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"market","type":"address"},{"internalType":"enum IThalesAMM.Position","name":"position","type":"uint8"}],"name":"availableToSellToAMM","outputs":[{"internalType":"uint256","name":"_available","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"market","type":"address"},{"internalType":"enum IThalesAMM.Position","name":"position","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"expectedPayout","type":"uint256"},{"internalType":"uint256","name":"additionalSlippage","type":"uint256"}],"name":"buyFromAMM","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"market","type":"address"},{"internalType":"enum IThalesAMM.Position","name":"position","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"expectedPayout","type":"uint256"},{"internalType":"uint256","name":"additionalSlippage","type":"uint256"},{"internalType":"address","name":"collateral","type":"address"},{"internalType":"address","name":"_referrer","type":"address"}],"name":"buyFromAMMWithDifferentCollateralAndReferrer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"market","type":"address"},{"internalType":"enum IThalesAMM.Position","name":"position","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"expectedPayout","type":"uint256"},{"internalType":"uint256","name":"additionalSlippage","type":"uint256"},{"internalType":"address","name":"_referrer","type":"address"}],"name":"buyFromAMMWithReferrer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"market","type":"address"},{"internalType":"enum IThalesAMM.Position","name":"position","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"buyFromAmmQuote","outputs":[{"internalType":"uint256","name":"_quote","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"market","type":"address"},{"internalType":"enum IThalesAMM.Position","name":"position","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"collateral","type":"address"}],"name":"buyFromAmmQuoteWithDifferentCollateral","outputs":[{"internalType":"uint256","name":"collateralQuote","type":"uint256"},{"internalType":"uint256","name":"sUSDToPay","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"market","type":"address"},{"internalType":"enum IThalesAMM.Position","name":"position","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"buyPriceImpact","outputs":[{"internalType":"int256","name":"_priceImpact","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"capPerMarket","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"curveOnrampEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"curveSUSD","outputs":[{"internalType":"contract ICurveSUSD","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dai","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"asset","type":"bytes32"}],"name":"getCapPerAsset","outputs":[{"internalType":"uint256","name":"_cap","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"impliedVolatilityPerAsset","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initNonReentrant","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"contract IPriceFeed","name":"_priceFeed","type":"address"},{"internalType":"contract IERC20Upgradeable","name":"_sUSD","type":"address"},{"internalType":"uint256","name":"_capPerMarket","type":"uint256"},{"internalType":"address","name":"_deciMath","type":"address"},{"internalType":"uint256","name":"_min_spread","type":"uint256"},{"internalType":"uint256","name":"_max_spread","type":"uint256"},{"internalType":"uint256","name":"_minimalTimeLeftToMaturity","type":"uint256"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"market","type":"address"}],"name":"isMarketInAMMTrading","outputs":[{"internalType":"bool","name":"isTrading","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastPauseTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityPool","outputs":[{"internalType":"contract ThalesAMMLiquidityPool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxAllowedPegSlippagePercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupportedPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"max_spread","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minSupportedPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"min_spread","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"min_spreadPerAddress","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimalTimeLeftToMaturity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"nominateNewOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"nominatedOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"market","type":"address"},{"internalType":"enum IThalesAMM.Position","name":"position","type":"uint8"}],"name":"price","outputs":[{"internalType":"uint256","name":"priceToReturn","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"priceFeed","outputs":[{"internalType":"contract IPriceFeed","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"referrals","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"referrerFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"retrieveSUSDAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sUSD","outputs":[{"internalType":"contract IERC20Upgradeable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"safeBox","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"safeBoxFeePerAddress","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"safeBoxImpact","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"market","type":"address"},{"internalType":"enum IThalesAMM.Position","name":"position","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sellPriceImpact","outputs":[{"internalType":"uint256","name":"_impact","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"market","type":"address"},{"internalType":"enum IThalesAMM.Position","name":"position","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"expectedPayout","type":"uint256"},{"internalType":"uint256","name":"additionalSlippage","type":"uint256"}],"name":"sellToAMM","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"market","type":"address"},{"internalType":"enum IThalesAMM.Position","name":"position","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sellToAmmQuote","outputs":[{"internalType":"uint256","name":"_quote","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IThalesAMMUtils","name":"_ammUtils","type":"address"}],"name":"setAmmUtils","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"asset","type":"bytes32"},{"internalType":"uint256","name":"_cap","type":"uint256"}],"name":"setCapPerAsset","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_curveSUSD","type":"address"},{"internalType":"address","name":"_dai","type":"address"},{"internalType":"address","name":"_usdc","type":"address"},{"internalType":"address","name":"_usdt","type":"address"},{"internalType":"bool","name":"_curveOnrampEnabled","type":"bool"},{"internalType":"uint256","name":"_maxAllowedPegSlippagePercentage","type":"uint256"}],"name":"setCurveSUSD","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"asset","type":"bytes32"},{"internalType":"uint256","name":"_impliedVolatility","type":"uint256"}],"name":"setImpliedVolatilityPerAsset","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ThalesAMMLiquidityPool","name":"_liquidityPool","type":"address"}],"name":"setLiquidityPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minspread","type":"uint256"},{"internalType":"uint256","name":"_maxspread","type":"uint256"}],"name":"setMinMaxSpread","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minSupportedPrice","type":"uint256"},{"internalType":"uint256","name":"_maxSupportedPrice","type":"uint256"},{"internalType":"uint256","name":"_capPerMarket","type":"uint256"}],"name":"setMinMaxSupportedPriceAndCap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"newFee","type":"uint256"}],"name":"setMinSpreadPerAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minimalTimeLeftToMaturity","type":"uint256"}],"name":"setMinimalTimeLeftToMaturity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_paused","type":"bool"}],"name":"setPaused","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_manager","type":"address"}],"name":"setPositionalMarketManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IPriceFeed","name":"_priceFeed","type":"address"},{"internalType":"contract IERC20Upgradeable","name":"_sUSD","type":"address"}],"name":"setPriceFeedAndSUSD","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_safeBox","type":"address"},{"internalType":"uint256","name":"_safeBoxImpact","type":"uint256"}],"name":"setSafeBoxData","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"newFee","type":"uint256"}],"name":"setSafeBoxFeePerAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IStakingThales","name":"_stakingThales","type":"address"},{"internalType":"address","name":"_referrals","type":"address"},{"internalType":"uint256","name":"_referrerFee","type":"uint256"}],"name":"setStakingThalesAndReferrals","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setWhitelistedAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"spentOnMarket","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingThales","outputs":[{"internalType":"contract IStakingThales","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"proxyAddress","type":"address"}],"name":"transferOwnershipAtInit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"tokens","type":"address[]"},{"internalType":"address payable","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"all","type":"bool"}],"name":"transferTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"usdc","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"usdt","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelistedAddresses","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]Contract Creation Code
608060405234801561001057600080fd5b50615f8080620000216000396000f3fe608060405234801561001057600080fd5b50600436106103fc5760003560e01c80638517020911610215578063cafb3ca211610125578063ebc79772116100b8578063f502b00311610087578063f502b003146108cd578063f8debeb7146108ed578063fb91d41c14610900578063fc1ed85714610909578063fd8a8cc61461091c57600080fd5b8063ebc797721461088c578063efb1fe3514610894578063efc15251146108a7578063f4b9fa75146108ba57600080fd5b8063d3dc7539116100f4578063d3dc75391461083f578063d4a2641b14610852578063d69fb6681461087a578063df8974d01461088357600080fd5b8063cafb3ca2146107f3578063d162492414610806578063d333ca1914610819578063d3c4297c1461082c57600080fd5b8063a5bf660d116101a8578063bf996ae311610177578063bf996ae314610787578063c2783f921461079a578063c3b83f5f146107ad578063c4dc27d7146107c0578063c8f0b4ec146107e057600080fd5b8063a5bf660d1461073b578063ad18f0da1461074e578063bbdf88ce14610761578063bf46c0b41461077457600080fd5b8063931b2040116101e4578063931b2040146106f95780639324cac7146107025780639f916c9f14610715578063a273ecf11461072857600080fd5b806385170209146106b15780638875eb84146106c45780638da5cb5b146106d757806391b4ded9146106f057600080fd5b8063481c6a7511610310578063665a11ca116102a35780636ed033f8116102725780636ed033f814610658578063741bef1a1461066b57806379ba5097146106835780637b337a361461068b578063826153491461069e57600080fd5b8063665a11ca146106205780636aaa81b6146106335780636cc5a6ff1461063c5780636e88a7bd1461064f57600080fd5b80635727a0f3116102df5780635727a0f3146105cd5780635c975abb146105e05780635ef85b26146105ed57806365f567721461060057600080fd5b8063481c6a751461058157806348663e95146105945780634a50215e146105a757806353a47bb7146105ba57600080fd5b80631fbb38e8116103935780632f48ab7d116103625780632f48ab7d14610514578063316425c31461053f5780633443b326146105485780633ce1108d1461055b5780633e413bee1461056e57600080fd5b80631fbb38e8146104c4578063270e13ef146104d85780632909f51a146104eb5780632972e8ab146104f457600080fd5b80631627540c116103cf5780631627540c1461048257806316c38b3c1461049557806319b844a6146104a85780631c37d04b146104b157600080fd5b8063018770201461040157806306c933d8146104165780630f13aae81461044e57806313af40351461046f575b600080fd5b61041461040f366004615544565b61092f565b005b610439610424366004615544565b60146020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61046161045c36600461570b565b610959565b604051908152602001610445565b61041461047d366004615544565b6109a3565b610414610490366004615544565b610ae3565b6104146104a3366004615972565b610b39565b61046160125481565b6104616104bf36600461570b565b610baf565b601a5461043990600160a01b900460ff1681565b6104616104e636600461570b565b610bdc565b610461601b5481565b610461610502366004615544565b601e6020526000908152604090205481565b601954610527906001600160a01b031681565b6040516001600160a01b039091168152602001610445565b610461600a5481565b6104146105563660046158c2565b610c35565b610461610569366004615798565b610c59565b601854610527906001600160a01b031681565b600754610527906001600160a01b031681565b600e54610527906001600160a01b031681565b6104146105b53660046158d4565b611252565b600154610527906001600160a01b031681565b6104396105db366004615544565b6113f3565b6003546104399060ff1681565b6104146105fb3660046159c2565b6115a3565b61046161060e366004615544565b601d6020526000908152604090205481565b601f54610527906001600160a01b031681565b61046160095481565b61046161064a36600461584a565b6117c9565b61046160165481565b6104616106663660046156d7565b611b48565b6005546105279061010090046001600160a01b031681565b610414611df0565b61041461069936600461561f565b611eed565b6104146106ac3660046159c2565b611f20565b6104146106bf3660046159aa565b611f95565b6104616106d2366004615798565b611fd2565b600054610527906201000090046001600160a01b031681565b61046160025481565b61046160115481565b600654610527906001600160a01b031681565b6104616107233660046157e6565b612046565b6104146107363660046158c2565b61213a565b601754610527906001600160a01b031681565b61041461075c366004615657565b61215e565b61041461076f366004615a3e565b612283565b61046161078236600461570b565b612332565b610414610795366004615544565b61245a565b6104616107a83660046156d7565b6125d2565b6104146107bb366004615544565b612618565b6104616107ce366004615544565b600d6020526000908152604090205481565b6104146107ee366004615ae6565b612731565b610414610801366004615a6b565b61278e565b6104146108143660046159c2565b6127cb565b610414610827366004615544565b61281b565b61041461083a3660046155a7565b612845565b601554610527906001600160a01b031681565b610865610860366004615748565b612a45565b60408051928352602083019190915201610445565b610461600f5481565b610461600c5481565b610414612b5e565b6104146108a236600461557c565b612bbc565b6104616108b53660046156d7565b612bdf565b601a54610527906001600160a01b031681565b6104616108db3660046159aa565b600b6020526000908152604090205481565b6104616108fb3660046159aa565b612c2c565b61046160085481565b6104146109173660046158c2565b612ce3565b601054610527906001600160a01b031681565b610937612d3b565b601f80546001600160a01b0319166001600160a01b0392909216919091179055565b6000806109668585611b48565b90506012548111610977578061097b565b6012545b9050600061098a868684612db5565b90506109998686868585612f90565b9695505050505050565b6001600160a01b0381166109fe5760405162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f7420626520300000000000000060448201526064015b60405180910390fd5b600154600160a01b900460ff1615610a6a5760405162461bcd60e51b815260206004820152602960248201527f416c726561647920696e697469616c697a65642c20757365206e6f6d696e617460448201526832a732bba7bbb732b960b91b60648201526084016109f5565b6001805460ff60a01b1916600160a01b179055600080546001600160a01b03831662010000810262010000600160b01b03199092169190911782556040805192835260208301919091527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91015b60405180910390a150565b610aeb612d3b565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290602001610ad8565b610b41612d3b565b60035460ff1615158115151415610b555750565b6003805460ff191682151590811790915560ff1615610b7357426002555b60035460405160ff909116151581527f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec590602001610ad8565b50565b600080610bbc85856125d2565b9050808311610bd457610bd1858585846130bc565b91505b509392505050565b600080610be98585611b48565b90506000610bff82670de0b6b3a7640000615e9d565b90508115610c2c576011548210610c165781610c1a565b6011545b91506109998686868585600f546132ce565b50509392505050565b610c3d612d3b565b6001600160a01b039091166000908152601e6020526040902055565b6000600160046000828254610c6e9190615d62565b909155505060045460035460ff1615610c995760405162461bcd60e51b81526004016109f590615c3f565b610ca2876113f3565b610cee5760405162461bcd60e51b815260206004820152601e60248201527f4d61726b6574206973206e6f7420696e2054726164696e67207068617365000060448201526064016109f5565b6000610cfa8888611b48565b90506012548111610d0b5780610d0f565b6012545b90506000610d1e898984612db5565b9050600081118015610d305750808711155b610d745760405162461bcd60e51b81526020600482015260156024820152742737ba1032b737bab3b4103634b8bab4b234ba3c9760591b60448201526064016109f5565b6000610d838a8a8a8686612f90565b9050610d9786670de0b6b3a7640000615d62565b81610daa670de0b6b3a76400008a615e3f565b610db49190615da8565b1115610df65760405162461bcd60e51b81526020600482015260116024820152700a6d8d2e0e0c2ceca40e8dede40d0d2ced607b1b60448201526064016109f5565b6000610e028b8b613570565b9050610e0d8b613617565b610e226001600160a01b03821633308c6137fa565b6007546040516314edbee160e31b81523060048201526000916001600160a01b039081169163edc892e1918f169063a76df7089060240160206040518083038186803b158015610e7157600080fd5b505afa158015610e85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea99190615aab565b6040518263ffffffff1660e01b8152600401610ec791815260200190565b60206040518083038186803b158015610edf57600080fd5b505afa158015610ef3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f179190615aab565b90508015610f73578b6001600160a01b031663f5571beb6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610f5a57600080fd5b505af1158015610f6e573d6000803e3d6000fd5b505050505b600083600f54670de0b6b3a7640000610f8c9190615e9d565b610f9e670de0b6b3a764000087615e3f565b610fa89190615da8565b610fb29190615e9d565b9050600084601654670de0b6b3a7640000610fcd9190615e9d565b610fdf670de0b6b3a764000088615e3f565b610fe99190615da8565b610ff39190615e9d565b9050600f546000141561100557600091505b601f60009054906101000a90046001600160a01b03166001600160a01b03166358c09cc08f600760009054906101000a90046001600160a01b03166001600160a01b03166317fd849a85878b61105b9190615d62565b6110659190615d62565b6040518263ffffffff1660e01b815260040161108391815260200190565b60206040518083038186803b15801561109b57600080fd5b505afa1580156110af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d39190615aab565b6040518363ffffffff1660e01b81526004016110f0929190615bcf565b600060405180830381600087803b15801561110a57600080fd5b505af115801561111e573d6000803e3d6000fd5b505060065461113a92506001600160a01b03169050338761386b565b6010546001600160a01b0316156111b0576010546040516302c7739b60e01b81526001600160a01b03909116906302c7739b9061117d9033908990600401615bcf565b600060405180830381600087803b15801561119757600080fd5b505af11580156111ab573d6000803e3d6000fd5b505050505b6111bd8e8685338661388f565b6111c68e613b5a565b7f1d6ff70c632edb1e6aba7fbc0148db68c8392e30f9dfaadae2543a2543757cf6338f8f8f89600660009054906101000a90046001600160a01b03168a6040516112169796959493929190615b4f565b60405180910390a150929650505050505060045481146112485760405162461bcd60e51b81526004016109f590615c9c565b5095945050505050565b61125a612d3b565b836112a75760405162461bcd60e51b815260206004820152601a60248201527f746f6b656e732061727261792063616e7420626520656d70747900000000000060448201526064016109f5565b60005b848110156113eb5781156113b4576113af848787848181106112dc57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906112f19190615544565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a082319060240160206040518083038186803b15801561133257600080fd5b505afa158015611346573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136a9190615aab565b88888581811061138a57634e487b7160e01b600052603260045260246000fd5b905060200201602081019061139f9190615544565b6001600160a01b0316919061386b565b6113d9565b6113d9848488888581811061138a57634e487b7160e01b600052603260045260246000fd5b806113e381615ee0565b9150506112aa565b505050505050565b600754604051633761c52760e11b81526001600160a01b0383811660048301526000921690636ec38a4e9060240160206040518083038186803b15801561143957600080fd5b505afa15801561144d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611471919061598e565b1561159e5760008290506000816001600160a01b03166341bc7b1f6040518163ffffffff1660e01b815260040160606040518083038186803b1580156114b657600080fd5b505afa1580156114ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ee91906159e3565b505090506000826001600160a01b0316639e3b34bf6040518163ffffffff1660e01b8152600401604080518083038186803b15801561152c57600080fd5b505afa158015611540573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115649190615ac3565b506000838152600b6020526040902054909150158061158257504281105b61159a5760006115924283615e9d565b600c54109450505b5050505b919050565b3360009081526014602052604090205460ff16806115d157506000546201000090046001600160a01b031633145b6116385760405162461bcd60e51b815260206004820152603260248201527f4f6e6c792077686974656c697374656420616464726573736573206f72206f776044820152716e65722063616e206368616e67652049562160701b60648201526084016109f5565b61164b670de0b6b3a7640000600a615e3f565b8111801561166b5750611668670de0b6b3a764000061012c615e3f565b81105b6116b75760405162461bcd60e51b815260206004820152601960248201527f4956206f757473696465206d696e2f6d61782072616e6765210000000000000060448201526064016109f5565b6005546040516315905ec160e31b8152600481018490526101009091046001600160a01b03169063ac82f6089060240160206040518083038186803b1580156116ff57600080fd5b505afa158015611713573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117379190615aab565b6117795760405162461bcd60e51b8152602060048201526013602482015272417373657420686173206e6f2070726963652160681b60448201526064016109f5565b6000828152600b602090815260409182902083905581518481529081018390527f715e0a52c0b74c77d2d2012a363ac95b494302ad2abb78ac7406ec93451f1adb91015b60405180910390a15050565b60006001600460008282546117de9190615d62565b909155505060045460035460ff16156118095760405162461bcd60e51b81526004016109f590615c3f565b6001600160a01b0383161561187e5760155460405163bbddaca360e01b81526001600160a01b0385811660048301523360248301529091169063bbddaca390604401600060405180830381600087803b15801561186557600080fd5b505af1158015611879573d6000803e3d6000fd5b505050505b600061188985613e2d565b9050600081600f0b1380156118a75750601a54600160a01b900460ff165b6118ec5760405162461bcd60e51b81526020600482015260166024820152751d5b9cdd5c1c1bdc9d19590818dbdb1b185d195c985b60521b60448201526064016109f5565b6000806118fb8c8c8c8a612a45565b60185491935091506000906001600160a01b038981169116148061192c57506019546001600160a01b038981169116145b6119365782611945565b6119458364e8d4a51000615e3f565b90506000601b5411801561198b5750670de0b6b3a7640000601b54670de0b6b3a76400006119739190615e9d565b61197d9084615e3f565b6119879190615da8565b8110155b6119e55760405162461bcd60e51b815260206004820152602560248201527f416d6f756e742062656c6f77206d617820616c6c6f7765642070656720736c69604482015264707061676560d81b60648201526084016109f5565b6119f789670de0b6b3a7640000615d62565b8a611a0a670de0b6b3a764000086615e3f565b611a149190615da8565b1115611a575760405162461bcd60e51b8152602060048201526012602482015271536c69707061676520746f6f20686967682160701b60448201526064016109f5565b87611a6d6001600160a01b0382163330876137fa565b601754604051635320bf6b60e11b8152600f87900b60048201526000602482015260448101869052606481018590526001600160a01b039091169063a6417ed690608401602060405180830381600087803b158015611acb57600080fd5b505af1158015611adf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b039190615aab565b50611b148e8e8e868e600089613e92565b965050505050506004548114611b3c5760405162461bcd60e51b81526004016109f590615c9c565b50979650505050505050565b6000611b53836113f3565b15611dea5760008390506000816001600160a01b0316639e3b34bf6040518163ffffffff1660e01b8152600401604080518083038186803b158015611b9757600080fd5b505afa158015611bab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bcf9190615ac3565b5090506000611bde4283615e9d565b9050600062015180611bf8670de0b6b3a764000084615e3f565b611c029190615da8565b90506000846001600160a01b031663668aa8246040518163ffffffff1660e01b815260040160206040518083038186803b158015611c3f57600080fd5b505afa158015611c53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c779190615aab565b9050600080866001600160a01b03166341bc7b1f6040518163ffffffff1660e01b815260040160606040518083038186803b158015611cb557600080fd5b505afa158015611cc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ced91906159e3565b50601c546000838152600b602052604090819020549051631519a0dd60e31b815260048101889052602481018490526044810189905260648082019290925293955091935090916001600160a01b039091169063a8cd06e89060840160206040518083038186803b158015611d6157600080fd5b505afa158015611d75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d999190615aab565b611da39190615da8565b97506001896001811115611dc757634e487b7160e01b600052602160045260246000fd5b1415611de257611ddf88670de0b6b3a7640000615e9d565b97505b505050505050505b92915050565b6001546001600160a01b03163314611e685760405162461bcd60e51b815260206004820152603560248201527f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7560448201527402063616e20616363657074206f776e65727368697605c1b60648201526084016109f5565b60005460015460408051620100009093046001600160a01b03908116845290911660208301527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a1600180546000805462010000600160b01b0319166001600160a01b03831662010000021790556001600160a01b0319169055565b611ef5612d3b565b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b611f28612d3b565b6009829055600a8190556040518281527f1e6a338a58debcc786781a079c4459466b102ad0156cc84f51d25ef7dd8cb9b09060200160405180910390a16040518181527f4af6d03c4624e0a6b868b8f6453e047f23f3ea15e9d08c938bd4c445d7ef19b3906020016117bd565b611f9d612d3b565b600c8190556040518181527fdc469b5583fa9b7ebd3245e1665334cd758c4bef4c5a132c62baca85effacfec90602001610ad8565b6000600160046000828254611fe79190615d62565b909155505060045460035460ff16156120125760405162461bcd60e51b81526004016109f590615c3f565b612023878787878760016000613e92565b915060045481146112485760405162461bcd60e51b81526004016109f590615c9c565b600060016004600082825461205b9190615d62565b909155505060045460035460ff16156120865760405162461bcd60e51b81526004016109f590615c3f565b6001600160a01b038316156120fb5760155460405163bbddaca360e01b81526001600160a01b0385811660048301523360248301529091169063bbddaca390604401600060405180830381600087803b1580156120e257600080fd5b505af11580156120f6573d6000803e3d6000fd5b505050505b61210c888888888860016000613e92565b9150600454811461212f5760405162461bcd60e51b81526004016109f590615c9c565b509695505050505050565b612142612d3b565b6001600160a01b039091166000908152601d6020526040902055565b600054610100900460ff166121795760005460ff161561217d565b303b155b6121e05760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016109f5565b600054610100900460ff16158015612202576000805461ffff19166101011790555b61220b896109a3565b612213612b5e565b60058054610100600160a81b0319166101006001600160a01b038b81169190910291909117909155600680546001600160a01b03191691891691909117905560088690556009849055600a839055600c8290558015612278576000805461ff00191690555b505050505050505050565b61228b612d3b565b60058054610100600160a81b0319166101006001600160a01b038516908102919091179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d9060200160405180910390a1600680546001600160a01b0319166001600160a01b0383169081179091556040519081527f74a8764fc8d62d2d844c8c54426bd94ad034e0e92abdf5280ff75e2cbd678fb6906020016117bd565b6000808084600181111561235657634e487b7160e01b600052602160045260246000fd5b14612362576000612365565b60015b905060006123738686611b48565b9050601154811015801561238957506012548111155b15610c2c5760006123a282670de0b6b3a7640000615e9d565b905060006123b3888885600161436b565b905060006123c4898685600161436b565b90506000871180156123d65750818711155b1561244e5761244b6040518060e001604052808b6001600160a01b031681526020018a600181111561241857634e487b7160e01b600052602160045260246000fd5b8152602081018a90526040810185905260608101849052601f546001600160a01b0316608082015260a001869052614640565b95505b50505050509392505050565b612462612d3b565b6007546001600160a01b0316156124fe5760065460075460405163095ea7b360e01b81526001600160a01b039283169263095ea7b3926124aa92911690600090600401615bcf565b602060405180830381600087803b1580156124c457600080fd5b505af11580156124d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124fc919061598e565b505b600780546001600160a01b0319166001600160a01b0383811691821790925560065460405163095ea7b360e01b815292169163095ea7b3916125469160001990600401615bcf565b602060405180830381600087803b15801561256057600080fd5b505af1158015612574573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612598919061598e565b506040516001600160a01b03821681527f9987372437ace1af79923f26b948aa04afef92b2b7786144c5aae621ea84eb0a90602001610ad8565b60006125dd836113f3565b15611dea5760006125ee8484611b48565b905060125481116125ff5780612603565b6012545b9050612610848483612db5565b949350505050565b612620612d3b565b6001600160a01b0381166126685760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016109f5565b600154600160a81b900460ff16156126b85760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481d1c985b9cd9995c9c9959606a1b60448201526064016109f5565b600080546001600160a01b038381166201000081810262010000600160b01b031990941693909317938490556001805460ff60a81b1916600160a81b1790556040805193909404909116825260208201527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9101610ad8565b612739612d3b565b60118390556012829055600881905560408051848152602081018490529081018290527f0e8c2ebd67ea2d796a34f02c777ec06f5faedd1669b272dc08dc7875486ae0809060600160405180910390a1505050565b612796612d3b565b601080546001600160a01b039485166001600160a01b0319918216179091556015805493909416921691909117909155601655565b6127d3612d3b565b60008281526013602090815260409182902083905581518481529081018390527f5af395595015797b4d0f26b77c38dd4831298dabc7906ee3d62b80fa75d35c1e91016117bd565b612823612d3b565b601c80546001600160a01b0319166001600160a01b0392909216919091179055565b61284d612d3b565b601780546001600160a01b038089166001600160a01b031992831617909255601a8054888416908316811790915560188054888516908416179055601980549387169390921692909217905560405163095ea7b360e01b815263095ea7b3906128be90899060001990600401615bcf565b602060405180830381600087803b1580156128d857600080fd5b505af11580156128ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612910919061598e565b5060185460405163095ea7b360e01b81526001600160a01b039091169063095ea7b39061294590899060001990600401615bcf565b602060405180830381600087803b15801561295f57600080fd5b505af1158015612973573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612997919061598e565b5060195460405163095ea7b360e01b81526001600160a01b039091169063095ea7b3906129cc90899060001990600401615bcf565b602060405180830381600087803b1580156129e657600080fd5b505af11580156129fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a1e919061598e565b50601a8054921515600160a01b0260ff60a01b1990931692909217909155601b5550505050565b6000806000612a5384613e2d565b9050600081600f0b138015612a715750601a54600160a01b900460ff165b15612b5457612a81878787610bdc565b9150670de0b6b3a7640000612a9e6005662386f26fc10000615da8565b612ab090670de0b6b3a7640000615d62565b6017546040516307211ef760e01b815260006004820152600f85900b6024820152604481018690526001600160a01b03909116906307211ef79060640160206040518083038186803b158015612b0557600080fd5b505afa158015612b19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3d9190615aab565b612b479190615e3f565b612b519190615da8565b92505b5094509492505050565b60055460ff1615612ba75760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b60448201526064016109f5565b6005805460ff19166001908117909155600455565b612bc4612d3b565b600654612bdb906001600160a01b0316838361386b565b5050565b6000612bea836113f3565b15611dea576000612bfb8484611b48565b90508015612c25576011548110612c125780612c16565b6011545b9050612610848483600061436b565b5092915050565b6005546040516315905ec160e31b81526004810183905260009161010090046001600160a01b03169063ac82f6089060240160206040518083038186803b158015612c7657600080fd5b505afa158015612c8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cae9190615aab565b1561159e5760008281526013602052604090205415612cdb57600082815260136020526040902054611dea565b505060085490565b612ceb612d3b565b600f819055600e80546001600160a01b0319166001600160a01b0384161790556040518181527f01edd423db862fb00774918e3b06d9c1dd3db9a99b5a194c439d2f141876f444906020016117bd565b6000546201000090046001600160a01b03163314612db35760405162461bcd60e51b815260206004820152602f60248201527f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726660448201526e37b936903a3434b99030b1ba34b7b760891b60648201526084016109f5565b565b600080612dc183614c4c565b90508015610bd457601c54601f5460405163c2edfc7360e01b81526001600160a01b038881166004830152600093811692636116ad1e928a928a92169063c2edfc739060240160206040518083038186803b158015612e1f57600080fd5b505afa158015612e33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e579190615560565b6040518463ffffffff1660e01b8152600401612e7593929190615b9f565b604080518083038186803b158015612e8c57600080fd5b505afa158015612ea0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ec49190615ac3565b915060009050670de0b6b3a7640000612edd8484615e3f565b612ee79190615da8565b9050600082612ef589614ca3565b612eff9190615d62565b6001600160a01b0389166000908152600d6020526040902054909150612f26908390615d62565b8110612f85576001600160a01b0388166000908152600d60205260408120548390612f519084615e9d565b612f5b9190615e9d565b905083670de0b6b3a7640000612f718784615da8565b612f7b9190615e3f565b61244b9190615d62565b505050509392505050565b60008184116130b357600954612fa69084615e9d565b92506000670de0b6b3a764000080612fc0898989886130bc565b612fd290670de0b6b3a7640000615e9d565b612fdc9087615e3f565b612fe69190615da8565b612ff09087615e3f565b612ffa9190615da8565b90506000670de0b6b3a7640000600f54670de0b6b3a764000061301d9190615e9d565b6130279084615e3f565b6130319190615da8565b60075460405163edc892e160e01b8152600481018390529192506001600160a01b03169063edc892e19060240160206040518083038186803b15801561307657600080fd5b505afa15801561308a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130ae9190615aab565b925050505b95945050505050565b601c54601f5460405163c2edfc7360e01b81526001600160a01b0387811660048301526000938493849391831692636116ad1e928b928b92169063c2edfc739060240160206040518083038186803b15801561311757600080fd5b505afa15801561312b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061314f9190615560565b6040518463ffffffff1660e01b815260040161316d93929190615b9f565b604080518083038186803b15801561318457600080fd5b505afa158015613198573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131bc9190615ac3565b9150915060008083116131e6578582116131df576131da8287615e9d565b6131f0565b60006131f0565b6131f08684615d62565b9050600086831161320257600061320c565b61320c8784615e9d565b90508082106132c257601c54600a546040516327b76a6b60e21b8152600481018a90526024810186905260448101879052606481018490526084810185905260a4810189905260c48101919091526001600160a01b0390911690639edda9ac9060e40160206040518083038186803b15801561328757600080fd5b505afa15801561329b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132bf9190615aab565b94505b50505050949350505050565b6000806132de888887600061436b565b9050600061331e89828a600181111561330757634e487b7160e01b600052602160045260246000fd5b14613313576000613316565b60015b87600161436b565b90508187116135645760008061339a6040518060e001604052808d6001600160a01b031681526020018c600181111561336757634e487b7160e01b600052602160045260246000fd5b8152602081018c90526040810187905260608101869052601f546001600160a01b0316608082015260a0018a9052614640565b336000908152601e60205260409020549091506133b9576009546133ca565b336000908152601e60205260409020545b6133d49089615d62565b97506000811261347c576000670de0b6b3a7640000826133f48b83615e5e565b6133fe9190615dbc565b6134089190615d7a565b9050670de0b6b3a7640000613425662386f26fc100006002615dbc565b61343790670de0b6b3a7640000615d21565b6134419083615dbc565b61344b9190615d7a565b9050670de0b6b3a7640000613460828b615d21565b61346a908c615dbc565b6134749190615d7a565b9250506134bb565b670de0b6b3a7640000806134908382615d21565b61349a908b615dbc565b6134a49190615d7a565b6134ae908b615dbc565b6134b89190615d7a565b91505b670de0b6b3a76400006134ce8782615d21565b6134d89084615dbc565b6134e29190615d7a565b60075460405163edc892e160e01b8152600481018390529193506001600160a01b03169063edc892e19060240160206040518083038186803b15801561352757600080fd5b505afa15801561353b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061355f9190615aab565b945050505b50509695505050505050565b6000806000846001600160a01b031663cc2ee1966040518163ffffffff1660e01b8152600401604080518083038186803b1580156135ad57600080fd5b505afa1580156135c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135e59190615a10565b9092509050600084600181111561360c57634e487b7160e01b600052602160045260246000fd5b14610bd457806130b3565b601c54601f5460405163c2edfc7360e01b81526001600160a01b03848116600483015260009384939082169263ea25928a928792169063c2edfc739060240160206040518083038186803b15801561366e57600080fd5b505afa158015613682573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136a69190615560565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401604080518083038186803b1580156136eb57600080fd5b505afa1580156136ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137239190615ac3565b601f54604051631051f9d160e31b81529294509092506001600160a01b03169063828fce889061375c9086908690600090600401615be8565b600060405180830381600087803b15801561377657600080fd5b505af115801561378a573d6000803e3d6000fd5b5050601f54604051631051f9d160e31b81526001600160a01b03909116925063828fce8891506137c39086908590600190600401615be8565b600060405180830381600087803b1580156137dd57600080fd5b505af11580156137f1573d6000803e3d6000fd5b50505050505050565b6040516001600160a01b03808516602483015283166044820152606481018290526138659085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152614d2b565b50505050565b61388a8363a9059cbb60e01b848460405160240161382e929190615bcf565b505050565b600f54156138b457600e546006546138b4916001600160a01b0391821691168361386b565b6007546001600160a01b03166317fd849a6138cf8387615d62565b6040518263ffffffff1660e01b81526004016138ed91815260200190565b60206040518083038186803b15801561390557600080fd5b505afa158015613919573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061393d9190615aab565b6001600160a01b0386166000908152600d60205260409020546139609190615d62565b6001600160a01b038681166000908152600d602052604090819020929092556007549151630bfec24d60e11b8152600481018690529116906317fd849a9060240160206040518083038186803b1580156139b957600080fd5b505afa1580156139cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139f19190615aab565b6001600160a01b0386166000908152600d602052604090205411613a2d576001600160a01b0385166000908152600d6020526040812055613ae6565b600754604051630bfec24d60e11b8152600481018590526001600160a01b03909116906317fd849a9060240160206040518083038186803b158015613a7157600080fd5b505afa158015613a85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aa99190615aab565b6001600160a01b0386166000908152600d6020526040902054613acc9190615e9d565b6001600160a01b0386166000908152600d60205260409020555b6000601654118015613b0257506015546001600160a01b031615155b15613b5357600084601654670de0b6b3a7640000613b209190615e9d565b613b32670de0b6b3a764000088615e3f565b613b3c9190615da8565b613b469190615e9d565b90506113eb838287614dfd565b5050505050565b601f5460405163f475f13b60e01b81526001600160a01b038381166004830152600092169063f475f13b90602401602060405180830381600087803b158015613ba257600080fd5b505af1158015613bb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bda9190615560565b6006546040516370a0823160e01b81523060048201529192506000916001600160a01b03909116906370a082319060240160206040518083038186803b158015613c2357600080fd5b505afa158015613c37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c5b9190615aab565b1115613cf5576006546040516370a0823160e01b8152306004820152613cf59183916001600160a01b03909116906370a082319060240160206040518083038186803b158015613caa57600080fd5b505afa158015613cbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ce29190615aab565b6006546001600160a01b0316919061386b565b600080836001600160a01b031663cc2ee1966040518163ffffffff1660e01b8152600401604080518083038186803b158015613d3057600080fd5b505afa158015613d44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d689190615a10565b601c54604051637512c94560e11b81526001600160a01b038881166004830152306024830152939550919350600092839291169063ea25928a90604401604080518083038186803b158015613dbc57600080fd5b505afa158015613dd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613df49190615ac3565b90925090508115613e1357613e136001600160a01b038516868461386b565b80156113eb576113eb6001600160a01b038416868361386b565b601a546000906001600160a01b0383811691161415613e4e57506001919050565b6018546001600160a01b0383811691161415613e6c57506002919050565b6019546001600160a01b0383811691161415613e8a57506003919050565b506000919050565b6000613e9d886113f3565b613ee95760405162461bcd60e51b815260206004820152601e60248201527f4d61726b6574206973206e6f7420696e2054726164696e67207068617365000060448201526064016109f5565b50806000613ef78989611b48565b90506000613f0d82670de0b6b3a7640000615e9d565b90506011548210613f1e5781613f22565b6011545b91506000613f338b8b85600061436b565b9050600089118015613f455750808911155b613f895760405162461bcd60e51b81526020600482015260156024820152742737ba1032b737bab3b4103634b8bab4b234ba3c9760591b60448201526064016109f5565b851561405957336000908152601d6020526040902054613fce908c908c908c9087908790613fb957600f546132ce565b336000908152601d60205260409020546132ce565b9350613fe287670de0b6b3a7640000615d62565b88613ff5670de0b6b3a764000087615e3f565b613fff9190615da8565b11156140415760405162461bcd60e51b81526020600482015260116024820152700a6d8d2e0e0c2ceca40e8dede40d0d2ced607b1b60448201526064016109f5565b600654614059906001600160a01b03163330876137fa565b60006140668c8c8c614f0b565b9050801561416a57601f54604051630163027360e61b81526001600160a01b03909116906358c09cc0906140a0908f908590600401615bcf565b600060405180830381600087803b1580156140ba57600080fd5b505af11580156140ce573d6000803e3d6000fd5b505060405163140e25ad60e31b8152600481018490526001600160a01b038f16925063a0712d689150602401600060405180830381600087803b15801561411457600080fd5b505af1158015614128573d6000803e3d6000fd5b5050506001600160a01b038d166000908152600d602052604090205461415091508290615d62565b6001600160a01b038d166000908152600d60205260409020555b601f546001600160a01b031663828fce888d614186848e615e9d565b8e6040518463ffffffff1660e01b81526004016141a593929190615be8565b600060405180830381600087803b1580156141bf57600080fd5b505af11580156141d3573d6000803e3d6000fd5b5050505060006141e38d8d613570565b90506141f96001600160a01b038216338d61386b565b6010546001600160a01b03161561426f576010546040516302c7739b60e01b81526001600160a01b03909116906302c7739b9061423c9033908a90600401615bcf565b600060405180830381600087803b15801561425657600080fd5b505af115801561426a573d6000803e3d6000fd5b505050505b61427a8d873361501f565b818b11156142ee57600061428e838d615e9d565b905060008c61429d838a615e3f565b6142a79190615da8565b60408051338152602081018590529081018290529091507ff8a5b21533fcaaeee91cd7b3c6ccbaa3f4ab6dd200e61bc560713565b20b1e9a9060600160405180910390a150505b6142f78d613b5a565b7ff3bfbc0822d1ed667a2b298e71e0304f2c1f4685398189d7c39e412f733150f4338e8e8e8a600660009054906101000a90046001600160a01b0316876040516143479796959493929190615b4f565b60405180910390a161435b8d8d88336152a6565b5050505050979650505050505050565b6000818061437a575060125483105b156126105760095461438c9084615d62565b9250670de0b6b3a7640000831015612610576000670de0b6b3a76400006002600a546143b89190615da8565b6143ca90670de0b6b3a7640000615e9d565b6143d49086615e3f565b6143de9190615da8565b601c54601f5460405163c2edfc7360e01b81526001600160a01b038a811660048301529394506000939283169263e468265c928b928b929091169063c2edfc739060240160206040518083038186803b15801561443a57600080fd5b505afa15801561444e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144729190615560565b6040518463ffffffff1660e01b815260040161449093929190615b9f565b60206040518083038186803b1580156144a857600080fd5b505afa1580156144bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144e09190615aab565b90506000670de0b6b3a76400006144f78484615e3f565b6145019190615da8565b6001600160a01b0389166000908152600d6020526040902054909150816145278a614ca3565b6145319190615d62565b1115614635576001600160a01b0388166000908152600d60205260408120548261455a8b614ca3565b6145649190615d62565b61456e9190615e9d565b905061457989614ca3565b81111561458c5761458989614ca3565b90505b6000670de0b6b3a76400006002600a546145a69190615da8565b6145b88a670de0b6b3a7640000615e9d565b6145c29190615e3f565b6145cc9190615da8565b9050670de0b6b3a76400006145e1828a615d62565b10156146325760006145f3828a615d62565b61460590670de0b6b3a7640000615e9d565b90508061461a670de0b6b3a764000085615e3f565b6146249190615da8565b61462e9086615d62565b9650505b50505b505050949350505050565b60006011548260c001511015801561465e57506012548260c0015111155b1561159e57601c548251602084015160a085015160405163c2edfc7360e01b81526001600160a01b038085166004830152600095869590821694636116ad1e94919390929091169063c2edfc739060240160206040518083038186803b1580156146c757600080fd5b505afa1580156146db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146ff9190615560565b6040518463ffffffff1660e01b815260040161471d93929190615b9f565b604080518083038186803b15801561473457600080fd5b505afa158015614748573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061476c9190615ac3565b91509150600084604001518311614784576000614793565b60408501516147939084615e9d565b90506000856040015184116147b7578386604001516147b29190615e9d565b6147ba565b60005b6147c49084615d62565b905080821061489e57601c546040805160a08101825286815260208101868152898301518284019081526080808c015160608501908152600a549185019182529451632888a20d60e01b8152935160048501529151602484015251604483015291516064820152905160848201526001600160a01b0390911690632888a20d9060a40160206040518083038186803b15801561485f57600080fd5b505afa158015614873573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906148979190615aab565b9450614c43565b8386604001511180156148b15750600084115b15614b875760008487604001516148c89190615e9d565b601c546040805160e081019091528281529192506000916001600160a01b039091169063f5f9c25790602081016148ff8a8a615d62565b815260006020820152604001614915868a615d62565b815260200160008152602001898c606001516149319190615e9d565b8152602001600a548152506040518263ffffffff1660e01b81526004016149589190615cd3565b60206040518083038186803b15801561497057600080fd5b505afa158015614984573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906149a89190615aab565b905060006149be89600001518a60200151611b48565b8951909150600090614a0290828c6020015160018111156149ef57634e487b7160e01b600052602160045260246000fd5b146149fb576000611b48565b6001611b48565b9050600082614a118584615e3f565b614a1b9190615da8565b90506000601c60009054906101000a90046001600160a01b03166001600160a01b0316632888a20d6040518060a001604052808d81526020018c81526020018d81526020018f608001518152602001600a548152506040518263ffffffff1660e01b8152600401614ac19190600060a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b60206040518083038186803b158015614ad957600080fd5b505afa158015614aed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614b119190615aab565b90506000614b1f828c615dbc565b90506000614b2d8489615e3f565b90506000614b3b898e615d62565b905080614b488385615d21565b614b529190615d7a565b9d5060008e1315614b79576000614b698f89615dbc565b9050614b758782615d7a565b9e50505b505050505050505050614c43565b601c546040805160e0810182528882015181526020810186905280820187905260608082018590526080820186905289015160a0820152600a5460c0820152905163f5f9c25760e01b81526001600160a01b039092169163f5f9c25791614bf091600401615cd3565b60206040518083038186803b158015614c0857600080fd5b505afa158015614c1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614c409190615aab565b94505b50505050919050565b600060115482111561159e57670de0b6b3a76400006002600a54614c709190615da8565b614c8290670de0b6b3a7640000615e9d565b600954614c8f9085615e9d565b614c999190615e3f565b611dea9190615da8565b600080826001600160a01b03166341bc7b1f6040518163ffffffff1660e01b815260040160606040518083038186803b158015614cdf57600080fd5b505afa158015614cf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614d1791906159e3565b50509050614d2481612c2c565b9392505050565b6000614d80826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661542a9092919063ffffffff16565b80519091501561388a5780806020019051810190614d9e919061598e565b61388a5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016109f5565b601554604051639ca423b360e01b81526001600160a01b0385811660048301526000921690639ca423b39060240160206040518083038186803b158015614e4357600080fd5b505afa158015614e57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614e7b9190615560565b90506001600160a01b03811615801590614e9757506000601654115b1561386557600654614eb3906001600160a01b0316828561386b565b604080516001600160a01b03808416825286166020820152908101849052606081018390527f8fa68a6a8e2fc9ff758a6e64afba8bc2f66fb082999a2c5225c8c49633faded49060800160405180910390a150505050565b601c54601f5460405163c2edfc7360e01b81526001600160a01b03868116600483015260009384939082169263e468265c928992899291169063c2edfc739060240160206040518083038186803b158015614f6557600080fd5b505afa158015614f79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614f9d9190615560565b6040518463ffffffff1660e01b8152600401614fbb93929190615b9f565b60206040518083038186803b158015614fd357600080fd5b505afa158015614fe7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061500b9190615aab565b905082811015610bd457610bd18184615e9d565b600f54600090156150af57336000908152601d602052604090205461504657600f54615057565b336000908152601d60205260409020545b61506990670de0b6b3a7640000615d62565b61507b670de0b6b3a764000085615e3f565b6150859190615da8565b61508f9084615e9d565b600e546006549192506150af916001600160a01b0390811691168361386b565b6007546001600160a01b03166317fd849a6150ca8386615e9d565b6040518263ffffffff1660e01b81526004016150e891815260200190565b60206040518083038186803b15801561510057600080fd5b505afa158015615114573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906151389190615aab565b6001600160a01b0385166000908152600d602052604090205411615174576001600160a01b0384166000908152600d602052604081205561523a565b6007546001600160a01b03166317fd849a61518f8386615e9d565b6040518263ffffffff1660e01b81526004016151ad91815260200190565b60206040518083038186803b1580156151c557600080fd5b505afa1580156151d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906151fd9190615aab565b6001600160a01b0385166000908152600d60205260409020546152209190615e9d565b6001600160a01b0385166000908152600d60205260409020555b600060165411801561525657506015546001600160a01b031615155b15613865576000601654670de0b6b3a76400006152739190615d62565b615285670de0b6b3a764000086615e3f565b61528f9190615da8565b6152999085615e9d565b9050613b53838286614dfd565b600080856001600160a01b03166341bc7b1f6040518163ffffffff1660e01b815260040160606040518083038186803b1580156152e257600080fd5b505afa1580156152f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061531a91906159e3565b506005546040516315905ec160e31b8152600481018490529294509092506000916101009091046001600160a01b03169063ac82f6089060240160206040518083038186803b15801561536c57600080fd5b505afa158015615380573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906153a49190615aab565b90506000808760018111156153c957634e487b7160e01b600052602160045260246000fd5b146153d6578282106153db565b828210155b60408051338152602081018990528215158183015290519192507f80631c28c8a8100630a9d2bce38b276a55426b59f4d47fb06072105118083ec1919081900360600190a15050505050505050565b6060612610848460008585843b6154835760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016109f5565b600080866001600160a01b0316858760405161549f9190615b33565b60006040518083038185875af1925050503d80600081146154dc576040519150601f19603f3d011682016040523d82523d6000602084013e6154e1565b606091505b50915091506154f18282866154fc565b979650505050505050565b6060831561550b575081614d24565b82511561551b5782518084602001fd5b8160405162461bcd60e51b81526004016109f59190615c0c565b80356002811061159e57600080fd5b600060208284031215615555578081fd5b8135614d2481615f27565b600060208284031215615571578081fd5b8151614d2481615f27565b6000806040838503121561558e578081fd5b823561559981615f27565b946020939093013593505050565b60008060008060008060c087890312156155bf578182fd5b86356155ca81615f27565b955060208701356155da81615f27565b945060408701356155ea81615f27565b935060608701356155fa81615f27565b9250608087013561560a81615f3c565b8092505060a087013590509295509295509295565b60008060408385031215615631578182fd5b823561563c81615f27565b9150602083013561564c81615f3c565b809150509250929050565b600080600080600080600080610100898b031215615673578182fd5b883561567e81615f27565b9750602089013561568e81615f27565b9650604089013561569e81615f27565b95506060890135945060808901356156b581615f27565b979a969950949793969560a0850135955060c08501359460e001359350915050565b600080604083850312156156e9578182fd5b82356156f481615f27565b915061570260208401615535565b90509250929050565b60008060006060848603121561571f578081fd5b833561572a81615f27565b925061573860208501615535565b9150604084013590509250925092565b6000806000806080858703121561575d578182fd5b843561576881615f27565b935061577660208601615535565b925060408501359150606085013561578d81615f27565b939692955090935050565b600080600080600060a086880312156157af578283fd5b85356157ba81615f27565b94506157c860208701615535565b94979496505050506040830135926060810135926080909101359150565b60008060008060008060c087890312156157fe578384fd5b863561580981615f27565b955061581760208801615535565b945060408701359350606087013592506080870135915060a087013561583c81615f27565b809150509295509295509295565b600080600080600080600060e0888a031215615864578081fd5b873561586f81615f27565b965061587d60208901615535565b955060408801359450606088013593506080880135925060a08801356158a281615f27565b915060c08801356158b281615f27565b8091505092959891949750929550565b6000806040838503121561558e578182fd5b6000806000806000608086880312156158eb578283fd5b853567ffffffffffffffff80821115615902578485fd5b818801915088601f830112615915578485fd5b813581811115615923578586fd5b8960208260051b8501011115615937578586fd5b6020928301975095505086013561594d81615f27565b925060408601359150606086013561596481615f3c565b809150509295509295909350565b600060208284031215615983578081fd5b8135614d2481615f3c565b60006020828403121561599f578081fd5b8151614d2481615f3c565b6000602082840312156159bb578081fd5b5035919050565b600080604083850312156159d4578182fd5b50508035926020909101359150565b6000806000606084860312156159f7578081fd5b8351925060208401519150604084015190509250925092565b60008060408385031215615a22578182fd5b8251615a2d81615f27565b602084015190925061564c81615f27565b60008060408385031215615a50578182fd5b8235615a5b81615f27565b9150602083013561564c81615f27565b600080600060608486031215615a7f578081fd5b8335615a8a81615f27565b92506020840135615a9a81615f27565b929592945050506040919091013590565b600060208284031215615abc578081fd5b5051919050565b60008060408385031215615ad5578182fd5b505080516020909101519092909150565b600080600060608486031215615afa578081fd5b505081359360208301359350604090920135919050565b60028110615b2f57634e487b7160e01b600052602160045260246000fd5b9052565b60008251615b45818460208701615eb4565b9190910192915050565b6001600160a01b038881168252878116602083015260e0820190615b766040840189615b11565b86606084015285608084015280851660a084015280841660c08401525098975050505050505050565b6001600160a01b0384811682526060820190615bbe6020840186615b11565b808416604084015250949350505050565b6001600160a01b03929092168252602082015260400190565b6001600160a01b038416815260208101839052606081016126106040830184615b11565b6020815260008251806020840152615c2b816040850160208701615eb4565b601f01601f19169190910160400192915050565b6020808252603c908201527f5468697320616374696f6e2063616e6e6f7420626520706572666f726d65642060408201527f7768696c652074686520636f6e74726163742069732070617573656400000000606082015260800190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b600060e082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015292915050565b600080821280156001600160ff1b0384900385131615615d4357615d43615efb565b600160ff1b8390038412811615615d5c57615d5c615efb565b50500190565b60008219821115615d7557615d75615efb565b500190565b600082615d8957615d89615f11565b600160ff1b821460001984141615615da357615da3615efb565b500590565b600082615db757615db7615f11565b500490565b60006001600160ff1b0381841382841380821686840486111615615de257615de2615efb565b600160ff1b84871282811687830589121615615e0057615e00615efb565b858712925087820587128484161615615e1b57615e1b615efb565b87850587128184161615615e3157615e31615efb565b505050929093029392505050565b6000816000190483118215151615615e5957615e59615efb565b500290565b60008083128015600160ff1b850184121615615e7c57615e7c615efb565b6001600160ff1b0384018313811615615e9757615e97615efb565b50500390565b600082821015615eaf57615eaf615efb565b500390565b60005b83811015615ecf578181015183820152602001615eb7565b838111156138655750506000910152565b6000600019821415615ef457615ef4615efb565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b6001600160a01b0381168114610bac57600080fd5b8015158114610bac57600080fdfea2646970667358221220c20667c7754e61314a0a443f103c7772c66bff5fe513fc20f08c471f067f6c6d64736f6c63430008040033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106103fc5760003560e01c80638517020911610215578063cafb3ca211610125578063ebc79772116100b8578063f502b00311610087578063f502b003146108cd578063f8debeb7146108ed578063fb91d41c14610900578063fc1ed85714610909578063fd8a8cc61461091c57600080fd5b8063ebc797721461088c578063efb1fe3514610894578063efc15251146108a7578063f4b9fa75146108ba57600080fd5b8063d3dc7539116100f4578063d3dc75391461083f578063d4a2641b14610852578063d69fb6681461087a578063df8974d01461088357600080fd5b8063cafb3ca2146107f3578063d162492414610806578063d333ca1914610819578063d3c4297c1461082c57600080fd5b8063a5bf660d116101a8578063bf996ae311610177578063bf996ae314610787578063c2783f921461079a578063c3b83f5f146107ad578063c4dc27d7146107c0578063c8f0b4ec146107e057600080fd5b8063a5bf660d1461073b578063ad18f0da1461074e578063bbdf88ce14610761578063bf46c0b41461077457600080fd5b8063931b2040116101e4578063931b2040146106f95780639324cac7146107025780639f916c9f14610715578063a273ecf11461072857600080fd5b806385170209146106b15780638875eb84146106c45780638da5cb5b146106d757806391b4ded9146106f057600080fd5b8063481c6a7511610310578063665a11ca116102a35780636ed033f8116102725780636ed033f814610658578063741bef1a1461066b57806379ba5097146106835780637b337a361461068b578063826153491461069e57600080fd5b8063665a11ca146106205780636aaa81b6146106335780636cc5a6ff1461063c5780636e88a7bd1461064f57600080fd5b80635727a0f3116102df5780635727a0f3146105cd5780635c975abb146105e05780635ef85b26146105ed57806365f567721461060057600080fd5b8063481c6a751461058157806348663e95146105945780634a50215e146105a757806353a47bb7146105ba57600080fd5b80631fbb38e8116103935780632f48ab7d116103625780632f48ab7d14610514578063316425c31461053f5780633443b326146105485780633ce1108d1461055b5780633e413bee1461056e57600080fd5b80631fbb38e8146104c4578063270e13ef146104d85780632909f51a146104eb5780632972e8ab146104f457600080fd5b80631627540c116103cf5780631627540c1461048257806316c38b3c1461049557806319b844a6146104a85780631c37d04b146104b157600080fd5b8063018770201461040157806306c933d8146104165780630f13aae81461044e57806313af40351461046f575b600080fd5b61041461040f366004615544565b61092f565b005b610439610424366004615544565b60146020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61046161045c36600461570b565b610959565b604051908152602001610445565b61041461047d366004615544565b6109a3565b610414610490366004615544565b610ae3565b6104146104a3366004615972565b610b39565b61046160125481565b6104616104bf36600461570b565b610baf565b601a5461043990600160a01b900460ff1681565b6104616104e636600461570b565b610bdc565b610461601b5481565b610461610502366004615544565b601e6020526000908152604090205481565b601954610527906001600160a01b031681565b6040516001600160a01b039091168152602001610445565b610461600a5481565b6104146105563660046158c2565b610c35565b610461610569366004615798565b610c59565b601854610527906001600160a01b031681565b600754610527906001600160a01b031681565b600e54610527906001600160a01b031681565b6104146105b53660046158d4565b611252565b600154610527906001600160a01b031681565b6104396105db366004615544565b6113f3565b6003546104399060ff1681565b6104146105fb3660046159c2565b6115a3565b61046161060e366004615544565b601d6020526000908152604090205481565b601f54610527906001600160a01b031681565b61046160095481565b61046161064a36600461584a565b6117c9565b61046160165481565b6104616106663660046156d7565b611b48565b6005546105279061010090046001600160a01b031681565b610414611df0565b61041461069936600461561f565b611eed565b6104146106ac3660046159c2565b611f20565b6104146106bf3660046159aa565b611f95565b6104616106d2366004615798565b611fd2565b600054610527906201000090046001600160a01b031681565b61046160025481565b61046160115481565b600654610527906001600160a01b031681565b6104616107233660046157e6565b612046565b6104146107363660046158c2565b61213a565b601754610527906001600160a01b031681565b61041461075c366004615657565b61215e565b61041461076f366004615a3e565b612283565b61046161078236600461570b565b612332565b610414610795366004615544565b61245a565b6104616107a83660046156d7565b6125d2565b6104146107bb366004615544565b612618565b6104616107ce366004615544565b600d6020526000908152604090205481565b6104146107ee366004615ae6565b612731565b610414610801366004615a6b565b61278e565b6104146108143660046159c2565b6127cb565b610414610827366004615544565b61281b565b61041461083a3660046155a7565b612845565b601554610527906001600160a01b031681565b610865610860366004615748565b612a45565b60408051928352602083019190915201610445565b610461600f5481565b610461600c5481565b610414612b5e565b6104146108a236600461557c565b612bbc565b6104616108b53660046156d7565b612bdf565b601a54610527906001600160a01b031681565b6104616108db3660046159aa565b600b6020526000908152604090205481565b6104616108fb3660046159aa565b612c2c565b61046160085481565b6104146109173660046158c2565b612ce3565b601054610527906001600160a01b031681565b610937612d3b565b601f80546001600160a01b0319166001600160a01b0392909216919091179055565b6000806109668585611b48565b90506012548111610977578061097b565b6012545b9050600061098a868684612db5565b90506109998686868585612f90565b9695505050505050565b6001600160a01b0381166109fe5760405162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f7420626520300000000000000060448201526064015b60405180910390fd5b600154600160a01b900460ff1615610a6a5760405162461bcd60e51b815260206004820152602960248201527f416c726561647920696e697469616c697a65642c20757365206e6f6d696e617460448201526832a732bba7bbb732b960b91b60648201526084016109f5565b6001805460ff60a01b1916600160a01b179055600080546001600160a01b03831662010000810262010000600160b01b03199092169190911782556040805192835260208301919091527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91015b60405180910390a150565b610aeb612d3b565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290602001610ad8565b610b41612d3b565b60035460ff1615158115151415610b555750565b6003805460ff191682151590811790915560ff1615610b7357426002555b60035460405160ff909116151581527f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec590602001610ad8565b50565b600080610bbc85856125d2565b9050808311610bd457610bd1858585846130bc565b91505b509392505050565b600080610be98585611b48565b90506000610bff82670de0b6b3a7640000615e9d565b90508115610c2c576011548210610c165781610c1a565b6011545b91506109998686868585600f546132ce565b50509392505050565b610c3d612d3b565b6001600160a01b039091166000908152601e6020526040902055565b6000600160046000828254610c6e9190615d62565b909155505060045460035460ff1615610c995760405162461bcd60e51b81526004016109f590615c3f565b610ca2876113f3565b610cee5760405162461bcd60e51b815260206004820152601e60248201527f4d61726b6574206973206e6f7420696e2054726164696e67207068617365000060448201526064016109f5565b6000610cfa8888611b48565b90506012548111610d0b5780610d0f565b6012545b90506000610d1e898984612db5565b9050600081118015610d305750808711155b610d745760405162461bcd60e51b81526020600482015260156024820152742737ba1032b737bab3b4103634b8bab4b234ba3c9760591b60448201526064016109f5565b6000610d838a8a8a8686612f90565b9050610d9786670de0b6b3a7640000615d62565b81610daa670de0b6b3a76400008a615e3f565b610db49190615da8565b1115610df65760405162461bcd60e51b81526020600482015260116024820152700a6d8d2e0e0c2ceca40e8dede40d0d2ced607b1b60448201526064016109f5565b6000610e028b8b613570565b9050610e0d8b613617565b610e226001600160a01b03821633308c6137fa565b6007546040516314edbee160e31b81523060048201526000916001600160a01b039081169163edc892e1918f169063a76df7089060240160206040518083038186803b158015610e7157600080fd5b505afa158015610e85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea99190615aab565b6040518263ffffffff1660e01b8152600401610ec791815260200190565b60206040518083038186803b158015610edf57600080fd5b505afa158015610ef3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f179190615aab565b90508015610f73578b6001600160a01b031663f5571beb6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610f5a57600080fd5b505af1158015610f6e573d6000803e3d6000fd5b505050505b600083600f54670de0b6b3a7640000610f8c9190615e9d565b610f9e670de0b6b3a764000087615e3f565b610fa89190615da8565b610fb29190615e9d565b9050600084601654670de0b6b3a7640000610fcd9190615e9d565b610fdf670de0b6b3a764000088615e3f565b610fe99190615da8565b610ff39190615e9d565b9050600f546000141561100557600091505b601f60009054906101000a90046001600160a01b03166001600160a01b03166358c09cc08f600760009054906101000a90046001600160a01b03166001600160a01b03166317fd849a85878b61105b9190615d62565b6110659190615d62565b6040518263ffffffff1660e01b815260040161108391815260200190565b60206040518083038186803b15801561109b57600080fd5b505afa1580156110af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d39190615aab565b6040518363ffffffff1660e01b81526004016110f0929190615bcf565b600060405180830381600087803b15801561110a57600080fd5b505af115801561111e573d6000803e3d6000fd5b505060065461113a92506001600160a01b03169050338761386b565b6010546001600160a01b0316156111b0576010546040516302c7739b60e01b81526001600160a01b03909116906302c7739b9061117d9033908990600401615bcf565b600060405180830381600087803b15801561119757600080fd5b505af11580156111ab573d6000803e3d6000fd5b505050505b6111bd8e8685338661388f565b6111c68e613b5a565b7f1d6ff70c632edb1e6aba7fbc0148db68c8392e30f9dfaadae2543a2543757cf6338f8f8f89600660009054906101000a90046001600160a01b03168a6040516112169796959493929190615b4f565b60405180910390a150929650505050505060045481146112485760405162461bcd60e51b81526004016109f590615c9c565b5095945050505050565b61125a612d3b565b836112a75760405162461bcd60e51b815260206004820152601a60248201527f746f6b656e732061727261792063616e7420626520656d70747900000000000060448201526064016109f5565b60005b848110156113eb5781156113b4576113af848787848181106112dc57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906112f19190615544565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a082319060240160206040518083038186803b15801561133257600080fd5b505afa158015611346573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136a9190615aab565b88888581811061138a57634e487b7160e01b600052603260045260246000fd5b905060200201602081019061139f9190615544565b6001600160a01b0316919061386b565b6113d9565b6113d9848488888581811061138a57634e487b7160e01b600052603260045260246000fd5b806113e381615ee0565b9150506112aa565b505050505050565b600754604051633761c52760e11b81526001600160a01b0383811660048301526000921690636ec38a4e9060240160206040518083038186803b15801561143957600080fd5b505afa15801561144d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611471919061598e565b1561159e5760008290506000816001600160a01b03166341bc7b1f6040518163ffffffff1660e01b815260040160606040518083038186803b1580156114b657600080fd5b505afa1580156114ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ee91906159e3565b505090506000826001600160a01b0316639e3b34bf6040518163ffffffff1660e01b8152600401604080518083038186803b15801561152c57600080fd5b505afa158015611540573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115649190615ac3565b506000838152600b6020526040902054909150158061158257504281105b61159a5760006115924283615e9d565b600c54109450505b5050505b919050565b3360009081526014602052604090205460ff16806115d157506000546201000090046001600160a01b031633145b6116385760405162461bcd60e51b815260206004820152603260248201527f4f6e6c792077686974656c697374656420616464726573736573206f72206f776044820152716e65722063616e206368616e67652049562160701b60648201526084016109f5565b61164b670de0b6b3a7640000600a615e3f565b8111801561166b5750611668670de0b6b3a764000061012c615e3f565b81105b6116b75760405162461bcd60e51b815260206004820152601960248201527f4956206f757473696465206d696e2f6d61782072616e6765210000000000000060448201526064016109f5565b6005546040516315905ec160e31b8152600481018490526101009091046001600160a01b03169063ac82f6089060240160206040518083038186803b1580156116ff57600080fd5b505afa158015611713573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117379190615aab565b6117795760405162461bcd60e51b8152602060048201526013602482015272417373657420686173206e6f2070726963652160681b60448201526064016109f5565b6000828152600b602090815260409182902083905581518481529081018390527f715e0a52c0b74c77d2d2012a363ac95b494302ad2abb78ac7406ec93451f1adb91015b60405180910390a15050565b60006001600460008282546117de9190615d62565b909155505060045460035460ff16156118095760405162461bcd60e51b81526004016109f590615c3f565b6001600160a01b0383161561187e5760155460405163bbddaca360e01b81526001600160a01b0385811660048301523360248301529091169063bbddaca390604401600060405180830381600087803b15801561186557600080fd5b505af1158015611879573d6000803e3d6000fd5b505050505b600061188985613e2d565b9050600081600f0b1380156118a75750601a54600160a01b900460ff165b6118ec5760405162461bcd60e51b81526020600482015260166024820152751d5b9cdd5c1c1bdc9d19590818dbdb1b185d195c985b60521b60448201526064016109f5565b6000806118fb8c8c8c8a612a45565b60185491935091506000906001600160a01b038981169116148061192c57506019546001600160a01b038981169116145b6119365782611945565b6119458364e8d4a51000615e3f565b90506000601b5411801561198b5750670de0b6b3a7640000601b54670de0b6b3a76400006119739190615e9d565b61197d9084615e3f565b6119879190615da8565b8110155b6119e55760405162461bcd60e51b815260206004820152602560248201527f416d6f756e742062656c6f77206d617820616c6c6f7765642070656720736c69604482015264707061676560d81b60648201526084016109f5565b6119f789670de0b6b3a7640000615d62565b8a611a0a670de0b6b3a764000086615e3f565b611a149190615da8565b1115611a575760405162461bcd60e51b8152602060048201526012602482015271536c69707061676520746f6f20686967682160701b60448201526064016109f5565b87611a6d6001600160a01b0382163330876137fa565b601754604051635320bf6b60e11b8152600f87900b60048201526000602482015260448101869052606481018590526001600160a01b039091169063a6417ed690608401602060405180830381600087803b158015611acb57600080fd5b505af1158015611adf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b039190615aab565b50611b148e8e8e868e600089613e92565b965050505050506004548114611b3c5760405162461bcd60e51b81526004016109f590615c9c565b50979650505050505050565b6000611b53836113f3565b15611dea5760008390506000816001600160a01b0316639e3b34bf6040518163ffffffff1660e01b8152600401604080518083038186803b158015611b9757600080fd5b505afa158015611bab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bcf9190615ac3565b5090506000611bde4283615e9d565b9050600062015180611bf8670de0b6b3a764000084615e3f565b611c029190615da8565b90506000846001600160a01b031663668aa8246040518163ffffffff1660e01b815260040160206040518083038186803b158015611c3f57600080fd5b505afa158015611c53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c779190615aab565b9050600080866001600160a01b03166341bc7b1f6040518163ffffffff1660e01b815260040160606040518083038186803b158015611cb557600080fd5b505afa158015611cc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ced91906159e3565b50601c546000838152600b602052604090819020549051631519a0dd60e31b815260048101889052602481018490526044810189905260648082019290925293955091935090916001600160a01b039091169063a8cd06e89060840160206040518083038186803b158015611d6157600080fd5b505afa158015611d75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d999190615aab565b611da39190615da8565b97506001896001811115611dc757634e487b7160e01b600052602160045260246000fd5b1415611de257611ddf88670de0b6b3a7640000615e9d565b97505b505050505050505b92915050565b6001546001600160a01b03163314611e685760405162461bcd60e51b815260206004820152603560248201527f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7560448201527402063616e20616363657074206f776e65727368697605c1b60648201526084016109f5565b60005460015460408051620100009093046001600160a01b03908116845290911660208301527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a1600180546000805462010000600160b01b0319166001600160a01b03831662010000021790556001600160a01b0319169055565b611ef5612d3b565b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b611f28612d3b565b6009829055600a8190556040518281527f1e6a338a58debcc786781a079c4459466b102ad0156cc84f51d25ef7dd8cb9b09060200160405180910390a16040518181527f4af6d03c4624e0a6b868b8f6453e047f23f3ea15e9d08c938bd4c445d7ef19b3906020016117bd565b611f9d612d3b565b600c8190556040518181527fdc469b5583fa9b7ebd3245e1665334cd758c4bef4c5a132c62baca85effacfec90602001610ad8565b6000600160046000828254611fe79190615d62565b909155505060045460035460ff16156120125760405162461bcd60e51b81526004016109f590615c3f565b612023878787878760016000613e92565b915060045481146112485760405162461bcd60e51b81526004016109f590615c9c565b600060016004600082825461205b9190615d62565b909155505060045460035460ff16156120865760405162461bcd60e51b81526004016109f590615c3f565b6001600160a01b038316156120fb5760155460405163bbddaca360e01b81526001600160a01b0385811660048301523360248301529091169063bbddaca390604401600060405180830381600087803b1580156120e257600080fd5b505af11580156120f6573d6000803e3d6000fd5b505050505b61210c888888888860016000613e92565b9150600454811461212f5760405162461bcd60e51b81526004016109f590615c9c565b509695505050505050565b612142612d3b565b6001600160a01b039091166000908152601d6020526040902055565b600054610100900460ff166121795760005460ff161561217d565b303b155b6121e05760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016109f5565b600054610100900460ff16158015612202576000805461ffff19166101011790555b61220b896109a3565b612213612b5e565b60058054610100600160a81b0319166101006001600160a01b038b81169190910291909117909155600680546001600160a01b03191691891691909117905560088690556009849055600a839055600c8290558015612278576000805461ff00191690555b505050505050505050565b61228b612d3b565b60058054610100600160a81b0319166101006001600160a01b038516908102919091179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d9060200160405180910390a1600680546001600160a01b0319166001600160a01b0383169081179091556040519081527f74a8764fc8d62d2d844c8c54426bd94ad034e0e92abdf5280ff75e2cbd678fb6906020016117bd565b6000808084600181111561235657634e487b7160e01b600052602160045260246000fd5b14612362576000612365565b60015b905060006123738686611b48565b9050601154811015801561238957506012548111155b15610c2c5760006123a282670de0b6b3a7640000615e9d565b905060006123b3888885600161436b565b905060006123c4898685600161436b565b90506000871180156123d65750818711155b1561244e5761244b6040518060e001604052808b6001600160a01b031681526020018a600181111561241857634e487b7160e01b600052602160045260246000fd5b8152602081018a90526040810185905260608101849052601f546001600160a01b0316608082015260a001869052614640565b95505b50505050509392505050565b612462612d3b565b6007546001600160a01b0316156124fe5760065460075460405163095ea7b360e01b81526001600160a01b039283169263095ea7b3926124aa92911690600090600401615bcf565b602060405180830381600087803b1580156124c457600080fd5b505af11580156124d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124fc919061598e565b505b600780546001600160a01b0319166001600160a01b0383811691821790925560065460405163095ea7b360e01b815292169163095ea7b3916125469160001990600401615bcf565b602060405180830381600087803b15801561256057600080fd5b505af1158015612574573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612598919061598e565b506040516001600160a01b03821681527f9987372437ace1af79923f26b948aa04afef92b2b7786144c5aae621ea84eb0a90602001610ad8565b60006125dd836113f3565b15611dea5760006125ee8484611b48565b905060125481116125ff5780612603565b6012545b9050612610848483612db5565b949350505050565b612620612d3b565b6001600160a01b0381166126685760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016109f5565b600154600160a81b900460ff16156126b85760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481d1c985b9cd9995c9c9959606a1b60448201526064016109f5565b600080546001600160a01b038381166201000081810262010000600160b01b031990941693909317938490556001805460ff60a81b1916600160a81b1790556040805193909404909116825260208201527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9101610ad8565b612739612d3b565b60118390556012829055600881905560408051848152602081018490529081018290527f0e8c2ebd67ea2d796a34f02c777ec06f5faedd1669b272dc08dc7875486ae0809060600160405180910390a1505050565b612796612d3b565b601080546001600160a01b039485166001600160a01b0319918216179091556015805493909416921691909117909155601655565b6127d3612d3b565b60008281526013602090815260409182902083905581518481529081018390527f5af395595015797b4d0f26b77c38dd4831298dabc7906ee3d62b80fa75d35c1e91016117bd565b612823612d3b565b601c80546001600160a01b0319166001600160a01b0392909216919091179055565b61284d612d3b565b601780546001600160a01b038089166001600160a01b031992831617909255601a8054888416908316811790915560188054888516908416179055601980549387169390921692909217905560405163095ea7b360e01b815263095ea7b3906128be90899060001990600401615bcf565b602060405180830381600087803b1580156128d857600080fd5b505af11580156128ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612910919061598e565b5060185460405163095ea7b360e01b81526001600160a01b039091169063095ea7b39061294590899060001990600401615bcf565b602060405180830381600087803b15801561295f57600080fd5b505af1158015612973573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612997919061598e565b5060195460405163095ea7b360e01b81526001600160a01b039091169063095ea7b3906129cc90899060001990600401615bcf565b602060405180830381600087803b1580156129e657600080fd5b505af11580156129fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a1e919061598e565b50601a8054921515600160a01b0260ff60a01b1990931692909217909155601b5550505050565b6000806000612a5384613e2d565b9050600081600f0b138015612a715750601a54600160a01b900460ff165b15612b5457612a81878787610bdc565b9150670de0b6b3a7640000612a9e6005662386f26fc10000615da8565b612ab090670de0b6b3a7640000615d62565b6017546040516307211ef760e01b815260006004820152600f85900b6024820152604481018690526001600160a01b03909116906307211ef79060640160206040518083038186803b158015612b0557600080fd5b505afa158015612b19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3d9190615aab565b612b479190615e3f565b612b519190615da8565b92505b5094509492505050565b60055460ff1615612ba75760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b60448201526064016109f5565b6005805460ff19166001908117909155600455565b612bc4612d3b565b600654612bdb906001600160a01b0316838361386b565b5050565b6000612bea836113f3565b15611dea576000612bfb8484611b48565b90508015612c25576011548110612c125780612c16565b6011545b9050612610848483600061436b565b5092915050565b6005546040516315905ec160e31b81526004810183905260009161010090046001600160a01b03169063ac82f6089060240160206040518083038186803b158015612c7657600080fd5b505afa158015612c8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cae9190615aab565b1561159e5760008281526013602052604090205415612cdb57600082815260136020526040902054611dea565b505060085490565b612ceb612d3b565b600f819055600e80546001600160a01b0319166001600160a01b0384161790556040518181527f01edd423db862fb00774918e3b06d9c1dd3db9a99b5a194c439d2f141876f444906020016117bd565b6000546201000090046001600160a01b03163314612db35760405162461bcd60e51b815260206004820152602f60248201527f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726660448201526e37b936903a3434b99030b1ba34b7b760891b60648201526084016109f5565b565b600080612dc183614c4c565b90508015610bd457601c54601f5460405163c2edfc7360e01b81526001600160a01b038881166004830152600093811692636116ad1e928a928a92169063c2edfc739060240160206040518083038186803b158015612e1f57600080fd5b505afa158015612e33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e579190615560565b6040518463ffffffff1660e01b8152600401612e7593929190615b9f565b604080518083038186803b158015612e8c57600080fd5b505afa158015612ea0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ec49190615ac3565b915060009050670de0b6b3a7640000612edd8484615e3f565b612ee79190615da8565b9050600082612ef589614ca3565b612eff9190615d62565b6001600160a01b0389166000908152600d6020526040902054909150612f26908390615d62565b8110612f85576001600160a01b0388166000908152600d60205260408120548390612f519084615e9d565b612f5b9190615e9d565b905083670de0b6b3a7640000612f718784615da8565b612f7b9190615e3f565b61244b9190615d62565b505050509392505050565b60008184116130b357600954612fa69084615e9d565b92506000670de0b6b3a764000080612fc0898989886130bc565b612fd290670de0b6b3a7640000615e9d565b612fdc9087615e3f565b612fe69190615da8565b612ff09087615e3f565b612ffa9190615da8565b90506000670de0b6b3a7640000600f54670de0b6b3a764000061301d9190615e9d565b6130279084615e3f565b6130319190615da8565b60075460405163edc892e160e01b8152600481018390529192506001600160a01b03169063edc892e19060240160206040518083038186803b15801561307657600080fd5b505afa15801561308a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130ae9190615aab565b925050505b95945050505050565b601c54601f5460405163c2edfc7360e01b81526001600160a01b0387811660048301526000938493849391831692636116ad1e928b928b92169063c2edfc739060240160206040518083038186803b15801561311757600080fd5b505afa15801561312b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061314f9190615560565b6040518463ffffffff1660e01b815260040161316d93929190615b9f565b604080518083038186803b15801561318457600080fd5b505afa158015613198573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131bc9190615ac3565b9150915060008083116131e6578582116131df576131da8287615e9d565b6131f0565b60006131f0565b6131f08684615d62565b9050600086831161320257600061320c565b61320c8784615e9d565b90508082106132c257601c54600a546040516327b76a6b60e21b8152600481018a90526024810186905260448101879052606481018490526084810185905260a4810189905260c48101919091526001600160a01b0390911690639edda9ac9060e40160206040518083038186803b15801561328757600080fd5b505afa15801561329b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132bf9190615aab565b94505b50505050949350505050565b6000806132de888887600061436b565b9050600061331e89828a600181111561330757634e487b7160e01b600052602160045260246000fd5b14613313576000613316565b60015b87600161436b565b90508187116135645760008061339a6040518060e001604052808d6001600160a01b031681526020018c600181111561336757634e487b7160e01b600052602160045260246000fd5b8152602081018c90526040810187905260608101869052601f546001600160a01b0316608082015260a0018a9052614640565b336000908152601e60205260409020549091506133b9576009546133ca565b336000908152601e60205260409020545b6133d49089615d62565b97506000811261347c576000670de0b6b3a7640000826133f48b83615e5e565b6133fe9190615dbc565b6134089190615d7a565b9050670de0b6b3a7640000613425662386f26fc100006002615dbc565b61343790670de0b6b3a7640000615d21565b6134419083615dbc565b61344b9190615d7a565b9050670de0b6b3a7640000613460828b615d21565b61346a908c615dbc565b6134749190615d7a565b9250506134bb565b670de0b6b3a7640000806134908382615d21565b61349a908b615dbc565b6134a49190615d7a565b6134ae908b615dbc565b6134b89190615d7a565b91505b670de0b6b3a76400006134ce8782615d21565b6134d89084615dbc565b6134e29190615d7a565b60075460405163edc892e160e01b8152600481018390529193506001600160a01b03169063edc892e19060240160206040518083038186803b15801561352757600080fd5b505afa15801561353b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061355f9190615aab565b945050505b50509695505050505050565b6000806000846001600160a01b031663cc2ee1966040518163ffffffff1660e01b8152600401604080518083038186803b1580156135ad57600080fd5b505afa1580156135c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135e59190615a10565b9092509050600084600181111561360c57634e487b7160e01b600052602160045260246000fd5b14610bd457806130b3565b601c54601f5460405163c2edfc7360e01b81526001600160a01b03848116600483015260009384939082169263ea25928a928792169063c2edfc739060240160206040518083038186803b15801561366e57600080fd5b505afa158015613682573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136a69190615560565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401604080518083038186803b1580156136eb57600080fd5b505afa1580156136ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137239190615ac3565b601f54604051631051f9d160e31b81529294509092506001600160a01b03169063828fce889061375c9086908690600090600401615be8565b600060405180830381600087803b15801561377657600080fd5b505af115801561378a573d6000803e3d6000fd5b5050601f54604051631051f9d160e31b81526001600160a01b03909116925063828fce8891506137c39086908590600190600401615be8565b600060405180830381600087803b1580156137dd57600080fd5b505af11580156137f1573d6000803e3d6000fd5b50505050505050565b6040516001600160a01b03808516602483015283166044820152606481018290526138659085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152614d2b565b50505050565b61388a8363a9059cbb60e01b848460405160240161382e929190615bcf565b505050565b600f54156138b457600e546006546138b4916001600160a01b0391821691168361386b565b6007546001600160a01b03166317fd849a6138cf8387615d62565b6040518263ffffffff1660e01b81526004016138ed91815260200190565b60206040518083038186803b15801561390557600080fd5b505afa158015613919573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061393d9190615aab565b6001600160a01b0386166000908152600d60205260409020546139609190615d62565b6001600160a01b038681166000908152600d602052604090819020929092556007549151630bfec24d60e11b8152600481018690529116906317fd849a9060240160206040518083038186803b1580156139b957600080fd5b505afa1580156139cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139f19190615aab565b6001600160a01b0386166000908152600d602052604090205411613a2d576001600160a01b0385166000908152600d6020526040812055613ae6565b600754604051630bfec24d60e11b8152600481018590526001600160a01b03909116906317fd849a9060240160206040518083038186803b158015613a7157600080fd5b505afa158015613a85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aa99190615aab565b6001600160a01b0386166000908152600d6020526040902054613acc9190615e9d565b6001600160a01b0386166000908152600d60205260409020555b6000601654118015613b0257506015546001600160a01b031615155b15613b5357600084601654670de0b6b3a7640000613b209190615e9d565b613b32670de0b6b3a764000088615e3f565b613b3c9190615da8565b613b469190615e9d565b90506113eb838287614dfd565b5050505050565b601f5460405163f475f13b60e01b81526001600160a01b038381166004830152600092169063f475f13b90602401602060405180830381600087803b158015613ba257600080fd5b505af1158015613bb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bda9190615560565b6006546040516370a0823160e01b81523060048201529192506000916001600160a01b03909116906370a082319060240160206040518083038186803b158015613c2357600080fd5b505afa158015613c37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c5b9190615aab565b1115613cf5576006546040516370a0823160e01b8152306004820152613cf59183916001600160a01b03909116906370a082319060240160206040518083038186803b158015613caa57600080fd5b505afa158015613cbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ce29190615aab565b6006546001600160a01b0316919061386b565b600080836001600160a01b031663cc2ee1966040518163ffffffff1660e01b8152600401604080518083038186803b158015613d3057600080fd5b505afa158015613d44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d689190615a10565b601c54604051637512c94560e11b81526001600160a01b038881166004830152306024830152939550919350600092839291169063ea25928a90604401604080518083038186803b158015613dbc57600080fd5b505afa158015613dd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613df49190615ac3565b90925090508115613e1357613e136001600160a01b038516868461386b565b80156113eb576113eb6001600160a01b038416868361386b565b601a546000906001600160a01b0383811691161415613e4e57506001919050565b6018546001600160a01b0383811691161415613e6c57506002919050565b6019546001600160a01b0383811691161415613e8a57506003919050565b506000919050565b6000613e9d886113f3565b613ee95760405162461bcd60e51b815260206004820152601e60248201527f4d61726b6574206973206e6f7420696e2054726164696e67207068617365000060448201526064016109f5565b50806000613ef78989611b48565b90506000613f0d82670de0b6b3a7640000615e9d565b90506011548210613f1e5781613f22565b6011545b91506000613f338b8b85600061436b565b9050600089118015613f455750808911155b613f895760405162461bcd60e51b81526020600482015260156024820152742737ba1032b737bab3b4103634b8bab4b234ba3c9760591b60448201526064016109f5565b851561405957336000908152601d6020526040902054613fce908c908c908c9087908790613fb957600f546132ce565b336000908152601d60205260409020546132ce565b9350613fe287670de0b6b3a7640000615d62565b88613ff5670de0b6b3a764000087615e3f565b613fff9190615da8565b11156140415760405162461bcd60e51b81526020600482015260116024820152700a6d8d2e0e0c2ceca40e8dede40d0d2ced607b1b60448201526064016109f5565b600654614059906001600160a01b03163330876137fa565b60006140668c8c8c614f0b565b9050801561416a57601f54604051630163027360e61b81526001600160a01b03909116906358c09cc0906140a0908f908590600401615bcf565b600060405180830381600087803b1580156140ba57600080fd5b505af11580156140ce573d6000803e3d6000fd5b505060405163140e25ad60e31b8152600481018490526001600160a01b038f16925063a0712d689150602401600060405180830381600087803b15801561411457600080fd5b505af1158015614128573d6000803e3d6000fd5b5050506001600160a01b038d166000908152600d602052604090205461415091508290615d62565b6001600160a01b038d166000908152600d60205260409020555b601f546001600160a01b031663828fce888d614186848e615e9d565b8e6040518463ffffffff1660e01b81526004016141a593929190615be8565b600060405180830381600087803b1580156141bf57600080fd5b505af11580156141d3573d6000803e3d6000fd5b5050505060006141e38d8d613570565b90506141f96001600160a01b038216338d61386b565b6010546001600160a01b03161561426f576010546040516302c7739b60e01b81526001600160a01b03909116906302c7739b9061423c9033908a90600401615bcf565b600060405180830381600087803b15801561425657600080fd5b505af115801561426a573d6000803e3d6000fd5b505050505b61427a8d873361501f565b818b11156142ee57600061428e838d615e9d565b905060008c61429d838a615e3f565b6142a79190615da8565b60408051338152602081018590529081018290529091507ff8a5b21533fcaaeee91cd7b3c6ccbaa3f4ab6dd200e61bc560713565b20b1e9a9060600160405180910390a150505b6142f78d613b5a565b7ff3bfbc0822d1ed667a2b298e71e0304f2c1f4685398189d7c39e412f733150f4338e8e8e8a600660009054906101000a90046001600160a01b0316876040516143479796959493929190615b4f565b60405180910390a161435b8d8d88336152a6565b5050505050979650505050505050565b6000818061437a575060125483105b156126105760095461438c9084615d62565b9250670de0b6b3a7640000831015612610576000670de0b6b3a76400006002600a546143b89190615da8565b6143ca90670de0b6b3a7640000615e9d565b6143d49086615e3f565b6143de9190615da8565b601c54601f5460405163c2edfc7360e01b81526001600160a01b038a811660048301529394506000939283169263e468265c928b928b929091169063c2edfc739060240160206040518083038186803b15801561443a57600080fd5b505afa15801561444e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144729190615560565b6040518463ffffffff1660e01b815260040161449093929190615b9f565b60206040518083038186803b1580156144a857600080fd5b505afa1580156144bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144e09190615aab565b90506000670de0b6b3a76400006144f78484615e3f565b6145019190615da8565b6001600160a01b0389166000908152600d6020526040902054909150816145278a614ca3565b6145319190615d62565b1115614635576001600160a01b0388166000908152600d60205260408120548261455a8b614ca3565b6145649190615d62565b61456e9190615e9d565b905061457989614ca3565b81111561458c5761458989614ca3565b90505b6000670de0b6b3a76400006002600a546145a69190615da8565b6145b88a670de0b6b3a7640000615e9d565b6145c29190615e3f565b6145cc9190615da8565b9050670de0b6b3a76400006145e1828a615d62565b10156146325760006145f3828a615d62565b61460590670de0b6b3a7640000615e9d565b90508061461a670de0b6b3a764000085615e3f565b6146249190615da8565b61462e9086615d62565b9650505b50505b505050949350505050565b60006011548260c001511015801561465e57506012548260c0015111155b1561159e57601c548251602084015160a085015160405163c2edfc7360e01b81526001600160a01b038085166004830152600095869590821694636116ad1e94919390929091169063c2edfc739060240160206040518083038186803b1580156146c757600080fd5b505afa1580156146db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146ff9190615560565b6040518463ffffffff1660e01b815260040161471d93929190615b9f565b604080518083038186803b15801561473457600080fd5b505afa158015614748573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061476c9190615ac3565b91509150600084604001518311614784576000614793565b60408501516147939084615e9d565b90506000856040015184116147b7578386604001516147b29190615e9d565b6147ba565b60005b6147c49084615d62565b905080821061489e57601c546040805160a08101825286815260208101868152898301518284019081526080808c015160608501908152600a549185019182529451632888a20d60e01b8152935160048501529151602484015251604483015291516064820152905160848201526001600160a01b0390911690632888a20d9060a40160206040518083038186803b15801561485f57600080fd5b505afa158015614873573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906148979190615aab565b9450614c43565b8386604001511180156148b15750600084115b15614b875760008487604001516148c89190615e9d565b601c546040805160e081019091528281529192506000916001600160a01b039091169063f5f9c25790602081016148ff8a8a615d62565b815260006020820152604001614915868a615d62565b815260200160008152602001898c606001516149319190615e9d565b8152602001600a548152506040518263ffffffff1660e01b81526004016149589190615cd3565b60206040518083038186803b15801561497057600080fd5b505afa158015614984573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906149a89190615aab565b905060006149be89600001518a60200151611b48565b8951909150600090614a0290828c6020015160018111156149ef57634e487b7160e01b600052602160045260246000fd5b146149fb576000611b48565b6001611b48565b9050600082614a118584615e3f565b614a1b9190615da8565b90506000601c60009054906101000a90046001600160a01b03166001600160a01b0316632888a20d6040518060a001604052808d81526020018c81526020018d81526020018f608001518152602001600a548152506040518263ffffffff1660e01b8152600401614ac19190600060a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b60206040518083038186803b158015614ad957600080fd5b505afa158015614aed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614b119190615aab565b90506000614b1f828c615dbc565b90506000614b2d8489615e3f565b90506000614b3b898e615d62565b905080614b488385615d21565b614b529190615d7a565b9d5060008e1315614b79576000614b698f89615dbc565b9050614b758782615d7a565b9e50505b505050505050505050614c43565b601c546040805160e0810182528882015181526020810186905280820187905260608082018590526080820186905289015160a0820152600a5460c0820152905163f5f9c25760e01b81526001600160a01b039092169163f5f9c25791614bf091600401615cd3565b60206040518083038186803b158015614c0857600080fd5b505afa158015614c1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614c409190615aab565b94505b50505050919050565b600060115482111561159e57670de0b6b3a76400006002600a54614c709190615da8565b614c8290670de0b6b3a7640000615e9d565b600954614c8f9085615e9d565b614c999190615e3f565b611dea9190615da8565b600080826001600160a01b03166341bc7b1f6040518163ffffffff1660e01b815260040160606040518083038186803b158015614cdf57600080fd5b505afa158015614cf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614d1791906159e3565b50509050614d2481612c2c565b9392505050565b6000614d80826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661542a9092919063ffffffff16565b80519091501561388a5780806020019051810190614d9e919061598e565b61388a5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016109f5565b601554604051639ca423b360e01b81526001600160a01b0385811660048301526000921690639ca423b39060240160206040518083038186803b158015614e4357600080fd5b505afa158015614e57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614e7b9190615560565b90506001600160a01b03811615801590614e9757506000601654115b1561386557600654614eb3906001600160a01b0316828561386b565b604080516001600160a01b03808416825286166020820152908101849052606081018390527f8fa68a6a8e2fc9ff758a6e64afba8bc2f66fb082999a2c5225c8c49633faded49060800160405180910390a150505050565b601c54601f5460405163c2edfc7360e01b81526001600160a01b03868116600483015260009384939082169263e468265c928992899291169063c2edfc739060240160206040518083038186803b158015614f6557600080fd5b505afa158015614f79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614f9d9190615560565b6040518463ffffffff1660e01b8152600401614fbb93929190615b9f565b60206040518083038186803b158015614fd357600080fd5b505afa158015614fe7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061500b9190615aab565b905082811015610bd457610bd18184615e9d565b600f54600090156150af57336000908152601d602052604090205461504657600f54615057565b336000908152601d60205260409020545b61506990670de0b6b3a7640000615d62565b61507b670de0b6b3a764000085615e3f565b6150859190615da8565b61508f9084615e9d565b600e546006549192506150af916001600160a01b0390811691168361386b565b6007546001600160a01b03166317fd849a6150ca8386615e9d565b6040518263ffffffff1660e01b81526004016150e891815260200190565b60206040518083038186803b15801561510057600080fd5b505afa158015615114573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906151389190615aab565b6001600160a01b0385166000908152600d602052604090205411615174576001600160a01b0384166000908152600d602052604081205561523a565b6007546001600160a01b03166317fd849a61518f8386615e9d565b6040518263ffffffff1660e01b81526004016151ad91815260200190565b60206040518083038186803b1580156151c557600080fd5b505afa1580156151d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906151fd9190615aab565b6001600160a01b0385166000908152600d60205260409020546152209190615e9d565b6001600160a01b0385166000908152600d60205260409020555b600060165411801561525657506015546001600160a01b031615155b15613865576000601654670de0b6b3a76400006152739190615d62565b615285670de0b6b3a764000086615e3f565b61528f9190615da8565b6152999085615e9d565b9050613b53838286614dfd565b600080856001600160a01b03166341bc7b1f6040518163ffffffff1660e01b815260040160606040518083038186803b1580156152e257600080fd5b505afa1580156152f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061531a91906159e3565b506005546040516315905ec160e31b8152600481018490529294509092506000916101009091046001600160a01b03169063ac82f6089060240160206040518083038186803b15801561536c57600080fd5b505afa158015615380573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906153a49190615aab565b90506000808760018111156153c957634e487b7160e01b600052602160045260246000fd5b146153d6578282106153db565b828210155b60408051338152602081018990528215158183015290519192507f80631c28c8a8100630a9d2bce38b276a55426b59f4d47fb06072105118083ec1919081900360600190a15050505050505050565b6060612610848460008585843b6154835760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016109f5565b600080866001600160a01b0316858760405161549f9190615b33565b60006040518083038185875af1925050503d80600081146154dc576040519150601f19603f3d011682016040523d82523d6000602084013e6154e1565b606091505b50915091506154f18282866154fc565b979650505050505050565b6060831561550b575081614d24565b82511561551b5782518084602001fd5b8160405162461bcd60e51b81526004016109f59190615c0c565b80356002811061159e57600080fd5b600060208284031215615555578081fd5b8135614d2481615f27565b600060208284031215615571578081fd5b8151614d2481615f27565b6000806040838503121561558e578081fd5b823561559981615f27565b946020939093013593505050565b60008060008060008060c087890312156155bf578182fd5b86356155ca81615f27565b955060208701356155da81615f27565b945060408701356155ea81615f27565b935060608701356155fa81615f27565b9250608087013561560a81615f3c565b8092505060a087013590509295509295509295565b60008060408385031215615631578182fd5b823561563c81615f27565b9150602083013561564c81615f3c565b809150509250929050565b600080600080600080600080610100898b031215615673578182fd5b883561567e81615f27565b9750602089013561568e81615f27565b9650604089013561569e81615f27565b95506060890135945060808901356156b581615f27565b979a969950949793969560a0850135955060c08501359460e001359350915050565b600080604083850312156156e9578182fd5b82356156f481615f27565b915061570260208401615535565b90509250929050565b60008060006060848603121561571f578081fd5b833561572a81615f27565b925061573860208501615535565b9150604084013590509250925092565b6000806000806080858703121561575d578182fd5b843561576881615f27565b935061577660208601615535565b925060408501359150606085013561578d81615f27565b939692955090935050565b600080600080600060a086880312156157af578283fd5b85356157ba81615f27565b94506157c860208701615535565b94979496505050506040830135926060810135926080909101359150565b60008060008060008060c087890312156157fe578384fd5b863561580981615f27565b955061581760208801615535565b945060408701359350606087013592506080870135915060a087013561583c81615f27565b809150509295509295509295565b600080600080600080600060e0888a031215615864578081fd5b873561586f81615f27565b965061587d60208901615535565b955060408801359450606088013593506080880135925060a08801356158a281615f27565b915060c08801356158b281615f27565b8091505092959891949750929550565b6000806040838503121561558e578182fd5b6000806000806000608086880312156158eb578283fd5b853567ffffffffffffffff80821115615902578485fd5b818801915088601f830112615915578485fd5b813581811115615923578586fd5b8960208260051b8501011115615937578586fd5b6020928301975095505086013561594d81615f27565b925060408601359150606086013561596481615f3c565b809150509295509295909350565b600060208284031215615983578081fd5b8135614d2481615f3c565b60006020828403121561599f578081fd5b8151614d2481615f3c565b6000602082840312156159bb578081fd5b5035919050565b600080604083850312156159d4578182fd5b50508035926020909101359150565b6000806000606084860312156159f7578081fd5b8351925060208401519150604084015190509250925092565b60008060408385031215615a22578182fd5b8251615a2d81615f27565b602084015190925061564c81615f27565b60008060408385031215615a50578182fd5b8235615a5b81615f27565b9150602083013561564c81615f27565b600080600060608486031215615a7f578081fd5b8335615a8a81615f27565b92506020840135615a9a81615f27565b929592945050506040919091013590565b600060208284031215615abc578081fd5b5051919050565b60008060408385031215615ad5578182fd5b505080516020909101519092909150565b600080600060608486031215615afa578081fd5b505081359360208301359350604090920135919050565b60028110615b2f57634e487b7160e01b600052602160045260246000fd5b9052565b60008251615b45818460208701615eb4565b9190910192915050565b6001600160a01b038881168252878116602083015260e0820190615b766040840189615b11565b86606084015285608084015280851660a084015280841660c08401525098975050505050505050565b6001600160a01b0384811682526060820190615bbe6020840186615b11565b808416604084015250949350505050565b6001600160a01b03929092168252602082015260400190565b6001600160a01b038416815260208101839052606081016126106040830184615b11565b6020815260008251806020840152615c2b816040850160208701615eb4565b601f01601f19169190910160400192915050565b6020808252603c908201527f5468697320616374696f6e2063616e6e6f7420626520706572666f726d65642060408201527f7768696c652074686520636f6e74726163742069732070617573656400000000606082015260800190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b600060e082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015292915050565b600080821280156001600160ff1b0384900385131615615d4357615d43615efb565b600160ff1b8390038412811615615d5c57615d5c615efb565b50500190565b60008219821115615d7557615d75615efb565b500190565b600082615d8957615d89615f11565b600160ff1b821460001984141615615da357615da3615efb565b500590565b600082615db757615db7615f11565b500490565b60006001600160ff1b0381841382841380821686840486111615615de257615de2615efb565b600160ff1b84871282811687830589121615615e0057615e00615efb565b858712925087820587128484161615615e1b57615e1b615efb565b87850587128184161615615e3157615e31615efb565b505050929093029392505050565b6000816000190483118215151615615e5957615e59615efb565b500290565b60008083128015600160ff1b850184121615615e7c57615e7c615efb565b6001600160ff1b0384018313811615615e9757615e97615efb565b50500390565b600082821015615eaf57615eaf615efb565b500390565b60005b83811015615ecf578181015183820152602001615eb7565b838111156138655750506000910152565b6000600019821415615ef457615ef4615efb565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b6001600160a01b0381168114610bac57600080fd5b8015158114610bac57600080fdfea2646970667358221220c20667c7754e61314a0a443f103c7772c66bff5fe513fc20f08c471f067f6c6d64736f6c63430008040033
🤖 Code Reader
Generate instant answers for your smart contract questions using Al Models. Read more.
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
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.

