Source Code
Overview
ETH Balance
0 ETH
ETH Value
$0.00
Cross-Chain Transactions
Loading...
Loading
Heuristics suggest this may be a proxy contract. Verify using the Proxy Contract Checker
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[],"name":"DataAlreadyLoaded","type":"error"},{"inputs":[],"name":"DataNotLoaded","type":"error"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"name":"ERC1967InvalidImplementation","type":"error"},{"inputs":[],"name":"ERC1967NonPayable","type":"error"},{"inputs":[],"name":"EnforcedPause","type":"error"},{"inputs":[],"name":"ExpectedPause","type":"error"},{"inputs":[],"name":"FailedCall","type":"error"},{"inputs":[],"name":"InvalidCropId","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[{"internalType":"string","name":"parameter","type":"string"}],"name":"InvalidInput","type":"error"},{"inputs":[],"name":"NotContract","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"QuestSiloNotConfigured","type":"error"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"SafeCastOverflowedUintDowncast","type":"error"},{"inputs":[],"name":"UUPSUnauthorizedCallContext","type":"error"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"name":"UUPSUnsupportedProxiableUUID","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint8","name":"boosterId","type":"uint8"},{"indexed":true,"internalType":"address","name":"updater","type":"address"}],"name":"BoosterEffectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint8","name":"cropId","type":"uint8"},{"indexed":true,"internalType":"address","name":"updater","type":"address"}],"name":"CropPropertiesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint8","name":"fertilizerId","type":"uint8"},{"indexed":true,"internalType":"address","name":"updater","type":"address"}],"name":"FertilizerEffectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"loader","type":"address"}],"name":"InitialDataLoaded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint8","name":"cropId","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"maxCrops","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"xpPerCrop","type":"uint256"}],"name":"QuestSiloConfigUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint8","name":"seedId","type":"uint8"},{"indexed":true,"internalType":"uint8","name":"season","type":"uint8"},{"indexed":true,"internalType":"address","name":"updater","type":"address"}],"name":"SeasonalMultipliersUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint8","name":"seedId","type":"uint8"},{"indexed":true,"internalType":"address","name":"updater","type":"address"}],"name":"SeedPropertiesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EMERGENCY_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GAME_ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_CROPS","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_GROWTH_TIME","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_ITEMS","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_SEEDS","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SEASONAL_CYCLE_DAYS","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SEASON_DURATION_DAYS","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UPGRADER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"boosterId","type":"uint256"}],"name":"boosterEffects","outputs":[{"internalType":"uint16","name":"xpMultiplier","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"seedId","type":"uint256"},{"internalType":"uint256","name":"usdcAmount","type":"uint256"}],"name":"calculateTierFromUsdcAmount","outputs":[{"internalType":"uint256","name":"tier","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"recipeId","type":"uint256"}],"name":"craftingRecipes","outputs":[{"internalType":"uint256","name":"outputId","type":"uint256"},{"internalType":"uint256","name":"outputAmount","type":"uint256"},{"internalType":"uint32","name":"onCraftXp","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"cropId","type":"uint256"}],"name":"cropToSeed","outputs":[{"internalType":"uint256","name":"seedId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"cropId","type":"uint256"}],"name":"crops","outputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint16","name":"extraSeedThreshold","type":"uint16"},{"internalType":"uint16","name":"stdThreshold","type":"uint16"},{"internalType":"uint16","name":"yieldThreshold","type":"uint16"},{"internalType":"uint16","name":"fastThreshold","type":"uint16"},{"internalType":"uint16","name":"failThreshold","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"fertilizerId","type":"uint256"}],"name":"fertilizerEffects","outputs":[{"internalType":"uint16","name":"growthSpeedBonus","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAllActiveCropIds","outputs":[{"internalType":"uint8[]","name":"","type":"uint8[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"cropId","type":"uint8"}],"name":"getBaseSeedId","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"boosterId","type":"uint8"}],"name":"getBoosterEffect","outputs":[{"components":[{"internalType":"uint16","name":"xpMultiplier","type":"uint16"}],"internalType":"struct ItemDataStore.BoosterEffect","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"outputId","type":"uint256"}],"name":"getCraftingRecipe","outputs":[{"components":[{"internalType":"uint256","name":"outputId","type":"uint256"},{"internalType":"uint256","name":"outputAmount","type":"uint256"},{"components":[{"internalType":"uint256","name":"itemId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct ItemDataStore.CraftInput[]","name":"inputs","type":"tuple[]"},{"internalType":"uint32","name":"onCraftXp","type":"uint32"}],"internalType":"struct ItemDataStore.CraftRecipe","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"cropId","type":"uint8"}],"name":"getCropData","outputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint16","name":"extraSeedThreshold","type":"uint16"},{"internalType":"uint16","name":"stdThreshold","type":"uint16"},{"internalType":"uint16","name":"yieldThreshold","type":"uint16"},{"internalType":"uint16","name":"fastThreshold","type":"uint16"},{"internalType":"uint16","name":"failThreshold","type":"uint16"}],"internalType":"struct ItemDataStore.CropData","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"cropId","type":"uint8"}],"name":"getCropDataThresholds","outputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"seedId","type":"uint8"}],"name":"getCropFromSeed","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"seedId","type":"uint8"}],"name":"getCropId","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentSeason","outputs":[{"internalType":"enum ItemDataStore.Season","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"fertilizerId","type":"uint8"}],"name":"getFertilizerEffect","outputs":[{"components":[{"internalType":"uint16","name":"growthSpeedBonus","type":"uint16"}],"internalType":"struct ItemDataStore.FertilizerEffect","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"seedId","type":"uint256"},{"internalType":"uint256","name":"tier","type":"uint256"}],"name":"getFlatAmountForTier","outputs":[{"internalType":"uint256","name":"flatAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"seedId","type":"uint256"},{"internalType":"uint256","name":"usdcAmount","type":"uint256"}],"name":"getFlatAmountForUsdcAmount","outputs":[{"internalType":"uint256","name":"flatAmount","type":"uint256"},{"internalType":"uint256","name":"tier","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"seedId","type":"uint256"},{"internalType":"uint256","name":"tier","type":"uint256"}],"name":"getFlatTimerForTierAndId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"seedId","type":"uint256"}],"name":"getPowerFarmConfig","outputs":[{"components":[{"internalType":"uint32[6]","name":"flatTimerTierArray","type":"uint32[6]"},{"internalType":"uint256[6]","name":"usdcThresholds","type":"uint256[6]"}],"internalType":"struct ItemDataStore.PowerFarmConfig","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"cropId","type":"uint8"}],"name":"getQuestSiloConfig","outputs":[{"components":[{"internalType":"uint256","name":"maxCrops","type":"uint256"},{"internalType":"uint256","name":"xpPerCrop","type":"uint256"}],"internalType":"struct ItemDataStore.QuestSiloConfig","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"seedId","type":"uint8"}],"name":"getSeasonalMultipliers","outputs":[{"internalType":"uint16[4]","name":"growthMultipliers","type":"uint16[4]"},{"internalType":"uint16[4]","name":"xpMultipliers","type":"uint16[4]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"seedId","type":"uint8"}],"name":"getSeedData","outputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint32","name":"growthTime","type":"uint32"},{"internalType":"uint16","name":"yield","type":"uint16"},{"internalType":"uint16","name":"baseXp","type":"uint16"},{"components":[{"internalType":"uint8","name":"yieldId","type":"uint8"},{"internalType":"uint8","name":"fastId","type":"uint8"}],"internalType":"struct ItemDataStore.SeedVariants","name":"variants","type":"tuple"},{"internalType":"uint16[4]","name":"seasonalGrowthMultipliers","type":"uint16[4]"},{"internalType":"uint16[4]","name":"seasonalXpMultipliers","type":"uint16[4]"}],"internalType":"struct ItemDataStore.SeedData","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"seedId","type":"uint8"}],"name":"getSeedDataForCurrentSeason","outputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint32","name":"growthTime","type":"uint32"},{"internalType":"uint16","name":"yield","type":"uint16"},{"internalType":"uint16","name":"baseXp","type":"uint16"},{"components":[{"internalType":"uint8","name":"yieldId","type":"uint8"},{"internalType":"uint8","name":"fastId","type":"uint8"}],"internalType":"struct ItemDataStore.SeedVariants","name":"variants","type":"tuple"},{"internalType":"uint16[4]","name":"seasonalGrowthMultipliers","type":"uint16[4]"},{"internalType":"uint16[4]","name":"seasonalXpMultipliers","type":"uint16[4]"}],"internalType":"struct ItemDataStore.SeedData","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"seedId","type":"uint8"},{"internalType":"enum ItemDataStore.Season","name":"season","type":"uint8"}],"name":"getSeedDataForSeason","outputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint32","name":"growthTime","type":"uint32"},{"internalType":"uint16","name":"yield","type":"uint16"},{"internalType":"uint16","name":"baseXp","type":"uint16"},{"components":[{"internalType":"uint8","name":"yieldId","type":"uint8"},{"internalType":"uint8","name":"fastId","type":"uint8"}],"internalType":"struct ItemDataStore.SeedVariants","name":"variants","type":"tuple"},{"internalType":"uint16[4]","name":"seasonalGrowthMultipliers","type":"uint16[4]"},{"internalType":"uint16[4]","name":"seasonalXpMultipliers","type":"uint16[4]"}],"internalType":"struct ItemDataStore.SeedData","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"cropId","type":"uint8"}],"name":"getSeedFromCrop","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"seedId","type":"uint8"}],"name":"getSeedGrowthTime","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"seedId","type":"uint8"}],"name":"getSeedGrowthTimeForCurrentSeason","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"seedId","type":"uint8"},{"internalType":"enum ItemDataStore.Season","name":"season","type":"uint8"}],"name":"getSeedGrowthTimeForSeason","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"seedId","type":"uint8"}],"name":"getSeedVariants","outputs":[{"components":[{"internalType":"uint8","name":"yieldId","type":"uint8"},{"internalType":"uint8","name":"fastId","type":"uint8"}],"internalType":"struct ItemDataStore.SeedVariants","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"seedId","type":"uint8"}],"name":"getSeedXpForCurrentSeason","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"seedId","type":"uint8"},{"internalType":"enum ItemDataStore.Season","name":"season","type":"uint8"}],"name":"getSeedXpForSeason","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"seedId","type":"uint8"}],"name":"getSeedYield","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8[]","name":"cropIds","type":"uint8[]"}],"name":"getSilos","outputs":[{"internalType":"uint256[]","name":"xp","type":"uint256[]"},{"internalType":"uint256[]","name":"limit","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"seedId","type":"uint256"},{"internalType":"uint256","name":"tier","type":"uint256"}],"name":"getUsdcThresholdForTier","outputs":[{"internalType":"uint256","name":"usdcThreshold","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getVersion","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getWeekId","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialDataLoaded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"isCrop","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"isDataInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"isItem","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"isSeed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"uint8","name":"seedId","type":"uint8"},{"internalType":"string","name":"name","type":"string"},{"internalType":"uint32","name":"growthTime","type":"uint32"},{"internalType":"uint16","name":"yield","type":"uint16"},{"internalType":"uint16","name":"baseXp","type":"uint16"},{"internalType":"uint8","name":"cropId","type":"uint8"},{"components":[{"internalType":"uint8","name":"yieldId","type":"uint8"},{"internalType":"uint8","name":"fastId","type":"uint8"}],"internalType":"struct ItemDataStore.SeedVariants","name":"variants","type":"tuple"},{"internalType":"uint16[4]","name":"seasonalGrowthMultipliers","type":"uint16[4]"},{"internalType":"uint16[4]","name":"seasonalXpMultipliers","type":"uint16[4]"}],"internalType":"struct ItemDataStore.SeedInitData[]","name":"seedsData","type":"tuple[]"},{"components":[{"internalType":"uint8","name":"cropId","type":"uint8"},{"internalType":"string","name":"name","type":"string"},{"internalType":"uint16","name":"extraSeedThreshold","type":"uint16"},{"internalType":"uint16","name":"stdThreshold","type":"uint16"},{"internalType":"uint16","name":"yieldThreshold","type":"uint16"},{"internalType":"uint16","name":"fastThreshold","type":"uint16"},{"internalType":"uint16","name":"failThreshold","type":"uint16"},{"internalType":"uint8","name":"baseSeedId","type":"uint8"}],"internalType":"struct ItemDataStore.CropInitData[]","name":"cropsData","type":"tuple[]"},{"components":[{"internalType":"uint8","name":"fertilizerId","type":"uint8"},{"internalType":"string","name":"name","type":"string"},{"components":[{"internalType":"uint16","name":"growthSpeedBonus","type":"uint16"}],"internalType":"struct ItemDataStore.FertilizerEffect","name":"effect","type":"tuple"}],"internalType":"struct ItemDataStore.FertilizerInitData[]","name":"fertilizersData","type":"tuple[]"},{"components":[{"internalType":"uint8","name":"boosterId","type":"uint8"},{"internalType":"string","name":"name","type":"string"},{"components":[{"internalType":"uint16","name":"xpMultiplier","type":"uint16"}],"internalType":"struct ItemDataStore.BoosterEffect","name":"effect","type":"tuple"}],"internalType":"struct ItemDataStore.BoosterInitData[]","name":"boostersData","type":"tuple[]"},{"components":[{"internalType":"uint256","name":"outputId","type":"uint256"},{"internalType":"uint256","name":"outputAmount","type":"uint256"},{"components":[{"internalType":"uint256","name":"itemId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct ItemDataStore.CraftInput[]","name":"inputs","type":"tuple[]"},{"internalType":"uint32","name":"onCraftXp","type":"uint32"}],"internalType":"struct ItemDataStore.CraftRecipe[]","name":"recipesData","type":"tuple[]"},{"components":[{"internalType":"uint256","name":"seedId","type":"uint256"},{"internalType":"uint32[6]","name":"flatTimerTierArray","type":"uint32[6]"},{"internalType":"uint256[6]","name":"usdcThresholds","type":"uint256[6]"}],"internalType":"struct ItemDataStore.PowerFarmInitData[]","name":"powerFarmData","type":"tuple[]"},{"components":[{"internalType":"uint8","name":"cropId","type":"uint8"},{"internalType":"uint256","name":"maxCrops","type":"uint256"},{"internalType":"uint256","name":"xpPerCrop","type":"uint256"}],"internalType":"struct ItemDataStore.QuestSiloInitData[]","name":"questSiloData","type":"tuple[]"},{"internalType":"uint256","name":"_seasonStartTime","type":"uint256"}],"name":"loadInitialData","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"","type":"uint8"}],"name":"questSiloConfigs","outputs":[{"internalType":"uint256","name":"maxCrops","type":"uint256"},{"internalType":"uint256","name":"xpPerCrop","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"seasonStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"seedId","type":"uint256"}],"name":"seedToCrop","outputs":[{"internalType":"uint256","name":"cropId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"seedId","type":"uint256"}],"name":"seeds","outputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint32","name":"growthTime","type":"uint32"},{"internalType":"uint16","name":"yield","type":"uint16"},{"internalType":"uint16","name":"baseXp","type":"uint16"},{"components":[{"internalType":"uint8","name":"yieldId","type":"uint8"},{"internalType":"uint8","name":"fastId","type":"uint8"}],"internalType":"struct ItemDataStore.SeedVariants","name":"variants","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"boosterId","type":"uint8"},{"components":[{"internalType":"uint16","name":"xpMultiplier","type":"uint16"}],"internalType":"struct ItemDataStore.BoosterEffect","name":"effect","type":"tuple"}],"name":"setBoosterEffect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"outputId","type":"uint256"},{"components":[{"internalType":"uint256","name":"outputId","type":"uint256"},{"internalType":"uint256","name":"outputAmount","type":"uint256"},{"components":[{"internalType":"uint256","name":"itemId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct ItemDataStore.CraftInput[]","name":"inputs","type":"tuple[]"},{"internalType":"uint32","name":"onCraftXp","type":"uint32"}],"internalType":"struct ItemDataStore.CraftRecipe","name":"recipe","type":"tuple"}],"name":"setCraftingRecipe","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"cropId","type":"uint8"},{"internalType":"uint16","name":"extraSeedThreshold","type":"uint16"},{"internalType":"uint16","name":"stdThreshold","type":"uint16"},{"internalType":"uint16","name":"yieldThreshold","type":"uint16"},{"internalType":"uint16","name":"fastThreshold","type":"uint16"},{"internalType":"uint16","name":"failThreshold","type":"uint16"},{"internalType":"uint8","name":"baseSeedId","type":"uint8"}],"name":"setCropProperties","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"fertilizerId","type":"uint8"},{"components":[{"internalType":"uint16","name":"growthSpeedBonus","type":"uint16"}],"internalType":"struct ItemDataStore.FertilizerEffect","name":"effect","type":"tuple"}],"name":"setFertilizerEffect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"seedId","type":"uint256"},{"internalType":"uint32[6]","name":"flatTimerTierArray","type":"uint32[6]"},{"internalType":"uint256[6]","name":"usdcThresholds","type":"uint256[6]"}],"name":"setPowerFarmConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"cropId","type":"uint8"},{"internalType":"uint256","name":"maxCrops","type":"uint256"},{"internalType":"uint256","name":"xpPerCrop","type":"uint256"}],"name":"setQuestSiloConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"seedId","type":"uint8"},{"internalType":"uint16[4]","name":"seasonalGrowthMultipliers","type":"uint16[4]"},{"internalType":"uint16[4]","name":"seasonalXpMultipliers","type":"uint16[4]"}],"name":"setSeasonalMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"seedId","type":"uint8"},{"internalType":"uint32","name":"growthTime","type":"uint32"},{"internalType":"uint16","name":"yield","type":"uint16"},{"internalType":"uint16","name":"baseXp","type":"uint16"},{"internalType":"uint8","name":"cropId","type":"uint8"},{"components":[{"internalType":"uint8","name":"yieldId","type":"uint8"},{"internalType":"uint8","name":"fastId","type":"uint8"}],"internalType":"struct ItemDataStore.SeedVariants","name":"variants","type":"tuple"}],"name":"setSeedProperties","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"}]Contract Creation Code
60a08060405234620000f557306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c16620000e657506001600160401b036002600160401b031982821601620000a0575b60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc556040516151f59081620000fa82396080518181816111f401526114300152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806200005c565b63f92ee8a960e01b8152600490fd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104f557806303e1649c146104f05780630d8e6e2c1461037e5780630f09fed7146104eb578063115d538d146104e657806312f0c3a1146104e1578063192bc94e146104dc5780631f5d546e146104d757806320df4359146104d2578063248a9ca3146104cd5780632caa923d146104c85780632f27f2a4146104c35780632f2ff15d146104be5780632fd24836146104b95780633162d3da146104b457806335fa5b57146104af57806336568abe146104aa5780633893bc4c1461039c5780633f4ba83a146104a557806340d058cb146104a0578063420cde401461049b578063429700c2146104965780634a0ca4e1146104915780634acaf4421461048c5780634d50af74146104875780634f1ef286146104825780634fb58c651461047d57806352d1902d146104785780635504d3d2146104735780635716d8f71461046e57806357b685e31461046957806357d4c4ee1461046457806358133236146104375780635c975abb1461045f57806361a8a7131461045a57806363e986ba1461045557806368240c34146104505780636abff3801461044b5780636d3962be14610446578063701c34521461044157806370c9f1a51461043c57806375c1f2c714610437578063768f4fc8146104325780637bb077b61461042d5780637fec83ca146104285780638053293414610423578063806a5eb51461041e5780638104ae4d146104195780638456cb59146104145780638950d4a91461040f5780638b032eaa1461040a5780638ec80348146104055780638fb942431461040057806391d14854146103fb57806394d68a46146103f6578063964855d8146103f157806398283586146103ec578063a217fddf146103e7578063a481eef9146103e2578063a5a0c4e0146103dd578063aaf10f42146103d8578063ad3cb1cc146103d3578063b4c498b5146103ce578063b717e036146103c9578063bf1b5239146103c4578063cd7a4ab3146103bf578063d2a34be1146103ba578063d3b30b75146103b5578063d547741f146103b0578063e07a0f72146103ab578063e2b37121146103a6578063e3f6bdad146103a1578063ebe56eee1461039c578063f0503e8014610397578063f3fe8fda14610392578063f69ca8421461038d578063f72c0d8b14610388578063fad2f84d146103835763ffa1ad741461037e575f80fd5b6105c5565b613165565b6130a2565b61308f565b613040565b612fad565b610de9565b612f2e565b612f05565b612eea565b612ea1565b612e75565b612e0a565b612cc8565b612b99565b612b4a565b612a9d565b612a1a565b6129e6565b612966565b612922565b612908565b612830565b612775565b61269c565b612642565b61262f565b6125a8565b61241e565b61222d565b6121c8565b6121ab565b612115565b61202b565b611cf4565b611cac565b611c82565b6115fe565b611c04565b611aba565b611aa0565b6119a1565b611829565b611716565b61164d565b61161f565b6115e3565b61159c565b6114c1565b611487565b61141e565b61133b565b6111a1565b610ffd565b610fab565b610f65565b610f3d565b610ee1565b610e79565b610e04565b610da2565b610bdf565b610b9a565b610b6c565b610b21565b610ada565b610a7c565b610a43565b610a09565b6109ba565b6108f4565b610829565b6106f2565b61060e565b61054f565b3461054b57602036600319011261054b5760043563ffffffff60e01b811680910361054b57602090637965db0b60e01b811490811561053a575b506040519015158152f35b6301ffc9a760e01b1490505f61052f565b5f80fd5b3461054b57602036600319011261054b57602060043560c9811015908161057b57506040519015158152f35b60d2915011155f61052f565b91908251928382525f5b8481106105b1575050825f602080949584010152601f8019910116010190565b602081830181015184830182015201610591565b3461054b575f36600319011261054b5761060a6040516105e481611060565b60058152640312e302e360dc1b6020820152604051918291602083526020830190610587565b0390f35b3461054b575f36600319011261054b5760206040516202a3008152f35b60ff81160361054b57565b5f915b6004831061064657505050565b60019061ffff83511681526020809101920192019190610639565b6106ef906020815261016060c061068685516101c060208601526101e0850190610587565b9463ffffffff6020820151166040850152604081015161ffff809116606086015260608201511660808501526106d3608082015160a086019060ff60208092828151168552015116910152565b6106e560a082015160e0860190610636565b0151910190610636565b90565b3461054b57602036600319011261054b5760043561070f8161062b565b61071761326f565b5060ff811680159081156107fc575b506107de5761060a9061073842613e71565b6107556107508360ff165f52600260205260405f2090565b613326565b8051926107c361077e6107688584613e17565b94610778604086015161ffff1690565b93613680565b6107b86080850151936107ad60c060a08801519701519761079d611129565b998a5263ffffffff1660208a0152565b61ffff166040880152565b61ffff166060860152565b608084015260a083015260c082015260405191829182610661565b60405163d647364f60e01b8152806107f8600482016132ce565b0390fd5b60649150115f610726565b61082790929192604081019360ff60208092828151168552015116910152565b565b3461054b57602036600319011261054b5760ff6004356108488161062b565b610850613257565b501680158015610884575b6107de575f52600260205261060a610878600260405f2001612f8b565b60405191829182610807565b506064811161085b565b815161018082019392905f90835b600683106108d75750505060c060208092015192015f905b600682106108c25750505050565b828060019286518152019401910190926108b4565b60019063ffffffff8351168152602080910192019201919061089c565b3461054b5760208060031936011261054b5761060a906040805161091781611060565b8151610922816110b6565b60c0368237815282825191610936836110b6565b60c036843701526004355f52600a8252805f20916109ac600183519461095b86611060565b8451815463ffffffff9081811683528181881c16878401528181891c1688840152818160601c166060840152818160801c16608084015260a01c1660a08201526109a4816110b6565b86520161339d565b90830152519182918261088e565b3461054b57602036600319011261054b5760ff6004356109d98161062b565b166109e38161345d565b156107de575f52600460205260206109fe60405f2054613ec9565b60ff60405191168152f35b3461054b575f36600319011261054b5760206040517fbf233dd2aafeb4d50879c4aa5c81e96d92f6e6945c906a58f9f2d1c1631b4b268152f35b3461054b57602036600319011261054b576004355f525f805160206151808339815191526020526020600160405f200154604051908152f35b3461054b57602036600319011261054b57600435610a998161062b565b60ff81168015908115610acf575b506107de57610ac1602091610abb42613e71565b90613e17565b63ffffffff60405191168152f35b60649150115f610aa7565b3461054b575f36600319011261054b576020604051601c8152f35b602435906001600160a01b038216820361054b57565b600435906001600160a01b038216820361054b57565b3461054b57604036600319011261054b57610b6a600435610b40610af5565b90805f525f80516020615180833981519152602052610b65600160405f200154614075565b614ea0565b005b3461054b57602036600319011261054b576004355f526006602052602061ffff60405f205416604051908152f35b3461054b57602036600319011261054b576004355f526005602052602060405f2054604051908152f35b9060249160a41161054b57565b9060a4916101241161054b57565b3461054b5761012036600319011261054b576004803590610bff8261062b565b610c0836610bc4565b90610c1236610bd1565b92610c1b613ef6565b610c236140a1565b60ff9360ff82169384158015610d98575b610d7f575f5b86811685811015610d1a57610bb89081610c66610c5f610c5a84886133e3565b6133f4565b61ffff1690565b11610cd057610c5f610c5a610c7b92876133e3565b11610c8a576001018616610c3a565b6107f88560405191829163d647364f60e01b83528201606090602081526015602082015274736561736f6e616c58704d756c7469706c6965727360581b60408201520190565b6107f88760405191829163d647364f60e01b83528201606090602081526019602082015278736561736f6e616c47726f7774684d756c7469706c6965727360381b60408201520190565b86610d568588610d3f89610d45896003610d3f8460ff165f52600260205260405f2090565b016133fe565b60ff165f52600260205260405f2090565b5f33917fcceebab1dd0ce05df89508d0ac39d99183e2ca262e2b32a9d520ddd0e77e1bd38280a4005b60405163d647364f60e01b8152806107f88187016132ce565b5060648511610c34565b3461054b57604036600319011261054b57610dbb610af5565b336001600160a01b03821603610dd757610b6a90600435614f34565b60405163334bd91960e11b8152600490fd5b3461054b575f36600319011261054b57602060405160648152f35b3461054b575f36600319011261054b57610e1c613f71565b5f805160206151a0833981519152805460ff811615610e675760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b604051638dfc202b60e01b8152600490fd5b3461054b57602036600319011261054b5760ff600435610e988161062b565b1680158015610ed7575b6107de575f52600260205261060a63ffffffff600160405f200154166040519182918291909163ffffffff6020820193169052565b5060648111610ea2565b3461054b57602036600319011261054b57600435610efe8161062b565b60ff81168015908115610f32575b506107de57610f26602091610f2042613e71565b90613680565b61ffff60405191168152f35b60649150115f610f0c565b3461054b57602036600319011261054b576020610f5b600435613445565b6040519015158152f35b3461054b57602036600319011261054b576020610f5b60043561345d565b604090600319011261054b57600435610f9b8161062b565b90602435600481101561054b5790565b3461054b57610fb936610f83565b90610fc261326f565b5060ff81168015908115610ff2575b506107de5761060a916107556107508360ff165f52600260205260405f2090565b60649150115f610fd1565b3461054b57602036600319011261054b5760ff60043561101c8161062b565b165f52600960205260405f20600181549101549061060a6040519283928360209093929193604081019481520152565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761107b57604052565b61104c565b60e081019081106001600160401b0382111761107b57604052565b602081019081106001600160401b0382111761107b57604052565b60c081019081106001600160401b0382111761107b57604052565b608081019081106001600160401b0382111761107b57604052565b610ca081019081106001600160401b0382111761107b57604052565b90601f801991011681019081106001600160401b0382111761107b57604052565b6040519061082782611080565b6040519061082782611060565b60405190610827826110b6565b6001600160401b03811161107b57601f01601f191660200190565b92919261117782611150565b916111856040519384611108565b82948184528183011161054b578281602093845f960137010152565b60408060031936011261054b576111b6610b0b565b90602435906001600160401b03821161054b576004913660238201121561054b576111ea903690602481860135910161116b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116308114908115611320575b506113115761122d613fc8565b8416801561130257843b156112f35790602084928451938480926352d1902d60e01b82525afa5f92816112c2575b5061128757505051634c9c8ce360e01b81526001600160a01b0390921690820190815281906020010390fd5b8484845f8051602061516083398151915285036112a857610b6a8484614fc6565b51632a87526960e21b815290810184815281906020010390fd5b6112e591935060203d6020116112ec575b6112dd8183611108565b810190613475565b915f61125b565b503d6112d3565b505051636f7c43f160e01b8152fd5b50505163d92e233d60e01b8152fd5b50505163703e46dd60e11b8152fd5b9050815f80516020615160833981519152541614155f611220565b3461054b57602036600319011261054b5760ff60043561135a8161062b565b61136261326f565b501680158015611414575b6107de575f52600260205261060a60405f2061140360046040519261139184611080565b61139a81611b64565b84526113db600182015463ffffffff8116602087015261ffff906113ca828260201c16604089019061ffff169052565b60301c16606086019061ffff169052565b6113e760028201612f8b565b60808501526113f8600382016132ef565b60a0850152016132ef565b60c082015260405191829182610661565b506064811161136d565b3461054b575f36600319011261054b577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036114755760206040515f805160206151608339815191528152f35b60405163703e46dd60e11b8152600490fd5b3461054b575f36600319011261054b5760206040517f745191d59a0c5ecaf2331ad3570e4033c5b04de0434263ec14a70fce5475ab7f8152f35b3461054b57604036600319011261054b5760405163e2b3712160e01b81526004803590820181905260248035908301526020908183604481305afa928315611572575f93611577575b50604051634581975560e11b8152600481019190915260248101839052818180604481015b0381305afa918215611572575f92611555575b5050604080519182526020820192909252f35b61156b9250803d106112ec576112dd8183611108565b5f80611542565b613484565b61152f9193506115948391823d84116112ec576112dd8183611108565b93915061150a565b3461054b57602036600319011261054b576004355f526008602052606060405f2080549063ffffffff60036001830154920154169060405192835260208301526040820152f35b3461054b575f36600319011261054b576020604051600a8152f35b3461054b575f36600319011261054b57602060ff5f54166040519015158152f35b3461054b575f36600319011261054b57602060ff5f805160206151a083398151915254166040519015158152f35b3461054b5760408060031936011261054b5761060a906116f56024356116756006821061348f565b6004355f52600a602052825f206116ef60206116e1600187519461169886611060565b8851815463ffffffff9081811683528181881c168784015281818d1c168c840152818160601c166060840152818160801c16608084015260a01c1660a08201526109a4816110b6565b9201918083525115156134db565b516134ca565b5190519081529081906020820190565b602090602319011261054b57602490565b3461054b57604036600319011261054b576004356117338161062b565b61173c36611705565b90611745613ef6565b61174d6140a1565b60ff81169160c98310801561181f575b6117ea5761271061ffff611770836133f4565b16116117bb5761178e6117939260ff165f52600760205260405f2090565b613518565b33907fc71aa6127c498448f788b388fde9b937f04be14a5768bdaadbe203f266ba10485f80a3005b60405163d647364f60e01b81526020600482015260066024820152651959999958dd60d21b6044820152606490fd5b60405163d647364f60e01b815260206004820152600c60248201526b19995c9d1a5b1a5e995c925960a21b6044820152606490fd5b5060d2831161175d565b3461054b57602036600319011261054b5760ff6004356118488161062b565b1661185281613445565b156118ea575f52600360205261186a60405f20613538565b602081015161ffff1661060a611885604084015161ffff1690565b92611895606082015161ffff1690565b906118b460a06118aa608084015161ffff1690565b92015161ffff1690565b6040805161ffff9687168152968616602088015292851692860192909252831660608501529091166080830152819060a0820190565b60405163d647364f60e01b815260206004820152600660248201526518dc9bdc125960d21b6044820152606490fd5b9181601f8401121561054b578235916001600160401b03831161054b576020808501948460051b01011161054b57565b9081518082526020808093019301915f5b828110611968575050505090565b83518552938101939281019260010161195a565b90916119936106ef93604084526040840190611949565b916020818403910152611949565b3461054b5760208060031936011261054b576004906004356001600160401b03811161054b576119d5903690600401611919565b92906119e0846135a5565b926119ea856135a5565b945f5b818110611a03576040518061060a89898361197c565b611a16611a118284876135d7565b6135e7565b60ff811660658110908115611a95575b50611a8457611a43611a489160ff165f52600960205260405f2090565b6135f1565b805115611a74579081846001930151611a61838a61360f565b5251611a6d828a61360f565b52016119ed565b60405162edf3c160e41b81528690fd5b6040516303a9ef6360e61b81528690fd5b60c89150115f611a26565b3461054b575f36600319011261054b576020610ac16140cb565b3461054b57602036600319011261054b5760ff600435611ad98161062b565b5f604051611ae68161109b565b521660c981108015611b22575b6117ea575f52600760205261060a611b0d60405f20613623565b604051905161ffff1681529081906020820190565b5060d28111611af3565b90600182811c92168015611b5a575b6020831014611b4657565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611b3b565b9060405191825f8254611b7681611b2c565b908184526020946001916001811690815f14611be25750600114611ba4575b50505061082792500383611108565b5f90815285812095935091905b818310611bca57505061082793508201015f8080611b95565b85548884018501529485019487945091830191611bb1565b9250505061082794925060ff191682840152151560051b8201015f8080611b95565b3461054b57602036600319011261054b576004355f526003602052611c4b60405f206001611c3182611b64565b91015461ffff60405193849360c0855260c0850190610587565b918181166020850152818160101c166040850152818160201c166060850152818160301c16608085015260401c1660a08301520390f35b3461054b57602036600319011261054b576004355f526004602052602060405f2054604051908152f35b3461054b57602036600319011261054b576004355f526007602052602061ffff60405f205416604051908152f35b63ffffffff81160361054b57565b61ffff81160361054b57565b3461054b5760e036600319011261054b576004803590611d138261062b565b60243591611d2083611cda565b604435611d2c81611ce8565b60643590611d3982611ce8565b60843594611d468661062b565b6040948560a31936011261054b57611d5c613ef6565b611d646140a1565b60ff85169687158015611fd7575b611fbf5760ff1695606587108015611fb5575b611f7f5763ffffffff83168015908115611f72575b50611f385761ffff8085168015908115611f2c575b50611ef857614e2090861611611ec257505091611e34611e6892611dfe86956001611de8611e999960ff165f52600260205260405f2090565b019063ffffffff1663ffffffff19825416179055565b6001611e158660ff165f52600260205260405f2090565b019065ffff0000000082549160201b169065ffff000000001916179055565b6001611e4b8460ff165f52600260205260405f2090565b019061ffff60301b82549160301b169061ffff60301b1916179055565b611e886002611e828360ff165f52600260205260405f2090565b0161363a565b60ff165f52600460205260405f2090565b5533907f1eca5b429b5d42f9b796c650c673bb404775589c4f841033854fd6760b80b2d95f80a3005b6107f892505191829163d647364f60e01b8352820160609060208152600660208201526506261736558760d41b60408201520190565b815163d647364f60e01b81526020818501818152600591810191909152641e5a595b1960da1b604082015281906060010390fd5b6127109150115f611daf565b6107f892505191829163d647364f60e01b8352820160609060208152600a60208201526967726f77746854696d6560b01b60408201520190565b6202a3009150115f611d9a565b5163d647364f60e01b8152915081906107f890820160609060208152600660208201526518dc9bdc125960d21b60408201520190565b5060c88711611d85565b865163d647364f60e01b8152806107f88185016132ce565b5060648811611d72565b5f915b60048310611ff157505050565b60019061ffff83511681526020809101920192019190611fe4565b91608061082792949361202481610100810197611fe1565b0190611fe1565b3461054b57602036600319011261054b576004356120488161062b565b6080604051612056816110d1565b3690376080604051612067816110d1565b36903760ff811680159081156120af575b506107de576107506120959160ff165f52600260205260405f2090565b60c060a08201519101519061060a6040519283928361200c565b60649150115f612078565b6020815260c06120d5835182602085015260e0840190610587565b9260a060208201519161ffff8093166040860152826040820151166060860152826060820151166080860152826080820151168286015201511691015290565b3461054b57602036600319011261054b576004356121328161062b565b5f60a0604051612141816110b6565b60608152826020820152826040820152826060820152826080820152015260ff8116606581109081156121a0575b506118ea5761219461218f61060a9260ff165f52600360205260405f2090565b613538565b604051918291826120ba565b60c89150115f61216f565b3461054b575f36600319011261054b576020600154604051908152f35b3461054b575f36600319011261054b576121e0613f71565b6121e86140a1565b5f805160206151a0833981519152600160ff198254161790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b3461054b5760e036600319011261054b5760043561224a8161062b565b6024359061225782611ce8565b60443561226381611ce8565b6064359161227083611ce8565b6084359261227d84611ce8565b60a43561228981611ce8565b60c435956122968761062b565b61229e613ef6565b6122a66140a1565b60ff841696606588108015612414575b6118ea5760ff16958615801561240a575b6123d75761235261239d9461233b6123ae986123096123699660016122f78c60ff165f52600360205260405f2090565b019061ffff1661ffff19825416179055565b60016123208a60ff165f52600360205260405f2090565b019063ffff000082549160101b169063ffff00001916179055565b6001611e158860ff165f52600360205260405f2090565b6001611e4b8660ff165f52600360205260405f2090565b60016123808460ff165f52600360205260405f2090565b019061ffff60401b82549160401b169061ffff60401b1916179055565b60ff165f52600560205260405f2090565b5533907f14b767668e3ab039f8badf0df0cfea488d75d6f6ea5d66b70cbdf02930d8e2195f80a3005b60405163d647364f60e01b815260206004820152600a60248201526918985cd954d95959125960b21b6044820152606490fd5b50606487116122c7565b5060c888116122b6565b3461054b5760408060031936011261054b5761060a906124e26124d96124cf60243561244c6006821061348f565b6004355f52600a602052845f206116ef6124c1600188519361246d85611060565b89518154808c63ffffffff9283918282168652828260201c1660208701521c168d840152818160601c166060840152818160801c16608084015260a01c1660a08201526124b9816110b6565b85520161339d565b8060208401525115156134db565b5163ffffffff1690565b63ffffffff1690565b90519081529081906020820190565b919060405192612500846110b6565b839060c0810192831161054b57905b82821061251b57505050565b60208091833561252a81611cda565b81520191019061250f565b9060405191612543836110b6565b826101a491821161054b5760e4905b82821061255e57505050565b8135815260209182019101612552565b91906040519261257d846110b6565b839060c0810192831161054b57905b82821061259857505050565b813581526020918201910161258c565b3461054b576101a036600319011261054b57366043121561054b576040516125cf816110b6565b60e48136821161054b576024905b828210612615578336610103121561054b57610b6a906125fc36612535565b90612605613ef6565b61260d6140a1565b600435614113565b60208091833561262481611cda565b8152019101906125dd565b3461054b576020610f26610f2036610f83565b3461054b57604036600319011261054b57602060ff612690612662610af5565b6004355f525f80516020615180833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461054b57604036600319011261054b576004356126b98161062b565b6126c236611705565b906126cb613ef6565b6126d36140a1565b60ff81169160c98310801561276b575b6127395761ffff6126f3826133f4565b16156117bb5761178e6127119260ff165f52600660205260405f2090565b33907f290bd8e6937407b22352e2be88658b06a376c4af714a59e15342e09f4d02f2e55f80a3005b60405163d647364f60e01b8152602060048201526009602482015268189bdbdcdd195c925960ba1b6044820152606490fd5b5060d283116126e3565b3461054b57602036600319011261054b5760ff6004356127948161062b565b16801580156127c5575b6107de575f9081526002602090815260409182902060010154915191811c61ffff16825290f35b506064811161279e565b9181601f8401121561054b578235916001600160401b03831161054b576020808501946101a0850201011161054b57565b9181601f8401121561054b578235916001600160401b03831161054b576020808501946060850201011161054b57565b3461054b5761010036600319011261054b5760046001600160401b03813581811161054b576128629036908401611919565b60249291923582811161054b5761287c9036908601611919565b909260443581811161054b576128959036908801611919565b9060643583811161054b576128ad9036908a01611919565b9060843585811161054b576128c59036908c01611919565b94909360a43587811161054b578c6128df913691016127cf565b98909760c43590811161054b57610b6a9d6128fc91369101612800565b9b909a60e4359d6136e4565b3461054b575f36600319011261054b5760206040515f8152f35b3461054b57602036600319011261054b5760ff6004356129418161062b565b1661294b81613445565b156118ea575f52600560205260206109fe60405f2054613ec9565b3461054b57602036600319011261054b5760ff6004356129858161062b565b61298d613257565b50166065811080156129dc575b6129ca575f52600960205260406129b2815f206135f1565b6129c88251809260208091805184520151910152565bf35b6040516303a9ef6360e61b8152600490fd5b5060c8811161299a565b3461054b575f36600319011261054b575f80516020615160833981519152546040516001600160a01b039091168152602090f35b3461054b575f36600319011261054b5761060a604051612a3981611060565b60058152640352e302e360dc1b6020820152604051918291602083526020830190610587565b60209060206040818301928281528551809452019301915f5b828110612a86575050505090565b835160ff1685529381019392810192600101612a78565b3461054b575f36600319011261054b57604051612ab9816110ec565b60649060648152610c803660208301375f60655b60c860ff82161115612aeb575b8183526040518061060a8582612a5f565b612b0361218f8260ff165f52600360205260405f2090565b5151612b24575b838214612b1f57612b1a90613c01565b612acd565b612ada565b9080612b3f83612b37612b44948761360f565b9060ff169052565b613c17565b90612b0a565b3461054b57604036600319011261054b576024356004355f52600a60205260405f20906006811015612b945763ffffffff6020928260031c015460e06040519360051b161c168152f35b6133cf565b3461054b57606036600319011261054b57600435612bb68161062b565b60243590604435612bc5613ef6565b612bcd6140a1565b60ff821692606584108015612cbe575b6129ca578015612c8d578115612c5b57612c497f802c6adeb3ecf112b6f174a1738cf59e30e745541db4e9e0b5b42a89d58cefb993612c38612c1d611136565b9184835285602084015260ff165f52600960205260405f2090565b906020600191805184550151910155565b604080519182526020820192909252a2005b60405163d647364f60e01b81526020600482015260096024820152680787050657243726f760bc1b6044820152606490fd5b60405163d647364f60e01b81526020600482015260086024820152676d617843726f707360c01b6044820152606490fd5b5060c88411612bdd565b3461054b5760031960403682011261054b57600435906024356001600160401b03811161054b5760808160040192823603011261054b57612d07613ef6565b612d0f6140a1565b60c983108015612e00575b612dcf57602481013515612d93576044612d35910182613c25565b905015612d5657612d51610b6a925f52600860205260405f2090565b613c64565b60405163d647364f60e01b81526020600482015260146024820152730e4cac6d2e0ca5cd2dce0eae8e65cd8cadccee8d60631b6044820152606490fd5b60405163d647364f60e01b81526020600482015260136024820152721c9958da5c194b9bdd5d1c1d5d105b5bdd5b9d606a1b6044820152606490fd5b60405163d647364f60e01b81526020600482015260086024820152671bdd5d1c1d5d125960c21b6044820152606490fd5b5060d28311612d1a565b3461054b57602036600319011261054b5760ff600435612e298161062b565b1680158015612e4d575b6107de575f52600460205260206109fe60405f2054613ec9565b5060648111612e33565b60041115612e6157565b634e487b7160e01b5f52602160045260245ffd5b3461054b575f36600319011261054b57612e8e42613e71565b6040516004821015612e61576020918152f35b3461054b57604036600319011261054b57610b6a600435612ec0610af5565b90805f525f80516020615180833981519152602052612ee5600160405f200154614075565b614f34565b3461054b575f36600319011261054b57602060405160078152f35b3461054b57604036600319011261054b576020612f26602435600435613d68565b604051908152f35b3461054b57602036600319011261054b5760ff600435612f4d8161062b565b5f604051612f5a8161109b565b521660c981108015612f81575b612739575f52600660205261060a611b0d60405f20613623565b5060d28111612f67565b90604051612f9881611060565b602060ff829454818116845260081c16910152565b3461054b57602036600319011261054b576004355f52600260205261300660405f20612fd881611b64565b9061060a600182015491612ff1600261ffff9201612f8b565b9060405195869560c0875260c0870190610587565b9363ffffffff81166020870152818160201c16604087015260301c166060850152608084019060ff60208092828151168552015116910152565b3461054b57602036600319011261054b5760ff60043561305f8161062b565b16606581108015613085575b6118ea575f52600560205260206109fe60405f2054613ec9565b5060c8811161306b565b3461054b576020610ac1610abb36610f83565b3461054b575f36600319011261054b5760206040517f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e38152f35b6020916020825260a08201815160208401526020820151906040916040850152604083015194608060608601528551809252602060c086019601925f905b83821061313957505050505063ffffffff606060809201511691015290565b90919293968382826131586001948c5160208091805184520151910152565b019801949392019061311a565b3461054b5760208060031936011261054b576040905f60608351613188816110d1565b8281528284820152818582015201526004355f5260088152815f20918051916131b0836110d1565b83548352600180850154828501526002808601908154916131d08361358e565b946131dd87519687611108565b8386525f9182528082208187015b858410613228575061060a898961321e61321160038f8d85870152015463ffffffff1690565b63ffffffff166060840152565b51918291826130dc565b84838892613235856135f1565b8152019201930192906131eb565b634e487b7160e01b5f52601160045260245ffd5b6040519061326482611060565b5f6020838281520152565b6040519061327c82611080565b81606081525f60208201525f60408201525f606082015261329b613257565b60808201526040516132ac816110d1565b608036823760a082015260c0604051916132c5836110d1565b60803684370152565b6060906020815260066020820152651cd95959125960d21b60408201520190565b90604051915461ffff908181168452818160101c166020850152818160201c16604085015260301c166060830152610827826110d1565b9060405161333381611080565b60c06133986004839561334581611b64565b8552600181015463ffffffff8116602087015261ffff90818160201c16604088015260301c16606086015261337c60028201612f8b565b608086015261338d600382016132ef565b60a0860152016132ef565b910152565b60405191905f835b600682106133b957505050610827826110b6565b60016020819285548152019301910190916133a5565b634e487b7160e01b5f52603260045260245ffd5b906004811015612b945760051b0190565b356106ef81611ce8565b5f915f5b6004811061340f57505055565b9092602061343c60019286359061342582611ce8565b85851b60031b9161ffff809116831b921b19161790565b94019101613402565b60658110159081613454575090565b60c89150111590565b6001811015908161346c575090565b60649150111590565b9081602091031261054b575190565b6040513d5f823e3d90fd5b1561349657565b60405162461bcd60e51b815260206004820152600c60248201526b24b73b30b634b2103a34b2b960a11b6044820152606490fd5b906006811015612b945760051b0190565b156134e257565b60405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a59081cd95959125960921b6044820152606490fd5b61082791359061352782611ce8565b9061ffff1661ffff19825416179055565b90604051613545816110b6565b60a06001829461355481611b64565b8452015461ffff908181166020850152818160101c166040850152818160201c166060850152818160301c16608085015260401c16910152565b6001600160401b03811161107b5760051b60200190565b906135af8261358e565b6135bc6040519182611108565b82815280926135cd601f199161358e565b0190602036910137565b9190811015612b945760051b0190565b356106ef8161062b565b906040516135fe81611060565b602060018294805484520154910152565b8051821015612b945760209160051b010190565b906040516136308161109b565b915461ffff168252565b6108279061365d60a43561364d8161062b565b825460ff191660ff909116178255565b60c4359061366a8261062b565b9061ff0082549160081b169061ff001916179055565b60ff16801580156136da575b6107de575f5260026020526136d66136a660405f20613326565b60ff606060c0830151946136b981612e57565b6136cb61ffff968794859316906133e3565b511692015116614198565b1690565b506064811161368c565b909c9b9c9a999a9897989695969493949291927f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f006002815414613b45576002905561372d61401f565b6137356140a1565b5f5460ff16613b335780158015613b29575b613af05782158015613ae6575b613aad57600a8511613a6e57600a8711613a3257600a89116139f7575f5b8181106139db575050505f5b8181106139bf575050505f5b8181106139a3575050505f5b818110613987575050505f5b81811061396b575050505f5b81811061391b575050505f5b818110613825575050506001556137d7600160ff195f5416175f55565b337f12a1c7be0c836deda4348baecdfb5dcfb75ed9e3268f177433d9651d7263c2a85f80a261082760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b606561383e613838611a11848688613bf1565b60ff1690565b108015613901575b6129ca57602080613858838587613bf1565b013515612c8d576040908161386e848688613bf1565b0135156138d0578291816138ca92613889600196888a613bf1565b01359161389785888a613bf1565b0135906138a2611136565b928352820152612c386138b9611a1185888a613bf1565b60ff165f52600960205260405f2090565b016137ba565b505163d647364f60e01b81526020600482015260096024820152680787050657243726f760bc1b6044820152606490fd5b5060c860ff613914611a11848688613bf1565b1611613846565b8061396561392c6001938587613be0565b35602061393a848789613be0565b0161395f61395760e061394e878a8c613be0565b019236906124f1565b91369061256e565b91614113565b016137ae565b8061398161397c6001938587613bbe565b614da3565b016137a2565b8061399d6139986001938587613b9c565b614cbe565b01613796565b806139b96139b46001938587613b9c565b614bd0565b0161378a565b806139d56139d06001938587613b7a565b614a51565b0161377e565b806139f16139ec6001938587613b57565b6144c6565b01613772565b60405163d647364f60e01b81526020600482015260126024820152710e4cac6d2e0cae688c2e8c25cd8cadccee8d60731b6044820152606490fd5b60405163d647364f60e01b81526020600482015260136024820152720c4dedee6e8cae4e688c2e8c25cd8cadccee8d606b1b6044820152606490fd5b60405163d647364f60e01b81526020600482015260166024820152750cccae4e8d2d8d2f4cae4e688c2e8c25cd8cadccee8d60531b6044820152606490fd5b60405163d647364f60e01b815260206004820152601060248201526f0c6e4dee0e688c2e8c25cd8cadccee8d60831b6044820152606490fd5b5060648311613754565b60405163d647364f60e01b815260206004820152601060248201526f0e6cacac8e688c2e8c25cd8cadccee8d60831b6044820152606490fd5b5060648111613747565b60405163839add6960e01b8152600490fd5b604051633ee5aeb560e01b8152600490fd5b9190811015612b945760051b810135906101fe198136030182121561054b570190565b9190811015612b945760051b8101359060fe198136030182121561054b570190565b9190811015612b945760051b81013590605e198136030182121561054b570190565b9190811015612b945760051b81013590607e198136030182121561054b570190565b9190811015612b94576101a0020190565b9190811015612b94576060020190565b60ff1660ff8114613c125760010190565b613243565b5f198114613c125760010190565b903590601e198136030182121561054b57018035906001600160401b03821161054b57602001918160061b3603831361054b57565b356106ef81611cda565b9080358255600160208201356001840155600280840190604091613c8b6040860186613c25565b939068010000000000000000851161107b578254858455808610613d10575b50613cb990925f5260205f2090565b5f925b858410613cf35750505050505050906003613cdc60606108279401613c5a565b91019063ffffffff1663ffffffff19825416179055565b803582556020810135600183015592860192908401908201613cbc565b6001600160ff1b038181168203613c125786168603613c1257835f528460205f209160011b8201918760011b015b828110613d4c575050613caa565b5f81555f89820155018590613d3e565b8015613c12575f190190565b5f52600a60205260405f20613dd660206116e1600160405194613d8a86611060565b604051815463ffffffff9081811683528181881c1687840152818160401c166040840152818160601c166060840152818160801c16608084015260a01c1660a08201526109a4816110b6565b6005805b613def575051511115613deb575f90565b5f90565b613dfa8183516134ca565b51831015613e1157613e0b90613d5c565b80613dda565b91505090565b60ff1680158015613e67575b6107de5760ff916136d6915f526002602052613e4160405f20613326565b90602061ffff6136cb60a0850151613e5885612e57565b63ffffffff97889516906133e3565b5060648111613e23565b6001549081158015613ec0575b613eba5762093a8091613e9091614e5d565b0480613e9b57505f90565b60018103613ea95750600190565b600203613eb557600290565b600390565b50505f90565b50818110613e7e565b60ff8111613ed75760ff1690565b604490604051906306dfcc6560e41b8252600860048301526024820152fd5b335f9081527f44f2f79686c2bf155261c2ffef9628ab633e9f8ad5e78cca61feb0654afeabb8602052604090207f745191d59a0c5ecaf2331ad3570e4033c5b04de0434263ec14a70fce5475ab7f9060ff905b541615613f535750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b335f9081527f762c7c328dd70a077c65c77b60e4c38eed3d2f6aa056d4d0fa114aeff8234b56602052604090207fbf233dd2aafeb4d50879c4aa5c81e96d92f6e6945c906a58f9f2d1c1631b4b269060ff90613f49565b335f9081527fab71e3f32666744d246edff3f96e4bdafee2e9867098cdd118a979a7464786a8602052604090207f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e39060ff90613f49565b335f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff161561405757565b60405163e2517d3f60e01b81523360048201525f6024820152604490fd5b5f8181525f8051602061518083398151915260209081526040808320338452909152902060ff90613f49565b60ff5f805160206151a083398151915254166140b957565b60405163d93c066560e01b8152600490fd5b600154801561410e576140de904261506b565b63ffffffff908181116140ef571690565b604490604051906306dfcc6560e41b8252602060048301526024820152fd5b505f90565b916040519161412183611060565b8252602092602083019182525f52600a60205260405f2091515f905f5b856006821061417357505050825551905f5b6006811061415e5750505050565b60019084845194019382828501015501614150565b600191929363ffffffff9081865116918560051b92831b921b1916179301910161413e565b9061ffff169081156141bc57818102918183041490151715613c12576103e8900490565b905090565b903590601e198136030182121561054b57018035906001600160401b03821161054b5760200191813603831361054b57565b919082604091031261054b5760405161420b81611060565b6020808294803561421b8161062b565b84520135916142298361062b565b0152565b91906040519261423c846110d1565b83906080810192831161054b57905b82821061425757505050565b60208091833561426681611ce8565b81520191019061424b565b601f821161427e57505050565b5f5260205f20906020601f840160051c830193106142b6575b601f0160051c01905b8181106142ab575050565b5f81556001016142a0565b9091508190614297565b8151815460ff191660ff9182161782556108279260200151825461ff001916911660081b61ff0016179055565b5f915f5b600481106142fe57505055565b9092602061432660019261ffff8751169085851b60031b9161ffff809116831b921b19161790565b940191016142f1565b91909182519283516001600160401b03811161107b57614359816143538554611b2c565b85614271565b602080601f83116001146144515750916143938260c09360049561082798995f92614446575b50508160011b915f199060031b1c19161790565b84555b61441b600185016143c76143b1602085015163ffffffff1690565b825463ffffffff191663ffffffff909116178255565b6143f76143d9604085015161ffff1690565b825465ffff00000000191660209190911b65ffff0000000016178255565b6060830151815467ffff000000000000191660309190911b61ffff60301b16179055565b61442c6080820151600286016142c0565b61443d60a0820151600386016142ed565b015191016142ed565b015190505f8061437f565b90601f19831696614465865f5260205f2090565b925f905b8982106144ae575050926004949260019260c095836108279a9b10614496575b505050811b018455614396565b01515f1960f88460031b161c191690555f8080614489565b80600185968294968601518155019501930190614469565b9060ff91826144d4826135e7565b16158015614887575b6107de5760a08101906065846144f2846135e7565b16108015614873575b6118ea576040908181019263ffffffff8061451586613c5a565b161590811561485c575b5061482a57606082019461ffff9182614537886133f4565b16158015614815575b6147e8576127106080850193614555856133f4565b16116147ba57602084019561456a87866141c1565b905015614789575f5b6004818b168181101561464f57610bb89081614599610c5f610c5a846101008e016133e3565b1161460757610c5f610c5a6145b2926101808c016133e3565b116145c257506001018916614573565b6107f890885191829163d647364f60e01b83528201606090602081526015602082015274736561736f6e616c58704d756c7469706c6965727360581b60408201520190565b895163d647364f60e01b8152602081850181815260199181019190915278736561736f6e616c47726f7774684d756c7469706c6965727360381b604082015281906060010390fd5b5050509394614684929850966146c3614714946146ce93996146b861469061468a61467c60e09d8d6141c1565b99909b613c5a565b966133f4565b936133f4565b946146a960c08c019a6146a1611129565b99369161116b565b885263ffffffff166020880152565b85019061ffff169052565b61ffff166060830152565b6146d836846141f3565b60808201526146eb36610100860161422d565b60a08201526146fe36610180860161422d565b60c082015261470f610d45856135e7565b61432f565b614720613838856135e7565b61472c611e88846135e7565b55614739613838826135e7565b614770575b50019061474d613838836135e7565b614755575050565b611e8861476761383861476d936135e7565b926135e7565b55565b614782611e88614767613838876135e7565b555f61473e565b855163d647364f60e01b8152602060048201526009602482015268736565642e6e616d6560b81b6044820152606490fd5b845163d647364f60e01b815260206004820152600660248201526506261736558760d41b6044820152606490fd5b845163d647364f60e01b81526020600482015260056024820152641e5a595b1960da1b6044820152606490fd5b5061271083614823896133f4565b1611614540565b825163d647364f60e01b815260206004820152600a60248201526967726f77746854696d6560b01b6044820152606490fd5b6202a300915061486b86613c5a565b16115f61451f565b5060c884614880846135e7565b16116144fb565b50606483614894836135e7565b16116144dd565b919080519283516001600160401b03811161107b576148c4816148be8454611b2c565b84614271565b602080601f83116001146149da57506149bf926149008360a094600194610827999a5f926144465750508160011b915f199060031b1c19161790565b81555b0192614929614917602083015161ffff1690565b855461ffff191661ffff909116178555565b61495561493b604083015161ffff1690565b855463ffff0000191660109190911b63ffff000016178555565b614985614967606083015161ffff1690565b855465ffff00000000191660209190911b65ffff0000000016178555565b6149b6614997608083015161ffff1690565b855467ffff000000000000191660309190911b61ffff60301b16178555565b015161ffff1690565b61ffff60401b82549160401b169061ffff60401b1916179055565b90601f198316966149ee855f5260205f2090565b925f905b898210614a39575050836001936149bf9693859360a0976108279b9c10614a21575b505050811b018155614903565b01515f1960f88460031b161c191690555f8080614a14565b806001859682949686015181550195019301906149f2565b606560ff614a5e836135e7565b16108015614bbb575b6118ea5760e0810160ff614a7a826135e7565b16158015614ba6575b6123d75760208201614a9581846141c1565b905015614b745761476761383861476d93611a11614b52614ab961239d96896141c1565b9190614b478a614b3c614ace604083016133f4565b614b31614add606085016133f4565b614b26614aec608087016133f4565b93614b19614b0860c0614b0160a08b016133f4565b99016133f4565b99614b11611143565b9c369161116b565b8b5261ffff1660208b0152565b61ffff166040890152565b61ffff166060870152565b61ffff166080850152565b61ffff1660a0830152565b614b6f614b5e896135e7565b60ff165f52600360205260405f2090565b61489b565b60405163d647364f60e01b815260206004820152600960248201526863726f702e6e616d6560b81b6044820152606490fd5b50606460ff614bb4836135e7565b1611614a83565b5060c860ff614bc9836135e7565b1611614a67565b60c960ff614bdd836135e7565b16108015614ca9575b6117ea57614bf760208201826141c1565b905015614c7157604081016103e861ffff614c11836133f4565b1610614c375761178e614c26610827936135e7565b60ff165f52600760205260405f2090565b60405163d647364f60e01b815260206004820152601160248201527019995c9d1a5b1a5e995c8b9959999958dd607a1b6044820152606490fd5b60405163d647364f60e01b815260206004820152600f60248201526e66657274696c697a65722e6e616d6560881b6044820152606490fd5b5060d260ff614cb7836135e7565b1611614be6565b60c960ff614ccb836135e7565b16108015614d8e575b61273957614ce560208201826141c1565b905015614d59576040810161ffff614cfc826133f4565b1615614d225761178e614d11610827936135e7565b60ff165f52600660205260405f2090565b60405163d647364f60e01b815260206004820152600e60248201526d189bdbdcdd195c8b9959999958dd60921b6044820152606490fd5b60405163d647364f60e01b815260206004820152600c60248201526b626f6f737465722e6e616d6560a01b6044820152606490fd5b5060d260ff614d9c836135e7565b1611614cd4565b80359060c982108015614e53575b612dcf57602081013515614e1e57614dcc6040820182613c25565b905015614de857612d51610827925f52600860205260405f2090565b60405163d647364f60e01b815260206004820152600d60248201526c0d2dce0eae8e65cd8cadccee8d609b1b6044820152606490fd5b60405163d647364f60e01b815260206004820152600c60248201526b1bdd5d1c1d5d105b5bdd5b9d60a21b6044820152606490fd5b5060d28211614db1565b90808210808015614e98575b8015614e91575b614e8a57613eba578103908111613c12576224ea00900690565b5050505f90565b505f614e70565b508115614e69565b5f8181525f80516020615180833981519152602081815260408084206001600160a01b03871685529091529091205460ff16614e8a575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5f8181525f80516020615180833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615614e8a575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b90813b1561504a575f8051602061516083398151915280546001600160a01b0319166001600160a01b0384169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a280511561502f5761502c916150bc565b50565b50503461503857565b60405163b398979f60e01b8152600490fd5b604051634c9c8ce360e01b81526001600160a01b0383166004820152602490fd5b908082108080156150b4575b80156150ad575b614e8a57613eba578103908111613c125762093a80900460011981101561410e5760018101809111613c125790565b505f61507e565b508115615077565b5f806106ef93602081519101845af43d156150f8573d916150dc83611150565b926150ea6040519485611108565b83523d5f602085013e6150fc565b6060915b90615123575080511561511157602081519101fd5b60405163d6bda27560e01b8152600490fd5b81511580615156575b615134575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561512c56fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300a264697066735822122022a85e72d1a88c149f8e86b0d2dff72f774e1009f19f7fe5df810fb0a6f1983564736f6c63430008180033
Deployed Bytecode
0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104f557806303e1649c146104f05780630d8e6e2c1461037e5780630f09fed7146104eb578063115d538d146104e657806312f0c3a1146104e1578063192bc94e146104dc5780631f5d546e146104d757806320df4359146104d2578063248a9ca3146104cd5780632caa923d146104c85780632f27f2a4146104c35780632f2ff15d146104be5780632fd24836146104b95780633162d3da146104b457806335fa5b57146104af57806336568abe146104aa5780633893bc4c1461039c5780633f4ba83a146104a557806340d058cb146104a0578063420cde401461049b578063429700c2146104965780634a0ca4e1146104915780634acaf4421461048c5780634d50af74146104875780634f1ef286146104825780634fb58c651461047d57806352d1902d146104785780635504d3d2146104735780635716d8f71461046e57806357b685e31461046957806357d4c4ee1461046457806358133236146104375780635c975abb1461045f57806361a8a7131461045a57806363e986ba1461045557806368240c34146104505780636abff3801461044b5780636d3962be14610446578063701c34521461044157806370c9f1a51461043c57806375c1f2c714610437578063768f4fc8146104325780637bb077b61461042d5780637fec83ca146104285780638053293414610423578063806a5eb51461041e5780638104ae4d146104195780638456cb59146104145780638950d4a91461040f5780638b032eaa1461040a5780638ec80348146104055780638fb942431461040057806391d14854146103fb57806394d68a46146103f6578063964855d8146103f157806398283586146103ec578063a217fddf146103e7578063a481eef9146103e2578063a5a0c4e0146103dd578063aaf10f42146103d8578063ad3cb1cc146103d3578063b4c498b5146103ce578063b717e036146103c9578063bf1b5239146103c4578063cd7a4ab3146103bf578063d2a34be1146103ba578063d3b30b75146103b5578063d547741f146103b0578063e07a0f72146103ab578063e2b37121146103a6578063e3f6bdad146103a1578063ebe56eee1461039c578063f0503e8014610397578063f3fe8fda14610392578063f69ca8421461038d578063f72c0d8b14610388578063fad2f84d146103835763ffa1ad741461037e575f80fd5b6105c5565b613165565b6130a2565b61308f565b613040565b612fad565b610de9565b612f2e565b612f05565b612eea565b612ea1565b612e75565b612e0a565b612cc8565b612b99565b612b4a565b612a9d565b612a1a565b6129e6565b612966565b612922565b612908565b612830565b612775565b61269c565b612642565b61262f565b6125a8565b61241e565b61222d565b6121c8565b6121ab565b612115565b61202b565b611cf4565b611cac565b611c82565b6115fe565b611c04565b611aba565b611aa0565b6119a1565b611829565b611716565b61164d565b61161f565b6115e3565b61159c565b6114c1565b611487565b61141e565b61133b565b6111a1565b610ffd565b610fab565b610f65565b610f3d565b610ee1565b610e79565b610e04565b610da2565b610bdf565b610b9a565b610b6c565b610b21565b610ada565b610a7c565b610a43565b610a09565b6109ba565b6108f4565b610829565b6106f2565b61060e565b61054f565b3461054b57602036600319011261054b5760043563ffffffff60e01b811680910361054b57602090637965db0b60e01b811490811561053a575b506040519015158152f35b6301ffc9a760e01b1490505f61052f565b5f80fd5b3461054b57602036600319011261054b57602060043560c9811015908161057b57506040519015158152f35b60d2915011155f61052f565b91908251928382525f5b8481106105b1575050825f602080949584010152601f8019910116010190565b602081830181015184830182015201610591565b3461054b575f36600319011261054b5761060a6040516105e481611060565b60058152640312e302e360dc1b6020820152604051918291602083526020830190610587565b0390f35b3461054b575f36600319011261054b5760206040516202a3008152f35b60ff81160361054b57565b5f915b6004831061064657505050565b60019061ffff83511681526020809101920192019190610639565b6106ef906020815261016060c061068685516101c060208601526101e0850190610587565b9463ffffffff6020820151166040850152604081015161ffff809116606086015260608201511660808501526106d3608082015160a086019060ff60208092828151168552015116910152565b6106e560a082015160e0860190610636565b0151910190610636565b90565b3461054b57602036600319011261054b5760043561070f8161062b565b61071761326f565b5060ff811680159081156107fc575b506107de5761060a9061073842613e71565b6107556107508360ff165f52600260205260405f2090565b613326565b8051926107c361077e6107688584613e17565b94610778604086015161ffff1690565b93613680565b6107b86080850151936107ad60c060a08801519701519761079d611129565b998a5263ffffffff1660208a0152565b61ffff166040880152565b61ffff166060860152565b608084015260a083015260c082015260405191829182610661565b60405163d647364f60e01b8152806107f8600482016132ce565b0390fd5b60649150115f610726565b61082790929192604081019360ff60208092828151168552015116910152565b565b3461054b57602036600319011261054b5760ff6004356108488161062b565b610850613257565b501680158015610884575b6107de575f52600260205261060a610878600260405f2001612f8b565b60405191829182610807565b506064811161085b565b815161018082019392905f90835b600683106108d75750505060c060208092015192015f905b600682106108c25750505050565b828060019286518152019401910190926108b4565b60019063ffffffff8351168152602080910192019201919061089c565b3461054b5760208060031936011261054b5761060a906040805161091781611060565b8151610922816110b6565b60c0368237815282825191610936836110b6565b60c036843701526004355f52600a8252805f20916109ac600183519461095b86611060565b8451815463ffffffff9081811683528181881c16878401528181891c1688840152818160601c166060840152818160801c16608084015260a01c1660a08201526109a4816110b6565b86520161339d565b90830152519182918261088e565b3461054b57602036600319011261054b5760ff6004356109d98161062b565b166109e38161345d565b156107de575f52600460205260206109fe60405f2054613ec9565b60ff60405191168152f35b3461054b575f36600319011261054b5760206040517fbf233dd2aafeb4d50879c4aa5c81e96d92f6e6945c906a58f9f2d1c1631b4b268152f35b3461054b57602036600319011261054b576004355f525f805160206151808339815191526020526020600160405f200154604051908152f35b3461054b57602036600319011261054b57600435610a998161062b565b60ff81168015908115610acf575b506107de57610ac1602091610abb42613e71565b90613e17565b63ffffffff60405191168152f35b60649150115f610aa7565b3461054b575f36600319011261054b576020604051601c8152f35b602435906001600160a01b038216820361054b57565b600435906001600160a01b038216820361054b57565b3461054b57604036600319011261054b57610b6a600435610b40610af5565b90805f525f80516020615180833981519152602052610b65600160405f200154614075565b614ea0565b005b3461054b57602036600319011261054b576004355f526006602052602061ffff60405f205416604051908152f35b3461054b57602036600319011261054b576004355f526005602052602060405f2054604051908152f35b9060249160a41161054b57565b9060a4916101241161054b57565b3461054b5761012036600319011261054b576004803590610bff8261062b565b610c0836610bc4565b90610c1236610bd1565b92610c1b613ef6565b610c236140a1565b60ff9360ff82169384158015610d98575b610d7f575f5b86811685811015610d1a57610bb89081610c66610c5f610c5a84886133e3565b6133f4565b61ffff1690565b11610cd057610c5f610c5a610c7b92876133e3565b11610c8a576001018616610c3a565b6107f88560405191829163d647364f60e01b83528201606090602081526015602082015274736561736f6e616c58704d756c7469706c6965727360581b60408201520190565b6107f88760405191829163d647364f60e01b83528201606090602081526019602082015278736561736f6e616c47726f7774684d756c7469706c6965727360381b60408201520190565b86610d568588610d3f89610d45896003610d3f8460ff165f52600260205260405f2090565b016133fe565b60ff165f52600260205260405f2090565b5f33917fcceebab1dd0ce05df89508d0ac39d99183e2ca262e2b32a9d520ddd0e77e1bd38280a4005b60405163d647364f60e01b8152806107f88187016132ce565b5060648511610c34565b3461054b57604036600319011261054b57610dbb610af5565b336001600160a01b03821603610dd757610b6a90600435614f34565b60405163334bd91960e11b8152600490fd5b3461054b575f36600319011261054b57602060405160648152f35b3461054b575f36600319011261054b57610e1c613f71565b5f805160206151a0833981519152805460ff811615610e675760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b604051638dfc202b60e01b8152600490fd5b3461054b57602036600319011261054b5760ff600435610e988161062b565b1680158015610ed7575b6107de575f52600260205261060a63ffffffff600160405f200154166040519182918291909163ffffffff6020820193169052565b5060648111610ea2565b3461054b57602036600319011261054b57600435610efe8161062b565b60ff81168015908115610f32575b506107de57610f26602091610f2042613e71565b90613680565b61ffff60405191168152f35b60649150115f610f0c565b3461054b57602036600319011261054b576020610f5b600435613445565b6040519015158152f35b3461054b57602036600319011261054b576020610f5b60043561345d565b604090600319011261054b57600435610f9b8161062b565b90602435600481101561054b5790565b3461054b57610fb936610f83565b90610fc261326f565b5060ff81168015908115610ff2575b506107de5761060a916107556107508360ff165f52600260205260405f2090565b60649150115f610fd1565b3461054b57602036600319011261054b5760ff60043561101c8161062b565b165f52600960205260405f20600181549101549061060a6040519283928360209093929193604081019481520152565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761107b57604052565b61104c565b60e081019081106001600160401b0382111761107b57604052565b602081019081106001600160401b0382111761107b57604052565b60c081019081106001600160401b0382111761107b57604052565b608081019081106001600160401b0382111761107b57604052565b610ca081019081106001600160401b0382111761107b57604052565b90601f801991011681019081106001600160401b0382111761107b57604052565b6040519061082782611080565b6040519061082782611060565b60405190610827826110b6565b6001600160401b03811161107b57601f01601f191660200190565b92919261117782611150565b916111856040519384611108565b82948184528183011161054b578281602093845f960137010152565b60408060031936011261054b576111b6610b0b565b90602435906001600160401b03821161054b576004913660238201121561054b576111ea903690602481860135910161116b565b6001600160a01b037f000000000000000000000000e0fefa28e68db34d756e921ec9add6116e3c14c48116308114908115611320575b506113115761122d613fc8565b8416801561130257843b156112f35790602084928451938480926352d1902d60e01b82525afa5f92816112c2575b5061128757505051634c9c8ce360e01b81526001600160a01b0390921690820190815281906020010390fd5b8484845f8051602061516083398151915285036112a857610b6a8484614fc6565b51632a87526960e21b815290810184815281906020010390fd5b6112e591935060203d6020116112ec575b6112dd8183611108565b810190613475565b915f61125b565b503d6112d3565b505051636f7c43f160e01b8152fd5b50505163d92e233d60e01b8152fd5b50505163703e46dd60e11b8152fd5b9050815f80516020615160833981519152541614155f611220565b3461054b57602036600319011261054b5760ff60043561135a8161062b565b61136261326f565b501680158015611414575b6107de575f52600260205261060a60405f2061140360046040519261139184611080565b61139a81611b64565b84526113db600182015463ffffffff8116602087015261ffff906113ca828260201c16604089019061ffff169052565b60301c16606086019061ffff169052565b6113e760028201612f8b565b60808501526113f8600382016132ef565b60a0850152016132ef565b60c082015260405191829182610661565b506064811161136d565b3461054b575f36600319011261054b577f000000000000000000000000e0fefa28e68db34d756e921ec9add6116e3c14c46001600160a01b031630036114755760206040515f805160206151608339815191528152f35b60405163703e46dd60e11b8152600490fd5b3461054b575f36600319011261054b5760206040517f745191d59a0c5ecaf2331ad3570e4033c5b04de0434263ec14a70fce5475ab7f8152f35b3461054b57604036600319011261054b5760405163e2b3712160e01b81526004803590820181905260248035908301526020908183604481305afa928315611572575f93611577575b50604051634581975560e11b8152600481019190915260248101839052818180604481015b0381305afa918215611572575f92611555575b5050604080519182526020820192909252f35b61156b9250803d106112ec576112dd8183611108565b5f80611542565b613484565b61152f9193506115948391823d84116112ec576112dd8183611108565b93915061150a565b3461054b57602036600319011261054b576004355f526008602052606060405f2080549063ffffffff60036001830154920154169060405192835260208301526040820152f35b3461054b575f36600319011261054b576020604051600a8152f35b3461054b575f36600319011261054b57602060ff5f54166040519015158152f35b3461054b575f36600319011261054b57602060ff5f805160206151a083398151915254166040519015158152f35b3461054b5760408060031936011261054b5761060a906116f56024356116756006821061348f565b6004355f52600a602052825f206116ef60206116e1600187519461169886611060565b8851815463ffffffff9081811683528181881c168784015281818d1c168c840152818160601c166060840152818160801c16608084015260a01c1660a08201526109a4816110b6565b9201918083525115156134db565b516134ca565b5190519081529081906020820190565b602090602319011261054b57602490565b3461054b57604036600319011261054b576004356117338161062b565b61173c36611705565b90611745613ef6565b61174d6140a1565b60ff81169160c98310801561181f575b6117ea5761271061ffff611770836133f4565b16116117bb5761178e6117939260ff165f52600760205260405f2090565b613518565b33907fc71aa6127c498448f788b388fde9b937f04be14a5768bdaadbe203f266ba10485f80a3005b60405163d647364f60e01b81526020600482015260066024820152651959999958dd60d21b6044820152606490fd5b60405163d647364f60e01b815260206004820152600c60248201526b19995c9d1a5b1a5e995c925960a21b6044820152606490fd5b5060d2831161175d565b3461054b57602036600319011261054b5760ff6004356118488161062b565b1661185281613445565b156118ea575f52600360205261186a60405f20613538565b602081015161ffff1661060a611885604084015161ffff1690565b92611895606082015161ffff1690565b906118b460a06118aa608084015161ffff1690565b92015161ffff1690565b6040805161ffff9687168152968616602088015292851692860192909252831660608501529091166080830152819060a0820190565b60405163d647364f60e01b815260206004820152600660248201526518dc9bdc125960d21b6044820152606490fd5b9181601f8401121561054b578235916001600160401b03831161054b576020808501948460051b01011161054b57565b9081518082526020808093019301915f5b828110611968575050505090565b83518552938101939281019260010161195a565b90916119936106ef93604084526040840190611949565b916020818403910152611949565b3461054b5760208060031936011261054b576004906004356001600160401b03811161054b576119d5903690600401611919565b92906119e0846135a5565b926119ea856135a5565b945f5b818110611a03576040518061060a89898361197c565b611a16611a118284876135d7565b6135e7565b60ff811660658110908115611a95575b50611a8457611a43611a489160ff165f52600960205260405f2090565b6135f1565b805115611a74579081846001930151611a61838a61360f565b5251611a6d828a61360f565b52016119ed565b60405162edf3c160e41b81528690fd5b6040516303a9ef6360e61b81528690fd5b60c89150115f611a26565b3461054b575f36600319011261054b576020610ac16140cb565b3461054b57602036600319011261054b5760ff600435611ad98161062b565b5f604051611ae68161109b565b521660c981108015611b22575b6117ea575f52600760205261060a611b0d60405f20613623565b604051905161ffff1681529081906020820190565b5060d28111611af3565b90600182811c92168015611b5a575b6020831014611b4657565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611b3b565b9060405191825f8254611b7681611b2c565b908184526020946001916001811690815f14611be25750600114611ba4575b50505061082792500383611108565b5f90815285812095935091905b818310611bca57505061082793508201015f8080611b95565b85548884018501529485019487945091830191611bb1565b9250505061082794925060ff191682840152151560051b8201015f8080611b95565b3461054b57602036600319011261054b576004355f526003602052611c4b60405f206001611c3182611b64565b91015461ffff60405193849360c0855260c0850190610587565b918181166020850152818160101c166040850152818160201c166060850152818160301c16608085015260401c1660a08301520390f35b3461054b57602036600319011261054b576004355f526004602052602060405f2054604051908152f35b3461054b57602036600319011261054b576004355f526007602052602061ffff60405f205416604051908152f35b63ffffffff81160361054b57565b61ffff81160361054b57565b3461054b5760e036600319011261054b576004803590611d138261062b565b60243591611d2083611cda565b604435611d2c81611ce8565b60643590611d3982611ce8565b60843594611d468661062b565b6040948560a31936011261054b57611d5c613ef6565b611d646140a1565b60ff85169687158015611fd7575b611fbf5760ff1695606587108015611fb5575b611f7f5763ffffffff83168015908115611f72575b50611f385761ffff8085168015908115611f2c575b50611ef857614e2090861611611ec257505091611e34611e6892611dfe86956001611de8611e999960ff165f52600260205260405f2090565b019063ffffffff1663ffffffff19825416179055565b6001611e158660ff165f52600260205260405f2090565b019065ffff0000000082549160201b169065ffff000000001916179055565b6001611e4b8460ff165f52600260205260405f2090565b019061ffff60301b82549160301b169061ffff60301b1916179055565b611e886002611e828360ff165f52600260205260405f2090565b0161363a565b60ff165f52600460205260405f2090565b5533907f1eca5b429b5d42f9b796c650c673bb404775589c4f841033854fd6760b80b2d95f80a3005b6107f892505191829163d647364f60e01b8352820160609060208152600660208201526506261736558760d41b60408201520190565b815163d647364f60e01b81526020818501818152600591810191909152641e5a595b1960da1b604082015281906060010390fd5b6127109150115f611daf565b6107f892505191829163d647364f60e01b8352820160609060208152600a60208201526967726f77746854696d6560b01b60408201520190565b6202a3009150115f611d9a565b5163d647364f60e01b8152915081906107f890820160609060208152600660208201526518dc9bdc125960d21b60408201520190565b5060c88711611d85565b865163d647364f60e01b8152806107f88185016132ce565b5060648811611d72565b5f915b60048310611ff157505050565b60019061ffff83511681526020809101920192019190611fe4565b91608061082792949361202481610100810197611fe1565b0190611fe1565b3461054b57602036600319011261054b576004356120488161062b565b6080604051612056816110d1565b3690376080604051612067816110d1565b36903760ff811680159081156120af575b506107de576107506120959160ff165f52600260205260405f2090565b60c060a08201519101519061060a6040519283928361200c565b60649150115f612078565b6020815260c06120d5835182602085015260e0840190610587565b9260a060208201519161ffff8093166040860152826040820151166060860152826060820151166080860152826080820151168286015201511691015290565b3461054b57602036600319011261054b576004356121328161062b565b5f60a0604051612141816110b6565b60608152826020820152826040820152826060820152826080820152015260ff8116606581109081156121a0575b506118ea5761219461218f61060a9260ff165f52600360205260405f2090565b613538565b604051918291826120ba565b60c89150115f61216f565b3461054b575f36600319011261054b576020600154604051908152f35b3461054b575f36600319011261054b576121e0613f71565b6121e86140a1565b5f805160206151a0833981519152600160ff198254161790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b3461054b5760e036600319011261054b5760043561224a8161062b565b6024359061225782611ce8565b60443561226381611ce8565b6064359161227083611ce8565b6084359261227d84611ce8565b60a43561228981611ce8565b60c435956122968761062b565b61229e613ef6565b6122a66140a1565b60ff841696606588108015612414575b6118ea5760ff16958615801561240a575b6123d75761235261239d9461233b6123ae986123096123699660016122f78c60ff165f52600360205260405f2090565b019061ffff1661ffff19825416179055565b60016123208a60ff165f52600360205260405f2090565b019063ffff000082549160101b169063ffff00001916179055565b6001611e158860ff165f52600360205260405f2090565b6001611e4b8660ff165f52600360205260405f2090565b60016123808460ff165f52600360205260405f2090565b019061ffff60401b82549160401b169061ffff60401b1916179055565b60ff165f52600560205260405f2090565b5533907f14b767668e3ab039f8badf0df0cfea488d75d6f6ea5d66b70cbdf02930d8e2195f80a3005b60405163d647364f60e01b815260206004820152600a60248201526918985cd954d95959125960b21b6044820152606490fd5b50606487116122c7565b5060c888116122b6565b3461054b5760408060031936011261054b5761060a906124e26124d96124cf60243561244c6006821061348f565b6004355f52600a602052845f206116ef6124c1600188519361246d85611060565b89518154808c63ffffffff9283918282168652828260201c1660208701521c168d840152818160601c166060840152818160801c16608084015260a01c1660a08201526124b9816110b6565b85520161339d565b8060208401525115156134db565b5163ffffffff1690565b63ffffffff1690565b90519081529081906020820190565b919060405192612500846110b6565b839060c0810192831161054b57905b82821061251b57505050565b60208091833561252a81611cda565b81520191019061250f565b9060405191612543836110b6565b826101a491821161054b5760e4905b82821061255e57505050565b8135815260209182019101612552565b91906040519261257d846110b6565b839060c0810192831161054b57905b82821061259857505050565b813581526020918201910161258c565b3461054b576101a036600319011261054b57366043121561054b576040516125cf816110b6565b60e48136821161054b576024905b828210612615578336610103121561054b57610b6a906125fc36612535565b90612605613ef6565b61260d6140a1565b600435614113565b60208091833561262481611cda565b8152019101906125dd565b3461054b576020610f26610f2036610f83565b3461054b57604036600319011261054b57602060ff612690612662610af5565b6004355f525f80516020615180833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461054b57604036600319011261054b576004356126b98161062b565b6126c236611705565b906126cb613ef6565b6126d36140a1565b60ff81169160c98310801561276b575b6127395761ffff6126f3826133f4565b16156117bb5761178e6127119260ff165f52600660205260405f2090565b33907f290bd8e6937407b22352e2be88658b06a376c4af714a59e15342e09f4d02f2e55f80a3005b60405163d647364f60e01b8152602060048201526009602482015268189bdbdcdd195c925960ba1b6044820152606490fd5b5060d283116126e3565b3461054b57602036600319011261054b5760ff6004356127948161062b565b16801580156127c5575b6107de575f9081526002602090815260409182902060010154915191811c61ffff16825290f35b506064811161279e565b9181601f8401121561054b578235916001600160401b03831161054b576020808501946101a0850201011161054b57565b9181601f8401121561054b578235916001600160401b03831161054b576020808501946060850201011161054b57565b3461054b5761010036600319011261054b5760046001600160401b03813581811161054b576128629036908401611919565b60249291923582811161054b5761287c9036908601611919565b909260443581811161054b576128959036908801611919565b9060643583811161054b576128ad9036908a01611919565b9060843585811161054b576128c59036908c01611919565b94909360a43587811161054b578c6128df913691016127cf565b98909760c43590811161054b57610b6a9d6128fc91369101612800565b9b909a60e4359d6136e4565b3461054b575f36600319011261054b5760206040515f8152f35b3461054b57602036600319011261054b5760ff6004356129418161062b565b1661294b81613445565b156118ea575f52600560205260206109fe60405f2054613ec9565b3461054b57602036600319011261054b5760ff6004356129858161062b565b61298d613257565b50166065811080156129dc575b6129ca575f52600960205260406129b2815f206135f1565b6129c88251809260208091805184520151910152565bf35b6040516303a9ef6360e61b8152600490fd5b5060c8811161299a565b3461054b575f36600319011261054b575f80516020615160833981519152546040516001600160a01b039091168152602090f35b3461054b575f36600319011261054b5761060a604051612a3981611060565b60058152640352e302e360dc1b6020820152604051918291602083526020830190610587565b60209060206040818301928281528551809452019301915f5b828110612a86575050505090565b835160ff1685529381019392810192600101612a78565b3461054b575f36600319011261054b57604051612ab9816110ec565b60649060648152610c803660208301375f60655b60c860ff82161115612aeb575b8183526040518061060a8582612a5f565b612b0361218f8260ff165f52600360205260405f2090565b5151612b24575b838214612b1f57612b1a90613c01565b612acd565b612ada565b9080612b3f83612b37612b44948761360f565b9060ff169052565b613c17565b90612b0a565b3461054b57604036600319011261054b576024356004355f52600a60205260405f20906006811015612b945763ffffffff6020928260031c015460e06040519360051b161c168152f35b6133cf565b3461054b57606036600319011261054b57600435612bb68161062b565b60243590604435612bc5613ef6565b612bcd6140a1565b60ff821692606584108015612cbe575b6129ca578015612c8d578115612c5b57612c497f802c6adeb3ecf112b6f174a1738cf59e30e745541db4e9e0b5b42a89d58cefb993612c38612c1d611136565b9184835285602084015260ff165f52600960205260405f2090565b906020600191805184550151910155565b604080519182526020820192909252a2005b60405163d647364f60e01b81526020600482015260096024820152680787050657243726f760bc1b6044820152606490fd5b60405163d647364f60e01b81526020600482015260086024820152676d617843726f707360c01b6044820152606490fd5b5060c88411612bdd565b3461054b5760031960403682011261054b57600435906024356001600160401b03811161054b5760808160040192823603011261054b57612d07613ef6565b612d0f6140a1565b60c983108015612e00575b612dcf57602481013515612d93576044612d35910182613c25565b905015612d5657612d51610b6a925f52600860205260405f2090565b613c64565b60405163d647364f60e01b81526020600482015260146024820152730e4cac6d2e0ca5cd2dce0eae8e65cd8cadccee8d60631b6044820152606490fd5b60405163d647364f60e01b81526020600482015260136024820152721c9958da5c194b9bdd5d1c1d5d105b5bdd5b9d606a1b6044820152606490fd5b60405163d647364f60e01b81526020600482015260086024820152671bdd5d1c1d5d125960c21b6044820152606490fd5b5060d28311612d1a565b3461054b57602036600319011261054b5760ff600435612e298161062b565b1680158015612e4d575b6107de575f52600460205260206109fe60405f2054613ec9565b5060648111612e33565b60041115612e6157565b634e487b7160e01b5f52602160045260245ffd5b3461054b575f36600319011261054b57612e8e42613e71565b6040516004821015612e61576020918152f35b3461054b57604036600319011261054b57610b6a600435612ec0610af5565b90805f525f80516020615180833981519152602052612ee5600160405f200154614075565b614f34565b3461054b575f36600319011261054b57602060405160078152f35b3461054b57604036600319011261054b576020612f26602435600435613d68565b604051908152f35b3461054b57602036600319011261054b5760ff600435612f4d8161062b565b5f604051612f5a8161109b565b521660c981108015612f81575b612739575f52600660205261060a611b0d60405f20613623565b5060d28111612f67565b90604051612f9881611060565b602060ff829454818116845260081c16910152565b3461054b57602036600319011261054b576004355f52600260205261300660405f20612fd881611b64565b9061060a600182015491612ff1600261ffff9201612f8b565b9060405195869560c0875260c0870190610587565b9363ffffffff81166020870152818160201c16604087015260301c166060850152608084019060ff60208092828151168552015116910152565b3461054b57602036600319011261054b5760ff60043561305f8161062b565b16606581108015613085575b6118ea575f52600560205260206109fe60405f2054613ec9565b5060c8811161306b565b3461054b576020610ac1610abb36610f83565b3461054b575f36600319011261054b5760206040517f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e38152f35b6020916020825260a08201815160208401526020820151906040916040850152604083015194608060608601528551809252602060c086019601925f905b83821061313957505050505063ffffffff606060809201511691015290565b90919293968382826131586001948c5160208091805184520151910152565b019801949392019061311a565b3461054b5760208060031936011261054b576040905f60608351613188816110d1565b8281528284820152818582015201526004355f5260088152815f20918051916131b0836110d1565b83548352600180850154828501526002808601908154916131d08361358e565b946131dd87519687611108565b8386525f9182528082208187015b858410613228575061060a898961321e61321160038f8d85870152015463ffffffff1690565b63ffffffff166060840152565b51918291826130dc565b84838892613235856135f1565b8152019201930192906131eb565b634e487b7160e01b5f52601160045260245ffd5b6040519061326482611060565b5f6020838281520152565b6040519061327c82611080565b81606081525f60208201525f60408201525f606082015261329b613257565b60808201526040516132ac816110d1565b608036823760a082015260c0604051916132c5836110d1565b60803684370152565b6060906020815260066020820152651cd95959125960d21b60408201520190565b90604051915461ffff908181168452818160101c166020850152818160201c16604085015260301c166060830152610827826110d1565b9060405161333381611080565b60c06133986004839561334581611b64565b8552600181015463ffffffff8116602087015261ffff90818160201c16604088015260301c16606086015261337c60028201612f8b565b608086015261338d600382016132ef565b60a0860152016132ef565b910152565b60405191905f835b600682106133b957505050610827826110b6565b60016020819285548152019301910190916133a5565b634e487b7160e01b5f52603260045260245ffd5b906004811015612b945760051b0190565b356106ef81611ce8565b5f915f5b6004811061340f57505055565b9092602061343c60019286359061342582611ce8565b85851b60031b9161ffff809116831b921b19161790565b94019101613402565b60658110159081613454575090565b60c89150111590565b6001811015908161346c575090565b60649150111590565b9081602091031261054b575190565b6040513d5f823e3d90fd5b1561349657565b60405162461bcd60e51b815260206004820152600c60248201526b24b73b30b634b2103a34b2b960a11b6044820152606490fd5b906006811015612b945760051b0190565b156134e257565b60405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a59081cd95959125960921b6044820152606490fd5b61082791359061352782611ce8565b9061ffff1661ffff19825416179055565b90604051613545816110b6565b60a06001829461355481611b64565b8452015461ffff908181166020850152818160101c166040850152818160201c166060850152818160301c16608085015260401c16910152565b6001600160401b03811161107b5760051b60200190565b906135af8261358e565b6135bc6040519182611108565b82815280926135cd601f199161358e565b0190602036910137565b9190811015612b945760051b0190565b356106ef8161062b565b906040516135fe81611060565b602060018294805484520154910152565b8051821015612b945760209160051b010190565b906040516136308161109b565b915461ffff168252565b6108279061365d60a43561364d8161062b565b825460ff191660ff909116178255565b60c4359061366a8261062b565b9061ff0082549160081b169061ff001916179055565b60ff16801580156136da575b6107de575f5260026020526136d66136a660405f20613326565b60ff606060c0830151946136b981612e57565b6136cb61ffff968794859316906133e3565b511692015116614198565b1690565b506064811161368c565b909c9b9c9a999a9897989695969493949291927f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f006002815414613b45576002905561372d61401f565b6137356140a1565b5f5460ff16613b335780158015613b29575b613af05782158015613ae6575b613aad57600a8511613a6e57600a8711613a3257600a89116139f7575f5b8181106139db575050505f5b8181106139bf575050505f5b8181106139a3575050505f5b818110613987575050505f5b81811061396b575050505f5b81811061391b575050505f5b818110613825575050506001556137d7600160ff195f5416175f55565b337f12a1c7be0c836deda4348baecdfb5dcfb75ed9e3268f177433d9651d7263c2a85f80a261082760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b606561383e613838611a11848688613bf1565b60ff1690565b108015613901575b6129ca57602080613858838587613bf1565b013515612c8d576040908161386e848688613bf1565b0135156138d0578291816138ca92613889600196888a613bf1565b01359161389785888a613bf1565b0135906138a2611136565b928352820152612c386138b9611a1185888a613bf1565b60ff165f52600960205260405f2090565b016137ba565b505163d647364f60e01b81526020600482015260096024820152680787050657243726f760bc1b6044820152606490fd5b5060c860ff613914611a11848688613bf1565b1611613846565b8061396561392c6001938587613be0565b35602061393a848789613be0565b0161395f61395760e061394e878a8c613be0565b019236906124f1565b91369061256e565b91614113565b016137ae565b8061398161397c6001938587613bbe565b614da3565b016137a2565b8061399d6139986001938587613b9c565b614cbe565b01613796565b806139b96139b46001938587613b9c565b614bd0565b0161378a565b806139d56139d06001938587613b7a565b614a51565b0161377e565b806139f16139ec6001938587613b57565b6144c6565b01613772565b60405163d647364f60e01b81526020600482015260126024820152710e4cac6d2e0cae688c2e8c25cd8cadccee8d60731b6044820152606490fd5b60405163d647364f60e01b81526020600482015260136024820152720c4dedee6e8cae4e688c2e8c25cd8cadccee8d606b1b6044820152606490fd5b60405163d647364f60e01b81526020600482015260166024820152750cccae4e8d2d8d2f4cae4e688c2e8c25cd8cadccee8d60531b6044820152606490fd5b60405163d647364f60e01b815260206004820152601060248201526f0c6e4dee0e688c2e8c25cd8cadccee8d60831b6044820152606490fd5b5060648311613754565b60405163d647364f60e01b815260206004820152601060248201526f0e6cacac8e688c2e8c25cd8cadccee8d60831b6044820152606490fd5b5060648111613747565b60405163839add6960e01b8152600490fd5b604051633ee5aeb560e01b8152600490fd5b9190811015612b945760051b810135906101fe198136030182121561054b570190565b9190811015612b945760051b8101359060fe198136030182121561054b570190565b9190811015612b945760051b81013590605e198136030182121561054b570190565b9190811015612b945760051b81013590607e198136030182121561054b570190565b9190811015612b94576101a0020190565b9190811015612b94576060020190565b60ff1660ff8114613c125760010190565b613243565b5f198114613c125760010190565b903590601e198136030182121561054b57018035906001600160401b03821161054b57602001918160061b3603831361054b57565b356106ef81611cda565b9080358255600160208201356001840155600280840190604091613c8b6040860186613c25565b939068010000000000000000851161107b578254858455808610613d10575b50613cb990925f5260205f2090565b5f925b858410613cf35750505050505050906003613cdc60606108279401613c5a565b91019063ffffffff1663ffffffff19825416179055565b803582556020810135600183015592860192908401908201613cbc565b6001600160ff1b038181168203613c125786168603613c1257835f528460205f209160011b8201918760011b015b828110613d4c575050613caa565b5f81555f89820155018590613d3e565b8015613c12575f190190565b5f52600a60205260405f20613dd660206116e1600160405194613d8a86611060565b604051815463ffffffff9081811683528181881c1687840152818160401c166040840152818160601c166060840152818160801c16608084015260a01c1660a08201526109a4816110b6565b6005805b613def575051511115613deb575f90565b5f90565b613dfa8183516134ca565b51831015613e1157613e0b90613d5c565b80613dda565b91505090565b60ff1680158015613e67575b6107de5760ff916136d6915f526002602052613e4160405f20613326565b90602061ffff6136cb60a0850151613e5885612e57565b63ffffffff97889516906133e3565b5060648111613e23565b6001549081158015613ec0575b613eba5762093a8091613e9091614e5d565b0480613e9b57505f90565b60018103613ea95750600190565b600203613eb557600290565b600390565b50505f90565b50818110613e7e565b60ff8111613ed75760ff1690565b604490604051906306dfcc6560e41b8252600860048301526024820152fd5b335f9081527f44f2f79686c2bf155261c2ffef9628ab633e9f8ad5e78cca61feb0654afeabb8602052604090207f745191d59a0c5ecaf2331ad3570e4033c5b04de0434263ec14a70fce5475ab7f9060ff905b541615613f535750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b335f9081527f762c7c328dd70a077c65c77b60e4c38eed3d2f6aa056d4d0fa114aeff8234b56602052604090207fbf233dd2aafeb4d50879c4aa5c81e96d92f6e6945c906a58f9f2d1c1631b4b269060ff90613f49565b335f9081527fab71e3f32666744d246edff3f96e4bdafee2e9867098cdd118a979a7464786a8602052604090207f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e39060ff90613f49565b335f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff161561405757565b60405163e2517d3f60e01b81523360048201525f6024820152604490fd5b5f8181525f8051602061518083398151915260209081526040808320338452909152902060ff90613f49565b60ff5f805160206151a083398151915254166140b957565b60405163d93c066560e01b8152600490fd5b600154801561410e576140de904261506b565b63ffffffff908181116140ef571690565b604490604051906306dfcc6560e41b8252602060048301526024820152fd5b505f90565b916040519161412183611060565b8252602092602083019182525f52600a60205260405f2091515f905f5b856006821061417357505050825551905f5b6006811061415e5750505050565b60019084845194019382828501015501614150565b600191929363ffffffff9081865116918560051b92831b921b1916179301910161413e565b9061ffff169081156141bc57818102918183041490151715613c12576103e8900490565b905090565b903590601e198136030182121561054b57018035906001600160401b03821161054b5760200191813603831361054b57565b919082604091031261054b5760405161420b81611060565b6020808294803561421b8161062b565b84520135916142298361062b565b0152565b91906040519261423c846110d1565b83906080810192831161054b57905b82821061425757505050565b60208091833561426681611ce8565b81520191019061424b565b601f821161427e57505050565b5f5260205f20906020601f840160051c830193106142b6575b601f0160051c01905b8181106142ab575050565b5f81556001016142a0565b9091508190614297565b8151815460ff191660ff9182161782556108279260200151825461ff001916911660081b61ff0016179055565b5f915f5b600481106142fe57505055565b9092602061432660019261ffff8751169085851b60031b9161ffff809116831b921b19161790565b940191016142f1565b91909182519283516001600160401b03811161107b57614359816143538554611b2c565b85614271565b602080601f83116001146144515750916143938260c09360049561082798995f92614446575b50508160011b915f199060031b1c19161790565b84555b61441b600185016143c76143b1602085015163ffffffff1690565b825463ffffffff191663ffffffff909116178255565b6143f76143d9604085015161ffff1690565b825465ffff00000000191660209190911b65ffff0000000016178255565b6060830151815467ffff000000000000191660309190911b61ffff60301b16179055565b61442c6080820151600286016142c0565b61443d60a0820151600386016142ed565b015191016142ed565b015190505f8061437f565b90601f19831696614465865f5260205f2090565b925f905b8982106144ae575050926004949260019260c095836108279a9b10614496575b505050811b018455614396565b01515f1960f88460031b161c191690555f8080614489565b80600185968294968601518155019501930190614469565b9060ff91826144d4826135e7565b16158015614887575b6107de5760a08101906065846144f2846135e7565b16108015614873575b6118ea576040908181019263ffffffff8061451586613c5a565b161590811561485c575b5061482a57606082019461ffff9182614537886133f4565b16158015614815575b6147e8576127106080850193614555856133f4565b16116147ba57602084019561456a87866141c1565b905015614789575f5b6004818b168181101561464f57610bb89081614599610c5f610c5a846101008e016133e3565b1161460757610c5f610c5a6145b2926101808c016133e3565b116145c257506001018916614573565b6107f890885191829163d647364f60e01b83528201606090602081526015602082015274736561736f6e616c58704d756c7469706c6965727360581b60408201520190565b895163d647364f60e01b8152602081850181815260199181019190915278736561736f6e616c47726f7774684d756c7469706c6965727360381b604082015281906060010390fd5b5050509394614684929850966146c3614714946146ce93996146b861469061468a61467c60e09d8d6141c1565b99909b613c5a565b966133f4565b936133f4565b946146a960c08c019a6146a1611129565b99369161116b565b885263ffffffff166020880152565b85019061ffff169052565b61ffff166060830152565b6146d836846141f3565b60808201526146eb36610100860161422d565b60a08201526146fe36610180860161422d565b60c082015261470f610d45856135e7565b61432f565b614720613838856135e7565b61472c611e88846135e7565b55614739613838826135e7565b614770575b50019061474d613838836135e7565b614755575050565b611e8861476761383861476d936135e7565b926135e7565b55565b614782611e88614767613838876135e7565b555f61473e565b855163d647364f60e01b8152602060048201526009602482015268736565642e6e616d6560b81b6044820152606490fd5b845163d647364f60e01b815260206004820152600660248201526506261736558760d41b6044820152606490fd5b845163d647364f60e01b81526020600482015260056024820152641e5a595b1960da1b6044820152606490fd5b5061271083614823896133f4565b1611614540565b825163d647364f60e01b815260206004820152600a60248201526967726f77746854696d6560b01b6044820152606490fd5b6202a300915061486b86613c5a565b16115f61451f565b5060c884614880846135e7565b16116144fb565b50606483614894836135e7565b16116144dd565b919080519283516001600160401b03811161107b576148c4816148be8454611b2c565b84614271565b602080601f83116001146149da57506149bf926149008360a094600194610827999a5f926144465750508160011b915f199060031b1c19161790565b81555b0192614929614917602083015161ffff1690565b855461ffff191661ffff909116178555565b61495561493b604083015161ffff1690565b855463ffff0000191660109190911b63ffff000016178555565b614985614967606083015161ffff1690565b855465ffff00000000191660209190911b65ffff0000000016178555565b6149b6614997608083015161ffff1690565b855467ffff000000000000191660309190911b61ffff60301b16178555565b015161ffff1690565b61ffff60401b82549160401b169061ffff60401b1916179055565b90601f198316966149ee855f5260205f2090565b925f905b898210614a39575050836001936149bf9693859360a0976108279b9c10614a21575b505050811b018155614903565b01515f1960f88460031b161c191690555f8080614a14565b806001859682949686015181550195019301906149f2565b606560ff614a5e836135e7565b16108015614bbb575b6118ea5760e0810160ff614a7a826135e7565b16158015614ba6575b6123d75760208201614a9581846141c1565b905015614b745761476761383861476d93611a11614b52614ab961239d96896141c1565b9190614b478a614b3c614ace604083016133f4565b614b31614add606085016133f4565b614b26614aec608087016133f4565b93614b19614b0860c0614b0160a08b016133f4565b99016133f4565b99614b11611143565b9c369161116b565b8b5261ffff1660208b0152565b61ffff166040890152565b61ffff166060870152565b61ffff166080850152565b61ffff1660a0830152565b614b6f614b5e896135e7565b60ff165f52600360205260405f2090565b61489b565b60405163d647364f60e01b815260206004820152600960248201526863726f702e6e616d6560b81b6044820152606490fd5b50606460ff614bb4836135e7565b1611614a83565b5060c860ff614bc9836135e7565b1611614a67565b60c960ff614bdd836135e7565b16108015614ca9575b6117ea57614bf760208201826141c1565b905015614c7157604081016103e861ffff614c11836133f4565b1610614c375761178e614c26610827936135e7565b60ff165f52600760205260405f2090565b60405163d647364f60e01b815260206004820152601160248201527019995c9d1a5b1a5e995c8b9959999958dd607a1b6044820152606490fd5b60405163d647364f60e01b815260206004820152600f60248201526e66657274696c697a65722e6e616d6560881b6044820152606490fd5b5060d260ff614cb7836135e7565b1611614be6565b60c960ff614ccb836135e7565b16108015614d8e575b61273957614ce560208201826141c1565b905015614d59576040810161ffff614cfc826133f4565b1615614d225761178e614d11610827936135e7565b60ff165f52600660205260405f2090565b60405163d647364f60e01b815260206004820152600e60248201526d189bdbdcdd195c8b9959999958dd60921b6044820152606490fd5b60405163d647364f60e01b815260206004820152600c60248201526b626f6f737465722e6e616d6560a01b6044820152606490fd5b5060d260ff614d9c836135e7565b1611614cd4565b80359060c982108015614e53575b612dcf57602081013515614e1e57614dcc6040820182613c25565b905015614de857612d51610827925f52600860205260405f2090565b60405163d647364f60e01b815260206004820152600d60248201526c0d2dce0eae8e65cd8cadccee8d609b1b6044820152606490fd5b60405163d647364f60e01b815260206004820152600c60248201526b1bdd5d1c1d5d105b5bdd5b9d60a21b6044820152606490fd5b5060d28211614db1565b90808210808015614e98575b8015614e91575b614e8a57613eba578103908111613c12576224ea00900690565b5050505f90565b505f614e70565b508115614e69565b5f8181525f80516020615180833981519152602081815260408084206001600160a01b03871685529091529091205460ff16614e8a575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5f8181525f80516020615180833981519152602081815260408084206001600160a01b03871685529091529091205460ff1615614e8a575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b90813b1561504a575f8051602061516083398151915280546001600160a01b0319166001600160a01b0384169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a280511561502f5761502c916150bc565b50565b50503461503857565b60405163b398979f60e01b8152600490fd5b604051634c9c8ce360e01b81526001600160a01b0383166004820152602490fd5b908082108080156150b4575b80156150ad575b614e8a57613eba578103908111613c125762093a80900460011981101561410e5760018101809111613c125790565b505f61507e565b508115615077565b5f806106ef93602081519101845af43d156150f8573d916150dc83611150565b926150ea6040519485611108565b83523d5f602085013e6150fc565b6060915b90615123575080511561511157602081519101fd5b60405163d6bda27560e01b8152600490fd5b81511580615156575b615134575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561512c56fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300a264697066735822122022a85e72d1a88c149f8e86b0d2dff72f774e1009f19f7fe5df810fb0a6f1983564736f6c63430008180033
🤖 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 | 30 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.

